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

@@ -59,6 +59,8 @@
- Going into submenus from the pause menu should no longer reset traps
- `Sonic - Magic Gloves` are now plural
- Junk items will no longer cause a crash when in a falling state
- Saves should no longer incorrectly be marked as not matching the connected server
- Fixed miscellaneous crashes
- Chao Garden:
- Prevent races from occasionally becoming uncompletable when using the "Prize Only" option
- Properly allow Hero Chao to participate in Dark Races

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]):

View File

@@ -129,7 +129,10 @@ If you wish to use the `SADX Music` option of the Randomizer, you must own a cop
- If you enabled an `SADX Music` option, then most likely the music data was not copied properly into the mod folder (See Additional Options for instructions).
- Mission 1 is missing a texture in the stage select UI.
- Most likely another mod is conflicting and overwriting the texture pack. It is recommeded to have the SA2B Archipelago mod load last in the mod manager.
- Most likely another mod is conflicting and overwriting the texture pack. It is recommended to have the SA2B Archipelago mod load last in the mod manager.
- Minigame trap is un-winnable
- If you are using the SA2 Input Controls mod, it conflicts with certain minigames such as the Input Sequence Trap and medium difficulty Fishing Trap. Disabling the SA2 Input Controls mod should resolve the issue.
## Save File Safeguard (Advanced Option)