diff options
Diffstat (limited to 'apworld/client/manager.gd')
| -rw-r--r-- | apworld/client/manager.gd | 31 |
1 files changed, 31 insertions, 0 deletions
| diff --git a/apworld/client/manager.gd b/apworld/client/manager.gd index 1e0b549..f10a0b7 100644 --- a/apworld/client/manager.gd +++ b/apworld/client/manager.gd | |||
| @@ -46,6 +46,10 @@ const kCYAN_DOOR_BEHAVIOR_H2 = 0 | |||
| 46 | const kCYAN_DOOR_BEHAVIOR_DOUBLE_LETTER = 1 | 46 | const kCYAN_DOOR_BEHAVIOR_DOUBLE_LETTER = 1 |
| 47 | const kCYAN_DOOR_BEHAVIOR_ITEM = 2 | 47 | const kCYAN_DOOR_BEHAVIOR_ITEM = 2 |
| 48 | 48 | ||
| 49 | const kFAST_TRAVEL_ACCESS_VANILLA = 0 | ||
| 50 | const kFAST_TRAVEL_ACCESS_UNLOCKED = 1 | ||
| 51 | const kFAST_TRAVEL_ACCESS_ITEMS = 2 | ||
| 52 | |||
| 49 | const kEndingNameByVictoryValue = { | 53 | const kEndingNameByVictoryValue = { |
| 50 | 0: "GRAY", | 54 | 0: "GRAY", |
| 51 | 1: "PURPLE", | 55 | 1: "PURPLE", |
| @@ -63,21 +67,26 @@ const kEndingNameByVictoryValue = { | |||
| 63 | } | 67 | } |
| 64 | 68 | ||
| 65 | var apworld_version = [0, 0, 0] | 69 | var apworld_version = [0, 0, 0] |
| 70 | var custom_mint_ending = "" | ||
| 66 | var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2 | 71 | var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2 |
| 67 | var daedalus_only = false | 72 | var daedalus_only = false |
| 68 | var daedalus_roof_access = false | 73 | var daedalus_roof_access = false |
| 69 | var enable_gift_maps = [] | 74 | var enable_gift_maps = [] |
| 70 | var enable_icarus = false | 75 | var enable_icarus = false |
| 71 | var endings_requirement = 0 | 76 | var endings_requirement = 0 |
| 77 | var fast_travel_access = 0 | ||
| 72 | var keyholder_sanity = false | 78 | var keyholder_sanity = false |
| 73 | var masteries_requirement = 0 | 79 | var masteries_requirement = 0 |
| 80 | var music_mapping = {} | ||
| 74 | var port_pairings = {} | 81 | var port_pairings = {} |
| 82 | var rte_mapping = [] | ||
| 75 | var shuffle_control_center_colors = false | 83 | var shuffle_control_center_colors = false |
| 76 | var shuffle_doors = false | 84 | var shuffle_doors = false |
| 77 | var shuffle_gallery_paintings = false | 85 | var shuffle_gallery_paintings = false |
| 78 | var shuffle_letters = kSHUFFLE_LETTERS_VANILLA | 86 | var shuffle_letters = kSHUFFLE_LETTERS_VANILLA |
| 79 | var shuffle_symbols = false | 87 | var shuffle_symbols = false |
| 80 | var shuffle_worldports = false | 88 | var shuffle_worldports = false |
| 89 | var slot_rng = null | ||
| 81 | var strict_cyan_ending = false | 90 | var strict_cyan_ending = false |
| 82 | var strict_purple_ending = false | 91 | var strict_purple_ending = false |
| 83 | var victory_condition = -1 | 92 | var victory_condition = -1 |
| @@ -269,6 +278,13 @@ func _process_item(item, amount): | |||
| 269 | if item_id == gamedata.objects.get_special_ids()["Numbers"] and global.map == "the_fuzzy": | 278 | if item_id == gamedata.objects.get_special_ids()["Numbers"] and global.map == "the_fuzzy": |
| 270 | global.allow_numbers = true | 279 | global.allow_numbers = true |
| 271 | 280 | ||
| 281 | if gamedata.map_id_by_rte_ap_id.has(item_id): | ||
| 282 | var rteInner = get_tree().get_root().get_node_or_null( | ||
| 283 | "scene/player/pause_menu/menu/return/rteInner" | ||
| 284 | ) | ||
| 285 | if rteInner != null: | ||
| 286 | rteInner.refreshButtons() | ||
| 287 | |||
| 272 | # Show a message about the item if it's new. | 288 | # Show a message about the item if it's new. |
| 273 | if int(item["index"]) > _last_new_item: | 289 | if int(item["index"]) > _last_new_item: |
| 274 | _last_new_item = int(item["index"]) | 290 | _last_new_item = int(item["index"]) |
| @@ -463,12 +479,14 @@ func _client_connected(slot_data): | |||
| 463 | _last_new_item = localdata[0] | 479 | _last_new_item = localdata[0] |
| 464 | 480 | ||
| 465 | # Read slot data. | 481 | # Read slot data. |
| 482 | custom_mint_ending = slot_data.get("custom_mint_ending", "") | ||
| 466 | cyan_door_behavior = int(slot_data.get("cyan_door_behavior", 0)) | 483 | cyan_door_behavior = int(slot_data.get("cyan_door_behavior", 0)) |
| 467 | daedalus_only = bool(slot_data.get("daedalus_only", false)) | 484 | daedalus_only = bool(slot_data.get("daedalus_only", false)) |
| 468 | daedalus_roof_access = bool(slot_data.get("daedalus_roof_access", false)) | 485 | daedalus_roof_access = bool(slot_data.get("daedalus_roof_access", false)) |
| 469 | enable_gift_maps = slot_data.get("enable_gift_maps", []) | 486 | enable_gift_maps = slot_data.get("enable_gift_maps", []) |
| 470 | enable_icarus = bool(slot_data.get("enable_icarus", false)) | 487 | enable_icarus = bool(slot_data.get("enable_icarus", false)) |
| 471 | endings_requirement = int(slot_data.get("endings_requirement", 0)) | 488 | endings_requirement = int(slot_data.get("endings_requirement", 0)) |
| 489 | fast_travel_access = int(slot_data.get("fast_travel_access", 0)) | ||
| 472 | keyholder_sanity = bool(slot_data.get("keyholder_sanity", false)) | 490 | keyholder_sanity = bool(slot_data.get("keyholder_sanity", false)) |
| 473 | masteries_requirement = int(slot_data.get("masteries_requirement", 0)) | 491 | masteries_requirement = int(slot_data.get("masteries_requirement", 0)) |
| 474 | shuffle_control_center_colors = bool(slot_data.get("shuffle_control_center_colors", false)) | 492 | shuffle_control_center_colors = bool(slot_data.get("shuffle_control_center_colors", false)) |
| @@ -496,6 +514,19 @@ func _client_connected(slot_data): | |||
| 496 | raw_pp[p1] | 514 | raw_pp[p1] |
| 497 | )] | 515 | )] |
| 498 | 516 | ||
| 517 | rte_mapping.clear() | ||
| 518 | if slot_data.has("rte"): | ||
| 519 | rte_mapping = slot_data.get("rte") | ||
| 520 | |||
| 521 | slot_rng = RandomNumberGenerator.new() | ||
| 522 | slot_rng.seed = int(slot_data.get("seed", 0)) | ||
| 523 | |||
| 524 | music_mapping.clear() | ||
| 525 | if bool(slot_data.get("shuffle_music", false)): | ||
| 526 | for map_name in global.reserved_scenes: | ||
| 527 | var track_index = slot_rng.randi_range(0, musicPlayer.all_tracks.size() - 1) | ||
| 528 | music_mapping[map_name] = musicPlayer.all_tracks.keys()[track_index] | ||
| 529 | |||
| 499 | # Set up item locks. | 530 | # Set up item locks. |
| 500 | _item_locks = {} | 531 | _item_locks = {} |
| 501 | 532 | ||
