mirror of
https://github.com/ArchipelagoMW/Archipelago.git
synced 2026-03-30 06:53:22 -07:00
West Garden combat logic
This commit is contained in:
@@ -192,13 +192,13 @@ portal_mapping: List[Portal] = [
|
||||
Portal(name="Dark Tomb to Checkpoint", region="Dark Tomb Entry Point",
|
||||
destination="Sewer_Boss", tag="_"),
|
||||
|
||||
Portal(name="West Garden Exit near Hero's Grave", region="West Garden",
|
||||
Portal(name="West Garden Exit near Hero's Grave", region="West Garden before Terry",
|
||||
destination="Overworld Redux", tag="_lower"),
|
||||
Portal(name="West Garden to Magic Dagger House", region="West Garden",
|
||||
Portal(name="West Garden to Magic Dagger House", region="West Garden at Dagger House",
|
||||
destination="archipelagos_house", tag="_"),
|
||||
Portal(name="West Garden Exit after Boss", region="West Garden after Boss",
|
||||
destination="Overworld Redux", tag="_upper"),
|
||||
Portal(name="West Garden Shop", region="West Garden",
|
||||
Portal(name="West Garden Shop", region="West Garden before Terry",
|
||||
destination="Shop", tag="_"),
|
||||
Portal(name="West Garden Laurels Exit", region="West Garden Laurels Exit Region",
|
||||
destination="Overworld Redux", tag="_lowest"),
|
||||
@@ -616,11 +616,15 @@ tunic_er_regions: Dict[str, RegionInfo] = {
|
||||
"Beneath the Well Front": RegionInfo("Sewer"), # the front, to separate it from the weapon requirement in the mid
|
||||
"Beneath the Well Main": RegionInfo("Sewer"), # the main section of it, requires a weapon
|
||||
"Beneath the Well Back": RegionInfo("Sewer"), # the back two portals, and all 4 upper chests
|
||||
"West Garden": RegionInfo("Archipelagos Redux"),
|
||||
"West Garden before Terry": RegionInfo("Archipelagos Redux"), # the lower entry point, near hero grave
|
||||
"West Garden after Terry": RegionInfo("Archipelagos Redux"), # after Terry, up until next chompignons
|
||||
"West Garden at Dagger House": RegionInfo("Archipelagos Redux"), # just outside magic dagger house
|
||||
"West Garden South Checkpoint": RegionInfo("Archipelagos Redux"),
|
||||
"Magic Dagger House": RegionInfo("archipelagos_house", dead_end=DeadEnd.all_cats),
|
||||
"West Garden Portal": RegionInfo("Archipelagos Redux", dead_end=DeadEnd.restricted),
|
||||
"West Garden Portal Item": RegionInfo("Archipelagos Redux", dead_end=DeadEnd.restricted),
|
||||
"West Garden Laurels Exit Region": RegionInfo("Archipelagos Redux"),
|
||||
"West Garden before Boss": RegionInfo("Archipelagos Redux"), # main west garden
|
||||
"West Garden after Boss": RegionInfo("Archipelagos Redux"),
|
||||
"West Garden Hero's Grave Region": RegionInfo("Archipelagos Redux"),
|
||||
"Ruined Atoll": RegionInfo("Atoll Redux"),
|
||||
@@ -1092,38 +1096,64 @@ traversal_requirements: Dict[str, Dict[str, List[List[str]]]] = {
|
||||
"Dark Tomb Main":
|
||||
[],
|
||||
},
|
||||
"West Garden": {
|
||||
"West Garden Laurels Exit Region":
|
||||
[["Hyperdash"], ["LS1"]],
|
||||
"West Garden after Boss":
|
||||
[],
|
||||
"West Garden before Terry": {
|
||||
"West Garden after Terry":
|
||||
[],
|
||||
"West Garden Hero's Grave Region":
|
||||
[],
|
||||
},
|
||||
"West Garden Hero's Grave Region": {
|
||||
"West Garden before Terry":
|
||||
[],
|
||||
},
|
||||
"West Garden after Terry": {
|
||||
"West Garden before Terry":
|
||||
[],
|
||||
"West Garden South Checkpoint":
|
||||
[],
|
||||
"West Garden Laurels Exit Region":
|
||||
[["LS1"]],
|
||||
},
|
||||
"West Garden South Checkpoint": {
|
||||
"West Garden before Boss":
|
||||
[],
|
||||
"West Garden at Dagger House":
|
||||
[],
|
||||
"West Garden after Terry":
|
||||
[],
|
||||
},
|
||||
"West Garden before Boss": {
|
||||
"West Garden after Boss":
|
||||
[],
|
||||
"West Garden South Checkpoint":
|
||||
[],
|
||||
},
|
||||
"West Garden after Boss": {
|
||||
"West Garden before Boss":
|
||||
[["Hyperdash"]],
|
||||
},
|
||||
"West Garden at Dagger House": {
|
||||
"West Garden Laurels Exit Region":
|
||||
[["Hyperdash"]],
|
||||
"West Garden South Checkpoint":
|
||||
[],
|
||||
"West Garden Portal Item":
|
||||
[["IG2"]],
|
||||
},
|
||||
"West Garden Laurels Exit Region": {
|
||||
"West Garden":
|
||||
[["Hyperdash"]],
|
||||
},
|
||||
"West Garden after Boss": {
|
||||
"West Garden":
|
||||
"West Garden at Dagger House":
|
||||
[["Hyperdash"]],
|
||||
},
|
||||
"West Garden Portal Item": {
|
||||
"West Garden":
|
||||
"West Garden at Dagger House":
|
||||
[["IG1"]],
|
||||
"West Garden Portal":
|
||||
[["Hyperdash", "West Garden"]],
|
||||
[["Hyperdash", "West Garden South Checkpoint"]],
|
||||
},
|
||||
"West Garden Portal": {
|
||||
"West Garden Portal Item":
|
||||
[["Hyperdash"]],
|
||||
},
|
||||
"West Garden Hero's Grave Region": {
|
||||
"West Garden":
|
||||
[],
|
||||
},
|
||||
"Ruined Atoll": {
|
||||
"Ruined Atoll Lower Entry Area":
|
||||
[["Hyperdash"], ["LS1"]],
|
||||
@@ -1533,7 +1563,7 @@ traversal_requirements: Dict[str, Dict[str, List[List[str]]]] = {
|
||||
"Far Shore to Library Region":
|
||||
[["Library Lab"]],
|
||||
"Far Shore to West Garden Region":
|
||||
[["West Garden"]],
|
||||
[["West Garden South Checkpoint"]],
|
||||
"Far Shore to Fortress Region":
|
||||
[["Fortress Exterior from Overworld", "Beneath the Vault Back", "Eastern Vault Fortress"]],
|
||||
},
|
||||
|
||||
@@ -508,25 +508,46 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_
|
||||
rule=lambda state: has_lantern(state, world))
|
||||
|
||||
# West Garden
|
||||
# combat logic regions
|
||||
wg_before_to_after_terry = regions["West Garden before Terry"].connect(
|
||||
connecting_region=regions["West Garden after Terry"])
|
||||
wg_after_to_before_terry = regions["West Garden after Terry"].connect(
|
||||
connecting_region=regions["West Garden before Terry"])
|
||||
|
||||
regions["West Garden after Terry"].connect(
|
||||
connecting_region=regions["West Garden South Checkpoint"])
|
||||
wg_checkpoint_to_after_terry = regions["West Garden South Checkpoint"].connect(
|
||||
connecting_region=regions["West Garden after Terry"])
|
||||
|
||||
wg_checkpoint_to_dagger = regions["West Garden South Checkpoint"].connect(
|
||||
connecting_region=regions["West Garden at Dagger House"])
|
||||
wg_dagger_to_checkpoint = regions["West Garden at Dagger House"].connect(
|
||||
connecting_region=regions["West Garden South Checkpoint"])
|
||||
|
||||
wg_checkpoint_to_before_boss = regions["West Garden South Checkpoint"].connect(
|
||||
connecting_region=regions["West Garden before Boss"])
|
||||
regions["West Garden before Boss"].connect(
|
||||
connecting_region=regions["West Garden South Checkpoint"])
|
||||
|
||||
regions["West Garden Laurels Exit Region"].connect(
|
||||
connecting_region=regions["West Garden"],
|
||||
connecting_region=regions["West Garden at Dagger House"],
|
||||
rule=lambda state: state.has(laurels, player))
|
||||
regions["West Garden"].connect(
|
||||
regions["West Garden at Dagger House"].connect(
|
||||
connecting_region=regions["West Garden Laurels Exit Region"],
|
||||
rule=lambda state: state.has(laurels, player))
|
||||
|
||||
regions["West Garden after Boss"].connect(
|
||||
connecting_region=regions["West Garden"],
|
||||
connecting_region=regions["West Garden before Boss"],
|
||||
rule=lambda state: state.has(laurels, player))
|
||||
wg_to_after_gk = regions["West Garden"].connect(
|
||||
wg_to_after_gk = regions["West Garden before Boss"].connect(
|
||||
connecting_region=regions["West Garden after Boss"],
|
||||
rule=lambda state: state.has(laurels, player) or has_sword(state, player))
|
||||
|
||||
regions["West Garden"].connect(
|
||||
regions["West Garden before Terry"].connect(
|
||||
connecting_region=regions["West Garden Hero's Grave Region"],
|
||||
rule=lambda state: has_ability(prayer, state, world))
|
||||
regions["West Garden Hero's Grave Region"].connect(
|
||||
connecting_region=regions["West Garden"])
|
||||
connecting_region=regions["West Garden before Terry"])
|
||||
|
||||
regions["West Garden Portal"].connect(
|
||||
connecting_region=regions["West Garden Portal Item"],
|
||||
@@ -535,11 +556,11 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_
|
||||
connecting_region=regions["West Garden Portal"],
|
||||
rule=lambda state: state.has(laurels, player) and has_ability(prayer, state, world))
|
||||
|
||||
# nmg: can ice grapple to and from the item behind the magic dagger house
|
||||
# can ice grapple to and from the item behind the magic dagger house
|
||||
regions["West Garden Portal Item"].connect(
|
||||
connecting_region=regions["West Garden"],
|
||||
connecting_region=regions["West Garden at Dagger House"],
|
||||
rule=lambda state: has_ice_grapple_logic(True, IceGrappling.option_easy, state, world))
|
||||
regions["West Garden"].connect(
|
||||
regions["West Garden at Dagger House"].connect(
|
||||
connecting_region=regions["West Garden Portal Item"],
|
||||
rule=lambda state: has_ice_grapple_logic(True, IceGrappling.option_medium, state, world))
|
||||
|
||||
@@ -1192,6 +1213,21 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_
|
||||
add_rule(dt_exit_to_main,
|
||||
lambda state: has_combat_reqs("Dark Tomb", state, player))
|
||||
|
||||
# todo: add rule for running past the enemies and into dagger house, with a can_reach for the entrance
|
||||
set_rule(wg_before_to_after_terry,
|
||||
lambda state: state.has(laurels, player) or has_combat_reqs("West Garden", state, player))
|
||||
set_rule(wg_after_to_before_terry,
|
||||
lambda state: state.has(laurels, player) or has_combat_reqs("West Garden", state, player))
|
||||
# laurels through, probably to the checkpoint, or just fight
|
||||
set_rule(wg_checkpoint_to_after_terry,
|
||||
lambda state: state.has(laurels, player) or has_combat_reqs("West Garden", state, player))
|
||||
set_rule(wg_checkpoint_to_dagger,
|
||||
lambda state: state.has(laurels, player) or has_combat_reqs("West Garden", state, player))
|
||||
set_rule(wg_dagger_to_checkpoint,
|
||||
lambda state: state.has(laurels, player) or has_combat_reqs("West Garden", state, player))
|
||||
set_rule(wg_checkpoint_to_before_boss,
|
||||
lambda state: state.has(laurels, player) or has_combat_reqs("West Garden", state, player))
|
||||
|
||||
|
||||
def set_er_location_rules(world: "TunicWorld") -> None:
|
||||
player = world.player
|
||||
@@ -1491,6 +1527,16 @@ def set_er_location_rules(world: "TunicWorld") -> None:
|
||||
add_rule(multiworld.get_location("Beneath the Well - [Side Room] Chest By Phrends", player),
|
||||
lambda state: has_combat_reqs("Overworld", state, player))
|
||||
|
||||
# laurels past the enemies, then use the wand or gun to take care of the fairies that chased you
|
||||
add_rule(multiworld.get_location("West Garden - [West Lowlands] Tree Holy Cross Chest", player),
|
||||
lambda state: state.has_any({fire_wand, "Gun"}, player))
|
||||
add_rule(multiworld.get_location("West Garden - [Central Lowlands] Chest Beneath Faeries", player),
|
||||
lambda state: has_combat_reqs("West Garden", state, player))
|
||||
add_rule(multiworld.get_location("West Garden - [Central Lowlands] Chest Beneath Save Point", player),
|
||||
lambda state: has_combat_reqs("West Garden", state, player))
|
||||
add_rule(multiworld.get_location("West Garden - [West Highlands] Upper Left Walkway", player),
|
||||
lambda state: has_combat_reqs("West Garden", state, player))
|
||||
|
||||
# could add it to the other fuse events but that's just wasteful imo
|
||||
add_rule(multiworld.get_location("Eastern Vault West Fuses", player),
|
||||
lambda state: has_combat_reqs("Eastern Vault Fortress", state, player))
|
||||
|
||||
@@ -83,7 +83,7 @@ tunic_events: Dict[str, str] = {
|
||||
"Quarry Connector Fuse": "Quarry Connector",
|
||||
"Quarry Fuse": "Quarry",
|
||||
"Ziggurat Fuse": "Rooted Ziggurat Lower Back",
|
||||
"West Garden Fuse": "West Garden",
|
||||
"West Garden Fuse": "West Garden South Checkpoint",
|
||||
"Library Fuse": "Library Lab",
|
||||
"Place Questagons": "Sealed Temple",
|
||||
}
|
||||
|
||||
@@ -78,9 +78,9 @@ easy_ls: List[LadderInfo] = [
|
||||
|
||||
# West Garden
|
||||
# exit after Garden Knight
|
||||
LadderInfo("West Garden", "Archipelagos Redux, Overworld Redux_upper"),
|
||||
LadderInfo("West Garden before Boss", "Archipelagos Redux, Overworld Redux_upper"),
|
||||
# West Garden laurels exit
|
||||
LadderInfo("West Garden", "Archipelagos Redux, Overworld Redux_lowest"),
|
||||
LadderInfo("West Garden after Terry", "Archipelagos Redux, Overworld Redux_lowest"),
|
||||
|
||||
# Atoll, use the little ladder you fix at the beginning
|
||||
LadderInfo("Ruined Atoll", "Atoll Redux, Overworld Redux_lower"),
|
||||
|
||||
@@ -290,26 +290,26 @@ location_table: Dict[str, TunicLocationData] = {
|
||||
"Hero's Grave - Feathers Relic": TunicLocationData("Swamp", "Hero Relic - Swamp"),
|
||||
"West Furnace - Chest": TunicLocationData("West Garden", "Furnace Walking Path"),
|
||||
"Overworld - [West] Near West Garden Entrance": TunicLocationData("West Garden", "Overworld to West Garden from Furnace"),
|
||||
"West Garden - [Central Highlands] Holy Cross (Blue Lines)": TunicLocationData("West Garden", "West Garden", location_group="Holy Cross"),
|
||||
"West Garden - [West Lowlands] Tree Holy Cross Chest": TunicLocationData("West Garden", "West Garden", location_group="Holy Cross"),
|
||||
"West Garden - [Southeast Lowlands] Outside Cave": TunicLocationData("West Garden", "West Garden"),
|
||||
"West Garden - [Central Lowlands] Chest Beneath Faeries": TunicLocationData("West Garden", "West Garden"),
|
||||
"West Garden - [North] Behind Holy Cross Door": TunicLocationData("West Garden", "West Garden", location_group="Holy Cross"),
|
||||
"West Garden - [Central Highlands] Top of Ladder Before Boss": TunicLocationData("West Garden", "West Garden"),
|
||||
"West Garden - [Central Lowlands] Passage Beneath Bridge": TunicLocationData("West Garden", "West Garden"),
|
||||
"West Garden - [North] Across From Page Pickup": TunicLocationData("West Garden", "West Garden"),
|
||||
"West Garden - [Central Lowlands] Below Left Walkway": TunicLocationData("West Garden", "West Garden"),
|
||||
"West Garden - [West] In Flooded Walkway": TunicLocationData("West Garden", "West Garden"),
|
||||
"West Garden - [West] Past Flooded Walkway": TunicLocationData("West Garden", "West Garden"),
|
||||
"West Garden - [North] Obscured Beneath Hero's Memorial": TunicLocationData("West Garden", "West Garden"),
|
||||
"West Garden - [Central Lowlands] Chest Near Shortcut Bridge": TunicLocationData("West Garden", "West Garden"),
|
||||
"West Garden - [West Highlands] Upper Left Walkway": TunicLocationData("West Garden", "West Garden"),
|
||||
"West Garden - [Central Lowlands] Chest Beneath Save Point": TunicLocationData("West Garden", "West Garden"),
|
||||
"West Garden - [Central Highlands] Behind Guard Captain": TunicLocationData("West Garden", "West Garden"),
|
||||
"West Garden - [Central Highlands] Holy Cross (Blue Lines)": TunicLocationData("West Garden", "West Garden before Boss", location_group="Holy Cross"),
|
||||
"West Garden - [West Lowlands] Tree Holy Cross Chest": TunicLocationData("West Garden", "West Garden after Terry", location_group="Holy Cross"),
|
||||
"West Garden - [Southeast Lowlands] Outside Cave": TunicLocationData("West Garden", "West Garden at Dagger House"),
|
||||
"West Garden - [Central Lowlands] Chest Beneath Faeries": TunicLocationData("West Garden", "West Garden South Checkpoint"),
|
||||
"West Garden - [North] Behind Holy Cross Door": TunicLocationData("West Garden", "West Garden before Terry", location_group="Holy Cross"),
|
||||
"West Garden - [Central Highlands] Top of Ladder Before Boss": TunicLocationData("West Garden", "West Garden before Boss"),
|
||||
"West Garden - [Central Lowlands] Passage Beneath Bridge": TunicLocationData("West Garden", "West Garden after Terry"),
|
||||
"West Garden - [North] Across From Page Pickup": TunicLocationData("West Garden", "West Garden before Terry"),
|
||||
"West Garden - [Central Lowlands] Below Left Walkway": TunicLocationData("West Garden", "West Garden after Terry"),
|
||||
"West Garden - [West] In Flooded Walkway": TunicLocationData("West Garden", "West Garden after Terry"),
|
||||
"West Garden - [West] Past Flooded Walkway": TunicLocationData("West Garden", "West Garden after Terry"),
|
||||
"West Garden - [North] Obscured Beneath Hero's Memorial": TunicLocationData("West Garden", "West Garden before Terry"),
|
||||
"West Garden - [Central Lowlands] Chest Near Shortcut Bridge": TunicLocationData("West Garden", "West Garden after Terry"),
|
||||
"West Garden - [West Highlands] Upper Left Walkway": TunicLocationData("West Garden", "West Garden South Checkpoint"),
|
||||
"West Garden - [Central Lowlands] Chest Beneath Save Point": TunicLocationData("West Garden", "West Garden South Checkpoint"),
|
||||
"West Garden - [Central Highlands] Behind Guard Captain": TunicLocationData("West Garden", "West Garden before Boss"),
|
||||
"West Garden - [Central Highlands] After Garden Knight": TunicLocationData("Overworld", "West Garden after Boss", location_group="Bosses"),
|
||||
"West Garden - [South Highlands] Secret Chest Beneath Fuse": TunicLocationData("West Garden", "West Garden"),
|
||||
"West Garden - [South Highlands] Secret Chest Beneath Fuse": TunicLocationData("West Garden", "West Garden South Checkpoint"),
|
||||
"West Garden - [East Lowlands] Page Behind Ice Dagger House": TunicLocationData("West Garden", "West Garden Portal Item"),
|
||||
"West Garden - [North] Page Pickup": TunicLocationData("West Garden", "West Garden"),
|
||||
"West Garden - [North] Page Pickup": TunicLocationData("West Garden", "West Garden before Terry"),
|
||||
"West Garden House - [Southeast Lowlands] Ice Dagger Pickup": TunicLocationData("West Garden", "Magic Dagger House"),
|
||||
"Hero's Grave - Effigy Relic": TunicLocationData("West Garden", "Hero Relic - West Garden"),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user