Weapons tested and general changes made to support the results of those tests

This commit is contained in:
2026-02-16 16:44:36 -08:00
parent a2ceb8e650
commit 017be896f3
43 changed files with 1096 additions and 821 deletions

View File

@@ -20,6 +20,8 @@ public partial class Armor : Node3D, IArmor
_bonusDamage = Stats.BonusAttack;
_bonusDefense = Stats.BonusDefense;
_bonusLuck = Stats.BonusLuck;
_bonusHp = Stats.BonusHP;
_bonusVt = Stats.BonusVT;
}
public string ItemName => Stats.Name;
@@ -60,6 +62,16 @@ public partial class Armor : Node3D, IArmor
[Save("armor_bonus_luck")]
private int _bonusLuck { get; set; } = 0;
public int BonusHP { get => _bonusHp; }
public int BonusVT { get => _bonusVt; }
[Save("armor_bonus_hp")]
private int _bonusHp { get; set; } = 0;
[Save("armor_bonus_vt")]
private int _bonusVt { get; set; } = 0;
public ElementalResistanceSet ElementalResistance => new ElementalResistanceSet(Stats.AeolicResistance, Stats.HydricResistance, Stats.IgneousResistance, Stats.FerrumResistance, Stats.TelluricResistance, Stats.HolyResistance, Stats.CurseResistance);
public void IncreaseArmorDefense(int bonus) => _bonusDefense += bonus;
@@ -71,9 +83,9 @@ public partial class Armor : Node3D, IArmor
[Save("armor_stats")]
[Export]
public ArmorStats Stats { get; set; } = new ArmorStats();
public Augment Augment { get; set; }
public int BonusHP { get; }
public int BonusVT { get; }
public bool Glued { get; set; }
public Texture2D GetTexture() => Stats.Texture;

View File

@@ -0,0 +1,33 @@
[gd_resource type="Resource" script_class="ArmorStats" load_steps=3 format=3 uid="uid://cu1uhwj8xjp58"]
[ext_resource type="Texture2D" uid="uid://ckt7wupdlylo2" path="res://src/items/armor/textures/HolyArmor2.png" id="1_5f68i"]
[ext_resource type="Script" uid="uid://dqtp6ewvttoyu" path="res://src/items/armor/ArmorStats.cs" id="2_11yah"]
[resource]
script = ExtResource("2_11yah")
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
_holyResistance = 0.0
_curseResistance = 0.0
Name = "Blessed Armor"
Description = "Raises HP by 25."
SpawnRate = 0.5
BonusAttack = 0
BonusDefense = 3
BonusLuck = 0
BonusHP = 25
BonusVT = 0
AeolicResistance = 0
TelluricResistance = 0
HydricResistance = 0
IgneousResistance = 0
FerrumResistance = 0
HolyResistance = 0
CurseResistance = 0
ThrowSpeed = 12.0
ThrowDamage = 5
ItemTag = 0
Texture = ExtResource("1_5f68i")

View File

@@ -0,0 +1,33 @@
[gd_resource type="Resource" script_class="ArmorStats" load_steps=3 format=3 uid="uid://djv02oycfyavl"]
[ext_resource type="Texture2D" uid="uid://ckt7wupdlylo2" path="res://src/items/armor/textures/HolyArmor2.png" id="1_1o8ag"]
[ext_resource type="Script" uid="uid://dqtp6ewvttoyu" path="res://src/items/armor/ArmorStats.cs" id="2_cwod3"]
[resource]
script = ExtResource("2_cwod3")
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
_holyResistance = 0.0
_curseResistance = 0.0
Name = "Demon Robe"
Description = "Raises Luck."
SpawnRate = 0.5
BonusAttack = 0
BonusDefense = 3
BonusLuck = 15
BonusHP = 0
BonusVT = 0
AeolicResistance = 0
TelluricResistance = 0
HydricResistance = 0
IgneousResistance = 0
FerrumResistance = 0
HolyResistance = 0
CurseResistance = 0
ThrowSpeed = 12.0
ThrowDamage = 5
ItemTag = 0
Texture = ExtResource("1_1o8ag")

