The Messenger: Fix a missing location rule and missing known issue (#1586)
* fix missing rule * document a missing known issue * fix a break when shuffle seals is off * test the thing i just fixed * invert the if so it's a bit faster
This commit is contained in:
parent
77b2ed54a6
commit
0ed3865c30
|
@ -134,22 +134,17 @@ class MessengerHardRules(MessengerRules):
|
|||
self.location_rules.update({
|
||||
"Howling Grotto Seal - Windy Saws and Balls": self.true,
|
||||
"Glacial Peak Seal - Projectile Spike Pit": self.true,
|
||||
"Claustro": self.has_wingsuit,
|
||||
})
|
||||
|
||||
self.extra_rules = {
|
||||
"Climbing Claws": self.has_dart,
|
||||
"Astral Seed": self.has_dart,
|
||||
"Candle": self.has_dart,
|
||||
"Key of Strength": lambda state: state.has("Power Thistle", self.player) or
|
||||
self.has_dart(state) or
|
||||
self.has_windmill(state),
|
||||
"Key of Strength": lambda state: self.has_dart(state) or self.has_windmill(state),
|
||||
"Key of Symbiosis": self.has_windmill,
|
||||
"Autumn Hills Seal - Spike Ball Darts": lambda state: (self.has_dart(state) and self.has_windmill(state))
|
||||
or self.has_wingsuit(state),
|
||||
"Glacial Peak Seal - Glacial Air Swag": self.has_windmill,
|
||||
"Underworld Seal - Fireball Wave": lambda state: self.has_wingsuit(state)
|
||||
or state.has_all({"Ninja Tabi", "Windmill Shuriken"},
|
||||
self.player),
|
||||
"Underworld Seal - Fireball Wave": lambda state: state.has_all({"Ninja Tabi", "Windmill Shuriken"},
|
||||
self.player),
|
||||
}
|
||||
|
||||
def has_windmill(self, state: CollectionState) -> bool:
|
||||
|
@ -158,6 +153,8 @@ class MessengerHardRules(MessengerRules):
|
|||
def set_messenger_rules(self) -> None:
|
||||
super().set_messenger_rules()
|
||||
for loc, rule in self.extra_rules.items():
|
||||
if not self.world.multiworld.shuffle_seals[self.player] and "Seal" in loc:
|
||||
continue
|
||||
add_rule(self.world.multiworld.get_location(loc, self.player), rule, "or")
|
||||
|
||||
|
||||
|
@ -196,7 +193,7 @@ class MessengerOOBRules(MessengerRules):
|
|||
|
||||
self.location_rules = {
|
||||
"Claustro": self.has_wingsuit,
|
||||
"Key of Strength": self.has_wingsuit,
|
||||
"Key of Strength": lambda state: self.has_vertical(state) or state.has("Power Thistle", self.player),
|
||||
"Key of Love": lambda state: state.has_all({"Sun Crest", "Moon Crest"}, self.player),
|
||||
"Pyro": self.has_tabi,
|
||||
"Key of Chaos": self.has_tabi,
|
||||
|
|
|
@ -66,6 +66,7 @@ for it. The groups you can use for The Messenger are:
|
|||
* Sometimes upon teleporting back to HQ, Ninja will run left and enter a different portal than the one entered by the
|
||||
player.
|
||||
* Text entry menus don't accept controller input
|
||||
* Opening the shop chest in power seal hunt mode from the tower of time HQ will soft lock the game.
|
||||
|
||||
## What do I do if I have a problem?
|
||||
|
||||
|
|
|
@ -79,6 +79,7 @@ class HardLogicTest(MessengerTestBase):
|
|||
|
||||
class ChallengingLogicTest(MessengerTestBase):
|
||||
options = {
|
||||
"shuffle_seals": "false",
|
||||
"logic_level": "challenging"
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue