From deb62ad2a88908c5a071af6f21c2df48956b3e07 Mon Sep 17 00:00:00 2001 From: Caleb Date: Tue, 7 Nov 2023 11:42:34 -0800 Subject: [PATCH] Continue work on doors, update runner character --- assets/editor/icons/Contact.svg | 56 +++++++++++++++++ assets/editor/icons/Contact.svg.import | 37 +++++++++++ assets/editor/icons/Trigger.svg | 38 ++++++++++++ assets/editor/icons/Trigger.svg.import | 37 +++++++++++ data/maps/town/fan_interaction.gd | 1 + data/maps/town/runner.dch | 29 +++++++++ data/maps/town/runner.dtl | 4 ++ src/common/globals/global_field_events.gd | 5 +- src/field/door.tscn | 62 +++++++++++++++++-- src/field/gameboard/lockable_door.gd | 26 ++++++++ src/field/gameboard/pathfinder.gd | 2 - .../animation/gamepiece_animation.gd | 11 ++-- .../controllers/gamepiece_controller.gd | 8 +-- .../controllers/path_loop_ai_controller.gd | 16 ++--- src/field/interaction_template_locked_door.gd | 13 +++- src/main.tscn | 30 +++++++-- 16 files changed, 339 insertions(+), 36 deletions(-) create mode 100644 assets/editor/icons/Contact.svg create mode 100644 assets/editor/icons/Contact.svg.import create mode 100644 assets/editor/icons/Trigger.svg create mode 100644 assets/editor/icons/Trigger.svg.import create mode 100644 data/maps/town/runner.dch create mode 100644 data/maps/town/runner.dtl create mode 100644 src/field/gameboard/lockable_door.gd diff --git a/assets/editor/icons/Contact.svg b/assets/editor/icons/Contact.svg new file mode 100644 index 0000000..c55971a --- /dev/null +++ b/assets/editor/icons/Contact.svg @@ -0,0 +1,56 @@ + + + + + + + + diff --git a/assets/editor/icons/Contact.svg.import b/assets/editor/icons/Contact.svg.import new file mode 100644 index 0000000..390ae3d --- /dev/null +++ b/assets/editor/icons/Contact.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bsltxbp5yjbhb" +path="res://.godot/imported/Contact.svg-e52d7239f5cdd031ceb85473942bb9d5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/editor/icons/Contact.svg" +dest_files=["res://.godot/imported/Contact.svg-e52d7239f5cdd031ceb85473942bb9d5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/editor/icons/Trigger.svg b/assets/editor/icons/Trigger.svg new file mode 100644 index 0000000..3681144 --- /dev/null +++ b/assets/editor/icons/Trigger.svg @@ -0,0 +1,38 @@ + + + + + + diff --git a/assets/editor/icons/Trigger.svg.import b/assets/editor/icons/Trigger.svg.import new file mode 100644 index 0000000..bcfa111 --- /dev/null +++ b/assets/editor/icons/Trigger.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c14vk7vgg5ji8" +path="res://.godot/imported/Trigger.svg-78248e04586ff108d644f862094ff584.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/editor/icons/Trigger.svg" +dest_files=["res://.godot/imported/Trigger.svg-78248e04586ff108d644f862094ff584.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/data/maps/town/fan_interaction.gd b/data/maps/town/fan_interaction.gd index 151cf94..d4385d9 100644 --- a/data/maps/town/fan_interaction.gd +++ b/data/maps/town/fan_interaction.gd @@ -5,6 +5,7 @@ extends InteractionTemplateConversation func _ready() -> void: + super._ready() assert(_adoring_fan, "Gamepiece was not found, check the node path!") assert(_controller, "Controller was not found, check the node path!") diff --git a/data/maps/town/runner.dch b/data/maps/town/runner.dch new file mode 100644 index 0000000..94a4076 --- /dev/null +++ b/data/maps/town/runner.dch @@ -0,0 +1,29 @@ +{ +"@path": "res://addons/dialogic/Resources/character.gd", +"@subpath": NodePath(""), +"color": Color(1, 1, 1, 1), +"custom_info": { +"sound_mood_default": "", +"sound_moods": {}, +"style": "" +}, +"default_portrait": "Default", +"description": "", +"display_name": "Energetic Child", +"mirror": false, +"nicknames": [""], +"offset": Vector2(0, 0), +"portraits": { +"Default": { +"export_overrides": { +"image": "\"res://assets/characters/player.atlastex\"" +}, +"image": "", +"mirror": false, +"offset": Vector2(0, 0), +"scale": 1, +"scene": "" +} +}, +"scale": 1.0 +} \ No newline at end of file diff --git a/data/maps/town/runner.dtl b/data/maps/town/runner.dtl new file mode 100644 index 0000000..da0eef9 --- /dev/null +++ b/data/maps/town/runner.dtl @@ -0,0 +1,4 @@ +Join runner 1 +runner (Default): Emerald? Ruby? Sapphire? +runner (Default): How did that go again? +[end_timeline] diff --git a/src/common/globals/global_field_events.gd b/src/common/globals/global_field_events.gd index facb0d4..848c5cc 100644 --- a/src/common/globals/global_field_events.gd +++ b/src/common/globals/global_field_events.gd @@ -1,13 +1,14 @@ ## A signal bus to connect distant scenes to various field-exclusive events. extends Node -# We want the Field Event manager's _process method to run after all Gamepieces and Controllers. +## Set this object's process priority to a very high number. +## We want the Field Event manager's _process method to run after all Gamepieces and Controllers. const PROCESS_PRIORITY: = 99999999 ## Emitted when the cursor moves to a new position on the field gameboard. signal cell_highlighted(cell: Vector2i) -# Emitted when the player selects a cell on the field gameboard via the [FieldCursor]. +## Emitted when the player selects a cell on the field gameboard via the [FieldCursor]. signal cell_selected(cell: Vector2i) ## Emitted when a [Cutscene] begins, signalling that the player should yield control of their diff --git a/src/field/door.tscn b/src/field/door.tscn index daf88f0..262c67a 100644 --- a/src/field/door.tscn +++ b/src/field/door.tscn @@ -1,10 +1,12 @@ -[gd_scene load_steps=12 format=3 uid="uid://c14b8ageu2otv"] +[gd_scene load_steps=14 format=3 uid="uid://c14b8ageu2otv"] [ext_resource type="Texture2D" uid="uid://d2qfi5sncf72b" path="res://assets/terrain/town_tilemap.png" id="1_goth7"] +[ext_resource type="Script" path="res://src/field/gameboard/lockable_door.gd" id="1_u45hv"] [ext_resource type="AudioStream" uid="uid://c5mcvei7x3nyd" path="res://assets/sfx/doors/sfx_movement_dooropen4.wav" id="2_ufclx"] [ext_resource type="AudioStream" uid="uid://dqhhqeihtm1q6" path="res://assets/sfx/doors/sfx_movement_dooropen3.wav" id="3_oftid"] [ext_resource type="AudioStream" uid="uid://ddaucqxv3tf7m" path="res://assets/sfx/doors/sfx_movement_dooropen1.wav" id="4_orhec"] [ext_resource type="Script" path="res://src/field/interaction_template_locked_door.gd" id="5_61l11"] +[ext_resource type="Texture2D" uid="uid://b71dt8n01lhd0" path="res://assets/gui/path_destination_marker.tres" id="7_2e200"] [sub_resource type="Animation" id="Animation_hbjux"] resource_name = "RESET" @@ -12,7 +14,7 @@ length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Sprite2D:visible") +tracks/0/path = NodePath("DoorTile:visible") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { @@ -69,6 +71,18 @@ tracks/4/keys = { "update": 1, "values": [true] } +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("LockedInteraction:collision_layer") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [17] +} [sub_resource type="Animation" id="Animation_f8lsq"] resource_name = "locked" @@ -127,7 +141,19 @@ tracks/3/keys = { "times": PackedFloat32Array(0, 0.4), "transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [Vector2(-34, -24), Vector2(-34, -32)] +"values": [Vector2(-28, -24), Vector2(-28, -32)] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("LockedInteraction:collision_layer") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [17] } [sub_resource type="Animation" id="Animation_iyy44"] @@ -152,7 +178,7 @@ tracks/0/use_blend = true tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("Sprite2D:visible") +tracks/1/path = NodePath("DoorTile:visible") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { @@ -173,6 +199,18 @@ tracks/2/keys = { "update": 1, "values": [false] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("LockedInteraction:collision_layer") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [16] +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_3ff1q"] _data = { @@ -185,10 +223,14 @@ _data = { size = Vector2(16, 16) [sub_resource type="LabelSettings" id="LabelSettings_mbu8d"] +font_size = 80 [node name="Door" type="Node2D"] +script = ExtResource("1_u45hv") +arrival_coordinates = Vector2i(0, 16) +is_locked = null -[node name="Sprite2D" type="Sprite2D" parent="."] +[node name="DoorTile" type="Sprite2D" parent="."] texture = ExtResource("1_goth7") region_enabled = true region_rect = Rect2(17, 119, 16, 16) @@ -200,6 +242,8 @@ libraries = { "": SubResource("AnimationLibrary_3ff1q") } +[node name="AreaTransitionTrigger" type="Node2D" parent="."] + [node name="LockedInteraction" type="Area2D" parent="." node_paths=PackedStringArray("_anim")] collision_layer = 17 collision_mask = 8 @@ -219,9 +263,15 @@ anchor_right = 0.5 anchor_bottom = 1.0 offset_left = -34.0 offset_top = -24.0 -offset_right = 34.0 +offset_right = 254.0 +offset_bottom = 80.0 grow_horizontal = 2 grow_vertical = 0 +scale = Vector2(0.2, 0.2) text = "Locked" label_settings = SubResource("LabelSettings_mbu8d") horizontal_alignment = 1 + +[node name="ArrivalCell" type="Sprite2D" parent="."] +position = Vector2(0, 16) +texture = ExtResource("7_2e200") diff --git a/src/field/gameboard/lockable_door.gd b/src/field/gameboard/lockable_door.gd new file mode 100644 index 0000000..397a2b7 --- /dev/null +++ b/src/field/gameboard/lockable_door.gd @@ -0,0 +1,26 @@ +@tool +class_name LockableDoor extends Node2D + +@export var arrival_coordinates: Vector2i: + set(value): + arrival_coordinates = value + + if not is_inside_tree(): + await ready + _arrival_icon.position = value + +@export var is_locked: bool: + set(value): + is_locked = value + + if not is_inside_tree(): + await ready + _locked_interaction.is_active = is_locked + +@onready var _arrival_icon: = $ArrivalCell as Sprite2D +@onready var _locked_interaction: = $LockedInteraction + + +func _ready() -> void: + if not Engine.is_editor_hint(): + _arrival_icon.queue_free() diff --git a/src/field/gameboard/pathfinder.gd b/src/field/gameboard/pathfinder.gd index f082f64..830111a 100644 --- a/src/field/gameboard/pathfinder.gd +++ b/src/field/gameboard/pathfinder.gd @@ -113,8 +113,6 @@ func _build_cell_list(pathable_cells: Array[Vector2i]) -> void: for cell in pathable_cells: if not has_cell(cell) and _gameboard.boundaries.has_point(cell): var cell_id: = _gameboard.cell_to_index(cell) - print(cell_id) - if cell_id != Gameboard.INVALID_INDEX: add_point(cell_id, cell) diff --git a/src/field/gamepieces/animation/gamepiece_animation.gd b/src/field/gamepieces/animation/gamepiece_animation.gd index a66a013..fd598bd 100644 --- a/src/field/gamepieces/animation/gamepiece_animation.gd +++ b/src/field/gamepieces/animation/gamepiece_animation.gd @@ -47,6 +47,10 @@ func _ready() -> void: + " Please only use GamepieceAnimation as a child of a Gamepiece for correct animation." + " Current parent is named %s." % get_parent().name) + # Collisions will find the Area2D node as the collider. We'll point its owner reference to + # the gamepiece itself to allow easily identify colliding gamepieces. + $Area2D.owner = gamepiece + gamepiece.blocks_movement_changed.connect( \ _on_gamepiece_blocks_movement_changed.bind(gamepiece)) _on_gamepiece_blocks_movement_changed(gamepiece) @@ -119,13 +123,6 @@ func set_direction(value: Directions.Points) -> void: _swap_animation(current_sequence_id, true) -## Returns true if the parent gamepiece should block other gamepieces. -## Note that the collision shape's [member CollisionShape2D.disabled] property determines whether -## or not the gamepiece will be picked up by the physics system. -func blocks_movement() -> bool: - return not _collision_shape.disabled - - # Transition to the next animation sequence, accounting for the RESET track and current animation # elapsed time. func _swap_animation(next_sequence: String, keep_position: bool) -> void: diff --git a/src/field/gamepieces/controllers/gamepiece_controller.gd b/src/field/gamepieces/controllers/gamepiece_controller.gd index 0233d7b..452a16b 100644 --- a/src/field/gamepieces/controllers/gamepiece_controller.gd +++ b/src/field/gamepieces/controllers/gamepiece_controller.gd @@ -16,7 +16,7 @@ class_name GamepieceController extends Node2D # Colliding objects that have the following property set to true will block movement. -const IS_BLOCKING_METHOD: = "blocks_movement" +const BLOCKING_PROPERTY: = "blocks_movement" ## Colliders matching the following mask will be used to determine which cells are walkable. Cells ## containing any terrain collider will not be included for pathfinding. @@ -114,9 +114,9 @@ func is_cell_blocked(cell: Vector2i) -> bool: # of the collision shape for a blocking flag. # Please see BLOCKING_PROPERTY for more information. for collision in collisions: - if collision.collider.owner.has_method(IS_BLOCKING_METHOD): - if collision.collider.owner.call(IS_BLOCKING_METHOD): - return true + var blocks_movement: bool = collision.collider.owner.get(BLOCKING_PROPERTY) + if blocks_movement: + return true # There is one last check to make. It is possible that a gamepiece has decided to move to cell # THIS frame. It's collision shape will not move until next frame, so the events manager may diff --git a/src/field/gamepieces/controllers/path_loop_ai_controller.gd b/src/field/gamepieces/controllers/path_loop_ai_controller.gd index d8f2632..39cfe8c 100644 --- a/src/field/gamepieces/controllers/path_loop_ai_controller.gd +++ b/src/field/gamepieces/controllers/path_loop_ai_controller.gd @@ -8,6 +8,7 @@ extends GamepieceController update_configuration_warnings() var _current_waypoint_index: = 0 +var _path_origin: Vector2 @onready var _timer: Timer = $WaitTimer @@ -19,6 +20,7 @@ func _ready() -> void: if not Engine.is_editor_hint(): move_path.hide() + _path_origin = _gamepiece.position _timer.one_shot = true _timer.timeout.connect(_on_timer_timeout) @@ -29,8 +31,8 @@ func _get_configuration_warnings() -> PackedStringArray: var warnings: PackedStringArray = [] # Node exports are currently broken. -# if not move_path: -# warnings.append("The path loop controller needs a valid Line2D to follow!") + if not move_path: + warnings.append("The path loop controller needs a valid Line2D to follow!") return warnings @@ -56,13 +58,13 @@ func _find_waypoints_from_line2D() -> void: return # Add the first cell to the path, since subsequent additions will have the first cell removed. - _waypoints.append(_gameboard.pixel_to_cell(move_path.get_point_position(0) + _gamepiece.position)) + _waypoints.append(_gameboard.pixel_to_cell(move_path.get_point_position(0) + _path_origin)) # Create a looping path from the points specified by move_path. Will fail if a path cannot be # found between some of the move_path's points. for i in range(1, move_path.get_point_count()): - var source: = _gameboard.pixel_to_cell(move_path.get_point_position(i-1) + _gamepiece.position) - var target: = _gameboard.pixel_to_cell(move_path.get_point_position(i) + _gamepiece.position) + var source: = _gameboard.pixel_to_cell(move_path.get_point_position(i-1) + _path_origin) + var target: = _gameboard.pixel_to_cell(move_path.get_point_position(i) + _path_origin) var path_subset: = pathfinder.get_path_cells(source, target) if path_subset.is_empty(): @@ -74,9 +76,9 @@ func _find_waypoints_from_line2D() -> void: _waypoints.append_array(path_subset.slice(1)) # Finally, connect the ending and starting cells to complete the loop. - var last_pos: = move_path.get_point_position(move_path.get_point_count()-1) + _gamepiece.position + var last_pos: = move_path.get_point_position(move_path.get_point_count()-1) + _path_origin var last_cell: = _gameboard.pixel_to_cell(last_pos) - var first_cell: = _gameboard.pixel_to_cell(move_path.get_point_position(0) + _gamepiece.position) + var first_cell: = _gameboard.pixel_to_cell(move_path.get_point_position(0) + _path_origin) # If we've made it this far there must be a path between the first and last cell. _waypoints.append_array(pathfinder.get_path_cells(last_cell, first_cell).slice(1)) diff --git a/src/field/interaction_template_locked_door.gd b/src/field/interaction_template_locked_door.gd index 10bf308..f48bd11 100644 --- a/src/field/interaction_template_locked_door.gd +++ b/src/field/interaction_template_locked_door.gd @@ -11,8 +11,8 @@ func _ready(): func interact() -> void: - print(Dialogic.VAR.NumKeys) - Dialogic.VAR.NumKeys = 3 + print("Door keys:" ,Dialogic.VAR.NumKeys) +# Dialogic.VAR.NumKeys = 3 if not _anim.is_playing(): if Dialogic.VAR.NumKeys > 0: Dialogic.VAR.set_variable("NumKeys", Dialogic.VAR.NumKeys-1) @@ -20,6 +20,15 @@ func interact() -> void: else: _anim.play("locked") + + # We rely on the physics engine for movement, so the physics state of the open door (whose + # collision shape we just turned on/off with the animation player) must update at a physics + # step before pathfinders can adjust to the door's new state. + # SceneTree.physics_frame is emitted BEFORE the physics step, so we want to wait until a + # second signal is emitted before updating pathfinding. + await get_tree().physics_frame + await get_tree().physics_frame + FieldEvents.terrain_changed.emit() func _on_var_changed(_data: Dictionary) -> void: diff --git a/src/main.tscn b/src/main.tscn index f51d234..a78f714 100644 --- a/src/main.tscn +++ b/src/main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=39 format=3 uid="uid://p01fb6nvi144"] +[gd_scene load_steps=42 format=3 uid="uid://p01fb6nvi144"] [ext_resource type="Script" path="res://src/field/field.gd" id="2_bkxev"] [ext_resource type="Script" path="res://src/field/field_cursor.gd" id="5_3guor"] @@ -15,7 +15,9 @@ [ext_resource type="Texture2D" uid="uid://ber3qsogrcx52" path="res://assets/characters/apothecary.atlastex" id="13_tekkh"] [ext_resource type="Script" path="res://src/field/player_path_destination_marker.gd" id="14_0j4ru"] [ext_resource type="PackedScene" uid="uid://se1wnxu5svgj" path="res://data/field/characters/knight_gfx.tscn" id="14_av6f5"] +[ext_resource type="Script" path="res://src/field/interaction_template_conversation.gd" id="15_rfx1g"] [ext_resource type="Script" path="res://data/maps/town/thief_interaction.gd" id="16_5r5nu"] +[ext_resource type="Resource" path="res://data/maps/town/runner.dtl" id="16_ybo02"] [ext_resource type="Script" path="res://data/maps/town/monk_interaction.gd" id="17_bift3"] [ext_resource type="PackedScene" uid="uid://dqdk6eehxsrmn" path="res://data/field/characters/monk_gfx.tscn" id="17_qgtho"] [ext_resource type="PackedScene" uid="uid://kiwma43jc3n6" path="res://data/field/characters/lady_gfx.tscn" id="17_sieyv"] @@ -51,6 +53,9 @@ radius = 4.0 [sub_resource type="RectangleShape2D" id="RectangleShape2D_nn0hs"] size = Vector2(16, 16) +[sub_resource type="CircleShape2D" id="CircleShape2D_02nj2"] +radius = 4.0 + [node name="Gameboard" type="Node2D" node_paths=PackedStringArray("focused_game_piece")] scale = Vector2(5, 5) script = ExtResource("2_bkxev") @@ -72,7 +77,7 @@ layer_1/modulate = Color(1, 1, 1, 1) layer_1/y_sort_enabled = true layer_1/y_sort_origin = 0 layer_1/z_index = 0 -layer_1/tile_data = PackedInt32Array(524293, 0, 4, 589829, 0, 5, 655365, 0, 6, 524294, 196608, 4, 589830, 65536, 5, 655366, 0, 7, 524295, 65536, 4, 589831, 196608, 5, 655367, 131072, 6, 524296, 131072, 4, 589832, 131072, 5, 655368, 196608, 6, 262151, 262144, 6, 262153, 458752, 6, 262150, 327680, 6, 262148, 262144, 6, 196612, 262144, 6, 196614, 458752, 6, 131079, 262144, 4, 196615, 262144, 5, 131080, 327680, 4, 196616, 458752, 5, 131081, 393216, 4, 196617, 393216, 5, 65540, 262144, 4, 131076, 262144, 5, 65541, 458752, 4, 131077, 327680, 5, 65542, 393216, 4, 131078, 393216, 5, 196613, 262144, 7, 262149, 262144, 7, 262152, 327680, 7, 524292, 589824, 3, 524291, 589824, 3, 524290, 589824, 3, 524289, 524288, 3, 589825, 524288, 4, 655361, 524288, 5, 655362, 589824, 3, 655364, 589824, 3, 589828, 655360, 7, 589826, 655360, 7, 786438, 524288, 6, 786439, 589824, 6, 786441, 589824, 6, 786443, 589824, 6, 786444, 655360, 6, 786442, 589824, 3, 786440, 589824, 3, 196621, 0, 4, 262157, 0, 5, 327693, 0, 6, 196622, 65536, 4, 262158, 65536, 5, 327694, 65536, 7, 196623, 131072, 4, 262159, 131072, 5, 327695, 196608, 6, 327691, 524288, 6, 327692, 589824, 6, 65550, 327680, 2, 458755, 327680, 1, 655374, 524288, 8, 262162, 0, 4, 327698, 0, 5, 393234, 0, 6, 262163, 196608, 4, 327699, 65536, 5, 393235, 0, 7, 262164, 131072, 4, 327700, 131072, 5, 393236, 196608, 6, 655379, 0, 4, 720915, 0, 5, 786451, 0, 6, 655380, 65536, 4, 720916, 65536, 5, 786452, 0, 7, 655381, 65536, 4, 720917, 65536, 5, 786453, 0, 7, 655382, 131072, 4, 720918, 131072, 5, 786454, 196608, 6, 655384, 655360, 3, 720920, 655360, 4, 786456, 655360, 5, 655383, 589824, 6, 786455, 589824, 6, 720919, 327680, 1, 851992, 327680, 1, 917527, 327680, 1, 917523, 327680, 1, 917522, 327680, 2, 458756, 262144, 2, 393221, 327680, 0, 262146, 262144, 2, 720897, 327680, 0, 327696, 327680, 0, 851978, 262144, 2, 851976, 262144, 1, 851975, 262144, 1, 655370, 262144, 1, 655372, 262144, 1, 196624, 262144, 1, 131090, 262144, 1, 393219, 262144, 1, 917519, 262144, 1, 917525, 262144, 1, 589848, 262144, 1, 65556, 196608, 1, 393229, 327680, 2, 393228, 327680, 1, 393227, 327680, 1, 458772, 327680, 1, 327687, 262144, 2, 327689, 262144, 2, 851970, 196608, 1, 983043, 196608, 1, 917508, 196608, 1, 983044, 196608, 2, 917506, 196608, 2, 983048, 196608, 2, 983049, 196608, 1, 917503, 458752, 1, 917502, 458752, 1, 917501, 458752, 1, 851965, 458752, 1, 851964, 458752, 1, 851963, 458752, 1, 786427, 458752, 1, 720891, 458752, 1, 655355, 458752, 1, 655356, 458752, 1, 589820, 458752, 1, 589821, 458752, 1, 655357, 458752, 1, 720893, 458752, 1, 786429, 458752, 1, 917499, 458752, 1, 917498, 458752, 1, 851962, 458752, 1, 786426, 458752, 1, 720890, 458752, 1, 655354, 458752, 1, 589818, 458752, 1, 524282, 458752, 1, 458746, 458752, 1, 458747, 458752, 1, 393211, 458752, 1, 524283, 458752, 1, 589819, 458752, 1, 917500, 458752, 1, 983036, 458752, 1, 786430, 458752, 1, 720894, 458752, 1, 720895, 524288, 1, 655359, 524288, 1, 589823, 524288, 1, 524287, 524288, 2, 458751, 458752, 1, 393216, 524288, 2, 327680, 524288, 0, 393215, 458752, 1, 327679, 524288, 0, 262143, 524288, 2, 196607, 458752, 1, 131071, 458752, 1, 65536, 458752, 1, 65537, 524288, 2, 1, 458752, 1, 2, 524288, 2, 3, 262144, 2, -65533, 524288, 2, -65532, 458752, 2, -65531, 458752, 2, -65530, 458752, 2, -65529, 458752, 2, -65528, 458752, 2, -65527, 458752, 2, -65526, 393216, 2, -65525, 458752, 1, -65524, 458752, 1, -65523, 458752, 1, -65522, 524288, 2, -393227, 458752, 1, -393226, 458752, 1, -393225, 458752, 1, -393224, 458752, 1, -393223, 458752, 1, -393222, 458752, 1, -393221, 458752, 1, -393220, 458752, 1, -393219, 458752, 1, -393218, 458752, 1, -393217, 458752, 1, -458752, 458752, 1, -458751, 458752, 1, -458750, 458752, 1, -458749, 458752, 1, -458748, 458752, 1, -458747, 458752, 1, -458746, 458752, 1, -458745, 458752, 1, -458744, 458752, 1, -458743, 458752, 1, -458742, 458752, 1, -458741, 458752, 1, -458740, 458752, 1, -458739, 458752, 1, -458738, 458752, 1, -458737, 458752, 1, -458736, 458752, 1, -458735, 458752, 1, -458734, 458752, 1, -458733, 458752, 1, -458732, 458752, 1, -458731, 458752, 1, -458730, 458752, 1, -458729, 458752, 1, -458728, 458752, 1, -458727, 458752, 1, -458726, 458752, 1, -458725, 458752, 1, -458724, 458752, 1, -458723, 458752, 1, -458722, 458752, 1, -458721, 458752, 1, -458720, 458752, 1, -458719, 458752, 1, -458718, 458752, 1, -458717, 458752, 1, -524253, 458752, 1, -524254, 458752, 1, -524255, 458752, 1, -524256, 458752, 1, -524257, 458752, 1, -524258, 458752, 1, -524259, 458752, 1, -524260, 458752, 1, -524261, 458752, 1, -524262, 458752, 1, -524263, 458752, 1, -524264, 458752, 1, -524265, 458752, 1, -524266, 458752, 1, -524267, 458752, 1, -524268, 458752, 1, -524269, 458752, 1, -524270, 458752, 1, -524271, 458752, 1, -524272, 458752, 1, -524273, 458752, 1, -524274, 458752, 1, -524275, 458752, 1, -524276, 458752, 1, -524277, 458752, 1, -524278, 458752, 1, -524279, 458752, 1, -524280, 458752, 1, -524281, 458752, 1, -524282, 458752, 1, -524283, 458752, 1, -524284, 458752, 1, -524285, 458752, 1, -524286, 458752, 1, -524287, 458752, 1, -524288, 458752, 1, -458753, 458752, 1, -458754, 458752, 1, -458755, 458752, 1, -458756, 458752, 1, -458757, 458752, 1, -458758, 458752, 1, -458759, 458752, 1, -458760, 458752, 1, -458761, 458752, 1, -458762, 458752, 1, -458763, 458752, 1, -458764, 393216, 0, -393228, 458752, 1, -327692, 458752, 1, -262156, 458752, 1, -196620, 458752, 1, -131084, 458752, 1, -65548, 458752, 1, -12, 458752, 1, 65524, 458752, 1, 131060, 458752, 1, 196596, 458752, 1, 262132, 458752, 1, 327668, 458752, 1, 393204, 458752, 1, 458740, 458752, 1, 524276, 458752, 1, 589812, 458752, 1, 655348, 458752, 1, 720884, 458752, 1, 786420, 458752, 1, 851956, 458752, 1, 917492, 458752, 1, 983028, 458752, 1, 1048564, 458752, 1, 1114100, 458752, 1, 1179636, 458752, 1, 1245172, 458752, 1, 1310708, 458752, 1, 1376244, 458752, 1, 1441780, 458752, 1, 1507316, 393216, 2, 1507317, 458752, 1, 1507318, 458752, 1, 1507319, 458752, 1, 1507320, 458752, 1, 1507321, 458752, 1, 1507322, 458752, 1, 1507323, 458752, 1, 1507324, 458752, 1, 1507325, 458752, 1, 1507326, 458752, 1, 1441828, 458752, 1, 1441827, 458752, 1, 1441826, 458752, 1, 1441825, 458752, 1, 1441824, 458752, 1, 1441823, 458752, 1, 1441822, 458752, 1, 1441821, 458752, 1, 1441820, 458752, 1, 1441819, 458752, 1, 1441818, 458752, 1, 1441817, 458752, 1, 1441816, 458752, 1, 1441815, 458752, 1, 1441814, 458752, 1, 1441813, 458752, 1, 1441812, 458752, 1, 1441811, 458752, 1, 1441810, 458752, 1, 1441809, 458752, 1, 1441808, 458752, 1, 1441807, 393216, 1, 1441804, 458752, 1, 1441803, 458752, 1, 1441802, 458752, 1, 1441801, 458752, 1, 1441800, 393216, 2, 1441799, 524288, 2, 1441798, 458752, 1, 1441797, 458752, 1, 1441796, 458752, 1, 1441795, 458752, 1, 1441794, 458752, 1, 1441793, 458752, 1, 1441792, 458752, 1, 1507327, 458752, 1, -65500, 458752, 1, 36, 458752, 1, 65572, 458752, 1, 131108, 458752, 1, 196644, 458752, 1, 262180, 458752, 1, 327716, 458752, 1, 393252, 458752, 1, 458788, 458752, 1, 524324, 458752, 1, 589860, 458752, 1, 655396, 458752, 1, 720932, 458752, 1, 786468, 458752, 1, 852004, 458752, 1, 917540, 458752, 1, 983076, 458752, 1, 1048612, 458752, 1, 1114148, 458752, 1, 1179684, 458752, 1, 1245220, 458752, 1, 1310756, 458752, 1, 1376292, 458752, 1, -524252, 458752, 1, -458716, 458752, 1, -393180, 458752, 1, -327644, 458752, 1, -262108, 458752, 1, -196572, 458752, 1, -131036, 458752, 1, -65511, 458752, 1, -65512, 458752, 1, -65513, 458752, 1, -65514, 458752, 1, -65515, 393216, 2, -65516, 458752, 2, -65517, 458752, 2, -65518, 458752, 2, -65519, 458752, 2, -65520, 458752, 2, -65521, 458752, 2, -65534, 458752, 1, -65535, 458752, 1, -65536, 458752, 1, -1, 458752, 1, 983065, 458752, 1, 917529, 393216, 0, 851993, 393216, 1, 786457, 393216, 1, 720921, 393216, 1, 655385, 393216, 1, 589849, 393216, 1, 524313, 393216, 1, 458777, 393216, 1, 393241, 393216, 2, 327705, 458752, 1, 262169, 458752, 1, 196633, 458752, 1, 131097, 458752, 1, 65561, 458752, 1, 25, 458752, 1, 983050, 458752, 0, 983055, 393216, 0, 983056, 458752, 1, 983057, 458752, 1, 983058, 524288, 0, 983059, 458752, 0, 983060, 458752, 0, 983061, 458752, 0, 983062, 458752, 0, 983063, 458752, 0, 983064, 393216, 0, 1048577, 458752, 1, 1048578, 458752, 1, 1048579, 524288, 0, 1048580, 393216, 0, 1048581, 458752, 1, 1048582, 458752, 1, 1048583, 458752, 1, 1048584, 524288, 0, 1048585, 393216, 0, 1048586, 458752, 1, 1048575, 458752, 1, 983040, 458752, 1, 983041, 458752, 1, 983042, 524288, 0, 65535, 458752, 1, 786431, 524288, 1, 851967, 524288, 0, 983039, 458752, 1, 1376291, 458752, 1, 1310755, 458752, 1, 1245219, 458752, 1, 1179683, 458752, 1, 1114147, 458752, 1, 1048611, 458752, 1, 983075, 458752, 1, 917539, 458752, 1, 852003, 458752, 1, 786467, 458752, 1, 720931, 458752, 1, 655395, 458752, 1, 589859, 458752, 1, 524323, 458752, 1, 458787, 458752, 1, 393251, 458752, 1, 327715, 458752, 1, 262179, 458752, 1, 196643, 458752, 1, 131107, 458752, 1, 65571, 458752, 1, 35, 458752, 1, -65501, 458752, 1, -131037, 458752, 1, -196573, 458752, 1, -262109, 458752, 1, -327645, 458752, 1, -393181, 458752, 1, 1376290, 458752, 1, 1310754, 458752, 1, 1245218, 458752, 1, 1179682, 458752, 1, 1114146, 458752, 1, 1048610, 458752, 1, 983074, 458752, 1, 917538, 458752, 1, 852002, 458752, 1, 786466, 458752, 1, 720930, 458752, 1, 655394, 458752, 1, 589858, 458752, 1, 524322, 458752, 1, 458786, 458752, 1, 393250, 458752, 1, 327714, 458752, 1, 262178, 458752, 1, 196642, 458752, 1, 131106, 458752, 1, 65570, 458752, 1, 34, 458752, 1, -65502, 458752, 1, -131038, 458752, 1, -196574, 458752, 1, -262110, 458752, 1, -327646, 458752, 1, -393182, 458752, 1, 1376289, 458752, 1, 1310753, 458752, 1, 1245217, 458752, 1, 1179681, 458752, 1, 1114145, 458752, 1, 1048609, 458752, 1, 983073, 458752, 1, 917537, 458752, 1, 852001, 458752, 1, 786465, 458752, 1, 720929, 458752, 1, 655393, 458752, 1, 589857, 458752, 1, 524321, 458752, 1, 458785, 458752, 1, 393249, 458752, 1, 327713, 458752, 1, 262177, 458752, 1, 196641, 458752, 1, 131105, 458752, 1, 65569, 458752, 1, 33, 458752, 1, -65503, 458752, 1, -131039, 458752, 1, -196575, 458752, 1, -262111, 458752, 1, -327647, 458752, 1, -393183, 458752, 1, 1376288, 458752, 1, 1310752, 458752, 1, 1245216, 458752, 1, 1179680, 458752, 1, 1114144, 458752, 1, 1048608, 458752, 1, 983072, 458752, 1, 917536, 458752, 1, 852000, 458752, 1, 786464, 458752, 1, 720928, 458752, 1, 655392, 458752, 1, 589856, 458752, 1, 524320, 458752, 1, 458784, 458752, 1, 393248, 458752, 1, 327712, 458752, 1, 262176, 458752, 1, 196640, 458752, 1, 131104, 458752, 1, 65568, 458752, 1, 32, 458752, 1, -65504, 458752, 1, -131040, 458752, 1, -196576, 458752, 1, -262112, 458752, 1, -327648, 458752, 1, -393184, 458752, 1, 1376287, 458752, 1, 1310751, 458752, 1, 1245215, 458752, 1, 1179679, 458752, 1, 1114143, 458752, 1, 1048607, 458752, 1, 983071, 458752, 1, 917535, 458752, 1, 851999, 458752, 1, 786463, 458752, 1, 720927, 458752, 1, 655391, 458752, 1, 589855, 458752, 1, 524319, 458752, 1, 458783, 458752, 1, 393247, 458752, 1, 327711, 458752, 1, 262175, 458752, 1, 196639, 458752, 1, 131103, 458752, 1, 65567, 458752, 1, 31, 458752, 1, -65505, 458752, 1, -131041, 458752, 1, -196577, 458752, 1, -262113, 458752, 1, -327649, 458752, 1, -393185, 458752, 1, 1376286, 458752, 1, 1310750, 458752, 1, 1245214, 458752, 1, 1179678, 458752, 1, 1114142, 458752, 1, 1048606, 458752, 1, 983070, 458752, 1, 917534, 458752, 1, 851998, 458752, 1, 786462, 458752, 1, 720926, 458752, 1, 655390, 458752, 1, 589854, 458752, 1, 524318, 458752, 1, 458782, 458752, 1, 393246, 458752, 1, 327710, 458752, 1, 262174, 458752, 1, 196638, 458752, 1, 131102, 458752, 1, 65566, 458752, 1, 30, 458752, 1, -65506, 458752, 1, -131042, 458752, 1, -196578, 458752, 1, -262114, 458752, 1, -327650, 458752, 1, -393186, 458752, 1, 1376285, 458752, 1, 1310749, 458752, 1, 1245213, 458752, 1, 1179677, 458752, 1, 1114141, 458752, 1, 1048605, 458752, 1, 983069, 458752, 1, 917533, 458752, 1, 851997, 458752, 1, 786461, 458752, 1, 720925, 458752, 1, 655389, 458752, 1, 589853, 458752, 1, 524317, 458752, 1, 458781, 458752, 1, 393245, 458752, 1, 327709, 458752, 1, 262173, 458752, 1, 196637, 458752, 1, 131101, 458752, 1, 65565, 458752, 1, 29, 458752, 1, -65507, 458752, 1, -131043, 458752, 1, -196579, 458752, 1, -262115, 458752, 1, -327651, 458752, 1, -393187, 458752, 1, 1376284, 458752, 1, 1310748, 458752, 1, 1245212, 458752, 1, 1179676, 458752, 1, 1114140, 458752, 1, 1048604, 458752, 1, 983068, 458752, 1, 917532, 458752, 1, 851996, 458752, 1, 786460, 458752, 1, 720924, 458752, 1, 655388, 458752, 1, 589852, 458752, 1, 524316, 458752, 1, 458780, 458752, 1, 393244, 458752, 1, 327708, 458752, 1, 262172, 458752, 1, 196636, 458752, 1, 131100, 458752, 1, 65564, 458752, 1, 28, 458752, 1, -65508, 458752, 1, -131044, 458752, 1, -196580, 458752, 1, -262116, 458752, 1, -327652, 458752, 1, -393188, 458752, 1, 1376283, 458752, 1, 1310747, 458752, 1, 1245211, 458752, 1, 1179675, 458752, 1, 1114139, 458752, 1, 1048603, 458752, 1, 983067, 458752, 1, 917531, 458752, 1, 851995, 458752, 1, 786459, 458752, 1, 720923, 458752, 1, 655387, 458752, 1, 589851, 458752, 1, 524315, 458752, 1, 458779, 458752, 1, 393243, 458752, 1, 327707, 458752, 1, 262171, 458752, 1, 196635, 458752, 1, 131099, 458752, 1, 65563, 458752, 1, 27, 458752, 1, -65509, 458752, 1, -131045, 458752, 1, -196581, 458752, 1, -262117, 458752, 1, -327653, 458752, 1, -393189, 458752, 1, 1376282, 458752, 1, 1310746, 458752, 1, 1245210, 458752, 1, 1179674, 458752, 1, 1114138, 458752, 1, 1048602, 458752, 1, 983066, 458752, 1, 917530, 458752, 1, 851994, 458752, 1, 786458, 458752, 1, 720922, 458752, 1, 655386, 458752, 1, 589850, 458752, 1, 524314, 458752, 1, 458778, 458752, 1, 393242, 458752, 1, 327706, 458752, 1, 262170, 458752, 1, 196634, 458752, 1, 131098, 458752, 1, 65562, 458752, 1, 26, 458752, 1, -65510, 458752, 1, -131046, 458752, 1, -196582, 458752, 1, -262118, 458752, 1, -327654, 458752, 1, -393190, 458752, 1, 1376281, 458752, 1, 1310745, 458752, 1, 1245209, 458752, 1, 1179673, 458752, 1, 1114137, 458752, 1, 1048601, 458752, 1, -131047, 458752, 1, -196583, 458752, 1, -262119, 458752, 1, -327655, 458752, 1, -393191, 458752, 1, 1376280, 458752, 1, 1310744, 458752, 1, 1245208, 458752, 1, 1179672, 458752, 1, 1114136, 458752, 1, 1048600, 458752, 1, -131048, 458752, 1, -196584, 458752, 1, -262120, 458752, 1, -327656, 458752, 1, -393192, 458752, 1, 1376279, 458752, 1, 1310743, 458752, 1, 1245207, 458752, 1, 1179671, 458752, 1, 1114135, 458752, 1, 1048599, 458752, 1, -131049, 458752, 1, -196585, 458752, 1, -262121, 458752, 1, -327657, 458752, 1, -393193, 458752, 1, 1376278, 458752, 1, 1310742, 458752, 1, 1245206, 393216, 0, 1179670, 393216, 2, 1114134, 458752, 1, 1048598, 458752, 1, -131050, 458752, 1, -196586, 458752, 1, -262122, 458752, 1, -327658, 458752, 1, -393194, 458752, 1, 1376277, 458752, 1, 1310741, 458752, 1, 1245205, 524288, 0, 1179669, 524288, 2, 1114133, 458752, 1, 1048597, 458752, 1, -131051, 458752, 1, -196587, 458752, 1, -262123, 458752, 1, -327659, 458752, 1, -393195, 458752, 1, 1376276, 458752, 1, 1310740, 458752, 1, 1245204, 458752, 1, 1179668, 458752, 1, 1114132, 458752, 1, 1048596, 458752, 1, -131052, 458752, 1, -196588, 458752, 1, -262124, 458752, 1, -327660, 458752, 1, -393196, 458752, 1, 1376275, 458752, 1, 1310739, 458752, 1, 1245203, 458752, 1, 1179667, 458752, 1, 1114131, 458752, 1, 1048595, 458752, 1, -131053, 458752, 1, -196589, 458752, 1, -262125, 458752, 1, -327661, 458752, 1, -393197, 458752, 1, 1376274, 458752, 1, 1310738, 458752, 1, 1245202, 458752, 1, 1179666, 458752, 1, 1114130, 458752, 1, 1048594, 458752, 1, -131054, 458752, 1, -196590, 458752, 1, -262126, 458752, 1, -327662, 458752, 1, -393198, 458752, 1, 1376273, 458752, 1, 1310737, 458752, 1, 1245201, 458752, 1, 1179665, 458752, 1, 1114129, 458752, 1, 1048593, 458752, 1, -131055, 458752, 1, -196591, 458752, 1, -262127, 458752, 1, -327663, 458752, 1, -393199, 458752, 1, 1376272, 458752, 1, 1310736, 458752, 1, 1245200, 458752, 1, 1179664, 458752, 1, 1114128, 458752, 1, 1048592, 458752, 1, -131056, 458752, 1, -196592, 458752, 1, -262128, 458752, 1, -327664, 458752, 1, -393200, 458752, 1, 1376271, 393216, 1, 1310735, 393216, 2, 1245199, 458752, 1, 1179663, 458752, 1, 1114127, 458752, 1, 1048591, 458752, 1, -131057, 458752, 1, -196593, 458752, 1, -262129, 458752, 1, -327665, 458752, 1, -393201, 458752, 1, -131058, 458752, 1, -196594, 458752, 1, -262130, 458752, 1, -327666, 458752, 1, -393202, 458752, 1, -131059, 458752, 1, -196595, 458752, 1, -262131, 458752, 1, -327667, 458752, 1, -393203, 458752, 1, 1376268, 524288, 0, -131060, 458752, 1, -196596, 458752, 1, -262132, 458752, 1, -327668, 458752, 1, -393204, 458752, 1, 1376267, 458752, 1, -131061, 458752, 1, -196597, 458752, 1, -262133, 458752, 1, -327669, 458752, 1, -393205, 458752, 1, 1376266, 458752, 1, 1310730, 458752, 1, 1245194, 458752, 1, 1179658, 524288, 0, 1114122, 524288, 2, -131062, 458752, 1, -196598, 458752, 1, -262134, 458752, 1, -327670, 458752, 1, -393206, 458752, 1, 1376265, 458752, 1, 1310729, 458752, 1, 1245193, 458752, 1, 1179657, 458752, 1, 1114121, 458752, 1, -131063, 458752, 1, -196599, 458752, 1, -262135, 458752, 1, -327671, 458752, 1, -393207, 458752, 1, 1376264, 458752, 1, 1310728, 458752, 1, 1245192, 458752, 1, 1179656, 458752, 1, 1114120, 458752, 1, -131064, 458752, 1, -196600, 458752, 1, -262136, 458752, 1, -327672, 458752, 1, -393208, 458752, 1, 1376263, 458752, 1, 1310727, 458752, 1, 1245191, 458752, 1, 1179655, 458752, 1, 1114119, 458752, 1, -131065, 458752, 1, -196601, 458752, 1, -262137, 458752, 1, -327673, 458752, 1, -393209, 458752, 1, 1376262, 458752, 1, 1310726, 458752, 1, 1245190, 458752, 1, 1179654, 458752, 1, 1114118, 458752, 1, -131066, 458752, 1, -196602, 458752, 1, -262138, 458752, 1, -327674, 458752, 1, -393210, 458752, 1, 1376261, 458752, 1, 1310725, 458752, 1, 1245189, 458752, 1, 1179653, 458752, 1, 1114117, 458752, 1, -131067, 458752, 1, -196603, 458752, 1, -262139, 458752, 1, -327675, 458752, 1, -393211, 458752, 1, 1376260, 458752, 1, 1310724, 458752, 1, 1245188, 458752, 1, 1179652, 458752, 1, 1114116, 458752, 1, -131068, 458752, 1, -196604, 458752, 1, -262140, 458752, 1, -327676, 458752, 1, -393212, 458752, 1, 1376259, 458752, 1, 1310723, 458752, 1, 1245187, 458752, 1, 1179651, 458752, 1, 1114115, 458752, 1, -131069, 458752, 1, -196605, 458752, 1, -262141, 458752, 1, -327677, 458752, 1, -393213, 458752, 1, 1376258, 458752, 1, 1310722, 458752, 1, 1245186, 458752, 1, 1179650, 458752, 1, 1114114, 458752, 1, -131070, 458752, 1, -196606, 458752, 1, -262142, 458752, 1, -327678, 458752, 1, -393214, 458752, 1, 1376257, 458752, 1, 1310721, 458752, 1, 1245185, 458752, 1, 1179649, 458752, 1, 1114113, 458752, 1, -131071, 458752, 1, -196607, 458752, 1, -262143, 458752, 1, -327679, 458752, 1, -393215, 458752, 1, 1376256, 458752, 1, 1310720, 458752, 1, 1245184, 458752, 1, 1179648, 458752, 1, 1114112, 458752, 1, 1048576, 458752, 1, -131072, 458752, 1, -196608, 458752, 1, -262144, 458752, 1, -327680, 458752, 1, -393216, 458752, 1, 1441791, 458752, 1, 1376255, 458752, 1, 1310719, 458752, 1, 1245183, 458752, 1, 1179647, 458752, 1, 1114111, 458752, 1, -65537, 458752, 1, -131073, 458752, 1, -196609, 458752, 1, -262145, 458752, 1, -327681, 458752, 1, 1441790, 458752, 1, 1376254, 458752, 1, 1310718, 458752, 1, 1245182, 458752, 1, 1179646, 458752, 1, 1114110, 458752, 1, 1048574, 458752, 1, 983038, 458752, 1, 655358, 458752, 1, 589822, 458752, 1, 524286, 458752, 1, 458750, 458752, 1, 393214, 458752, 1, 327678, 458752, 1, 262142, 458752, 1, 196606, 458752, 1, 131070, 458752, 1, 65534, 458752, 1, -2, 458752, 1, -65538, 458752, 1, -131074, 458752, 1, -196610, 458752, 1, -262146, 458752, 1, -327682, 458752, 1, 1441789, 458752, 1, 1376253, 458752, 1, 1310717, 458752, 1, 1245181, 458752, 1, 1179645, 458752, 1, 1114109, 458752, 1, 1048573, 458752, 1, 983037, 458752, 1, 524285, 458752, 1, 458749, 458752, 1, 393213, 458752, 1, 327677, 458752, 1, 262141, 458752, 1, 196605, 458752, 1, 131069, 458752, 1, 65533, 458752, 1, -3, 458752, 1, -65539, 458752, 1, -131075, 458752, 1, -196611, 458752, 1, -262147, 458752, 1, -327683, 458752, 1, 1441788, 458752, 1, 1376252, 458752, 1, 1310716, 458752, 1, 1245180, 458752, 1, 1179644, 458752, 1, 1114108, 458752, 1, 1048572, 458752, 1, 524284, 458752, 1, 458748, 458752, 1, 393212, 458752, 1, 327676, 458752, 1, 262140, 458752, 1, 196604, 458752, 1, 131068, 458752, 1, 65532, 458752, 1, -4, 458752, 1, -65540, 458752, 1, -131076, 458752, 1, -196612, 458752, 1, -262148, 458752, 1, -327684, 458752, 1, 1441787, 458752, 1, 1376251, 458752, 1, 1310715, 458752, 1, 1245179, 458752, 1, 1179643, 458752, 1, 1114107, 458752, 1, 1048571, 458752, 1, 983035, 458752, 1, 327675, 458752, 1, 262139, 458752, 1, 196603, 458752, 1, 131067, 458752, 1, 65531, 458752, 1, -5, 458752, 1, -65541, 458752, 1, -131077, 458752, 1, -196613, 458752, 1, -262149, 458752, 1, -327685, 458752, 1, 1441786, 458752, 1, 1376250, 458752, 1, 1310714, 458752, 1, 1245178, 458752, 1, 1179642, 458752, 1, 1114106, 458752, 1, 1048570, 458752, 1, 983034, 458752, 1, 393210, 458752, 1, 327674, 458752, 1, 262138, 458752, 1, 196602, 458752, 1, 131066, 458752, 1, 65530, 458752, 1, -6, 458752, 1, -65542, 458752, 1, -131078, 458752, 1, -196614, 458752, 1, -262150, 458752, 1, -327686, 458752, 1, 1441785, 458752, 1, 1376249, 458752, 1, 1310713, 458752, 1, 1245177, 458752, 1, 1179641, 458752, 1, 1114105, 458752, 1, 1048569, 458752, 1, 983033, 458752, 1, 917497, 458752, 1, 851961, 458752, 1, 786425, 458752, 1, 720889, 458752, 1, 655353, 458752, 1, 589817, 458752, 1, 524281, 458752, 1, 458745, 458752, 1, 393209, 458752, 1, 327673, 458752, 1, 262137, 458752, 1, 196601, 458752, 1, 131065, 458752, 1, 65529, 458752, 1, -7, 458752, 1, -65543, 458752, 1, -131079, 458752, 1, -196615, 458752, 1, -262151, 458752, 1, -327687, 458752, 1, 1441784, 458752, 1, 1376248, 458752, 1, 1310712, 458752, 1, 1245176, 458752, 1, 1179640, 458752, 1, 1114104, 458752, 1, 1048568, 458752, 1, 983032, 458752, 1, 917496, 458752, 1, 851960, 458752, 1, 786424, 458752, 1, 720888, 458752, 1, 655352, 458752, 1, 589816, 458752, 1, 524280, 458752, 1, 458744, 458752, 1, 393208, 458752, 1, 327672, 458752, 1, 262136, 458752, 1, 196600, 458752, 1, 131064, 458752, 1, 65528, 458752, 1, -8, 458752, 1, -65544, 458752, 1, -131080, 458752, 1, -196616, 458752, 1, -262152, 458752, 1, -327688, 458752, 1, 1441783, 458752, 1, 1376247, 458752, 1, 1310711, 458752, 1, 1245175, 458752, 1, 1179639, 458752, 1, 1114103, 458752, 1, 1048567, 458752, 1, 983031, 458752, 1, 917495, 458752, 1, 851959, 458752, 1, 786423, 458752, 1, 720887, 458752, 1, 655351, 458752, 1, 589815, 458752, 1, 524279, 458752, 1, 458743, 458752, 1, 393207, 458752, 1, 327671, 458752, 1, 262135, 458752, 1, 196599, 458752, 1, 131063, 458752, 1, 65527, 458752, 1, -9, 458752, 1, -65545, 458752, 1, -131081, 458752, 1, -196617, 458752, 1, -262153, 458752, 1, -327689, 458752, 1, 1441782, 458752, 1, 1376246, 458752, 1, 1310710, 458752, 1, 1245174, 458752, 1, 1179638, 458752, 1, 1114102, 458752, 1, 1048566, 458752, 1, 983030, 458752, 1, 917494, 458752, 1, 851958, 458752, 1, 786422, 458752, 1, 720886, 458752, 1, 655350, 458752, 1, 589814, 458752, 1, 524278, 458752, 1, 458742, 458752, 1, 393206, 458752, 1, 327670, 458752, 1, 262134, 458752, 1, 196598, 458752, 1, 131062, 458752, 1, 65526, 458752, 1, -10, 458752, 1, -65546, 458752, 1, -131082, 458752, 1, -196618, 458752, 1, -262154, 458752, 1, -327690, 458752, 1, 1441781, 458752, 1, 1376245, 458752, 1, 1310709, 458752, 1, 1245173, 458752, 1, 1179637, 458752, 1, 1114101, 458752, 1, 1048565, 458752, 1, 983029, 458752, 1, 917493, 458752, 1, 851957, 458752, 1, 786421, 458752, 1, 720885, 458752, 1, 655349, 458752, 1, 589813, 458752, 1, 524277, 458752, 1, 458741, 458752, 1, 393205, 458752, 1, 327669, 458752, 1, 262133, 458752, 1, 196597, 458752, 1, 131061, 458752, 1, 65525, 458752, 1, -11, 458752, 1, -65547, 458752, 1, -131083, 458752, 1, -196619, 458752, 1, -262155, 458752, 1, -327691, 458752, 1, 851966, 458752, 1, 786428, 458752, 1, 720892, 458752, 1, -393179, 393216, 1, -393178, 524288, 1, 0, 458752, 1, 131072, 524288, 2, 12, 458752, 1, 11, 458752, 1, 13, 524288, 2, 10, 393216, 1, 65547, 458752, 2, 65548, 458752, 2, 23, 458752, 1, 65559, 458752, 1, 65560, 458752, 1, 131096, 458752, 1, 196632, 458752, 1, 262168, 458752, 1, 196631, 393216, 0, 262167, 458752, 1, 327703, 458752, 1, 327704, 458752, 1, 393240, 524288, 2, 24, 458752, 1, 22, 393216, 2, 131095, 393216, 2, 262166, 393216, 1, 327702, 393216, 1, 65558, 393216, 1, 393239, 393216, 2, 917521, 458752, 0, 917520, 458752, 0, 983047, 458752, 0, 983046, 458752, 0, 983045, 458752, 0, 917505, 524288, 0, 851968, 524288, 0, 917504, 458752, 1, 1048587, 524288, 1, 1114123, 262144, 2, 1048590, 393216, 0, 1114126, 458752, 1, 1179661, 393216, 2, 1179662, 458752, 1, 1245197, 262144, 2, 1245198, 393216, 2, 1376269, 458752, 0, 1441805, 524288, 2, 1245195, 524288, 1, 1310731, 524288, 0, 1114125, 393216, 0, 393237, 589824, 4, 655369, 720896, 8, 589833, 720896, 8, 262156, 655361, 6, 14, 327681, 7, 262155, 196609, 5, 196620, 655361, 6, 131084, 196609, 5, 131086, 720896, 8, 655363, 589824, 3, 720902, 720896, 6, 393230, 327680, 1, 393231, 327680, 1, 458767, 327680, 1, 458766, 327680, 1, 458765, 327680, 1) +layer_1/tile_data = PackedInt32Array(524293, 0, 4, 589829, 0, 5, 655365, 0, 6, 524294, 196608, 4, 589830, 65536, 5, 655366, 0, 7, 524295, 65536, 4, 589831, 196608, 5, 655367, 131072, 6, 524296, 131072, 4, 589832, 131072, 5, 655368, 196608, 6, 262151, 262144, 6, 262153, 458752, 6, 262150, 327680, 6, 262148, 262144, 6, 196612, 262144, 6, 196614, 458752, 6, 131079, 262144, 4, 196615, 262144, 5, 131080, 327680, 4, 196616, 458752, 5, 131081, 393216, 4, 196617, 393216, 5, 65540, 262144, 4, 131076, 262144, 5, 65541, 458752, 4, 131077, 327680, 5, 65542, 393216, 4, 131078, 393216, 5, 196613, 262144, 7, 262149, 262144, 7, 262152, 327680, 7, 524292, 589824, 3, 524291, 589824, 3, 524290, 589824, 3, 524289, 524288, 3, 589825, 524288, 4, 655361, 524288, 5, 655362, 589824, 3, 655364, 589824, 3, 589828, 655360, 7, 589826, 655360, 7, 786438, 524288, 6, 786439, 589824, 6, 786441, 589824, 6, 786443, 589824, 6, 786444, 655360, 6, 786442, 589824, 3, 786440, 589824, 3, 196621, 0, 4, 262157, 0, 5, 327693, 0, 6, 196622, 65536, 4, 262158, 65536, 5, 327694, 65536, 7, 196623, 131072, 4, 262159, 131072, 5, 327695, 196608, 6, 327691, 524288, 6, 327692, 589824, 6, 65550, 327680, 2, 458755, 327680, 1, 655374, 524288, 8, 262162, 0, 4, 327698, 0, 5, 393234, 0, 6, 262163, 196608, 4, 327699, 65536, 5, 393235, 0, 7, 262164, 131072, 4, 327700, 131072, 5, 393236, 196608, 6, 655379, 0, 4, 720915, 0, 5, 786451, 0, 6, 655380, 65536, 4, 720916, 65536, 5, 786452, 0, 7, 655381, 65536, 4, 720917, 65536, 5, 786453, 0, 7, 655382, 131072, 4, 720918, 131072, 5, 786454, 196608, 6, 655384, 655360, 3, 720920, 655360, 4, 786456, 655360, 5, 655383, 589824, 6, 786455, 589824, 6, 720919, 327680, 1, 851992, 327680, 1, 917527, 327680, 1, 917523, 327680, 1, 917522, 327680, 2, 458756, 262144, 2, 393221, 327680, 0, 262146, 262144, 2, 720897, 327680, 0, 327696, 327680, 0, 851978, 262144, 2, 851976, 262144, 1, 851975, 262144, 1, 655370, 262144, 1, 655372, 262144, 1, 196624, 262144, 1, 131090, 262144, 1, 393219, 262144, 1, 917519, 262144, 1, 917525, 262144, 1, 589848, 262144, 1, 65556, 196608, 1, 393229, 327680, 2, 393228, 327680, 1, 393227, 327680, 1, 458772, 327680, 1, 327687, 262144, 2, 327689, 262144, 2, 851970, 196608, 1, 983043, 196608, 1, 917508, 196608, 1, 983044, 196608, 2, 917506, 196608, 2, 983048, 196608, 2, 983049, 196608, 1, 917503, 458752, 1, 917502, 458752, 1, 917501, 458752, 1, 851965, 458752, 1, 851964, 458752, 1, 851963, 458752, 1, 786427, 458752, 1, 720891, 458752, 1, 655355, 458752, 1, 655356, 458752, 1, 589820, 458752, 1, 589821, 458752, 1, 655357, 458752, 1, 720893, 458752, 1, 786429, 458752, 1, 917499, 458752, 1, 917498, 458752, 1, 851962, 458752, 1, 786426, 458752, 1, 720890, 458752, 1, 655354, 458752, 1, 589818, 458752, 1, 524282, 458752, 1, 458746, 458752, 1, 458747, 458752, 1, 393211, 458752, 1, 524283, 458752, 1, 589819, 458752, 1, 917500, 458752, 1, 983036, 458752, 1, 786430, 458752, 1, 720894, 458752, 1, 720895, 524288, 1, 655359, 524288, 1, 589823, 524288, 1, 524287, 524288, 2, 458751, 458752, 1, 393216, 524288, 2, 327680, 524288, 0, 393215, 458752, 1, 327679, 524288, 0, 262143, 524288, 2, 196607, 458752, 1, 131071, 458752, 1, 65536, 458752, 1, 65537, 524288, 2, 1, 458752, 1, 2, 524288, 2, 3, 262144, 2, -65533, 524288, 2, -65532, 458752, 2, -65531, 458752, 2, -65530, 458752, 2, -65529, 458752, 2, -65528, 458752, 2, -65527, 458752, 2, -65526, 393216, 2, -65525, 458752, 1, -65524, 458752, 1, -65523, 458752, 1, -65522, 524288, 2, -393227, 458752, 1, -393226, 458752, 1, -393225, 458752, 1, -393224, 458752, 1, -393223, 458752, 1, -393222, 458752, 1, -393221, 458752, 1, -393220, 458752, 1, -393219, 458752, 1, -393218, 458752, 1, -393217, 458752, 1, -458752, 458752, 1, -458751, 458752, 1, -458750, 458752, 1, -458749, 458752, 1, -458748, 458752, 1, -458747, 458752, 1, -458746, 458752, 1, -458745, 458752, 1, -458744, 458752, 1, -458743, 458752, 1, -458742, 458752, 1, -458741, 458752, 1, -458740, 458752, 1, -458739, 458752, 1, -458738, 458752, 1, -458737, 458752, 1, -458736, 458752, 1, -458735, 458752, 1, -458734, 458752, 1, -458733, 458752, 1, -458732, 458752, 1, -458731, 458752, 1, -458730, 458752, 1, -458729, 458752, 1, -458728, 458752, 1, -458727, 458752, 1, -458726, 458752, 1, -458725, 458752, 1, -458724, 458752, 1, -458723, 458752, 1, -458722, 458752, 1, -458721, 458752, 1, -458720, 458752, 1, -458719, 458752, 1, -458718, 458752, 1, -458717, 458752, 1, -524253, 458752, 1, -524254, 458752, 1, -524255, 458752, 1, -524256, 458752, 1, -524257, 458752, 1, -524258, 458752, 1, -524259, 458752, 1, -524260, 458752, 1, -524261, 458752, 1, -524262, 458752, 1, -524263, 458752, 1, -524264, 458752, 1, -524265, 458752, 1, -524266, 458752, 1, -524267, 458752, 1, -524268, 458752, 1, -524269, 458752, 1, -524270, 458752, 1, -524271, 458752, 1, -524272, 458752, 1, -524273, 458752, 1, -524274, 458752, 1, -524275, 458752, 1, -524276, 458752, 1, -524277, 458752, 1, -524278, 458752, 1, -524279, 458752, 1, -524280, 458752, 1, -524281, 458752, 1, -524282, 458752, 1, -524283, 458752, 1, -524284, 458752, 1, -524285, 458752, 1, -524286, 458752, 1, -524287, 458752, 1, -524288, 458752, 1, -458753, 458752, 1, -458754, 458752, 1, -458755, 458752, 1, -458756, 458752, 1, -458757, 458752, 1, -458758, 458752, 1, -458759, 458752, 1, -458760, 458752, 1, -458761, 458752, 1, -458762, 458752, 1, -458763, 458752, 1, -458764, 393216, 0, -393228, 458752, 1, -327692, 458752, 1, -262156, 458752, 1, -196620, 458752, 1, -131084, 458752, 1, -65548, 458752, 1, -12, 458752, 1, 65524, 458752, 1, 131060, 458752, 1, 196596, 458752, 1, 262132, 458752, 1, 327668, 458752, 1, 393204, 458752, 1, 458740, 458752, 1, 524276, 458752, 1, 589812, 458752, 1, 655348, 458752, 1, 720884, 458752, 1, 786420, 458752, 1, 851956, 458752, 1, 917492, 458752, 1, 983028, 458752, 1, 1048564, 458752, 1, 1114100, 458752, 1, 1179636, 458752, 1, 1245172, 458752, 1, 1310708, 458752, 1, 1376244, 458752, 1, 1441780, 458752, 1, 1507316, 393216, 2, 1507317, 458752, 1, 1507318, 458752, 1, 1507319, 458752, 1, 1507320, 458752, 1, 1507321, 458752, 1, 1507322, 458752, 1, 1507323, 458752, 1, 1507324, 458752, 1, 1507325, 458752, 1, 1507326, 458752, 1, 1441828, 458752, 1, 1441827, 458752, 1, 1441826, 458752, 1, 1441825, 458752, 1, 1441824, 458752, 1, 1441823, 458752, 1, 1441822, 458752, 1, 1441821, 458752, 1, 1441820, 458752, 1, 1441819, 458752, 1, 1441818, 458752, 1, 1441817, 458752, 1, 1441816, 458752, 1, 1441815, 458752, 1, 1441814, 458752, 1, 1441813, 458752, 1, 1441812, 458752, 1, 1441811, 458752, 1, 1441810, 458752, 1, 1441809, 458752, 1, 1441808, 458752, 1, 1441807, 393216, 1, 1441804, 458752, 1, 1441803, 458752, 1, 1441802, 458752, 1, 1441801, 458752, 1, 1441800, 393216, 2, 1441799, 524288, 2, 1441798, 458752, 1, 1441797, 458752, 1, 1441796, 458752, 1, 1441795, 458752, 1, 1441794, 458752, 1, 1441793, 458752, 1, 1441792, 458752, 1, 1507327, 458752, 1, -65500, 458752, 1, 36, 458752, 1, 65572, 458752, 1, 131108, 458752, 1, 196644, 458752, 1, 262180, 458752, 1, 327716, 458752, 1, 393252, 458752, 1, 458788, 458752, 1, 524324, 458752, 1, 589860, 458752, 1, 655396, 458752, 1, 720932, 458752, 1, 786468, 458752, 1, 852004, 458752, 1, 917540, 458752, 1, 983076, 458752, 1, 1048612, 458752, 1, 1114148, 458752, 1, 1179684, 458752, 1, 1245220, 458752, 1, 1310756, 458752, 1, 1376292, 458752, 1, -524252, 458752, 1, -458716, 458752, 1, -393180, 458752, 1, -327644, 458752, 1, -262108, 458752, 1, -196572, 458752, 1, -131036, 458752, 1, -65511, 458752, 1, -65512, 458752, 1, -65513, 458752, 1, -65514, 458752, 1, -65515, 393216, 2, -65516, 458752, 2, -65517, 458752, 2, -65518, 458752, 2, -65519, 458752, 2, -65520, 458752, 2, -65521, 458752, 2, -65534, 458752, 1, -65535, 458752, 1, -65536, 458752, 1, -1, 458752, 1, 983065, 458752, 1, 917529, 393216, 0, 851993, 393216, 1, 786457, 393216, 1, 720921, 393216, 1, 655385, 393216, 1, 589849, 393216, 1, 524313, 393216, 1, 458777, 393216, 1, 393241, 393216, 2, 327705, 458752, 1, 262169, 458752, 1, 196633, 458752, 1, 131097, 458752, 1, 65561, 458752, 1, 25, 458752, 1, 983050, 458752, 0, 983055, 393216, 0, 983056, 458752, 1, 983057, 458752, 1, 983058, 524288, 0, 983059, 458752, 0, 983060, 458752, 0, 983061, 458752, 0, 983062, 458752, 0, 983063, 458752, 0, 983064, 393216, 0, 1048577, 458752, 1, 1048578, 458752, 1, 1048579, 524288, 0, 1048580, 393216, 0, 1048581, 458752, 1, 1048582, 458752, 1, 1048583, 458752, 1, 1048584, 524288, 0, 1048585, 393216, 0, 1048586, 458752, 1, 1048575, 458752, 1, 983040, 458752, 1, 983041, 458752, 1, 983042, 524288, 0, 65535, 458752, 1, 786431, 524288, 1, 851967, 524288, 0, 983039, 458752, 1, 1376291, 458752, 1, 1310755, 458752, 1, 1245219, 458752, 1, 1179683, 458752, 1, 1114147, 458752, 1, 1048611, 458752, 1, 983075, 458752, 1, 917539, 458752, 1, 852003, 458752, 1, 786467, 458752, 1, 720931, 458752, 1, 655395, 458752, 1, 589859, 458752, 1, 524323, 458752, 1, 458787, 458752, 1, 393251, 458752, 1, 327715, 458752, 1, 262179, 458752, 1, 196643, 458752, 1, 131107, 458752, 1, 65571, 458752, 1, 35, 458752, 1, -65501, 458752, 1, -131037, 458752, 1, -196573, 458752, 1, -262109, 458752, 1, -327645, 458752, 1, -393181, 458752, 1, 1376290, 458752, 1, 1310754, 458752, 1, 1245218, 458752, 1, 1179682, 458752, 1, 1114146, 458752, 1, 1048610, 458752, 1, 983074, 458752, 1, 917538, 458752, 1, 852002, 458752, 1, 786466, 458752, 1, 720930, 458752, 1, 655394, 458752, 1, 589858, 458752, 1, 524322, 458752, 1, 458786, 458752, 1, 393250, 458752, 1, 327714, 458752, 1, 262178, 458752, 1, 196642, 458752, 1, 131106, 458752, 1, 65570, 458752, 1, 34, 458752, 1, -65502, 458752, 1, -131038, 458752, 1, -196574, 458752, 1, -262110, 458752, 1, -327646, 458752, 1, -393182, 458752, 1, 1376289, 458752, 1, 1310753, 458752, 1, 1245217, 458752, 1, 1179681, 458752, 1, 1114145, 458752, 1, 1048609, 458752, 1, 983073, 458752, 1, 917537, 458752, 1, 852001, 458752, 1, 786465, 458752, 1, 720929, 458752, 1, 655393, 458752, 1, 589857, 458752, 1, 524321, 458752, 1, 458785, 458752, 1, 393249, 458752, 1, 327713, 458752, 1, 262177, 458752, 1, 196641, 458752, 1, 131105, 458752, 1, 65569, 458752, 1, 33, 458752, 1, -65503, 458752, 1, -131039, 458752, 1, -196575, 458752, 1, -262111, 458752, 1, -327647, 458752, 1, -393183, 458752, 1, 1376288, 458752, 1, 1310752, 458752, 1, 1245216, 458752, 1, 1179680, 458752, 1, 1114144, 458752, 1, 1048608, 458752, 1, 983072, 458752, 1, 917536, 458752, 1, 852000, 458752, 1, 786464, 458752, 1, 720928, 458752, 1, 655392, 458752, 1, 589856, 458752, 1, 524320, 458752, 1, 458784, 458752, 1, 393248, 458752, 1, 327712, 458752, 1, 262176, 458752, 1, 196640, 458752, 1, 131104, 458752, 1, 65568, 458752, 1, 32, 458752, 1, -65504, 458752, 1, -131040, 458752, 1, -196576, 458752, 1, -262112, 458752, 1, -327648, 458752, 1, -393184, 458752, 1, 1376287, 458752, 1, 1310751, 458752, 1, 1245215, 458752, 1, 1179679, 458752, 1, 1114143, 458752, 1, 1048607, 458752, 1, 983071, 458752, 1, 917535, 458752, 1, 851999, 458752, 1, 786463, 458752, 1, 720927, 458752, 1, 655391, 458752, 1, 589855, 458752, 1, 524319, 458752, 1, 458783, 458752, 1, 393247, 458752, 1, 327711, 458752, 1, 262175, 458752, 1, 196639, 458752, 1, 131103, 458752, 1, 65567, 458752, 1, 31, 458752, 1, -65505, 458752, 1, -131041, 458752, 1, -196577, 458752, 1, -262113, 458752, 1, -327649, 458752, 1, -393185, 458752, 1, 1376286, 458752, 1, 1310750, 458752, 1, 1245214, 458752, 1, 1179678, 458752, 1, 1114142, 458752, 1, 1048606, 458752, 1, 983070, 458752, 1, 917534, 458752, 1, 851998, 458752, 1, 786462, 458752, 1, 720926, 458752, 1, 655390, 458752, 1, 589854, 458752, 1, 524318, 458752, 1, 458782, 458752, 1, 393246, 458752, 1, 327710, 458752, 1, 262174, 458752, 1, 196638, 458752, 1, 131102, 458752, 1, 65566, 458752, 1, 30, 458752, 1, -65506, 458752, 1, -131042, 458752, 1, -196578, 458752, 1, -262114, 458752, 1, -327650, 458752, 1, -393186, 458752, 1, 1376285, 458752, 1, 1310749, 458752, 1, 1245213, 458752, 1, 1179677, 458752, 1, 1114141, 458752, 1, 1048605, 458752, 1, 983069, 458752, 1, 917533, 458752, 1, 851997, 458752, 1, 786461, 458752, 1, 720925, 458752, 1, 655389, 458752, 1, 589853, 458752, 1, 524317, 458752, 1, 458781, 458752, 1, 393245, 458752, 1, 327709, 458752, 1, 262173, 458752, 1, 196637, 458752, 1, 131101, 458752, 1, 65565, 458752, 1, 29, 458752, 1, -65507, 458752, 1, -131043, 458752, 1, -196579, 458752, 1, -262115, 458752, 1, -327651, 458752, 1, -393187, 458752, 1, 1376284, 458752, 1, 1310748, 458752, 1, 1245212, 458752, 1, 1179676, 458752, 1, 1114140, 458752, 1, 1048604, 458752, 1, 983068, 458752, 1, 917532, 458752, 1, 851996, 458752, 1, 786460, 458752, 1, 720924, 458752, 1, 655388, 458752, 1, 589852, 458752, 1, 524316, 458752, 1, 458780, 458752, 1, 393244, 458752, 1, 327708, 458752, 1, 262172, 458752, 1, 196636, 458752, 1, 131100, 458752, 1, 65564, 458752, 1, 28, 458752, 1, -65508, 458752, 1, -131044, 458752, 1, -196580, 458752, 1, -262116, 458752, 1, -327652, 458752, 1, -393188, 458752, 1, 1376283, 458752, 1, 1310747, 458752, 1, 1245211, 458752, 1, 1179675, 458752, 1, 1114139, 458752, 1, 1048603, 458752, 1, 983067, 458752, 1, 917531, 458752, 1, 851995, 458752, 1, 786459, 458752, 1, 720923, 458752, 1, 655387, 458752, 1, 589851, 458752, 1, 524315, 458752, 1, 458779, 458752, 1, 393243, 458752, 1, 327707, 458752, 1, 262171, 458752, 1, 196635, 458752, 1, 131099, 458752, 1, 65563, 458752, 1, 27, 458752, 1, -65509, 458752, 1, -131045, 458752, 1, -196581, 458752, 1, -262117, 458752, 1, -327653, 458752, 1, -393189, 458752, 1, 1376282, 458752, 1, 1310746, 458752, 1, 1245210, 458752, 1, 1179674, 458752, 1, 1114138, 458752, 1, 1048602, 458752, 1, 983066, 458752, 1, 917530, 458752, 1, 851994, 458752, 1, 786458, 458752, 1, 720922, 458752, 1, 655386, 458752, 1, 589850, 458752, 1, 524314, 458752, 1, 458778, 458752, 1, 393242, 458752, 1, 327706, 458752, 1, 262170, 458752, 1, 196634, 458752, 1, 131098, 458752, 1, 65562, 458752, 1, 26, 458752, 1, -65510, 458752, 1, -131046, 458752, 1, -196582, 458752, 1, -262118, 458752, 1, -327654, 458752, 1, -393190, 458752, 1, 1376281, 458752, 1, 1310745, 458752, 1, 1245209, 458752, 1, 1179673, 458752, 1, 1114137, 458752, 1, 1048601, 458752, 1, -131047, 458752, 1, -196583, 458752, 1, -262119, 458752, 1, -327655, 458752, 1, -393191, 458752, 1, 1376280, 458752, 1, 1310744, 458752, 1, 1245208, 458752, 1, 1179672, 458752, 1, 1114136, 458752, 1, 1048600, 458752, 1, -131048, 458752, 1, -196584, 458752, 1, -262120, 458752, 1, -327656, 458752, 1, -393192, 458752, 1, 1376279, 458752, 1, 1310743, 458752, 1, 1245207, 458752, 1, 1179671, 458752, 1, 1114135, 458752, 1, 1048599, 458752, 1, -131049, 458752, 1, -196585, 458752, 1, -262121, 458752, 1, -327657, 458752, 1, -393193, 458752, 1, 1376278, 458752, 1, 1310742, 458752, 1, 1245206, 393216, 0, 1179670, 393216, 2, 1114134, 458752, 1, 1048598, 458752, 1, -131050, 458752, 1, -196586, 458752, 1, -262122, 458752, 1, -327658, 458752, 1, -393194, 458752, 1, 1376277, 458752, 1, 1310741, 458752, 1, 1245205, 524288, 0, 1179669, 524288, 2, 1114133, 458752, 1, 1048597, 458752, 1, -131051, 458752, 1, -196587, 458752, 1, -262123, 458752, 1, -327659, 458752, 1, -393195, 458752, 1, 1376276, 458752, 1, 1310740, 458752, 1, 1245204, 458752, 1, 1179668, 458752, 1, 1114132, 458752, 1, 1048596, 458752, 1, -131052, 458752, 1, -196588, 458752, 1, -262124, 458752, 1, -327660, 458752, 1, -393196, 458752, 1, 1376275, 458752, 1, 1310739, 458752, 1, 1245203, 458752, 1, 1179667, 458752, 1, 1114131, 458752, 1, 1048595, 458752, 1, -131053, 458752, 1, -196589, 458752, 1, -262125, 458752, 1, -327661, 458752, 1, -393197, 458752, 1, 1376274, 458752, 1, 1310738, 458752, 1, 1245202, 458752, 1, 1179666, 458752, 1, 1114130, 458752, 1, 1048594, 458752, 1, -131054, 458752, 1, -196590, 458752, 1, -262126, 458752, 1, -327662, 458752, 1, -393198, 458752, 1, 1376273, 458752, 1, 1310737, 458752, 1, 1245201, 458752, 1, 1179665, 458752, 1, 1114129, 458752, 1, 1048593, 458752, 1, -131055, 458752, 1, -196591, 458752, 1, -262127, 458752, 1, -327663, 458752, 1, -393199, 458752, 1, 1376272, 458752, 1, 1310736, 458752, 1, 1245200, 458752, 1, 1179664, 458752, 1, 1114128, 458752, 1, 1048592, 458752, 1, -131056, 458752, 1, -196592, 458752, 1, -262128, 458752, 1, -327664, 458752, 1, -393200, 458752, 1, 1376271, 393216, 1, 1310735, 393216, 2, 1245199, 458752, 1, 1179663, 458752, 1, 1114127, 458752, 1, 1048591, 458752, 1, -131057, 458752, 1, -196593, 458752, 1, -262129, 458752, 1, -327665, 458752, 1, -393201, 458752, 1, -131058, 458752, 1, -196594, 458752, 1, -262130, 458752, 1, -327666, 458752, 1, -393202, 458752, 1, -131059, 458752, 1, -196595, 458752, 1, -262131, 458752, 1, -327667, 458752, 1, -393203, 458752, 1, 1376268, 524288, 0, -131060, 458752, 1, -196596, 458752, 1, -262132, 458752, 1, -327668, 458752, 1, -393204, 458752, 1, 1376267, 458752, 1, -131061, 458752, 1, -196597, 458752, 1, -262133, 458752, 1, -327669, 458752, 1, -393205, 458752, 1, 1376266, 458752, 1, 1310730, 458752, 1, 1245194, 458752, 1, 1179658, 524288, 0, 1114122, 524288, 2, -131062, 458752, 1, -196598, 458752, 1, -262134, 458752, 1, -327670, 458752, 1, -393206, 458752, 1, 1376265, 458752, 1, 1310729, 458752, 1, 1245193, 458752, 1, 1179657, 458752, 1, 1114121, 458752, 1, -131063, 458752, 1, -196599, 458752, 1, -262135, 458752, 1, -327671, 458752, 1, -393207, 458752, 1, 1376264, 458752, 1, 1310728, 458752, 1, 1245192, 458752, 1, 1179656, 458752, 1, 1114120, 458752, 1, -131064, 458752, 1, -196600, 458752, 1, -262136, 458752, 1, -327672, 458752, 1, -393208, 458752, 1, 1376263, 458752, 1, 1310727, 458752, 1, 1245191, 458752, 1, 1179655, 458752, 1, 1114119, 458752, 1, -131065, 458752, 1, -196601, 458752, 1, -262137, 458752, 1, -327673, 458752, 1, -393209, 458752, 1, 1376262, 458752, 1, 1310726, 458752, 1, 1245190, 458752, 1, 1179654, 458752, 1, 1114118, 458752, 1, -131066, 458752, 1, -196602, 458752, 1, -262138, 458752, 1, -327674, 458752, 1, -393210, 458752, 1, 1376261, 458752, 1, 1310725, 458752, 1, 1245189, 458752, 1, 1179653, 458752, 1, 1114117, 458752, 1, -131067, 458752, 1, -196603, 458752, 1, -262139, 458752, 1, -327675, 458752, 1, -393211, 458752, 1, 1376260, 458752, 1, 1310724, 458752, 1, 1245188, 458752, 1, 1179652, 458752, 1, 1114116, 458752, 1, -131068, 458752, 1, -196604, 458752, 1, -262140, 458752, 1, -327676, 458752, 1, -393212, 458752, 1, 1376259, 458752, 1, 1310723, 458752, 1, 1245187, 458752, 1, 1179651, 458752, 1, 1114115, 458752, 1, -131069, 458752, 1, -196605, 458752, 1, -262141, 458752, 1, -327677, 458752, 1, -393213, 458752, 1, 1376258, 458752, 1, 1310722, 458752, 1, 1245186, 458752, 1, 1179650, 458752, 1, 1114114, 458752, 1, -131070, 458752, 1, -196606, 458752, 1, -262142, 458752, 1, -327678, 458752, 1, -393214, 458752, 1, 1376257, 458752, 1, 1310721, 458752, 1, 1245185, 458752, 1, 1179649, 458752, 1, 1114113, 458752, 1, -131071, 458752, 1, -196607, 458752, 1, -262143, 458752, 1, -327679, 458752, 1, -393215, 458752, 1, 1376256, 458752, 1, 1310720, 458752, 1, 1245184, 458752, 1, 1179648, 458752, 1, 1114112, 458752, 1, 1048576, 458752, 1, -131072, 458752, 1, -196608, 458752, 1, -262144, 458752, 1, -327680, 458752, 1, -393216, 458752, 1, 1441791, 458752, 1, 1376255, 458752, 1, 1310719, 458752, 1, 1245183, 458752, 1, 1179647, 458752, 1, 1114111, 458752, 1, -65537, 458752, 1, -131073, 458752, 1, -196609, 458752, 1, -262145, 458752, 1, -327681, 458752, 1, 1441790, 458752, 1, 1376254, 458752, 1, 1310718, 458752, 1, 1245182, 458752, 1, 1179646, 458752, 1, 1114110, 458752, 1, 1048574, 458752, 1, 983038, 458752, 1, 655358, 458752, 1, 589822, 458752, 1, 524286, 458752, 1, 458750, 458752, 1, 393214, 458752, 1, 327678, 458752, 1, 262142, 458752, 1, 196606, 458752, 1, 131070, 458752, 1, 65534, 458752, 1, -2, 458752, 1, -65538, 458752, 1, -131074, 458752, 1, -196610, 458752, 1, -262146, 458752, 1, -327682, 458752, 1, 1441789, 458752, 1, 1376253, 458752, 1, 1310717, 458752, 1, 1245181, 458752, 1, 1179645, 458752, 1, 1114109, 458752, 1, 1048573, 458752, 1, 983037, 458752, 1, 524285, 458752, 1, 458749, 458752, 1, 393213, 458752, 1, 327677, 458752, 1, 262141, 458752, 1, 196605, 458752, 1, 131069, 458752, 1, 65533, 458752, 1, -3, 458752, 1, -65539, 458752, 1, -131075, 458752, 1, -196611, 458752, 1, -262147, 458752, 1, -327683, 458752, 1, 1441788, 458752, 1, 1376252, 458752, 1, 1310716, 458752, 1, 1245180, 458752, 1, 1179644, 458752, 1, 1114108, 458752, 1, 1048572, 458752, 1, 524284, 458752, 1, 458748, 458752, 1, 393212, 458752, 1, 327676, 458752, 1, 262140, 458752, 1, 196604, 458752, 1, 131068, 458752, 1, 65532, 458752, 1, -4, 458752, 1, -65540, 458752, 1, -131076, 458752, 1, -196612, 458752, 1, -262148, 458752, 1, -327684, 458752, 1, 1441787, 458752, 1, 1376251, 458752, 1, 1310715, 458752, 1, 1245179, 458752, 1, 1179643, 458752, 1, 1114107, 458752, 1, 1048571, 458752, 1, 983035, 458752, 1, 327675, 458752, 1, 262139, 458752, 1, 196603, 458752, 1, 131067, 458752, 1, 65531, 458752, 1, -5, 458752, 1, -65541, 458752, 1, -131077, 458752, 1, -196613, 458752, 1, -262149, 458752, 1, -327685, 458752, 1, 1441786, 458752, 1, 1376250, 458752, 1, 1310714, 458752, 1, 1245178, 458752, 1, 1179642, 458752, 1, 1114106, 458752, 1, 1048570, 458752, 1, 983034, 458752, 1, 393210, 458752, 1, 327674, 458752, 1, 262138, 458752, 1, 196602, 458752, 1, 131066, 458752, 1, 65530, 458752, 1, -6, 458752, 1, -65542, 458752, 1, -131078, 458752, 1, -196614, 458752, 1, -262150, 458752, 1, -327686, 458752, 1, 1441785, 458752, 1, 1376249, 458752, 1, 1310713, 458752, 1, 1245177, 458752, 1, 1179641, 458752, 1, 1114105, 458752, 1, 1048569, 458752, 1, 983033, 458752, 1, 917497, 458752, 1, 851961, 458752, 1, 786425, 458752, 1, 720889, 458752, 1, 655353, 458752, 1, 589817, 458752, 1, 524281, 458752, 1, 458745, 458752, 1, 393209, 458752, 1, 327673, 458752, 1, 262137, 458752, 1, 196601, 458752, 1, 131065, 458752, 1, 65529, 458752, 1, -7, 458752, 1, -65543, 458752, 1, -131079, 458752, 1, -196615, 458752, 1, -262151, 458752, 1, -327687, 458752, 1, 1441784, 458752, 1, 1376248, 458752, 1, 1310712, 458752, 1, 1245176, 458752, 1, 1179640, 458752, 1, 1114104, 458752, 1, 1048568, 458752, 1, 983032, 458752, 1, 917496, 458752, 1, 851960, 458752, 1, 786424, 458752, 1, 720888, 458752, 1, 655352, 458752, 1, 589816, 458752, 1, 524280, 458752, 1, 458744, 458752, 1, 393208, 458752, 1, 327672, 458752, 1, 262136, 458752, 1, 196600, 458752, 1, 131064, 458752, 1, 65528, 458752, 1, -8, 458752, 1, -65544, 458752, 1, -131080, 458752, 1, -196616, 458752, 1, -262152, 458752, 1, -327688, 458752, 1, 1441783, 458752, 1, 1376247, 458752, 1, 1310711, 458752, 1, 1245175, 458752, 1, 1179639, 458752, 1, 1114103, 458752, 1, 1048567, 458752, 1, 983031, 458752, 1, 917495, 458752, 1, 851959, 458752, 1, 786423, 458752, 1, 720887, 458752, 1, 655351, 458752, 1, 589815, 458752, 1, 524279, 458752, 1, 458743, 458752, 1, 393207, 458752, 1, 327671, 458752, 1, 262135, 458752, 1, 196599, 458752, 1, 131063, 458752, 1, 65527, 458752, 1, -9, 458752, 1, -65545, 458752, 1, -131081, 458752, 1, -196617, 458752, 1, -262153, 458752, 1, -327689, 458752, 1, 1441782, 458752, 1, 1376246, 458752, 1, 1310710, 458752, 1, 1245174, 458752, 1, 1179638, 458752, 1, 1114102, 458752, 1, 1048566, 458752, 1, 983030, 458752, 1, 917494, 458752, 1, 851958, 458752, 1, 786422, 458752, 1, 720886, 458752, 1, 655350, 458752, 1, 589814, 458752, 1, 524278, 458752, 1, 458742, 458752, 1, 393206, 458752, 1, 327670, 458752, 1, 262134, 458752, 1, 196598, 458752, 1, 131062, 458752, 1, 65526, 458752, 1, -10, 458752, 1, -65546, 458752, 1, -131082, 458752, 1, -196618, 458752, 1, -262154, 458752, 1, -327690, 458752, 1, 1441781, 458752, 1, 1376245, 458752, 1, 1310709, 458752, 1, 1245173, 458752, 1, 1179637, 458752, 1, 1114101, 458752, 1, 1048565, 458752, 1, 983029, 458752, 1, 917493, 458752, 1, 851957, 458752, 1, 786421, 458752, 1, 720885, 458752, 1, 655349, 458752, 1, 589813, 458752, 1, 524277, 458752, 1, 458741, 458752, 1, 393205, 458752, 1, 327669, 458752, 1, 262133, 458752, 1, 196597, 458752, 1, 131061, 458752, 1, 65525, 458752, 1, -11, 458752, 1, -65547, 458752, 1, -131083, 458752, 1, -196619, 458752, 1, -262155, 458752, 1, -327691, 458752, 1, 851966, 458752, 1, 786428, 458752, 1, 720892, 458752, 1, -393179, 393216, 1, -393178, 524288, 1, 0, 458752, 1, 131072, 524288, 2, 12, 458752, 1, 11, 458752, 1, 13, 524288, 2, 10, 393216, 1, 65547, 458752, 2, 65548, 458752, 2, 23, 458752, 1, 65559, 458752, 1, 65560, 458752, 1, 131096, 458752, 1, 196632, 458752, 1, 262168, 458752, 1, 196631, 393216, 0, 262167, 458752, 1, 327703, 458752, 1, 327704, 458752, 1, 393240, 524288, 2, 24, 458752, 1, 22, 393216, 2, 131095, 393216, 2, 262166, 393216, 1, 327702, 393216, 1, 65558, 393216, 1, 393239, 393216, 2, 917521, 458752, 0, 917520, 458752, 0, 983047, 458752, 0, 983046, 458752, 0, 983045, 458752, 0, 917505, 524288, 0, 851968, 524288, 0, 917504, 458752, 1, 1048587, 524288, 1, 1114123, 262144, 2, 1048590, 393216, 0, 1114126, 458752, 1, 1179661, 393216, 2, 1179662, 458752, 1, 1245197, 262144, 2, 1245198, 393216, 2, 1376269, 458752, 0, 1441805, 524288, 2, 1245195, 524288, 1, 1310731, 524288, 0, 1114125, 393216, 0, 393237, 589824, 4, 589833, 720896, 8, 262156, 655361, 6, 14, 327681, 7, 262155, 196609, 5, 196620, 655361, 6, 131084, 196609, 5, 131086, 720896, 8, 655363, 589824, 3, 393230, 327680, 1, 393231, 327680, 1, 458767, 327680, 1, 458766, 327680, 1, 458765, 327680, 1, 655369, 720896, 6) layer_2/name = "Overlay" layer_2/enabled = true layer_2/modulate = Color(1, 1, 1, 1) @@ -88,7 +93,7 @@ script = ExtResource("5_3guor") gameboard = ExtResource("6_kd8tv") [node name="SignInteraction" type="Area2D" parent="Terrain"] -position = Vector2(104, 184) +position = Vector2(152, 168) collision_layer = 16 collision_mask = 8 script = ExtResource("6_brlaa") @@ -150,24 +155,34 @@ shape = SubResource("CircleShape2D_2lbg3") debug_color = Color(1, 0.929412, 0.631373, 0.419608) [node name="Runner" parent="Terrain/Gamepieces" instance=ExtResource("11_yntrj")] -position = Vector2(216, 200) +position = Vector2(296, 184) gameboard = ExtResource("6_kd8tv") blocks_movement = true metadata/_edit_group_ = true [node name="GenericCharacterAnimation" parent="Terrain/Gamepieces/Runner" instance=ExtResource("12_n5rm1")] +[node name="Interaction" type="Area2D" parent="Terrain/Gamepieces/Runner"] +collision_layer = 16 +collision_mask = 8 +script = ExtResource("15_rfx1g") +timeline = ExtResource("16_ybo02") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Terrain/Gamepieces/Runner/Interaction"] +shape = SubResource("CircleShape2D_02nj2") +debug_color = Color(1, 0.929412, 0.631373, 0.419608) + [node name="LoopAI" type="Node2D" parent="Terrain/Gamepieces/Runner" node_paths=PackedStringArray("move_path")] script = ExtResource("12_glwd5") move_path = NodePath("MovePath") gamepiece_mask = 2 [node name="WaitTimer" type="Timer" parent="Terrain/Gamepieces/Runner/LoopAI"] -wait_time = 3.0 +wait_time = 0.001 one_shot = true [node name="MovePath" type="Line2D" parent="Terrain/Gamepieces/Runner/LoopAI"] -points = PackedVector2Array(1.52588e-05, 1.52588e-05, 1.52588e-05, -16, -128, -16) +points = PackedVector2Array(1.52588e-05, 1.52588e-05, 0, -32, -32, -32, -32, 0, 0, 0) width = 2.0 [node name="Thief" parent="Terrain/Gamepieces" instance=ExtResource("11_yntrj")] @@ -268,6 +283,7 @@ gamepiece_mask = 6 [node name="Door" parent="Terrain/Gamepieces" instance=ExtResource("26_kf5ye")] position = Vector2(120, 168) +is_locked = true [node name="MapBoundaries" type="Node2D" parent="."] script = ExtResource("18_cqtg7") @@ -295,6 +311,8 @@ grow_vertical = 0 scale = Vector2(5, 5) alignment = 1 script = ExtResource("28_ejvtn") +metadata/_edit_group_ = true +metadata/_edit_lock_ = true [node name="DialogueLayout" type="Control" parent="UI"] visible = false -- GitLab