From 8151298b446808ec05e354d58e69e337acdcd2bc Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 1 Apr 2025 11:23:37 +0200 Subject: [PATCH] Added game over --- .../FairyDefeated/FairyDefeated.png | 4 +- .../FairyDefeated/FairyDefeated.pxc | Bin 4128 -> 5769 bytes .../FairyDefeated/FairyDefeated.pxc1 | Bin 3555 -> 5495 bytes ExternalMaterial/FairyDefeated/GameOver.png | 3 + .../FairyDefeated/GameOver.png.import | 34 ++++++++ Resources/Enemies/Base_Fairy.tres | 1 + Resources/Enemies/Fairy_Guard.tres | 1 + Resources/Enemies/Thermathron.tres | 6 +- Resources/Enemies/Turret360.tres | 6 +- Scenes/HUD/HUD.tscn | 75 +++++++++++++----- Scenes/test.tscn | 7 +- Scripts/Components/FSM/Player/Dead.cs | 21 ++++- Scripts/GlobalState.cs | 6 +- Scripts/Hud.cs | 31 +++++++- 14 files changed, 160 insertions(+), 35 deletions(-) create mode 100644 ExternalMaterial/FairyDefeated/GameOver.png create mode 100644 ExternalMaterial/FairyDefeated/GameOver.png.import diff --git a/ExternalMaterial/FairyDefeated/FairyDefeated.png b/ExternalMaterial/FairyDefeated/FairyDefeated.png index 06117767..29fc29ff 100644 --- a/ExternalMaterial/FairyDefeated/FairyDefeated.png +++ b/ExternalMaterial/FairyDefeated/FairyDefeated.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:eacdb2fbb7196fb0cf6f3d88052bcf541d3125fa30df145590a3112275ea70b1 -size 1526 +oid sha256:c3ff9611bae01ba1d624524b08358cb81391c62d2eb463f2e2b113229cd1975a +size 1691 diff --git a/ExternalMaterial/FairyDefeated/FairyDefeated.pxc b/ExternalMaterial/FairyDefeated/FairyDefeated.pxc index 30073b4233474d111781e6eceaa2213b37e7b8e2..33c5bc709bbde4564e9bc6756b6cc7d9d8d71016 100644 GIT binary patch literal 5769 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 H^MzJSA;L)9 literal 4128 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 literal 3555 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 diff --git a/ExternalMaterial/FairyDefeated/GameOver.png b/ExternalMaterial/FairyDefeated/GameOver.png new file mode 100644 index 00000000..ab4e3c97 --- /dev/null +++ b/ExternalMaterial/FairyDefeated/GameOver.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a37055897e9a257cfe8f6c564604245c74c4918375e6e2895beca2b5a6a55d3c +size 1492 diff --git a/ExternalMaterial/FairyDefeated/GameOver.png.import b/ExternalMaterial/FairyDefeated/GameOver.png.import new file mode 100644 index 00000000..0a647429 --- /dev/null +++ b/ExternalMaterial/FairyDefeated/GameOver.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://3spfcuok2po2" +path="res://.godot/imported/GameOver.png-c9dca459ca730525becf7b5edd35a8c9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ExternalMaterial/FairyDefeated/GameOver.png" +dest_files=["res://.godot/imported/GameOver.png-c9dca459ca730525becf7b5edd35a8c9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Resources/Enemies/Base_Fairy.tres b/Resources/Enemies/Base_Fairy.tres index 17289c74..3aff6ae0 100644 --- a/Resources/Enemies/Base_Fairy.tres +++ b/Resources/Enemies/Base_Fairy.tres @@ -48,6 +48,7 @@ MaxHealth = 2.0 MovementSpeed = 30.0 Weapon = ExtResource("7_xkg5o") LootDrops = Array[ExtResource("2_sxbtw")]([SubResource("Resource_c8nix"), SubResource("Resource_gs2l3"), SubResource("Resource_sqnvg"), SubResource("Resource_5tyar"), SubResource("Resource_48xq6")]) +MotivationReward = 4.0 PlayerDetectionRange = 90.0 ViewRange = 120.0 AlarmReactRange = 150.0 diff --git a/Resources/Enemies/Fairy_Guard.tres b/Resources/Enemies/Fairy_Guard.tres index 7586a15d..bd775a6e 100644 --- a/Resources/Enemies/Fairy_Guard.tres +++ b/Resources/Enemies/Fairy_Guard.tres @@ -48,6 +48,7 @@ MaxHealth = 4.0 MovementSpeed = 40.0 Weapon = ExtResource("7_xlxdc") LootDrops = Array[ExtResource("2_ivudp")]([SubResource("Resource_c8nix"), SubResource("Resource_gs2l3"), SubResource("Resource_sqnvg"), SubResource("Resource_5tyar"), SubResource("Resource_48xq6")]) +MotivationReward = 4.0 PlayerDetectionRange = 90.0 ViewRange = 120.0 AlarmReactRange = 150.0 diff --git a/Resources/Enemies/Thermathron.tres b/Resources/Enemies/Thermathron.tres index 03ed490c..cac16298 100644 --- a/Resources/Enemies/Thermathron.tres +++ b/Resources/Enemies/Thermathron.tres @@ -1,5 +1,6 @@ -[gd_resource type="Resource" script_class="EnemyResource" load_steps=3 format=3 uid="uid://cfdvg162u65sr"] +[gd_resource type="Resource" script_class="EnemyResource" load_steps=4 format=3 uid="uid://cfdvg162u65sr"] +[ext_resource type="Script" uid="uid://cq65aed620ijo" path="res://Scripts/Resources/Loot/LootDrop.cs" id="1_f3huq"] [ext_resource type="Resource" uid="uid://cdfmedtgp2rcn" path="res://Resources/Weapons/EnemyWeapon.tres" id="7_filx8"] [ext_resource type="Script" uid="uid://cd5o0ceb50jki" path="res://Scripts/Resources/EnemyResource.cs" id="8_x8scf"] @@ -11,7 +12,8 @@ PrefabPath = &"res://Scenes/Actors/Thermathron.tscn" MaxHealth = 8.0 MovementSpeed = 38.0 Weapon = ExtResource("7_filx8") -LootDrops = [] +LootDrops = Array[ExtResource("1_f3huq")]([]) +MotivationReward = 4.0 PlayerDetectionRange = 90.0 ViewRange = 120.0 AlarmReactRange = 200.0 diff --git a/Resources/Enemies/Turret360.tres b/Resources/Enemies/Turret360.tres index 65abd27c..99d247de 100644 --- a/Resources/Enemies/Turret360.tres +++ b/Resources/Enemies/Turret360.tres @@ -1,5 +1,6 @@ -[gd_resource type="Resource" script_class="EnemyResource" load_steps=3 format=3 uid="uid://ysd6wl2gmdhn"] +[gd_resource type="Resource" script_class="EnemyResource" load_steps=4 format=3 uid="uid://ysd6wl2gmdhn"] +[ext_resource type="Script" uid="uid://cq65aed620ijo" path="res://Scripts/Resources/Loot/LootDrop.cs" id="1_sma76"] [ext_resource type="Resource" uid="uid://dyaxm3st70sh6" path="res://Resources/Weapons/Enemy/TurretWeapon.tres" id="1_yap8t"] [ext_resource type="Script" uid="uid://cd5o0ceb50jki" path="res://Scripts/Resources/EnemyResource.cs" id="2_sma76"] @@ -11,7 +12,8 @@ PrefabPath = &"res://Scenes/Actors/Turret360.tscn" MaxHealth = 14.0 MovementSpeed = 0.0 Weapon = ExtResource("1_yap8t") -LootDrops = [] +LootDrops = Array[ExtResource("1_sma76")]([]) +MotivationReward = 4.0 PlayerDetectionRange = 90.0 ViewRange = 120.0 AlarmReactRange = 200.0 diff --git a/Scenes/HUD/HUD.tscn b/Scenes/HUD/HUD.tscn index eaf950db..d4f63074 100644 --- a/Scenes/HUD/HUD.tscn +++ b/Scenes/HUD/HUD.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=35 format=3 uid="uid://dkwi1hu1bixoe"] +[gd_scene load_steps=36 format=3 uid="uid://dkwi1hu1bixoe"] [ext_resource type="Script" uid="uid://baf6pxbvhqmjk" path="res://Scripts/Hud.cs" id="1_m0hb0"] [ext_resource type="PackedScene" uid="uid://cd3ee1adstcrw" path="res://Scenes/HUD/HudItemContainer.tscn" id="2_mattb"] @@ -14,6 +14,7 @@ [ext_resource type="Theme" uid="uid://dnsadvmunm76k" path="res://Resources/Styles/MainMenuButtons.tres" id="9_sx5r0"] [ext_resource type="StyleBox" uid="uid://dnb4ogn847dyp" path="res://Resources/Styles/HealthBarBackground.tres" id="10_n0pka"] [ext_resource type="Script" uid="uid://bobo5f4ud60qw" path="res://Scripts/UI/ItemsMenu.cs" id="10_oflr6"] +[ext_resource type="Texture2D" uid="uid://3spfcuok2po2" path="res://ExternalMaterial/FairyDefeated/GameOver.png" id="10_s015s"] [ext_resource type="Script" uid="uid://com5b4ffsmj7s" path="res://Scripts/UI/InventoryMenu.cs" id="11_7pulb"] [ext_resource type="StyleBox" uid="uid://6ydsirgc5xi5" path="res://Resources/Styles/HealthBarFill.tres" id="11_j6myr"] [ext_resource type="Texture2D" uid="uid://bhmtp6i2g2f1c" path="res://Sprites/UI/ShieldBar.png" id="12_n0pka"] @@ -85,24 +86,58 @@ texture_margin_bottom = 3.0 [sub_resource type="LabelSettings" id="LabelSettings_bkqle"] font_color = Color(0, 0.737255, 0.113725, 1) -[node name="HUD" type="CanvasLayer" node_paths=PackedStringArray("_healthLabel", "_healthBar", "_shieldLabel", "_shieldBar", "_motivationLabel", "_itemsContainer", "_gameOverPanel", "PauseMenuContainer", "DebugMenuHolder")] +[node name="HUD" type="CanvasLayer" node_paths=PackedStringArray("_healthLabel", "_healthBar", "_shieldLabel", "_shieldBar", "_motivationLabel", "_itemsContainer", "_gameOverPanel", "_fairyTerminatedPanel", "_hudInfoPanel", "PauseMenuContainer", "DebugMenuHolder")] process_mode = 3 script = ExtResource("1_m0hb0") WeaponContainerTemplate = ExtResource("2_mattb") ItemNotificationTemplate = ExtResource("3_mw35l") -_healthLabel = NodePath("VBoxContainer/HealthBarContainer/HealthLabel") -_healthBar = NodePath("VBoxContainer/HealthBarContainer/HealthBar") -_shieldLabel = NodePath("VBoxContainer/ShieldBarContainer/ShieldLabel") -_shieldBar = NodePath("VBoxContainer/ShieldBarContainer/ShieldBar") -_motivationLabel = NodePath("VBoxContainer/MotivationContainer/Motivationlabel") -_itemsContainer = NodePath("VBoxContainer/ItemsContainer") +_healthLabel = NodePath("HudInfo/HealthBarContainer/HealthLabel") +_healthBar = NodePath("HudInfo/HealthBarContainer/HealthBar") +_shieldLabel = NodePath("HudInfo/ShieldBarContainer/ShieldLabel") +_shieldBar = NodePath("HudInfo/ShieldBarContainer/ShieldBar") +_motivationLabel = NodePath("HudInfo/MotivationContainer/Motivationlabel") +_itemsContainer = NodePath("HudInfo/ItemsContainer") _labelSettings = ExtResource("2_x7kl7") _gameOverPanel = NodePath("GameOver") +_fairyTerminatedPanel = NodePath("FairyTerminated") +_hudInfoPanel = NodePath("HudInfo") PauseMenuContainer = NodePath("PauseMenuContainer") PauseMenuScene = ExtResource("3_hxmxt") DebugMenuTemplate = ExtResource("4_gd1k6") DebugMenuHolder = NodePath("DebugContainer") +[node name="FairyTerminated" type="PanelContainer" parent="."] +visible = false +offset_left = -3.0 +offset_top = 34.0 +offset_right = 323.0 +offset_bottom = 88.0 + +[node name="VBoxContainer2" type="VBoxContainer" parent="FairyTerminated"] +layout_mode = 2 +size_flags_vertical = 4 +theme_override_constants/separation = -4 + +[node name="GameOver" type="Label" parent="FairyTerminated/VBoxContainer2"] +visible = false +layout_mode = 2 +text = "FAIRY: TERMINATED" +label_settings = SubResource("LabelSettings_a7f6n") +horizontal_alignment = 1 + +[node name="TextureRect" type="TextureRect" parent="FairyTerminated/VBoxContainer2"] +layout_mode = 2 +size_flags_horizontal = 4 +texture = ExtResource("8_3523e") +stretch_mode = 2 + +[node name="Label" type="Label" parent="FairyTerminated/VBoxContainer2"] +visible = false +layout_mode = 2 +text = "Press Shoot button to reform" +label_settings = SubResource("LabelSettings_5na8k") +horizontal_alignment = 1 + [node name="GameOver" type="PanelContainer" parent="."] visible = false offset_left = -3.0 @@ -125,7 +160,7 @@ horizontal_alignment = 1 [node name="TextureRect" type="TextureRect" parent="GameOver/VBoxContainer2"] layout_mode = 2 size_flags_horizontal = 4 -texture = ExtResource("8_3523e") +texture = ExtResource("10_s015s") stretch_mode = 2 [node name="Label" type="Label" parent="GameOver/VBoxContainer2"] @@ -146,7 +181,7 @@ sprite_frames = SubResource("SpriteFrames_78fwv") frame = 1 frame_progress = 0.8514 -[node name="VBoxContainer" type="VBoxContainer" parent="."] +[node name="HudInfo" type="VBoxContainer" parent="."] anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 @@ -160,10 +195,10 @@ size_flags_horizontal = 3 size_flags_vertical = 3 theme_override_constants/separation = 0 -[node name="HealthBarContainer" type="HBoxContainer" parent="VBoxContainer"] +[node name="HealthBarContainer" type="HBoxContainer" parent="HudInfo"] layout_mode = 2 -[node name="HealthBar" type="ProgressBar" parent="VBoxContainer/HealthBarContainer"] +[node name="HealthBar" type="ProgressBar" parent="HudInfo/HealthBarContainer"] custom_minimum_size = Vector2(34, 8) layout_mode = 2 size_flags_vertical = 4 @@ -173,16 +208,16 @@ value = 50.0 rounded = true show_percentage = false -[node name="HealthLabel" type="Label" parent="VBoxContainer/HealthBarContainer"] +[node name="HealthLabel" type="Label" parent="HudInfo/HealthBarContainer"] layout_mode = 2 text = "100/100" label_settings = ExtResource("2_x7kl7") vertical_alignment = 1 -[node name="ShieldBarContainer" type="HBoxContainer" parent="VBoxContainer"] +[node name="ShieldBarContainer" type="HBoxContainer" parent="HudInfo"] layout_mode = 2 -[node name="ShieldBar" type="ProgressBar" parent="VBoxContainer/ShieldBarContainer"] +[node name="ShieldBar" type="ProgressBar" parent="HudInfo/ShieldBarContainer"] custom_minimum_size = Vector2(34, 8) layout_mode = 2 size_flags_vertical = 4 @@ -191,27 +226,27 @@ theme_override_styles/fill = SubResource("StyleBoxTexture_5cvcb") value = 50.0 show_percentage = false -[node name="ShieldLabel" type="Label" parent="VBoxContainer/ShieldBarContainer"] +[node name="ShieldLabel" type="Label" parent="HudInfo/ShieldBarContainer"] layout_mode = 2 text = "100/100" label_settings = ExtResource("2_x7kl7") vertical_alignment = 1 -[node name="MotivationContainer" type="HBoxContainer" parent="VBoxContainer"] +[node name="MotivationContainer" type="HBoxContainer" parent="HudInfo"] layout_mode = 2 -[node name="Label" type="Label" parent="VBoxContainer/MotivationContainer"] +[node name="Label" type="Label" parent="HudInfo/MotivationContainer"] layout_mode = 2 text = "Motivation:" label_settings = ExtResource("2_x7kl7") -[node name="Motivationlabel" type="Label" parent="VBoxContainer/MotivationContainer"] +[node name="Motivationlabel" type="Label" parent="HudInfo/MotivationContainer"] layout_mode = 2 text = "100%" label_settings = ExtResource("2_x7kl7") vertical_alignment = 1 -[node name="ItemsContainer" type="VBoxContainer" parent="VBoxContainer"] +[node name="ItemsContainer" type="VBoxContainer" parent="HudInfo"] layout_mode = 2 size_flags_vertical = 3 theme_override_constants/separation = 0 diff --git a/Scenes/test.tscn b/Scenes/test.tscn index 6c44d016..e3e09973 100644 --- a/Scenes/test.tscn +++ b/Scenes/test.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=144 format=4 uid="uid://bv451a8wgty4u"] +[gd_scene load_steps=145 format=4 uid="uid://bv451a8wgty4u"] [ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_8tmoj"] [ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="2_ksslq"] @@ -66,6 +66,7 @@ [ext_resource type="Script" uid="uid://b5fesrd4lv8t1" path="res://Scripts/Resources/Events/EventResource.cs" id="46_0bqta"] [ext_resource type="Script" uid="uid://ddv26x2qilprb" path="res://Scripts/Resources/Events/DialogueStartEvent.cs" id="46_i0omr"] [ext_resource type="PackedScene" uid="uid://cqrkisw6jg24w" path="res://Scenes/Props/MainFrame1.tscn" id="46_ny2s2"] +[ext_resource type="Script" uid="uid://b5s5mjuk1rng5" path="res://Scripts/Resources/TimeModifier.cs" id="46_wma5c"] [ext_resource type="PackedScene" uid="uid://cdti0hnbs3e63" path="res://Scenes/Actors/RoamingSusan.tscn" id="47_u1ve6"] [ext_resource type="PackedScene" uid="uid://cke02i4e3bxld" path="res://Scenes/Props/MainFrame2.tscn" id="47_y5mcc"] [ext_resource type="PackedScene" uid="uid://b0pb078xylxy" path="res://Scenes/Interactable/Valve.tscn" id="48_8usll"] @@ -148,7 +149,7 @@ DamageType = 0 OverrideControllable = false Controllable = false OverrideCreationModifier = false -TimeModifiers = [] +TimeModifiers = Array[ExtResource("46_wma5c")]([]) WaitForCompletion = true metadata/_custom_type_script = "uid://c0ndqalsc4jve" @@ -1124,7 +1125,7 @@ position = Vector2(-2000, -736) [node name="ControlPad8" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("12_hfkf1")] position = Vector2(-2027, -735) Targets = [NodePath("../HorizontalForceField")] -Requirements = [ExtResource("84_ma1ta")] +Requirements = Array[ExtResource("6_8tdlb")]([ExtResource("84_ma1ta")]) [node name="Ammo6" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("34_17pjh")] position = Vector2(-872, -220) diff --git a/Scripts/Components/FSM/Player/Dead.cs b/Scripts/Components/FSM/Player/Dead.cs index b8a7485a..406071c0 100644 --- a/Scripts/Components/FSM/Player/Dead.cs +++ b/Scripts/Components/FSM/Player/Dead.cs @@ -18,6 +18,8 @@ public partial class Dead : PlayerStateBase [Export] private ActorResourceProvider _motivationProvider; + + private bool _isGameOver = false; public override void EnterState() { @@ -26,19 +28,21 @@ public partial class Dead : PlayerStateBase if (_motivationProvider.CurrentResource < 100f) { // If motivation is not enough show game over scene - GD.Print("Game over"); + Hud.Instance.ShowGameOver(); + _isGameOver = true; } else { // Else show respawn notification - Hud.Instance.ShowGameOver(); + Hud.Instance.ShowTerminated(); + _isGameOver = false; } } public override void ExitState() { // Hide game over - Hud.Instance.HideGameOver(); + Hud.Instance.HideTerminated(); } public override void ProcessState(double delta) @@ -46,7 +50,16 @@ public partial class Dead : PlayerStateBase // wait for button if (_inputProvider.GetShootJustPressed()) { - Respawn(); + if (_isGameOver) + { + // Restart Level + GlobalState.Instance.RestartLevel(); + } + else + { + Respawn(); + } + } } diff --git a/Scripts/GlobalState.cs b/Scripts/GlobalState.cs index 0c0ab6ce..870c6771 100644 --- a/Scripts/GlobalState.cs +++ b/Scripts/GlobalState.cs @@ -218,5 +218,9 @@ public partial class GlobalState : Node DisplayServer.CursorSetCustomImage(scaled); } - + + public void RestartLevel() + { + GotoScene(CurrentScene.GetSceneFilePath()); + } } \ No newline at end of file diff --git a/Scripts/Hud.cs b/Scripts/Hud.cs index ccf14101..b759b0d8 100644 --- a/Scripts/Hud.cs +++ b/Scripts/Hud.cs @@ -41,6 +41,9 @@ public partial class Hud : CanvasLayer [Export] private LabelSettings _labelSettings; [Export] private Container _gameOverPanel; + [Export] private Container _fairyTerminatedPanel; + + [Export] private Container _hudInfoPanel; [ExportGroup("Pause Menu")] [Export] public Control PauseMenuContainer; @@ -92,14 +95,40 @@ public partial class Hud : CanvasLayer public void ShowGameOver() { _gameOverPanel.Show(); + HideHud(); _playerDead = true; } public void HideGameOver() { _gameOverPanel.Hide(); + ShowHud(); _playerDead = false; } + + public void ShowTerminated() + { + _fairyTerminatedPanel.Show(); + HideHud(); + _playerDead = true; + } + + public void HideTerminated() + { + _fairyTerminatedPanel.Hide(); + ShowHud(); + _playerDead = false; + } + + public void ShowHud() + { + _hudInfoPanel.Show(); + } + + public void HideHud() + { + _hudInfoPanel.Hide(); + } public void UpdateHealth(float newHealth, float maxHealth) { @@ -107,7 +136,7 @@ public partial class Hud : CanvasLayer if (_playerDead && newHealth > 0) { _playerDead = false; - _gameOverPanel.Hide(); + _fairyTerminatedPanel.Hide(); } _healthLabel.Text = $"{newHealth}/{maxHealth}";