View File

@@ -0,0 +1,33 @@
[gd_resource type="Resource" script_class="ArmorStats" load_steps=3 format=3 uid="uid://bbakqutps7jn6"]
[ext_resource type="Texture2D" uid="uid://ckt7wupdlylo2" path="res://src/items/armor/textures/HolyArmor2.png" id="1_ny4sc"]
[ext_resource type="Script" uid="uid://dqtp6ewvttoyu" path="res://src/items/armor/ArmorStats.cs" id="2_5nugg"]
[resource]
script = ExtResource("2_5nugg")
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
_holyResistance = 0.0
_curseResistance = 0.0
Name = "Gift of Grace"
Description = "Raises VT by 25."
SpawnRate = 0.5
BonusAttack = 0
BonusDefense = 3
BonusLuck = 0
BonusHP = 0
BonusVT = 25
AeolicResistance = 0
TelluricResistance = 0
HydricResistance = 0
IgneousResistance = 0
FerrumResistance = 0
HolyResistance = 0
CurseResistance = 0
ThrowSpeed = 12.0
ThrowDamage = 5
ItemTag = 0
Texture = ExtResource("1_ny4sc")

View File

@@ -0,0 +1,33 @@
[gd_resource type="Resource" script_class="ArmorStats" load_steps=3 format=3 uid="uid://vangfekav0c"]
[ext_resource type="Texture2D" uid="uid://8ls7ei4nl6le" path="res://src/items/armor/textures/Jaguar Suit.png" id="1_7p33d"]
[ext_resource type="Script" uid="uid://dqtp6ewvttoyu" path="res://src/items/armor/ArmorStats.cs" id="2_aw6ev"]
[resource]
script = ExtResource("2_aw6ev")
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
_holyResistance = 0.0
_curseResistance = 0.0
Name = "Jaguar Suit"
Description = "Raises ATK by 3."
SpawnRate = 0.5
BonusAttack = 3
BonusDefense = 3
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0
TelluricResistance = 0
HydricResistance = 0
IgneousResistance = 0
FerrumResistance = 0
HolyResistance = 0
CurseResistance = 0
ThrowSpeed = 12.0
ThrowDamage = 5
ItemTag = 0
Texture = ExtResource("1_7p33d")

View File

@@ -0,0 +1,34 @@
[gd_resource type="Resource" script_class="ArmorStats" load_steps=3 format=3 uid="uid://cn8d8d2m8g2cl"]
[ext_resource type="Texture2D" uid="uid://ckt7wupdlylo2" path="res://src/items/armor/textures/HolyArmor2.png" id="1_svley"]
[ext_resource type="Script" uid="uid://dqtp6ewvttoyu" path="res://src/items/armor/ArmorStats.cs" id="2_534n3"]
[resource]
script = ExtResource("2_534n3")
_telluricResistance = 20.0
_aeolicResistance = 20.0
_hydricResistance = 20.0
_igneousResistance = 20.0
_ferrumResistance = 20.0
_holyResistance = 20.0
_curseResistance = 20.0
Name = "Saint Cloth"
Description = "Resistant to all elements.
Raises HP and VT by 50."
SpawnRate = 0.5
BonusAttack = 0
BonusDefense = 5
BonusLuck = 0
BonusHP = 50
BonusVT = 50
AeolicResistance = 0
TelluricResistance = 0
HydricResistance = 0
IgneousResistance = 0
FerrumResistance = 0
HolyResistance = 0
CurseResistance = 0
ThrowSpeed = 12.0
ThrowDamage = 5
ItemTag = 0
Texture = ExtResource("1_svley")

View File

