mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
TUNIC: Combat logic fix (#4589)
* Potential fix for attack issue * also put the lazy version of the swamp fix in for good measure * fix extra line * now it is good * Add the test, roll the other PR into this one * Make the test exception more useful * Remove debug print * Combat logic fixed? * Move a few areas to before well instead of east forest * Put in qwint's suggestions in test * Implement qwint's suggestions in combat_logic.py * Implement qwint's suggestions for combat_logic.py * Fix typo * Remove experimental from combat logic description * Remove copy_mixin again * Add comment about copy_mixin * Use a more proper random * Some optimizations from Vi's comments
This commit is contained in:
@@ -1386,9 +1386,9 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_
|
||||
# need to fight through the rudelings and turret, or just laurels from near the windmill
|
||||
set_rule(ow_to_well_entry,
|
||||
lambda state: state.has(laurels, player)
|
||||
or has_combat_reqs("East Forest", state, player))
|
||||
or has_combat_reqs("Before Well", state, player))
|
||||
set_rule(ow_tunnel_beach,
|
||||
lambda state: has_combat_reqs("East Forest", state, player))
|
||||
lambda state: has_combat_reqs("Before Well", state, player))
|
||||
|
||||
add_rule(atoll_statue,
|
||||
lambda state: has_combat_reqs("Ruined Atoll", state, player))
|
||||
@@ -1467,12 +1467,12 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_
|
||||
set_rule(cath_entry_to_elev,
|
||||
lambda state: options.entrance_rando
|
||||
or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)
|
||||
or (has_ability(prayer, state, world) and has_combat_reqs("Cathedral", state, player)))
|
||||
or (has_ability(prayer, state, world) and has_combat_reqs("Swamp", state, player)))
|
||||
|
||||
set_rule(cath_entry_to_main,
|
||||
lambda state: has_combat_reqs("Cathedral", state, player))
|
||||
lambda state: has_combat_reqs("Swamp", state, player))
|
||||
set_rule(cath_elev_to_main,
|
||||
lambda state: has_combat_reqs("Cathedral", state, player))
|
||||
lambda state: has_combat_reqs("Swamp", state, player))
|
||||
|
||||
# for spots where you can go into and come out of an entrance to reset enemy aggro
|
||||
if world.options.entrance_rando:
|
||||
@@ -1835,10 +1835,10 @@ def set_er_location_rules(world: "TunicWorld") -> None:
|
||||
combat_logic_to_loc("Overworld - [Northeast] Chest Above Patrol Cave", "Garden Knight", dagger=True)
|
||||
combat_logic_to_loc("Overworld - [Southwest] West Beach Guarded By Turret", "Overworld", dagger=True)
|
||||
combat_logic_to_loc("Overworld - [Southwest] West Beach Guarded By Turret 2", "Overworld")
|
||||
combat_logic_to_loc("Overworld - [Southwest] Bombable Wall Near Fountain", "East Forest", dagger=True)
|
||||
combat_logic_to_loc("Overworld - [Southwest] Fountain Holy Cross", "East Forest", dagger=True)
|
||||
combat_logic_to_loc("Overworld - [Southwest] South Chest Near Guard", "East Forest", dagger=True)
|
||||
combat_logic_to_loc("Overworld - [Southwest] Tunnel Guarded By Turret", "East Forest", dagger=True)
|
||||
combat_logic_to_loc("Overworld - [Southwest] Bombable Wall Near Fountain", "Before Well", dagger=True)
|
||||
combat_logic_to_loc("Overworld - [Southwest] Fountain Holy Cross", "Before Well", dagger=True)
|
||||
combat_logic_to_loc("Overworld - [Southwest] South Chest Near Guard", "Before Well", dagger=True)
|
||||
combat_logic_to_loc("Overworld - [Southwest] Tunnel Guarded By Turret", "Before Well", dagger=True)
|
||||
combat_logic_to_loc("Overworld - [Northwest] Chest Near Turret", "Before Well")
|
||||
|
||||
add_rule(world.get_location("Hourglass Cave - Hourglass Chest"),
|
||||
@@ -1927,4 +1927,4 @@ def set_er_location_rules(world: "TunicWorld") -> None:
|
||||
|
||||
# zip through the rubble to sneakily grab this chest, or just fight to it
|
||||
add_rule(world.get_location("Cathedral - [1F] Near Spikes"),
|
||||
lambda state: laurels_zip(state, world) or has_combat_reqs("Cathedral", state, player))
|
||||
lambda state: laurels_zip(state, world) or has_combat_reqs("Swamp", state, player))
|
||||
|
Reference in New Issue
Block a user