[gd_scene format=3 uid="uid://dy355015qgab6"] [ext_resource type="Texture2D" uid="uid://cy4xfx762bxgb" path="res://assets/sprites/BG.png" id="1_8trdl"] [ext_resource type="Script" uid="uid://3v66wxbdeto5" path="res://scenes/arena/arena.gd" id="1_asdgj"] [ext_resource type="Texture2D" uid="uid://ov4fmsbglo55" path="res://assets/sprites/Map.png" id="2_5tue2"] [ext_resource type="PackedScene" uid="uid://cgljr7wcstmyp" path="res://scenes/unit/players/player_well_rounded.tscn" id="3_5tue2"] [ext_resource type="Script" uid="uid://cegcsi6n6r4gv" path="res://scenes/arena/camera_2d.gd" id="4_aj7ud"] [ext_resource type="PackedScene" uid="uid://bot1mnbk3iu11" path="res://scenes/unit/enemy/enemy_charger.tscn" id="6_jx0ua"] [ext_resource type="Script" uid="uid://b5j2awtdd1a4a" path="res://scenes/unit/enemy/enemy.gd" id="7_t3vx8"] [ext_resource type="Resource" uid="uid://bnknrm368mpwb" path="res://resources/units/enemies/stats_enemy_shooter.tres" id="8_rhjlh"] [ext_resource type="Texture2D" uid="uid://devt2xbk78rej" path="res://assets/sprites/shadow.png" id="9_tp84n"] [ext_resource type="Texture2D" uid="uid://4mllmwdfhmce" path="res://assets/sprites/Enemies/Enemy_4.png" id="10_8kk48"] [ext_resource type="PackedScene" uid="uid://bkyyic3okyjxx" path="res://scenes/components/hurtbox_component.tscn" id="11_wqbss"] [ext_resource type="PackedScene" uid="uid://c0fyx8gj5uexl" path="res://scenes/components/hitbox_component.tscn" id="12_fir7s"] [ext_resource type="PackedScene" uid="uid://2ew7i6g3p0v8" path="res://scenes/components/health_component.tscn" id="13_gy0qm"] [ext_resource type="PackedScene" uid="uid://ifmw1e7gycc8" path="res://scenes/ui/health_bar/health_bar.tscn" id="14_dh340"] [ext_resource type="Script" uid="uid://y47blv3332q8" path="res://scenes/unit/enemy/shooting_behavior.gd" id="15_l0cts"] [ext_resource type="PackedScene" uid="uid://bmhud2e0x287r" path="res://scenes/projectiles/projectile_enemy.tscn" id="16_ybinm"] [ext_resource type="Script" uid="uid://bd5bscq0u8wld" path="res://scenes/arena/spawner.gd" id="17_rhjlh"] [ext_resource type="Script" uid="uid://dqhoumuppl4bx" path="res://resources/waves/wave_data.gd" id="18_8kk48"] [ext_resource type="Resource" uid="uid://cer6rdmxrnenh" path="res://resources/waves/data/wave_1_to_5.tres" id="18_tp84n"] [sub_resource type="CircleShape2D" id="CircleShape2D_e15k4"] radius = 4.0 [sub_resource type="Animation" id="Animation_bhlit"] length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Visuals/Sprite:scale") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(1, 1)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Visuals/Sprite:rotation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [0.0] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Visuals/Sprite:position") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(0, -61)] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("Visuals/Shadow:scale") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(0.8, 1)] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Visuals/Shadow:position") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(0, 0)] } [sub_resource type="Animation" id="Animation_0wuuu"] resource_name = "move" length = 0.5 step = 0.05 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Visuals/Sprite:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.1, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector2(0, -61), Vector2(0, -100), Vector2(0, -61)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Visuals/Sprite:rotation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 0.15, 0.4), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [0.0, 0.0, 1.5707963267948966] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Visuals/Sprite:scale") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0, 0.1, 0.15), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector2(1, 1), Vector2(0.8, 1.4), Vector2(0.9, 1)] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("Visuals/Shadow:scale") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0, 0.1, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector2(0.8, 1), Vector2(0.6, 1), Vector2(0.9, 1)] } [sub_resource type="Animation" id="Animation_vgvef"] resource_name = "die" length = 0.8 loop_mode = 1 step = 0.05 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Visuals/Sprite:scale") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.20000845, 0.4000169, 0.60002536), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector2(1, 1), Vector2(1.2, 0.8), Vector2(1, 1), Vector2(1.2, 0.8)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Visuals/Sprite:rotation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [0.0] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Visuals/Shadow:position") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(0, -4)] } [sub_resource type="Animation" id="Animation_3po7s"] resource_name = "idle" length = 0.6 loop_mode = 1 step = 0.05 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Visuals/Sprite:scale") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.15, 0.3, 0.45), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector2(0.8, 1.1), Vector2(1, 1), Vector2(0.8, 1.1), Vector2(1, 1)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Visuals/Sprite:rotation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 0.15, 0.3, 0.45), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [0.2617993877991494, 0.0, -0.2617993877991494, 0.0] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Visuals/Sprite:position") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0, 0.15, 0.3, 0.45), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector2(0, -61), Vector2(0, -75), Vector2(0, -61), Vector2(0, -75)] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("Visuals/Shadow:scale") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0, 0.15, 0.3, 0.45), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector2(0.8, 1), Vector2(0.6, 1), Vector2(0.8, 1), Vector2(0.6, 1)] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_w7udy"] _data = { &"RESET": SubResource("Animation_bhlit"), &"die": SubResource("Animation_0wuuu"), &"idle": SubResource("Animation_vgvef"), &"move": SubResource("Animation_3po7s") } [sub_resource type="CircleShape2D" id="CircleShape2D_lmqbh"] radius = 150.0 [sub_resource type="CircleShape2D" id="CircleShape2D_03rrj"] radius = 38.0 [sub_resource type="CircleShape2D" id="CircleShape2D_421q1"] radius = 40.0 [node name="Arena" type="Node2D" unique_id=1021720471 node_paths=PackedStringArray("player")] script = ExtResource("1_asdgj") player = NodePath("PlayerWellRounded") normal_color = Color(1, 1, 1, 1) bloacked_color = Color(1, 0.2901961, 0.45490196, 1) critical_color = Color(0.99607843, 0.78039217, 0.38039216, 1) hp_color = Color(0, 0.627451, 0.48235294, 1) [node name="BlackBG" type="Sprite2D" parent="." unique_id=29383651] scale = Vector2(2, 2) texture = ExtResource("1_8trdl") [node name="GrassBG" type="Sprite2D" parent="." unique_id=1846603042] scale = Vector2(2, 2) texture = ExtResource("2_5tue2") [node name="PlayerWellRounded" parent="." unique_id=2022554550 instance=ExtResource("3_5tue2")] [node name="Camera2D" type="Camera2D" parent="." unique_id=758039070] script = ExtResource("4_aj7ud") [node name="EnemyCharger" parent="." unique_id=2092979720 instance=ExtResource("6_jx0ua")] position = Vector2(-481, 1) [node name="EnemyShooter" type="Area2D" parent="." unique_id=1617000445] position = Vector2(-720, -233) collision_layer = 2 script = ExtResource("7_t3vx8") stats = ExtResource("8_rhjlh") [node name="Visuals" type="Node2D" parent="EnemyShooter" unique_id=395976388] unique_name_in_owner = true scale = Vector2(0.5, 0.5) [node name="Shadow" type="Sprite2D" parent="EnemyShooter/Visuals" unique_id=2136480859] modulate = Color(0.11119685, 0.11119684, 0.11119684, 1) self_modulate = Color(0.101960786, 0.101960786, 0.101960786, 0.3372549) scale = Vector2(0.8, 1) texture = ExtResource("9_tp84n") [node name="Sprite" type="Sprite2D" parent="EnemyShooter/Visuals" unique_id=1925870318] unique_name_in_owner = true position = Vector2(0, -61) texture = ExtResource("10_8kk48") [node name="FirePos" type="Marker2D" parent="EnemyShooter/Visuals" unique_id=815261850] position = Vector2(-92, -50) [node name="CollisionShape2D" type="CollisionShape2D" parent="EnemyShooter" unique_id=139786467] position = Vector2(0, -30) shape = SubResource("CircleShape2D_e15k4") debug_color = Color(0.97292477, 0.10649621, 0.32710177, 0.41960785) [node name="AnimationPlayer" type="AnimationPlayer" parent="EnemyShooter" unique_id=619019243] libraries/ = SubResource("AnimationLibrary_w7udy") [node name="VisionArea" type="Area2D" parent="EnemyShooter" unique_id=466967301] collision_layer = 0 collision_mask = 2 [node name="CollisionShape2D" type="CollisionShape2D" parent="EnemyShooter/VisionArea" unique_id=715489053] position = Vector2(0, -25) shape = SubResource("CircleShape2D_lmqbh") [node name="HurtboxComponent" parent="EnemyShooter" unique_id=1155790880 instance=ExtResource("11_wqbss")] collision_layer = 8 collision_mask = 16 [node name="CollisionShape2D" type="CollisionShape2D" parent="EnemyShooter/HurtboxComponent" unique_id=880029571] position = Vector2(0, -30) shape = SubResource("CircleShape2D_03rrj") debug_color = Color(0.59981126, 0.5382401, 0.22537157, 0.41960785) [node name="HitboxComponent" parent="EnemyShooter" unique_id=151235566 instance=ExtResource("12_fir7s")] collision_layer = 4 collision_mask = 32 [node name="CollisionShape2D" type="CollisionShape2D" parent="EnemyShooter/HitboxComponent" unique_id=906401181] position = Vector2(0, -30) shape = SubResource("CircleShape2D_421q1") debug_color = Color(0.95670325, 0.056883797, 0.5071302, 0.41960785) [node name="HealthComponent" parent="EnemyShooter" unique_id=455886217 instance=ExtResource("13_gy0qm")] [node name="HealthBar" parent="EnemyShooter" unique_id=1540037291 instance=ExtResource("14_dh340")] offset_left = -46.0 offset_top = -95.0 offset_right = 50.0 offset_bottom = -75.0 back_color = Color(0.015686275, 0.05490196, 0.16862746, 1) fill_color = Color(0.37254903, 0.5372549, 0.75686276, 1) [node name="FlashTimer" type="Timer" parent="EnemyShooter" unique_id=2034069027] wait_time = 0.2 one_shot = true [node name="KnockbackTimer" type="Timer" parent="EnemyShooter" unique_id=1031574323] wait_time = 0.4 one_shot = true [node name="ShootingBehavior" type="Node2D" parent="EnemyShooter" unique_id=1533506602 node_paths=PackedStringArray("enemy", "fire_pos")] script = ExtResource("15_l0cts") enemy = NodePath("..") fire_pos = NodePath("../Visuals/FirePos") projectile_scene = ExtResource("16_ybinm") [node name="Spawner" type="Node2D" parent="." unique_id=831614176] script = ExtResource("17_rhjlh") waves_data = Array[ExtResource("18_8kk48")]([ExtResource("18_tp84n")]) [node name="SpawnTimer" type="Timer" parent="Spawner" unique_id=1696770444] [node name="WaveTimer" type="Timer" parent="Spawner" unique_id=2083072683] [connection signal="on_damaged" from="EnemyShooter/HurtboxComponent" to="EnemyShooter" method="_on_hurtbox_component_on_damaged"] [connection signal="on_health_changed" from="EnemyShooter/HealthComponent" to="EnemyShooter/HealthBar" method="_on_health_component_on_health_changed"] [connection signal="timeout" from="EnemyShooter/FlashTimer" to="EnemyShooter" method="_on_flash_timer_timeout"] [connection signal="timeout" from="EnemyShooter/KnockbackTimer" to="EnemyShooter" method="_on_knockback_timer_timeout"] [connection signal="timeout" from="Spawner/SpawnTimer" to="Spawner" method="_on_spawn_timer_timeout"]