@@ -0,0 +1,33 @@
[gd_resource type="Resource" script_class="ArmorStats" load_steps=3 format=3 uid="uid://dvctqg5decxv5"]
[ext_resource type="Texture2D" uid="uid://ckt7wupdlylo2" path="res://src/items/armor/textures/HolyArmor2.png" id="1_abjuy"]
[ext_resource type="Script" uid="uid://dqtp6ewvttoyu" path="res://src/items/armor/ArmorStats.cs" id="2_gppme"]
[resource]
script = ExtResource("2_gppme")
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
_holyResistance = 0.0
_curseResistance = 0.0
Name = "Stone Safety"
Description = "Cannot be unequipped."
SpawnRate = 0.5
BonusAttack = 0
BonusDefense = 5
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0
TelluricResistance = 0
HydricResistance = 0
IgneousResistance = 0
FerrumResistance = 0
HolyResistance = 0
CurseResistance = 0
ThrowSpeed = 12.0
ThrowDamage = 5
ItemTag = 19
Texture = ExtResource("1_abjuy")

View File

@@ -17,7 +17,7 @@ Description = "+3 DEF"
SpawnRate = 0.3
BonusAttack = 0
BonusDefense = 3
BonusLuck = 0.05
BonusLuck = 5
BonusHP = 0
BonusVT = 0
AeolicResistance = 0

View File

@@ -16,6 +16,19 @@ public partial class Restorative : Node3D, IHealthPack
[Node] public Area3D Pickup { get; set; } = default!;
private Timer _despawnTimer;
public void OnEnterTree()
{
_despawnTimer = new Timer();
AddChild(_despawnTimer);
_despawnTimer.Timeout += _despawnTimer_Timeout;
_despawnTimer.WaitTime = 30;
_despawnTimer.Start();
}
private void _despawnTimer_Timeout() => CallDeferred(MethodName.QueueFree);
[Export]
public int RestoreAmount { get; set; } = 4;
}

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=7 format=3 uid="uid://cwtl2h0srj5jd"]
[gd_scene load_steps=10 format=3 uid="uid://cwtl2h0srj5jd"]
[ext_resource type="Script" uid="uid://qjvotbwutcb5" path="res://src/items/restorative/Restorative.cs" id="1_3beyl"]
[ext_resource type="Texture2D" uid="uid://b36xqrykgtdkw" path="res://src/items/restorative/texture/FRAME1.png" id="2_jv3e6"]
@@ -26,6 +26,43 @@ animations = [{
"speed": 7.0
}]
[sub_resource type="Animation" id="Animation_jv3e6"]
resource_name = "FadeOut"
length = 30.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("AnimatedSprite3D:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(25, 25.6, 26.3, 27.0333, 27.5333, 28.3333, 28.9308, 29.9955, 30),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0), Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_wrrxk"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("AnimatedSprite3D:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_wrrxk"]
_data = {
&"FadeOut": SubResource("Animation_jv3e6"),
&"RESET": SubResource("Animation_wrrxk")
}
[node name="Restorative" type="Node3D"]
script = ExtResource("1_3beyl")
@@ -45,3 +82,9 @@ texture_filter = 0
render_priority = 100
sprite_frames = SubResource("SpriteFrames_mejdx")
autoplay = "default"
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_wrrxk")
}
autoplay = "FadeOut"

View File

