about summary refs log tree commit diff stats
path: root/apworld
diff options
context:
space:
mode:
Diffstat (limited to 'apworld')
-rw-r--r--apworld/client/manager.gd2
-rw-r--r--apworld/client/player.gd82
-rw-r--r--apworld/context.py2
-rw-r--r--apworld/player_logic.py2
4 files changed, 88 insertions, 0 deletions
diff --git a/apworld/client/manager.gd b/apworld/client/manager.gd index 91797b2..41ab648 100644 --- a/apworld/client/manager.gd +++ b/apworld/client/manager.gd
@@ -64,6 +64,7 @@ var apworld_version = [0, 0, 0]
64var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2 64var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2
65var daedalus_roof_access = false 65var daedalus_roof_access = false
66var enable_gift_maps = [] 66var enable_gift_maps = []
67var enable_icarus = false
67var keyholder_sanity = false 68var keyholder_sanity = false
68var port_pairings = {} 69var port_pairings = {}
69var shuffle_control_center_colors = false 70var shuffle_control_center_colors = false
@@ -441,6 +442,7 @@ func _client_connected(slot_data):
441 cyan_door_behavior = int(slot_data.get("cyan_door_behavior", 0)) 442 cyan_door_behavior = int(slot_data.get("cyan_door_behavior", 0))
442 daedalus_roof_access = bool(slot_data.get("daedalus_roof_access", false)) 443 daedalus_roof_access = bool(slot_data.get("daedalus_roof_access", false))
443 enable_gift_maps = slot_data.get("enable_gift_maps", []) 444 enable_gift_maps = slot_data.get("enable_gift_maps", [])
445 enable_icarus = bool(slot_data.get("enable_icarus", false))
444 keyholder_sanity = bool(slot_data.get("keyholder_sanity", false)) 446 keyholder_sanity = bool(slot_data.get("keyholder_sanity", false))
445 shuffle_control_center_colors = bool(slot_data.get("shuffle_control_center_colors", false)) 447 shuffle_control_center_colors = bool(slot_data.get("shuffle_control_center_colors", false))
446 shuffle_doors = bool(slot_data.get("shuffle_doors", false)) 448 shuffle_doors = bool(slot_data.get("shuffle_doors", false))
diff --git a/apworld/client/player.gd b/apworld/client/player.gd index 9aac5a6..789d1b7 100644 --- a/apworld/client/player.gd +++ b/apworld/client/player.gd
@@ -141,6 +141,37 @@ func _ready():
141 q_wpl.senders.append(NodePath("../QPanel")) 141 q_wpl.senders.append(NodePath("../QPanel"))
142 giftmap_parent.add_child.call_deferred(q_wpl) 142 giftmap_parent.add_child.call_deferred(q_wpl)
143 143
144 if ap.enable_gift_maps.has("The Stellar"):
145 var hatkirby_panel = panel_prefab.instantiate()
146 hatkirby_panel.name = "HatkirbyPanel"
147 hatkirby_panel.answer = "hatkirby"
148 hatkirby_panel.position = Vector3(33.5, -230, 5.5)
149 giftmap_panel.proxies.append(NodePath("../HatkirbyPanel"))
150 giftmap_parent.add_child.call_deferred(hatkirby_panel)
151
152 var kirby_panel = panel_prefab.instantiate()
153 kirby_panel.name = "KirbyPanel"
154 kirby_panel.answer = "kirby"
155 kirby_panel.position = Vector3(33.5, -240, 5.5)
156 giftmap_panel.proxies.append(NodePath("../KirbyPanel"))
157 giftmap_parent.add_child.call_deferred(kirby_panel)
158
159 var star_panel = panel_prefab.instantiate()
160 star_panel.name = "StarPanel"
161 star_panel.answer = "star"
162 star_panel.position = Vector3(33.5, -250, 5.5)
163 giftmap_panel.proxies.append(NodePath("../StarPanel"))
164 giftmap_parent.add_child.call_deferred(star_panel)
165
166 var stellar_wpl = wpl_prefab.instantiate()
167 stellar_wpl.name = "StellarWpl"
168 stellar_wpl.exit = "the_stellar"
169 stellar_wpl.senders.append(NodePath("../HatkirbyPanel"))
170 stellar_wpl.senders.append(NodePath("../KirbyPanel"))
171 stellar_wpl.senders.append(NodePath("../StarPanel"))
172 stellar_wpl.complete_at = 1
173 giftmap_parent.add_child.call_deferred(stellar_wpl)
174
144 giftmap_parent.add_child.call_deferred(giftmap_panel) 175 giftmap_parent.add_child.call_deferred(giftmap_panel)
145 176
146 var giftmap_tpl = tpl_prefab.instantiate() 177 var giftmap_tpl = tpl_prefab.instantiate()
@@ -261,6 +292,34 @@ func _ready():
261 var rte_trigger = get_node("/root/scene/Components/Warps/triggerArea") 292 var rte_trigger = get_node("/root/scene/Components/Warps/triggerArea")
262 rte_trigger.position.z = 0 293 rte_trigger.position.z = 0
263 294
295 # Add the mastery to Icarus.
296 if global.map == "icarus" and ap.enable_icarus:
297 var collectable_prefab = preload("res://objects/nodes/collectable.tscn")
298 var saver_prefab = preload("res://objects/nodes/saver.tscn")
299 var tpl_prefab = preload("res://objects/nodes/listeners/teleportListener.tscn")
300
301 var mastery = collectable_prefab.instantiate()
302 mastery.name = "collectable"
303 mastery.position = Vector3(0, -2000, 0)
304 mastery.unlock_type = "smiley"
305 mastery.material_override = load("res://assets/materials/gold.material")
306 get_node("/root/scene/Components/Collectables").add_child.call_deferred(mastery)
307
308 var tpl = tpl_prefab.instantiate()
309 tpl.teleport_point = Vector3(56.25, 0, -5.5)
310 tpl.teleport_rotate = Vector3(0, 0, 0)
311 tpl.target_path = mastery
312 tpl.name = "Teleport"
313 tpl.senderGroup.append(NodePath("/root/scene/Panels"))
314 tpl.nested = true
315 mastery.add_child.call_deferred(tpl)
316
317 var saver = saver_prefab.instantiate()
318 saver.name = "saver_collectables"
319 saver.type = "collectables"
320 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables"))
321 get_node("/root/scene").add_child.call_deferred(saver)
322
264 # Add the mastery to The Advanced. 323 # Add the mastery to The Advanced.
265 if global.map == "the_advanced": 324 if global.map == "the_advanced":
266 var collectable_prefab = preload("res://objects/nodes/collectable.tscn") 325 var collectable_prefab = preload("res://objects/nodes/collectable.tscn")
@@ -336,6 +395,29 @@ func _ready():
336 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables")) 395 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables"))
337 get_node("/root/scene").add_child.call_deferred(saver) 396 get_node("/root/scene").add_child.call_deferred(saver)
338 397
398 # Add the mastery to The Stellar.
399 if global.map == "the_stellar":
400 var collectable_prefab = preload("res://objects/nodes/collectable.tscn")
401 var saver_prefab = preload("res://objects/nodes/saver.tscn")
402
403 var collectables = Node.new()
404 collectables.name = "Collectables"
405
406 var mastery = collectable_prefab.instantiate()
407 mastery.name = "collectable"
408 mastery.position = Vector3(2, 2, -31)
409 mastery.rotation_degrees = Vector3(0, 90, 0)
410 mastery.unlock_type = "smiley"
411 mastery.material_override = load("res://assets/materials/gold.material")
412 collectables.add_child.call_deferred(mastery)
413 get_node("/root/scene/Components").add_child.call_deferred(collectables)
414
415 var saver = saver_prefab.instantiate()
416 saver.name = "saver_collectables"
417 saver.type = "collectables"
418 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables"))
419 get_node("/root/scene").add_child.call_deferred(saver)
420
339 ap.update_job_well_done_sign() 421 ap.update_job_well_done_sign()
340 422
341 # Set up door locations. 423 # Set up door locations.
diff --git a/apworld/context.py b/apworld/context.py index 7975686..e2d80cd 100644 --- a/apworld/context.py +++ b/apworld/context.py
@@ -667,6 +667,8 @@ def client_main(*launch_args: str) -> None:
667 async_start(run_game()) 667 async_start(run_game())
668 668
669 client_ctx = Lingo2ClientContext(args.connect, args.password) 669 client_ctx = Lingo2ClientContext(args.connect, args.password)
670 client_ctx.auth = args.name
671
670 game_ctx = Lingo2GameContext() 672 game_ctx = Lingo2GameContext()
671 manager = Lingo2Manager(game_ctx, client_ctx) 673 manager = Lingo2Manager(game_ctx, client_ctx)
672 674
diff --git a/apworld/player_logic.py b/apworld/player_logic.py index 5f4f1d7..67365b7 100644 --- a/apworld/player_logic.py +++ b/apworld/player_logic.py
@@ -241,6 +241,8 @@ class Lingo2PlayerLogic:
241 return "The Charismatic" in world.options.enable_gift_maps.value 241 return "The Charismatic" in world.options.enable_gift_maps.value
242 elif game_map.name == "the_crystalline": 242 elif game_map.name == "the_crystalline":
243 return "The Crystalline" in world.options.enable_gift_maps.value 243 return "The Crystalline" in world.options.enable_gift_maps.value
244 elif game_map.name == "the_stellar":
245 return "The Stellar" in world.options.enable_gift_maps.value
244 246
245 return False 247 return False
246 248