mirror of
https://github.com/ArchipelagoMW/Archipelago.git
synced 2026-03-25 15:33:30 -07:00
Minor updates
This commit is contained in:
@@ -17,8 +17,6 @@ def _get_data(key: str):
|
||||
return _cache[key]
|
||||
|
||||
|
||||
def get_boosts_data():
|
||||
return _get_data("boosts")
|
||||
@dataclass
|
||||
class CivVIBoostData():
|
||||
Type: str
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from enum import Enum
|
||||
from typing import Dict, List, Optional, TYPE_CHECKING, List
|
||||
from typing import Dict, Optional, TYPE_CHECKING, List
|
||||
from BaseClasses import Item, ItemClassification
|
||||
from .Data import get_era_required_items_data, get_existing_civics_data, get_existing_techs_data, get_goody_hut_rewards_data, get_progressive_districts_data
|
||||
from .Enum import CivVICheckType
|
||||
@@ -122,7 +122,7 @@ def format_item_name(name: str) -> str:
|
||||
return " ".join([part.capitalize() for part in name_parts])
|
||||
|
||||
|
||||
def get_item_by_civ_name(item_name: List[str], item_table: Dict[str, 'CivVIItemData']) -> 'CivVIItemData':
|
||||
def get_item_by_civ_name(item_name: str, item_table: Dict[str, 'CivVIItemData']) -> 'CivVIItemData':
|
||||
"""Gets the names of the items in the item_table"""
|
||||
for item in item_table.values():
|
||||
if item_name == item.civ_name:
|
||||
@@ -131,7 +131,7 @@ def get_item_by_civ_name(item_name: List[str], item_table: Dict[str, 'CivVIItemD
|
||||
raise Exception(f"Item {item_name} not found in item_table")
|
||||
|
||||
|
||||
def _generate_tech_items(id_base: int, required_items: List[str], progressive_items: Dict[str, str]) -> List[CivVIItemData]:
|
||||
def _generate_tech_items(id_base: int, required_items: List[str], progressive_items: Dict[str, str]) -> Dict[str, CivVIItemData]:
|
||||
# Generate Techs
|
||||
existing_techs = get_existing_techs_data()
|
||||
tech_table = {}
|
||||
@@ -164,7 +164,7 @@ def _generate_tech_items(id_base: int, required_items: List[str], progressive_it
|
||||
return tech_table
|
||||
|
||||
|
||||
def _generate_civics_items(id_base: int, required_items: List[str], progressive_items: Dict[str, str]) -> List[CivVIItemData]:
|
||||
def _generate_civics_items(id_base: int, required_items: List[str], progressive_items: Dict[str, str]) -> Dict[str, CivVIItemData]:
|
||||
civic_id = 0
|
||||
civic_table = {}
|
||||
existing_civics = get_existing_civics_data()
|
||||
@@ -198,7 +198,7 @@ def _generate_civics_items(id_base: int, required_items: List[str], progressive_
|
||||
return civic_table
|
||||
|
||||
|
||||
def _generate_progressive_district_items(id_base: int) -> List[CivVIItemData]:
|
||||
def _generate_progressive_district_items(id_base: int) -> Dict[str, CivVIItemData]:
|
||||
progressive_table = {}
|
||||
progressive_id_base = 0
|
||||
progressive_items = get_progressive_districts_data()
|
||||
@@ -221,7 +221,7 @@ def _generate_progressive_district_items(id_base: int) -> List[CivVIItemData]:
|
||||
return progressive_table
|
||||
|
||||
|
||||
def _generate_progressive_era_items(id_base: int) -> List[CivVIItemData]:
|
||||
def _generate_progressive_era_items(id_base: int) -> Dict[str, CivVIItemData]:
|
||||
"""Generates the single progressive district item"""
|
||||
era_table = {}
|
||||
# Generate progressive eras
|
||||
@@ -239,7 +239,7 @@ def _generate_progressive_era_items(id_base: int) -> List[CivVIItemData]:
|
||||
return era_table
|
||||
|
||||
|
||||
def _generate_goody_hut_items(id_base: int) -> List[CivVIItemData]:
|
||||
def _generate_goody_hut_items(id_base: int) -> Dict[str, CivVIItemData]:
|
||||
# Generate goody hut items
|
||||
goody_huts = get_filler_item_data()
|
||||
goody_table = {}
|
||||
@@ -281,14 +281,14 @@ def generate_item_table() -> Dict[str, CivVIItemData]:
|
||||
return item_table
|
||||
|
||||
|
||||
def get_items_by_type(item_type: CivVICheckType, item_table: Dict[str, CivVIItemData]) -> List[CivVIItemData]:
|
||||
def get_items_by_type(item_type: CivVICheckType, item_table: Dict[str, CivVIItemData]) -> Dict[str, CivVIItemData]:
|
||||
"""
|
||||
Returns a list of items that match the given item type
|
||||
"""
|
||||
return [item for item in item_table.values() if item.item_type == item_type]
|
||||
|
||||
|
||||
def get_random_filler_by_rarity(world: 'CivVIWorld', rarity: FillerItemRarity, item_table: Dict[str, CivVIItemData]) -> CivVIItemData:
|
||||
def get_random_filler_by_rarity(world: 'CivVIWorld', rarity: FillerItemRarity) -> FillerItemData:
|
||||
"""
|
||||
Returns a random filler item by rarity
|
||||
"""
|
||||
|
||||
@@ -60,8 +60,7 @@ def has_required_progressive_districts(state: CollectionState, era: EraType, pla
|
||||
required_counts[key] += 1
|
||||
|
||||
for key, value in required_counts.items():
|
||||
has_amount = state.has(format_item_name(key), player, required_counts[key])
|
||||
if not has_amount:
|
||||
if not state.has(format_item_name(key), player, required_counts[key]):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
@@ -22,11 +22,11 @@ def create_boost_rules(world: 'CivVIWorld'):
|
||||
if not boost_data or boost_data.PrereqRequiredCount == 0:
|
||||
continue
|
||||
|
||||
set_rule(world_location, lambda state, prereqs=boost_data.Prereq, required_count=boost_data.PrereqRequiredCount: has_required_items(state, prereqs, required_count, world.player))
|
||||
set_rule(world_location, lambda state, prereqs=boost_data.Prereq, required_count=boost_data.PrereqRequiredCount: has_required_items(state, prereqs, required_count, world))
|
||||
|
||||
|
||||
def has_required_items(state: CollectionState, prereqs: List[str], required_count: int, player: int) -> bool:
|
||||
world: 'CivVIWorld' = state.multiworld.worlds[player]
|
||||
def has_required_items(state: CollectionState, prereqs: List[str], required_count: int, world: 'CivVIWorld') -> bool:
|
||||
player = world.player
|
||||
has_progressive_items = world.options.progression_style != "none"
|
||||
if has_progressive_items:
|
||||
count = 0
|
||||
|
||||
@@ -74,7 +74,7 @@ class CivVIWorld(World):
|
||||
self.location_table[location.name] = location
|
||||
|
||||
def get_filler_item_name(self) -> str:
|
||||
return get_random_filler_by_rarity(self, FillerItemRarity.COMMON, self.item_table).name
|
||||
return get_random_filler_by_rarity(self, FillerItemRarity.COMMON).name
|
||||
|
||||
def create_regions(self) -> None:
|
||||
create_regions(self, self.options, self.player)
|
||||
@@ -103,7 +103,7 @@ class CivVIWorld(World):
|
||||
item_to_create = item_name
|
||||
if self.options.progression_style != "none":
|
||||
item: CivVIItemData = self.item_table[item_name]
|
||||
if item.progression_name != None:
|
||||
if item.progression_name:
|
||||
item_to_create = self.item_table[item.progression_name].name
|
||||
|
||||
self.multiworld.itempool += [self.create_item(
|
||||
@@ -123,8 +123,7 @@ class CivVIWorld(World):
|
||||
num_filler_items += 10
|
||||
|
||||
if self.options.boostsanity:
|
||||
boost_data = get_boosts_data()
|
||||
num_filler_items += len(boost_data)
|
||||
num_filler_items += len(get_boosts_data())
|
||||
|
||||
filler_count = {rarity: math.ceil(FILLER_DISTRIBUTION[rarity] * num_filler_items) for rarity in FillerItemRarity.__reversed__()}
|
||||
min_count = 1
|
||||
@@ -135,7 +134,7 @@ class CivVIWorld(World):
|
||||
if total_created >= num_filler_items:
|
||||
break
|
||||
self.multiworld.itempool += [self.create_item(
|
||||
get_random_filler_by_rarity(self, rarity, self.item_table).name)]
|
||||
get_random_filler_by_rarity(self, rarity).name)]
|
||||
total_created += 1
|
||||
|
||||
def post_fill(self) -> None:
|
||||
|
||||
Reference in New Issue
Block a user