From 67031e101be68e57aa1c80ea031cf79fef5e5990 Mon Sep 17 00:00:00 2001 From: Jakob Feldmann Date: Mon, 2 Jan 2023 23:47:07 +0100 Subject: [PATCH] Frog with simple rope --- project.godot | 5 + src/Actors/{Blobby => }/BlobbyCam.gd | 2 + src/Actors/BlobbyCam.tscn | 10 +- src/Actors/Enemies/Beings/BoundFrog.gd | 13 + src/Actors/Enemies/Beings/BoundFrog.tscn | 13 + src/Actors/Enemies/Beings/Caterpillar.gd | 2 +- src/Actors/Enemies/Beings/Caterpillar.tscn | 8 +- src/Actors/Enemies/Beings/WhatAreFrog.gd | 9 +- src/Actors/Enemies/Beings/WhatAreFrog.tscn | 6 +- src/Actors/Enemies/Machines/Turret.gd | 2 +- src/Contraptions/Rope/Rope.gd | 87 +++++ src/Contraptions/Rope/Rope.tscn | 7 + src/Contraptions/Rope/RopeAnchor.tscn | 27 ++ src/Contraptions/Rope/RopePiece.gd | 5 + src/Contraptions/Rope/RopePiece.tscn | 25 ++ src/Levels/01 Level.tscn | 8 +- src/Levels/Enemy Test Level.tscn | 2 +- src/Levels/Grass Test Level.tscn | 398 ++++++++++----------- src/Levels/The Line Level.gd | 30 ++ src/Levels/The Line Level.tscn | 24 +- 20 files changed, 437 insertions(+), 246 deletions(-) rename src/Actors/{Blobby => }/BlobbyCam.gd (97%) create mode 100644 src/Actors/Enemies/Beings/BoundFrog.gd create mode 100644 src/Actors/Enemies/Beings/BoundFrog.tscn create mode 100644 src/Contraptions/Rope/Rope.gd create mode 100644 src/Contraptions/Rope/Rope.tscn create mode 100644 src/Contraptions/Rope/RopeAnchor.tscn create mode 100644 src/Contraptions/Rope/RopePiece.gd create mode 100644 src/Contraptions/Rope/RopePiece.tscn create mode 100644 src/Levels/The Line Level.gd diff --git a/project.godot b/project.godot index 9e94619..b4702b6 100644 --- a/project.godot +++ b/project.godot @@ -143,6 +143,11 @@ duck={ , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":83,"unicode":0,"echo":false,"script":null) ] } +click={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null) + ] +} [layer_names] diff --git a/src/Actors/Blobby/BlobbyCam.gd b/src/Actors/BlobbyCam.gd similarity index 97% rename from src/Actors/Blobby/BlobbyCam.gd rename to src/Actors/BlobbyCam.gd index cecf101..6c0b4c3 100644 --- a/src/Actors/Blobby/BlobbyCam.gd +++ b/src/Actors/BlobbyCam.gd @@ -102,6 +102,8 @@ func _death_cam(): $CameraAnimationPlayer.play("deathCam") func _update_lighting_shader(): + # Props to gameendaevour + # TODO get this into a central world update management system var lights = get_tree().get_nodes_in_group("light") image.lock() for i in lights.size(): diff --git a/src/Actors/BlobbyCam.tscn b/src/Actors/BlobbyCam.tscn index 0733a39..6fe5a84 100644 --- a/src/Actors/BlobbyCam.tscn +++ b/src/Actors/BlobbyCam.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=47 format=2] -[ext_resource path="res://src/Actors/Blobby/BlobbyCam.gd" type="Script" id=1] +[ext_resource path="res://src/Actors/BlobbyCam.gd" type="Script" id=1] [ext_resource path="res://assets/environment/background/Asteroids-Near.png" type="Texture" id=2] [ext_resource path="res://assets/environment/background/Asteroids-Far.png" type="Texture" id=3] [ext_resource path="res://assets/environment/background/space.png" type="Texture" id=4] @@ -439,6 +439,7 @@ z_index = -1 texture = ExtResource( 4 ) [node name="ParallaxLayer2" type="ParallaxLayer" parent="ParallaxBackground"] +visible = false z_index = -1 motion_scale = Vector2( 0, 0 ) @@ -447,6 +448,7 @@ z_index = -1 texture = ExtResource( 3 ) [node name="ParallaxLayer3" type="ParallaxLayer" parent="ParallaxBackground"] +visible = false z_index = -1 motion_scale = Vector2( 0.001, 0.001 ) @@ -455,6 +457,7 @@ z_index = -1 texture = ExtResource( 2 ) [node name="ParallaxLayer4" type="ParallaxLayer" parent="ParallaxBackground"] +visible = false motion_scale = Vector2( 0.01, 0.01 ) [node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer4"] @@ -501,14 +504,17 @@ z_index = -1 texture = ExtResource( 8 ) [node name="Sprite4" type="Sprite" parent="ParallaxBackground/ParallaxLayer5"] +visible = false z_index = -1 texture = ExtResource( 8 ) [node name="AnimatedSprite" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"] +visible = false frames = SubResource( 7 ) -frame = 9 +frame = 8 playing = true [node name="AnimatedSprite2" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"] frames = SubResource( 8 ) +frame = 13 playing = true diff --git a/src/Actors/Enemies/Beings/BoundFrog.gd b/src/Actors/Enemies/Beings/BoundFrog.gd new file mode 100644 index 0000000..db8af3b --- /dev/null +++ b/src/Actors/Enemies/Beings/BoundFrog.gd @@ -0,0 +1,13 @@ +extends Node2D + + +var Rope = preload("res://src/Contraptions/Rope/Rope.tscn") +var start_pos := Vector2.ZERO +var end_pos := Vector2.ZERO +onready var rope: Node2D = null + +func _ready() -> void: + rope = Rope.instance() + add_child(rope) + rope.spawn_rope($AnchorPos.global_position, Vector2($AnchorPos.global_position.x + 200, $AnchorPos.global_position.y)) + rope.end_attached_node = $WhatAreFrog1 diff --git a/src/Actors/Enemies/Beings/BoundFrog.tscn b/src/Actors/Enemies/Beings/BoundFrog.tscn new file mode 100644 index 0000000..c0dd02e --- /dev/null +++ b/src/Actors/Enemies/Beings/BoundFrog.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://src/Actors/Enemies/Beings/WhatAreFrog.tscn" type="PackedScene" id=1] +[ext_resource path="res://src/Contraptions/Rope/RopeAnchor.tscn" type="PackedScene" id=2] +[ext_resource path="res://src/Actors/Enemies/Beings/BoundFrog.gd" type="Script" id=3] + +[node name="BoundFrog" type="Node2D"] +script = ExtResource( 3 ) + +[node name="WhatAreFrog" parent="." instance=ExtResource( 1 )] + +[node name="RopeAnchor" parent="." instance=ExtResource( 2 )] +position = Vector2( -53, 10 ) diff --git a/src/Actors/Enemies/Beings/Caterpillar.gd b/src/Actors/Enemies/Beings/Caterpillar.gd index 473fb9b..bc2c755 100644 --- a/src/Actors/Enemies/Beings/Caterpillar.gd +++ b/src/Actors/Enemies/Beings/Caterpillar.gd @@ -29,7 +29,7 @@ func _physics_process(delta: float) -> void: elif(left_wrc.is_colliding() || (!right_src.is_colliding() && left_src.is_colliding())): rotation += delta * 7 * movement else: - rotation -= -sign(velocity.x) * delta * 7 * movement + rotation += sign(velocity.x) * delta * 7 * movement # velocity var v = Vector2(velocity.x * movement, 0) diff --git a/src/Actors/Enemies/Beings/Caterpillar.tscn b/src/Actors/Enemies/Beings/Caterpillar.tscn index 8b6a540..1e966e0 100644 --- a/src/Actors/Enemies/Beings/Caterpillar.tscn +++ b/src/Actors/Enemies/Beings/Caterpillar.tscn @@ -38,25 +38,25 @@ shape = SubResource( 1 ) [node name="SlopeRaycastLeft" type="RayCast2D" parent="."] position = Vector2( -7.5, 12 ) enabled = true -cast_to = Vector2( 0, 1 ) +cast_to = Vector2( 0, 2 ) collision_mask = 8 [node name="SlopeRaycastRight" type="RayCast2D" parent="."] position = Vector2( 7.5, 12 ) enabled = true -cast_to = Vector2( 0, 1 ) +cast_to = Vector2( 0, 2 ) collision_mask = 8 [node name="WallRaycastLeft" type="RayCast2D" parent="."] position = Vector2( -15, 12 ) enabled = true -cast_to = Vector2( -2, 0 ) +cast_to = Vector2( -3, 0 ) collision_mask = 8 [node name="WallRaycastRight" type="RayCast2D" parent="."] position = Vector2( 15, 12 ) enabled = true -cast_to = Vector2( 2, 0 ) +cast_to = Vector2( 3, 0 ) collision_mask = 8 [node name="StompDetector" type="Area2D" parent="." groups=["weakpoint"]] diff --git a/src/Actors/Enemies/Beings/WhatAreFrog.gd b/src/Actors/Enemies/Beings/WhatAreFrog.gd index 4025c8c..acbd6f1 100644 --- a/src/Actors/Enemies/Beings/WhatAreFrog.gd +++ b/src/Actors/Enemies/Beings/WhatAreFrog.gd @@ -1,10 +1,14 @@ extends Player const PhysicsFunc = preload("res://src/Utilities/Physic/PhysicsFunc.gd") +var Rope = preload("res://src/Contraptions/Rope/Rope.tscn") + onready var orientation: RayCast2D = $Orientation onready var jump_timer: Timer export var score := 100 +export var chain_length := 100 +export var chained := true var start_x = 0 var in_air = false @@ -13,6 +17,9 @@ func _ready(): jump_timer = Timer.new() jump_timer.connect("timeout", self, "jump") add_child(jump_timer) + if chained: + pass + # TODO adapt to groups # TODO Engine error here(what does it WANT???) @@ -21,7 +28,7 @@ func _on_StompDetector_body_entered(body: Node) -> void: return get_node("EnemyBody").disabled = true die() - + func execute_movement(delta: float) -> void: velocity.y += _gravity * delta if sign(velocity.x) != orientation.cast_to.x: diff --git a/src/Actors/Enemies/Beings/WhatAreFrog.tscn b/src/Actors/Enemies/Beings/WhatAreFrog.tscn index 02f7bbd..58ff7f8 100644 --- a/src/Actors/Enemies/Beings/WhatAreFrog.tscn +++ b/src/Actors/Enemies/Beings/WhatAreFrog.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=8 format=2] [ext_resource path="res://assets/enemy/enemy.png" type="Texture" id=1] [ext_resource path="res://src/Actors/Enemies/Beings/WhatAreFrog.gd" type="Script" id=2] [ext_resource path="res://src/Actors/Enemies/Beings/WhatAreFrogStateMachine.gd" type="Script" id=3] +[ext_resource path="res://src/Contraptions/Rope/RopeAnchor.tscn" type="PackedScene" id=4] [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 2.72463, 1.17848 ) @@ -16,6 +17,7 @@ extents = Vector2( 15.534, 10.0962 ) [node name="WhatAreFrog" type="KinematicBody2D" groups=["harmful"]] collision_layer = 2 collision_mask = 9 +collision/safe_margin = 0.001 script = ExtResource( 2 ) [node name="Statemachine" type="Node2D" parent="."] @@ -78,5 +80,7 @@ position = Vector2( 5.96046e-07, 2.5 ) scale = Vector2( 1.03, 1.04 ) shape = SubResource( 3 ) +[node name="RopeAnchor" parent="." instance=ExtResource( 4 )] + [connection signal="body_entered" from="StompDetector" to="." method="_on_StompDetector_body_entered"] [connection signal="area_entered" from="EnemySkin" to="." method="_on_EnemySkin_area_entered"] diff --git a/src/Actors/Enemies/Machines/Turret.gd b/src/Actors/Enemies/Machines/Turret.gd index 16327a2..4b4dd21 100644 --- a/src/Actors/Enemies/Machines/Turret.gd +++ b/src/Actors/Enemies/Machines/Turret.gd @@ -11,7 +11,7 @@ onready var lock_on_timer = $LockOnTimer onready var sight_lost_timer = $SightLostTimer onready var turret_search_animation = $AnimationPlayer.get_animation("Turret Rotation") onready var turret_return_animation = $AnimationPlayer.get_animation("Turret Returning") -onready var Bullet = preload("res://src/HarmfulObjects/Bullet.tscn") +onready var Bullet = preload("res://src/ObstacleObjects/Bullet.tscn") # Derives the freedom from the number of bald head eagles onready var angle_of_freedom = deg2rad( turret_search_animation.track_get_key_value( diff --git a/src/Contraptions/Rope/Rope.gd b/src/Contraptions/Rope/Rope.gd new file mode 100644 index 0000000..d06b8fa --- /dev/null +++ b/src/Contraptions/Rope/Rope.gd @@ -0,0 +1,87 @@ +extends Node2D + +var RopePiece = preload("res://src/Contraptions/Rope/RopePiece.tscn") +var RopeAnchor = preload("res://src/Contraptions/Rope/RopeAnchor.tscn") +var piece_length := 2.0 +var rope_close_tolerance := 2.0 +var rope_pieces := [] +var rope_piece_positions : PoolVector2Array= [] + +var end_attached_node: Node2D = null + +export var mouse_follow := false + +onready var rope_start +onready var rope_end +onready var rope_start_joint +onready var rope_end_joint + +func _physics_process(_delta: float) -> void: + #Resize or reinitialize? + if(end_attached_node != null): + if (!is_instance_valid(end_attached_node)): + rope_end.mode = RigidBody2D.MODE_RIGID + else: + rope_end.global_position = end_attached_node.global_position + if(mouse_follow): + rope_end.global_position = get_global_mouse_position() + rope_piece_positions.resize(0) + rope_piece_positions = get_piece_positions() + if !rope_piece_positions.empty(): + update() + +func spawn_rope(start_pos: Vector2, end_pos: Vector2): + rope_start = RopeAnchor.instance() + rope_end = RopeAnchor.instance() + rope_start_joint = rope_start.get_node("cshape/pjoint") + rope_end_joint = rope_end.get_node("cshape/pjoint") + add_child(rope_start, true) + add_child(rope_end, true) + rope_start.global_position = start_pos + rope_end.global_position = end_pos + start_pos = rope_start_joint.global_position + end_pos = rope_end_joint.global_position + var dist = start_pos.distance_to(end_pos) + var pieces_amount = round(dist / piece_length) + var spawn_angle = (end_pos-start_pos).angle() - PI/2 + create_rope(pieces_amount, rope_start, end_pos, spawn_angle) + +func create_rope(pieces_amount: int, last_piece: Object, end_pos: Vector2, spawn_angle: float) -> void: + for i in pieces_amount: + last_piece = add_piece(last_piece, i, spawn_angle) + last_piece.set_name("rope_piece_"+str(i)) + rope_pieces.append(last_piece) + + var joint_pos = last_piece.get_node("cshape/pjoint").global_position + if joint_pos.distance_to(end_pos) < rope_close_tolerance: + break + + rope_end_joint.node_a = rope_end.get_path() + rope_end_joint.node_b = rope_pieces[-1].get_path() + + +func add_piece(prev_link: Object, id: int, spawn_angle:float) -> Object: + var joint: PinJoint2D = prev_link.get_node("cshape/pjoint") as PinJoint2D + var new_piece: Object = RopePiece.instance() as Object + new_piece.global_position = joint.global_position + new_piece.rotation = spawn_angle + new_piece.prev_link = prev_link + new_piece.id = id + add_child(new_piece) + joint.node_a = prev_link.get_path() + joint.node_b = new_piece.get_path() + + return new_piece + +func get_piece_positions() -> Array: + var rope_points := [] + + rope_points.append(rope_start_joint.global_position) + for p in rope_pieces: + rope_points.append(p.global_position) + rope_points.append(rope_end_joint.global_position) + + return rope_points + +func _draw() -> void: + draw_polyline(rope_piece_positions, Color.blue, 2.0) diff --git a/src/Contraptions/Rope/Rope.tscn b/src/Contraptions/Rope/Rope.tscn new file mode 100644 index 0000000..6176a2e --- /dev/null +++ b/src/Contraptions/Rope/Rope.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://src/Contraptions/Rope/Rope.gd" type="Script" id=1] + +[node name="Rope" type="Node2D"] +z_index = -1 +script = ExtResource( 1 ) diff --git a/src/Contraptions/Rope/RopeAnchor.tscn b/src/Contraptions/Rope/RopeAnchor.tscn new file mode 100644 index 0000000..53cd6ee --- /dev/null +++ b/src/Contraptions/Rope/RopeAnchor.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://assets/environment/blocks/approx build block.png" type="Texture" id=1] + +[sub_resource type="CircleShape2D" id=5] +radius = 2.0 + +[node name="RopeAnchor" type="RigidBody2D"] +z_index = -1 +collision_layer = 256 +collision_mask = 8 +input_pickable = true +mode = 1 +linear_damp = 1.0 +angular_damp = 1.0 + +[node name="cshape" type="CollisionShape2D" parent="."] +shape = SubResource( 5 ) + +[node name="pjoint" type="PinJoint2D" parent="cshape"] +scale = Vector2( 0.3, 0.3 ) +bias = 0.1 +softness = 0.1 + +[node name="Sprite" type="Sprite" parent="."] +scale = Vector2( 0.1875, 0.1875 ) +texture = ExtResource( 1 ) diff --git a/src/Contraptions/Rope/RopePiece.gd b/src/Contraptions/Rope/RopePiece.gd new file mode 100644 index 0000000..a3a48bc --- /dev/null +++ b/src/Contraptions/Rope/RopePiece.gd @@ -0,0 +1,5 @@ +extends RigidBody2D + + +var id := -1 +var prev_link: Object = null diff --git a/src/Contraptions/Rope/RopePiece.tscn b/src/Contraptions/Rope/RopePiece.tscn new file mode 100644 index 0000000..b33fbad --- /dev/null +++ b/src/Contraptions/Rope/RopePiece.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://src/Contraptions/Rope/RopePiece.gd" type="Script" id=1] + +[sub_resource type="CapsuleShape2D" id=1] +radius = 1.0 +height = 1.0 + +[node name="RigidBody2D" type="RigidBody2D"] +collision_layer = 256 +collision_mask = 8 +gravity_scale = 3.0 +linear_damp = 1.0 +angular_damp = 1.0 +script = ExtResource( 1 ) + +[node name="cshape" type="CollisionShape2D" parent="."] +position = Vector2( 0, 1.5 ) +shape = SubResource( 1 ) + +[node name="pjoint" type="PinJoint2D" parent="cshape"] +position = Vector2( 0, 1.5 ) +scale = Vector2( 0.3, 0.3 ) +bias = 0.1 +softness = 0.1 diff --git a/src/Levels/01 Level.tscn b/src/Levels/01 Level.tscn index f59b232..7ed18c1 100644 --- a/src/Levels/01 Level.tscn +++ b/src/Levels/01 Level.tscn @@ -27,10 +27,7 @@ wait_time = 20.0 [node name="BlobbyCam" parent="." instance=ExtResource( 12 )] [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 8 - -[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 10 +frame = 11 [node name="Blobby" parent="." instance=ExtResource( 2 )] unique_name_in_owner = true @@ -40,9 +37,6 @@ scale = Vector2( 0.878906, 0.936025 ) [node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 4 ) -[node name="StateLabel" parent="Blobby" index="6"] -visible = false - [node name="Decor" type="Node2D" parent="."] visible = false diff --git a/src/Levels/Enemy Test Level.tscn b/src/Levels/Enemy Test Level.tscn index 0c9b6dc..3a2f203 100644 --- a/src/Levels/Enemy Test Level.tscn +++ b/src/Levels/Enemy Test Level.tscn @@ -54,7 +54,7 @@ position = Vector2( -259.915, 710.547 ) position = Vector2( 220, 804 ) [node name="Caterpillar" parent="." instance=ExtResource( 5 )] -position = Vector2( -37, 786 ) +position = Vector2( 73, 882 ) [node name="Enemy2" parent="." instance=ExtResource( 6 )] position = Vector2( 492, 804 ) diff --git a/src/Levels/Grass Test Level.tscn b/src/Levels/Grass Test Level.tscn index bf62c5d..f7886a2 100644 --- a/src/Levels/Grass Test Level.tscn +++ b/src/Levels/Grass Test Level.tscn @@ -34,10 +34,189 @@ cell_size = Vector2( 24, 24 ) collision_layer = 8 collision_mask = 8 format = 1 -tile_data = PoolIntArray( -262152, 3, 0, -262151, 3, 0, -262150, 3, 0, -262149, 3, 0, -262148, 3, 0, -262147, 3, 0, -262146, 3, 0, -262145, 3, 0, -327680, 3, 0, -327679, 3, 0, -327678, 3, 0, -327677, 3, 0, -327676, 3, 0, -327675, 3, 0, -196616, 3, 0, -262139, 3, 0, -131080, 3, 0, -196603, 3, 0, -65544, 3, 0, -131067, 3, 0, -8, 3, 0, -65531, 3, 0, 65528, 3, 0, 65529, 3, 0, 65530, 3, 0, 65531, 3, 0, 65532, 3, 0, 65533, 4, 0, 65534, 4, 0, 65535, 4, 0, 0, 4, 0, 1, 4, 0, 2, 4, 0, 3, 4, 0, 4, 4, 0, 5, 4, 0 ) +tile_data = PoolIntArray( -327685, 3, 0, -327684, 1610612738, 0, -327683, 1610612738, 0, -327682, 1610612738, 0, -327681, 1610612738, 0, -393216, 1610612738, 0, -393215, 1610612738, 0, -393214, 1610612738, 0, -393213, 1610612738, 0, -393212, 1610612738, 0, -393211, 1610612738, 0, -393210, 1610612738, 0, -393209, 1610612738, 0, -393208, 1610612738, 0, -393207, 1610612738, 0, -393206, 1610612738, 0, -393205, 3, 0, -262149, -1610612734, 0, -327669, -1073741822, 0, -196613, -1610612734, 0, -262133, -1073741822, 0, -131077, -1610612734, 0, -196597, -1073741822, 0, -65541, -1610612734, 0, -131061, -1073741822, 0, -5, -1610612734, 0, -65525, -1073741822, 0, 65531, 3, 0, 65532, 2, 0, 65533, 2, 0, 65534, 2, 0, 65535, 2, 0, 0, 2, 0, 1, 2, 0, 2, 2, 0, 3, 2, 0, 4, 2, 0, 5, 2, 0, 6, 2, 0, 7, 2, 0, 8, 2, 0, 9, 2, 0, 10, 2, 0, 11, 3, 0 ) + +[node name="ShaderGrass" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 108, -11.8 ) +z_index = 1 + +[node name="ShaderGrass2" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 114, -11.8 ) +z_index = 1 + +[node name="ShaderGrass3" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 123, -11.8 ) +z_index = 1 + +[node name="ShaderGrass4" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 129, -11.8 ) +z_index = 1 + +[node name="ShaderGrass5" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 135, -11.8 ) +z_index = 1 + +[node name="ShaderGrass6" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 144, -11.8 ) +z_index = 1 + +[node name="ShaderGrass7" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 153, -11.8 ) +z_index = 1 + +[node name="ShaderGrass8" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 159, -11.8 ) +z_index = 1 + +[node name="ShaderGrass9" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 48, -11.8 ) +z_index = 1 + +[node name="ShaderGrass10" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 57, -11.8 ) +z_index = 1 + +[node name="ShaderGrass11" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 66, -11.8 ) +z_index = 1 + +[node name="ShaderGrass12" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 72, -11.8 ) +z_index = 1 + +[node name="ShaderGrass13" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 78, -11.8 ) +z_index = 1 + +[node name="ShaderGrass14" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 87, -11.8 ) +z_index = 1 + +[node name="ShaderGrass15" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 96, -11.8 ) +z_index = 1 + +[node name="ShaderGrass16" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 102, -11.8 ) +z_index = 1 + +[node name="ShaderGrass17" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 222, -11.8 ) +z_index = 1 + +[node name="ShaderGrass18" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 231, -11.8 ) +z_index = 1 + +[node name="ShaderGrass19" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 240, -11.8 ) +z_index = 1 + +[node name="ShaderGrass20" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 246, -11.8 ) +z_index = 1 + +[node name="ShaderGrass21" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 252, -11.8 ) +z_index = 1 + +[node name="ShaderGrass22" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 261, -11.8 ) +z_index = 1 + +[node name="ShaderGrass23" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 270, -11.8 ) +z_index = 1 + +[node name="ShaderGrass24" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 276, -11.8 ) +z_index = 1 + +[node name="ShaderGrass25" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 165, -11.8 ) +z_index = 1 + +[node name="ShaderGrass26" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 174, -11.8 ) +z_index = 1 + +[node name="ShaderGrass27" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 183, -11.8 ) +z_index = 1 + +[node name="ShaderGrass28" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 189, -11.8 ) +z_index = 1 + +[node name="ShaderGrass29" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 195, -11.8 ) +z_index = 1 + +[node name="ShaderGrass30" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 204, -11.8 ) +z_index = 1 + +[node name="ShaderGrass31" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 213, -11.8 ) +z_index = 1 + +[node name="ShaderGrass32" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 219, -12 ) +z_index = 1 + +[node name="ShaderGrass33" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 105, -15 ) + +[node name="ShaderGrass35" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 120, -14.7 ) + +[node name="ShaderGrass37" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 132, -14.7 ) + +[node name="ShaderGrass39" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 150, -14.7 ) + +[node name="ShaderGrass43" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 63, -14.7 ) + +[node name="ShaderGrass45" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 75, -14.7 ) + +[node name="ShaderGrass47" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 93, -14.7 ) + +[node name="ShaderGrass49" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 219, -15 ) + +[node name="ShaderGrass51" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 237, -15 ) + +[node name="ShaderGrass53" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 249, -15 ) + +[node name="ShaderGrass55" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 267, -15 ) + +[node name="ShaderGrass57" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 162, -15 ) + +[node name="ShaderGrass59" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 180, -15 ) + +[node name="ShaderGrass61" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 192, -15 ) + +[node name="ShaderGrass63" parent="TileMap" instance=ExtResource( 5 )] +position = Vector2( 210, -15 ) [node name="BlobbyCam" parent="." instance=ExtResource( 11 )] +[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] +frame = 10 + +[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] +frame = 1 + [node name="Blobby" parent="." instance=ExtResource( 10 )] unique_name_in_owner = true position = Vector2( -22, 8.00003 ) @@ -49,223 +228,6 @@ parameters/playback = SubResource( 4 ) [node name="GameplaySignalManager" type="Node2D" parent="."] script = ExtResource( 2 ) -[node name="ShaderGrass" parent="." instance=ExtResource( 5 )] -position = Vector2( -14.913, -2.37698 ) -z_index = -1 - -[node name="ShaderGrass2" parent="." instance=ExtResource( 5 )] -position = Vector2( -11.482, -2.54797 ) - -[node name="ShaderGrass3" parent="." instance=ExtResource( 5 )] -position = Vector2( -5.7973, -2.461 ) - -[node name="ShaderGrass4" parent="." instance=ExtResource( 5 )] -position = Vector2( -9.6843, -3.88098 ) -z_index = -1 - -[node name="ShaderGrass5" parent="." instance=ExtResource( 5 )] -position = Vector2( -1.7553, -2.40399 ) - -[node name="ShaderGrass6" parent="." instance=ExtResource( 5 )] -position = Vector2( -4.4593, -4.18997 ) -z_index = -1 - -[node name="ShaderGrass7" parent="." instance=ExtResource( 5 )] -position = Vector2( 9.5887, -2.56998 ) - -[node name="ShaderGrass8" parent="." instance=ExtResource( 5 )] -position = Vector2( 3.4917, -2.35599 ) - -[node name="ShaderGrass9" parent="." instance=ExtResource( 5 )] -position = Vector2( 1.0897, -4.66699 ) -z_index = -1 - -[node name="ShaderGrass10" parent="." instance=ExtResource( 5 )] -position = Vector2( 13.2737, -2.42599 ) -z_index = -1 - -[node name="ShaderGrass11" parent="." instance=ExtResource( 5 )] -position = Vector2( 16.7047, -2.59698 ) - -[node name="ShaderGrass12" parent="." instance=ExtResource( 5 )] -position = Vector2( 22.3887, -2.50998 ) - -[node name="ShaderGrass13" parent="." instance=ExtResource( 5 )] -position = Vector2( 18.5017, -3.92899 ) -z_index = -1 - -[node name="ShaderGrass14" parent="." instance=ExtResource( 5 )] -position = Vector2( 26.4307, -2.45297 ) - -[node name="ShaderGrass15" parent="." instance=ExtResource( 5 )] -position = Vector2( 23.7267, -4.23898 ) -z_index = -1 - -[node name="ShaderGrass16" parent="." instance=ExtResource( 5 )] -position = Vector2( 37.7747, -2.61899 ) - -[node name="ShaderGrass17" parent="." instance=ExtResource( 5 )] -position = Vector2( 31.6777, -2.405 ) - -[node name="ShaderGrass18" parent="." instance=ExtResource( 5 )] -position = Vector2( 29.2757, -4.715 ) -z_index = -1 - -[node name="ShaderGrass19" parent="." instance=ExtResource( 5 )] -position = Vector2( 40.4827, -2.37698 ) -z_index = -1 - -[node name="ShaderGrass20" parent="." instance=ExtResource( 5 )] -position = Vector2( 43.9137, -2.54797 ) - -[node name="ShaderGrass21" parent="." instance=ExtResource( 5 )] -position = Vector2( 49.5987, -2.461 ) - -[node name="ShaderGrass22" parent="." instance=ExtResource( 5 )] -position = Vector2( 45.7117, -3.88098 ) -z_index = -1 - -[node name="ShaderGrass23" parent="." instance=ExtResource( 5 )] -position = Vector2( 53.6407, -2.40399 ) - -[node name="ShaderGrass24" parent="." instance=ExtResource( 5 )] -position = Vector2( 50.9367, -4.18997 ) -z_index = -1 - -[node name="ShaderGrass25" parent="." instance=ExtResource( 5 )] -position = Vector2( 64.9847, -2.56998 ) - -[node name="ShaderGrass26" parent="." instance=ExtResource( 5 )] -position = Vector2( 58.8877, -2.35599 ) - -[node name="ShaderGrass27" parent="." instance=ExtResource( 5 )] -position = Vector2( 56.4857, -4.66699 ) -z_index = -1 - -[node name="ShaderGrass28" parent="." instance=ExtResource( 5 )] -position = Vector2( -44.4463, -2.54398 ) -z_index = -1 - -[node name="ShaderGrass29" parent="." instance=ExtResource( 5 )] -position = Vector2( -41.0153, -2.715 ) - -[node name="ShaderGrass30" parent="." instance=ExtResource( 5 )] -position = Vector2( -35.3307, -2.62799 ) - -[node name="ShaderGrass31" parent="." instance=ExtResource( 5 )] -position = Vector2( -39.2176, -4.047 ) -z_index = -1 - -[node name="ShaderGrass32" parent="." instance=ExtResource( 5 )] -position = Vector2( -31.2887, -2.57098 ) - -[node name="ShaderGrass33" parent="." instance=ExtResource( 5 )] -position = Vector2( -33.9927, -4.35699 ) -z_index = -1 - -[node name="ShaderGrass34" parent="." instance=ExtResource( 5 )] -position = Vector2( -19.9447, -2.73599 ) - -[node name="ShaderGrass35" parent="." instance=ExtResource( 5 )] -position = Vector2( -26.0417, -2.52298 ) - -[node name="ShaderGrass36" parent="." instance=ExtResource( 5 )] -position = Vector2( -28.4437, -4.83298 ) -z_index = -1 - -[node name="ShaderGrass37" parent="." instance=ExtResource( 5 )] -position = Vector2( -69.9751, -2.70999 ) -z_index = -1 - -[node name="ShaderGrass38" parent="." instance=ExtResource( 5 )] -position = Vector2( -66.5441, -2.88098 ) - -[node name="ShaderGrass39" parent="." instance=ExtResource( 5 )] -position = Vector2( -60.8595, -2.79398 ) - -[node name="ShaderGrass40" parent="." instance=ExtResource( 5 )] -position = Vector2( -64.7464, -4.21399 ) -z_index = -1 - -[node name="ShaderGrass41" parent="." instance=ExtResource( 5 )] -position = Vector2( -56.8175, -2.737 ) - -[node name="ShaderGrass42" parent="." instance=ExtResource( 5 )] -position = Vector2( -59.5215, -4.52298 ) -z_index = -1 - -[node name="ShaderGrass43" parent="." instance=ExtResource( 5 )] -position = Vector2( -45.4735, -2.90298 ) - -[node name="ShaderGrass44" parent="." instance=ExtResource( 5 )] -position = Vector2( -51.5705, -2.689 ) - -[node name="ShaderGrass45" parent="." instance=ExtResource( 5 )] -position = Vector2( -53.9725, -5 ) -z_index = -1 - -[node name="ShaderGrass46" parent="." instance=ExtResource( 5 )] -position = Vector2( -92, -2.54398 ) -z_index = -1 - -[node name="ShaderGrass47" parent="." instance=ExtResource( 5 )] -position = Vector2( -88.569, -2.715 ) - -[node name="ShaderGrass48" parent="." instance=ExtResource( 5 )] -position = Vector2( -82.8844, -2.62799 ) - -[node name="ShaderGrass49" parent="." instance=ExtResource( 5 )] -position = Vector2( -86.7713, -4.047 ) -z_index = -1 - -[node name="ShaderGrass50" parent="." instance=ExtResource( 5 )] -position = Vector2( -78.8424, -2.57098 ) - -[node name="ShaderGrass51" parent="." instance=ExtResource( 5 )] -position = Vector2( -81.5464, -4.35699 ) -z_index = -1 - -[node name="ShaderGrass52" parent="." instance=ExtResource( 5 )] -position = Vector2( -67.4984, -2.73599 ) - -[node name="ShaderGrass53" parent="." instance=ExtResource( 5 )] -position = Vector2( -73.5954, -2.52298 ) - -[node name="ShaderGrass54" parent="." instance=ExtResource( 5 )] -position = Vector2( -75.9974, -4.83298 ) -z_index = -1 - -[node name="ShaderGrass55" parent="." instance=ExtResource( 5 )] -position = Vector2( 57.0017, -2.54398 ) -z_index = -1 - -[node name="ShaderGrass56" parent="." instance=ExtResource( 5 )] -position = Vector2( 60.4327, -2.715 ) - -[node name="ShaderGrass57" parent="." instance=ExtResource( 5 )] -position = Vector2( 66.1167, -2.62799 ) - -[node name="ShaderGrass58" parent="." instance=ExtResource( 5 )] -position = Vector2( 62.2307, -4.047 ) -z_index = -1 - -[node name="ShaderGrass59" parent="." instance=ExtResource( 5 )] -position = Vector2( 70.1587, -2.57098 ) - -[node name="ShaderGrass60" parent="." instance=ExtResource( 5 )] -position = Vector2( 67.4547, -4.35699 ) -z_index = -1 - -[node name="ShaderGrass61" parent="." instance=ExtResource( 5 )] -position = Vector2( 81.5027, -2.73599 ) - -[node name="ShaderGrass62" parent="." instance=ExtResource( 5 )] -position = Vector2( 75.4057, -2.52298 ) - -[node name="ShaderGrass63" parent="." instance=ExtResource( 5 )] -position = Vector2( 73.0037, -4.83298 ) -z_index = -1 - [connection signal="timeout" from="UserInterface/HUD/HUDOverlay/GetBackTimer/Timer" to="GameplaySignalManager" method="_on_Timer_timeout"] [connection signal="getback_timer_up" from="GameplaySignalManager" to="Blobby" method="_on_GameplaySignalManager_getback_timer_up"] [connection signal="terminal_activated" from="GameplaySignalManager" to="UserInterface/HUD" method="_on_SignalManager_terminal_activated"] diff --git a/src/Levels/The Line Level.gd b/src/Levels/The Line Level.gd new file mode 100644 index 0000000..79ecd76 --- /dev/null +++ b/src/Levels/The Line Level.gd @@ -0,0 +1,30 @@ +extends Node2D + +var Rope = preload("res://src/Contraptions/Rope/Rope.tscn") +var start_pos := Vector2.ZERO +var end_pos := Vector2.ZERO +onready var rope: Node2D = null + +func _ready() -> void: + rope = Rope.instance() + add_child(rope) + rope.spawn_rope($AnchorPos.global_position, Vector2($AnchorPos.global_position.x + 200, $AnchorPos.global_position.y)) + rope.end_attached_node = $WhatAreFrog1 + +func _input(event): + if event is InputEventMouseButton && !event.is_pressed(): + if start_pos == Vector2.ZERO: + start_pos = get_global_mouse_position() + elif end_pos == Vector2.ZERO: + end_pos = get_global_mouse_position() + rope = Rope.instance() + add_child(rope) + rope.spawn_rope(start_pos, end_pos) + start_pos = Vector2.ZERO + end_pos = Vector2.ZERO + # if rope != null && event.is_action_pressed("click"): + # rope.mouse_follow = true + # if event.is_action_released("click"): + # if rope != null: + # rope.mouse_follow = false + diff --git a/src/Levels/The Line Level.tscn b/src/Levels/The Line Level.tscn index 7c18304..fa28c4a 100644 --- a/src/Levels/The Line Level.tscn +++ b/src/Levels/The Line Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=14 format=2] [ext_resource path="res://src/Utilities/GameplaySignalManager.gd" type="Script" id=1] [ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=2] @@ -6,6 +6,7 @@ [ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=4] [ext_resource path="res://src/NeutralObjects/Coin.tscn" type="PackedScene" id=5] [ext_resource path="res://src/Levels/Enemy Test Level.tscn" type="PackedScene" id=6] +[ext_resource path="res://src/Levels/The Line Level.gd" type="Script" id=7] [ext_resource path="res://src/Contraptions/Triggers/ThreeWhyButtons.tscn" type="PackedScene" id=8] [ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=9] [ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=10] @@ -15,6 +16,7 @@ [sub_resource type="AnimationNodeStateMachinePlayback" id=4] [node name="LevelTemplate" type="Node2D"] +script = ExtResource( 7 ) __meta__ = { "_edit_horizontal_guides_": [ 464.0 ], "_edit_vertical_guides_": [ 2880.0 ] @@ -25,12 +27,6 @@ __meta__ = { [node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"] wait_time = 20.0 -[node name="PauseScreen" parent="UserInterface" index="1"] -margin_left = 3.15372 -margin_top = 0.456848 -margin_right = 3.15375 -margin_bottom = 0.456848 - [node name="TileMap" type="TileMap" parent="."] tile_set = ExtResource( 2 ) cell_size = Vector2( 24, 24 ) @@ -39,7 +35,15 @@ cell_custom_transform = Transform2D( 24, 0, 0, 24, 0, 0 ) collision_layer = 8 collision_mask = 8 format = 1 -tile_data = PoolIntArray( 0, -1610612732, 0, 260, -1073741820, 0, 65536, -1610612732, 0, 65796, -1073741820, 0, 131072, -1610612732, 0, 131332, -1073741820, 0, 196608, -1610612732, 0, 196638, -1073741822, 0, 196868, -1073741820, 0, 327678, -1610612734, 0, 262144, -1610612732, 0, 262174, -1073741822, 0, 262404, -1073741820, 0, 393214, -1610612734, 0, 327680, -1610612732, 0, 327710, -1073741822, 0, 327940, -1073741820, 0, 458750, -1610612734, 0, 393216, -1610612732, 0, 393246, -1073741822, 0, 393476, -1073741820, 0, 524286, -1610612734, 0, 458752, -1610612732, 0, 458782, -1073741822, 0, 459012, -1073741820, 0, 589822, -1610612734, 0, 524288, -1610612732, 0, 524318, -1073741822, 0, 524548, -1073741820, 0, 655358, -1610612734, 0, 589824, -1610612732, 0, 589854, -1073741822, 0, 590084, -1073741820, 0, 720894, -1610612734, 0, 655360, -1610612732, 0, 655390, -1073741822, 0, 655620, -1073741820, 0, 786430, -1610612734, 0, 720896, -1610612732, 0, 720926, -1073741822, 0, 721156, -1073741820, 0, 851966, -1610612734, 0, 786432, -1610612732, 0, 786462, -1073741822, 0, 786692, -1073741820, 0, 917502, -1610612734, 0, 851968, -1610612732, 0, 851998, -1073741822, 0, 852228, -1073741820, 0, 983038, 3, 0, 983039, 2, 0, 917504, 2, 0, 917505, 2, 0, 917506, 2, 0, 917507, 2, 0, 917508, 2, 0, 917509, 2, 0, 917510, 2, 0, 917511, 2, 0, 917512, 2, 0, 917513, 2, 0, 917514, 2, 0, 917515, 2, 0, 917516, 2, 0, 917517, 2, 0, 917518, 2, 0, 917519, 2, 0, 917520, 2, 0, 917521, 2, 0, 917522, 2, 0, 917523, 2, 0, 917524, 2, 0, 917525, 2, 0, 917526, 2, 0, 917527, 2, 0, 917528, 2, 0, 917529, 2, 0, 917530, 2, 0, 917531, 2, 0, 917532, 2, 0, 917533, 2, 0, 917534, -1073741821, 0, 917535, 4, 0, 917536, 4, 0, 917538, 4, 0, 917539, 4, 0, 917540, 4, 0, 917541, 4, 0, 917542, 4, 0, 917543, 4, 0, 917544, 4, 0, 917545, 4, 0, 917546, 4, 0, 917547, 4, 0, 917548, 4, 0, 917549, 4, 0, 917550, 4, 0, 917551, 4, 0, 917552, 4, 0, 917553, 4, 0, 917554, 4, 0, 917555, 4, 0, 917556, 4, 0, 917557, 4, 0, 917558, 4, 0, 917559, 4, 0, 917560, 4, 0, 917561, 4, 0, 917562, 4, 0, 917563, 4, 0, 917564, 4, 0, 917565, 4, 0, 917566, 4, 0, 917567, 4, 0, 917568, 4, 0, 917569, 4, 0, 917570, 4, 0, 917571, 4, 0, 917572, 4, 0, 917573, 4, 0, 917574, 4, 0, 917575, 4, 0, 917576, 4, 0, 917577, 4, 0, 917578, 4, 0, 917579, 4, 0, 917580, 4, 0, 917581, 4, 0, 917582, 4, 0, 917583, 4, 0, 917584, 4, 0, 917585, 4, 0, 917586, 4, 0, 917587, 4, 0, 917588, 4, 0, 917589, 4, 0, 917590, 4, 0, 917591, 4, 0, 917592, 4, 0, 917593, 4, 0, 917594, 4, 0, 917595, 4, 0, 917596, 4, 0, 917597, 4, 0, 917598, 4, 0, 917599, 4, 0, 917600, 4, 0, 917601, 4, 0, 917602, 4, 0, 917603, 4, 0, 917604, 4, 0, 917605, 4, 0, 917606, 4, 0, 917607, 4, 0, 917608, 4, 0, 917609, 4, 0, 917610, 4, 0, 917611, 4, 0, 917612, 4, 0, 917613, 4, 0, 917614, 4, 0, 917615, 4, 0, 917616, 4, 0, 917617, 4, 0, 917618, 4, 0, 917619, 4, 0, 917620, 4, 0, 917621, 4, 0, 917622, 4, 0, 917623, 4, 0, 917624, 4, 0, 917625, 4, 0, 917626, 4, 0, 917627, 4, 0, 917628, 4, 0, 917629, 4, 0, 917630, 4, 0, 917631, 4, 0, 917632, 4, 0, 917633, 4, 0, 917634, 4, 0, 917635, 4, 0, 917636, 4, 0, 917637, 4, 0, 917638, 4, 0, 917639, 4, 0, 917640, 4, 0, 917641, 4, 0, 917642, 4, 0, 917643, 4, 0, 917644, 4, 0, 917645, 4, 0, 917646, 4, 0, 917647, 4, 0, 917648, 4, 0, 917649, 4, 0, 917650, 4, 0, 917651, 4, 0, 917652, 4, 0, 917653, 4, 0, 917654, 4, 0, 917655, 4, 0, 917656, 4, 0, 917657, 4, 0, 917658, 4, 0, 917659, 4, 0, 917660, 4, 0, 917661, 4, 0, 917662, 4, 0, 917663, 4, 0, 917664, 4, 0, 917665, 4, 0, 917666, 4, 0, 917667, 4, 0, 917668, 4, 0, 917669, 4, 0, 917670, 4, 0, 917671, 4, 0, 917672, 4, 0, 917673, 4, 0, 917674, 4, 0, 917675, 4, 0, 917676, 4, 0, 917677, 4, 0, 917678, 4, 0, 917679, 4, 0, 917680, 4, 0, 917681, 4, 0, 917682, 4, 0, 917683, 4, 0, 917684, 4, 0, 917685, 4, 0, 917686, 4, 0, 917687, 4, 0, 917688, 4, 0, 917689, 4, 0, 917690, 4, 0, 917691, 4, 0, 917692, 4, 0, 917693, 4, 0, 917694, 4, 0, 917695, 4, 0, 917696, 4, 0, 917697, 4, 0, 917698, 4, 0, 917699, 4, 0, 917700, 4, 0, 917701, 4, 0, 917702, 4, 0, 917703, 4, 0, 917704, 4, 0, 917705, 4, 0, 917706, 4, 0, 917707, 4, 0, 917708, 4, 0, 917709, 4, 0, 917710, 4, 0, 917711, 4, 0, 917712, 4, 0, 917713, 4, 0, 917714, 4, 0, 917715, 4, 0, 917716, 4, 0, 917717, 4, 0, 917718, 4, 0, 917719, 4, 0, 917720, 4, 0, 917721, 4, 0, 917722, 4, 0, 917723, 4, 0, 917724, 4, 0, 917725, 4, 0, 917726, 4, 0, 917727, 4, 0, 917728, 4, 0, 917729, 4, 0, 917730, 4, 0, 917731, 4, 0, 917732, 4, 0, 917733, 4, 0, 917734, 4, 0, 917735, 4, 0, 917736, 4, 0, 917737, 4, 0, 917738, 4, 0, 917739, 4, 0, 917740, 4, 0, 917741, 4, 0, 917742, 4, 0, 917743, 4, 0, 917744, 4, 0, 917745, 4, 0, 917746, 4, 0, 917747, 4, 0, 917748, 4, 0, 917749, 4, 0, 917750, 4, 0, 917751, 4, 0, 917752, 4, 0, 917753, 4, 0, 917754, 4, 0, 917755, 4, 0, 917756, 4, 0, 917757, 4, 0, 917758, 4, 0, 917759, 4, 0, 917760, 4, 0, 917761, 4, 0, 917762, 4, 0, 917763, 4, 0, 917764, 4, 0 ) +tile_data = PoolIntArray( 0, -1610612732, 0, 260, -1073741820, 0, 131070, -1610612733, 0, 131071, 1610612738, 0, 65536, 1610612738, 0, 65537, 1610612738, 0, 65538, 1610612738, 0, 65539, 1610612738, 0, 65540, 1610612738, 0, 65541, 1610612738, 0, 65542, 1610612738, 0, 65543, 1610612738, 0, 65544, 1610612738, 0, 65545, 1610612738, 0, 65546, 1610612738, 0, 65547, 1610612738, 0, 65548, 1610612738, 0, 65549, 1610612738, 0, 65550, 1610612738, 0, 65551, 1610612738, 0, 65552, 1610612738, 0, 65553, 1610612738, 0, 65554, 1610612738, 0, 65555, 1610612738, 0, 65556, 1610612738, 0, 65557, 1610612738, 0, 65558, 1610612738, 0, 65559, 1610612738, 0, 65560, 1610612738, 0, 65561, 1610612738, 0, 65562, 1610612738, 0, 65563, 1610612738, 0, 65564, 1610612738, 0, 65565, 1610612738, 0, 65566, -1610612733, 0, 65796, -1073741820, 0, 196606, -1610612734, 0, 131072, -1610612732, 0, 131102, -1073741822, 0, 131332, -1073741820, 0, 262142, -1610612734, 0, 196608, -1610612732, 0, 196638, -1073741822, 0, 196868, -1073741820, 0, 327678, -1610612734, 0, 262144, -1610612732, 0, 262174, -1073741822, 0, 262404, -1073741820, 0, 393214, -1610612734, 0, 327680, -1610612732, 0, 327710, -1073741822, 0, 327940, -1073741820, 0, 458750, -1610612734, 0, 393216, -1610612732, 0, 393246, -1073741822, 0, 393476, -1073741820, 0, 524286, -1610612734, 0, 458752, -1610612732, 0, 458782, -1073741822, 0, 459012, -1073741820, 0, 589822, -1610612734, 0, 524288, -1610612732, 0, 524318, -1073741822, 0, 524548, -1073741820, 0, 655358, -1610612734, 0, 589824, -1610612732, 0, 589854, -1073741822, 0, 590084, -1073741820, 0, 720894, -1610612734, 0, 655360, -1610612732, 0, 655390, -1073741822, 0, 655620, -1073741820, 0, 786430, -1610612734, 0, 720896, -1610612732, 0, 720926, -1073741822, 0, 721156, -1073741820, 0, 851966, -1610612734, 0, 786432, -1610612732, 0, 786462, -1073741822, 0, 786692, -1073741820, 0, 917502, -1610612734, 0, 851968, -1610612732, 0, 851998, -1073741822, 0, 852228, -1073741820, 0, 983038, -1610612733, 0, 983039, 2, 0, 917504, 2, 0, 917505, 2, 0, 917506, 2, 0, 917507, 2, 0, 917508, 2, 0, 917509, 2, 0, 917510, 2, 0, 917511, 2, 0, 917512, 2, 0, 917513, 2, 0, 917514, 2, 0, 917515, 2, 0, 917516, 2, 0, 917517, 2, 0, 917518, 2, 0, 917519, 2, 0, 917520, 2, 0, 917521, 2, 0, 917522, 2, 0, 917523, 2, 0, 917524, 2, 0, 917525, 2, 0, 917526, 2, 0, 917527, 2, 0, 917528, 2, 0, 917529, 2, 0, 917530, 2, 0, 917531, 2, 0, 917532, 2, 0, 917533, 2, 0, 917534, -1073741821, 0, 917535, 4, 0, 917536, 4, 0, 917538, 4, 0, 917539, 4, 0, 917540, 4, 0, 917541, 4, 0, 917542, 4, 0, 917543, 4, 0, 917544, 4, 0, 917545, 4, 0, 917546, 4, 0, 917547, 4, 0, 917548, 4, 0, 917549, 4, 0, 917550, 4, 0, 917551, 4, 0, 917552, 4, 0, 917553, 4, 0, 917554, 4, 0, 917555, 4, 0, 917556, 4, 0, 917557, 4, 0, 917558, 4, 0, 917559, 4, 0, 917560, 4, 0, 917561, 4, 0, 917562, 4, 0, 917563, 4, 0, 917564, 4, 0, 917565, 4, 0, 917566, 4, 0, 917567, 4, 0, 917568, 4, 0, 917569, 4, 0, 917570, 4, 0, 917571, 4, 0, 917572, 4, 0, 917573, 4, 0, 917574, 4, 0, 917575, 4, 0, 917576, 4, 0, 917577, 4, 0, 917578, 4, 0, 917579, 4, 0, 917580, 4, 0, 917581, 4, 0, 917582, 4, 0, 917583, 4, 0, 917584, 4, 0, 917585, 4, 0, 917586, 4, 0, 917587, 4, 0, 917588, 4, 0, 917589, 4, 0, 917590, 4, 0, 917591, 4, 0, 917592, 4, 0, 917593, 4, 0, 917594, 4, 0, 917595, 4, 0, 917596, 4, 0, 917597, 4, 0, 917598, 4, 0, 917599, 4, 0, 917600, 4, 0, 917601, 4, 0, 917602, 4, 0, 917603, 4, 0, 917604, 4, 0, 917605, 4, 0, 917606, 4, 0, 917607, 4, 0, 917608, 4, 0, 917609, 4, 0, 917610, 4, 0, 917611, 4, 0, 917612, 4, 0, 917613, 4, 0, 917614, 4, 0, 917615, 4, 0, 917616, 4, 0, 917617, 4, 0, 917618, 4, 0, 917619, 4, 0, 917620, 4, 0, 917621, 4, 0, 917622, 4, 0, 917623, 4, 0, 917624, 4, 0, 917625, 4, 0, 917626, 4, 0, 917627, 4, 0, 917628, 4, 0, 917629, 4, 0, 917630, 4, 0, 917631, 4, 0, 917632, 4, 0, 917633, 4, 0, 917634, 4, 0, 917635, 4, 0, 917636, 4, 0, 917637, 4, 0, 917638, 4, 0, 917639, 4, 0, 917640, 4, 0, 917641, 4, 0, 917642, 4, 0, 917643, 4, 0, 917644, 4, 0, 917645, 4, 0, 917646, 4, 0, 917647, 4, 0, 917648, 4, 0, 917649, 4, 0, 917650, 4, 0, 917651, 4, 0, 917652, 4, 0, 917653, 4, 0, 917654, 4, 0, 917655, 4, 0, 917656, 4, 0, 917657, 4, 0, 917658, 4, 0, 917659, 4, 0, 917660, 4, 0, 917661, 4, 0, 917662, 4, 0, 917663, 4, 0, 917664, 4, 0, 917665, 4, 0, 917666, 4, 0, 917667, 4, 0, 917668, 4, 0, 917669, 4, 0, 917670, 4, 0, 917671, 4, 0, 917672, 4, 0, 917673, 4, 0, 917674, 4, 0, 917675, 4, 0, 917676, 4, 0, 917677, 4, 0, 917678, 4, 0, 917679, 4, 0, 917680, 4, 0, 917681, 4, 0, 917682, 4, 0, 917683, 4, 0, 917684, 4, 0, 917685, 4, 0, 917686, 4, 0, 917687, 4, 0, 917688, 4, 0, 917689, 4, 0, 917690, 4, 0, 917691, 4, 0, 917692, 4, 0, 917693, 4, 0, 917694, 4, 0, 917695, 4, 0, 917696, 4, 0, 917697, 4, 0, 917698, 4, 0, 917699, 4, 0, 917700, 4, 0, 917701, 4, 0, 917702, 4, 0, 917703, 4, 0, 917704, 4, 0, 917705, 4, 0, 917706, 4, 0, 917707, 4, 0, 917708, 4, 0, 917709, 4, 0, 917710, 4, 0, 917711, 4, 0, 917712, 4, 0, 917713, 4, 0, 917714, 4, 0, 917715, 4, 0, 917716, 4, 0, 917717, 4, 0, 917718, 4, 0, 917719, 4, 0, 917720, 4, 0, 917721, 4, 0, 917722, 4, 0, 917723, 4, 0, 917724, 4, 0, 917725, 4, 0, 917726, 4, 0, 917727, 4, 0, 917728, 4, 0, 917729, 4, 0, 917730, 4, 0, 917731, 4, 0, 917732, 4, 0, 917733, 4, 0, 917734, 4, 0, 917735, 4, 0, 917736, 4, 0, 917737, 4, 0, 917738, 4, 0, 917739, 4, 0, 917740, 4, 0, 917741, 4, 0, 917742, 4, 0, 917743, 4, 0, 917744, 4, 0, 917745, 4, 0, 917746, 4, 0, 917747, 4, 0, 917748, 4, 0, 917749, 4, 0, 917750, 4, 0, 917751, 4, 0, 917752, 4, 0, 917753, 4, 0, 917754, 4, 0, 917755, 4, 0, 917756, 4, 0, 917757, 4, 0, 917758, 4, 0, 917759, 4, 0, 917760, 4, 0, 917761, 4, 0, 917762, 4, 0, 917763, 4, 0, 917764, 4, 0 ) + +[node name="AnchorPos" type="Node2D" parent="."] +unique_name_in_owner = true +position = Vector2( 315, 331 ) + +[node name="CollarPos" type="Node2D" parent="."] +unique_name_in_owner = true +position = Vector2( 196, 323 ) [node name="BlobbyCam" parent="." instance=ExtResource( 11 )] @@ -51,8 +55,8 @@ scale = Vector2( 0.878906, 0.936025 ) [node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 4 ) -[node name="WhatAreFrog" parent="." instance=ExtResource( 12 )] -position = Vector2( 622, 323 ) +[node name="WhatAreFrog1" parent="." instance=ExtResource( 12 )] +position = Vector2( 195, 322 ) [node name="Collectibles" type="Node2D" parent="."] visible = false