Stardew Valley: Fix magic altar logic (#3417)

* Fix magic altar logic

* Force a tuple (really?)

* Fix received and force progression on all spells

* Reversing the tuple change (?yllaer)
This commit is contained in:
Witchybun 2024-05-29 13:16:19 -05:00 committed by GitHub
parent 34f903e97a
commit 378af4b07c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 41 additions and 32 deletions

View File

@ -735,26 +735,26 @@ id,name,classification,groups,mod_name
10007,Tractor Garage,useful,,Tractor Mod
10008,Woods Obelisk,progression,,DeepWoods
10009,Spell: Clear Debris,progression,MAGIC_SPELL,Magic
10010,Spell: Till,useful,MAGIC_SPELL,Magic
10010,Spell: Till,progression,MAGIC_SPELL,Magic
10011,Spell: Water,progression,MAGIC_SPELL,Magic
10012,Spell: Blink,progression,MAGIC_SPELL,Magic
10013,Spell: Evac,useful,MAGIC_SPELL,Magic
10014,Spell: Haste,useful,MAGIC_SPELL,Magic
10013,Spell: Evac,progression,MAGIC_SPELL,Magic
10014,Spell: Haste,progression,MAGIC_SPELL,Magic
10015,Spell: Heal,progression,MAGIC_SPELL,Magic
10016,Spell: Buff,useful,MAGIC_SPELL,Magic
10016,Spell: Buff,progression,MAGIC_SPELL,Magic
10017,Spell: Shockwave,progression,MAGIC_SPELL,Magic
10018,Spell: Fireball,progression,MAGIC_SPELL,Magic
10019,Spell: Frostbolt,progression,MAGIC_SPELL,Magic
10020,Spell: Teleport,progression,MAGIC_SPELL,Magic
10021,Spell: Lantern,useful,MAGIC_SPELL,Magic
10021,Spell: Lantern,progression,MAGIC_SPELL,Magic
10022,Spell: Tendrils,progression,MAGIC_SPELL,Magic
10023,Spell: Photosynthesis,useful,MAGIC_SPELL,Magic
10023,Spell: Photosynthesis,progression,MAGIC_SPELL,Magic
10024,Spell: Descend,progression,MAGIC_SPELL,Magic
10025,Spell: Meteor,progression,MAGIC_SPELL,Magic
10026,Spell: Bloodmana,useful,MAGIC_SPELL,Magic
10027,Spell: Lucksteal,useful,MAGIC_SPELL,Magic
10026,Spell: Bloodmana,progression,MAGIC_SPELL,Magic
10027,Spell: Lucksteal,progression,MAGIC_SPELL,Magic
10028,Spell: Spirit,progression,MAGIC_SPELL,Magic
10029,Spell: Rewind,useful,MAGIC_SPELL,Magic
10029,Spell: Rewind,progression,MAGIC_SPELL,Magic
10030,Pendant of Community,progression,,DeepWoods
10031,Pendant of Elders,progression,,DeepWoods
10032,Pendant of Depths,progression,,DeepWoods

1 id name classification groups mod_name
735 10007 Tractor Garage useful Tractor Mod
736 10008 Woods Obelisk progression DeepWoods
737 10009 Spell: Clear Debris progression MAGIC_SPELL Magic
738 10010 Spell: Till useful progression MAGIC_SPELL Magic
739 10011 Spell: Water progression MAGIC_SPELL Magic
740 10012 Spell: Blink progression MAGIC_SPELL Magic
741 10013 Spell: Evac useful progression MAGIC_SPELL Magic
742 10014 Spell: Haste useful progression MAGIC_SPELL Magic
743 10015 Spell: Heal progression MAGIC_SPELL Magic
744 10016 Spell: Buff useful progression MAGIC_SPELL Magic
745 10017 Spell: Shockwave progression MAGIC_SPELL Magic
746 10018 Spell: Fireball progression MAGIC_SPELL Magic
747 10019 Spell: Frostbolt progression MAGIC_SPELL Magic
748 10020 Spell: Teleport progression MAGIC_SPELL Magic
749 10021 Spell: Lantern useful progression MAGIC_SPELL Magic
750 10022 Spell: Tendrils progression MAGIC_SPELL Magic
751 10023 Spell: Photosynthesis useful progression MAGIC_SPELL Magic
752 10024 Spell: Descend progression MAGIC_SPELL Magic
753 10025 Spell: Meteor progression MAGIC_SPELL Magic
754 10026 Spell: Bloodmana useful progression MAGIC_SPELL Magic
755 10027 Spell: Lucksteal useful progression MAGIC_SPELL Magic
756 10028 Spell: Spirit progression MAGIC_SPELL Magic
757 10029 Spell: Rewind useful progression MAGIC_SPELL Magic
758 10030 Pendant of Community progression DeepWoods
759 10031 Pendant of Elders progression DeepWoods
760 10032 Pendant of Depths progression DeepWoods

View File

@ -8,7 +8,7 @@ from ...mods.mod_data import ModNames
from ...stardew_rule import StardewRule, False_
from ...strings.ap_names.skill_level_names import ModSkillLevel
from ...strings.region_names import MagicRegion
from ...strings.spells import MagicSpell
from ...strings.spells import MagicSpell, all_spells
class MagicLogicMixin(BaseLogicMixin):
@ -27,7 +27,8 @@ class MagicLogic(BaseLogic[Union[RegionLogicMixin, ReceivedLogicMixin, HasLogicM
def can_use_altar(self) -> StardewRule:
if ModNames.magic not in self.options.mods:
return False_()
return self.logic.region.can_reach(MagicRegion.altar)
spell_rule = False_()
return self.logic.region.can_reach(MagicRegion.altar) & self.logic.received_any(*all_spells)
def has_any_spell(self) -> StardewRule:
if ModNames.magic not in self.options.mods:

View File

@ -1,22 +1,30 @@
all_spells = []
def spell(name: str) -> str:
all_spells.append(name)
return name
class MagicSpell:
clear_debris = "Spell: Clear Debris"
till = "Spell: Till"
water = "Spell: Water"
blink = "Spell: Blink"
evac = "Spell: Evac"
haste = "Spell: Haste"
heal = "Spell: Heal"
buff = "Spell: Buff"
shockwave = "Spell: Shockwave"
fireball = "Spell: Fireball"
frostbite = "Spell: Frostbolt"
teleport = "Spell: Teleport"
lantern = "Spell: Lantern"
tendrils = "Spell: Tendrils"
photosynthesis = "Spell: Photosynthesis"
descend = "Spell: Descend"
meteor = "Spell: Meteor"
bloodmana = "Spell: Bloodmana"
lucksteal = "Spell: Lucksteal"
spirit = "Spell: Spirit"
rewind = "Spell: Rewind"
clear_debris = spell("Spell: Clear Debris")
till = spell("Spell: Till")
water = spell("Spell: Water")
blink = spell("Spell: Blink")
evac = spell("Spell: Evac")
haste = spell("Spell: Haste")
heal = spell("Spell: Heal")
buff = spell("Spell: Buff")
shockwave = spell("Spell: Shockwave")
fireball = spell("Spell: Fireball")
frostbite = spell("Spell: Frostbolt")
teleport = spell("Spell: Teleport")
lantern = spell("Spell: Lantern")
tendrils = spell("Spell: Tendrils")
photosynthesis = spell("Spell: Photosynthesis")
descend = spell("Spell: Descend")
meteor = spell("Spell: Meteor")
bloodmana = spell("Spell: Bloodmana")
lucksteal = spell("Spell: Lucksteal")
spirit = spell("Spell: Spirit")
rewind = spell("Spell: Rewind")