commit 683277ef3eca9b85e7087a8e5fa9e049a18aab11 Author: Feufochmar Date: Sun Sep 19 23:35:49 2021 +0200 Initial commit (should have been done earlier). diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3a96203 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.import/ diff --git a/ball/ball.gd b/ball/ball.gd new file mode 100644 index 0000000..7f2e766 --- /dev/null +++ b/ball/ball.gd @@ -0,0 +1,55 @@ +extends KinematicBody2D + +# signale +signal ball_lost + +# Declare member variables here. +# Velocity +export var speed = 360 +export var initial_angle = -PI / 4 +var velocity = Vector2(speed, 0).rotated(initial_angle) +var paddle_offset = Vector2(0, 0) +# Attached to paddle ? +# When attached to paddle, the ball follow the movement of the paddle +var attached = true +var launched_from_paddle = true +var paused = false +var sound + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + +func init(paddle_pos, att): + position = paddle_pos + paddle_offset + attached = att + +func update_paddle_position(pos): + if attached: + position = pos + paddle_offset + +func detach(): + attached = false + +func _physics_process(delta): + if not paused and not attached: + var collision = move_and_collide(velocity * delta) + if collision: + velocity = velocity.bounce(collision.normal) + if collision.collider.has_method("hit"): + collision.collider.hit() + $Plop.play() + +func _on_VisibilityNotifier2D_screen_exited(): + emit_signal("ball_lost") + queue_free() + +func pause(): + paused = true + +func unpause(): + paused = false diff --git a/ball/ball.svg b/ball/ball.svg new file mode 100644 index 0000000..9c7796c --- /dev/null +++ b/ball/ball.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + diff --git a/ball/ball.svg.import b/ball/ball.svg.import new file mode 100644 index 0000000..b38b003 --- /dev/null +++ b/ball/ball.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/ball.svg-908cdd632592aa40dd3ab08966cb3214.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ball/ball.svg" +dest_files=[ "res://.import/ball.svg-908cdd632592aa40dd3ab08966cb3214.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/ball/ball.tscn b/ball/ball.tscn new file mode 100644 index 0000000..be439b0 --- /dev/null +++ b/ball/ball.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://ball/ball.svg" type="Texture" id=1] +[ext_resource path="res://ball/ball.gd" type="Script" id=2] +[ext_resource path="res://ball/plop.ogg" type="AudioStream" id=3] + +[sub_resource type="CircleShape2D" id=1] +radius = 8.00026 + +[node name="Ball" type="KinematicBody2D"] +position = Vector2( 0, -0.0648193 ) +collision_layer = 2 +collision_mask = 13 +script = ExtResource( 2 ) +__meta__ = { +"_edit_group_": true +} +speed = 500 + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource( 1 ) + +[node name="VisibilityNotifier2D" type="VisibilityNotifier2D" parent="."] +rect = Rect2( -8, -8, 16, 16 ) + +[node name="Plop" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 3 ) +volume_db = -12.0 + +[connection signal="screen_exited" from="VisibilityNotifier2D" to="." method="_on_VisibilityNotifier2D_screen_exited"] diff --git a/ball/plop.ogg b/ball/plop.ogg new file mode 100644 index 0000000..19408de Binary files /dev/null and b/ball/plop.ogg differ diff --git a/ball/plop.ogg.import b/ball/plop.ogg.import new file mode 100644 index 0000000..5797bad --- /dev/null +++ b/ball/plop.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/plop.ogg-65574f7791366ca62678bde112ad37f5.oggstr" + +[deps] + +source_file="res://ball/plop.ogg" +dest_files=[ "res://.import/plop.ogg-65574f7791366ca62678bde112ad37f5.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/blocks/abstract_brick.gd b/blocks/abstract_brick.gd new file mode 100644 index 0000000..5898088 --- /dev/null +++ b/blocks/abstract_brick.gd @@ -0,0 +1,38 @@ +extends Node + +signal color_set(color, max_hits) # emitted at start to broadcast the color to children +signal brick_hit() # emitted when block is hit but not broken +signal brick_broken(score) + +# Declare member variables here. +export var score = 100 +export var max_hits = 1 +export var color = 0 +var nb_hits = 0 +var is_hit = false +var broken = false + +# Called when the node enters the scene tree for the first time. +func _ready(): + emit_signal("color_set", color, max_hits) + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + +func hit(): + nb_hits = nb_hits + 1 + if (nb_hits < max_hits): + emit_signal("brick_hit") + else: + broken = true + emit_signal("brick_broken", score) + queue_free() + +func is_broken(): + return broken + + +func _on_brick_broken(_score): + pass # Replace with function body. diff --git a/blocks/abstract_brick.tscn b/blocks/abstract_brick.tscn new file mode 100644 index 0000000..3ffce76 --- /dev/null +++ b/blocks/abstract_brick.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://blocks/abstract_brick.gd" type="Script" id=1] + +[node name="ABrick" type="StaticBody2D" groups=[ +"bricks", +]] +collision_layer = 4 +collision_mask = 0 +script = ExtResource( 1 ) diff --git a/blocks/abstract_brick_sprite.gd b/blocks/abstract_brick_sprite.gd new file mode 100644 index 0000000..05af863 --- /dev/null +++ b/blocks/abstract_brick_sprite.gd @@ -0,0 +1,34 @@ +extends Sprite + + +# Declare member variables here. +export var width = 64 +export var height = 64 +export var nb_lines = 2 +export var nb_columns = 1 +var col = 0 +var hit = 0 +var nb_hits = 1 + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + +func _on_color_set(color, max_hits): + col = color + nb_hits = max_hits + self.texture.region.position = computeRegionPosition() + +func _on_brick_hit(): + hit = hit + 1 + self.texture.region.position = computeRegionPosition() + +func computeRegionPosition(): + var x = (col % nb_columns) + (nb_columns * (nb_hits - 1 - hit)) + var y = (col / nb_columns) % nb_lines + return Vector2(width * x, height * y) diff --git a/blocks/beehive.svg b/blocks/beehive.svg new file mode 100644 index 0000000..eabee6a --- /dev/null +++ b/blocks/beehive.svg @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blocks/beehive.svg.import b/blocks/beehive.svg.import new file mode 100644 index 0000000..516c1ab --- /dev/null +++ b/blocks/beehive.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/beehive.svg-2705d9470fd4ac20470fd572a533c5d1.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://blocks/beehive.svg" +dest_files=[ "res://.import/beehive.svg-2705d9470fd4ac20470fd572a533c5d1.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/blocks/beehive.tscn b/blocks/beehive.tscn new file mode 100644 index 0000000..e05ab5e --- /dev/null +++ b/blocks/beehive.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://blocks/abstract_brick.tscn" type="PackedScene" id=1] +[ext_resource path="res://blocks/beehive.svg" type="Texture" id=2] +[ext_resource path="res://blocks/abstract_brick_sprite.gd" type="Script" id=3] + +[sub_resource type="AtlasTexture" id=1] +resource_local_to_scene = true +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 0, 0, 64, 64 ) + +[node name="Beehive" instance=ExtResource( 1 )] + +[node name="Sprite" type="Sprite" parent="." index="0"] +texture = SubResource( 1 ) +script = ExtResource( 3 ) +nb_lines = 3 + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="." index="1"] +position = Vector2( -32, -32 ) +polygon = PoolVector2Array( 32, 0, 64, 16, 64, 48, 32, 64, 0, 48, 0, 16 ) + +[connection signal="brick_hit" from="." to="Sprite" method="_on_brick_hit"] +[connection signal="color_set" from="." to="Sprite" method="_on_color_set"] diff --git a/blocks/brick.svg b/blocks/brick.svg new file mode 100644 index 0000000..416db1f --- /dev/null +++ b/blocks/brick.svg @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blocks/brick.svg.import b/blocks/brick.svg.import new file mode 100644 index 0000000..865bce9 --- /dev/null +++ b/blocks/brick.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/brick.svg-7b6c6196858a87dab399b497fe73b6e7.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://blocks/brick.svg" +dest_files=[ "res://.import/brick.svg-7b6c6196858a87dab399b497fe73b6e7.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/blocks/brick.tscn b/blocks/brick.tscn new file mode 100644 index 0000000..c4f2021 --- /dev/null +++ b/blocks/brick.tscn @@ -0,0 +1,31 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://blocks/abstract_brick.tscn" type="PackedScene" id=1] +[ext_resource path="res://blocks/brick.svg" type="Texture" id=2] +[ext_resource path="res://blocks/abstract_brick_sprite.gd" type="Script" id=3] + +[sub_resource type="AtlasTexture" id=1] +resource_local_to_scene = true +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 0, 0, 64, 32 ) + +[sub_resource type="RectangleShape2D" id=2] +extents = Vector2( 32, 16 ) + +[node name="Brick" instance=ExtResource( 1 )] + +[node name="Sprite" type="Sprite" parent="." index="0"] +position = Vector2( 32, 16 ) +texture = SubResource( 1 ) +script = ExtResource( 3 ) +height = 32 +nb_lines = 4 +nb_columns = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="1"] +position = Vector2( 32, 16 ) +shape = SubResource( 2 ) + +[connection signal="brick_hit" from="." to="Sprite" method="_on_brick_hit"] +[connection signal="color_set" from="." to="Sprite" method="_on_color_set"] diff --git a/blocks/half_brick.svg b/blocks/half_brick.svg new file mode 100644 index 0000000..3d099f4 --- /dev/null +++ b/blocks/half_brick.svg @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blocks/half_brick.svg.import b/blocks/half_brick.svg.import new file mode 100644 index 0000000..fe99519 --- /dev/null +++ b/blocks/half_brick.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/half_brick.svg-b267b059c4ec54ea3528b035fd69e058.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://blocks/half_brick.svg" +dest_files=[ "res://.import/half_brick.svg-b267b059c4ec54ea3528b035fd69e058.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/blocks/half_brick.tscn b/blocks/half_brick.tscn new file mode 100644 index 0000000..9751d5b --- /dev/null +++ b/blocks/half_brick.tscn @@ -0,0 +1,32 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://blocks/abstract_brick.tscn" type="PackedScene" id=1] +[ext_resource path="res://blocks/half_brick.svg" type="Texture" id=2] +[ext_resource path="res://blocks/abstract_brick_sprite.gd" type="Script" id=3] + +[sub_resource type="AtlasTexture" id=1] +resource_local_to_scene = true +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 0, 0, 32, 32 ) + +[sub_resource type="RectangleShape2D" id=2] +extents = Vector2( 16, 16 ) + +[node name="HalfBrick" instance=ExtResource( 1 )] + +[node name="Sprite" type="Sprite" parent="." index="0"] +position = Vector2( 16, 16 ) +texture = SubResource( 1 ) +script = ExtResource( 3 ) +width = 32 +height = 32 +nb_lines = 4 +nb_columns = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="1"] +position = Vector2( 16, 16 ) +shape = SubResource( 2 ) + +[connection signal="brick_hit" from="." to="Sprite" method="_on_brick_hit"] +[connection signal="color_set" from="." to="Sprite" method="_on_color_set"] diff --git a/blocks/leaf.svg b/blocks/leaf.svg new file mode 100644 index 0000000..1ca26d0 --- /dev/null +++ b/blocks/leaf.svg @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/blocks/leaf.svg.import b/blocks/leaf.svg.import new file mode 100644 index 0000000..265d9e8 --- /dev/null +++ b/blocks/leaf.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/leaf.svg-4039d241ea1b81f11953477511425ca9.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://blocks/leaf.svg" +dest_files=[ "res://.import/leaf.svg-4039d241ea1b81f11953477511425ca9.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/blocks/leaf.tscn b/blocks/leaf.tscn new file mode 100644 index 0000000..8fd359f --- /dev/null +++ b/blocks/leaf.tscn @@ -0,0 +1,28 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://blocks/abstract_brick.tscn" type="PackedScene" id=1] +[ext_resource path="res://blocks/leaf.svg" type="Texture" id=2] +[ext_resource path="res://blocks/abstract_brick_sprite.gd" type="Script" id=3] + +[sub_resource type="AtlasTexture" id=1] +resource_local_to_scene = true +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 0, 0, 32, 128 ) + +[node name="Leaf" instance=ExtResource( 1 )] +score = 300 +max_hits = 3 + +[node name="Sprite" type="Sprite" parent="." index="0"] +position = Vector2( 0, 64 ) +texture = SubResource( 1 ) +script = ExtResource( 3 ) +width = 32 +height = 128 + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="." index="1"] +polygon = PoolVector2Array( 0, 0, 16, 16, 16, 80, 0, 128, -16, 80, -16, 16 ) + +[connection signal="brick_hit" from="." to="Sprite" method="_on_brick_hit"] +[connection signal="color_set" from="." to="Sprite" method="_on_color_set"] diff --git a/blocks/palette.svg b/blocks/palette.svg new file mode 100644 index 0000000..424dda3 --- /dev/null +++ b/blocks/palette.svg @@ -0,0 +1,613 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + L50,C50 + L80,C80 + + + + + + + + + + + + + L80,C50 + + + + + + + + + + + + + L50,C80 + + + + + + + + + + + + + L50,C80,H+15 + + + + + + + + + + + + + L80,C80,H+15 + + diff --git a/blocks/palette.svg.import b/blocks/palette.svg.import new file mode 100644 index 0000000..81389e1 --- /dev/null +++ b/blocks/palette.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/palette.svg-925fbd6b6de3f91e3f9ace4d95f44fe0.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://blocks/palette.svg" +dest_files=[ "res://.import/palette.svg-925fbd6b6de3f91e3f9ace4d95f44fe0.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/blocks/wall.tscn b/blocks/wall.tscn new file mode 100644 index 0000000..4552d90 --- /dev/null +++ b/blocks/wall.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://empty_level/wall.svg" type="Texture" id=1] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 32, 16 ) + +[node name="Wall" type="StaticBody2D"] +collision_layer = 8 +collision_mask = 0 + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 1 ) +centered = false +region_enabled = true +region_rect = Rect2( 0, 0, 64, 32 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 32, 16 ) +shape = SubResource( 1 ) diff --git a/default_env.tres b/default_env.tres new file mode 100644 index 0000000..20207a4 --- /dev/null +++ b/default_env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) diff --git a/empty_level/back.svg b/empty_level/back.svg new file mode 100644 index 0000000..b0033bb --- /dev/null +++ b/empty_level/back.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/empty_level/back.svg.import b/empty_level/back.svg.import new file mode 100644 index 0000000..389d931 --- /dev/null +++ b/empty_level/back.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/back.svg-2bad6b817978b7efd6f74e789dc06992.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://empty_level/back.svg" +dest_files=[ "res://.import/back.svg-2bad6b817978b7efd6f74e789dc06992.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=1 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/empty_level/empty_level.tscn b/empty_level/empty_level.tscn new file mode 100644 index 0000000..a42a3d2 --- /dev/null +++ b/empty_level/empty_level.tscn @@ -0,0 +1,48 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://empty_level/wall.svg" type="Texture" id=1] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 512, 32 ) + +[sub_resource type="RectangleShape2D" id=2] +extents = Vector2( 32, 288 ) + +[sub_resource type="RectangleShape2D" id=3] +extents = Vector2( 448, 8 ) + +[node name="EmptyLevel" type="Node"] + +[node name="Polygon2D" type="Polygon2D" parent="."] +texture = ExtResource( 1 ) +polygon = PoolVector2Array( 64, 64, 960, 64, 960, 640, 1024, 640, 1024, 0, 960, 0, 960, 32, 544, 32, 544.264, 0, 0, 0, 0, 640, 64, 640 ) + +[node name="Ceiling" type="StaticBody2D" parent="."] +collision_layer = 8 +collision_mask = 0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Ceiling"] +position = Vector2( 512, 32 ) +shape = SubResource( 1 ) + +[node name="LeftWall" type="StaticBody2D" parent="."] +collision_layer = 8 +collision_mask = 0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="LeftWall"] +position = Vector2( 32, 352 ) +shape = SubResource( 2 ) + +[node name="RightWall" type="StaticBody2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RightWall"] +position = Vector2( 992, 352 ) +shape = SubResource( 2 ) + +[node name="Floor" type="StaticBody2D" parent="."] +collision_layer = 32 +collision_mask = 0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Floor"] +position = Vector2( 512, 600 ) +shape = SubResource( 3 ) diff --git a/empty_level/wall.svg b/empty_level/wall.svg new file mode 100644 index 0000000..7a364df --- /dev/null +++ b/empty_level/wall.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/empty_level/wall.svg.import b/empty_level/wall.svg.import new file mode 100644 index 0000000..b2a7fb8 --- /dev/null +++ b/empty_level/wall.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/wall.svg-d927a75ecaf4522d1811f0e5ba8260ff.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://empty_level/wall.svg" +dest_files=[ "res://.import/wall.svg-d927a75ecaf4522d1811f0e5ba8260ff.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=1 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..4796884 --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,122 @@ +[preset.0] + +name="HTML5" +platform="HTML5" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../exports/Bricassé/HTML/index.html" +script_export_mode=1 +script_encryption_key="" + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +variant/export_type=0 +vram_texture_compression/for_desktop=true +vram_texture_compression/for_mobile=false +html/custom_html_shell="" +html/head_include="" +html/canvas_resize_policy=2 +html/experimental_virtual_keyboard=false + +[preset.1] + +name="Linux/X11" +platform="Linux/X11" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../exports/Bricassé/Linux/bricasse.x86_64" +script_export_mode=1 +script_encryption_key="" + +[preset.1.options] + +custom_template/debug="" +custom_template/release="" +binary_format/64_bits=true +binary_format/embed_pck=false +texture_format/bptc=false +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false +texture_format/no_bptc_fallbacks=true + +[preset.2] + +name="Windows Desktop" +platform="Windows Desktop" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../exports/Bricassé/Windows/Bricasse.exe" +script_export_mode=1 +script_encryption_key="" + +[preset.2.options] + +custom_template/debug="" +custom_template/release="" +binary_format/64_bits=true +binary_format/embed_pck=false +texture_format/bptc=false +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false +texture_format/no_bptc_fallbacks=true +codesign/enable=false +codesign/identity="" +codesign/password="" +codesign/timestamp=true +codesign/timestamp_server_url="" +codesign/digest_algorithm=1 +codesign/description="" +codesign/custom_options=PoolStringArray( ) +application/icon="" +application/file_version="" +application/product_version="" +application/company_name="" +application/product_name="Bricassé" +application/file_description="" +application/copyright="" +application/trademarks="" + +[preset.3] + +name="Mac OSX" +platform="Mac OSX" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../exports/Bricassé/MacOS/bricasse.zip" +script_export_mode=1 +script_encryption_key="" + +[preset.3.options] + +custom_template/debug="" +custom_template/release="" +application/name="Bricassé" +application/info="Made with Godot Engine" +application/icon="" +application/identifier="" +application/signature="" +application/short_version="1.0" +application/version="1.0" +application/copyright="" +display/high_res=false +privacy/camera_usage_description="" +privacy/microphone_usage_description="" +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..c98fbb6 Binary files /dev/null and b/icon.png differ diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..96cbf46 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/levels/base_level.gd b/levels/base_level.gd new file mode 100644 index 0000000..50eab27 --- /dev/null +++ b/levels/base_level.gd @@ -0,0 +1,26 @@ +extends Node + +signal level_ended +signal score_increased(score) + +# Declare member variables here. + + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + +func _on_brick_broken(score): + emit_signal("score_increased", score) + var bricks = get_tree().get_nodes_in_group("bricks") + var finished = true + for b in bricks: + finished = b.is_broken() and finished + if finished: + emit_signal("level_ended") diff --git a/levels/base_level.tscn b/levels/base_level.tscn new file mode 100644 index 0000000..57a51e7 --- /dev/null +++ b/levels/base_level.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://levels/base_level.gd" type="Script" id=2] + +[node name="BaseLevel" type="Node"] +script = ExtResource( 2 ) diff --git a/levels/level_01_01.tscn b/levels/level_01_01.tscn new file mode 100644 index 0000000..b4f60b2 --- /dev/null +++ b/levels/level_01_01.tscn @@ -0,0 +1,483 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://levels/base_level.tscn" type="PackedScene" id=2] +[ext_resource path="res://blocks/brick.tscn" type="PackedScene" id=3] + +[node name="Level_01_01" instance=ExtResource( 2 )] + +[node name="Brick" parent="." index="0" instance=ExtResource( 3 )] +position = Vector2( 64, 128 ) + +[node name="Brick2" parent="." index="1" instance=ExtResource( 3 )] +position = Vector2( 64, 160 ) +color = 1 + +[node name="Brick3" parent="." index="2" instance=ExtResource( 3 )] +position = Vector2( 64, 192 ) +color = 2 + +[node name="Brick4" parent="." index="3" instance=ExtResource( 3 )] +position = Vector2( 64, 224 ) +color = 3 + +[node name="Brick5" parent="." index="4" instance=ExtResource( 3 )] +position = Vector2( 64, 256 ) +color = 4 + +[node name="Brick6" parent="." index="5" instance=ExtResource( 3 )] +position = Vector2( 64, 288 ) +color = 5 + +[node name="Brick7" parent="." index="6" instance=ExtResource( 3 )] +position = Vector2( 64, 320 ) +color = 6 + +[node name="Brick92" parent="." index="7" instance=ExtResource( 3 )] +position = Vector2( 896, 128 ) + +[node name="Brick93" parent="." index="8" instance=ExtResource( 3 )] +position = Vector2( 896, 160 ) +color = 1 + +[node name="Brick94" parent="." index="9" instance=ExtResource( 3 )] +position = Vector2( 896, 192 ) +color = 2 + +[node name="Brick95" parent="." index="10" instance=ExtResource( 3 )] +position = Vector2( 896, 224 ) +color = 3 + +[node name="Brick96" parent="." index="11" instance=ExtResource( 3 )] +position = Vector2( 896, 256 ) +color = 4 + +[node name="Brick97" parent="." index="12" instance=ExtResource( 3 )] +position = Vector2( 896, 288 ) +color = 5 + +[node name="Brick98" parent="." index="13" instance=ExtResource( 3 )] +position = Vector2( 896, 320 ) +color = 6 + +[node name="Brick8" parent="." index="14" instance=ExtResource( 3 )] +position = Vector2( 128, 128 ) + +[node name="Brick9" parent="." index="15" instance=ExtResource( 3 )] +position = Vector2( 128, 160 ) +color = 1 + +[node name="Brick10" parent="." index="16" instance=ExtResource( 3 )] +position = Vector2( 128, 192 ) +color = 2 + +[node name="Brick11" parent="." index="17" instance=ExtResource( 3 )] +position = Vector2( 128, 224 ) +color = 3 + +[node name="Brick12" parent="." index="18" instance=ExtResource( 3 )] +position = Vector2( 128, 256 ) +color = 4 + +[node name="Brick13" parent="." index="19" instance=ExtResource( 3 )] +position = Vector2( 128, 288 ) +color = 5 + +[node name="Brick14" parent="." index="20" instance=ExtResource( 3 )] +position = Vector2( 128, 320 ) +color = 6 + +[node name="Brick15" parent="." index="21" instance=ExtResource( 3 )] +position = Vector2( 192, 128 ) + +[node name="Brick16" parent="." index="22" instance=ExtResource( 3 )] +position = Vector2( 192, 160 ) +color = 1 + +[node name="Brick17" parent="." index="23" instance=ExtResource( 3 )] +position = Vector2( 192, 192 ) +color = 2 + +[node name="Brick18" parent="." index="24" instance=ExtResource( 3 )] +position = Vector2( 192, 224 ) +color = 3 + +[node name="Brick19" parent="." index="25" instance=ExtResource( 3 )] +position = Vector2( 192, 256 ) +color = 4 + +[node name="Brick20" parent="." index="26" instance=ExtResource( 3 )] +position = Vector2( 192, 288 ) +color = 5 + +[node name="Brick21" parent="." index="27" instance=ExtResource( 3 )] +position = Vector2( 192, 320 ) +color = 6 + +[node name="Brick22" parent="." index="28" instance=ExtResource( 3 )] +position = Vector2( 256, 128 ) + +[node name="Brick23" parent="." index="29" instance=ExtResource( 3 )] +position = Vector2( 256, 160 ) +color = 1 + +[node name="Brick24" parent="." index="30" instance=ExtResource( 3 )] +position = Vector2( 256, 192 ) +color = 2 + +[node name="Brick25" parent="." index="31" instance=ExtResource( 3 )] +position = Vector2( 256, 224 ) +color = 3 + +[node name="Brick26" parent="." index="32" instance=ExtResource( 3 )] +position = Vector2( 256, 256 ) +color = 4 + +[node name="Brick27" parent="." index="33" instance=ExtResource( 3 )] +position = Vector2( 256, 288 ) +color = 5 + +[node name="Brick28" parent="." index="34" instance=ExtResource( 3 )] +position = Vector2( 256, 320 ) +color = 6 + +[node name="Brick29" parent="." index="35" instance=ExtResource( 3 )] +position = Vector2( 320, 128 ) + +[node name="Brick30" parent="." index="36" instance=ExtResource( 3 )] +position = Vector2( 320, 160 ) +color = 1 + +[node name="Brick31" parent="." index="37" instance=ExtResource( 3 )] +position = Vector2( 320, 192 ) +color = 2 + +[node name="Brick32" parent="." index="38" instance=ExtResource( 3 )] +position = Vector2( 320, 224 ) +color = 3 + +[node name="Brick33" parent="." index="39" instance=ExtResource( 3 )] +position = Vector2( 320, 256 ) +color = 4 + +[node name="Brick34" parent="." index="40" instance=ExtResource( 3 )] +position = Vector2( 320, 288 ) +color = 5 + +[node name="Brick35" parent="." index="41" instance=ExtResource( 3 )] +position = Vector2( 320, 320 ) +color = 6 + +[node name="Brick36" parent="." index="42" instance=ExtResource( 3 )] +position = Vector2( 384, 128 ) + +[node name="Brick37" parent="." index="43" instance=ExtResource( 3 )] +position = Vector2( 384, 160 ) +color = 1 + +[node name="Brick38" parent="." index="44" instance=ExtResource( 3 )] +position = Vector2( 384, 192 ) +color = 2 + +[node name="Brick39" parent="." index="45" instance=ExtResource( 3 )] +position = Vector2( 384, 224 ) +color = 3 + +[node name="Brick40" parent="." index="46" instance=ExtResource( 3 )] +position = Vector2( 384, 256 ) +color = 4 + +[node name="Brick41" parent="." index="47" instance=ExtResource( 3 )] +position = Vector2( 384, 288 ) +color = 5 + +[node name="Brick42" parent="." index="48" instance=ExtResource( 3 )] +position = Vector2( 384, 320 ) +color = 6 + +[node name="Brick43" parent="." index="49" instance=ExtResource( 3 )] +position = Vector2( 448, 128 ) + +[node name="Brick44" parent="." index="50" instance=ExtResource( 3 )] +position = Vector2( 448, 160 ) +color = 1 + +[node name="Brick45" parent="." index="51" instance=ExtResource( 3 )] +position = Vector2( 448, 192 ) +color = 2 + +[node name="Brick46" parent="." index="52" instance=ExtResource( 3 )] +position = Vector2( 448, 224 ) +color = 3 + +[node name="Brick47" parent="." index="53" instance=ExtResource( 3 )] +position = Vector2( 448, 256 ) +color = 4 + +[node name="Brick48" parent="." index="54" instance=ExtResource( 3 )] +position = Vector2( 448, 288 ) +color = 5 + +[node name="Brick49" parent="." index="55" instance=ExtResource( 3 )] +position = Vector2( 448, 320 ) +color = 6 + +[node name="Brick50" parent="." index="56" instance=ExtResource( 3 )] +position = Vector2( 512, 128 ) + +[node name="Brick51" parent="." index="57" instance=ExtResource( 3 )] +position = Vector2( 512, 160 ) +color = 1 + +[node name="Brick52" parent="." index="58" instance=ExtResource( 3 )] +position = Vector2( 512, 192 ) +color = 2 + +[node name="Brick53" parent="." index="59" instance=ExtResource( 3 )] +position = Vector2( 512, 224 ) +color = 3 + +[node name="Brick54" parent="." index="60" instance=ExtResource( 3 )] +position = Vector2( 512, 256 ) +color = 4 + +[node name="Brick55" parent="." index="61" instance=ExtResource( 3 )] +position = Vector2( 512, 288 ) +color = 5 + +[node name="Brick56" parent="." index="62" instance=ExtResource( 3 )] +position = Vector2( 512, 320 ) +color = 6 + +[node name="Brick57" parent="." index="63" instance=ExtResource( 3 )] +position = Vector2( 576, 128 ) + +[node name="Brick58" parent="." index="64" instance=ExtResource( 3 )] +position = Vector2( 576, 160 ) +color = 1 + +[node name="Brick59" parent="." index="65" instance=ExtResource( 3 )] +position = Vector2( 576, 192 ) +color = 2 + +[node name="Brick60" parent="." index="66" instance=ExtResource( 3 )] +position = Vector2( 576, 224 ) +color = 3 + +[node name="Brick61" parent="." index="67" instance=ExtResource( 3 )] +position = Vector2( 576, 256 ) +color = 4 + +[node name="Brick62" parent="." index="68" instance=ExtResource( 3 )] +position = Vector2( 576, 288 ) +color = 5 + +[node name="Brick63" parent="." index="69" instance=ExtResource( 3 )] +position = Vector2( 576, 320 ) +color = 6 + +[node name="Brick64" parent="." index="70" instance=ExtResource( 3 )] +position = Vector2( 640, 128 ) + +[node name="Brick65" parent="." index="71" instance=ExtResource( 3 )] +position = Vector2( 640, 160 ) +color = 1 + +[node name="Brick66" parent="." index="72" instance=ExtResource( 3 )] +position = Vector2( 640, 192 ) +color = 2 + +[node name="Brick67" parent="." index="73" instance=ExtResource( 3 )] +position = Vector2( 640, 224 ) +color = 3 + +[node name="Brick68" parent="." index="74" instance=ExtResource( 3 )] +position = Vector2( 640, 256 ) +color = 4 + +[node name="Brick69" parent="." index="75" instance=ExtResource( 3 )] +position = Vector2( 640, 288 ) +color = 5 + +[node name="Brick70" parent="." index="76" instance=ExtResource( 3 )] +position = Vector2( 640, 320 ) +color = 6 + +[node name="Brick71" parent="." index="77" instance=ExtResource( 3 )] +position = Vector2( 704, 128 ) + +[node name="Brick72" parent="." index="78" instance=ExtResource( 3 )] +position = Vector2( 704, 160 ) +color = 1 + +[node name="Brick73" parent="." index="79" instance=ExtResource( 3 )] +position = Vector2( 704, 192 ) +color = 2 + +[node name="Brick74" parent="." index="80" instance=ExtResource( 3 )] +position = Vector2( 704, 224 ) +color = 3 + +[node name="Brick75" parent="." index="81" instance=ExtResource( 3 )] +position = Vector2( 704, 256 ) +color = 4 + +[node name="Brick76" parent="." index="82" instance=ExtResource( 3 )] +position = Vector2( 704, 288 ) +color = 5 + +[node name="Brick77" parent="." index="83" instance=ExtResource( 3 )] +position = Vector2( 704, 320 ) +color = 6 + +[node name="Brick78" parent="." index="84" instance=ExtResource( 3 )] +position = Vector2( 768, 128 ) + +[node name="Brick79" parent="." index="85" instance=ExtResource( 3 )] +position = Vector2( 768, 160 ) +color = 1 + +[node name="Brick80" parent="." index="86" instance=ExtResource( 3 )] +position = Vector2( 768, 192 ) +color = 2 + +[node name="Brick81" parent="." index="87" instance=ExtResource( 3 )] +position = Vector2( 768, 224 ) +color = 3 + +[node name="Brick82" parent="." index="88" instance=ExtResource( 3 )] +position = Vector2( 768, 256 ) +color = 4 + +[node name="Brick83" parent="." index="89" instance=ExtResource( 3 )] +position = Vector2( 768, 288 ) +color = 5 + +[node name="Brick84" parent="." index="90" instance=ExtResource( 3 )] +position = Vector2( 768, 320 ) +color = 6 + +[node name="Brick85" parent="." index="91" instance=ExtResource( 3 )] +position = Vector2( 832, 128 ) + +[node name="Brick86" parent="." index="92" instance=ExtResource( 3 )] +position = Vector2( 832, 160 ) +color = 1 + +[node name="Brick87" parent="." index="93" instance=ExtResource( 3 )] +position = Vector2( 832, 192 ) +color = 2 + +[node name="Brick88" parent="." index="94" instance=ExtResource( 3 )] +position = Vector2( 832, 224 ) +color = 3 + +[node name="Brick89" parent="." index="95" instance=ExtResource( 3 )] +position = Vector2( 832, 256 ) +color = 4 + +[node name="Brick90" parent="." index="96" instance=ExtResource( 3 )] +position = Vector2( 832, 288 ) +color = 5 + +[node name="Brick91" parent="." index="97" instance=ExtResource( 3 )] +position = Vector2( 832, 320 ) +color = 6 + +[connection signal="brick_broken" from="Brick" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick2" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick3" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick4" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick5" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick6" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick7" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick92" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick93" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick94" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick95" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick96" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick97" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick98" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick8" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick9" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick10" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick11" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick12" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick13" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick14" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick15" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick16" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick17" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick18" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick19" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick20" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick21" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick22" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick23" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick24" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick25" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick26" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick27" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick28" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick29" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick30" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick31" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick32" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick33" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick34" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick35" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick36" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick37" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick38" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick39" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick40" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick41" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick42" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick43" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick44" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick45" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick46" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick47" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick48" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick49" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick50" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick51" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick52" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick53" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick54" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick55" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick56" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick57" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick58" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick59" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick60" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick61" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick62" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick63" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick64" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick65" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick66" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick67" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick68" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick69" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick70" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick71" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick72" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick73" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick74" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick75" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick76" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick77" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick78" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick79" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick80" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick81" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick82" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick83" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick84" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick85" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick86" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick87" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick88" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick89" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick90" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick91" to="." method="_on_brick_broken"] diff --git a/levels/level_01_02.tscn b/levels/level_01_02.tscn new file mode 100644 index 0000000..4e7e0e7 --- /dev/null +++ b/levels/level_01_02.tscn @@ -0,0 +1,436 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://levels/base_level.tscn" type="PackedScene" id=1] +[ext_resource path="res://blocks/brick.tscn" type="PackedScene" id=3] +[ext_resource path="res://blocks/wall.tscn" type="PackedScene" id=4] + +[node name="Level_01_02" instance=ExtResource( 1 )] + +[node name="Wall2" parent="." index="0" instance=ExtResource( 4 )] +position = Vector2( 128, 352 ) + +[node name="Wall3" parent="." index="1" instance=ExtResource( 4 )] +position = Vector2( 192, 352 ) + +[node name="Wall4" parent="." index="2" instance=ExtResource( 4 )] +position = Vector2( 256, 352 ) + +[node name="Wall5" parent="." index="3" instance=ExtResource( 4 )] +position = Vector2( 320, 352 ) + +[node name="Wall10" parent="." index="4" instance=ExtResource( 4 )] +position = Vector2( 640, 352 ) + +[node name="Wall11" parent="." index="5" instance=ExtResource( 4 )] +position = Vector2( 704, 352 ) + +[node name="Wall12" parent="." index="6" instance=ExtResource( 4 )] +position = Vector2( 768, 352 ) + +[node name="Wall13" parent="." index="7" instance=ExtResource( 4 )] +position = Vector2( 832, 352 ) + +[node name="Wall6" parent="." index="8" instance=ExtResource( 4 )] +position = Vector2( 384, 352 ) + +[node name="Wall7" parent="." index="9" instance=ExtResource( 4 )] +position = Vector2( 576, 352 ) + +[node name="Brick41" parent="." index="10" instance=ExtResource( 3 )] +position = Vector2( 64, 352 ) +color = 7 + +[node name="Brick49" parent="." index="11" instance=ExtResource( 3 )] +position = Vector2( 896, 352 ) +color = 7 + +[node name="Brick67" parent="." index="12" instance=ExtResource( 3 )] +position = Vector2( 448, 352 ) + +[node name="Brick73" parent="." index="13" instance=ExtResource( 3 )] +position = Vector2( 512, 352 ) + +[node name="Brick74" parent="." index="14" instance=ExtResource( 3 )] +position = Vector2( 448, 320 ) +color = 1 + +[node name="Brick75" parent="." index="15" instance=ExtResource( 3 )] +position = Vector2( 512, 320 ) +color = 1 + +[node name="Brick76" parent="." index="16" instance=ExtResource( 3 )] +position = Vector2( 448, 64 ) +color = 1 + +[node name="Brick81" parent="." index="17" instance=ExtResource( 3 )] +position = Vector2( 512, 64 ) +color = 1 + +[node name="Brick83" parent="." index="18" instance=ExtResource( 3 )] +position = Vector2( 448, 288 ) +color = 2 + +[node name="Brick84" parent="." index="19" instance=ExtResource( 3 )] +position = Vector2( 512, 288 ) +color = 2 + +[node name="Brick85" parent="." index="20" instance=ExtResource( 3 )] +position = Vector2( 448, 96 ) +color = 2 + +[node name="Brick89" parent="." index="21" instance=ExtResource( 3 )] +position = Vector2( 512, 96 ) +color = 2 + +[node name="Brick90" parent="." index="22" instance=ExtResource( 3 )] +position = Vector2( 384, 64 ) +color = 2 + +[node name="Brick91" parent="." index="23" instance=ExtResource( 3 )] +position = Vector2( 576, 64 ) +color = 2 + +[node name="Brick92" parent="." index="24" instance=ExtResource( 3 )] +position = Vector2( 384, 320 ) +color = 2 + +[node name="Brick93" parent="." index="25" instance=ExtResource( 3 )] +position = Vector2( 576, 320 ) +color = 2 + +[node name="Brick94" parent="." index="26" instance=ExtResource( 3 )] +position = Vector2( 448, 256 ) +color = 3 + +[node name="Brick95" parent="." index="27" instance=ExtResource( 3 )] +position = Vector2( 512, 256 ) +color = 3 + +[node name="Brick97" parent="." index="28" instance=ExtResource( 3 )] +position = Vector2( 448, 128 ) +color = 3 + +[node name="Brick98" parent="." index="29" instance=ExtResource( 3 )] +position = Vector2( 512, 128 ) +color = 3 + +[node name="Brick99" parent="." index="30" instance=ExtResource( 3 )] +position = Vector2( 576, 288 ) +color = 3 + +[node name="Brick100" parent="." index="31" instance=ExtResource( 3 )] +position = Vector2( 640, 320 ) +color = 3 + +[node name="Brick101" parent="." index="32" instance=ExtResource( 3 )] +position = Vector2( 384, 288 ) +color = 3 + +[node name="Brick102" parent="." index="33" instance=ExtResource( 3 )] +position = Vector2( 320, 320 ) +color = 3 + +[node name="Brick103" parent="." index="34" instance=ExtResource( 3 )] +position = Vector2( 576, 96 ) +color = 3 + +[node name="Brick104" parent="." index="35" instance=ExtResource( 3 )] +position = Vector2( 640, 64 ) +color = 3 + +[node name="Brick105" parent="." index="36" instance=ExtResource( 3 )] +position = Vector2( 384, 96 ) +color = 3 + +[node name="Brick106" parent="." index="37" instance=ExtResource( 3 )] +position = Vector2( 320, 64 ) +color = 3 + +[node name="Brick1" parent="." index="38" instance=ExtResource( 3 )] +position = Vector2( 128, 320 ) +color = 6 + +[node name="Brick2" parent="." index="39" instance=ExtResource( 3 )] +position = Vector2( 192, 320 ) +color = 5 + +[node name="Brick3" parent="." index="40" instance=ExtResource( 3 )] +position = Vector2( 256, 320 ) +color = 4 + +[node name="Brick4" parent="." index="41" instance=ExtResource( 3 )] +position = Vector2( 192, 288 ) +color = 6 + +[node name="Brick10" parent="." index="42" instance=ExtResource( 3 )] +position = Vector2( 256, 288 ) +color = 5 + +[node name="Brick11" parent="." index="43" instance=ExtResource( 3 )] +position = Vector2( 320, 288 ) +color = 4 + +[node name="Brick12" parent="." index="44" instance=ExtResource( 3 )] +position = Vector2( 256, 256 ) +color = 6 + +[node name="Brick17" parent="." index="45" instance=ExtResource( 3 )] +position = Vector2( 320, 256 ) +color = 5 + +[node name="Brick18" parent="." index="46" instance=ExtResource( 3 )] +position = Vector2( 384, 256 ) +color = 4 + +[node name="Brick19" parent="." index="47" instance=ExtResource( 3 )] +position = Vector2( 320, 224 ) +color = 6 + +[node name="Brick20" parent="." index="48" instance=ExtResource( 3 )] +position = Vector2( 384, 224 ) +color = 5 + +[node name="Brick24" parent="." index="49" instance=ExtResource( 3 )] +position = Vector2( 448, 224 ) +color = 4 + +[node name="Brick5" parent="." index="50" instance=ExtResource( 3 )] +position = Vector2( 320, 160 ) +color = 6 + +[node name="Brick8" parent="." index="51" instance=ExtResource( 3 )] +position = Vector2( 384, 160 ) +color = 5 + +[node name="Brick9" parent="." index="52" instance=ExtResource( 3 )] +position = Vector2( 448, 160 ) +color = 4 + +[node name="Brick13" parent="." index="53" instance=ExtResource( 3 )] +position = Vector2( 256, 128 ) +color = 6 + +[node name="Brick23" parent="." index="54" instance=ExtResource( 3 )] +position = Vector2( 320, 128 ) +color = 5 + +[node name="Brick25" parent="." index="55" instance=ExtResource( 3 )] +position = Vector2( 384, 128 ) +color = 4 + +[node name="Brick26" parent="." index="56" instance=ExtResource( 3 )] +position = Vector2( 192, 96 ) +color = 6 + +[node name="Brick27" parent="." index="57" instance=ExtResource( 3 )] +position = Vector2( 256, 96 ) +color = 5 + +[node name="Brick28" parent="." index="58" instance=ExtResource( 3 )] +position = Vector2( 320, 96 ) +color = 4 + +[node name="Brick30" parent="." index="59" instance=ExtResource( 3 )] +position = Vector2( 128, 64 ) +color = 6 + +[node name="Brick31" parent="." index="60" instance=ExtResource( 3 )] +position = Vector2( 192, 64 ) +color = 5 + +[node name="Brick32" parent="." index="61" instance=ExtResource( 3 )] +position = Vector2( 256, 64 ) +color = 4 + +[node name="Brick33" parent="." index="62" instance=ExtResource( 3 )] +position = Vector2( 704, 320 ) +color = 4 + +[node name="Brick34" parent="." index="63" instance=ExtResource( 3 )] +position = Vector2( 768, 320 ) +color = 5 + +[node name="Brick36" parent="." index="64" instance=ExtResource( 3 )] +position = Vector2( 832, 320 ) +color = 6 + +[node name="Brick35" parent="." index="65" instance=ExtResource( 3 )] +position = Vector2( 640, 288 ) +color = 4 + +[node name="Brick37" parent="." index="66" instance=ExtResource( 3 )] +position = Vector2( 704, 288 ) +color = 5 + +[node name="Brick38" parent="." index="67" instance=ExtResource( 3 )] +position = Vector2( 768, 288 ) +color = 6 + +[node name="Brick39" parent="." index="68" instance=ExtResource( 3 )] +position = Vector2( 576, 256 ) +color = 4 + +[node name="Brick40" parent="." index="69" instance=ExtResource( 3 )] +position = Vector2( 640, 256 ) +color = 5 + +[node name="Brick42" parent="." index="70" instance=ExtResource( 3 )] +position = Vector2( 704, 256 ) +color = 6 + +[node name="Brick43" parent="." index="71" instance=ExtResource( 3 )] +position = Vector2( 512, 224 ) +color = 4 + +[node name="Brick45" parent="." index="72" instance=ExtResource( 3 )] +position = Vector2( 576, 224 ) +color = 5 + +[node name="Brick46" parent="." index="73" instance=ExtResource( 3 )] +position = Vector2( 640, 224 ) +color = 6 + +[node name="Brick47" parent="." index="74" instance=ExtResource( 3 )] +position = Vector2( 512, 160 ) +color = 4 + +[node name="Brick48" parent="." index="75" instance=ExtResource( 3 )] +position = Vector2( 576, 160 ) +color = 5 + +[node name="Brick50" parent="." index="76" instance=ExtResource( 3 )] +position = Vector2( 640, 160 ) +color = 6 + +[node name="Brick51" parent="." index="77" instance=ExtResource( 3 )] +position = Vector2( 576, 128 ) +color = 4 + +[node name="Brick53" parent="." index="78" instance=ExtResource( 3 )] +position = Vector2( 640, 128 ) +color = 5 + +[node name="Brick54" parent="." index="79" instance=ExtResource( 3 )] +position = Vector2( 704, 128 ) +color = 6 + +[node name="Brick55" parent="." index="80" instance=ExtResource( 3 )] +position = Vector2( 640, 96 ) +color = 4 + +[node name="Brick56" parent="." index="81" instance=ExtResource( 3 )] +position = Vector2( 704, 96 ) +color = 5 + +[node name="Brick57" parent="." index="82" instance=ExtResource( 3 )] +position = Vector2( 768, 96 ) +color = 6 + +[node name="Brick58" parent="." index="83" instance=ExtResource( 3 )] +position = Vector2( 704, 64 ) +color = 4 + +[node name="Brick61" parent="." index="84" instance=ExtResource( 3 )] +position = Vector2( 768, 64 ) +color = 5 + +[node name="Brick62" parent="." index="85" instance=ExtResource( 3 )] +position = Vector2( 832, 64 ) +color = 6 + +[node name="Brick21" parent="." index="86" instance=ExtResource( 3 )] +position = Vector2( 384, 192 ) +color = 6 + +[node name="Brick22" parent="." index="87" instance=ExtResource( 3 )] +position = Vector2( 448, 192 ) +color = 5 + +[node name="Brick52" parent="." index="88" instance=ExtResource( 3 )] +position = Vector2( 512, 192 ) +color = 5 + +[node name="Brick59" parent="." index="89" instance=ExtResource( 3 )] +position = Vector2( 576, 192 ) +color = 6 + +[connection signal="brick_broken" from="Brick41" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick49" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick67" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick73" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick74" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick75" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick76" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick81" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick83" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick84" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick85" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick89" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick90" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick91" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick92" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick93" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick94" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick95" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick97" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick98" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick99" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick100" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick101" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick102" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick103" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick104" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick105" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick106" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick1" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick2" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick3" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick4" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick10" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick11" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick12" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick17" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick18" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick19" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick20" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick24" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick5" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick8" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick9" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick13" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick23" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick25" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick26" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick27" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick28" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick30" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick31" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick32" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick33" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick34" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick36" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick35" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick37" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick38" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick39" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick40" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick42" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick43" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick45" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick46" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick47" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick48" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick50" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick51" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick53" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick54" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick55" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick56" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick57" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick58" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick61" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick62" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick21" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick22" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick52" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick59" to="." method="_on_brick_broken"] diff --git a/levels/level_01_03.tscn b/levels/level_01_03.tscn new file mode 100644 index 0000000..9fc79cc --- /dev/null +++ b/levels/level_01_03.tscn @@ -0,0 +1,644 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://levels/base_level.tscn" type="PackedScene" id=1] +[ext_resource path="res://blocks/wall.tscn" type="PackedScene" id=2] +[ext_resource path="res://blocks/brick.tscn" type="PackedScene" id=3] + +[node name="Level_01_03" instance=ExtResource( 1 )] + +[node name="Wall" parent="." index="0" instance=ExtResource( 2 )] +position = Vector2( 448, 352 ) + +[node name="Wall2" parent="." index="1" instance=ExtResource( 2 )] +position = Vector2( 512, 352 ) + +[node name="Wall3" parent="." index="2" instance=ExtResource( 2 )] +position = Vector2( 192, 352 ) + +[node name="Wall4" parent="." index="3" instance=ExtResource( 2 )] +position = Vector2( 256, 352 ) + +[node name="Wall5" parent="." index="4" instance=ExtResource( 2 )] +position = Vector2( 704, 352 ) + +[node name="Wall6" parent="." index="5" instance=ExtResource( 2 )] +position = Vector2( 768, 352 ) + +[node name="Wall7" parent="." index="6" instance=ExtResource( 2 )] +position = Vector2( 448, 64 ) + +[node name="Wall8" parent="." index="7" instance=ExtResource( 2 )] +position = Vector2( 512, 64 ) + +[node name="Wall9" parent="." index="8" instance=ExtResource( 2 )] +position = Vector2( 192, 64 ) + +[node name="Wall10" parent="." index="9" instance=ExtResource( 2 )] +position = Vector2( 256, 64 ) + +[node name="Wall11" parent="." index="10" instance=ExtResource( 2 )] +position = Vector2( 704, 64 ) + +[node name="Wall12" parent="." index="11" instance=ExtResource( 2 )] +position = Vector2( 768, 64 ) + +[node name="Wall13" parent="." index="12" instance=ExtResource( 2 )] +position = Vector2( 448, 256 ) + +[node name="Wall14" parent="." index="13" instance=ExtResource( 2 )] +position = Vector2( 512, 256 ) + +[node name="Wall15" parent="." index="14" instance=ExtResource( 2 )] +position = Vector2( 192, 256 ) + +[node name="Wall16" parent="." index="15" instance=ExtResource( 2 )] +position = Vector2( 256, 256 ) + +[node name="Wall17" parent="." index="16" instance=ExtResource( 2 )] +position = Vector2( 704, 256 ) + +[node name="Wall18" parent="." index="17" instance=ExtResource( 2 )] +position = Vector2( 768, 256 ) + +[node name="Wall19" parent="." index="18" instance=ExtResource( 2 )] +position = Vector2( 448, 160 ) + +[node name="Wall20" parent="." index="19" instance=ExtResource( 2 )] +position = Vector2( 512, 160 ) + +[node name="Wall21" parent="." index="20" instance=ExtResource( 2 )] +position = Vector2( 192, 160 ) + +[node name="Wall22" parent="." index="21" instance=ExtResource( 2 )] +position = Vector2( 256, 160 ) + +[node name="Wall23" parent="." index="22" instance=ExtResource( 2 )] +position = Vector2( 704, 160 ) + +[node name="Wall24" parent="." index="23" instance=ExtResource( 2 )] +position = Vector2( 768, 160 ) + +[node name="Brick" parent="." index="24" instance=ExtResource( 3 )] +position = Vector2( 320, 352 ) +score = 200 +max_hits = 2 + +[node name="Brick2" parent="." index="25" instance=ExtResource( 3 )] +position = Vector2( 384, 352 ) +score = 200 +max_hits = 2 + +[node name="Brick15" parent="." index="26" instance=ExtResource( 3 )] +position = Vector2( 320, 320 ) + +[node name="Brick16" parent="." index="27" instance=ExtResource( 3 )] +position = Vector2( 384, 320 ) + +[node name="Brick29" parent="." index="28" instance=ExtResource( 3 )] +position = Vector2( 320, 288 ) + +[node name="Brick30" parent="." index="29" instance=ExtResource( 3 )] +position = Vector2( 384, 288 ) + +[node name="Brick43" parent="." index="30" instance=ExtResource( 3 )] +position = Vector2( 320, 256 ) +score = 200 +max_hits = 2 + +[node name="Brick44" parent="." index="31" instance=ExtResource( 3 )] +position = Vector2( 384, 256 ) +score = 200 +max_hits = 2 + +[node name="Brick57" parent="." index="32" instance=ExtResource( 3 )] +position = Vector2( 320, 224 ) + +[node name="Brick58" parent="." index="33" instance=ExtResource( 3 )] +position = Vector2( 384, 224 ) + +[node name="Brick71" parent="." index="34" instance=ExtResource( 3 )] +position = Vector2( 320, 192 ) + +[node name="Brick72" parent="." index="35" instance=ExtResource( 3 )] +position = Vector2( 384, 192 ) + +[node name="Brick85" parent="." index="36" instance=ExtResource( 3 )] +position = Vector2( 320, 160 ) +score = 200 +max_hits = 2 + +[node name="Brick86" parent="." index="37" instance=ExtResource( 3 )] +position = Vector2( 384, 160 ) +score = 200 +max_hits = 2 + +[node name="Brick87" parent="." index="38" instance=ExtResource( 3 )] +position = Vector2( 320, 128 ) + +[node name="Brick88" parent="." index="39" instance=ExtResource( 3 )] +position = Vector2( 384, 128 ) + +[node name="Brick89" parent="." index="40" instance=ExtResource( 3 )] +position = Vector2( 320, 96 ) + +[node name="Brick90" parent="." index="41" instance=ExtResource( 3 )] +position = Vector2( 384, 96 ) + +[node name="Brick91" parent="." index="42" instance=ExtResource( 3 )] +position = Vector2( 320, 64 ) +score = 200 +max_hits = 2 + +[node name="Brick92" parent="." index="43" instance=ExtResource( 3 )] +position = Vector2( 384, 64 ) +score = 200 +max_hits = 2 + +[node name="Brick11" parent="." index="44" instance=ExtResource( 3 )] +position = Vector2( 64, 352 ) +score = 200 +max_hits = 2 + +[node name="Brick12" parent="." index="45" instance=ExtResource( 3 )] +position = Vector2( 128, 352 ) +score = 200 +max_hits = 2 + +[node name="Brick25" parent="." index="46" instance=ExtResource( 3 )] +position = Vector2( 64, 320 ) + +[node name="Brick26" parent="." index="47" instance=ExtResource( 3 )] +position = Vector2( 128, 320 ) + +[node name="Brick39" parent="." index="48" instance=ExtResource( 3 )] +position = Vector2( 64, 288 ) + +[node name="Brick40" parent="." index="49" instance=ExtResource( 3 )] +position = Vector2( 128, 288 ) + +[node name="Brick53" parent="." index="50" instance=ExtResource( 3 )] +position = Vector2( 64, 256 ) +score = 200 +max_hits = 2 + +[node name="Brick54" parent="." index="51" instance=ExtResource( 3 )] +position = Vector2( 128, 256 ) +score = 200 +max_hits = 2 + +[node name="Brick67" parent="." index="52" instance=ExtResource( 3 )] +position = Vector2( 64, 224 ) + +[node name="Brick68" parent="." index="53" instance=ExtResource( 3 )] +position = Vector2( 128, 224 ) + +[node name="Brick81" parent="." index="54" instance=ExtResource( 3 )] +position = Vector2( 64, 192 ) + +[node name="Brick82" parent="." index="55" instance=ExtResource( 3 )] +position = Vector2( 128, 192 ) + +[node name="Brick93" parent="." index="56" instance=ExtResource( 3 )] +position = Vector2( 64, 160 ) +score = 200 +max_hits = 2 + +[node name="Brick94" parent="." index="57" instance=ExtResource( 3 )] +position = Vector2( 128, 160 ) +score = 200 +max_hits = 2 + +[node name="Brick95" parent="." index="58" instance=ExtResource( 3 )] +position = Vector2( 64, 128 ) + +[node name="Brick96" parent="." index="59" instance=ExtResource( 3 )] +position = Vector2( 128, 128 ) + +[node name="Brick97" parent="." index="60" instance=ExtResource( 3 )] +position = Vector2( 64, 96 ) + +[node name="Brick98" parent="." index="61" instance=ExtResource( 3 )] +position = Vector2( 128, 96 ) + +[node name="Brick99" parent="." index="62" instance=ExtResource( 3 )] +position = Vector2( 64, 64 ) +score = 200 +max_hits = 2 + +[node name="Brick100" parent="." index="63" instance=ExtResource( 3 )] +position = Vector2( 128, 64 ) +score = 200 +max_hits = 2 + +[node name="Brick3" parent="." index="64" instance=ExtResource( 3 )] +position = Vector2( 576, 352 ) +score = 200 +max_hits = 2 + +[node name="Brick4" parent="." index="65" instance=ExtResource( 3 )] +position = Vector2( 640, 352 ) +score = 200 +max_hits = 2 + +[node name="Brick17" parent="." index="66" instance=ExtResource( 3 )] +position = Vector2( 576, 320 ) + +[node name="Brick18" parent="." index="67" instance=ExtResource( 3 )] +position = Vector2( 640, 320 ) + +[node name="Brick31" parent="." index="68" instance=ExtResource( 3 )] +position = Vector2( 576, 288 ) + +[node name="Brick32" parent="." index="69" instance=ExtResource( 3 )] +position = Vector2( 640, 288 ) + +[node name="Brick45" parent="." index="70" instance=ExtResource( 3 )] +position = Vector2( 576, 256 ) +score = 200 +max_hits = 2 + +[node name="Brick46" parent="." index="71" instance=ExtResource( 3 )] +position = Vector2( 640, 256 ) +score = 200 +max_hits = 2 + +[node name="Brick59" parent="." index="72" instance=ExtResource( 3 )] +position = Vector2( 576, 224 ) + +[node name="Brick60" parent="." index="73" instance=ExtResource( 3 )] +position = Vector2( 640, 224 ) + +[node name="Brick73" parent="." index="74" instance=ExtResource( 3 )] +position = Vector2( 576, 192 ) + +[node name="Brick74" parent="." index="75" instance=ExtResource( 3 )] +position = Vector2( 640, 192 ) + +[node name="Brick101" parent="." index="76" instance=ExtResource( 3 )] +position = Vector2( 576, 160 ) +score = 200 +max_hits = 2 + +[node name="Brick102" parent="." index="77" instance=ExtResource( 3 )] +position = Vector2( 640, 160 ) +score = 200 +max_hits = 2 + +[node name="Brick103" parent="." index="78" instance=ExtResource( 3 )] +position = Vector2( 576, 128 ) + +[node name="Brick104" parent="." index="79" instance=ExtResource( 3 )] +position = Vector2( 640, 128 ) + +[node name="Brick105" parent="." index="80" instance=ExtResource( 3 )] +position = Vector2( 576, 96 ) + +[node name="Brick106" parent="." index="81" instance=ExtResource( 3 )] +position = Vector2( 640, 96 ) + +[node name="Brick107" parent="." index="82" instance=ExtResource( 3 )] +position = Vector2( 576, 64 ) +score = 200 +max_hits = 2 + +[node name="Brick108" parent="." index="83" instance=ExtResource( 3 )] +position = Vector2( 640, 64 ) +score = 200 +max_hits = 2 + +[node name="Brick13" parent="." index="84" instance=ExtResource( 3 )] +position = Vector2( 832, 352 ) +score = 200 +max_hits = 2 + +[node name="Brick14" parent="." index="85" instance=ExtResource( 3 )] +position = Vector2( 896, 352 ) +score = 200 +max_hits = 2 + +[node name="Brick27" parent="." index="86" instance=ExtResource( 3 )] +position = Vector2( 832, 320 ) + +[node name="Brick28" parent="." index="87" instance=ExtResource( 3 )] +position = Vector2( 896, 320 ) + +[node name="Brick41" parent="." index="88" instance=ExtResource( 3 )] +position = Vector2( 832, 288 ) + +[node name="Brick42" parent="." index="89" instance=ExtResource( 3 )] +position = Vector2( 896, 288 ) + +[node name="Brick55" parent="." index="90" instance=ExtResource( 3 )] +position = Vector2( 832, 256 ) +score = 200 +max_hits = 2 + +[node name="Brick56" parent="." index="91" instance=ExtResource( 3 )] +position = Vector2( 896, 256 ) +score = 200 +max_hits = 2 + +[node name="Brick69" parent="." index="92" instance=ExtResource( 3 )] +position = Vector2( 832, 224 ) + +[node name="Brick70" parent="." index="93" instance=ExtResource( 3 )] +position = Vector2( 896, 224 ) + +[node name="Brick83" parent="." index="94" instance=ExtResource( 3 )] +position = Vector2( 832, 192 ) + +[node name="Brick84" parent="." index="95" instance=ExtResource( 3 )] +position = Vector2( 896, 192 ) + +[node name="Brick109" parent="." index="96" instance=ExtResource( 3 )] +position = Vector2( 832, 160 ) +score = 200 +max_hits = 2 + +[node name="Brick110" parent="." index="97" instance=ExtResource( 3 )] +position = Vector2( 896, 160 ) +score = 200 +max_hits = 2 + +[node name="Brick111" parent="." index="98" instance=ExtResource( 3 )] +position = Vector2( 832, 128 ) + +[node name="Brick112" parent="." index="99" instance=ExtResource( 3 )] +position = Vector2( 896, 128 ) + +[node name="Brick113" parent="." index="100" instance=ExtResource( 3 )] +position = Vector2( 832, 96 ) + +[node name="Brick114" parent="." index="101" instance=ExtResource( 3 )] +position = Vector2( 896, 96 ) + +[node name="Brick115" parent="." index="102" instance=ExtResource( 3 )] +position = Vector2( 832, 64 ) +score = 200 +max_hits = 2 + +[node name="Brick116" parent="." index="103" instance=ExtResource( 3 )] +position = Vector2( 896, 64 ) +score = 200 +max_hits = 2 + +[node name="Brick19" parent="." index="104" instance=ExtResource( 3 )] +position = Vector2( 448, 320 ) +color = 4 + +[node name="Brick20" parent="." index="105" instance=ExtResource( 3 )] +position = Vector2( 512, 320 ) +color = 4 + +[node name="Brick33" parent="." index="106" instance=ExtResource( 3 )] +position = Vector2( 448, 288 ) +color = 4 + +[node name="Brick34" parent="." index="107" instance=ExtResource( 3 )] +position = Vector2( 512, 288 ) +color = 4 + +[node name="Brick21" parent="." index="108" instance=ExtResource( 3 )] +position = Vector2( 448, 224 ) +color = 4 + +[node name="Brick22" parent="." index="109" instance=ExtResource( 3 )] +position = Vector2( 512, 224 ) +color = 4 + +[node name="Brick35" parent="." index="110" instance=ExtResource( 3 )] +position = Vector2( 448, 192 ) +color = 4 + +[node name="Brick36" parent="." index="111" instance=ExtResource( 3 )] +position = Vector2( 512, 192 ) +color = 4 + +[node name="Brick47" parent="." index="112" instance=ExtResource( 3 )] +position = Vector2( 448, 128 ) +color = 4 + +[node name="Brick48" parent="." index="113" instance=ExtResource( 3 )] +position = Vector2( 512, 128 ) +color = 4 + +[node name="Brick49" parent="." index="114" instance=ExtResource( 3 )] +position = Vector2( 448, 96 ) +color = 4 + +[node name="Brick50" parent="." index="115" instance=ExtResource( 3 )] +position = Vector2( 512, 96 ) +color = 4 + +[node name="Brick61" parent="." index="116" instance=ExtResource( 3 )] +position = Vector2( 704, 320 ) +color = 4 + +[node name="Brick62" parent="." index="117" instance=ExtResource( 3 )] +position = Vector2( 768, 320 ) +color = 4 + +[node name="Brick63" parent="." index="118" instance=ExtResource( 3 )] +position = Vector2( 704, 288 ) +color = 4 + +[node name="Brick64" parent="." index="119" instance=ExtResource( 3 )] +position = Vector2( 768, 288 ) +color = 4 + +[node name="Brick75" parent="." index="120" instance=ExtResource( 3 )] +position = Vector2( 704, 224 ) +color = 4 + +[node name="Brick76" parent="." index="121" instance=ExtResource( 3 )] +position = Vector2( 768, 224 ) +color = 4 + +[node name="Brick77" parent="." index="122" instance=ExtResource( 3 )] +position = Vector2( 704, 192 ) +color = 4 + +[node name="Brick78" parent="." index="123" instance=ExtResource( 3 )] +position = Vector2( 768, 192 ) +color = 4 + +[node name="Brick117" parent="." index="124" instance=ExtResource( 3 )] +position = Vector2( 704, 128 ) +color = 4 + +[node name="Brick118" parent="." index="125" instance=ExtResource( 3 )] +position = Vector2( 768, 128 ) +color = 4 + +[node name="Brick119" parent="." index="126" instance=ExtResource( 3 )] +position = Vector2( 704, 96 ) +color = 4 + +[node name="Brick120" parent="." index="127" instance=ExtResource( 3 )] +position = Vector2( 768, 96 ) +color = 4 + +[node name="Brick23" parent="." index="128" instance=ExtResource( 3 )] +position = Vector2( 192, 320 ) +color = 4 + +[node name="Brick24" parent="." index="129" instance=ExtResource( 3 )] +position = Vector2( 256, 320 ) +color = 4 + +[node name="Brick37" parent="." index="130" instance=ExtResource( 3 )] +position = Vector2( 192, 288 ) +color = 4 + +[node name="Brick38" parent="." index="131" instance=ExtResource( 3 )] +position = Vector2( 256, 288 ) +color = 4 + +[node name="Brick51" parent="." index="132" instance=ExtResource( 3 )] +position = Vector2( 192, 224 ) +color = 4 + +[node name="Brick52" parent="." index="133" instance=ExtResource( 3 )] +position = Vector2( 256, 224 ) +color = 4 + +[node name="Brick65" parent="." index="134" instance=ExtResource( 3 )] +position = Vector2( 192, 192 ) +color = 4 + +[node name="Brick66" parent="." index="135" instance=ExtResource( 3 )] +position = Vector2( 256, 192 ) +color = 4 + +[node name="Brick79" parent="." index="136" instance=ExtResource( 3 )] +position = Vector2( 192, 128 ) +color = 4 + +[node name="Brick80" parent="." index="137" instance=ExtResource( 3 )] +position = Vector2( 256, 128 ) +color = 4 + +[node name="Brick121" parent="." index="138" instance=ExtResource( 3 )] +position = Vector2( 192, 96 ) +color = 4 + +[node name="Brick122" parent="." index="139" instance=ExtResource( 3 )] +position = Vector2( 256, 96 ) +color = 4 + +[connection signal="brick_broken" from="Brick" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick2" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick15" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick16" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick29" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick30" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick43" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick44" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick57" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick58" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick71" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick72" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick85" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick86" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick87" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick88" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick89" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick90" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick91" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick92" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick11" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick12" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick25" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick26" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick39" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick40" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick53" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick54" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick67" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick68" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick81" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick82" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick93" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick94" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick95" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick96" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick97" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick98" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick99" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick100" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick3" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick4" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick17" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick18" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick31" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick32" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick45" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick46" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick59" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick60" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick73" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick74" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick101" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick102" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick103" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick104" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick105" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick106" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick107" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick108" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick13" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick14" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick27" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick28" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick41" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick42" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick55" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick56" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick69" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick70" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick83" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick84" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick109" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick110" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick111" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick112" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick113" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick114" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick115" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick116" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick19" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick20" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick33" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick34" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick21" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick22" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick35" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick36" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick47" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick48" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick49" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick50" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick61" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick62" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick63" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick64" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick75" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick76" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick77" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick78" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick117" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick118" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick119" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick120" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick23" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick24" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick37" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick38" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick51" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick52" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick65" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick66" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick79" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick80" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick121" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick122" to="." method="_on_brick_broken"] diff --git a/levels/level_01_04.tscn b/levels/level_01_04.tscn new file mode 100644 index 0000000..4a18b69 --- /dev/null +++ b/levels/level_01_04.tscn @@ -0,0 +1,649 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://levels/base_level.tscn" type="PackedScene" id=1] +[ext_resource path="res://blocks/half_brick.tscn" type="PackedScene" id=3] + +[node name="Level_01_04" instance=ExtResource( 1 )] + +[node name="HalfBrick" parent="." index="0" instance=ExtResource( 3 )] +position = Vector2( 480, 384 ) + +[node name="HalfBrick2" parent="." index="1" instance=ExtResource( 3 )] +position = Vector2( 448, 352 ) + +[node name="HalfBrick3" parent="." index="2" instance=ExtResource( 3 )] +position = Vector2( 480, 352 ) + +[node name="HalfBrick4" parent="." index="3" instance=ExtResource( 3 )] +position = Vector2( 416, 320 ) + +[node name="HalfBrick5" parent="." index="4" instance=ExtResource( 3 )] +position = Vector2( 448, 320 ) + +[node name="HalfBrick6" parent="." index="5" instance=ExtResource( 3 )] +position = Vector2( 384, 288 ) + +[node name="HalfBrick7" parent="." index="6" instance=ExtResource( 3 )] +position = Vector2( 416, 288 ) + +[node name="HalfBrick8" parent="." index="7" instance=ExtResource( 3 )] +position = Vector2( 352, 256 ) + +[node name="HalfBrick9" parent="." index="8" instance=ExtResource( 3 )] +position = Vector2( 384, 256 ) + +[node name="HalfBrick10" parent="." index="9" instance=ExtResource( 3 )] +position = Vector2( 320, 224 ) + +[node name="HalfBrick11" parent="." index="10" instance=ExtResource( 3 )] +position = Vector2( 352, 224 ) + +[node name="HalfBrick12" parent="." index="11" instance=ExtResource( 3 )] +position = Vector2( 288, 192 ) + +[node name="HalfBrick13" parent="." index="12" instance=ExtResource( 3 )] +position = Vector2( 320, 192 ) + +[node name="HalfBrick14" parent="." index="13" instance=ExtResource( 3 )] +position = Vector2( 288, 160 ) + +[node name="HalfBrick15" parent="." index="14" instance=ExtResource( 3 )] +position = Vector2( 320, 160 ) + +[node name="HalfBrick16" parent="." index="15" instance=ExtResource( 3 )] +position = Vector2( 288, 128 ) + +[node name="HalfBrick17" parent="." index="16" instance=ExtResource( 3 )] +position = Vector2( 320, 128 ) + +[node name="HalfBrick18" parent="." index="17" instance=ExtResource( 3 )] +position = Vector2( 352, 128 ) + +[node name="HalfBrick19" parent="." index="18" instance=ExtResource( 3 )] +position = Vector2( 384, 128 ) + +[node name="HalfBrick20" parent="." index="19" instance=ExtResource( 3 )] +position = Vector2( 320, 96 ) + +[node name="HalfBrick21" parent="." index="20" instance=ExtResource( 3 )] +position = Vector2( 352, 96 ) + +[node name="HalfBrick22" parent="." index="21" instance=ExtResource( 3 )] +position = Vector2( 384, 96 ) + +[node name="HalfBrick23" parent="." index="22" instance=ExtResource( 3 )] +position = Vector2( 416, 96 ) + +[node name="HalfBrick24" parent="." index="23" instance=ExtResource( 3 )] +position = Vector2( 416, 128 ) + +[node name="HalfBrick25" parent="." index="24" instance=ExtResource( 3 )] +position = Vector2( 448, 128 ) + +[node name="HalfBrick26" parent="." index="25" instance=ExtResource( 3 )] +position = Vector2( 512, 320 ) + +[node name="HalfBrick27" parent="." index="26" instance=ExtResource( 3 )] +position = Vector2( 544, 320 ) + +[node name="HalfBrick28" parent="." index="27" instance=ExtResource( 3 )] +position = Vector2( 544, 288 ) + +[node name="HalfBrick29" parent="." index="28" instance=ExtResource( 3 )] +position = Vector2( 576, 288 ) + +[node name="HalfBrick30" parent="." index="29" instance=ExtResource( 3 )] +position = Vector2( 576, 256 ) + +[node name="HalfBrick31" parent="." index="30" instance=ExtResource( 3 )] +position = Vector2( 608, 256 ) + +[node name="HalfBrick32" parent="." index="31" instance=ExtResource( 3 )] +position = Vector2( 608, 224 ) + +[node name="HalfBrick33" parent="." index="32" instance=ExtResource( 3 )] +position = Vector2( 640, 224 ) + +[node name="HalfBrick34" parent="." index="33" instance=ExtResource( 3 )] +position = Vector2( 640, 192 ) + +[node name="HalfBrick35" parent="." index="34" instance=ExtResource( 3 )] +position = Vector2( 672, 192 ) + +[node name="HalfBrick36" parent="." index="35" instance=ExtResource( 3 )] +position = Vector2( 640, 160 ) + +[node name="HalfBrick37" parent="." index="36" instance=ExtResource( 3 )] +position = Vector2( 672, 160 ) + +[node name="HalfBrick38" parent="." index="37" instance=ExtResource( 3 )] +position = Vector2( 512, 128 ) + +[node name="HalfBrick39" parent="." index="38" instance=ExtResource( 3 )] +position = Vector2( 544, 128 ) + +[node name="HalfBrick40" parent="." index="39" instance=ExtResource( 3 )] +position = Vector2( 576, 128 ) + +[node name="HalfBrick41" parent="." index="40" instance=ExtResource( 3 )] +position = Vector2( 608, 128 ) + +[node name="HalfBrick42" parent="." index="41" instance=ExtResource( 3 )] +position = Vector2( 544, 96 ) + +[node name="HalfBrick43" parent="." index="42" instance=ExtResource( 3 )] +position = Vector2( 576, 96 ) + +[node name="HalfBrick44" parent="." index="43" instance=ExtResource( 3 )] +position = Vector2( 608, 96 ) + +[node name="HalfBrick45" parent="." index="44" instance=ExtResource( 3 )] +position = Vector2( 640, 96 ) + +[node name="HalfBrick46" parent="." index="45" instance=ExtResource( 3 )] +position = Vector2( 640, 128 ) + +[node name="HalfBrick47" parent="." index="46" instance=ExtResource( 3 )] +position = Vector2( 672, 128 ) + +[node name="HalfBrick48" parent="." index="47" instance=ExtResource( 3 )] +position = Vector2( 512, 352 ) + +[node name="HalfBrick49" parent="." index="48" instance=ExtResource( 3 )] +position = Vector2( 480, 192 ) + +[node name="HalfBrick50" parent="." index="49" instance=ExtResource( 3 )] +position = Vector2( 448, 160 ) + +[node name="HalfBrick51" parent="." index="50" instance=ExtResource( 3 )] +position = Vector2( 480, 160 ) + +[node name="HalfBrick52" parent="." index="51" instance=ExtResource( 3 )] +position = Vector2( 512, 160 ) + +[node name="HalfBrick53" parent="." index="52" instance=ExtResource( 3 )] +position = Vector2( 480, 416 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick54" parent="." index="53" instance=ExtResource( 3 )] +position = Vector2( 448, 384 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick55" parent="." index="54" instance=ExtResource( 3 )] +position = Vector2( 416, 352 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick56" parent="." index="55" instance=ExtResource( 3 )] +position = Vector2( 384, 320 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick57" parent="." index="56" instance=ExtResource( 3 )] +position = Vector2( 352, 288 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick58" parent="." index="57" instance=ExtResource( 3 )] +position = Vector2( 320, 256 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick59" parent="." index="58" instance=ExtResource( 3 )] +position = Vector2( 288, 224 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick60" parent="." index="59" instance=ExtResource( 3 )] +position = Vector2( 256, 192 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick61" parent="." index="60" instance=ExtResource( 3 )] +position = Vector2( 256, 160 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick62" parent="." index="61" instance=ExtResource( 3 )] +position = Vector2( 256, 128 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick63" parent="." index="62" instance=ExtResource( 3 )] +position = Vector2( 288, 96 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick64" parent="." index="63" instance=ExtResource( 3 )] +position = Vector2( 320, 64 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick65" parent="." index="64" instance=ExtResource( 3 )] +position = Vector2( 352, 64 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick66" parent="." index="65" instance=ExtResource( 3 )] +position = Vector2( 384, 64 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick67" parent="." index="66" instance=ExtResource( 3 )] +position = Vector2( 416, 64 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick68" parent="." index="67" instance=ExtResource( 3 )] +position = Vector2( 448, 96 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick69" parent="." index="68" instance=ExtResource( 3 )] +position = Vector2( 480, 128 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick70" parent="." index="69" instance=ExtResource( 3 )] +position = Vector2( 512, 96 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick71" parent="." index="70" instance=ExtResource( 3 )] +position = Vector2( 544, 64 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick72" parent="." index="71" instance=ExtResource( 3 )] +position = Vector2( 576, 64 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick73" parent="." index="72" instance=ExtResource( 3 )] +position = Vector2( 608, 64 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick74" parent="." index="73" instance=ExtResource( 3 )] +position = Vector2( 640, 64 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick75" parent="." index="74" instance=ExtResource( 3 )] +position = Vector2( 672, 96 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick76" parent="." index="75" instance=ExtResource( 3 )] +position = Vector2( 704, 128 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick77" parent="." index="76" instance=ExtResource( 3 )] +position = Vector2( 704, 160 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick78" parent="." index="77" instance=ExtResource( 3 )] +position = Vector2( 704, 192 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick79" parent="." index="78" instance=ExtResource( 3 )] +position = Vector2( 672, 224 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick80" parent="." index="79" instance=ExtResource( 3 )] +position = Vector2( 640, 256 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick81" parent="." index="80" instance=ExtResource( 3 )] +position = Vector2( 608, 288 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick82" parent="." index="81" instance=ExtResource( 3 )] +position = Vector2( 576, 320 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick83" parent="." index="82" instance=ExtResource( 3 )] +position = Vector2( 544, 352 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick84" parent="." index="83" instance=ExtResource( 3 )] +position = Vector2( 512, 384 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick85" parent="." index="84" instance=ExtResource( 3 )] +position = Vector2( 480, 320 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick86" parent="." index="85" instance=ExtResource( 3 )] +position = Vector2( 448, 288 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick87" parent="." index="86" instance=ExtResource( 3 )] +position = Vector2( 480, 288 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick88" parent="." index="87" instance=ExtResource( 3 )] +position = Vector2( 512, 288 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick89" parent="." index="88" instance=ExtResource( 3 )] +position = Vector2( 416, 256 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick90" parent="." index="89" instance=ExtResource( 3 )] +position = Vector2( 448, 256 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick91" parent="." index="90" instance=ExtResource( 3 )] +position = Vector2( 480, 256 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick92" parent="." index="91" instance=ExtResource( 3 )] +position = Vector2( 384, 224 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick93" parent="." index="92" instance=ExtResource( 3 )] +position = Vector2( 416, 224 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick94" parent="." index="93" instance=ExtResource( 3 )] +position = Vector2( 448, 224 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick95" parent="." index="94" instance=ExtResource( 3 )] +position = Vector2( 352, 192 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick96" parent="." index="95" instance=ExtResource( 3 )] +position = Vector2( 384, 192 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick97" parent="." index="96" instance=ExtResource( 3 )] +position = Vector2( 416, 192 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick98" parent="." index="97" instance=ExtResource( 3 )] +position = Vector2( 352, 160 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick99" parent="." index="98" instance=ExtResource( 3 )] +position = Vector2( 384, 160 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick100" parent="." index="99" instance=ExtResource( 3 )] +position = Vector2( 416, 160 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick101" parent="." index="100" instance=ExtResource( 3 )] +position = Vector2( 512, 224 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick102" parent="." index="101" instance=ExtResource( 3 )] +position = Vector2( 544, 224 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick103" parent="." index="102" instance=ExtResource( 3 )] +position = Vector2( 576, 224 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick104" parent="." index="103" instance=ExtResource( 3 )] +position = Vector2( 544, 192 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick105" parent="." index="104" instance=ExtResource( 3 )] +position = Vector2( 576, 192 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick106" parent="." index="105" instance=ExtResource( 3 )] +position = Vector2( 608, 192 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick107" parent="." index="106" instance=ExtResource( 3 )] +position = Vector2( 544, 160 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick108" parent="." index="107" instance=ExtResource( 3 )] +position = Vector2( 576, 160 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick109" parent="." index="108" instance=ExtResource( 3 )] +position = Vector2( 608, 160 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick110" parent="." index="109" instance=ExtResource( 3 )] +position = Vector2( 512, 256 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick111" parent="." index="110" instance=ExtResource( 3 )] +position = Vector2( 544, 256 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick112" parent="." index="111" instance=ExtResource( 3 )] +position = Vector2( 480, 224 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick113" parent="." index="112" instance=ExtResource( 3 )] +position = Vector2( 448, 192 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="HalfBrick114" parent="." index="113" instance=ExtResource( 3 )] +position = Vector2( 512, 192 ) +score = 200 +max_hits = 2 +color = 6 + +[connection signal="brick_broken" from="HalfBrick" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick2" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick3" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick4" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick5" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick6" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick7" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick8" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick9" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick10" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick11" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick12" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick13" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick14" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick15" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick16" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick17" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick18" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick19" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick20" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick21" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick22" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick23" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick24" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick25" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick26" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick27" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick28" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick29" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick30" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick31" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick32" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick33" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick34" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick35" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick36" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick37" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick38" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick39" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick40" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick41" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick42" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick43" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick44" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick45" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick46" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick47" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick48" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick49" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick50" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick51" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick52" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick53" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick54" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick55" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick56" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick57" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick58" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick59" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick60" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick61" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick62" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick63" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick64" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick65" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick66" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick67" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick68" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick69" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick70" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick71" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick72" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick73" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick74" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick75" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick76" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick77" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick78" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick79" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick80" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick81" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick82" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick83" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick84" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick85" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick86" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick87" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick88" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick89" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick90" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick91" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick92" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick93" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick94" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick95" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick96" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick97" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick98" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick99" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick100" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick101" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick102" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick103" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick104" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick105" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick106" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick107" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick108" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick109" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick110" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick111" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick112" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick113" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick114" to="." method="_on_brick_broken"] diff --git a/levels/level_01_05.tscn b/levels/level_01_05.tscn new file mode 100644 index 0000000..668078f --- /dev/null +++ b/levels/level_01_05.tscn @@ -0,0 +1,591 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://levels/base_level.tscn" type="PackedScene" id=1] +[ext_resource path="res://blocks/wall.tscn" type="PackedScene" id=2] +[ext_resource path="res://blocks/brick.tscn" type="PackedScene" id=5] +[ext_resource path="res://blocks/half_brick.tscn" type="PackedScene" id=7] + +[node name="Level_01_05" instance=ExtResource( 1 )] + +[node name="Wall" parent="." index="0" instance=ExtResource( 2 )] +position = Vector2( 64, 576 ) + +[node name="Wall2" parent="." index="1" instance=ExtResource( 2 )] +position = Vector2( 64, 64 ) + +[node name="Wall3" parent="." index="2" instance=ExtResource( 2 )] +position = Vector2( 64, 320 ) + +[node name="Wall4" parent="." index="3" instance=ExtResource( 2 )] +position = Vector2( 64, 96 ) + +[node name="Wall5" parent="." index="4" instance=ExtResource( 2 )] +position = Vector2( 896, 96 ) + +[node name="Wall6" parent="." index="5" instance=ExtResource( 2 )] +position = Vector2( 64, 288 ) + +[node name="Wall7" parent="." index="6" instance=ExtResource( 2 )] +position = Vector2( 896, 64 ) + +[node name="Wall8" parent="." index="7" instance=ExtResource( 2 )] +position = Vector2( 896, 576 ) + +[node name="Wall9" parent="." index="8" instance=ExtResource( 2 )] +position = Vector2( 896, 288 ) + +[node name="Wall10" parent="." index="9" instance=ExtResource( 2 )] +position = Vector2( 64, 544 ) + +[node name="Wall11" parent="." index="10" instance=ExtResource( 2 )] +position = Vector2( 896, 544 ) + +[node name="Wall12" parent="." index="11" instance=ExtResource( 2 )] +position = Vector2( 896, 320 ) + +[node name="HalfBrick" parent="." index="12" instance=ExtResource( 7 )] +position = Vector2( 416, 320 ) +color = 1 + +[node name="HalfBrick2" parent="." index="13" instance=ExtResource( 7 )] +position = Vector2( 576, 320 ) +color = 1 + +[node name="HalfBrick3" parent="." index="14" instance=ExtResource( 7 )] +position = Vector2( 384, 352 ) +color = 1 + +[node name="HalfBrick4" parent="." index="15" instance=ExtResource( 7 )] +position = Vector2( 352, 384 ) +color = 1 + +[node name="HalfBrick5" parent="." index="16" instance=ExtResource( 7 )] +position = Vector2( 320, 416 ) +color = 1 + +[node name="HalfBrick6" parent="." index="17" instance=ExtResource( 7 )] +position = Vector2( 608, 352 ) +color = 1 + +[node name="HalfBrick7" parent="." index="18" instance=ExtResource( 7 )] +position = Vector2( 160, 288 ) +color = 7 + +[node name="HalfBrick8" parent="." index="19" instance=ExtResource( 7 )] +position = Vector2( 192, 256 ) +color = 7 + +[node name="HalfBrick9" parent="." index="20" instance=ExtResource( 7 )] +position = Vector2( 288, 256 ) +color = 7 + +[node name="HalfBrick10" parent="." index="21" instance=ExtResource( 7 )] +position = Vector2( 320, 160 ) +color = 4 + +[node name="HalfBrick11" parent="." index="22" instance=ExtResource( 7 )] +position = Vector2( 352, 128 ) +color = 4 + +[node name="HalfBrick12" parent="." index="23" instance=ExtResource( 7 )] +position = Vector2( 448, 128 ) +color = 4 + +[node name="HalfBrick13" parent="." index="24" instance=ExtResource( 7 )] +position = Vector2( 512, 160 ) +color = 3 + +[node name="HalfBrick14" parent="." index="25" instance=ExtResource( 7 )] +position = Vector2( 544, 128 ) +color = 3 + +[node name="HalfBrick15" parent="." index="26" instance=ExtResource( 7 )] +position = Vector2( 640, 128 ) +color = 3 + +[node name="HalfBrick16" parent="." index="27" instance=ExtResource( 7 )] +position = Vector2( 672, 288 ) +color = 6 + +[node name="HalfBrick17" parent="." index="28" instance=ExtResource( 7 )] +position = Vector2( 704, 256 ) +color = 6 + +[node name="HalfBrick18" parent="." index="29" instance=ExtResource( 7 )] +position = Vector2( 800, 256 ) +color = 6 + +[node name="HalfBrick19" parent="." index="30" instance=ExtResource( 7 )] +position = Vector2( 640, 384 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="HalfBrick20" parent="." index="31" instance=ExtResource( 7 )] +position = Vector2( 672, 416 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="HalfBrick21" parent="." index="32" instance=ExtResource( 7 )] +position = Vector2( 320, 288 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="HalfBrick22" parent="." index="33" instance=ExtResource( 7 )] +position = Vector2( 480, 160 ) +score = 200 +max_hits = 2 +color = 4 + +[node name="HalfBrick23" parent="." index="34" instance=ExtResource( 7 )] +position = Vector2( 672, 160 ) +score = 200 +max_hits = 2 +color = 3 + +[node name="HalfBrick24" parent="." index="35" instance=ExtResource( 7 )] +position = Vector2( 832, 288 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="Brick" parent="." index="36" instance=ExtResource( 5 )] +position = Vector2( 448, 320 ) +color = 1 + +[node name="Brick2" parent="." index="37" instance=ExtResource( 5 )] +position = Vector2( 512, 320 ) +color = 1 + +[node name="Brick3" parent="." index="38" instance=ExtResource( 5 )] +position = Vector2( 416, 352 ) +color = 1 + +[node name="Brick4" parent="." index="39" instance=ExtResource( 5 )] +position = Vector2( 480, 352 ) +color = 1 + +[node name="Brick5" parent="." index="40" instance=ExtResource( 5 )] +position = Vector2( 544, 352 ) +color = 1 + +[node name="Brick6" parent="." index="41" instance=ExtResource( 5 )] +position = Vector2( 512, 384 ) +color = 1 + +[node name="Brick7" parent="." index="42" instance=ExtResource( 5 )] +position = Vector2( 576, 384 ) +color = 1 + +[node name="Brick8" parent="." index="43" instance=ExtResource( 5 )] +position = Vector2( 384, 384 ) +color = 1 + +[node name="Brick9" parent="." index="44" instance=ExtResource( 5 )] +position = Vector2( 448, 384 ) +color = 1 + +[node name="Brick10" parent="." index="45" instance=ExtResource( 5 )] +position = Vector2( 480, 416 ) +color = 1 + +[node name="Brick11" parent="." index="46" instance=ExtResource( 5 )] +position = Vector2( 544, 416 ) +color = 1 + +[node name="Brick12" parent="." index="47" instance=ExtResource( 5 )] +position = Vector2( 352, 416 ) +color = 1 + +[node name="Brick13" parent="." index="48" instance=ExtResource( 5 )] +position = Vector2( 416, 416 ) +color = 1 + +[node name="Brick14" parent="." index="49" instance=ExtResource( 5 )] +position = Vector2( 192, 224 ) +color = 7 + +[node name="Brick15" parent="." index="50" instance=ExtResource( 5 )] +position = Vector2( 256, 224 ) +color = 7 + +[node name="Brick21" parent="." index="51" instance=ExtResource( 5 )] +position = Vector2( 224, 192 ) +color = 7 + +[node name="Brick16" parent="." index="52" instance=ExtResource( 5 )] +position = Vector2( 160, 320 ) +color = 7 + +[node name="Brick17" parent="." index="53" instance=ExtResource( 5 )] +position = Vector2( 224, 320 ) +color = 7 + +[node name="Brick18" parent="." index="54" instance=ExtResource( 5 )] +position = Vector2( 192, 288 ) +color = 7 + +[node name="Brick19" parent="." index="55" instance=ExtResource( 5 )] +position = Vector2( 256, 288 ) +color = 7 + +[node name="Brick20" parent="." index="56" instance=ExtResource( 5 )] +position = Vector2( 224, 256 ) +color = 7 + +[node name="Brick22" parent="." index="57" instance=ExtResource( 5 )] +position = Vector2( 352, 96 ) +color = 4 + +[node name="Brick23" parent="." index="58" instance=ExtResource( 5 )] +position = Vector2( 416, 96 ) +color = 4 + +[node name="Brick24" parent="." index="59" instance=ExtResource( 5 )] +position = Vector2( 384, 64 ) +color = 4 + +[node name="Brick25" parent="." index="60" instance=ExtResource( 5 )] +position = Vector2( 320, 192 ) +color = 4 + +[node name="Brick26" parent="." index="61" instance=ExtResource( 5 )] +position = Vector2( 384, 192 ) +color = 4 + +[node name="Brick27" parent="." index="62" instance=ExtResource( 5 )] +position = Vector2( 352, 160 ) +color = 4 + +[node name="Brick28" parent="." index="63" instance=ExtResource( 5 )] +position = Vector2( 416, 160 ) +color = 4 + +[node name="Brick29" parent="." index="64" instance=ExtResource( 5 )] +position = Vector2( 384, 128 ) +color = 4 + +[node name="Brick30" parent="." index="65" instance=ExtResource( 5 )] +position = Vector2( 544, 96 ) +color = 3 + +[node name="Brick31" parent="." index="66" instance=ExtResource( 5 )] +position = Vector2( 608, 96 ) +color = 3 + +[node name="Brick32" parent="." index="67" instance=ExtResource( 5 )] +position = Vector2( 576, 64 ) +color = 3 + +[node name="Brick33" parent="." index="68" instance=ExtResource( 5 )] +position = Vector2( 512, 192 ) +color = 3 + +[node name="Brick34" parent="." index="69" instance=ExtResource( 5 )] +position = Vector2( 576, 192 ) +color = 3 + +[node name="Brick35" parent="." index="70" instance=ExtResource( 5 )] +position = Vector2( 544, 160 ) +color = 3 + +[node name="Brick36" parent="." index="71" instance=ExtResource( 5 )] +position = Vector2( 608, 160 ) +color = 3 + +[node name="Brick37" parent="." index="72" instance=ExtResource( 5 )] +position = Vector2( 576, 128 ) +color = 3 + +[node name="Brick38" parent="." index="73" instance=ExtResource( 5 )] +position = Vector2( 704, 224 ) +color = 6 + +[node name="Brick39" parent="." index="74" instance=ExtResource( 5 )] +position = Vector2( 768, 224 ) +color = 6 + +[node name="Brick40" parent="." index="75" instance=ExtResource( 5 )] +position = Vector2( 736, 192 ) +color = 6 + +[node name="Brick41" parent="." index="76" instance=ExtResource( 5 )] +position = Vector2( 672, 320 ) +color = 6 + +[node name="Brick42" parent="." index="77" instance=ExtResource( 5 )] +position = Vector2( 736, 320 ) +color = 6 + +[node name="Brick43" parent="." index="78" instance=ExtResource( 5 )] +position = Vector2( 704, 288 ) +color = 6 + +[node name="Brick44" parent="." index="79" instance=ExtResource( 5 )] +position = Vector2( 768, 288 ) +color = 6 + +[node name="Brick45" parent="." index="80" instance=ExtResource( 5 )] +position = Vector2( 736, 256 ) +color = 6 + +[node name="Brick46" parent="." index="81" instance=ExtResource( 5 )] +position = Vector2( 320, 448 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="Brick47" parent="." index="82" instance=ExtResource( 5 )] +position = Vector2( 352, 480 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="Brick48" parent="." index="83" instance=ExtResource( 5 )] +position = Vector2( 416, 480 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="Brick49" parent="." index="84" instance=ExtResource( 5 )] +position = Vector2( 544, 480 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="Brick50" parent="." index="85" instance=ExtResource( 5 )] +position = Vector2( 608, 480 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="Brick51" parent="." index="86" instance=ExtResource( 5 )] +position = Vector2( 384, 448 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="Brick52" parent="." index="87" instance=ExtResource( 5 )] +position = Vector2( 448, 448 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="Brick53" parent="." index="88" instance=ExtResource( 5 )] +position = Vector2( 512, 448 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="Brick54" parent="." index="89" instance=ExtResource( 5 )] +position = Vector2( 576, 448 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="Brick55" parent="." index="90" instance=ExtResource( 5 )] +position = Vector2( 640, 448 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="Brick56" parent="." index="91" instance=ExtResource( 5 )] +position = Vector2( 608, 416 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="Brick57" parent="." index="92" instance=ExtResource( 5 )] +position = Vector2( 192, 352 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="Brick58" parent="." index="93" instance=ExtResource( 5 )] +position = Vector2( 256, 352 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="Brick59" parent="." index="94" instance=ExtResource( 5 )] +position = Vector2( 224, 384 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="Brick60" parent="." index="95" instance=ExtResource( 5 )] +position = Vector2( 288, 320 ) +score = 200 +max_hits = 2 +color = 7 + +[node name="Brick61" parent="." index="96" instance=ExtResource( 5 )] +position = Vector2( 352, 224 ) +score = 200 +max_hits = 2 +color = 4 + +[node name="Brick62" parent="." index="97" instance=ExtResource( 5 )] +position = Vector2( 416, 224 ) +score = 200 +max_hits = 2 +color = 4 + +[node name="Brick63" parent="." index="98" instance=ExtResource( 5 )] +position = Vector2( 384, 256 ) +score = 200 +max_hits = 2 +color = 4 + +[node name="Brick64" parent="." index="99" instance=ExtResource( 5 )] +position = Vector2( 448, 192 ) +score = 200 +max_hits = 2 +color = 4 + +[node name="Brick65" parent="." index="100" instance=ExtResource( 5 )] +position = Vector2( 544, 224 ) +score = 200 +max_hits = 2 +color = 3 + +[node name="Brick66" parent="." index="101" instance=ExtResource( 5 )] +position = Vector2( 608, 224 ) +score = 200 +max_hits = 2 +color = 3 + +[node name="Brick67" parent="." index="102" instance=ExtResource( 5 )] +position = Vector2( 576, 256 ) +score = 200 +max_hits = 2 +color = 3 + +[node name="Brick68" parent="." index="103" instance=ExtResource( 5 )] +position = Vector2( 640, 192 ) +score = 200 +max_hits = 2 +color = 3 + +[node name="Brick69" parent="." index="104" instance=ExtResource( 5 )] +position = Vector2( 704, 352 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="Brick70" parent="." index="105" instance=ExtResource( 5 )] +position = Vector2( 768, 352 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="Brick71" parent="." index="106" instance=ExtResource( 5 )] +position = Vector2( 736, 384 ) +score = 200 +max_hits = 2 +color = 6 + +[node name="Brick72" parent="." index="107" instance=ExtResource( 5 )] +position = Vector2( 800, 320 ) +score = 200 +max_hits = 2 +color = 6 + +[connection signal="brick_broken" from="HalfBrick" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick2" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick3" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick4" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick5" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick6" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick7" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick8" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick9" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick10" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick11" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick12" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick13" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick14" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick15" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick16" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick17" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick18" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick19" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick20" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick21" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick22" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick23" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="HalfBrick24" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick2" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick3" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick4" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick5" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick6" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick7" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick8" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick9" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick10" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick11" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick12" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick13" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick14" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick15" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick21" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick16" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick17" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick18" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick19" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick20" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick22" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick23" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick24" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick25" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick26" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick27" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick28" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick29" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick30" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick31" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick32" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick33" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick34" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick35" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick36" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick37" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick38" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick39" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick40" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick41" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick42" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick43" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick44" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick45" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick46" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick47" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick48" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick49" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick50" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick51" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick52" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick53" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick54" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick55" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick56" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick57" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick58" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick59" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick60" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick61" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick62" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick63" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick64" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick65" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick66" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick67" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick68" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick69" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick70" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick71" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Brick72" to="." method="_on_brick_broken"] diff --git a/levels/level_02_01.tscn b/levels/level_02_01.tscn new file mode 100644 index 0000000..6361b14 --- /dev/null +++ b/levels/level_02_01.tscn @@ -0,0 +1,361 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://blocks/beehive.tscn" type="PackedScene" id=1] +[ext_resource path="res://levels/base_level.tscn" type="PackedScene" id=2] + +[node name="Level_02_01" instance=ExtResource( 2 )] + +[node name="ABrick" parent="." index="0" instance=ExtResource( 1 )] +position = Vector2( 128, 208 ) +score = 400 +max_hits = 4 + +[node name="ABrick2" parent="." index="1" instance=ExtResource( 1 )] +position = Vector2( 160, 256 ) +score = 400 +max_hits = 4 + +[node name="ABrick3" parent="." index="2" instance=ExtResource( 1 )] +position = Vector2( 224, 256 ) +score = 400 +max_hits = 4 + +[node name="ABrick4" parent="." index="3" instance=ExtResource( 1 )] +position = Vector2( 192, 224 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick5" parent="." index="4" instance=ExtResource( 1 )] +position = Vector2( 208, 200 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick6" parent="." index="5" instance=ExtResource( 1 )] +position = Vector2( 176, 200 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick8" parent="." index="6" instance=ExtResource( 1 )] +position = Vector2( 256, 208 ) +score = 400 +max_hits = 4 + +[node name="ABrick9" parent="." index="7" instance=ExtResource( 1 )] +position = Vector2( 160, 160 ) +score = 400 +max_hits = 4 + +[node name="ABrick10" parent="." index="8" instance=ExtResource( 1 )] +position = Vector2( 224, 160 ) +score = 400 +max_hits = 4 + +[node name="ABrick7" parent="." index="9" instance=ExtResource( 1 )] +position = Vector2( 288, 256 ) +score = 400 +max_hits = 4 + +[node name="ABrick11" parent="." index="10" instance=ExtResource( 1 )] +position = Vector2( 352, 256 ) +score = 400 +max_hits = 4 + +[node name="ABrick12" parent="." index="11" instance=ExtResource( 1 )] +position = Vector2( 320, 192 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick13" parent="." index="12" instance=ExtResource( 1 )] +position = Vector2( 336, 216 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick14" parent="." index="13" instance=ExtResource( 1 )] +position = Vector2( 304, 216 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick15" parent="." index="14" instance=ExtResource( 1 )] +position = Vector2( 384, 208 ) +score = 400 +max_hits = 4 + +[node name="ABrick16" parent="." index="15" instance=ExtResource( 1 )] +position = Vector2( 288, 160 ) +score = 400 +max_hits = 4 + +[node name="ABrick17" parent="." index="16" instance=ExtResource( 1 )] +position = Vector2( 352, 160 ) +score = 400 +max_hits = 4 + +[node name="ABrick18" parent="." index="17" instance=ExtResource( 1 )] +position = Vector2( 416, 256 ) +score = 400 +max_hits = 4 + +[node name="ABrick19" parent="." index="18" instance=ExtResource( 1 )] +position = Vector2( 480, 256 ) +score = 400 +max_hits = 4 + +[node name="ABrick20" parent="." index="19" instance=ExtResource( 1 )] +position = Vector2( 448, 224 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick21" parent="." index="20" instance=ExtResource( 1 )] +position = Vector2( 464, 200 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick22" parent="." index="21" instance=ExtResource( 1 )] +position = Vector2( 432, 200 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick23" parent="." index="22" instance=ExtResource( 1 )] +position = Vector2( 512, 208 ) +score = 400 +max_hits = 4 + +[node name="ABrick24" parent="." index="23" instance=ExtResource( 1 )] +position = Vector2( 416, 160 ) +score = 400 +max_hits = 4 + +[node name="ABrick25" parent="." index="24" instance=ExtResource( 1 )] +position = Vector2( 480, 160 ) +score = 400 +max_hits = 4 + +[node name="ABrick26" parent="." index="25" instance=ExtResource( 1 )] +position = Vector2( 544, 256 ) +score = 400 +max_hits = 4 + +[node name="ABrick27" parent="." index="26" instance=ExtResource( 1 )] +position = Vector2( 608, 256 ) +score = 400 +max_hits = 4 + +[node name="ABrick28" parent="." index="27" instance=ExtResource( 1 )] +position = Vector2( 576, 224 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick29" parent="." index="28" instance=ExtResource( 1 )] +position = Vector2( 592, 200 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick30" parent="." index="29" instance=ExtResource( 1 )] +position = Vector2( 560, 200 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick31" parent="." index="30" instance=ExtResource( 1 )] +position = Vector2( 640, 208 ) +score = 400 +max_hits = 4 + +[node name="ABrick32" parent="." index="31" instance=ExtResource( 1 )] +position = Vector2( 544, 160 ) +score = 400 +max_hits = 4 + +[node name="ABrick33" parent="." index="32" instance=ExtResource( 1 )] +position = Vector2( 608, 160 ) +score = 400 +max_hits = 4 + +[node name="ABrick34" parent="." index="33" instance=ExtResource( 1 )] +position = Vector2( 672, 256 ) +score = 400 +max_hits = 4 + +[node name="ABrick35" parent="." index="34" instance=ExtResource( 1 )] +position = Vector2( 736, 256 ) +score = 400 +max_hits = 4 + +[node name="ABrick36" parent="." index="35" instance=ExtResource( 1 )] +position = Vector2( 704, 192 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick37" parent="." index="36" instance=ExtResource( 1 )] +position = Vector2( 720, 216 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick38" parent="." index="37" instance=ExtResource( 1 )] +position = Vector2( 688, 216 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick39" parent="." index="38" instance=ExtResource( 1 )] +position = Vector2( 768, 208 ) +score = 400 +max_hits = 4 + +[node name="ABrick40" parent="." index="39" instance=ExtResource( 1 )] +position = Vector2( 672, 160 ) +score = 400 +max_hits = 4 + +[node name="ABrick41" parent="." index="40" instance=ExtResource( 1 )] +position = Vector2( 736, 160 ) +score = 400 +max_hits = 4 + +[node name="ABrick42" parent="." index="41" instance=ExtResource( 1 )] +position = Vector2( 800, 256 ) +score = 400 +max_hits = 4 + +[node name="ABrick43" parent="." index="42" instance=ExtResource( 1 )] +position = Vector2( 864, 256 ) +score = 400 +max_hits = 4 + +[node name="ABrick44" parent="." index="43" instance=ExtResource( 1 )] +position = Vector2( 832, 224 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick45" parent="." index="44" instance=ExtResource( 1 )] +position = Vector2( 848, 200 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick46" parent="." index="45" instance=ExtResource( 1 )] +position = Vector2( 816, 200 ) +scale = Vector2( 0.5, 0.5 ) +score = 200 +max_hits = 2 +color = 1 + +[node name="ABrick47" parent="." index="46" instance=ExtResource( 1 )] +position = Vector2( 896, 208 ) +score = 400 +max_hits = 4 + +[node name="ABrick48" parent="." index="47" instance=ExtResource( 1 )] +position = Vector2( 800, 160 ) +score = 400 +max_hits = 4 + +[node name="ABrick49" parent="." index="48" instance=ExtResource( 1 )] +position = Vector2( 864, 160 ) +score = 400 +max_hits = 4 + +[node name="ABrick50" parent="." index="49" instance=ExtResource( 1 )] +position = Vector2( 928, 160 ) +score = 400 +max_hits = 4 + +[node name="ABrick51" parent="." index="50" instance=ExtResource( 1 )] +position = Vector2( 928, 256 ) +score = 400 +max_hits = 4 + +[node name="ABrick52" parent="." index="51" instance=ExtResource( 1 )] +position = Vector2( 96, 160 ) +score = 400 +max_hits = 4 + +[node name="ABrick53" parent="." index="52" instance=ExtResource( 1 )] +position = Vector2( 96, 256 ) +score = 400 +max_hits = 4 + +[connection signal="brick_broken" from="ABrick" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick2" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick3" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick4" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick5" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick6" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick8" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick9" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick10" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick7" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick11" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick12" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick13" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick14" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick15" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick16" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick17" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick18" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick19" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick20" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick21" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick22" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick23" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick24" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick25" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick26" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick27" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick28" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick29" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick30" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick31" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick32" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick33" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick34" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick35" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick36" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick37" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick38" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick39" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick40" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick41" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick42" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick43" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick44" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick45" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick46" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick47" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick48" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick49" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick50" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick51" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick52" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="ABrick53" to="." method="_on_brick_broken"] diff --git a/levels/level_02_02.tscn b/levels/level_02_02.tscn new file mode 100644 index 0000000..a73ed58 --- /dev/null +++ b/levels/level_02_02.tscn @@ -0,0 +1,242 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://levels/base_level.tscn" type="PackedScene" id=1] +[ext_resource path="res://blocks/beehive.tscn" type="PackedScene" id=2] +[ext_resource path="res://blocks/leaf.tscn" type="PackedScene" id=3] + +[node name="Level_02_02" instance=ExtResource( 1 )] + +[node name="Flower" type="Node" parent="." index="0"] + +[node name="Leaf7" parent="Flower" index="0" instance=ExtResource( 3 )] +position = Vector2( 800, 256 ) +color = 1 + +[node name="Leaf8" parent="Flower" index="1" instance=ExtResource( 3 )] +position = Vector2( 800, 256 ) +rotation = 1.0472 +color = 1 + +[node name="Leaf9" parent="Flower" index="2" instance=ExtResource( 3 )] +position = Vector2( 800, 256 ) +rotation = 2.0944 +color = 1 + +[node name="Leaf10" parent="Flower" index="3" instance=ExtResource( 3 )] +position = Vector2( 800, 256 ) +rotation = -3.14159 +color = 1 + +[node name="Leaf11" parent="Flower" index="4" instance=ExtResource( 3 )] +position = Vector2( 800, 256 ) +rotation = -2.09439 +color = 1 + +[node name="Leaf12" parent="Flower" index="5" instance=ExtResource( 3 )] +position = Vector2( 800, 256 ) +rotation = -1.0472 +color = 1 + +[node name="Leaf" parent="Flower" index="6" instance=ExtResource( 3 )] +position = Vector2( 800, 256 ) +rotation = 0.523599 +color = 1 + +[node name="Leaf2" parent="Flower" index="7" instance=ExtResource( 3 )] +position = Vector2( 800, 256 ) +rotation = 1.5708 +color = 1 + +[node name="Leaf3" parent="Flower" index="8" instance=ExtResource( 3 )] +position = Vector2( 800, 256 ) +rotation = 2.61799 +color = 1 + +[node name="Leaf4" parent="Flower" index="9" instance=ExtResource( 3 )] +position = Vector2( 800, 256 ) +rotation = -2.61799 +color = 1 + +[node name="Leaf5" parent="Flower" index="10" instance=ExtResource( 3 )] +position = Vector2( 800, 256 ) +rotation = -1.5708 +color = 1 + +[node name="Leaf6" parent="Flower" index="11" instance=ExtResource( 3 )] +position = Vector2( 800, 256 ) +rotation = -0.523599 +color = 1 + +[node name="Beehive" parent="Flower" index="12" instance=ExtResource( 2 )] +position = Vector2( 800, 256 ) +scale = Vector2( 0.87, 1 ) + +[node name="Flower2" type="Node" parent="." index="1"] + +[node name="Leaf7" parent="Flower2" index="0" instance=ExtResource( 3 )] +position = Vector2( 512, 320 ) +color = 1 + +[node name="Leaf8" parent="Flower2" index="1" instance=ExtResource( 3 )] +position = Vector2( 512, 320 ) +rotation = 1.0472 +color = 1 + +[node name="Leaf9" parent="Flower2" index="2" instance=ExtResource( 3 )] +position = Vector2( 512, 320 ) +rotation = 2.0944 +color = 1 + +[node name="Leaf10" parent="Flower2" index="3" instance=ExtResource( 3 )] +position = Vector2( 512, 320 ) +rotation = -3.14159 +color = 1 + +[node name="Leaf11" parent="Flower2" index="4" instance=ExtResource( 3 )] +position = Vector2( 512, 320 ) +rotation = -2.09439 +color = 1 + +[node name="Leaf12" parent="Flower2" index="5" instance=ExtResource( 3 )] +position = Vector2( 512, 320 ) +rotation = -1.0472 +color = 1 + +[node name="Leaf" parent="Flower2" index="6" instance=ExtResource( 3 )] +position = Vector2( 512, 320 ) +rotation = 0.523599 +color = 1 + +[node name="Leaf2" parent="Flower2" index="7" instance=ExtResource( 3 )] +position = Vector2( 512, 320 ) +rotation = 1.5708 +color = 1 + +[node name="Leaf3" parent="Flower2" index="8" instance=ExtResource( 3 )] +position = Vector2( 512, 320 ) +rotation = 2.61799 +color = 1 + +[node name="Leaf4" parent="Flower2" index="9" instance=ExtResource( 3 )] +position = Vector2( 512, 320 ) +rotation = -2.61799 +color = 1 + +[node name="Leaf5" parent="Flower2" index="10" instance=ExtResource( 3 )] +position = Vector2( 512, 320 ) +rotation = -1.5708 +color = 1 + +[node name="Leaf6" parent="Flower2" index="11" instance=ExtResource( 3 )] +position = Vector2( 512, 320 ) +rotation = -0.523599 +color = 1 + +[node name="Beehive" parent="Flower2" index="12" instance=ExtResource( 2 )] +position = Vector2( 512, 320 ) +scale = Vector2( 0.87, 1 ) + +[node name="Flower3" type="Node" parent="." index="2"] + +[node name="Leaf7" parent="Flower3" index="0" instance=ExtResource( 3 )] +position = Vector2( 224, 256 ) +color = 1 + +[node name="Leaf8" parent="Flower3" index="1" instance=ExtResource( 3 )] +position = Vector2( 224, 256 ) +rotation = 1.0472 +color = 1 + +[node name="Leaf9" parent="Flower3" index="2" instance=ExtResource( 3 )] +position = Vector2( 224, 256 ) +rotation = 2.0944 +color = 1 + +[node name="Leaf10" parent="Flower3" index="3" instance=ExtResource( 3 )] +position = Vector2( 224, 256 ) +rotation = -3.14159 +color = 1 + +[node name="Leaf11" parent="Flower3" index="4" instance=ExtResource( 3 )] +position = Vector2( 224, 256 ) +rotation = -2.09439 +color = 1 + +[node name="Leaf12" parent="Flower3" index="5" instance=ExtResource( 3 )] +position = Vector2( 224, 256 ) +rotation = -1.0472 +color = 1 + +[node name="Leaf" parent="Flower3" index="6" instance=ExtResource( 3 )] +position = Vector2( 224, 256 ) +rotation = 0.523599 +color = 1 + +[node name="Leaf2" parent="Flower3" index="7" instance=ExtResource( 3 )] +position = Vector2( 224, 256 ) +rotation = 1.5708 +color = 1 + +[node name="Leaf3" parent="Flower3" index="8" instance=ExtResource( 3 )] +position = Vector2( 224, 256 ) +rotation = 2.61799 +color = 1 + +[node name="Leaf4" parent="Flower3" index="9" instance=ExtResource( 3 )] +position = Vector2( 224, 256 ) +rotation = -2.61799 +color = 1 + +[node name="Leaf5" parent="Flower3" index="10" instance=ExtResource( 3 )] +position = Vector2( 224, 256 ) +rotation = -1.5708 +color = 1 + +[node name="Leaf6" parent="Flower3" index="11" instance=ExtResource( 3 )] +position = Vector2( 224, 256 ) +rotation = -0.523599 +color = 1 + +[node name="Beehive" parent="Flower3" index="12" instance=ExtResource( 2 )] +position = Vector2( 224, 256 ) +scale = Vector2( 0.87, 1 ) + +[connection signal="brick_broken" from="Flower/Leaf7" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower/Leaf8" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower/Leaf9" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower/Leaf10" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower/Leaf11" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower/Leaf12" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower/Leaf" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower/Leaf2" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower/Leaf3" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower/Leaf4" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower/Leaf5" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower/Leaf6" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower/Beehive" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower2/Leaf7" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower2/Leaf8" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower2/Leaf9" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower2/Leaf10" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower2/Leaf11" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower2/Leaf12" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower2/Leaf" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower2/Leaf2" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower2/Leaf3" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower2/Leaf4" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower2/Leaf5" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower2/Leaf6" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower2/Beehive" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower3/Leaf7" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower3/Leaf8" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower3/Leaf9" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower3/Leaf10" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower3/Leaf11" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower3/Leaf12" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower3/Leaf" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower3/Leaf2" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower3/Leaf3" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower3/Leaf4" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower3/Leaf5" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower3/Leaf6" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Flower3/Beehive" to="." method="_on_brick_broken"] diff --git a/levels/level_02_03.tscn b/levels/level_02_03.tscn new file mode 100644 index 0000000..8efeadc --- /dev/null +++ b/levels/level_02_03.tscn @@ -0,0 +1,360 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://levels/base_level.tscn" type="PackedScene" id=1] +[ext_resource path="res://empty_level/empty_level.tscn" type="PackedScene" id=3] +[ext_resource path="res://blocks/leaf.tscn" type="PackedScene" id=4] + +[node name="Level_02_03" instance=ExtResource( 1 )] + +[node name="EmptyLevel" parent="." index="0" instance=ExtResource( 3 )] + +[node name="Leaf45" parent="." index="1" instance=ExtResource( 4 )] +position = Vector2( 64, 368 ) +rotation = -0.174533 + +[node name="Leaf75" parent="." index="2" instance=ExtResource( 4 )] +position = Vector2( 64, 336 ) +rotation = -0.261799 + +[node name="Leaf105" parent="." index="3" instance=ExtResource( 4 )] +position = Vector2( 64, 304 ) +rotation = -0.349066 + +[node name="Leaf107" parent="." index="4" instance=ExtResource( 4 )] +position = Vector2( 64, 272 ) +rotation = -0.436332 + +[node name="Leaf15" parent="." index="5" instance=ExtResource( 4 )] +position = Vector2( 64, 240 ) +rotation = -0.523599 + +[node name="Leaf30" parent="." index="6" instance=ExtResource( 4 )] +position = Vector2( 64, 208 ) +rotation = -0.523599 + +[node name="Leaf60" parent="." index="7" instance=ExtResource( 4 )] +position = Vector2( 64, 176 ) +rotation = -0.523599 + +[node name="Leaf90" parent="." index="8" instance=ExtResource( 4 )] +position = Vector2( 64, 144 ) +rotation = -0.523599 + +[node name="Leaf106" parent="." index="9" instance=ExtResource( 4 )] +position = Vector2( 64, 112 ) +rotation = -0.523599 + +[node name="Leaf111" parent="." index="10" instance=ExtResource( 4 )] +position = Vector2( 64, 80 ) +rotation = -0.523599 + +[node name="Leaf109" parent="." index="11" instance=ExtResource( 4 )] +position = Vector2( 64, 48 ) +rotation = -0.523599 + +[node name="Leaf113" parent="." index="12" instance=ExtResource( 4 )] +position = Vector2( 224, 304 ) + +[node name="Leaf114" parent="." index="13" instance=ExtResource( 4 )] +position = Vector2( 224, 272 ) +rotation = 0.174533 + +[node name="Leaf115" parent="." index="14" instance=ExtResource( 4 )] +position = Vector2( 224, 240 ) +rotation = -0.174533 + +[node name="Leaf116" parent="." index="15" instance=ExtResource( 4 )] +position = Vector2( 224, 208 ) +rotation = 0.261799 + +[node name="Leaf117" parent="." index="16" instance=ExtResource( 4 )] +position = Vector2( 224, 176 ) +rotation = -0.261799 + +[node name="Leaf118" parent="." index="17" instance=ExtResource( 4 )] +position = Vector2( 224, 152 ) +rotation = 0.349066 + +[node name="Leaf119" parent="." index="18" instance=ExtResource( 4 )] +position = Vector2( 224, 128 ) +rotation = -0.349066 + +[node name="Leaf120" parent="." index="19" instance=ExtResource( 4 )] +position = Vector2( 224, 104 ) +rotation = 0.349066 + +[node name="Leaf121" parent="." index="20" instance=ExtResource( 4 )] +position = Vector2( 224, 88 ) +rotation = -0.436332 + +[node name="Leaf122" parent="." index="21" instance=ExtResource( 4 )] +position = Vector2( 224, 72 ) +rotation = 0.436332 + +[node name="Leaf123" parent="." index="22" instance=ExtResource( 4 )] +position = Vector2( 224, 56 ) +rotation = -0.523599 + +[node name="Leaf124" parent="." index="23" instance=ExtResource( 4 )] +position = Vector2( 224, 48 ) +rotation = 0.523599 + +[node name="Leaf56" parent="." index="24" instance=ExtResource( 4 )] +position = Vector2( 960, 368 ) +rotation = 0.174533 + +[node name="Leaf88" parent="." index="25" instance=ExtResource( 4 )] +position = Vector2( 960, 336 ) +rotation = 0.261799 + +[node name="Leaf112" parent="." index="26" instance=ExtResource( 4 )] +position = Vector2( 960, 304 ) +rotation = 0.349066 + +[node name="Leaf125" parent="." index="27" instance=ExtResource( 4 )] +position = Vector2( 960, 272 ) +rotation = 0.436332 + +[node name="Leaf26" parent="." index="28" instance=ExtResource( 4 )] +position = Vector2( 960, 240 ) +rotation = 0.523599 + +[node name="Leaf40" parent="." index="29" instance=ExtResource( 4 )] +position = Vector2( 960, 208 ) +rotation = 0.523599 + +[node name="Leaf72" parent="." index="30" instance=ExtResource( 4 )] +position = Vector2( 960, 176 ) +rotation = 0.523599 + +[node name="Leaf91" parent="." index="31" instance=ExtResource( 4 )] +position = Vector2( 960, 144 ) +rotation = 0.523599 + +[node name="Leaf126" parent="." index="32" instance=ExtResource( 4 )] +position = Vector2( 960, 112 ) +rotation = 0.523599 + +[node name="Leaf108" parent="." index="33" instance=ExtResource( 4 )] +position = Vector2( 960, 80 ) +rotation = 0.523599 + +[node name="Leaf110" parent="." index="34" instance=ExtResource( 4 )] +position = Vector2( 960, 48 ) +rotation = 0.523599 + +[node name="Leaf127" parent="." index="35" instance=ExtResource( 4 )] +position = Vector2( 800, 304 ) + +[node name="Leaf128" parent="." index="36" instance=ExtResource( 4 )] +position = Vector2( 800, 272 ) +rotation = -0.174533 + +[node name="Leaf129" parent="." index="37" instance=ExtResource( 4 )] +position = Vector2( 800, 240 ) +rotation = 0.174533 + +[node name="Leaf130" parent="." index="38" instance=ExtResource( 4 )] +position = Vector2( 800, 208 ) +rotation = -0.261799 + +[node name="Leaf131" parent="." index="39" instance=ExtResource( 4 )] +position = Vector2( 800, 176 ) +rotation = 0.261799 + +[node name="Leaf132" parent="." index="40" instance=ExtResource( 4 )] +position = Vector2( 800, 152 ) +rotation = -0.349066 + +[node name="Leaf133" parent="." index="41" instance=ExtResource( 4 )] +position = Vector2( 800, 128 ) +rotation = 0.349066 + +[node name="Leaf134" parent="." index="42" instance=ExtResource( 4 )] +position = Vector2( 800, 104 ) +rotation = -0.349066 + +[node name="Leaf135" parent="." index="43" instance=ExtResource( 4 )] +position = Vector2( 800, 88 ) +rotation = 0.436332 + +[node name="Leaf136" parent="." index="44" instance=ExtResource( 4 )] +position = Vector2( 800, 72 ) +rotation = -0.436332 + +[node name="Leaf137" parent="." index="45" instance=ExtResource( 4 )] +position = Vector2( 800, 56 ) +rotation = 0.523599 + +[node name="Leaf138" parent="." index="46" instance=ExtResource( 4 )] +position = Vector2( 800, 48 ) +rotation = -0.523599 + +[node name="Leaf139" parent="." index="47" instance=ExtResource( 4 )] +position = Vector2( 384, 272 ) + +[node name="Leaf140" parent="." index="48" instance=ExtResource( 4 )] +position = Vector2( 384, 240 ) +rotation = 0.174533 + +[node name="Leaf141" parent="." index="49" instance=ExtResource( 4 )] +position = Vector2( 384, 208 ) +rotation = -0.174533 + +[node name="Leaf142" parent="." index="50" instance=ExtResource( 4 )] +position = Vector2( 384, 176 ) +rotation = 0.261799 + +[node name="Leaf143" parent="." index="51" instance=ExtResource( 4 )] +position = Vector2( 384, 144 ) +rotation = -0.261799 + +[node name="Leaf144" parent="." index="52" instance=ExtResource( 4 )] +position = Vector2( 384, 112 ) +rotation = 0.349066 + +[node name="Leaf145" parent="." index="53" instance=ExtResource( 4 )] +position = Vector2( 384, 88 ) +rotation = -0.349066 + +[node name="Leaf146" parent="." index="54" instance=ExtResource( 4 )] +position = Vector2( 384, 72 ) +rotation = 0.349066 + +[node name="Leaf147" parent="." index="55" instance=ExtResource( 4 )] +position = Vector2( 384, 56 ) +rotation = -0.436332 + +[node name="Leaf148" parent="." index="56" instance=ExtResource( 4 )] +position = Vector2( 384, 48 ) +rotation = 0.436332 + +[node name="Leaf151" parent="." index="57" instance=ExtResource( 4 )] +position = Vector2( 640, 272 ) + +[node name="Leaf152" parent="." index="58" instance=ExtResource( 4 )] +position = Vector2( 640, 240 ) +rotation = -0.174533 + +[node name="Leaf153" parent="." index="59" instance=ExtResource( 4 )] +position = Vector2( 640, 208 ) +rotation = 0.174533 + +[node name="Leaf154" parent="." index="60" instance=ExtResource( 4 )] +position = Vector2( 640, 176 ) +rotation = -0.261799 + +[node name="Leaf155" parent="." index="61" instance=ExtResource( 4 )] +position = Vector2( 640, 144 ) +rotation = 0.261799 + +[node name="Leaf156" parent="." index="62" instance=ExtResource( 4 )] +position = Vector2( 640, 112 ) +rotation = -0.349066 + +[node name="Leaf157" parent="." index="63" instance=ExtResource( 4 )] +position = Vector2( 640, 88 ) +rotation = 0.349066 + +[node name="Leaf158" parent="." index="64" instance=ExtResource( 4 )] +position = Vector2( 640, 72 ) +rotation = -0.349066 + +[node name="Leaf159" parent="." index="65" instance=ExtResource( 4 )] +position = Vector2( 640, 56 ) +rotation = 0.436332 + +[node name="Leaf160" parent="." index="66" instance=ExtResource( 4 )] +position = Vector2( 640, 48 ) +rotation = -0.436332 + +[node name="Leaf163" parent="." index="67" instance=ExtResource( 4 )] +position = Vector2( 512, 104 ) + +[node name="Leaf164" parent="." index="68" instance=ExtResource( 4 )] +position = Vector2( 512, 72 ) +rotation = 0.174533 + +[node name="Leaf165" parent="." index="69" instance=ExtResource( 4 )] +position = Vector2( 512, 72 ) +rotation = -0.174533 + +[node name="Leaf166" parent="." index="70" instance=ExtResource( 4 )] +position = Vector2( 512, 40 ) +rotation = 0.261799 + +[node name="Leaf167" parent="." index="71" instance=ExtResource( 4 )] +position = Vector2( 512, 40 ) +rotation = -0.261799 + +[connection signal="brick_broken" from="Leaf45" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf75" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf105" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf107" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf15" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf30" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf60" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf90" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf106" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf111" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf109" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf113" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf114" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf115" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf116" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf117" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf118" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf119" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf120" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf121" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf122" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf123" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf124" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf56" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf88" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf112" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf125" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf26" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf40" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf72" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf91" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf126" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf108" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf110" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf127" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf128" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf129" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf130" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf131" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf132" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf133" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf134" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf135" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf136" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf137" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf138" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf139" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf140" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf141" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf142" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf143" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf144" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf145" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf146" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf147" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf148" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf151" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf152" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf153" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf154" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf155" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf156" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf157" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf158" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf159" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf160" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf163" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf164" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf165" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf166" to="." method="_on_brick_broken"] +[connection signal="brick_broken" from="Leaf167" to="." method="_on_brick_broken"] diff --git a/main.gd b/main.gd new file mode 100644 index 0000000..3981f46 --- /dev/null +++ b/main.gd @@ -0,0 +1,86 @@ +extends Node + +var StartScreen = preload("res://screens/start_screen.tscn") +var GameScreen = preload("res://screens/game_screen.tscn") +var GameOverScreen = preload("res://screens/game_over_screen.tscn") +var PauseScreen = preload("res://screens/pause_screen.tscn") + +# Variables +var current_screen = null # Current displayed screen +var current_state = "" # Current state +var game_screen = null # To store the game screen while in pause + + +func _ready(): + goToStartScreen() + +func _on_next_screen(next): + if next == "start": + goToStartScreen() + elif next == "game": + goToGameScreen() + elif next == "game_won": + goToGameOverScreen(true) + elif next == "game_lost": + goToGameOverScreen(false) + elif next == "pause": + goToPauseScreen() + +func goToStartScreen(): + if current_screen != null: + current_screen.queue_free() + if game_screen != null: + game_screen.queue_free() + game_screen = null + current_state = "start" + current_screen = StartScreen.instance() + current_screen.init() + current_screen.connect("next_screen", self, "_on_next_screen") + add_child(current_screen) + +func goToGameScreen(): + var start_level = 0 + if current_screen != null: + current_screen.queue_free() + current_state = "game" + if game_screen != null: + current_screen = game_screen + current_screen.unpause() + game_screen = null + else: + current_screen = GameScreen.instance() + current_screen.init(start_level) + current_screen.connect("next_screen", self, "_on_next_screen") + add_child(current_screen) + +func goToGameOverScreen(hasWon): + # Retrieve score + var score = 0 + if current_state == "game": + score = current_screen.get_score() + elif game_screen != null: + score = game_screen.get_score() + # Clean up current scene + if current_screen != null: + current_screen.queue_free() + if game_screen != null: + game_screen.queue_free() + game_screen = null + # Prepare screen + current_state = "game_over" + current_screen = GameOverScreen.instance() + current_screen.init(hasWon, score) + current_screen.connect("next_screen", self, "_on_next_screen") + add_child(current_screen) + +func goToPauseScreen(): + if current_state == "game": + game_screen = current_screen + game_screen.pause() + elif current_screen != null: + current_screen.queue_free() + current_state = "pause" + current_screen = PauseScreen.instance() + current_screen.init() + current_screen.connect("next_screen", self, "_on_next_screen") + add_child(current_screen) diff --git a/main.tscn b/main.tscn new file mode 100644 index 0000000..d781a53 --- /dev/null +++ b/main.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://empty_level/back.svg" type="Texture" id=1] +[ext_resource path="res://main.gd" type="Script" id=3] + +[node name="Main" type="Node"] +script = ExtResource( 3 ) + +[node name="Background" type="Sprite" parent="."] +texture = ExtResource( 1 ) +centered = false +region_enabled = true +region_rect = Rect2( 0, 0, 1024, 640 ) diff --git a/paddle/paddle.gd b/paddle/paddle.gd new file mode 100644 index 0000000..ca7a1fb --- /dev/null +++ b/paddle/paddle.gd @@ -0,0 +1,31 @@ +extends KinematicBody2D + +signal moved(position) + +# Declare member variables here. +export var speed = 720 +var paused = false + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + +func _physics_process(delta): + if not paused: + var velocity = Vector2() + if Input.is_action_pressed('ui_right'): + velocity = Vector2(speed, 1) + if Input.is_action_pressed('ui_left'): + velocity = Vector2(- speed, 1) + var _collision = move_and_collide(delta * velocity) + emit_signal("moved", position) + +func pause(): + paused = true + +func unpause(): + paused = false diff --git a/paddle/paddle.svg b/paddle/paddle.svg new file mode 100644 index 0000000..0f36932 --- /dev/null +++ b/paddle/paddle.svg @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/paddle/paddle.svg.import b/paddle/paddle.svg.import new file mode 100644 index 0000000..a413175 --- /dev/null +++ b/paddle/paddle.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/paddle.svg-5b95657f633a7c1b105b46684b4bfd7a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://paddle/paddle.svg" +dest_files=[ "res://.import/paddle.svg-5b95657f633a7c1b105b46684b4bfd7a.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/paddle/paddle.tscn b/paddle/paddle.tscn new file mode 100644 index 0000000..74b211c --- /dev/null +++ b/paddle/paddle.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://paddle/paddle.gd" type="Script" id=1] +[ext_resource path="res://paddle/paddle.svg" type="Texture" id=2] + +[node name="Paddle" type="KinematicBody2D"] +collision_mask = 40 +script = ExtResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 0, 20 ) +texture = ExtResource( 2 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] +polygon = PoolVector2Array( 16, 16, 32, 0, 40, 0, 32, 32, -32, 32, -40, 0, -32, 0, -16, 16 ) diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..999fded --- /dev/null +++ b/project.godot @@ -0,0 +1,41 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +[application] + +config/name="Bricassé" +config/description="Help Chacha the cat to brick those blocks." +run/main_scene="res://main.tscn" +boot_splash/bg_color=Color( 0.12549, 0.145098, 0.192157, 1 ) +config/icon="res://icon.png" + +[display] + +window/size/resizable=false +window/stretch/mode="2d" +window/stretch/aspect="keep" + +[layer_names] + +2d_physics/layer_1="paddle" +2d_physics/layer_2="ball" +2d_physics/layer_3="block" +2d_physics/layer_4="wall" +2d_physics/layer_5="powerups" +2d_physics/layer_6="floor" + +[physics] + +common/enable_pause_aware_picking=true + +[rendering] + +quality/driver/driver_name="GLES2" +environment/default_environment="res://default_env.tres" diff --git a/screens/NovaOval.ttf b/screens/NovaOval.ttf new file mode 100644 index 0000000..d51833b Binary files /dev/null and b/screens/NovaOval.ttf differ diff --git a/screens/bricasse-loop.ogg b/screens/bricasse-loop.ogg new file mode 100644 index 0000000..dafbea4 Binary files /dev/null and b/screens/bricasse-loop.ogg differ diff --git a/screens/bricasse-loop.ogg.import b/screens/bricasse-loop.ogg.import new file mode 100644 index 0000000..818848d --- /dev/null +++ b/screens/bricasse-loop.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/bricasse-loop.ogg-43aaf08d6aac03a0bfa2b687c807ae8c.oggstr" + +[deps] + +source_file="res://screens/bricasse-loop.ogg" +dest_files=[ "res://.import/bricasse-loop.ogg-43aaf08d6aac03a0bfa2b687c807ae8c.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/screens/game_over_screen.gd b/screens/game_over_screen.gd new file mode 100644 index 0000000..3a5f851 --- /dev/null +++ b/screens/game_over_screen.gd @@ -0,0 +1,21 @@ +extends Node + +signal next_screen(screen_name) + +# Declare member variables here. + + +func _ready(): + pass + +func init(hasWon, score): + if hasWon: + $Status.text = "Victory !" + else: + $Status.text = "Game Over !" + $Score.text = "Score: %s" % score + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(_delta): + if Input.is_action_just_pressed('ui_select') or Input.is_action_just_pressed('ui_cancel'): + emit_signal("next_screen", "start") diff --git a/screens/game_over_screen.tscn b/screens/game_over_screen.tscn new file mode 100644 index 0000000..bfb5c70 --- /dev/null +++ b/screens/game_over_screen.tscn @@ -0,0 +1,56 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://screens/game_over_screen.gd" type="Script" id=1] +[ext_resource path="res://screens/NovaOval.ttf" type="DynamicFontData" id=2] + +[sub_resource type="DynamicFont" id=1] +size = 30 +font_data = ExtResource( 2 ) + +[sub_resource type="DynamicFont" id=2] +size = 50 +font_data = ExtResource( 2 ) + +[sub_resource type="DynamicFont" id=3] +size = 30 +font_data = ExtResource( 2 ) + +[node name="GameOverScreen" type="Node"] +script = ExtResource( 1 ) + +[node name="Status" type="Label" parent="."] +anchor_right = 1.0 +margin_bottom = 64.0 +custom_fonts/font = SubResource( 1 ) +text = "Status" +align = 1 +valign = 2 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Score" type="Label" parent="."] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_top = -44.0 +margin_bottom = 52.0 +custom_fonts/font = SubResource( 2 ) +text = "Score" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Comment" type="Label" parent="."] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -72.0 +custom_fonts/font = SubResource( 3 ) +text = "Press space to continue" +align = 1 +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/screens/game_screen.gd b/screens/game_screen.gd new file mode 100644 index 0000000..169ff3a --- /dev/null +++ b/screens/game_screen.gd @@ -0,0 +1,102 @@ +extends Node + +signal next_screen(screen_name) + +var Ball = preload("res://ball/ball.tscn") +# List of levels +var Levels = [ + preload("res://levels/level_01_01.tscn"), + preload("res://levels/level_01_02.tscn"), + preload("res://levels/level_01_03.tscn"), + preload("res://levels/level_01_04.tscn"), + preload("res://levels/level_01_05.tscn"), + preload("res://levels/level_02_01.tscn"), + preload("res://levels/level_02_02.tscn"), + preload("res://levels/level_02_03.tscn"), + ] + +# Declare member variables here. +var ball = null # Ball on the field +var current_level = 0 # Index of the current levels +var level = null # Current level +var total_score = 0 # Score +var paused = false + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass + +func init(level_index): + current_level = level_index + total_score = 0 + update_score() + new_level() + new_ball() + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(_delta): + if not paused: + if Input.is_action_just_pressed('ui_select'): + ball.detach() + if Input.is_action_just_pressed("ui_cancel"): + emit_signal("next_screen", "pause") + +func pause(): + paused = true + $Paddle.pause() + ball.pause() + $BGM.stop() + +func unpause(): + $Paddle.unpause() + ball.unpause() + $BGM.play() + paused = false + +func new_level(): + level = Levels[current_level].instance() + level.connect("level_ended", self, "_on_level_ended") + level.connect("score_increased", self, "_on_score_increased") + call_deferred("add_child", level) + +func new_ball(): + ball = Ball.instance() + ball.init($Paddle.position, true) + var _connection = $Paddle.connect("moved", ball, "update_paddle_position") + ball.connect("ball_lost", self, "_on_ball_lost") + call_deferred("add_child", ball) + +func _on_ball_lost(): + total_score -= 1000 + update_score() + new_ball() + +func update_score(): + $Score.text = str(total_score) + +func get_score(): + return total_score + +func _on_score_increased(score): + total_score += score + update_score() + +func _on_level_ended(): + pause() + $LevelCleared.show() + $EndLevelTimer.start() + $JingleEnd.play() + + +func _on_EndLevelTimer_timeout(): + $LevelCleared.hide() + unpause() + ball.disconnect("ball_lost", self, "_on_ball_lost") + level.queue_free() + ball.queue_free() + current_level = current_level + 1 + if current_level >= Levels.size(): + emit_signal("next_screen", "game_won") + else: + new_level() + new_ball() diff --git a/screens/game_screen.tscn b/screens/game_screen.tscn new file mode 100644 index 0000000..2105da1 --- /dev/null +++ b/screens/game_screen.tscn @@ -0,0 +1,69 @@ +[gd_scene load_steps=9 format=2] + +[ext_resource path="res://screens/game_screen.gd" type="Script" id=1] +[ext_resource path="res://empty_level/empty_level.tscn" type="PackedScene" id=2] +[ext_resource path="res://paddle/paddle.tscn" type="PackedScene" id=3] +[ext_resource path="res://screens/NovaOval.ttf" type="DynamicFontData" id=4] +[ext_resource path="res://screens/jingle-end.ogg" type="AudioStream" id=5] +[ext_resource path="res://screens/bricasse-loop.ogg" type="AudioStream" id=6] + +[sub_resource type="DynamicFont" id=1] +size = 24 +font_data = ExtResource( 4 ) + +[sub_resource type="DynamicFont" id=2] +size = 50 +font_data = ExtResource( 4 ) + +[node name="GameScreen" type="Node"] +script = ExtResource( 1 ) + +[node name="EmptyLevel" parent="." instance=ExtResource( 2 )] + +[node name="Paddle" parent="." instance=ExtResource( 3 )] +position = Vector2( 512, 560 ) + +[node name="Score" type="Label" parent="."] +anchor_left = 1.0 +anchor_right = 1.0 +margin_left = -472.0 +margin_right = -72.0 +margin_bottom = 32.0 +custom_fonts/font = SubResource( 1 ) +custom_colors/font_color = Color( 0.552941, 0.960784, 0.505882, 1 ) +text = "SCORE" +align = 2 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="EndLevelTimer" type="Timer" parent="."] +wait_time = 3.0 +one_shot = true + +[node name="LevelCleared" type="Label" parent="."] +visible = false +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_top = -44.0 +margin_bottom = 52.0 +custom_fonts/font = SubResource( 2 ) +text = "Level cleared" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="JingleEnd" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 5 ) +volume_db = -6.0 + +[node name="BGM" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 6 ) +volume_db = -12.0 +autoplay = true + +[connection signal="timeout" from="EndLevelTimer" to="." method="_on_EndLevelTimer_timeout"] diff --git a/screens/jingle-end.ogg b/screens/jingle-end.ogg new file mode 100644 index 0000000..5f87ed3 Binary files /dev/null and b/screens/jingle-end.ogg differ diff --git a/screens/jingle-end.ogg.import b/screens/jingle-end.ogg.import new file mode 100644 index 0000000..68780d6 --- /dev/null +++ b/screens/jingle-end.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/jingle-end.ogg-92a1a4a7d1055c713854f581e754f4d2.oggstr" + +[deps] + +source_file="res://screens/jingle-end.ogg" +dest_files=[ "res://.import/jingle-end.ogg-92a1a4a7d1055c713854f581e754f4d2.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/screens/pause_screen.gd b/screens/pause_screen.gd new file mode 100644 index 0000000..398f87f --- /dev/null +++ b/screens/pause_screen.gd @@ -0,0 +1,19 @@ +extends Node + +signal next_screen(screen_name) + +# Declare member variables here. + + +func _ready(): + pass + +func init(): + pass + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(_delta): + if Input.is_action_just_pressed('ui_select'): + emit_signal("next_screen", "game") + elif Input.is_action_just_pressed('ui_cancel'): + emit_signal("next_screen", "game_lost") diff --git a/screens/pause_screen.tscn b/screens/pause_screen.tscn new file mode 100644 index 0000000..a1aa908 --- /dev/null +++ b/screens/pause_screen.tscn @@ -0,0 +1,57 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://screens/pause_screen.gd" type="Script" id=1] +[ext_resource path="res://empty_level/back.svg" type="Texture" id=2] +[ext_resource path="res://screens/NovaOval.ttf" type="DynamicFontData" id=3] + +[sub_resource type="DynamicFont" id=2] +size = 50 +font_data = ExtResource( 3 ) + +[sub_resource type="DynamicFont" id=3] +size = 30 +font_data = ExtResource( 3 ) + +[node name="PauseScreen" type="Node"] +script = ExtResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 320, 256 ) +texture = ExtResource( 2 ) +centered = false +region_enabled = true +region_rect = Rect2( 0, 0, 385, 96 ) + +[node name="Status" type="Label" parent="."] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_top = -44.0 +margin_bottom = 52.0 +custom_fonts/font = SubResource( 2 ) +text = "Pawsed" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Sprite2" type="Sprite" parent="."] +position = Vector2( 320, 480 ) +texture = ExtResource( 2 ) +centered = false +region_enabled = true +region_rect = Rect2( 0, 0, 384, 120 ) + +[node name="Comment" type="Label" parent="."] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -88.0 +custom_fonts/font = SubResource( 3 ) +text = "Press space to continue +Press escape to quit" +align = 1 +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/screens/splash.svg b/screens/splash.svg new file mode 100644 index 0000000..38b285d --- /dev/null +++ b/screens/splash.svg @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/screens/splash.svg.import b/screens/splash.svg.import new file mode 100644 index 0000000..4e1b841 --- /dev/null +++ b/screens/splash.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/splash.svg-5e6296fff2413f9c08f8c860013ac831.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://screens/splash.svg" +dest_files=[ "res://.import/splash.svg-5e6296fff2413f9c08f8c860013ac831.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/screens/start_screen.gd b/screens/start_screen.gd new file mode 100644 index 0000000..3aa9ca4 --- /dev/null +++ b/screens/start_screen.gd @@ -0,0 +1,28 @@ +extends Node + +signal next_screen(screen_name) + +# Declare member variables here. +var comment_hidden = false + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass + +func init(): + pass + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(_delta): + if Input.is_action_just_pressed('ui_select'): + emit_signal("next_screen", "game") + elif Input.is_action_just_pressed("ui_cancel"): + get_tree().notification(MainLoop.NOTIFICATION_WM_QUIT_REQUEST) + +func _on_Timer_timeout(): + if comment_hidden: + $Comment.show() + comment_hidden = false + else: + $Comment.hide() + comment_hidden = true diff --git a/screens/start_screen.tscn b/screens/start_screen.tscn new file mode 100644 index 0000000..8dc4067 --- /dev/null +++ b/screens/start_screen.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://screens/start_screen.gd" type="Script" id=1] +[ext_resource path="res://screens/splash.svg" type="Texture" id=3] +[ext_resource path="res://screens/NovaOval.ttf" type="DynamicFontData" id=4] + +[sub_resource type="DynamicFont" id=2] +size = 30 +font_data = ExtResource( 4 ) + +[node name="StartScreen" type="Node"] +script = ExtResource( 1 ) + +[node name="Comment" type="Label" parent="."] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -72.0 +custom_fonts/font = SubResource( 2 ) +text = "Press space to start" +align = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 512, 296 ) +texture = ExtResource( 3 ) + +[node name="Timer" type="Timer" parent="."] +autostart = true + +[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] diff --git a/splash.png b/splash.png new file mode 100644 index 0000000..6cee16b Binary files /dev/null and b/splash.png differ diff --git a/splash.png.import b/splash.png.import new file mode 100644 index 0000000..9b827bd --- /dev/null +++ b/splash.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/splash.png-929ed8a00b89ba36c51789452f874c77.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://splash.png" +dest_files=[ "res://.import/splash.png-929ed8a00b89ba36c51789452f874c77.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0