Skip to content
This repository was archived by the owner on Apr 27, 2024. It is now read-only.

Commit 738a9eb

Browse files
authored
TUNIC: Misc Logic Changes, Additions (ArchipelagoMW#2856)
* Add nmg boss scav kill * Add boss quick kills * Fix name of orb * Remove getting into zig with ice grapple * Remove connection from quarry to zig * Add a few missing dependent regions * Separate the atoll statue and portal pad so that it doesn't assume you can get from one to the other without prayer
1 parent 5c05ab1 commit 738a9eb

File tree

4 files changed

+33
-13
lines changed

4 files changed

+33
-13
lines changed

worlds/tunic/er_data.py

+20-7
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ def scene_destination(self) -> str: # full, nonchanging name to interpret by th
211211
destination="Shop_"),
212212
Portal(name="Atoll to Far Shore", region="Ruined Atoll Portal",
213213
destination="Transit_teleporter_atoll"),
214-
Portal(name="Atoll Statue Teleporter", region="Ruined Atoll Portal",
214+
Portal(name="Atoll Statue Teleporter", region="Ruined Atoll Statue",
215215
destination="Library Exterior_"),
216216
Portal(name="Frog Stairs Eye Entrance", region="Ruined Atoll",
217217
destination="Frog Stairs_eye"),
@@ -600,6 +600,7 @@ class Hint(IntEnum):
600600
"Ruined Atoll Lower Entry Area": RegionInfo("Atoll Redux"),
601601
"Ruined Atoll Frog Mouth": RegionInfo("Atoll Redux"),
602602
"Ruined Atoll Portal": RegionInfo("Atoll Redux"),
603+
"Ruined Atoll Statue": RegionInfo("Atoll Redux"),
603604
"Frog's Domain Entry": RegionInfo("Frog Stairs"),
604605
"Frog's Domain": RegionInfo("frog cave main", hint=Hint.region),
605606
"Frog's Domain Back": RegionInfo("frog cave main", hint=Hint.scene),
@@ -749,6 +750,8 @@ class Hint(IntEnum):
749750
["Forest Belltower Main", "Forest Belltower Lower"],
750751
("East Forest", "East Forest Dance Fox Spot", "East Forest Portal"):
751752
["East Forest", "East Forest Dance Fox Spot", "East Forest Portal"],
753+
("Guard House 1 East", "Guard House 1 West"):
754+
["Guard House 1 East", "Guard House 1 West"],
752755
("Forest Grave Path Main", "Forest Grave Path Upper"):
753756
["Forest Grave Path Main", "Forest Grave Path Upper", "Forest Grave Path by Grave", "Forest Hero's Grave"],
754757
("Forest Grave Path by Grave", "Forest Hero's Grave"):
@@ -762,8 +765,10 @@ class Hint(IntEnum):
762765
("West Garden", "West Garden Laurels Exit", "West Garden after Boss", "West Garden Hero's Grave"):
763766
["West Garden", "West Garden Laurels Exit", "West Garden after Boss", "West Garden Hero's Grave"],
764767
("West Garden Portal", "West Garden Portal Item"): ["West Garden Portal", "West Garden Portal Item"],
765-
("Ruined Atoll", "Ruined Atoll Lower Entry Area", "Ruined Atoll Frog Mouth", "Ruined Atoll Portal"):
766-
["Ruined Atoll", "Ruined Atoll Lower Entry Area", "Ruined Atoll Frog Mouth", "Ruined Atoll Portal"],
768+
("Ruined Atoll", "Ruined Atoll Lower Entry Area", "Ruined Atoll Frog Mouth", "Ruined Atoll Portal",
769+
"Ruined Atoll Statue"):
770+
["Ruined Atoll", "Ruined Atoll Lower Entry Area", "Ruined Atoll Frog Mouth", "Ruined Atoll Portal",
771+
"Ruined Atoll Statue"],
767772
("Frog's Domain",):
768773
["Frog's Domain", "Frog's Domain Back"],
769774
("Library Exterior Ladder", "Library Exterior Tree"):
@@ -842,6 +847,8 @@ class Hint(IntEnum):
842847
["Forest Belltower Main", "Forest Belltower Lower"],
843848
("East Forest", "East Forest Dance Fox Spot", "East Forest Portal"):
844849
["East Forest", "East Forest Dance Fox Spot", "East Forest Portal"],
850+
("Guard House 1 East", "Guard House 1 West"):
851+
["Guard House 1 East", "Guard House 1 West"],
845852
("Forest Grave Path Main", "Forest Grave Path Upper", "Forest Grave Path by Grave", "Forest Hero's Grave"):
846853
["Forest Grave Path Main", "Forest Grave Path Upper", "Forest Grave Path by Grave", "Forest Hero's Grave"],
847854
("Beneath the Well Front", "Beneath the Well Main", "Beneath the Well Back"):
@@ -854,8 +861,10 @@ class Hint(IntEnum):
854861
"West Garden Portal", "West Garden Portal Item"):
855862
["West Garden", "West Garden Laurels Exit", "West Garden after Boss", "West Garden Hero's Grave",
856863
"West Garden Portal", "West Garden Portal Item"],
857-
("Ruined Atoll", "Ruined Atoll Lower Entry Area", "Ruined Atoll Frog Mouth", "Ruined Atoll Portal"):
858-
["Ruined Atoll", "Ruined Atoll Lower Entry Area", "Ruined Atoll Frog Mouth", "Ruined Atoll Portal"],
864+
("Ruined Atoll", "Ruined Atoll Lower Entry Area", "Ruined Atoll Frog Mouth", "Ruined Atoll Portal",
865+
"Ruined Atoll Statue"):
866+
["Ruined Atoll", "Ruined Atoll Lower Entry Area", "Ruined Atoll Frog Mouth", "Ruined Atoll Portal",
867+
"Ruined Atoll Statue"],
859868
("Frog's Domain",):
860869
["Frog's Domain", "Frog's Domain Back"],
861870
("Library Exterior Ladder", "Library Exterior Tree"):
@@ -934,6 +943,8 @@ class Hint(IntEnum):
934943
["Forest Belltower Main", "Forest Belltower Lower"],
935944
("East Forest", "East Forest Dance Fox Spot", "East Forest Portal"):
936945
["East Forest", "East Forest Dance Fox Spot", "East Forest Portal"],
946+
("Guard House 1 East", "Guard House 1 West"):
947+
["Guard House 1 East", "Guard House 1 West"],
937948
# can use laurels, ice grapple, or ladder storage to traverse
938949
("Forest Grave Path Main", "Forest Grave Path Upper", "Forest Grave Path by Grave", "Forest Hero's Grave"):
939950
["Forest Grave Path Main", "Forest Grave Path Upper", "Forest Grave Path by Grave", "Forest Hero's Grave"],
@@ -948,8 +959,10 @@ class Hint(IntEnum):
948959
"West Garden Portal", "West Garden Portal Item"):
949960
["West Garden", "West Garden Laurels Exit", "West Garden after Boss", "West Garden Hero's Grave",
950961
"West Garden Portal", "West Garden Portal Item"],
951-
("Ruined Atoll", "Ruined Atoll Lower Entry Area", "Ruined Atoll Frog Mouth", "Ruined Atoll Portal"):
952-
["Ruined Atoll", "Ruined Atoll Lower Entry Area", "Ruined Atoll Frog Mouth", "Ruined Atoll Portal"],
962+
("Ruined Atoll", "Ruined Atoll Lower Entry Area", "Ruined Atoll Frog Mouth", "Ruined Atoll Portal",
963+
"Ruined Atoll Statue"):
964+
["Ruined Atoll", "Ruined Atoll Lower Entry Area", "Ruined Atoll Frog Mouth", "Ruined Atoll Portal",
965+
"Ruined Atoll Statue"],
953966
("Frog's Domain",):
954967
["Frog's Domain", "Frog's Domain Back"],
955968
("Library Exterior Ladder", "Library Exterior Tree"):

worlds/tunic/er_rules.py

+10-2
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,12 @@ def set_er_region_rules(world: "TunicWorld", ability_unlocks: Dict[str, int], re
295295
regions["Ruined Atoll Portal"].connect(
296296
connecting_region=regions["Ruined Atoll"])
297297

298+
regions["Ruined Atoll"].connect(
299+
connecting_region=regions["Ruined Atoll Statue"],
300+
rule=lambda state: has_ability(state, player, prayer, options, ability_unlocks))
301+
regions["Ruined Atoll Statue"].connect(
302+
connecting_region=regions["Ruined Atoll"])
303+
298304
regions["Frog's Domain"].connect(
299305
connecting_region=regions["Frog's Domain Back"],
300306
rule=lambda state: state.has(grapple, player))
@@ -944,10 +950,12 @@ def set_er_location_rules(world: "TunicWorld", ability_unlocks: Dict[str, int])
944950
# Bosses
945951
set_rule(multiworld.get_location("Fortress Arena - Siege Engine/Vault Key Pickup", player),
946952
lambda state: has_sword(state, player))
953+
# nmg - kill Librarian with a lure, or gun I guess
947954
set_rule(multiworld.get_location("Librarian - Hexagon Green", player),
948-
lambda state: has_sword(state, player))
955+
lambda state: has_sword(state, player) or options.logic_rules)
956+
# nmg - kill boss scav with orb + firecracker, or similar
949957
set_rule(multiworld.get_location("Rooted Ziggurat Lower - Hexagon Blue", player),
950-
lambda state: has_sword(state, player))
958+
lambda state: has_sword(state, player) or (state.has(grapple, player) and options.logic_rules))
951959

