diff --git a/savefile.tres b/savefile.tres index 4a89c5f..4adda54 100644 --- a/savefile.tres +++ b/savefile.tres @@ -11,12 +11,12 @@ button_index = 1 [sub_resource type="InputEventMouseButton" id=3] button_index = 1 -[sub_resource type="InputEventJoypadButton" id=4] -button_index = 13 - [sub_resource type="InputEventKey" id=5] physical_scancode = 83 +[sub_resource type="InputEventJoypadButton" id=4] +button_index = 13 + [sub_resource type="InputEventKey" id=6] physical_scancode = 69 @@ -26,11 +26,11 @@ button_index = 2 [sub_resource type="InputEventKey" id=8] scancode = 32 -[sub_resource type="InputEventJoypadButton" id=9] - [sub_resource type="InputEventKey" id=10] physical_scancode = 16777232 +[sub_resource type="InputEventJoypadButton" id=9] + [sub_resource type="InputEventKey" id=11] scancode = 65 @@ -100,6 +100,12 @@ button_index = 12 [resource] script = ExtResource( 1 ) progress_dict = { +"Actual Level 3": { +"currency": 0, +"deaths": 5, +"frees": 0, +"kills": 0 +}, "Level 1": { "currency": 0, "deaths": 0, @@ -118,15 +124,21 @@ progress_dict = { "deaths": 0, "frees": 0, "kills": 0 +}, +"LevelTemplate": { +"currency": 8, +"deaths": 5, +"frees": 2, +"kills": 3 } } -wallet = 3 +wallet = 6 input_map = { "boost_move": [ SubResource( 1 ), SubResource( 2 ) ], "click": [ SubResource( 3 ) ], -"duck": [ SubResource( 4 ), SubResource( 5 ) ], +"duck": [ SubResource( 5 ), SubResource( 4 ) ], "interact": [ SubResource( 6 ), SubResource( 7 ) ], -"jump": [ SubResource( 8 ), SubResource( 9 ), SubResource( 10 ) ], +"jump": [ SubResource( 8 ), SubResource( 10 ), SubResource( 9 ) ], "move_left": [ SubResource( 11 ), SubResource( 12 ) ], "move_right": [ SubResource( 13 ), SubResource( 14 ) ], "pause": [ SubResource( 15 ), SubResource( 16 ) ], diff --git a/src/Actors/Enemies/Beings/Caterpillar.gd b/src/Actors/Enemies/Beings/Caterpillar.gd index a91d892..989db2b 100644 --- a/src/Actors/Enemies/Beings/Caterpillar.gd +++ b/src/Actors/Enemies/Beings/Caterpillar.gd @@ -4,9 +4,10 @@ onready var left_src = $SlopeRaycastLeft onready var right_src = $SlopeRaycastRight onready var left_wrc = $WallRaycastLeft onready var right_wrc = $WallRaycastRight +export var block_size := 16 var time = 0 -var snap = Vector2.DOWN * 24 +var snap = Vector2.DOWN * block_size func _ready() -> void: velocity.x = -120 diff --git a/src/Actors/Enemies/Beings/Caterpillar.tscn b/src/Actors/Enemies/Beings/Caterpillar.tscn index 5101f8b..d39b364 100644 --- a/src/Actors/Enemies/Beings/Caterpillar.tscn +++ b/src/Actors/Enemies/Beings/Caterpillar.tscn @@ -32,7 +32,6 @@ physics_process_parent = true [node name="EnemyBody" type="CollisionShape2D" parent="."] position = Vector2( -6.37697e-07, 4.36357 ) -scale = Vector2( 1, 1 ) shape = SubResource( 1 ) [node name="SlopeRaycastLeft" type="RayCast2D" parent="."] @@ -48,13 +47,13 @@ cast_to = Vector2( 0, 2 ) collision_mask = 8 [node name="WallRaycastLeft" type="RayCast2D" parent="."] -position = Vector2( -15, 12 ) +position = Vector2( -14.711, 11.5 ) enabled = true cast_to = Vector2( -3, 0 ) collision_mask = 8 [node name="WallRaycastRight" type="RayCast2D" parent="."] -position = Vector2( 15, 12 ) +position = Vector2( 14.711, 11.5 ) enabled = true cast_to = Vector2( 3, 0 ) collision_mask = 8 @@ -77,7 +76,6 @@ collision_layer = 2 collision_mask = 126 [node name="CollisionPolygon2D" type="CollisionShape2D" parent="EnemySkin"] -position = Vector2( -5.54991e-05, 0 ) shape = SubResource( 3 ) [connection signal="body_entered" from="StompDetector" to="." method="_on_StompDetector_body_entered"] diff --git a/src/Actors/Enemies/Beings/Flyer.gd b/src/Actors/Enemies/Beings/Flyer.gd index c99808c..f3ecb3c 100644 --- a/src/Actors/Enemies/Beings/Flyer.gd +++ b/src/Actors/Enemies/Beings/Flyer.gd @@ -92,7 +92,7 @@ func detect_player() -> void: return player = players[0] #TODO Depends on height of blobby sprite since blobbys bottom and not his middle is on y=0 - vision_raycast.cast_to = (player.global_position - global_position - Vector2(0,9)).normalized() * 24 * vision_distance + vision_raycast.cast_to = (player.global_position - global_position - Vector2(0,9)).normalized() * 16 * vision_distance var ray_angle_to_facing = vision_raycast.cast_to.angle_to(orientation.cast_to) vision_raycast.force_raycast_update() var collider = vision_raycast.get_collider() diff --git a/src/Actors/Enemies/Beings/WhatAreFrog.gd b/src/Actors/Enemies/Beings/WhatAreFrog.gd index 9e6b30b..50dd731 100644 --- a/src/Actors/Enemies/Beings/WhatAreFrog.gd +++ b/src/Actors/Enemies/Beings/WhatAreFrog.gd @@ -19,11 +19,13 @@ export var vision_distance := 6.0 export var attack_jump_range := 6.0 export var loose_target_seconds := 3.0 # Jump distance in blocks -export var default_jump_distance := 3.0 +export var default_jump_distance := 4.0 export var default_jump_angle := 70.0 export var jump_time_search := 0.7 export var jump_time_hunt := 0.3 export var jump_time_standard_deviation := 0.1 +# TODO Make constant for project +export var block_size := 16 @@ -67,7 +69,7 @@ func _ready(): func bind_to_anchor(anchor_node: Node2D, radius: float ) -> void: anchor = anchor_node - movement_radius = radius * 24 + movement_radius = radius * block_size is_bound = true $LeashAnchor.visible = true @@ -78,7 +80,7 @@ func _on_StompDetector_body_entered(body: Node) -> void: var incoming_vel_vector: Vector2 = body.velocity.normalized() # TODO This is not the right angle somehow # print(rad2deg(abs(incoming_vel_vector.angle_to(Vector2.DOWN.rotated(rotation))))) -# if abs(incoming_vel_vector.angle_to(Vector2.DOWN.rotated(rotation))) > deg2rad(60): +# if abs(incoming_vel_vector.angle_to(\Vector2.DOWN.rotated(rotation))) > deg2rad(60): # print("too shallow entry") # return signalManager.emit_signal("got_stomped") @@ -163,7 +165,7 @@ func hunting() -> Vector2: detect_timer = 0.0 #TODO Dependent on block size elif(is_on_floor() && food_target != null && !was_target_freed && - global_position.distance_to(food_target.global_position) <= attack_jump_range * 24): + global_position.distance_to(food_target.global_position) <= attack_jump_range * block_size): var collider = check_feeler(food_target.global_position - global_position) if(!was_restricted && collider != null && collider.is_in_group("frogfood")): @@ -212,7 +214,7 @@ func detect_food() -> void: i += 1 food_node = food_sources[min_dist_f_index] #TODO Depends on height of blobby sprite since blobbys bottom and not his middle is on y=0 - vision_raycast.cast_to = (food_node.global_position - global_position).normalized() * 24 * vision_distance + vision_raycast.cast_to = (food_node.global_position - global_position).normalized() * block_size * vision_distance var ray_angle_to_facing = vision_raycast.cast_to.angle_to(orientation.cast_to) vision_raycast.force_raycast_update() var collider = vision_raycast.get_collider() @@ -231,7 +233,7 @@ func detect_player() -> void: return player = players[0] #TODO Depends on height of blobby sprite since blobbys bottom and not his middle is on y=0 - vision_raycast.cast_to = (player.global_position - global_position - Vector2(0, 9)).normalized() * 24 * vision_distance + vision_raycast.cast_to = (player.global_position - global_position - Vector2(0, 9)).normalized() * block_size * vision_distance var ray_angle_to_facing = vision_raycast.cast_to.angle_to(orientation.cast_to) vision_raycast.force_raycast_update() var collider = vision_raycast.get_collider() @@ -341,18 +343,19 @@ func consider_jump_landing_space(v: Vector2) -> Vector2: # TODO Unpacked loop, make function or something? # Shortens the jump in steps to make it more safe if(!is_jump_path_safe(v, global_position) || collider != null): - jump_distance = calculate_jump_distance(v) - 18 + jump_distance = calculate_jump_distance(v) - block_size/1.5 v = change_jump_distance(jump_distance, v) jump_height = calculate_jump_height(v) v = correct_jump_direction(v) collider = check_feeler(Vector2(jump_distance * get_facing_direction(), - jump_height/2)) if(!is_jump_path_safe(v, global_position) || collider != null): - jump_distance = calculate_jump_distance(v) - 12 + jump_distance = calculate_jump_distance(v) - block_size/2.0 v = change_jump_distance(jump_distance, v) jump_height = calculate_jump_height(v) v = correct_jump_direction(v) collider = check_feeler(Vector2(jump_distance * get_facing_direction(), - jump_height/2)) if((!is_jump_path_safe(v, global_position) || collider != null) && can_reverse_facing_direction()): + # Can be printed when frog would jump into a wall too print("no safe landing space found") return Vector2(0,0) return v @@ -367,7 +370,7 @@ func consider_jumping_on_top() -> Vector2: var map_position = tilemap.world_to_map(local_position) var tile_position = Vector2(map_position.x + facing, map_position.y) # TODO Here the climb height of frog is limited to one constantly - var cell_id = tilemap.get_cell(tile_position.x, tile_position.y - 1) + var cell_id = tilemap.get_cell(tile_position.x, tile_position.y - 2) if (cell_id != -1 && #TODO 9 is the navigation tile, but thats subject to change! cell_id != 8): @@ -394,15 +397,15 @@ func consider_jumping_on_top() -> Vector2: # Tries to shorten the jump, so that it lands in a tiles center func jump_to_tile_center(v: Vector2) -> Vector2: var distance = stepify(calculate_jump_distance(v), 0.01) - if !is_equal_approx(fmod(abs(global_position.x + distance * get_facing_direction()), 24), 12): + if !is_equal_approx(fmod(abs(global_position.x + distance * get_facing_direction()), block_size), (block_size/2.0)): # print(distance) # print(global_position.x + distance) - # print(fmod((global_position.x + distance), 24)) + # print(fmod((global_position.x + distance), block_size)) var new_distance = distance if(get_facing_direction() < 0): - new_distance = fmod((global_position.x + distance), 24) - 12 + distance + new_distance = fmod((global_position.x + distance), block_size) - (block_size/2.0) + distance else: - new_distance = distance + 12 - fmod((global_position.x + distance), 24) + new_distance = distance + block_size/2.0 - fmod((global_position.x + distance), block_size) # print("centering distance") # print(new_distance) v = change_jump_distance(abs(new_distance), v) @@ -422,19 +425,19 @@ func is_jump_path_safe(v: Vector2, pos: Vector2) -> bool: # TODO Ignores spikes more than 4 blocks below and 3 jumps away # Also when its too near to one if (abs(node_pos.x - pos.x) > abs(jump_distance) * 3 - ||abs(node_pos.y - pos.y) > 24 * 4 + ||abs(node_pos.y - pos.y) > block_size * 4 || abs(node_pos.x - pos.x) < 1): continue - var node_y = node_pos.y - 12 + var node_y = node_pos.y - block_size/2.0 var initial_throw_height = node_y - (global_position.y + 9) var term1 = (pow(v0, 2) * sin(2 * angle)) / (2 * _gravity) var term2 = ((v0 * cos(angle))/_gravity) * sqrt(pow(v0, 2) * pow(sin(angle), 2) + 2 * _gravity * initial_throw_height) var distance = abs(term1) + abs(term2) # print("distance to next spike") # print(pos.x + sign(v.x) * distance - node_pos.x) - var safe_distance = 12 + var safe_distance = block_size/2.0 if (sign(initial_throw_height) < 0): - safe_distance = 24 + safe_distance = block_size if(abs(pos.x + sign(v.x) * distance - node_pos.x) < safe_distance): return false return true @@ -461,7 +464,7 @@ func change_jump_distance(target_distance: float, v: Vector2) -> Vector2: # Takes an angle and a distance to calculate a jump launching at that angle and covering the distance -func velocity_for_jump_distance(distance: float = default_jump_distance*24, angle: float = deg2rad(default_jump_angle)) -> Vector2: +func velocity_for_jump_distance(distance: float = default_jump_distance*block_size, angle: float = deg2rad(default_jump_angle)) -> Vector2: var abs_velocity = sqrt((distance * _gravity)/sin(2*angle)) return Vector2(abs_velocity,0).rotated(-1*angle) diff --git a/src/Actors/Enemies/Machines/Turret.gd b/src/Actors/Enemies/Machines/Turret.gd index 35047ac..f8b75c3 100644 --- a/src/Actors/Enemies/Machines/Turret.gd +++ b/src/Actors/Enemies/Machines/Turret.gd @@ -25,6 +25,7 @@ onready var min_rotation_speed = deg2rad(0.3) # Detection limit in blocks export var vision_distance = 7 +export var block_size := 16 var prey_ref = weakref(null) # Ray that goes from the turret to the target @@ -43,7 +44,7 @@ func searching(): for sightline in sightcone.get_children(): if !sightline.is_colliding(): return - if sightline.get_collision_point().distance_to(position) > vision_distance * 24: + if sightline.get_collision_point().distance_to(position) > vision_distance * block_size: #print(sightline.get_collision_point().distance_to(position)) return # The collider returns not the area or body it hit, but the parent of them diff --git a/src/Contraptions/Rope/Rope.gd b/src/Contraptions/Rope/Rope.gd index 16cf487..8a3809f 100644 --- a/src/Contraptions/Rope/Rope.gd +++ b/src/Contraptions/Rope/Rope.gd @@ -16,6 +16,7 @@ var anchor_distance := 1.0 var movement_radius := 1.0 export var rope_tightness := 0.5 +export var block_size := 16 func _process(_delta: float) -> void: # TODO Resize or reinitialize? @@ -27,7 +28,7 @@ func _process(_delta: float) -> void: func spawn_rope(start_pos: Vector2, end_pos: Vector2, m_radius: float = 100, new_anchors: bool = true): # The rope should be the defined length even if the anchors are close together/far apart - movement_radius = m_radius * 24 + movement_radius = m_radius * block_size var mock_end_pos = start_pos + (end_pos - start_pos).normalized() * movement_radius * rope_tightness if(new_anchors): rope_start = RopeAnchor.instance() diff --git a/src/Environment/AlienGreenHouseTilesNew.tres b/src/Environment/AlienGreenHouseTilesNew.tres index c650bd0..a91b048 100644 --- a/src/Environment/AlienGreenHouseTilesNew.tres +++ b/src/Environment/AlienGreenHouseTilesNew.tres @@ -1,4 +1,4 @@ -[gd_resource type="TileSet" load_steps=31 format=2] +[gd_resource type="TileSet" load_steps=32 format=2] [ext_resource path="res://assets/environment/blocks/basic_tileset_blobb-jakob-remix.png" type="Texture" id=1] @@ -89,6 +89,11 @@ points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) [sub_resource type="ConvexPolygonShape2D" id=34] points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="NavigationPolygon" id=35] +vertices = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +polygons = [ PoolIntArray( 0, 1, 2, 3 ) ] +outlines = [ PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) ] + [resource] 0/name = "basic_tileset_blobb-jakob-remix.png 0" 0/texture = ExtResource( 1 ) @@ -310,3 +315,18 @@ points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) } ] 1/z_index = 0 +2/name = "basic_tileset_blobb-jakob-remix.png 2" +2/texture = ExtResource( 1 ) +2/tex_offset = Vector2( 0, 0 ) +2/modulate = Color( 1, 1, 1, 1 ) +2/region = Rect2( 0, 0, 16, 16 ) +2/tile_mode = 0 +2/occluder_offset = Vector2( 0, 0 ) +2/navigation_offset = Vector2( 0, 0 ) +2/navigation = SubResource( 35 ) +2/shape_offset = Vector2( 0, 0 ) +2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +2/shape_one_way = false +2/shape_one_way_margin = 0.0 +2/shapes = [ ] +2/z_index = 0 diff --git a/src/Levels/1 Tut Level.tscn b/src/Levels/1 Tut Level.tscn index 877dc22..dd5aff1 100644 --- a/src/Levels/1 Tut Level.tscn +++ b/src/Levels/1 Tut Level.tscn @@ -113,10 +113,10 @@ visible = true visible = true [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 3 +frame = 0 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 6 +frame = 3 [node name="Blobby" parent="." instance=ExtResource( 9 )] unique_name_in_owner = true diff --git a/src/Levels/New Tiles Level.tscn b/src/Levels/New Tiles Level.tscn index 4286d5a..d72620c 100644 --- a/src/Levels/New Tiles Level.tscn +++ b/src/Levels/New Tiles Level.tscn @@ -1,14 +1,15 @@ -[gd_scene load_steps=11 format=2] +[gd_scene load_steps=12 format=2] [ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=1] [ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=2] [ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=3] [ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=4] [ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=5] -[ext_resource path="res://src/Levels/x02 Level.tscn" type="PackedScene" id=6] +[ext_resource path="res://src/Actors/Enemies/Beings/Caterpillar.tscn" type="PackedScene" id=6] [ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=7] [ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=8] [ext_resource path="res://src/Environment/AlienGreenHouseTilesNew.tres" type="TileSet" id=9] +[ext_resource path="res://src/Actors/Enemies/Beings/BoundFrog.tscn" type="PackedScene" id=10] [sub_resource type="AnimationNodeStateMachinePlayback" id=4] @@ -45,6 +46,9 @@ scale = Vector2( 0.878906, 0.936025 ) [node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 4 ) +[node name="Caterpillar" parent="." instance=ExtResource( 6 )] +position = Vector2( 452, -154 ) + [node name="TileMap" type="TileMap" parent="."] unique_name_in_owner = true tile_set = ExtResource( 9 ) @@ -55,11 +59,17 @@ collision_layer = 8 collision_mask = 8 bake_navigation = true format = 1 -tile_data = PoolIntArray( -1245196, 1, 131076, -1245195, 1, 131076, -1245194, 1, 131076, -1245193, 1, 131076, -1245192, 1, 131076, -1245191, 1, 131076, -1245190, 1, 131076, -1245189, 1, 131076, -1245188, 1, 131076, -1245187, 1, 131076, -1245186, 1, 131076, -1245185, 1, 131076, -1310720, 1, 131076, -1310719, 1, 131076, -1310718, 1, 131076, -1310717, 1, 131076, -1310716, 1, 131076, -1310715, 1, 131076, -1310714, 1, 131076, -1310713, 1, 131076, -1310712, 1, 131076, -1310711, 1, 131076, -1310710, 1, 131076, -1310709, -536870911, 327681, -1310708, 536870913, 131077, -1310707, 536870913, 131077, -1310706, 536870913, 131077, -1310705, 536870913, 131077, -1310704, 536870913, 131077, -1310703, 536870913, 131077, -1310702, 536870913, 131077, -1310701, 536870913, 131077, -1310700, 536870913, 131077, -1310699, 536870913, 131077, -1310698, 536870913, 131077, -1310697, 536870913, 131077, -1310696, 536870913, 131077, -1310695, 536870913, 131077, -1310694, 536870913, 131077, -1310693, 536870913, 131077, -1310692, 536870913, 131077, -1310691, 536870913, 131077, -1310690, 536870913, 131077, -1310689, 536870913, 131077, -1310688, 536870913, 131077, -1310687, 536870913, 131077, -1310686, 536870913, 131077, -1310685, 536870913, 131077, -1310684, 1073741825, 327681, -1179660, 1, 131076, -1179659, 1, 131076, -1179658, 1, 131076, -1179657, 1, 131076, -1179656, 1, 131076, -1179655, 1, 131076, -1179654, 1, 131076, -1179653, 1, 131076, -1179652, 1, 131076, -1179651, 1, 131076, -1179650, 1, 131076, -1179649, 1, 131076, -1245184, 1, 131076, -1245183, 1, 131076, -1245182, 1, 131076, -1245181, 1, 131076, -1245180, 1, 131076, -1245179, 1, 131076, -1245178, 1, 131076, -1245177, 1, 131076, -1245176, 1, 131076, -1245175, 1, 131076, -1245174, 1, 131076, -1245173, -2147483647, 131077, -1245172, 536870913, 131079, -1245171, -536870911, 196615, -1245170, -536870911, 196615, -1245169, -536870911, 196615, -1245168, -536870911, 196615, -1245167, -536870911, 196615, -1245166, -536870911, 196615, -1245165, -536870911, 196615, -1245164, -536870911, 196615, -1245163, -536870911, 196615, -1245162, -536870911, 196615, -1245161, -536870911, 196615, -1245160, -536870911, 196615, -1245159, -536870911, 196615, -1245158, -536870911, 196615, -1245157, -536870911, 196615, -1245156, -536870911, 196615, -1245155, -536870911, 196615, -1245154, -536870911, 196615, -1245153, -536870911, 196615, -1245152, -536870911, 196615, -1245151, -536870911, 196615, -1245150, -536870911, 196615, -1245149, 536870913, 131079, -1245148, -536870911, 131077, -1114124, 1, 131076, -1114123, 1, 131076, -1114122, 1, 131076, -1114121, 1, 131076, -1114120, 1, 131076, -1114119, 1, 131076, -1114118, 1, 131076, -1114117, 1, 131076, -1114116, 1, 131076, -1114115, 1, 131076, -1114114, 1, 131076, -1114113, 1, 131076, -1179648, 1, 131076, -1179647, 1, 131076, -1179646, 1, 131076, -1179645, 1, 131076, -1179644, 1, 131076, -1179643, 1, 131076, -1179642, 1, 131076, -1179641, 1, 131076, -1179640, 1, 131076, -1179639, 1, 131076, -1179638, 1, 131076, -1179637, -2147483647, 131077, -1179636, 536870913, 196615, -1179635, 1073741825, 393216, -1179634, 536870913, 7, -1179633, 536870913, 7, -1179632, 536870913, 7, -1179631, 536870913, 7, -1179630, 536870913, 7, -1179629, 536870913, 7, -1179628, 536870913, 7, -1179627, 536870913, 7, -1179626, 536870913, 7, -1179625, 536870913, 7, -1179624, 536870913, 7, -1179623, 536870913, 7, -1179622, 536870913, 7, -1179621, 536870913, 7, -1179620, 536870913, 7, -1179619, 536870913, 7, -1179618, 536870913, 7, -1179617, 536870913, 7, -1179616, 536870913, 7, -1179615, 536870913, 7, -1179614, 536870913, 7, -1179613, -2147483647, 327685, -1179612, -536870911, 131077, -1048588, 1, 131076, -1048587, 1, 131076, -1048586, 1, 131076, -1048585, 1, 131076, -1048584, 1, 131076, -1048583, 1, 131076, -1048582, 1, 131076, -1048581, 1, 131076, -1048580, 1, 131076, -1048579, 1, 131076, -1048578, 1, 131076, -1048577, 1, 131076, -1114112, 1, 131076, -1114111, 1, 131076, -1114110, 1, 131076, -1114109, 1, 131076, -1114108, 1, 131076, -1114107, 1, 131076, -1114106, 1, 131076, -1114105, 1, 131076, -1114104, 1, 131076, -1114103, 1, 131076, -1114102, 1, 131076, -1114101, -2147483647, 131077, -1114100, 1610612737, 196615, -1114099, 1, 327687, -1114077, 1073741825, 4, -1114076, -536870911, 131077, -983052, 1, 131076, -983051, 1, 131076, -983050, 1, 131076, -983049, 1, 131076, -983048, 1, 131076, -983047, 1, 131076, -983046, 1, 131076, -983045, 1, 131076, -983044, 1, 131076, -983043, 1, 131076, -983042, 1, 131076, -983041, 1, 131076, -1048576, 1, 131076, -1048575, 1, 131076, -1048574, 1, 131076, -1048573, 1, 131076, -1048572, 1, 131076, -1048571, 1, 131076, -1048570, 1, 131076, -1048569, 1, 131076, -1048568, 1, 131076, -1048567, 1, 131076, -1048566, 1, 131076, -1048565, -2147483647, 131077, -1048564, 1610612737, 196615, -1048563, 1, 5, -1048541, 1073741825, 4, -1048540, -536870911, 131077, -917516, 1610612737, 327681, -917515, 1, 131077, -917514, 1, 131077, -917513, 1, 131077, -917512, 1, 131077, -917511, 1, 131077, -917510, 1, 131077, -917509, 1, 131077, -917508, 1, 131077, -917507, 1, 131077, -917506, 1, 131077, -917505, 1, 131077, -983040, 1, 131077, -983039, 1, 131077, -983038, 1, 131077, -983037, 1, 131077, -983036, 1, 131077, -983035, 1, 131077, -983034, 1, 131077, -983033, 1, 131077, -983032, 1, 131077, -983031, 1, 131077, -983030, 1, 131077, -983029, -536870911, 327683, -983028, 1610612737, 196615, -983027, 1, 5, -983005, 1073741825, 4, -983004, -536870911, 131077, -851980, -1073741823, 131077, -851979, 1610612737, 327682, -851978, -1073741823, 196615, -851977, -1073741823, 196615, -851976, -1073741823, 196615, -851975, -1073741823, 196615, -851974, -1073741823, 196615, -851973, -1073741823, 196615, -851972, -1073741823, 196615, -851971, -1073741823, 196615, -851970, -1073741823, 196615, -851969, -1073741823, 196615, -917504, -1073741823, 196615, -917503, -1073741823, 196615, -917502, -1073741823, 196615, -917501, -1073741823, 196615, -917500, -1073741823, 196615, -917499, -1073741823, 196615, -917498, -1073741823, 196615, -917497, -1073741823, 196615, -917496, -1073741823, 196615, -917495, -1073741823, 196615, -917494, -1073741823, 196615, -917493, -1073741823, 196615, -917492, 1610612737, 65542, -917491, 1, 5, -917469, 1073741825, 4, -917468, -536870911, 131077, -786444, -1073741823, 131077, -786443, 1610612737, 196615, -786442, -1610612735, 327685, -786441, 1, 7, -786440, 1, 7, -786439, 1, 7, -786438, 1, 7, -786437, 1, 7, -786436, 1, 7, -786435, 1, 7, -786434, 1, 7, -786433, 1, 7, -851968, 1, 7, -851967, 1, 7, -851966, 1, 7, -851965, 1, 7, -851964, 1, 7, -851963, 1, 7, -851962, 1, 7, -851961, 1, 7, -851960, 1, 7, -851959, 1, 7, -851958, 1, 7, -851957, 1, 7, -851956, 1, 7, -851955, 1, 65536, -851933, 1073741825, 4, -851932, -536870911, 131077, -720908, -1073741823, 131077, -720907, 1610612737, 196615, -720906, 1, 5, -786397, 1073741825, 4, -786396, -536870911, 131077, -655372, -1073741823, 131077, -655371, 1610612737, 196615, -655370, 1, 5, -720861, 1073741825, 4, -720860, -536870911, 131077, -589836, -1073741823, 131077, -589835, 1610612737, 196615, -589834, 1, 5, -655325, 1073741825, 4, -655324, -536870911, 131077, -524300, -1073741823, 131077, -524299, 1610612737, 196615, -524298, 1, 5, -589789, 1073741825, 4, -589788, -536870911, 131077, -458764, -1073741823, 131077, -458763, 1610612737, 196615, -458762, 1, 5, -458757, 0, 1, -458756, 0, 393217, -458755, 0, 2, -458754, 0, 327686, -524253, 1073741825, 4, -524252, -536870911, 131077, -393228, -1073741823, 131077, -393227, 1610612737, 196615, -393226, 1, 5, -393221, 0, 4, -393220, 1, 393218, -393219, 1, 393220, -393218, 0, 327687, -458717, 1073741825, 4, -458716, -536870911, 131077, -327692, -1073741823, 131077, -327691, 1610612737, 196615, -327690, 1, 5, -327685, 0, 4, -327684, 1, 393223, -327683, 1, 458753, -327682, 0, 5, -393181, 1073741825, 4, -393180, -536870911, 131077, -262156, -1073741823, 131077, -262155, 1610612737, 196615, -262154, 1, 5, -262149, 0, 6, -262148, 0, 7, -262147, 0, 7, -262146, 0, 65536, -327645, 1073741825, 4, -327644, -536870911, 131077, -196620, -1073741823, 131077, -196619, 1610612737, 196615, -196618, 1, 5, -262142, 1, 1, -262141, 1, 2, -262140, 1, 2, -262139, 1, 2, -262138, 1, 2, -262137, 1, 3, -262109, 1073741825, 4, -262108, -536870911, 131077, -131084, -1073741823, 131077, -131083, 1610612737, 196615, -131082, 1, 5, -196606, 1, 6, -196605, 1, 7, -196604, 1, 7, -196603, 1, 7, -196602, 1, 7, -196601, 1, 65536, -196573, 1073741825, 4, -196572, -536870911, 131077, -65548, -1073741823, 131077, -65547, 1610612737, 196615, -65546, 1, 5, -131037, 1073741825, 4, -131036, -536870911, 131077, -12, -1073741823, 131077, -11, 1610612737, 196615, -10, 1, 5, -65501, 1073741825, 4, -65500, -536870911, 131077, 65524, -1073741823, 131077, 65525, 1610612737, 196615, 65526, 1, 393216, 65527, 1, 2, 65528, 1, 2, 65529, 1, 2, 65530, 1, 2, 65531, 1, 2, 65532, 1, 2, 65533, 1, 2, 65534, 1, 2, 65535, 1, 2, 0, 1, 2, 1, 1, 2, 2, 1, 2, 3, 1, 2, 4, 1, 2, 5, 1, 2, 6, 1, 2, 7, 1, 2, 8, 1, 2, 9, 1, 393217, 10, 1, 393217, 11, 1, 393217, 12, 1, 393217, 13, 1, 2, 14, 1, 2, 15, 1, 2, 16, 1, 2, 17, 1, 2, 18, 1, 2, 19, 1, 2, 20, 1, 2, 21, 1, 2, 22, 1, 2, 23, 1, 2, 24, 1, 2, 25, 1, 2, 26, 1, 2, 27, 1, 2, 28, 1, 2, 29, 1, 2, 30, 1, 2, 31, 1, 2, 32, 1, 2, 33, 1, 2, 34, 1, 2, 35, 536870913, 393216, 36, -536870911, 131077, 131060, -1073741823, 131077, 131061, -1610612735, 327682, 131062, -1610612735, 196615, 131063, -1610612735, 196615, 131064, -1610612735, 196615, 131065, -1610612735, 196615, 131066, -1610612735, 196615, 131067, -1610612735, 196615, 131068, -1610612735, 196615, 131069, -1610612735, 196615, 131070, -1610612735, 196615, 131071, -1610612735, 196615, 65536, -1610612735, 196615, 65537, -1610612735, 196615, 65538, -1610612735, 196615, 65539, -1610612735, 196615, 65540, -1610612735, 196615, 65541, -1610612735, 196615, 65542, -1610612735, 196615, 65543, -1610612735, 196615, 65544, -1610612735, 196615, 65545, -1610612735, 196615, 65546, -1610612735, 196615, 65547, -1610612735, 196615, 65548, -1610612735, 196615, 65549, -1610612735, 196615, 65550, -1610612735, 196615, 65551, -1610612735, 196615, 65552, -1610612735, 196615, 65553, -1610612735, 196615, 65554, -1610612735, 196615, 65555, -1610612735, 196615, 65556, -1610612735, 196615, 65557, -1610612735, 196615, 65558, -1610612735, 196615, 65559, -1610612735, 196615, 65560, -1610612735, 196615, 65561, -1610612735, 196615, 65562, -1610612735, 196615, 65563, -1610612735, 196615, 65564, -1610612735, 196615, 65565, -1610612735, 196615, 65566, -1610612735, 196615, 65567, -1610612735, 196615, 65568, -1610612735, 196615, 65569, -1610612735, 196615, 65570, -1610612735, 196615, 65571, -2147483647, 196615, 65572, -536870911, 131077, 196596, -1610612735, 327681, 196597, 1610612737, 131077, 196598, 1610612737, 131077, 196599, 1610612737, 131077, 196600, 1610612737, 131077, 196601, 1610612737, 131077, 196602, 1610612737, 131077, 196603, 1610612737, 131077, 196604, 1610612737, 131077, 196605, 1610612737, 131077, 196606, 1610612737, 131077, 196607, 1610612737, 131077, 131072, 1610612737, 131077, 131073, 1610612737, 131077, 131074, 1610612737, 131077, 131075, 1610612737, 131077, 131076, 1610612737, 131077, 131077, 1610612737, 131077, 131078, 1610612737, 131077, 131079, 1610612737, 131077, 131080, 1610612737, 131077, 131081, 1610612737, 131077, 131082, 1610612737, 131077, 131083, 1610612737, 131077, 131084, 1610612737, 131077, 131085, 1610612737, 131077, 131086, 1, 131074, 131087, 1, 131074, 131088, 1, 131074, 131089, 1, 131074, 131090, 1, 131074, 131091, 1, 131074, 131092, 1, 131074, 131093, 1, 131074, 131094, 1, 131074, 131095, 1, 131074, 131096, 1, 131074, 131097, 1, 131074, 131098, 1, 131074, 131099, 1, 131074, 131100, 1, 131074, 131101, 1, 131074, 131102, 1, 131074, 131103, 1, 131074, 131104, 1, 131074, 131105, 1, 131074, 131106, 1, 131074, 131107, 1073741825, 131077, 131108, -2147483647, 327681 ) +tile_data = PoolIntArray( -1245196, 1, 131076, -1245195, 1, 131076, -1245194, 1, 131076, -1245193, 1, 131076, -1245192, 1, 131076, -1245191, 1, 131076, -1245190, 1, 131076, -1245189, 1, 131076, -1245188, 1, 131076, -1245187, 1, 131076, -1245186, 1, 131076, -1245185, 1, 131076, -1310720, 1, 131076, -1310719, 1, 131076, -1310718, 1, 131076, -1310717, 1, 131076, -1310716, 1, 131076, -1310715, 1, 131076, -1310714, 1, 131076, -1310713, 1, 131076, -1310712, 1, 131076, -1310711, 1, 131076, -1310710, 1, 131076, -1310709, -536870911, 327681, -1310708, 536870913, 131077, -1310707, 536870913, 131077, -1310706, 536870913, 131077, -1310705, 536870913, 131077, -1310704, 536870913, 131077, -1310703, 536870913, 131077, -1310702, 536870913, 131077, -1310701, 536870913, 131077, -1310700, 536870913, 131077, -1310699, 536870913, 131077, -1310698, 536870913, 131077, -1310697, 536870913, 131077, -1310696, 536870913, 131077, -1310695, 536870913, 131077, -1310694, 536870913, 131077, -1310693, 536870913, 131077, -1310692, 536870913, 131077, -1310691, 536870913, 131077, -1310690, 536870913, 131077, -1310689, 536870913, 131077, -1310688, 536870913, 131077, -1310687, 536870913, 131077, -1310686, 536870913, 131077, -1310685, 536870913, 131077, -1310684, 1073741825, 327681, -1179660, 1, 131076, -1179659, 1, 131076, -1179658, 1, 131076, -1179657, 1, 131076, -1179656, 1, 131076, -1179655, 1, 131076, -1179654, 1, 131076, -1179653, 1, 131076, -1179652, 1, 131076, -1179651, 1, 131076, -1179650, 1, 131076, -1179649, 1, 131076, -1245184, 1, 131076, -1245183, 1, 131076, -1245182, 1, 131076, -1245181, 1, 131076, -1245180, 1, 131076, -1245179, 1, 131076, -1245178, 1, 131076, -1245177, 1, 131076, -1245176, 1, 131076, -1245175, 1, 131076, -1245174, 1, 131076, -1245173, -2147483647, 131077, -1245172, 536870913, 131079, -1245171, -536870911, 196615, -1245170, -536870911, 196615, -1245169, -536870911, 196615, -1245168, -536870911, 196615, -1245167, -536870911, 196615, -1245166, -536870911, 196615, -1245165, -536870911, 196615, -1245164, -536870911, 196615, -1245163, 1610612737, 65543, -1245162, -536870911, 196615, -1245161, -536870911, 196615, -1245160, -536870911, 196615, -1245159, -536870911, 196615, -1245158, -536870911, 196615, -1245157, -536870911, 196615, -1245156, -536870911, 196615, -1245155, -536870911, 196615, -1245154, -536870911, 196615, -1245153, -536870911, 196615, -1245152, -536870911, 196615, -1245151, -536870911, 196615, -1245150, -536870911, 196615, -1245149, 536870913, 131079, -1245148, -536870911, 131077, -1114124, 1, 131076, -1114123, 1, 131076, -1114122, 1, 131076, -1114121, 1, 131076, -1114120, 1, 131076, -1114119, 1, 131076, -1114118, 1, 131076, -1114117, 1, 131076, -1114116, 1, 131076, -1114115, 1, 131076, -1114114, 1, 131076, -1114113, 1, 131076, -1179648, 1, 131076, -1179647, 1, 131076, -1179646, 1, 131076, -1179645, 1, 131076, -1179644, 1, 131076, -1179643, 1, 131076, -1179642, 1, 131076, -1179641, 1, 131076, -1179640, 1, 131076, -1179639, 1, 131076, -1179638, 1, 131076, -1179637, -2147483647, 131077, -1179636, 536870913, 196615, -1179635, 1073741825, 393216, -1179634, 536870913, 7, -1179633, 536870913, 7, -1179632, 536870913, 7, -1179631, 536870913, 7, -1179630, 536870913, 7, -1179629, 536870913, 7, -1179628, 536870913, 7, -1179627, 536870913, 7, -1179626, 536870913, 7, -1179625, 536870913, 7, -1179624, 536870913, 7, -1179623, 536870913, 7, -1179622, 536870913, 7, -1179621, 536870913, 7, -1179620, 536870913, 7, -1179619, 536870913, 7, -1179618, 536870913, 7, -1179617, 536870913, 7, -1179616, 536870913, 7, -1179615, 536870913, 7, -1179614, 536870913, 7, -1179613, -2147483647, 327685, -1179612, -536870911, 131077, -1048588, 1, 131076, -1048587, 1, 131076, -1048586, 1, 131076, -1048585, 1, 131076, -1048584, 1, 131076, -1048583, 1, 131076, -1048582, 1, 131076, -1048581, 1, 131076, -1048580, 1, 131076, -1048579, 1, 131076, -1048578, 1, 131076, -1048577, 1, 131076, -1114112, 1, 131076, -1114111, 1, 131076, -1114110, 1, 131076, -1114109, 1, 131076, -1114108, 1, 131076, -1114107, 1, 131076, -1114106, 1, 131076, -1114105, 1, 131076, -1114104, 1, 131076, -1114103, 1, 131076, -1114102, 1, 131076, -1114101, -2147483647, 131077, -1114100, 1610612737, 196615, -1114099, 1, 327687, -1114077, 1073741825, 4, -1114076, -536870911, 131077, -983052, 1, 131076, -983051, 1, 131076, -983050, 1, 131076, -983049, 1, 131076, -983048, 1, 131076, -983047, 1, 131076, -983046, 1, 131076, -983045, 1, 131076, -983044, 1, 131076, -983043, 1, 131076, -983042, 1, 131076, -983041, 1, 131076, -1048576, 1, 131076, -1048575, 1, 131076, -1048574, 1, 131076, -1048573, 1, 131076, -1048572, 1, 131076, -1048571, 1, 131076, -1048570, 1, 131076, -1048569, 1, 131076, -1048568, 1, 131076, -1048567, 1, 131076, -1048566, 1, 131076, -1048565, -2147483647, 131077, -1048564, 1610612737, 196615, -1048563, 1, 5, -1048541, 1073741825, 4, -1048540, -536870911, 131077, -917516, 1610612737, 327681, -917515, 1, 131077, -917514, 1, 131077, -917513, 1, 131077, -917512, 1, 131077, -917511, 1, 131077, -917510, 1, 131077, -917509, 1, 131077, -917508, 1, 131077, -917507, 1, 131077, -917506, 1, 131077, -917505, 1, 131077, -983040, 1, 131077, -983039, 1, 131077, -983038, 1, 131077, -983037, 1, 131077, -983036, 1, 131077, -983035, 1, 131077, -983034, 1, 131077, -983033, 1, 131077, -983032, 1, 131077, -983031, 1, 131077, -983030, 1, 131077, -983029, -536870911, 327683, -983028, 1610612737, 196615, -983027, 1, 5, -983005, 1073741825, 4, -983004, -536870911, 131077, -851980, -1073741823, 131077, -851979, 1610612737, 327682, -851978, -1073741823, 196615, -851977, -1073741823, 196615, -851976, -1073741823, 196615, -851975, -1073741823, 196615, -851974, -1073741823, 196615, -851973, -1073741823, 196615, -851972, -1073741823, 196615, -851971, -1073741823, 196615, -851970, -1073741823, 196615, -851969, -1073741823, 196615, -917504, -1073741823, 196615, -917503, -1073741823, 196615, -917502, -1073741823, 196615, -917501, -1073741823, 196615, -917500, -1073741823, 196615, -917499, -1073741823, 196615, -917498, -1073741823, 196615, -917497, -1073741823, 196615, -917496, -1073741823, 196615, -917495, -1073741823, 196615, -917494, -1073741823, 196615, -917493, -1073741823, 196615, -917492, 1610612737, 65542, -917491, 1, 5, -917480, 0, 1, -917479, 0, 393217, -917478, 0, 2, -917477, 0, 2, -917476, 0, 393217, -917475, 0, 393217, -917474, 0, 2, -917473, 0, 3, -917469, 1073741825, 4, -917468, -536870911, 131077, -786444, -1073741823, 131077, -786443, 1610612737, 196615, -786442, -1610612735, 327685, -786441, 1, 7, -786440, 1, 7, -786439, 1, 7, -786438, 1, 7, -786437, 1, 7, -786436, 1, 7, -786435, 1, 7, -786434, 1, 7, -786433, 1, 7, -851968, 1, 7, -851967, 1, 7, -851966, 1, 7, -851965, 1, 7, -851964, 1, 7, -851963, 1, 7, -851962, 1, 7, -851961, 1, 7, -851960, 1, 7, -851959, 1, 7, -851958, 1, 7, -851957, 1, 7, -851956, 1, 7, -851955, 1, 65536, -851944, 0, 4, -851943, 1, 393218, -851942, 1, 393219, -851941, 1, 393219, -851940, 1, 393219, -851939, 1, 393219, -851938, 1, 393220, -851937, 0, 327687, -851933, 1073741825, 4, -851932, -536870911, 131077, -720908, -1073741823, 131077, -720907, 1610612737, 196615, -720906, 1, 5, -786408, 0, 4, -786407, 1, 393221, -786402, 1, 393222, -786401, 0, 5, -786397, 1073741825, 4, -786396, -536870911, 131077, -655372, -1073741823, 131077, -655371, 1610612737, 196615, -655370, 1, 5, -720872, 0, 4, -720871, 1, 393221, -720866, 1, 393222, -720865, 0, 5, -720861, 1073741825, 4, -720860, -536870911, 131077, -589836, -1073741823, 131077, -589835, 1610612737, 196615, -589834, 1, 5, -655336, 0, 4, -655335, 1, 393223, -655334, 1, 458752, -655333, 1, 458752, -655332, 1, 458752, -655331, 1, 458752, -655330, 1, 458753, -655329, 0, 327687, -655325, 1073741825, 4, -655324, -536870911, 131077, -524300, -1073741823, 131077, -524299, 1610612737, 196615, -524298, 1, 5, -589800, 0, 6, -589799, 0, 7, -589798, 0, 7, -589797, 0, 7, -589796, 0, 7, -589795, 0, 7, -589794, 0, 7, -589793, 0, 65536, -589789, 1073741825, 4, -589788, -536870911, 131077, -458764, -1073741823, 131077, -458763, 1610612737, 196615, -458762, 1, 5, -458757, 0, 1, -458756, 0, 393217, -458755, 0, 2, -458754, 0, 327686, -524253, 1073741825, 4, -524252, -536870911, 131077, -393228, -1073741823, 131077, -393227, 1610612737, 196615, -393226, 1, 5, -393221, 0, 4, -393220, 1, 393218, -393219, 1, 393220, -393218, 0, 327687, -458717, 1073741825, 4, -458716, -536870911, 131077, -327692, -1073741823, 131077, -327691, 1610612737, 196615, -327690, 1, 5, -327685, 0, 4, -327684, 1, 393223, -327683, 1, 458753, -327682, 0, 5, -393199, 1, 1, -393198, 1, 2, -393197, 1, 3, -393181, 1073741825, 4, -393180, -536870911, 131077, -262156, -1073741823, 131077, -262155, 1610612737, 196615, -262154, 1, 5, -262149, 0, 6, -262148, 0, 7, -262147, 0, 7, -262146, 0, 65536, -327663, 1, 4, -327662, -1073741823, 196608, -327661, 1, 5, -327645, 1073741825, 4, -327644, -536870911, 131077, -196620, -1073741823, 131077, -196619, 1610612737, 196615, -196618, 1, 5, -262139, 1, 1, -262138, 1, 2, -262137, 1, 2, -262136, 1, 2, -262135, 1, 2, -262134, 1, 3, -262127, 1, 4, -262126, -1610612735, 65543, -262125, 1, 5, -262109, 1073741825, 4, -262108, -536870911, 131077, -131084, -1073741823, 131077, -131083, -1073741823, 196608, -131082, 1, 5, -196603, 1, 6, -196602, 1, 7, -196601, 1, 7, -196600, 1, 7, -196599, 1, 7, -196598, 1, 65536, -196591, 1, 4, -196590, -1610612735, 196614, -196589, 1, 393216, -196588, 1, 2, -196587, 1, 2, -196586, 1, 2, -196585, 1, 3, -196573, 1073741825, 4, -196572, -536870911, 131077, -65548, -1073741823, 131077, -65547, 1610612737, 196615, -65546, 1, 5, -131055, 1, 4, -131054, -1610612735, 196614, -131053, 1, 393218, -131052, 1, 393219, -131051, 1, 393219, -131050, 1, 393220, -131049, 1, 5, -131037, 1073741825, 4, -131036, -536870911, 131077, -12, -1073741823, 131077, -11, 1610612737, 196615, -10, 1, 5, -65519, 1, 4, -65518, -1610612735, 196614, -65517, 1, 393221, -65514, 1, 393222, -65513, 1, 393216, -65512, 1, 2, -65511, 1, 2, -65510, 1, 327686, -65501, 1073741825, 4, -65500, -536870911, 131077, 65524, -1073741823, 131077, 65525, 1610612737, 196615, 65526, 1, 393216, 65527, 1, 2, 65528, 1, 2, 65529, 1, 2, 65530, 1, 2, 65531, 1, 2, 65532, 1, 2, 65533, 1, 2, 65534, 1, 2, 65535, 1, 2, 0, 1, 2, 1, 1, 2, 2, 1, 2, 3, 1, 2, 4, 1, 2, 5, 1, 2, 6, 1, 2, 7, 1, 2, 8, 1, 2, 9, 1, 393217, 10, 1, 393217, 11, 1, 393217, 12, 1, 393217, 13, 1, 2, 14, 1, 2, 15, 1, 2, 16, 1, 2, 17, 1, 262149, 18, -1610612735, 196614, 19, 1, 393223, 20, 1, 458752, 21, 1, 458752, 22, 1, 458753, 23, -1610612735, 262144, 24, -1073741823, 196615, 25, -1073741823, 65540, 26, 1, 393216, 27, 1, 2, 28, 1, 2, 29, 1, 2, 30, 1, 2, 31, 1, 2, 32, 1, 2, 33, 1, 2, 34, 1, 2, 35, 536870913, 393216, 36, -536870911, 131077, 131060, -1073741823, 131077, 131061, -1610612735, 327682, 131062, -1610612735, 196615, 131063, -1610612735, 196615, 131064, -1610612735, 196615, 131065, -1610612735, 196615, 131066, -1610612735, 196615, 131067, 1610612737, 196608, 131068, 1610612737, 196608, 131069, 1, 65543, 131070, -1610612735, 196615, 131071, -1610612735, 196615, 65536, -1610612735, 196615, 65537, -1610612735, 196615, 65538, -1610612735, 196615, 65539, -1610612735, 196615, 65540, -1610612735, 196615, 65541, -1610612735, 196615, 65542, 1, 65543, 65543, -1610612735, 196615, 65544, 1610612737, 262148, 65545, -1610612735, 196615, 65546, -1610612735, 196615, 65547, -1610612735, 196615, 65548, -1610612735, 196615, 65549, -1610612735, 196615, 65550, -1610612735, 196615, 65551, -1610612735, 196615, 65552, -1610612735, 196615, 65553, -1610612735, 196615, 65554, -1610612735, 196615, 65555, -1610612735, 196615, 65556, -1610612735, 196615, 65557, -1610612735, 196615, 65558, -1610612735, 196615, 65559, -1610612735, 196615, 65560, 1, 65543, 65561, 1, 65540, 65562, -1073741823, 262144, 65563, -1610612735, 196615, 65564, -1610612735, 196615, 65565, -1610612735, 196615, 65566, -1610612735, 196615, 65567, -1610612735, 196615, 65568, -1610612735, 196615, 65569, -1610612735, 196615, 65570, -1610612735, 196615, 65571, -2147483647, 196615, 65572, -536870911, 131077, 196596, -1610612735, 327681, 196597, 1610612737, 131077, 196598, 1610612737, 131077, 196599, 1610612737, 131077, 196600, 1610612737, 131077, 196601, 1610612737, 131077, 196602, 1610612737, 131077, 196603, 1610612737, 131077, 196604, 1610612737, 131077, 196605, 1610612737, 131077, 196606, 1610612737, 131077, 196607, 1610612737, 131077, 131072, 1610612737, 131077, 131073, 1610612737, 131077, 131074, 1610612737, 131077, 131075, 1610612737, 131077, 131076, 1610612737, 131077, 131077, 1610612737, 131077, 131078, 1610612737, 131077, 131079, 1610612737, 131077, 131080, 1610612737, 131077, 131081, 1610612737, 131077, 131082, 1610612737, 131077, 131083, 1610612737, 131077, 131084, 1610612737, 131077, 131085, 1610612737, 131077, 131086, 1, 131074, 131087, 1, 131074, 131088, 1, 131074, 131089, 1, 131074, 131090, 1, 131074, 131091, 1, 131074, 131092, 1, 131074, 131093, 1, 131074, 131094, 1, 131074, 131095, 1, 131074, 131096, 1, 131074, 131097, 1, 131074, 131098, 1, 131074, 131099, 1, 131074, 131100, 1, 131074, 131101, 1, 131074, 131102, 1, 131074, 131103, 1, 131074, 131104, 1, 131074, 131105, 1, 131074, 131106, 1, 131074, 131107, 1073741825, 131077, 131108, -2147483647, 327681 ) [node name="Portal" parent="." instance=ExtResource( 2 )] position = Vector2( -123, -165 ) -next_scene = ExtResource( 6 ) +next_scene = "res://src/Levels/Actual Level 1.tscn" + +[node name="Node2D" type="Node2D" parent="."] + +[node name="BoundFrog" parent="Node2D" instance=ExtResource( 10 )] +position = Vector2( 546, -9 ) +movement_radius = 14 [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] diff --git a/src/Levels/Templates/Template.tscn b/src/Levels/Templates/Template.tscn index 2a71e4c..6335a30 100644 --- a/src/Levels/Templates/Template.tscn +++ b/src/Levels/Templates/Template.tscn @@ -1,11 +1,10 @@ -[gd_scene load_steps=11 format=2] +[gd_scene load_steps=10 format=2] [ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=1] [ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=2] [ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=3] [ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=4] [ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=5] -[ext_resource path="res://src/Levels/x02 Level.tscn" type="PackedScene" id=6] [ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=7] [ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=8] [ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=9] @@ -34,39 +33,20 @@ wait_time = 20.0 unique_name_in_owner = true drag_margin_bottom = 0.3 +[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] +frame = 2 + [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 12 +frame = 1 [node name="Blobby" parent="." instance=ExtResource( 7 )] unique_name_in_owner = true position = Vector2( -70, -1.90735e-06 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="CollisionPolygon2D" parent="Blobby/BlobbySkin" index="0"] -position = Vector2( 0.0286326, -10.0053 ) - -[node name="BlobbySprite" parent="Blobby" index="3"] -scale = Vector2( -1, 1 ) -frame = 5 - [node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 4 ) -[node name="BlobbyBody" parent="Blobby" index="8"] -position = Vector2( 0.0392303, -10.002 ) - -[node name="Left_Wallcast1" parent="Blobby/WallRaycasts/LeftWallRaycast" index="0"] -position = Vector2( -11.9763, -5 ) - -[node name="Left_Wallcast2" parent="Blobby/WallRaycasts/LeftWallRaycast" index="1"] -position = Vector2( -11.9763, 5 ) - -[node name="Right_Wallcast1" parent="Blobby/WallRaycasts/RightWallRaycast" index="0"] -position = Vector2( 12.0551, -5 ) - -[node name="Right_Wallcast2" parent="Blobby/WallRaycasts/RightWallRaycast" index="1"] -position = Vector2( 12.0551, 5 ) - [node name="TileMap" type="TileMap" parent="."] unique_name_in_owner = true tile_set = ExtResource( 1 ) @@ -81,7 +61,7 @@ tile_data = PoolIntArray( -458761, 1610612738, 0, -458760, 1610612738, 0, -45875 [node name="Portal" parent="." instance=ExtResource( 5 )] position = Vector2( 288, 120 ) -next_scene = ExtResource( 6 ) +next_scene = "res://src/Levels/Actual Level 1.tscn" [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"]