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,21 +134,16 @@ class MessengerHardRules(MessengerRules):
|
||||||
self.location_rules.update({
|
self.location_rules.update({
|
||||||
"Howling Grotto Seal - Windy Saws and Balls": self.true,
|
"Howling Grotto Seal - Windy Saws and Balls": self.true,
|
||||||
"Glacial Peak Seal - Projectile Spike Pit": self.true,
|
"Glacial Peak Seal - Projectile Spike Pit": self.true,
|
||||||
|
"Claustro": self.has_wingsuit,
|
||||||
})
|
})
|
||||||
|
|
||||||
self.extra_rules = {
|
self.extra_rules = {
|
||||||
"Climbing Claws": self.has_dart,
|
"Key of Strength": lambda state: self.has_dart(state) or self.has_windmill(state),
|
||||||
"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 Symbiosis": self.has_windmill,
|
"Key of Symbiosis": self.has_windmill,
|
||||||
"Autumn Hills Seal - Spike Ball Darts": lambda state: (self.has_dart(state) and self.has_windmill(state))
|
"Autumn Hills Seal - Spike Ball Darts": lambda state: (self.has_dart(state) and self.has_windmill(state))
|
||||||
or self.has_wingsuit(state),
|
or self.has_wingsuit(state),
|
||||||
"Glacial Peak Seal - Glacial Air Swag": self.has_windmill,
|
"Glacial Peak Seal - Glacial Air Swag": self.has_windmill,
|
||||||
"Underworld Seal - Fireball Wave": lambda state: self.has_wingsuit(state)
|
"Underworld Seal - Fireball Wave": lambda state: state.has_all({"Ninja Tabi", "Windmill Shuriken"},
|
||||||
or state.has_all({"Ninja Tabi", "Windmill Shuriken"},
|
|
||||||
self.player),
|
self.player),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -158,6 +153,8 @@ class MessengerHardRules(MessengerRules):
|
||||||
def set_messenger_rules(self) -> None:
|
def set_messenger_rules(self) -> None:
|
||||||
super().set_messenger_rules()
|
super().set_messenger_rules()
|
||||||
for loc, rule in self.extra_rules.items():
|
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")
|
add_rule(self.world.multiworld.get_location(loc, self.player), rule, "or")
|
||||||
|
|
||||||
|
|
||||||
|
@ -196,7 +193,7 @@ class MessengerOOBRules(MessengerRules):
|
||||||
|
|
||||||
self.location_rules = {
|
self.location_rules = {
|
||||||
"Claustro": self.has_wingsuit,
|
"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),
|
"Key of Love": lambda state: state.has_all({"Sun Crest", "Moon Crest"}, self.player),
|
||||||
"Pyro": self.has_tabi,
|
"Pyro": self.has_tabi,
|
||||||
"Key of Chaos": 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
|
* Sometimes upon teleporting back to HQ, Ninja will run left and enter a different portal than the one entered by the
|
||||||
player.
|
player.
|
||||||
* Text entry menus don't accept controller input
|
* 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?
|
## What do I do if I have a problem?
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,7 @@ class HardLogicTest(MessengerTestBase):
|
||||||
|
|
||||||
class ChallengingLogicTest(MessengerTestBase):
|
class ChallengingLogicTest(MessengerTestBase):
|
||||||
options = {
|
options = {
|
||||||
|
"shuffle_seals": "false",
|
||||||
"logic_level": "challenging"
|
"logic_level": "challenging"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue