about summary refs log tree commit diff stats
path: root/Archipelago
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-05-17 13:15:19 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-05-17 13:15:19 -0400
commit55e420736009afd82afa2c830921e10c67b42445 (patch)
treee16c38132536f588eb80e7b3e07b44337e0fae1c /Archipelago
parent215e47b99d9d2bbe003286c7b78c21ad65b27794 (diff)
downloadlingo-archipelago-55e420736009afd82afa2c830921e10c67b42445.tar.gz
lingo-archipelago-55e420736009afd82afa2c830921e10c67b42445.tar.bz2
lingo-archipelago-55e420736009afd82afa2c830921e10c67b42445.zip
Stopgap fix for Bearer paintings in pilgrimage
AP 0.6.1 and earlier logically expects you to use The Bearer's paintings during pilgrimage even if paintings in pilgrimage are disabled. This changes those paintings so that they do work in this case, but only for multiworlds generated in 0.6.1 and earlier.
Diffstat (limited to 'Archipelago')
-rw-r--r--Archipelago/extradata.gd15
-rw-r--r--Archipelago/painting.gd32
2 files changed, 39 insertions, 8 deletions
diff --git a/Archipelago/extradata.gd b/Archipelago/extradata.gd index 2e26eb2..c90433a 100644 --- a/Archipelago/extradata.gd +++ b/Archipelago/extradata.gd
@@ -177,3 +177,18 @@ var panels_mode_051_door_fixes = {
177 "Door_nine_hider_2" 177 "Door_nine_hider_2"
178 ] 178 ]
179} 179}
180
181var pilgrimage_061_painting_fixes = [
182 "outside2",
183 "outside_2",
184 "outside_3",
185 "outside_4",
186 "north2",
187 "south2",
188 "west2",
189 "east_enter",
190 "owl_painting_4",
191 "garden_painting",
192 "yinyang_painting",
193 "fruitbowl_painting2"
194]
diff --git a/Archipelago/painting.gd b/Archipelago/painting.gd index adc8337..dc791ce 100644 --- a/Archipelago/painting.gd +++ b/Archipelago/painting.gd
@@ -1,10 +1,26 @@
1extends "res://scripts/painting.gd" 1extends "res://scripts/painting.gd"
2 2
3func _looked_at(var body, var painting): 3var breaks_pilgrimage = false
4 ._looked_at(body, painting) 4
5 5
6 if body.is_in_group("player") && (painting.get_name() == self.get_name()): 6func _ready():
7 var apclient = global.get_node("Archipelago") 7 var apclient = global.get_node("Archipelago")
8 if !apclient._pilgrimage_allows_paintings: 8 if !apclient._pilgrimage_allows_paintings:
9 global.sunwarp = 1 9 if apclient.wasGeneratedBeforeVersion(0, 6, 2):
10 body.get_node("pivot/camera/sunwarp_background").visible = false 10 var extradata = apclient.get_node("Extradata")
11 if not extradata.pilgrimage_061_painting_fixes.has(get_name()):
12 breaks_pilgrimage = true
13 else:
14 breaks_pilgrimage = true
15
16
17func _looked_at(body, painting):
18 ._looked_at(body, painting)
19
20 if (
21 breaks_pilgrimage
22 and body.is_in_group("player")
23 and (painting.get_name() == self.get_name())
24 ):
25 global.sunwarp = 1
26 body.get_node("pivot/camera/sunwarp_background").visible = false