about summary refs log tree commit diff stats
path: root/apworld/client
diff options
context:
space:
mode:
Diffstat (limited to 'apworld/client')
-rw-r--r--apworld/client/allowNumbers.gd10
-rw-r--r--apworld/client/main.gd3
-rw-r--r--apworld/client/manager.gd3
-rw-r--r--apworld/client/player.gd50
4 files changed, 66 insertions, 0 deletions
diff --git a/apworld/client/allowNumbers.gd b/apworld/client/allowNumbers.gd new file mode 100644 index 0000000..d958b50 --- /dev/null +++ b/apworld/client/allowNumbers.gd
@@ -0,0 +1,10 @@
1extends "res://scripts/nodes/allowNumbers.gd"
2
3
4func _readier():
5 var ap = global.get_node("Archipelago")
6 var gamedata = global.get_node("Gamedata")
7
8 var item_id = gamedata.objects.get_special_ids()["Numbers"]
9 if ap.client.getItemAmount(item_id) >= 1:
10 global.allow_numbers = true
diff --git a/apworld/client/main.gd b/apworld/client/main.gd index a3b21c5..a543678 100644 --- a/apworld/client/main.gd +++ b/apworld/client/main.gd
@@ -36,6 +36,7 @@ func _ready():
36 global.add_child(ap_instance) 36 global.add_child(ap_instance)
37 37
38 # Let's also inject any scripts we need to inject now. 38 # Let's also inject any scripts we need to inject now.
39 installScriptExtension(runtime.load_script("allowNumbers.gd"))
39 installScriptExtension(runtime.load_script("animationListener.gd")) 40 installScriptExtension(runtime.load_script("animationListener.gd"))
40 installScriptExtension(runtime.load_script("collectable.gd")) 41 installScriptExtension(runtime.load_script("collectable.gd"))
41 installScriptExtension(runtime.load_script("door.gd")) 42 installScriptExtension(runtime.load_script("door.gd"))
@@ -86,6 +87,7 @@ func _ready():
86 unlocks.data["advanced_mastery"] = "" 87 unlocks.data["advanced_mastery"] = ""
87 unlocks.data["charismatic_mastery"] = "" 88 unlocks.data["charismatic_mastery"] = ""
88 unlocks.data["crystalline_mastery"] = "" 89 unlocks.data["crystalline_mastery"] = ""
90 unlocks.data["fuzzy_mastery"] = ""
89 unlocks.data["icarus_mastery"] = "" 91 unlocks.data["icarus_mastery"] = ""
90 unlocks.data["stellar_mastery"] = "" 92 unlocks.data["stellar_mastery"] = ""
91 93
@@ -243,6 +245,7 @@ func startGame():
243 settings.worldport_fades = "never" 245 settings.worldport_fades = "never"
244 246
245 clearResourceCache("res://objects/meshes/gridDoor.tscn") 247 clearResourceCache("res://objects/meshes/gridDoor.tscn")
248 clearResourceCache("res://objects/nodes/allowNumbers.tscn")
246 clearResourceCache("res://objects/nodes/collectable.tscn") 249 clearResourceCache("res://objects/nodes/collectable.tscn")
247 clearResourceCache("res://objects/nodes/door.tscn") 250 clearResourceCache("res://objects/nodes/door.tscn")
248 clearResourceCache("res://objects/nodes/keyHolder.tscn") 251 clearResourceCache("res://objects/nodes/keyHolder.tscn")
diff --git a/apworld/client/manager.gd b/apworld/client/manager.gd index 399d6a5..aa07559 100644 --- a/apworld/client/manager.gd +++ b/apworld/client/manager.gd
@@ -261,6 +261,9 @@ func _process_item(item, amount):
261 if item_id == gamedata.objects.get_special_ids()["A Job Well Done"]: 261 if item_id == gamedata.objects.get_special_ids()["A Job Well Done"]:
262 update_job_well_done_sign() 262 update_job_well_done_sign()
263 263
264 if item_id == gamedata.objects.get_special_ids()["Numbers"] and global.map == "the_fuzzy":
265 global.allow_numbers = true
266
264 # Show a message about the item if it's new. 267 # Show a message about the item if it's new.
265 if int(item["index"]) > _last_new_item: 268 if int(item["index"]) > _last_new_item:
266 _last_new_item = int(item["index"]) 269 _last_new_item = int(item["index"])
diff --git a/apworld/client/player.gd b/apworld/client/player.gd index 9acb942..712a59b 100644 --- a/apworld/client/player.gd +++ b/apworld/client/player.gd
@@ -25,6 +25,7 @@ func _ready():
25 _set_up_mastery_listener("advanced") 25 _set_up_mastery_listener("advanced")
26 _set_up_mastery_listener("charismatic") 26 _set_up_mastery_listener("charismatic")
27 _set_up_mastery_listener("crystalline") 27 _set_up_mastery_listener("crystalline")
28 _set_up_mastery_listener("fuzzy")
28 _set_up_mastery_listener("icarus") 29 _set_up_mastery_listener("icarus")
29 _set_up_mastery_listener("stellar") 30 _set_up_mastery_listener("stellar")
30 31
@@ -219,6 +220,29 @@ func _ready():
219 q_wpl.senders.append(NodePath("../QPanel")) 220 q_wpl.senders.append(NodePath("../QPanel"))
220 giftmap_parent.add_child.call_deferred(q_wpl) 221 giftmap_parent.add_child.call_deferred(q_wpl)
221 222
223 if ap.enable_gift_maps.has("The Fuzzy"):
224 var gongus_panel = panel_prefab.instantiate()
225 gongus_panel.name = "GongusPanel"
226 gongus_panel.answer = "gongus"
227 gongus_panel.position = Vector3(33.5, -260, 5.5)
228 giftmap_panel.proxies.append(NodePath("../GongusPanel"))
229 giftmap_parent.add_child.call_deferred(gongus_panel)
230
231 var kiwi_panel = panel_prefab.instantiate()
232 kiwi_panel.name = "KiwiPanel"
233 kiwi_panel.answer = "kiwi"
234 kiwi_panel.position = Vector3(33.5, -270, 5.5)
235 giftmap_panel.proxies.append(NodePath("../KiwiPanel"))
236 giftmap_parent.add_child.call_deferred(kiwi_panel)
237
238 var fuzzy_wpl = wpl_prefab.instantiate()
239 fuzzy_wpl.name = "FuzzyWpl"
240 fuzzy_wpl.exit = "the_fuzzy"
241 fuzzy_wpl.senders.append(NodePath("../GongusPanel"))
242 fuzzy_wpl.senders.append(NodePath("../KiwiPanel"))
243 fuzzy_wpl.complete_at = 1
244 giftmap_parent.add_child.call_deferred(fuzzy_wpl)
245
222 if ap.enable_gift_maps.has("The Stellar"): 246 if ap.enable_gift_maps.has("The Stellar"):
223 var hatkirby_panel = panel_prefab.instantiate() 247 var hatkirby_panel = panel_prefab.instantiate()
224 hatkirby_panel.name = "HatkirbyPanel" 248 hatkirby_panel.name = "HatkirbyPanel"
@@ -505,6 +529,32 @@ func _ready():
505 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables")) 529 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables"))
506 get_node("/root/scene").add_child.call_deferred(saver) 530 get_node("/root/scene").add_child.call_deferred(saver)
507 531
532 # Add the mastery to The Fuzzy.
533 if global.map == "the_fuzzy":
534 var collectable_prefab = preload("res://objects/nodes/collectable.tscn")
535 var saver_prefab = preload("res://objects/nodes/saver.tscn")
536 var usl_prefab = preload("res://objects/nodes/listeners/unlockSetterListener.tscn")
537
538 var mastery = collectable_prefab.instantiate()
539 mastery.name = "collectable"
540 mastery.position = Vector3(0, 2, -20)
541 mastery.unlock_type = "smiley"
542 mastery.material_override = load("res://assets/materials/gold.material")
543 get_node("/root/scene/Components/Collectables").add_child.call_deferred(mastery)
544
545 var usl = usl_prefab.instantiate()
546 usl.name = "unlockSetterListenerMastery"
547 usl.key = "fuzzy_mastery"
548 usl.value = "unlocked"
549 usl.senders.append(NodePath("/root/scene/Components/Collectables/collectable"))
550 get_node("/root/scene/Components").add_child.call_deferred(usl)
551
552 var saver = saver_prefab.instantiate()
553 saver.name = "saver_collectables"
554 saver.type = "collectables"
555 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables"))
556 get_node("/root/scene").add_child.call_deferred(saver)
557
508 # Add the mastery to The Stellar. 558 # Add the mastery to The Stellar.
509 if global.map == "the_stellar": 559 if global.map == "the_stellar":
510 var collectable_prefab = preload("res://objects/nodes/collectable.tscn") 560 var collectable_prefab = preload("res://objects/nodes/collectable.tscn")