952960
# Swamp
953961
set_rule(multiworld.get_location("Cathedral Gauntlet - Gauntlet Reward", player),

worlds/tunic/regions.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"Eastern Vault Fortress": {"Beneath the Vault"},
1717
"Beneath the Vault": {"Eastern Vault Fortress"},
1818
"Quarry Back": {"Quarry"},
19-
"Quarry": {"Lower Quarry", "Rooted Ziggurat"},
19+
"Quarry": {"Lower Quarry"},
2020
"Lower Quarry": {"Rooted Ziggurat"},
2121
"Rooted Ziggurat": set(),
2222
"Swamp": {"Cathedral"},

worlds/tunic/rules.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,6 @@ def set_region_rules(world: "TunicWorld", ability_unlocks: Dict[str, int]) -> No
131131
lambda state: has_mask(state, player, options)
132132
multiworld.get_entrance("Lower Quarry -> Rooted Ziggurat", player).access_rule = \
133133
lambda state: state.has(grapple, player) and has_ability(state, player, prayer, options, ability_unlocks)
134-
multiworld.get_entrance("Quarry -> Rooted Ziggurat", player).access_rule = \
135-
lambda state: has_ice_grapple_logic(False, state, player, options, ability_unlocks)
136134
multiworld.get_entrance("Swamp -> Cathedral", player).access_rule = \
137135
lambda state: state.has(laurels, player) and has_ability(state, player, prayer, options, ability_unlocks) \
138136
or has_ice_grapple_logic(False, state, player, options, ability_unlocks)
@@ -312,8 +310,9 @@ def set_location_rules(world: "TunicWorld", ability_unlocks: Dict[str, int]) ->
312310
lambda state: state.has(laurels, player))
313311
set_rule(multiworld.get_location("Quarry - [West] Upper Area Bombable Wall", player),
314312
lambda state: has_mask(state, player, options))
313+
# nmg - kill boss scav with orb + firecracker, or similar
315314
set_rule(multiworld.get_location("Rooted Ziggurat Lower - Hexagon Blue", player),
316-
lambda state: has_sword(state, player))
315+
lambda state: has_sword(state, player) or (state.has(grapple, player) and options.logic_rules))
317316

318317
# Swamp
319318
set_rule(multiworld.get_location("Cathedral Gauntlet - Gauntlet Reward", player),

0 commit comments

Comments
 (0)