SA2B - v2.4 Logic Fixes (#4770)

* Logic tweaks

* Docs updates

* Delete extra file

* One more logic tweak

* Add missing logic change
This commit is contained in:
PoryGone
2025-03-28 16:11:31 -04:00
committed by GitHub
parent 193faa00ce
commit 8f75384e2e
3 changed files with 17 additions and 20 deletions

View File

@@ -1439,7 +1439,9 @@ def set_mission_upgrade_rules_standard(multiworld: MultiWorld, world: World, pla
lambda state: state.has(ItemName.rouge_iron_boots, player))
add_rule(multiworld.get_location(LocationName.pyramid_cave_lifebox_5, player),
lambda state: state.has(ItemName.sonic_bounce_bracelet, player))
lambda state: (state.has(ItemName.sonic_light_shoes, player) and
state.has(ItemName.sonic_bounce_bracelet, player) and
state.has(ItemName.sonic_mystic_melody, player)))
add_rule(multiworld.get_location(LocationName.pyramid_cave_lifebox_6, player),
lambda state: state.has(ItemName.sonic_bounce_bracelet, player))
@@ -1745,6 +1747,8 @@ def set_mission_upgrade_rules_standard(multiworld: MultiWorld, world: World, pla
state.has(ItemName.sonic_bounce_bracelet, player) and
state.has(ItemName.sonic_flame_ring, player)))
add_rule(multiworld.get_location(LocationName.eqq_quarters_itembox_9, player),
lambda state: state.has(ItemName.rouge_mystic_melody, player))
add_rule(multiworld.get_location(LocationName.lost_colony_itembox_9, player),
lambda state: state.has(ItemName.eggman_jet_engine, player))
add_rule(multiworld.get_location(LocationName.security_hall_itembox_9, player),
@@ -2464,10 +2468,6 @@ def set_mission_upgrade_rules_hard(multiworld: MultiWorld, world: World, player:
add_rule(multiworld.get_location(LocationName.eternal_engine_omo_2, player),
lambda state: state.has(ItemName.tails_booster, player))
add_rule(multiworld.get_location(LocationName.weapons_bed_omo_2, player),
lambda state: state.has(ItemName.eggman_jet_engine, player) or
state.has(ItemName.eggman_large_cannon, player))
add_rule(multiworld.get_location(LocationName.hidden_base_omo_3, player),
lambda state: state.has(ItemName.tails_booster, player))
add_rule(multiworld.get_location(LocationName.eternal_engine_omo_3, player),
@@ -3214,6 +3214,8 @@ def set_mission_upgrade_rules_hard(multiworld: MultiWorld, world: World, player:
lambda state: (state.has(ItemName.sonic_light_shoes, player) and
state.has(ItemName.sonic_flame_ring, player)))
add_rule(multiworld.get_location(LocationName.eqq_quarters_itembox_9, player),
lambda state: state.has(ItemName.rouge_mystic_melody, player))
add_rule(multiworld.get_location(LocationName.lost_colony_itembox_9, player),
lambda state: state.has(ItemName.eggman_jet_engine, player))
add_rule(multiworld.get_location(LocationName.security_hall_itembox_9, player),
@@ -3435,8 +3437,6 @@ def set_mission_upgrade_rules_hard(multiworld: MultiWorld, world: World, player:
# Big Upgrade Requirements
if world.options.bigsanity:
add_rule(multiworld.get_location(LocationName.metal_harbor_big, player),
lambda state: state.has(ItemName.sonic_bounce_bracelet, player))
add_rule(multiworld.get_location(LocationName.mission_street_big, player),
lambda state: state.has(ItemName.tails_booster, player))
add_rule(multiworld.get_location(LocationName.hidden_base_big, player),
@@ -3454,8 +3454,6 @@ def set_mission_upgrade_rules_hard(multiworld: MultiWorld, world: World, player:
add_rule(multiworld.get_location(LocationName.lost_colony_big, player),
lambda state: state.has(ItemName.eggman_jet_engine, player))
add_rule(multiworld.get_location(LocationName.weapons_bed_big, player),
lambda state: state.has(ItemName.eggman_jet_engine, player))
add_rule(multiworld.get_location(LocationName.cannon_core_big_2, player),
lambda state: state.has(ItemName.tails_booster, player))
@@ -3700,10 +3698,6 @@ def set_mission_upgrade_rules_expert(multiworld: MultiWorld, world: World, playe
add_rule(multiworld.get_location(LocationName.eternal_engine_omo_2, player),
lambda state: state.has(ItemName.tails_booster, player))
add_rule(multiworld.get_location(LocationName.weapons_bed_omo_2, player),
lambda state: state.has(ItemName.eggman_jet_engine, player) or
state.has(ItemName.eggman_large_cannon, player))
add_rule(multiworld.get_location(LocationName.hidden_base_omo_3, player),
lambda state: state.has(ItemName.tails_booster, player))
add_rule(multiworld.get_location(LocationName.eternal_engine_omo_3, player),
@@ -4210,7 +4204,8 @@ def set_mission_upgrade_rules_expert(multiworld: MultiWorld, world: World, playe
lambda state: state.has(ItemName.eggman_jet_engine, player))
add_rule(multiworld.get_location(LocationName.eternal_engine_itembox_13, player),
lambda state: state.has(ItemName.tails_booster, player))
lambda state: (state.has(ItemName.tails_booster, player) and
state.has(ItemName.tails_bazooka, player)))
add_rule(multiworld.get_location(LocationName.mad_space_itembox_13, player),
lambda state: state.has(ItemName.rouge_treasure_scope, player))
@@ -4218,7 +4213,8 @@ def set_mission_upgrade_rules_expert(multiworld: MultiWorld, world: World, playe
lambda state: state.has(ItemName.eggman_jet_engine, player))
add_rule(multiworld.get_location(LocationName.eternal_engine_itembox_14, player),
lambda state: state.has(ItemName.tails_booster, player))
lambda state: (state.has(ItemName.tails_booster, player) and
state.has(ItemName.tails_bazooka, player)))
add_rule(multiworld.get_location(LocationName.cosmic_wall_itembox_14, player),
lambda state: state.has(ItemName.eggman_jet_engine, player))
@@ -4264,8 +4260,6 @@ def set_mission_upgrade_rules_expert(multiworld: MultiWorld, world: World, playe
# Big Upgrade Requirements
if world.options.bigsanity:
add_rule(multiworld.get_location(LocationName.metal_harbor_big, player),
lambda state: state.has(ItemName.sonic_bounce_bracelet, player))
add_rule(multiworld.get_location(LocationName.mission_street_big, player),
lambda state: state.has(ItemName.tails_booster, player))
add_rule(multiworld.get_location(LocationName.hidden_base_big, player),
@@ -4276,8 +4270,6 @@ def set_mission_upgrade_rules_expert(multiworld: MultiWorld, world: World, playe
add_rule(multiworld.get_location(LocationName.lost_colony_big, player),
lambda state: state.has(ItemName.eggman_jet_engine, player))
add_rule(multiworld.get_location(LocationName.weapons_bed_big, player),
lambda state: state.has(ItemName.eggman_jet_engine, player))
def set_boss_gate_rules(multiworld: MultiWorld, player: int, gate_bosses: typing.Dict[int, int]):