Stardew Valley: Refactor buildings to use content packs (#4239)
* create building data object and rename ItemSource to Source to be more generic # Conflicts: # worlds/stardew_valley/content/game_content.py # Conflicts: # worlds/stardew_valley/data/artisan.py # worlds/stardew_valley/data/game_item.py # worlds/stardew_valley/data/harvest.py # worlds/stardew_valley/data/shop.py * remove compound sources, replace by other requirements which already handle this usecase * add coops to content packs * add building progression in game features * add shippping bin to starting building; remove has_house * replace config check with feature * add other buildings in content packs * not passing * tests passes, unbelievable * use newly create methods more * use new assets to ease readability * self review * fix flake8 maybe * properly split rule for mapping cave systems * fix tractor garage name * self review * add upgrade_from to farm house buldings * don't override building name variable in logic * remove has_group from buildings * mark some items easy in grinding logic so blueprints buildings can be in more early spheres * move stuff around to maybe avoid future conflicts cuz I have like 10 PRs opened right now * remove price_multiplier, turns out it's unused during generation * disable shop source for mapping cave systems * bunch of code review changes * add petbowl and farmhouse to autobuilding * set min easy items to 300 * fix farm type
This commit is contained in:
@@ -1,28 +0,0 @@
|
||||
from typing import Dict, Union
|
||||
|
||||
from ..mod_data import ModNames
|
||||
from ...logic.base_logic import BaseLogicMixin, BaseLogic
|
||||
from ...logic.has_logic import HasLogicMixin
|
||||
from ...logic.money_logic import MoneyLogicMixin
|
||||
from ...stardew_rule import StardewRule
|
||||
from ...strings.artisan_good_names import ArtisanGood
|
||||
from ...strings.building_names import ModBuilding
|
||||
from ...strings.metal_names import MetalBar
|
||||
from ...strings.region_names import Region
|
||||
|
||||
|
||||
class ModBuildingLogicMixin(BaseLogicMixin):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.building = ModBuildingLogic(*args, **kwargs)
|
||||
|
||||
|
||||
class ModBuildingLogic(BaseLogic[Union[MoneyLogicMixin, HasLogicMixin]]):
|
||||
|
||||
def get_modded_building_rules(self) -> Dict[str, StardewRule]:
|
||||
buildings = dict()
|
||||
if ModNames.tractor in self.options.mods:
|
||||
tractor_rule = (self.logic.money.can_spend_at(Region.carpenter, 150000) &
|
||||
self.logic.has_all(MetalBar.iron, MetalBar.iridium, ArtisanGood.battery_pack))
|
||||
buildings.update({ModBuilding.tractor_garage: tractor_rule})
|
||||
return buildings
|
||||
@@ -1,4 +1,3 @@
|
||||
from .buildings_logic import ModBuildingLogicMixin
|
||||
from .deepwoods_logic import DeepWoodsLogicMixin
|
||||
from .elevator_logic import ModElevatorLogicMixin
|
||||
from .item_logic import ModItemLogicMixin
|
||||
@@ -16,6 +15,6 @@ class ModLogicMixin(BaseLogicMixin):
|
||||
self.mod = ModLogic(*args, **kwargs)
|
||||
|
||||
|
||||
class ModLogic(ModElevatorLogicMixin, MagicLogicMixin, ModSkillLogicMixin, ModItemLogicMixin, ModQuestLogicMixin, ModBuildingLogicMixin,
|
||||
class ModLogic(ModElevatorLogicMixin, MagicLogicMixin, ModSkillLogicMixin, ModItemLogicMixin, ModQuestLogicMixin,
|
||||
ModSpecialOrderLogicMixin, DeepWoodsLogicMixin, SVELogicMixin):
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user