egrading armor and universal veil

This commit is contained in:
Rendo 2025-07-01 14:53:12 +05:00
commit 29254dbda0
22 changed files with 142 additions and 30 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Before After
Before After

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b18blso5pbc6a"
path="res://.godot/imported/armor.png-18d1dee9d58098145c2a15ea84198bc9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/atlases/zombies/armor.png"
dest_files=["res://.godot/imported/armor.png-18d1dee9d58098145c2a15ea84198bc9.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

View file

@ -1,7 +0,0 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://ce04l60l6mhfk"]
[ext_resource type="Texture2D" uid="uid://cmxh4w4gkgdjm" path="res://assets/sprites/atlases/zombies/basic.png" id="1_n66kp"]
[resource]
atlas = ExtResource("1_n66kp")
region = Rect2(21, 23, 34, 38)

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://ce04l60l6mhfk"]
[ext_resource type="Texture2D" uid="uid://b18blso5pbc6a" path="res://assets/sprites/atlases/zombies/armor.png" id="1_drgch"]
[resource]
atlas = ExtResource("1_drgch")
region = Rect2(0, 33, 34, 38)

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://ikk4jp7mvm3s"]
[ext_resource type="Texture2D" uid="uid://b18blso5pbc6a" path="res://assets/sprites/atlases/zombies/armor.png" id="1_l2quk"]
[resource]
atlas = ExtResource("1_l2quk")
region = Rect2(34, 33, 33, 36)

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://cmmpfi8ug43l2"]
[ext_resource type="Texture2D" uid="uid://b18blso5pbc6a" path="res://assets/sprites/atlases/zombies/armor.png" id="1_n3lqc"]
[resource]
atlas = ExtResource("1_n3lqc")
region = Rect2(67, 33, 29, 33)

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://cl5ekw72wi75c"]
[ext_resource type="Texture2D" uid="uid://b18blso5pbc6a" path="res://assets/sprites/atlases/zombies/armor.png" id="1_au0m1"]
[resource]
atlas = ExtResource("1_au0m1")
region = Rect2(31, 1, 31, 32)

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://cnn81r1y0xwod"]
[ext_resource type="Texture2D" uid="uid://b18blso5pbc6a" path="res://assets/sprites/atlases/zombies/armor.png" id="1_rrcfd"]
[resource]
atlas = ExtResource("1_rrcfd")
region = Rect2(62, 11, 31, 22)

View file

@ -29,7 +29,6 @@ AudioSequencer="*res://scenes/audio_sequencer.tscn"
window/size/viewport_width=600
window/size/viewport_height=400
window/stretch/mode="canvas_items"
window/per_pixel_transparency/allowed=true
[dotnet]
@ -91,4 +90,3 @@ cheat_zombie_spawn={
[rendering]
textures/canvas_textures/default_texture_filter=0
2d/snap/snap_2d_transforms_to_pixel=true

View file

@ -1,10 +1,12 @@
[gd_scene load_steps=10 format=3 uid="uid://xu4i6tmkv00a"]
[gd_scene load_steps=12 format=3 uid="uid://xu4i6tmkv00a"]
[ext_resource type="PackedScene" uid="uid://hhjbqkjqpt7x" path="res://scenes/entities/Zombies/cone_zombie.tscn" id="1_mwqpo"]
[ext_resource type="Shader" uid="uid://d0eo5uuj222c4" path="res://assets/shaders/CG_color_blender.gdshader" id="2_3mrqj"]
[ext_resource type="Texture2D" uid="uid://ce04l60l6mhfk" path="res://assets/sprites/bucket.tres" id="3_0nlp0"]
[ext_resource type="Texture2D" uid="uid://ce04l60l6mhfk" path="res://assets/sprites/bucket1.tres" id="3_0nlp0"]
[ext_resource type="Script" uid="uid://c3cfnrmnnuqms" path="res://addons/floatmodifiers/FloatModifiers.cs" id="4_1s2fn"]
[ext_resource type="Texture2D" uid="uid://ikk4jp7mvm3s" path="res://assets/sprites/bucket2.tres" id="4_xx7fu"]
[ext_resource type="AudioStream" uid="uid://bu1egfsyplpx4" path="res://assets/audio/sfx/metalhit_generic.tres" id="5_lt6ps"]
[ext_resource type="Texture2D" uid="uid://cmmpfi8ug43l2" path="res://assets/sprites/bucket3.tres" id="5_v1iwd"]
[ext_resource type="AudioStream" uid="uid://w0qfwds4o3ti" path="res://assets/audio/sfx/hit_generic.tres" id="6_kedip"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wdi07"]
@ -38,6 +40,7 @@ position = Vector2(-13, -82)
[node name="Sprite" parent="CanvasGroup/Hat" index="0"]
position = Vector2(1, 0)
texture = ExtResource("3_0nlp0")
degradationStages = Array[Texture]([ExtResource("3_0nlp0"), ExtResource("4_xx7fu"), ExtResource("5_v1iwd")])
[node name="Eatbox" parent="." index="2"]
_damage = SubResource("Resource_2bm8y")
@ -46,7 +49,7 @@ _damage = SubResource("Resource_2bm8y")
_speed = SubResource("Resource_lt6ps")
[node name="Armor" parent="." index="7"]
_maxHP = 385
MaxHP = 430
[node name="HitPlayer" parent="." index="8"]
playlist = Array[AudioStream]([ExtResource("5_lt6ps"), ExtResource("6_kedip")])

View file

@ -1,12 +1,15 @@
[gd_scene load_steps=13 format=3 uid="uid://hhjbqkjqpt7x"]
[gd_scene load_steps=16 format=3 uid="uid://hhjbqkjqpt7x"]
[ext_resource type="PackedScene" uid="uid://co11v3w8hbwgf" path="res://scenes/entities/Zombies/zombie.tscn" id="1_3dq4c"]
[ext_resource type="Shader" uid="uid://d0eo5uuj222c4" path="res://assets/shaders/CG_color_blender.gdshader" id="2_2dq8e"]
[ext_resource type="Script" uid="uid://fd4im1fmwc5n" path="res://scripts/components/Armor.cs" id="3_5s7in"]
[ext_resource type="Script" uid="uid://dt5uj25u0g6y3" path="res://scripts/components/particles/FallParticle.cs" id="3_w70im"]
[ext_resource type="Texture2D" uid="uid://ceqvdmude7cgg" path="res://assets/sprites/cone.tres" id="4_qdhik"]
[ext_resource type="Texture2D" uid="uid://ceqvdmude7cgg" path="res://assets/sprites/cone1.tres" id="4_qdhik"]
[ext_resource type="Script" uid="uid://c3cfnrmnnuqms" path="res://addons/floatmodifiers/FloatModifiers.cs" id="4_qof5v"]
[ext_resource type="Script" uid="uid://bbw848msxb4re" path="res://scripts/components/DegradingSprite.cs" id="5_ickyd"]
[ext_resource type="Texture2D" uid="uid://cl5ekw72wi75c" path="res://assets/sprites/cone2.tres" id="6_b6mal"]
[ext_resource type="AudioStream" uid="uid://bmupd3v3gvsca" path="res://assets/audio/sfx/plastichit_generic.tres" id="7_0amn8"]
[ext_resource type="Texture2D" uid="uid://cnn81r1y0xwod" path="res://assets/sprites/cone3.tres" id="7_011r0"]
[ext_resource type="AudioStream" uid="uid://w0qfwds4o3ti" path="res://assets/audio/sfx/hit_generic.tres" id="7_67t4t"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_sat5k"]
@ -51,9 +54,13 @@ minTorque = -45.0
maxTorque = 45.0
Impulse = 100.0
[node name="Sprite" type="Sprite2D" parent="CanvasGroup/Hat" index="0"]
[node name="Sprite" type="Sprite2D" parent="CanvasGroup/Hat" index="0" node_paths=PackedStringArray("armor")]
position = Vector2(-1, -12)
texture = ExtResource("4_qdhik")
script = ExtResource("5_ickyd")
armor = NodePath("../../../Armor")
degradationStages = Array[Texture]([ExtResource("4_qdhik"), ExtResource("6_b6mal"), ExtResource("7_011r0")])
thresholdPercentage = Array[float]([1.0, 0.667, 0.333])
[node name="CollisionShape2D" type="CollisionShape2D" parent="CanvasGroup/Hat" index="1"]
position = Vector2(1, -6)
@ -67,7 +74,7 @@ _speed = SubResource("Resource_qof5v")
[node name="Armor" type="Node" parent="." index="7"]
script = ExtResource("3_5s7in")
_maxHP = 130
MaxHP = 125
[node name="HitPlayer" parent="." index="8"]
playlist = Array[AudioStream]([ExtResource("7_0amn8"), ExtResource("7_67t4t")])

View file

@ -34,7 +34,6 @@ _maxHP = 600
texture = ExtResource("2_o5tda")
hframes = 12
vframes = 3
frame = 10
[node name="AnimationPlayer" parent="." index="1"]
libraries = {

View file

@ -24,6 +24,7 @@ grow_vertical = 2
[node name="PrototypeWindow" type="AcceptDialog" parent="."]
title = ""
size = Vector2i(600, 400)
visible = true
unresizable = true
borderless = true
theme_override_styles/panel = SubResource("StyleBoxTexture_jl0ue")

View file

@ -1,7 +1,6 @@
[gd_scene load_steps=10 format=3 uid="uid://e7vutg71l6f2"]
[gd_scene load_steps=9 format=3 uid="uid://e7vutg71l6f2"]
[ext_resource type="Texture2D" uid="uid://dxyf557m4mq1p" path="res://assets/sprites/gui/EmptyPlantCard.png" id="1_77bw1"]
[ext_resource type="Texture2D" uid="uid://cxlr34yh0bqch" path="res://assets/sprites/gui/DisabledEmptyCard.png" id="2_2gojx"]
[ext_resource type="Texture2D" uid="uid://cabpf23ndlvx0" path="res://assets/sprites/gui/Selection.tres" id="3_q0tvq"]
[ext_resource type="Script" uid="uid://cn6ddajdtf4ep" path="res://scripts/components/gui/seedpackets/Seedpacket.cs" id="4_c6epd"]
[ext_resource type="Shader" uid="uid://dcp5tqcec2oi3" path="res://assets/shaders/gui_masking.gdshader" id="5_s5861"]
@ -20,10 +19,10 @@ shader_parameter/mask = ExtResource("1_77bw1")
anchors_preset = -1
anchor_right = 0.137
anchor_bottom = 0.28
offset_right = -0.200005
offset_left = 2.0
offset_right = 1.8
mouse_default_cursor_shape = 2
texture_normal = ExtResource("1_77bw1")
texture_disabled = ExtResource("2_2gojx")
texture_focused = ExtResource("3_q0tvq")
stretch_mode = 0
script = ExtResource("4_c6epd")
@ -90,7 +89,7 @@ step = 0.001
fill_mode = 3
nine_patch_stretch = true
texture_progress = ExtResource("6_lp42h")
tint_progress = Color(0, 0, 0, 0.843137)
tint_progress = Color(0, 0, 0, 0.501961)
script = ExtResource("7_tv07f")
_referenceTimer = NodePath("../RechargeTimer")

View file

@ -182,7 +182,7 @@ size = Vector2(282, 399)
[node name="Data" type="Node" parent="."]
script = ExtResource("1_tnxdx")
SunCount = 50
SunCount = 10000
[node name="Background" type="Sprite2D" parent="."]
position = Vector2(500, 200)
@ -191,7 +191,6 @@ metadata/_edit_lock_ = true
[node name="Camera2D" type="Camera2D" parent="."]
position = Vector2(481, 200)
metadata/_edit_lock_ = true
[node name="Pools" type="Node2D" parent="." node_paths=PackedStringArray("Zombies", "Plants", "Projectiles", "Structures", "Particles")]
script = ExtResource("3_6128b")

View file

@ -11,13 +11,13 @@ public partial class Armor : Node
public delegate void ArmorLostEventHandler();
[Export]
private int _maxHP;
public int MaxHP { get; private set; }
private int _hp;
private bool _lost = false;
public override void _Ready()
{
_hp = _maxHP;
_hp = MaxHP;
}
public int RecieveDamage(int damage)
@ -43,10 +43,10 @@ public partial class Armor : Node
return amount;
int returnAmount = 0;
_hp += amount;
if (_hp >= _maxHP)
if (_hp >= MaxHP)
{
returnAmount = _hp-_maxHP;
_hp = _maxHP;
returnAmount = _hp-MaxHP;
_hp = MaxHP;
}
EmitSignal(SignalName.ArmorDamaged,_hp);
return returnAmount;

View file

@ -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<Texture2D> degradationStages;
[Export] private Array<float> 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;
}
}
}
}

View file

@ -0,0 +1 @@
uid://bbw848msxb4re

View file

@ -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<Seedpacket>();
}
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;
}
}