[gd_scene load_steps=19 format=2] [ext_resource path="res://image/launcher.png" type="Texture" id=1] [ext_resource path="res://image/brik.png" type="Texture" id=2] [ext_resource path="res://scripts/Catcher.gd" type="Script" id=3] [ext_resource path="res://scripts/Launcher.gd" type="Script" id=4] [ext_resource path="res://image/visor.png" type="Texture" id=5] [ext_resource path="res://scripts/Grid.gd" type="Script" id=6] [ext_resource path="res://scripts/UI.gd" type="Script" id=7] [ext_resource path="res://scripts/BallCounterLabel.gd" type="Script" id=8] [ext_resource path="res://scripts/ScoreCounterLabel.gd" type="Script" id=9] [ext_resource path="res://scripts/LifeContainer.gd" type="Script" id=10] [ext_resource path="res://scripts/DeadLine.gd" type="Script" id=11] [ext_resource path="res://scripts/TargetLine.gd" type="Script" id=12] [sub_resource type="PhysicsMaterial" id=1] friction = 0.0 bounce = 1.0 [sub_resource type="RectangleShape2D" id=2] extents = Vector2( 50, 300 ) [sub_resource type="RectangleShape2D" id=3] extents = Vector2( 300, 50 ) [sub_resource type="RectangleShape2D" id=4] extents = Vector2( 200, 50 ) [sub_resource type="RectangleShape2D" id=5] extents = Vector2( 20.5, 10.5 ) [sub_resource type="TileSet" id=6] 0/name = "brik.png 0" 0/texture = ExtResource( 2 ) 0/tex_offset = Vector2( 0, 0 ) 0/modulate = Color( 1, 1, 1, 1 ) 0/region = Rect2( 0, 0, 40, 20 ) 0/tile_mode = 0 0/occluder_offset = Vector2( 0, 0 ) 0/navigation_offset = Vector2( 0, 0 ) 0/shapes = [ { "autotile_coord": Vector2( 0, 0 ), "one_way": false, "one_way_margin": 1.0, "shape": SubResource( 5 ), "shape_transform": Transform2D( 1, 0, 0, 1, 20, 10 ) } ] 0/z_index = 0 [node name="Root" type="Node"] [node name="Background" type="Panel" parent="."] margin_right = 400.0 margin_bottom = 400.0 __meta__ = { "_edit_use_anchors_": false } [node name="Walls" type="StaticBody2D" parent="."] collision_layer = 2 physics_material_override = SubResource( 1 ) [node name="Left" type="CollisionShape2D" parent="Walls"] position = Vector2( -50, 200 ) shape = SubResource( 2 ) [node name="Right" type="CollisionShape2D" parent="Walls"] position = Vector2( 450, 200 ) shape = SubResource( 2 ) [node name="Top" type="CollisionShape2D" parent="Walls"] position = Vector2( 200, -50 ) shape = SubResource( 3 ) [node name="Catcher" type="Area2D" parent="."] position = Vector2( 200, 460 ) collision_layer = 8 collision_mask = 5 script = ExtResource( 3 ) [node name="Area" type="CollisionShape2D" parent="Catcher"] shape = SubResource( 4 ) [node name="Launcher" type="Node2D" parent="."] script = ExtResource( 4 ) visor_ratio = 1.6 [node name="Grid" type="TileMap" parent="Launcher" groups=[ "grid", ]] mode = 2 tile_set = SubResource( 6 ) cell_size = Vector2( 40, 20 ) cell_custom_transform = Transform2D( 40, 0, 0, 20, 0, 0 ) collision_layer = 4 collision_mask = 8 format = 1 script = ExtResource( 6 ) [node name="LifeContainer" type="Node2D" parent="Launcher/Grid"] script = ExtResource( 10 ) [node name="TargetLine" type="RayCast2D" parent="Launcher"] position = Vector2( 200, 400 ) collision_mask = 6 script = ExtResource( 12 ) [node name="TargetVisor" type="Sprite" parent="Launcher/TargetLine"] texture = ExtResource( 5 ) [node name="Source" type="Sprite" parent="Launcher"] position = Vector2( 200, 400 ) texture = ExtResource( 1 ) [node name="ShootDelay" type="Timer" parent="Launcher"] wait_time = 0.1 one_shot = true [node name="DeadLine" type="RayCast2D" parent="Launcher"] position = Vector2( 380, 390 ) cast_to = Vector2( -360, 0 ) collision_mask = 4 script = ExtResource( 11 ) [node name="UI" type="Control" parent="."] margin_right = 40.0 margin_bottom = 40.0 script = ExtResource( 7 ) __meta__ = { "_edit_use_anchors_": false } [node name="GameOverPanel" type="Panel" parent="UI"] visible = false margin_left = 100.0 margin_top = 175.0 margin_right = 300.0 margin_bottom = 225.0 __meta__ = { "_edit_use_anchors_": false } [node name="GameOver" type="Label" parent="UI/GameOverPanel"] margin_left = -100.0 margin_top = -175.0 margin_right = 300.0 margin_bottom = 225.0 text = "Game Over" align = 1 valign = 1 [node name="BallCounterPanel" type="Panel" parent="UI"] margin_left = 10.0 margin_top = 360.0 margin_right = 50.0 margin_bottom = 390.0 __meta__ = { "_edit_use_anchors_": false } [node name="BallLabel" type="Label" parent="UI/BallCounterPanel"] margin_right = 40.0 margin_bottom = 14.0 text = "Balls" align = 1 valign = 1 __meta__ = { "_edit_use_anchors_": false } [node name="BallCounterLabel" type="Label" parent="UI/BallCounterPanel"] margin_top = 15.0 margin_right = 40.0 margin_bottom = 30.0 text = "0" align = 1 valign = 1 script = ExtResource( 8 ) __meta__ = { "_edit_use_anchors_": false } [node name="ScorePanel" type="Panel" parent="UI"] margin_left = 350.0 margin_top = 360.0 margin_right = 390.0 margin_bottom = 390.0 __meta__ = { "_edit_use_anchors_": false } [node name="ScoreLabel" type="Label" parent="UI/ScorePanel"] margin_right = 40.0 margin_bottom = 14.0 text = "Score" align = 1 valign = 1 __meta__ = { "_edit_use_anchors_": false } [node name="ScoreCounterLabel" type="Label" parent="UI/ScorePanel"] margin_top = 15.0 margin_right = 40.0 margin_bottom = 30.0 text = "0" align = 1 valign = 1 script = ExtResource( 9 ) __meta__ = { "_edit_use_anchors_": false } [connection signal="body_entered" from="Catcher" to="Catcher" method="_on_Catcher_body_entered"] [connection signal="game_over" from="Catcher" to="UI" method="_on_Catcher_game_over"] [connection signal="gain_new_bullet" from="Launcher" to="UI/BallCounterPanel/BallCounterLabel" method="_on_Launcher_gain_new_bullet"] [connection signal="get_firing" from="Launcher" to="Launcher" method="_on_Launcher_get_firing"] [connection signal="is_full" from="Launcher" to="Launcher/Grid" method="_on_Launcher_is_full"] [connection signal="move_visor" from="Launcher" to="Launcher/TargetLine" method="_on_Launcher_move_visor"] [connection signal="has_moved" from="Launcher/Grid" to="Launcher" method="_on_Grid_has_moved"] [connection signal="has_moved" from="Launcher/Grid" to="Launcher/DeadLine" method="_on_Grid_has_moved"] [connection signal="kace_broken" from="Launcher/Grid" to="Launcher" method="_on_Grid_kace_broken"] [connection signal="kace_damaged" from="Launcher/Grid" to="UI/ScorePanel/ScoreCounterLabel" method="_on_Grid_kace_damaged"] [connection signal="timeout" from="Launcher/ShootDelay" to="Launcher" method="_on_ShootDelay_timeout"] [connection signal="game_lost" from="Launcher/DeadLine" to="Launcher" method="_on_DeadLine_game_lost"] [connection signal="game_lost" from="Launcher/DeadLine" to="UI" method="_on_DeadLine_game_lost"]