From 29254dbda0d414ad7e9d9157a3ae713f40a75f50 Mon Sep 17 00:00:00 2001 From: Rendo Date: Tue, 1 Jul 2025 14:53:12 +0500 Subject: [PATCH] egrading armor and universal veil --- assets/sprites/atlases/plants/snow_pea.png | Bin 6398 -> 6518 bytes assets/sprites/atlases/zombies/armor.aseprite | Bin 0 -> 1689 bytes assets/sprites/atlases/zombies/armor.png | Bin 0 -> 6206 bytes .../sprites/atlases/zombies/armor.png.import | 34 ++++++++++++++++++ assets/sprites/bucket.tres | 7 ---- assets/sprites/bucket1.tres | 7 ++++ assets/sprites/bucket2.tres | 7 ++++ assets/sprites/bucket3.tres | 7 ++++ assets/sprites/{cone.tres => cone1.tres} | 0 assets/sprites/cone2.tres | 7 ++++ assets/sprites/cone3.tres | 7 ++++ project.godot | 2 -- scenes/entities/Zombies/bucket_zombie.tscn | 9 +++-- scenes/entities/Zombies/cone_zombie.tscn | 15 +++++--- scenes/entities/plants/wallnut.tscn | 1 - scenes/gui/main_menu.tscn | 1 + scenes/gui/seedpacket.tscn | 9 +++-- scenes/prototype_survival.tscn | 3 +- scripts/components/Armor.cs | 10 +++--- scripts/components/DegradingSprite.cs | 33 +++++++++++++++++ scripts/components/DegradingSprite.cs.uid | 1 + scripts/components/gui/VeilResizer.cs | 12 ++++++- 22 files changed, 142 insertions(+), 30 deletions(-) create mode 100644 assets/sprites/atlases/zombies/armor.aseprite create mode 100644 assets/sprites/atlases/zombies/armor.png create mode 100644 assets/sprites/atlases/zombies/armor.png.import delete mode 100644 assets/sprites/bucket.tres create mode 100644 assets/sprites/bucket1.tres create mode 100644 assets/sprites/bucket2.tres create mode 100644 assets/sprites/bucket3.tres rename assets/sprites/{cone.tres => cone1.tres} (100%) create mode 100644 assets/sprites/cone2.tres create mode 100644 assets/sprites/cone3.tres create mode 100644 scripts/components/DegradingSprite.cs create mode 100644 scripts/components/DegradingSprite.cs.uid diff --git a/assets/sprites/atlases/plants/snow_pea.png b/assets/sprites/atlases/plants/snow_pea.png index 69493489c17527e594a048e50cd0e5fa2928de24..8328e455c7d7762785acceb72daeefe7f55050ac 100644 GIT binary patch literal 6518 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 literal 6398 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 UGRMdIo%(N51B9571G``U0~-_lt^fc4 literal 0 HcmV?d00001 diff --git a/assets/sprites/atlases/zombies/armor.png b/assets/sprites/atlases/zombies/armor.png new file mode 100644 index 0000000000000000000000000000000000000000..33255e790969cb8d940d945a3fd63c9f17451f9a GIT binary patch literal 6206 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 XMKH1}5oPcHvs+tJU!(M= _maxHP) + if (_hp >= MaxHP) { - returnAmount = _hp-_maxHP; - _hp = _maxHP; + returnAmount = _hp-MaxHP; + _hp = MaxHP; } EmitSignal(SignalName.ArmorDamaged,_hp); return returnAmount; diff --git a/scripts/components/DegradingSprite.cs b/scripts/components/DegradingSprite.cs new file mode 100644 index 0000000..baa5e8f --- /dev/null +++ b/scripts/components/DegradingSprite.cs @@ -0,0 +1,33 @@ +using Godot; +using Godot.Collections; + +namespace Newlon.Components.Zombies; + +public partial class DegradingSprite : Sprite2D +{ + [Export] private Armor armor; + [Export] private Array degradationStages; + [Export] private Array thresholdPercentage; + + public override void _Ready() + { + armor.ArmorDamaged += OnZombieHPChanged; + } + + private void OnZombieHPChanged(int hp) + { + float percent = (float)hp / (float)armor.MaxHP; + for (int i = 0; i < degradationStages.Count; i++) + { + if (percent <= thresholdPercentage[i]) + { + Texture = degradationStages[i]; + } + else + { + break; + } + } + } + +} diff --git a/scripts/components/DegradingSprite.cs.uid b/scripts/components/DegradingSprite.cs.uid new file mode 100644 index 0000000..a6ffb07 --- /dev/null +++ b/scripts/components/DegradingSprite.cs.uid @@ -0,0 +1 @@ +uid://bbw848msxb4re diff --git a/scripts/components/gui/VeilResizer.cs b/scripts/components/gui/VeilResizer.cs index c7c5a44..8fa367a 100644 --- a/scripts/components/gui/VeilResizer.cs +++ b/scripts/components/gui/VeilResizer.cs @@ -1,13 +1,23 @@ using Godot; +using Newlon.Components.GUI.Seedpackets; namespace Newlon.Components.GUI; public partial class VeilResizer : TextureProgressBar { [Export] private Timer _referenceTimer; + private Seedpacket seedpacket; + + public override void _Ready() + { + seedpacket = GetParent(); + } public override void _Process(double delta) { - Value = (_referenceTimer.TimeLeft/_referenceTimer.WaitTime); + if (seedpacket.Disabled && _referenceTimer.IsStopped()) + Value = 1.0; + else + Value = _referenceTimer.TimeLeft / _referenceTimer.WaitTime; } }