@@ -1,9 +1,7 @@
[gd_scene load_steps=73 format=3 uid="uid://c4kc2vybdy5t"]
[gd_scene load_steps=8 format=3 uid="uid://c4kc2vybdy5t"]
[ext_resource type="Script" uid="uid://cqm6u7qa8japr" path="res://src/system/Projectile.cs" id="1_7ykt2"]
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_3v8me"]
[ext_resource type="Texture2D" uid="uid://c1x4iaqgj2rur" path="res://src/vfx/Items Etc/smokepuff.png" id="3_7ykt2"]
[ext_resource type="AudioStream" uid="uid://bgvt4kqyvl5gp" path="res://src/audio/sfx/ENEMY_EDEN_FIRE.ogg" id="4_3v8me"]
[sub_resource type="Resource" id="Resource_14f5p"]
script = ExtResource("2_3v8me")
@@ -11,587 +9,35 @@ Damage = 99
ElementType = 0
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
[sub_resource type="AtlasTexture" id="AtlasTexture_3v8me"]
atlas = ExtResource("3_7ykt2")
region = Rect2(0, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_fqyvm"]
atlas = ExtResource("3_7ykt2")
region = Rect2(512, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_dd88y"]
atlas = ExtResource("3_7ykt2")
region = Rect2(1024, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_dh58r"]
atlas = ExtResource("3_7ykt2")
region = Rect2(1536, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_dkte1"]
atlas = ExtResource("3_7ykt2")
region = Rect2(2048, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_blqrc"]
atlas = ExtResource("3_7ykt2")
region = Rect2(2560, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_arywf"]
atlas = ExtResource("3_7ykt2")
region = Rect2(3072, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_8qbn2"]
atlas = ExtResource("3_7ykt2")
region = Rect2(3584, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_t4sid"]
atlas = ExtResource("3_7ykt2")
region = Rect2(4096, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_jsygo"]
atlas = ExtResource("3_7ykt2")
region = Rect2(4608, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_kgaue"]
atlas = ExtResource("3_7ykt2")
region = Rect2(5120, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_qyxji"]
atlas = ExtResource("3_7ykt2")
region = Rect2(5632, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_8ss7g"]
atlas = ExtResource("3_7ykt2")
region = Rect2(6144, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_87a2b"]
atlas = ExtResource("3_7ykt2")
region = Rect2(6656, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_6xin2"]
atlas = ExtResource("3_7ykt2")
region = Rect2(7168, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_vleot"]
atlas = ExtResource("3_7ykt2")
region = Rect2(7680, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_70ig7"]
atlas = ExtResource("3_7ykt2")
region = Rect2(8192, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_snqpl"]
atlas = ExtResource("3_7ykt2")
region = Rect2(8704, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_spu52"]
atlas = ExtResource("3_7ykt2")
region = Rect2(9216, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_rnfxb"]
atlas = ExtResource("3_7ykt2")
region = Rect2(9728, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_oywdj"]
atlas = ExtResource("3_7ykt2")
region = Rect2(10240, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_t6bla"]
atlas = ExtResource("3_7ykt2")
region = Rect2(10752, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_k40vd"]
atlas = ExtResource("3_7ykt2")
region = Rect2(11264, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_0wdl3"]
atlas = ExtResource("3_7ykt2")
region = Rect2(11776, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_d1m4j"]
atlas = ExtResource("3_7ykt2")
region = Rect2(12288, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_qs5lg"]
atlas = ExtResource("3_7ykt2")
region = Rect2(12800, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_uwjde"]
atlas = ExtResource("3_7ykt2")
region = Rect2(13312, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_pgllj"]
atlas = ExtResource("3_7ykt2")
region = Rect2(13824, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_mcef2"]
atlas = ExtResource("3_7ykt2")
region = Rect2(14336, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_6rbxw"]
atlas = ExtResource("3_7ykt2")
region = Rect2(14848, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_ng4rb"]
atlas = ExtResource("3_7ykt2")
region = Rect2(15360, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_xuahn"]
atlas = ExtResource("3_7ykt2")
region = Rect2(15872, 0, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_dsa18"]
atlas = ExtResource("3_7ykt2")
region = Rect2(0, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_hvxd8"]
atlas = ExtResource("3_7ykt2")
region = Rect2(512, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_jfuun"]
atlas = ExtResource("3_7ykt2")
region = Rect2(1024, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_gmolx"]
atlas = ExtResource("3_7ykt2")
region = Rect2(1536, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_rq7q0"]
atlas = ExtResource("3_7ykt2")
region = Rect2(2048, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_ehup4"]
atlas = ExtResource("3_7ykt2")
region = Rect2(2560, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_v46bh"]
atlas = ExtResource("3_7ykt2")
region = Rect2(3072, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_mn1q0"]
atlas = ExtResource("3_7ykt2")
region = Rect2(3584, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_57r4m"]
atlas = ExtResource("3_7ykt2")
region = Rect2(4096, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_cv4sa"]
atlas = ExtResource("3_7ykt2")
region = Rect2(4608, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_287xc"]
atlas = ExtResource("3_7ykt2")
region = Rect2(5120, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_igxdn"]
atlas = ExtResource("3_7ykt2")
region = Rect2(5632, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_yowi7"]
atlas = ExtResource("3_7ykt2")
region = Rect2(6144, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_74d6p"]
atlas = ExtResource("3_7ykt2")
region = Rect2(6656, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_37ncv"]
atlas = ExtResource("3_7ykt2")
region = Rect2(7168, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_f5mpf"]
atlas = ExtResource("3_7ykt2")
region = Rect2(7680, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_rbj0v"]
atlas = ExtResource("3_7ykt2")
region = Rect2(8192, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_kj88y"]
atlas = ExtResource("3_7ykt2")
region = Rect2(8704, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_li0qy"]
atlas = ExtResource("3_7ykt2")
region = Rect2(9216, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_6lgr3"]
atlas = ExtResource("3_7ykt2")
region = Rect2(9728, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_jd6k4"]
atlas = ExtResource("3_7ykt2")
region = Rect2(10240, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_0wyru"]
atlas = ExtResource("3_7ykt2")
region = Rect2(10752, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_ei8cw"]
atlas = ExtResource("3_7ykt2")
region = Rect2(11264, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_c6y4b"]
atlas = ExtResource("3_7ykt2")
region = Rect2(11776, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_j1hc4"]
atlas = ExtResource("3_7ykt2")
region = Rect2(12288, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_vbf54"]
atlas = ExtResource("3_7ykt2")
region = Rect2(12800, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_rrfn3"]
atlas = ExtResource("3_7ykt2")
region = Rect2(13312, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_hng4w"]
atlas = ExtResource("3_7ykt2")
region = Rect2(13824, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_0rgn5"]
atlas = ExtResource("3_7ykt2")
region = Rect2(14336, 512, 512, 512)
[sub_resource type="AtlasTexture" id="AtlasTexture_a3qva"]
atlas = ExtResource("3_7ykt2")
region = Rect2(14848, 512, 512, 512)
[sub_resource type="SpriteFrames" id="SpriteFrames_pck2g"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_3v8me")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_fqyvm")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dd88y")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dh58r")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dkte1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_blqrc")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_arywf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8qbn2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_t4sid")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jsygo")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kgaue")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qyxji")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8ss7g")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_87a2b")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6xin2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_vleot")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_70ig7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_snqpl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_spu52")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_rnfxb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_oywdj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_t6bla")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_k40vd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0wdl3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_d1m4j")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qs5lg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_uwjde")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_pgllj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_mcef2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6rbxw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ng4rb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_xuahn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dsa18")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hvxd8")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jfuun")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_gmolx")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_rq7q0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ehup4")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_v46bh")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_mn1q0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_57r4m")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_cv4sa")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_287xc")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_igxdn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_yowi7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_74d6p")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_37ncv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_f5mpf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_rbj0v")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kj88y")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_li0qy")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6lgr3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jd6k4")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0wyru")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ei8cw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_c6y4b")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_j1hc4")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_vbf54")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_rrfn3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hng4w")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0rgn5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_a3qva")
}],
"loop": false,
"name": &"default",
"speed": 24.0
}]
[sub_resource type="SphereShape3D" id="SphereShape3D_kct8n"]
[sub_resource type="Animation" id="Animation_xrn7e"]
resource_name = "fire"
length = 0.66667
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:animation")
tracks/0/path = NodePath("%ProjectileHitbox:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [&"default"]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.2, 0.666667),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0, 67]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("%ProjectileHitbox:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.666667),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 2.1, 0), Vector3(0, 2.1, -40)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("%ProjectileHitbox/CollisionShape3D:disabled")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.0166667, 0.666667),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("../Bullet/ProjectileHitbox/AudioStreamPlayer3D:stream")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("4_3v8me")]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("../Bullet/ProjectileHitbox/AudioStreamPlayer3D:playing")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0.0333333),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_8qeb2"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:animation")
tracks/0/path = NodePath("%ProjectileHitbox:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [&"default"]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("%ProjectileHitbox:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("%ProjectileHitbox/CollisionShape3D:disabled")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("%AudioStreamPlayer3D:playing")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
"values": [Vector3(0, 2.1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_q8n6h"]
@@ -600,34 +46,26 @@ _data = {
&"RESET": SubResource("Animation_8qeb2")
}
[sub_resource type="SphereShape3D" id="SphereShape3D_kct8n"]
[node name="Persuader" type="Node3D"]
script = ExtResource("1_7ykt2")
AttackData = SubResource("Resource_14f5p")
[node name="AnimatedSprite3D" type="AnimatedSprite3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.1, -2)
pixel_size = 0.0025
billboard = 1
sprite_frames = SubResource("SpriteFrames_pck2g")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
libraries = {
&"": SubResource("AnimationLibrary_q8n6h")
}
[node name="Bullet" type="Node3D" parent="."]
[node name="ProjectileHitbox" type="Area3D" parent="Bullet"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.1, 0)
collision_mask = 2049
monitoring = false
monitorable = false
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bullet/ProjectileHitbox"]
shape = SubResource("SphereShape3D_kct8n")
disabled = true
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="Bullet/ProjectileHitbox"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2.1, 5.8557)
stream = ExtResource("4_3v8me")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Bullet"]
unique_name_in_owner = true
root_node = NodePath("../../AnimatedSprite3D")
libraries = {
&"": SubResource("AnimationLibrary_q8n6h")
}

View File

@@ -22,6 +22,8 @@ public partial class Weapon : Node3D, IWeapon
_bonusDamage = Stats.BonusAttack;
_bonusDefense = Stats.BonusDefense;
_bonusLuck = Stats.BonusLuck;
_bonusHp = Stats.BonusHP;
_bonusVt = Stats.BonusVT;
}
public string ItemName => Stats.Name;
@@ -63,9 +65,9 @@ public partial class Weapon : Node3D, IWeapon
public int BonusLuck { get => _bonusLuck; }
public int BonusHP { get; }
public int BonusHP { get => _bonusHp; }
public int BonusVT { get; }
public int BonusVT { get => _bonusVt; }
[Save("weapon_bonus_damage")]
private int _bonusDamage { get; set; } = 0;
@@ -76,6 +78,12 @@ public partial class Weapon : Node3D, IWeapon
[Save("weapon_bonus_luck")]
private int _bonusLuck { get; set; } = 0;
[Save("weapon_bonus_hp")]
private int _bonusHp { get; set; } = 0;
[Save("weapon_bonus_vt")]
private int _bonusVt { get; set; } = 0;
[Export]
[Save("weapon_stats")]
public WeaponStats Stats { get; set; } = new WeaponStats();

View File

@@ -11,11 +11,13 @@ WeaponTag = 0
SelfDamage = 0
SoundEffect = 23
Name = "Black Plume Sword"
Description = "Deals curse damage."
Description = "Deals curse damage.
A profane blade to vanquish the sacred."
SpawnRate = 0.1
BonusAttack = 8
BonusDefense = 0
BonusLuck = 5
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0

View File

@@ -12,11 +12,13 @@ SelfDamage = 0
SoundEffect = 23
Name = "Ciello"
Description = "Triple Strike.
Does more damage when thrown."
Does more damage when thrown.
A performance of blades."
SpawnRate = 0.1
BonusAttack = 4
BonusDefense = 0
BonusLuck = 0.05
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0

View File

@@ -10,12 +10,14 @@ WeaponElement = 6
WeaponTag = 0
SelfDamage = 0
SoundEffect = 23
Name = "Cross Sword"
Description = "Holy damage."
Name = "Cruciform Sword"
Description = "Holy damage.
Wielded by the heroine of a convent from the late 176th Century."
SpawnRate = 0.1
BonusAttack = 9
BonusDefense = 0
BonusLuck = 0.05
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0

View File

@@ -11,11 +11,11 @@ WeaponTag = 11
SelfDamage = 0
SoundEffect = 23
Name = "Geomantic Reactor"
Description = ""
Description = "Standard armament of holy ecologists dispatched to the tower a thousand years ago."
SpawnRate = 0.1
BonusAttack = 15
BonusDefense = 0
BonusLuck = 5
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0

View File

@@ -15,7 +15,7 @@ Description = "Sword that strikes harder the lower HP you have."
SpawnRate = 0.1
BonusAttack = 0
BonusDefense = 0
BonusLuck = 0.05
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0

View File

@@ -15,7 +15,7 @@ Description = "Igneous damage."
SpawnRate = 0.1
BonusAttack = 7
BonusDefense = 0
BonusLuck = 0.05
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0

View File

@@ -13,9 +13,9 @@ SoundEffect = 23
Name = "Katara"
Description = "+1 ATK, Fast"
SpawnRate = 0.3
BonusAttack = 1
BonusAttack = 3
BonusDefense = 0
BonusLuck = 5
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0

View File

@@ -11,13 +11,14 @@ WeaponTag = 0
SelfDamage = 0
SoundEffect = 24
Name = "Kubel"
Description = "+9 ATK
A very powerful spear.
For every hit, you lose 5 HP."
Description = "Deals Ferrum damage.
Increases DEF by 3.
A massive weapon that protects oneself against larger foes."
SpawnRate = 0.01
BonusAttack = 9
BonusDefense = 0
BonusLuck = 0.05
BonusDefense = 3
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0

View File

@@ -16,7 +16,7 @@ A mace only wieldable by the stout of heart."
SpawnRate = 0.01
BonusAttack = 11
BonusDefense = 0
BonusLuck = 0.05
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0

View File

@@ -15,7 +15,7 @@ Description = "\"Earth, When I am about to Die, I Lean on you. Earth, While I am
SpawnRate = 0.01
BonusAttack = 7
BonusDefense = 0
BonusLuck = 0.05
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0

View File

@@ -15,7 +15,7 @@ Description = "Hydric Damage."
SpawnRate = 0.01
BonusAttack = 7
BonusDefense = 0
BonusLuck = 0.05
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0

View File

@@ -11,11 +11,11 @@ WeaponTag = 2
SelfDamage = 0
SoundEffect = 23
Name = "Nebula Chain"
Description = "Chain Whip that strikes through time and dimension."
Description = "Chain whip that strikes through time and dimension."
SpawnRate = 0.01
BonusAttack = 7
BonusAttack = 12
BonusDefense = 0
BonusLuck = 0.05
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0

View File

@@ -6,7 +6,7 @@
[resource]
script = ExtResource("1_pwwg7")
AttackSpeed = 1.0
WeaponElement = 7
WeaponElement = 8
WeaponTag = 0
SelfDamage = 0
SoundEffect = 23
@@ -15,7 +15,7 @@ Description = ""
SpawnRate = 0.01
BonusAttack = 8
BonusDefense = 0
BonusLuck = 0.05
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0

View File

@@ -11,11 +11,11 @@ WeaponTag = 12
SelfDamage = 0
SoundEffect = 23
Name = "Persuader"
Description = ""
Description = "A traveler's tool or path of extreme violence."
SpawnRate = 0.1
BonusAttack = 15
BonusAttack = 0
BonusDefense = 0
BonusLuck = 5
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0

View File

@@ -11,9 +11,11 @@ WeaponTag = 7
SelfDamage = 0
SoundEffect = 25
Name = "Plasma Sword"
Description = "Has the power to occasionally instantly disintegrate an enemy"
Description = "Rare protorelic found in the tower.
Has the power to occasionally instantly disintegrate an enemy."
SpawnRate = 0.5
BonusAttack = 0
BonusAttack = 14
BonusDefense = 0
BonusLuck = 10
BonusHP = 0

View File

@@ -15,7 +15,7 @@ Description = "Weapon that gradually becomes weaker."
SpawnRate = 0.3
BonusAttack = 8
BonusDefense = 0
BonusLuck = 5
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0

View File

@@ -11,7 +11,7 @@ WeaponTag = 0
SelfDamage = 0
SoundEffect = 24
Name = "Spaded Staff"
Description = ""
Description = "Heavy."
SpawnRate = 0.3
BonusAttack = 8
BonusDefense = 0

View File

@@ -16,7 +16,7 @@ The blade of a thousand faced heroine."
SpawnRate = 0.01
BonusAttack = 10
BonusDefense = 0
BonusLuck = 0.25
BonusLuck = 20
BonusHP = 0
BonusVT = 0
AeolicResistance = 0