mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
Stardew Valley: Refactor skill progression to use new feature system (#3662)
* create a first draft of the feature * use feature in items and locations * add content to more places * use feature in logic * replace option check by feature * remove unused code * remove weird white space * some import nitpicking * flip negative if
This commit is contained in:
@@ -13,7 +13,6 @@ from ...logic.region_logic import RegionLogicMixin
|
||||
from ...logic.relationship_logic import RelationshipLogicMixin
|
||||
from ...logic.tool_logic import ToolLogicMixin
|
||||
from ...mods.mod_data import ModNames
|
||||
from ...options import SkillProgression
|
||||
from ...stardew_rule import StardewRule, False_, True_, And
|
||||
from ...strings.building_names import Building
|
||||
from ...strings.craftable_names import ModCraftable, ModMachine
|
||||
@@ -37,7 +36,7 @@ ToolLogicMixin, FishingLogicMixin, CookingLogicMixin, CraftingLogicMixin, MagicL
|
||||
if level <= 0:
|
||||
return True_()
|
||||
|
||||
if self.options.skill_progression == SkillProgression.option_progressive:
|
||||
if self.content.features.skill_progression.is_progressive:
|
||||
return self.logic.received(f"{skill} Level", level)
|
||||
|
||||
return self.can_earn_mod_skill_level(skill, level)
|
||||
@@ -85,13 +84,15 @@ ToolLogicMixin, FishingLogicMixin, CookingLogicMixin, CraftingLogicMixin, MagicL
|
||||
def can_earn_archaeology_skill_level(self, level: int) -> StardewRule:
|
||||
shifter_rule = True_()
|
||||
preservation_rule = True_()
|
||||
if self.options.skill_progression == self.options.skill_progression.option_progressive:
|
||||
if self.content.features.skill_progression.is_progressive:
|
||||
shifter_rule = self.logic.has(ModCraftable.water_shifter)
|
||||
preservation_rule = self.logic.has(ModMachine.hardwood_preservation_chamber)
|
||||
if level >= 8:
|
||||
return (self.logic.tool.has_tool(Tool.pan, ToolMaterial.iridium) & self.logic.tool.has_tool(Tool.hoe, ToolMaterial.gold)) & shifter_rule & preservation_rule
|
||||
tool_rule = self.logic.tool.has_tool(Tool.pan, ToolMaterial.iridium) & self.logic.tool.has_tool(Tool.hoe, ToolMaterial.gold)
|
||||
return tool_rule & shifter_rule & preservation_rule
|
||||
if level >= 5:
|
||||
return (self.logic.tool.has_tool(Tool.pan, ToolMaterial.gold) & self.logic.tool.has_tool(Tool.hoe, ToolMaterial.iron)) & shifter_rule
|
||||
tool_rule = self.logic.tool.has_tool(Tool.pan, ToolMaterial.gold) & self.logic.tool.has_tool(Tool.hoe, ToolMaterial.iron)
|
||||
return tool_rule & shifter_rule
|
||||
if level >= 3:
|
||||
return self.logic.tool.has_tool(Tool.pan, ToolMaterial.iron) | self.logic.tool.has_tool(Tool.hoe, ToolMaterial.copper)
|
||||
return self.logic.tool.has_tool(Tool.pan, ToolMaterial.copper) | self.logic.tool.has_tool(Tool.hoe, ToolMaterial.basic)
|
||||
|
||||
Reference in New Issue
Block a user