diff options
Diffstat (limited to 'apworld')
| -rw-r--r-- | apworld/client/manager.gd | 2 | ||||
| -rw-r--r-- | apworld/client/player.gd | 82 | ||||
| -rw-r--r-- | apworld/context.py | 2 | ||||
| -rw-r--r-- | apworld/player_logic.py | 2 |
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] | |||
| 64 | var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2 | 64 | var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2 |
| 65 | var daedalus_roof_access = false | 65 | var daedalus_roof_access = false |
| 66 | var enable_gift_maps = [] | 66 | var enable_gift_maps = [] |
| 67 | var enable_icarus = false | ||
| 67 | var keyholder_sanity = false | 68 | var keyholder_sanity = false |
| 68 | var port_pairings = {} | 69 | var port_pairings = {} |
| 69 | var shuffle_control_center_colors = false | 70 | var 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 | ||
