about summary refs log tree commit diff stats
path: root/Archipelago/load.gd
diff options
context:
space:
mode:
Diffstat (limited to 'Archipelago/load.gd')
-rw-r--r--Archipelago/load.gd41
1 files changed, 36 insertions, 5 deletions
diff --git a/Archipelago/load.gd b/Archipelago/load.gd index 0750247..673c762 100644 --- a/Archipelago/load.gd +++ b/Archipelago/load.gd
@@ -14,7 +14,8 @@ const EXCLUDED_PAINTINGS = [
14 "scenery_3.tscn", 14 "scenery_3.tscn",
15 "scenery_4.tscn", 15 "scenery_4.tscn",
16 "scenery_5.tscn", 16 "scenery_5.tscn",
17 "pilgrim.tscn" 17 "pilgrim.tscn",
18 "so_pearl_bk.tscn"
18] 19]
19 20
20 21
@@ -24,6 +25,15 @@ func _load():
24 var apclient = global.get_node("Archipelago") 25 var apclient = global.get_node("Archipelago")
25 var panels_parent = self.get_node("Panels") 26 var panels_parent = self.get_node("Panels")
26 27
28 # Add a wall-blocked raycast to the player.
29 var wallcast = RayCast.new()
30 wallcast.name = "wallcast"
31 wallcast.cast_to = Vector3(0, 0, -15)
32 wallcast.set_collision_mask_bit(1, true)
33 wallcast.set_collision_mask_bit(3, true)
34 wallcast.collide_with_areas = true
35 $player/pivot/camera.add_child(wallcast)
36
27 # Override the YOU panel with the AP slot name. 37 # Override the YOU panel with the AP slot name.
28 if self.get_node_or_null("Panels/Color Arrow Room/Panel_you") != null: 38 if self.get_node_or_null("Panels/Color Arrow Room/Panel_you") != null:
29 self.get_node("Panels/Color Arrow Room/Panel_you").answer = apclient.ap_user 39 self.get_node("Panels/Color Arrow Room/Panel_you").answer = apclient.ap_user
@@ -198,6 +208,10 @@ func _load():
198 set_gridmap_tile(-88.5, 4.5, -41.5, "MeshInstance8") 208 set_gridmap_tile(-88.5, 4.5, -41.5, "MeshInstance8")
199 set_gridmap_tile(-89.5, 4.5, -41.5, "MeshInstance4") 209 set_gridmap_tile(-89.5, 4.5, -41.5, "MeshInstance4")
200 210
211 # Remove black block from THE RED.
212 clear_gridmap_tile(68.5, 6.5, 76.5)
213 get_node("Decorations/PanelSign/sign19").queue_free()
214
201 if apclient.confusify_world: 215 if apclient.confusify_world:
202 # Remove welcome back / color hallway / sunwarp indicators. 216 # Remove welcome back / color hallway / sunwarp indicators.
203 get_node("Decorations/Signs/Welcome Back Signs").queue_free() 217 get_node("Decorations/Signs/Welcome Back Signs").queue_free()
@@ -245,12 +259,12 @@ func _load():
245 259
246 if apclient._panel_shuffle != apclient.kNO_PANEL_SHUFFLE: 260 if apclient._panel_shuffle != apclient.kNO_PANEL_SHUFFLE:
247 # Make The Wondrous's FIRE solely midred. 261 # Make The Wondrous's FIRE solely midred.
248 set_gridmap_tile(-76.5, 1.5, -73.5, "MeshInstance18") 262 clear_gridmap_tile(-76.5, 1.5, -73.5)
249 263
250 # Reduce double/triple length puzzles in Knight/Night. 264 # Reduce double/triple length puzzles in Knight/Night.
251 set_gridmap_tile(24.5, 1.5, 11.5, "MeshInstance18") 265 clear_gridmap_tile(24.5, 1.5, 11.5)
252 set_gridmap_tile(25.5, 1.5, 11.5, "MeshInstance18") 266 clear_gridmap_tile(25.5, 1.5, 11.5)
253 set_gridmap_tile(47.5, 1.5, 11.5, "MeshInstance18") 267 clear_gridmap_tile(47.5, 1.5, 11.5)
254 268
255 if apclient._panel_shuffle == apclient.kREARRANGE_PANELS: 269 if apclient._panel_shuffle == apclient.kREARRANGE_PANELS:
256 # Do the actual shuffling. 270 # Do the actual shuffling.
@@ -638,6 +652,15 @@ func _load():
638 global._print("Hooked Load End") 652 global._print("Hooked Load End")
639 ._load() 653 ._load()
640 654
655 # Activate any cached traps.
656 if apclient._cached_slowness > 0:
657 effects.trigger_slowness_trap(apclient._cached_slowness)
658 if apclient._cached_iceland > 0:
659 effects.trigger_iceland_trap(apclient._cached_iceland)
660 if apclient._cached_atbash > 0:
661 for _i in range(0, apclient._cached_atbash):
662 effects.trigger_atbash_trap()
663
641 # Process any items received while the map was loading, and send the checks 664 # Process any items received while the map was loading, and send the checks
642 # from the save load. 665 # from the save load.
643 apclient.mapFinishedLoading() 666 apclient.mapFinishedLoading()
@@ -708,6 +731,14 @@ func set_gridmap_tile(x, y, z, tile):
708 gridmap.set_cell_item(mapvec.x, mapvec.y, mapvec.z, mesh_library.find_item_by_name(tile)) 731 gridmap.set_cell_item(mapvec.x, mapvec.y, mapvec.z, mesh_library.find_item_by_name(tile))
709 732
710 733
734func clear_gridmap_tile(x, y, z):
735 var gridmap = self.get_node("GridMap")
736 var mesh_library = gridmap.mesh_library
737 var mapvec = gridmap.world_to_map(gridmap.to_local(Vector3(x, y, z)))
738
739 gridmap.set_cell_item(mapvec.x, mapvec.y, mapvec.z, GridMap.INVALID_CELL_ITEM)
740
741
711func set_small_gridmap_tile(x, y, z, tile): 742func set_small_gridmap_tile(x, y, z, tile):
712 var gridmap = self.get_node("GridMapSmall") 743 var gridmap = self.get_node("GridMapSmall")
713 var mesh_library = gridmap.mesh_library 744 var mesh_library = gridmap.mesh_library