Minor updates

This commit is contained in:
Carter Hesterman
2024-09-03 20:20:09 -06:00
parent 821d8fc650
commit 01d6400e25
5 changed files with 17 additions and 21 deletions

View File

@@ -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

View File

@@ -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
"""

View File

@@ -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

View File

@@ -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

View File

@@ -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: