diff --git a/scenes/templates/standard_players_house.tscn b/scenes/templates/standard_players_house.tscn index ad45845..07fbd15 100644 --- a/scenes/templates/standard_players_house.tscn +++ b/scenes/templates/standard_players_house.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=13 format=3 uid="uid://bu0dh5ct387xu"] +[gd_scene load_steps=15 format=3 uid="uid://bu0dh5ct387xu"] [ext_resource type="PackedScene" uid="uid://dd3yegl1xo44m" path="res://scenes/templates/level_template.tscn" id="1_vdv3d"] [ext_resource type="Resource" uid="uid://br3364jty1j0i" path="res://resources/levels/test_level_for_execution.tres" id="2_bpfdr"] @@ -188,9 +188,67 @@ tracks/4/keys = { "values": [false] } +[sub_resource type="Animation" id="Animation_pqj5f"] +resource_name = "HW_Sequence" +length = 6.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("GUI/ReadySetPlant:text") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": ["huge_wave"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("GUI/ReadySetPlant:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 6), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} + +[sub_resource type="Animation" id="Animation_lrlbv"] +resource_name = "FW_Sequence" +length = 3.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("GUI/ReadySetPlant:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 3), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("GUI/ReadySetPlant:text") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": ["final_wave"] +} + [sub_resource type="AnimationLibrary" id="AnimationLibrary_yw4uo"] _data = { &"CYS_Sequence": SubResource("Animation_vbgdr"), +&"FW_Sequence": SubResource("Animation_lrlbv"), +&"HW_Sequence": SubResource("Animation_pqj5f"), &"PG_Sequence": SubResource("Animation_8ajos"), &"RESET": SubResource("Animation_yw4uo") } @@ -260,6 +318,7 @@ wait_time = 2.5 script = ExtResource("5_vbgdr") rowSpawner = NodePath("../RowSpawner") waveTimer = NodePath("WaveTimer") +approachNotificationTime = 5.0 [node name="WaveTimer" type="Timer" parent="LevelRunner" index="0"] one_shot = true @@ -271,6 +330,8 @@ fadeAnimation = NodePath("../GameOverScreen/AnimationPlayer") [node name="CollisionShape2D" parent="Checkbox" index="0"] shape = SubResource("WorldBoundaryShape2D_yw4uo") +[connection signal="FinalWaveInitiated" from="LevelRunner" to="MainAnimationPlayer" method="play" binds= ["FW_Sequence"]] +[connection signal="HugeWaveApproachingCallback" from="LevelRunner" to="MainAnimationPlayer" method="play" binds= ["HW_Sequence"]] [connection signal="HugeWaveInitiated" from="LevelRunner" to="GUI/WaveProgress" method="OnHugeWaveApproached"] [connection signal="ResourceChanged" from="LevelRunner" to="GUI/WaveProgress" method="SetLevelData"] [connection signal="WaveChanged" from="LevelRunner" to="GUI/WaveProgress" method="OnWaveChanged"] diff --git a/scripts/level/LevelRunner.cs b/scripts/level/LevelRunner.cs index fbd2181..4c73000 100644 --- a/scripts/level/LevelRunner.cs +++ b/scripts/level/LevelRunner.cs @@ -15,6 +15,7 @@ public partial class LevelRunner : Node [Signal] public delegate void WaveChangedEventHandler(int to); [Signal] public delegate void HugeWaveApproachingCallbackEventHandler(); [Signal] public delegate void HugeWaveInitiatedEventHandler(int waveNumber); + [Signal] public delegate void FinalWaveInitiatedEventHandler(); public override void _Ready() { @@ -23,6 +24,7 @@ public partial class LevelRunner : Node public override void _Process(double delta) { + if (waveIndex == resource.waves.Count - 1) return; if (waveTimer.TimeLeft < approachNotificationTime && resource.waves[waveIndex + 1].isHugeWave && hugeWaveApproaching == false) { hugeWaveApproaching = true; @@ -48,7 +50,11 @@ public partial class LevelRunner : Node if (resource.waves[waveIndex].isHugeWave) EmitSignal(SignalName.HugeWaveInitiated, waveIndex); rowSpawner.Add(resource.waves[waveIndex].zombiesOrdered); - if (waveIndex == resource.waves.Count - 1) return; + if (waveIndex == resource.waves.Count - 1) + { + EmitSignal(SignalName.FinalWaveInitiated); + return; + } waveTimer.WaitTime = resource.waves[waveIndex].customWaveDelay > 0 ? resource.waves[waveIndex].customWaveDelay : resource.standardWaveDelay; waveTimer.Start(); diff --git a/translations/gui.csv b/translations/gui.csv index 6a2a060..4eda525 100644 --- a/translations/gui.csv +++ b/translations/gui.csv @@ -50,3 +50,8 @@ sfx,SFX,Звуки music,Music,Музыка paused,Paused,Игра на паузе splash,Splash,Сплэш +huge_wave,[font_size=32][color=red][outline_color=black][outline_size=8]The big wave of zombies is approaching![/outline_size][/outline_color][/color][/font_size],[font_size=32][color=red][outline_color=black][outline_size=8]Большая волна зомби приближается![/outline_size][/outline_color][/color][/font_size] +final_wave,[font_size=48][color=red][outline_color=black][outline_size=8]FINAL WAVE[/outline_size][/outline_color][/color][/font_size],[font_size=48][color=red][outline_color=black][outline_size=8]ПОСЛЕДНЯЯ ВОЛНА[/outline_size][/outline_color][/color][/font_size] +ready,[font_size=32][color=red][outline_color=black][outline_size=8]Ready[/outline_size][/outline_color][/color][/font_size],[font_size=32][color=red][outline_color=black][outline_size=8]На старт[/outline_size][/outline_color][/color][/font_size] +set,[font_size=32][color=red][outline_color=black][outline_size=8]Set[/outline_size][/outline_color][/color][/font_size],[font_size=32][color=red][outline_color=black][outline_size=8]Внимание[/outline_size][/outline_color][/color][/font_size] +plant,[font_size=48][color=red][outline_color=black][outline_size=8]PLANT![/outline_size][/outline_color][/color][/font_size],[font_size=48][color=red][outline_color=black][outline_size=8]САЖАЙ![/outline_size][/outline_color][/color][/font_size] diff --git a/translations/gui.en.translation b/translations/gui.en.translation index 7e035f7..23b0fe9 100644 Binary files a/translations/gui.en.translation and b/translations/gui.en.translation differ diff --git a/translations/gui.ru.translation b/translations/gui.ru.translation index da4e7af..48ad9ac 100644 Binary files a/translations/gui.ru.translation and b/translations/gui.ru.translation differ