From 4bccabb7eefdd3ff67f628b43afcd3f0d22f7a3a Mon Sep 17 00:00:00 2001 From: Ruslan Ignatov Date: Mon, 29 Jun 2026 21:28:55 +0300 Subject: [PATCH] Added game over screen --- game/entities/player/player.gd | 6 +++- game/levels/abstract_level.gd | 27 ++++++++++++++ game/levels/abstract_level.tscn | 18 +++++++--- game/managers/sound_manager.gd | 3 ++ game/managers/sound_manager.tscn | 6 ++++ game/menu/game_over_menu.gd | 37 ++++++++++++++++++++ game/menu/game_over_menu.gd.uid | 1 + game/menu/game_over_menu.tscn | 58 +++++++++++++++++++++++++++++++ game/menu/main_menu.tscn | 10 +++++- game/menu/options_menu.tscn | 10 ++++++ game/menu/pause_menu.tscn | 9 +++++ sound/sfx/corruption.wav | 3 ++ sound/sfx/corruption.wav.import | 24 +++++++++++++ sound/sfx/fall | Bin 0 -> 41946 bytes sound/sfx/fall.wav | 3 ++ sound/sfx/fall.wav.import | 24 +++++++++++++ sound/sfx/game_over.wav | 3 ++ sound/sfx/game_over.wav.import | 24 +++++++++++++ 18 files changed, 260 insertions(+), 6 deletions(-) create mode 100644 game/menu/game_over_menu.gd create mode 100644 game/menu/game_over_menu.gd.uid create mode 100644 game/menu/game_over_menu.tscn create mode 100644 sound/sfx/corruption.wav create mode 100644 sound/sfx/corruption.wav.import create mode 100644 sound/sfx/fall create mode 100644 sound/sfx/fall.wav create mode 100644 sound/sfx/fall.wav.import create mode 100644 sound/sfx/game_over.wav create mode 100644 sound/sfx/game_over.wav.import diff --git a/game/entities/player/player.gd b/game/entities/player/player.gd index 3461714..30be936 100644 --- a/game/entities/player/player.gd +++ b/game/entities/player/player.gd @@ -76,6 +76,11 @@ func _ready() -> void: func _physics_process(delta: float) -> void: + if position.y > 0.0: + velocity.x = 0.0 + move_and_slide() + return + if is_on_floor(): floor_coyote_time_timer.start() _last_wall_normal = 0.0 @@ -157,4 +162,3 @@ func _attack() -> void: _slow_down_tween.tween_property(self, "_max_speed", move_max_speed_slowed, slow_down_sustain) _slow_down_tween.tween_property(self, "_max_speed", move_max_speed_normal, slow_down_release) _slow_down_tween.tween_property(sprite, "visible", false, 0.0) - diff --git a/game/levels/abstract_level.gd b/game/levels/abstract_level.gd index 8f92ee1..de92d8a 100644 --- a/game/levels/abstract_level.gd +++ b/game/levels/abstract_level.gd @@ -14,9 +14,11 @@ var _corruption_x: float @onready var player : Player = $Player @onready var pause_menu : PauseMenu = $%PauseMenu +@onready var game_over_menu : GameOverMenu = $%GameOverMenu @onready var health_bar : HealthBar = $%HealthBar @onready var corruption_timer : Timer = $CorruptionTimer +@onready var death_fall_timer : Timer = $DeathFallTimer @onready var level_material : ShaderMaterial = $%LevelColorRect.material @@ -24,9 +26,13 @@ var _corruption_x: float func _ready() -> void: _corruption_x = initial_corruption_x pause_menu.hide() + game_over_menu.hide() + health_bar.initialize(player.MAX_HEALTH, player.MAX_HEALTH) player.health_changed.connect(health_bar.set_current_value) + Input.mouse_mode = Input.MOUSE_MODE_HIDDEN + #TODO Add gameplay music @@ -44,6 +50,11 @@ func _physics_process(delta: float) -> void: corruption_timer.start() else: corruption_timer.stop() + + if player.position.y > 0.0: + if death_fall_timer.is_stopped(): + death_fall_timer.start() + SoundManager.play_sfx_stream(SoundManager.sfx_stream_fall, player.global_position) func _input(event: InputEvent) -> void: @@ -54,5 +65,21 @@ func _input(event: InputEvent) -> void: Input.mouse_mode = Input.MOUSE_MODE_VISIBLE +func _show_game_over() -> void: + get_tree().paused = true + game_over_menu.show() + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + + func _on_corruption_timer_timeout() -> void: player.deal_damage(CORRUPTION_DAMAGE) + SoundManager.play_sfx_stream(SoundManager.sfx_stream_corruption, player.global_position) + + +func _on_player_dead() -> void: + _show_game_over() + SoundManager.play_sfx_stream(SoundManager.sfx_stream_game_over, player.global_position) + + +func _on_death_fall_timer_timeout() -> void: + _show_game_over() diff --git a/game/levels/abstract_level.tscn b/game/levels/abstract_level.tscn index 2774415..8113a76 100644 --- a/game/levels/abstract_level.tscn +++ b/game/levels/abstract_level.tscn @@ -6,6 +6,7 @@ [ext_resource type="Shader" uid="uid://brudtlwas6x66" path="res://game/shaders/glitch.gdshader" id="4_6b8cu"] [ext_resource type="Texture2D" uid="uid://b8rm1kxgci4l1" path="res://images/level/beams.png" id="4_pi5fd"] [ext_resource type="PackedScene" uid="uid://b1x0tmnf7hx7h" path="res://game/hud/health_bar.tscn" id="6_x8k35"] +[ext_resource type="PackedScene" uid="uid://cl7vqh8j2f5py" path="res://game/menu/game_over_menu.tscn" id="7_l0xih"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_6b8cu"] resource_name = "Beams" @@ -1193,14 +1194,23 @@ material = SubResource("ShaderMaterial_yeikn") offset_right = 640.0 offset_bottom = 360.0 -[node name="PauseMenu" parent="CanvasLayer" unique_id=1815975678 instance=ExtResource("3_fnnmn")] -unique_name_in_owner = true -process_mode = 2 - [node name="HealthBar" parent="CanvasLayer" unique_id=256637218 instance=ExtResource("6_x8k35")] unique_name_in_owner = true position = Vector2(51, 19) +[node name="PauseMenu" parent="CanvasLayer" unique_id=1815975678 instance=ExtResource("3_fnnmn")] +unique_name_in_owner = true +process_mode = 2 + +[node name="GameOverMenu" parent="CanvasLayer" unique_id=795145041 instance=ExtResource("7_l0xih")] +unique_name_in_owner = true +process_mode = 2 + [node name="CorruptionTimer" type="Timer" parent="." unique_id=783383429] +[node name="DeathFallTimer" type="Timer" parent="." unique_id=519159888] +one_shot = true + +[connection signal="dead" from="Player" to="." method="_on_player_dead"] [connection signal="timeout" from="CorruptionTimer" to="." method="_on_corruption_timer_timeout"] +[connection signal="timeout" from="DeathFallTimer" to="." method="_on_death_fall_timer_timeout"] diff --git a/game/managers/sound_manager.gd b/game/managers/sound_manager.gd index 064c9e4..7678ce8 100644 --- a/game/managers/sound_manager.gd +++ b/game/managers/sound_manager.gd @@ -24,6 +24,9 @@ const MUSIC_BUS = "Music" @export var ui_stream_select : AudioStream @export_group("SFX Streams", "sfx_stream") +@export var sfx_stream_corruption : AudioStream +@export var sfx_stream_fall : AudioStream +@export var sfx_stream_game_over : AudioStream @export var sfx_stream_jump : AudioStream @export var sfx_stream_land : AudioStream @export var sfx_stream_swing : AudioStream diff --git a/game/managers/sound_manager.tscn b/game/managers/sound_manager.tscn index 39784c6..37315bb 100644 --- a/game/managers/sound_manager.tscn +++ b/game/managers/sound_manager.tscn @@ -4,8 +4,11 @@ [ext_resource type="AudioStream" uid="uid://cwmibbhy2fpq2" path="res://sound/ui/accept.wav" id="2_ge1il"] [ext_resource type="AudioStream" uid="uid://d2tsomsqmhf0h" path="res://sound/ui/decline.wav" id="3_agyxs"] [ext_resource type="AudioStream" uid="uid://cfb2adf5hft7b" path="res://sound/ui/select.wav" id="4_0i6kl"] +[ext_resource type="AudioStream" uid="uid://dg38c1dh27a80" path="res://sound/sfx/corruption.wav" id="5_ab171"] [ext_resource type="AudioStream" uid="uid://bcc0textvn2lx" path="res://sound/sfx/jump.wav" id="5_fpnh3"] +[ext_resource type="AudioStream" uid="uid://b6q00ggpln0k5" path="res://sound/sfx/game_over.wav" id="6_6ll5c"] [ext_resource type="AudioStream" uid="uid://b6xkhskx5gi0w" path="res://sound/sfx/land.wav" id="6_22ptj"] +[ext_resource type="AudioStream" uid="uid://ellnbrkpn47a" path="res://sound/sfx/fall.wav" id="6_q7cyi"] [ext_resource type="AudioStream" uid="uid://bj6ausg5hyuyg" path="res://sound/sfx/swing.wav" id="7_ab171"] [ext_resource type="AudioStream" uid="uid://33unutlwsika" path="res://sound/sfx/wall_jump.wav" id="8_22ptj"] @@ -21,6 +24,9 @@ player_count_sfx = 32 ui_stream_accept = ExtResource("2_ge1il") ui_stream_decline = ExtResource("3_agyxs") ui_stream_select = ExtResource("4_0i6kl") +sfx_stream_corruption = ExtResource("5_ab171") +sfx_stream_fall = ExtResource("6_q7cyi") +sfx_stream_game_over = ExtResource("6_6ll5c") sfx_stream_jump = ExtResource("5_fpnh3") sfx_stream_land = ExtResource("6_22ptj") sfx_stream_swing = ExtResource("7_ab171") diff --git a/game/menu/game_over_menu.gd b/game/menu/game_over_menu.gd new file mode 100644 index 0000000..c48e574 --- /dev/null +++ b/game/menu/game_over_menu.gd @@ -0,0 +1,37 @@ +class_name GameOverMenu +extends Control + + +@onready var retry_button : Button = $%RetryButton +@onready var main_menu_button : Button = $%MainMenuButton +@onready var focus_timer : Timer = $FocusTimer + + +func _on_gui_focus_changed(_node: Control) -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_select) + + +func _on_retry_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) + get_tree().paused = false + get_tree().change_scene_to_file(get_tree().current_scene.scene_file_path) + + +func _on_main_menu_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) + get_tree().paused = false + get_tree().change_scene_to_file("res://game/menu/main_menu.tscn") + + +func _on_visibility_changed() -> void: + if not is_node_ready(): return + if visible: + focus_timer.start() + get_viewport().gui_focus_changed.connect(_on_gui_focus_changed) + elif get_viewport().gui_focus_changed.is_connected(_on_gui_focus_changed): + get_viewport().gui_focus_changed.disconnect(_on_gui_focus_changed) + + +func _on_focus_timer_timeout() -> void: + if main_menu_button != null: + retry_button.grab_focus() diff --git a/game/menu/game_over_menu.gd.uid b/game/menu/game_over_menu.gd.uid new file mode 100644 index 0000000..77fbc6e --- /dev/null +++ b/game/menu/game_over_menu.gd.uid @@ -0,0 +1 @@ +uid://coqb1xl7lngo5 diff --git a/game/menu/game_over_menu.tscn b/game/menu/game_over_menu.tscn new file mode 100644 index 0000000..fb04a86 --- /dev/null +++ b/game/menu/game_over_menu.tscn @@ -0,0 +1,58 @@ +[gd_scene format=3 uid="uid://cl7vqh8j2f5py"] + +[ext_resource type="Theme" uid="uid://bqj884yfvhhft" path="res://game/themes/main_menu.tres" id="1_htxfh"] +[ext_resource type="Script" uid="uid://coqb1xl7lngo5" path="res://game/menu/game_over_menu.gd" id="2_m1ad0"] + +[node name="GameOverMenu" type="Control" unique_id=795145041] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_htxfh") +script = ExtResource("2_m1ad0") + +[node name="ColorRect" type="ColorRect" parent="." unique_id=851679792] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.19607843, 0.19215687, 0.23137255, 1) + +[node name="MarginContainer" type="MarginContainer" parent="." unique_id=1675617760] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer" unique_id=1046629699] +layout_mode = 2 +alignment = 1 + +[node name="Label" type="Label" parent="MarginContainer/VBoxContainer" unique_id=641992920] +layout_mode = 2 +text = "GAME OVER" +horizontal_alignment = 1 + +[node name="RetryButton" type="Button" parent="MarginContainer/VBoxContainer" unique_id=538467341] +unique_name_in_owner = true +layout_mode = 2 +text = "RETRY" + +[node name="MainMenuButton" type="Button" parent="MarginContainer/VBoxContainer" unique_id=1995734325] +unique_name_in_owner = true +layout_mode = 2 +text = "MAIN MENU" + +[node name="FocusTimer" type="Timer" parent="." unique_id=1727491464] +one_shot = true + +[connection signal="visibility_changed" from="." to="." method="_on_visibility_changed"] +[connection signal="pressed" from="MarginContainer/VBoxContainer/RetryButton" to="." method="_on_retry_button_pressed"] +[connection signal="pressed" from="MarginContainer/VBoxContainer/MainMenuButton" to="." method="_on_main_menu_button_pressed"] +[connection signal="timeout" from="FocusTimer" to="." method="_on_focus_timer_timeout"] diff --git a/game/menu/main_menu.tscn b/game/menu/main_menu.tscn index 4f08315..ff25ce1 100644 --- a/game/menu/main_menu.tscn +++ b/game/menu/main_menu.tscn @@ -14,6 +14,15 @@ grow_vertical = 2 theme = ExtResource("1_5d27k") script = ExtResource("2_qnvmd") +[node name="ColorRect" type="ColorRect" parent="." unique_id=669952833] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.19607843, 0.19215687, 0.23137255, 1) + [node name="MarginContainer" type="MarginContainer" parent="." unique_id=1180781679] layout_mode = 1 anchors_preset = 15 @@ -24,7 +33,6 @@ grow_vertical = 2 [node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer" unique_id=736037128] layout_mode = 2 -size_flags_horizontal = 4 alignment = 1 [node name="StartButton" type="Button" parent="MarginContainer/VBoxContainer" unique_id=1504018605] diff --git a/game/menu/options_menu.tscn b/game/menu/options_menu.tscn index f9880c0..d64f37a 100644 --- a/game/menu/options_menu.tscn +++ b/game/menu/options_menu.tscn @@ -19,6 +19,15 @@ grow_vertical = 2 theme = ExtResource("1_e2bp2") script = ExtResource("1_lq2ks") +[node name="ColorRect" type="ColorRect" parent="." unique_id=1883678162] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.19607843, 0.19215687, 0.23137255, 1) + [node name="MarginContainer" type="MarginContainer" parent="." unique_id=2127037660] layout_mode = 1 anchors_preset = 15 @@ -138,6 +147,7 @@ alignment = 1 [node name="BackButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer" unique_id=131108983] unique_name_in_owner = true layout_mode = 2 +size_flags_horizontal = 3 shortcut = SubResource("Shortcut_e2bp2") text = "BACK" diff --git a/game/menu/pause_menu.tscn b/game/menu/pause_menu.tscn index 6cee1d8..5f04bed 100644 --- a/game/menu/pause_menu.tscn +++ b/game/menu/pause_menu.tscn @@ -13,6 +13,15 @@ grow_vertical = 2 theme = ExtResource("1_i4rg2") script = ExtResource("2_e1jsn") +[node name="ColorRect" type="ColorRect" parent="." unique_id=1984802285] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.19607843, 0.19215687, 0.23137255, 1) + [node name="MarginContainer" type="MarginContainer" parent="." unique_id=2013458760] layout_mode = 1 anchors_preset = 15 diff --git a/sound/sfx/corruption.wav b/sound/sfx/corruption.wav new file mode 100644 index 0000000..f505ac7 --- /dev/null +++ b/sound/sfx/corruption.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6212ca7f07b962bd133187c9644c66d4a5357e5f31e78847e13053bc4b55afc2 +size 24072 diff --git a/sound/sfx/corruption.wav.import b/sound/sfx/corruption.wav.import new file mode 100644 index 0000000..9fcd7ca --- /dev/null +++ b/sound/sfx/corruption.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dg38c1dh27a80" +path="res://.godot/imported/corruption.wav-cb6aa0ed749327181f5011fc7985178f.sample" + +[deps] + +source_file="res://sound/sfx/corruption.wav" +dest_files=["res://.godot/imported/corruption.wav-cb6aa0ed749327181f5011fc7985178f.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/sound/sfx/fall b/sound/sfx/fall new file mode 100644 index 0000000000000000000000000000000000000000..463538336ba1dfbded4d3731918f9ad9768c35d4 GIT binary patch literal 41946 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 literal 0 HcmV?d00001 diff --git a/sound/sfx/fall.wav b/sound/sfx/fall.wav new file mode 100644 index 0000000..1d48672 --- /dev/null +++ b/sound/sfx/fall.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10b588891bf74a54d3a39e877871e97e3ec0ca885850a7fb4cf1826ed351a46d +size 41946 diff --git a/sound/sfx/fall.wav.import b/sound/sfx/fall.wav.import new file mode 100644 index 0000000..3c8bd4e --- /dev/null +++ b/sound/sfx/fall.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://ellnbrkpn47a" +path="res://.godot/imported/fall.wav-42d30ae4f15f539d7b6bbe2536aff44d.sample" + +[deps] + +source_file="res://sound/sfx/fall.wav" +dest_files=["res://.godot/imported/fall.wav-42d30ae4f15f539d7b6bbe2536aff44d.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/sound/sfx/game_over.wav b/sound/sfx/game_over.wav new file mode 100644 index 0000000..aefc106 --- /dev/null +++ b/sound/sfx/game_over.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abe74d59778773e69179ff283d02362fd6631d1c98d14bfa150aeb63b9796403 +size 86102 diff --git a/sound/sfx/game_over.wav.import b/sound/sfx/game_over.wav.import new file mode 100644 index 0000000..be1471d --- /dev/null +++ b/sound/sfx/game_over.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://b6q00ggpln0k5" +path="res://.godot/imported/game_over.wav-b6e22464a799bf25d91835b339e8f159.sample" + +[deps] + +source_file="res://sound/sfx/game_over.wav" +dest_files=["res://.godot/imported/game_over.wav-b6e22464a799bf25d91835b339e8f159.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2