diff --git a/Zennysoft.Game.Ma.Implementation/Components/ElementType.cs b/Zennysoft.Game.Ma.Implementation/Components/ElementType.cs index 890ece167..559766782 100644 --- a/Zennysoft.Game.Ma.Implementation/Components/ElementType.cs +++ b/Zennysoft.Game.Ma.Implementation/Components/ElementType.cs @@ -9,5 +9,6 @@ public enum ElementType Igneous, Ferrum, Holy, + Curse, All } diff --git a/Zennysoft.Game.Ma.Implementation/Entity/ElementalResistanceSet.cs b/Zennysoft.Game.Ma.Implementation/Entity/ElementalResistanceSet.cs index b1666236a..cae2b4224 100644 --- a/Zennysoft.Game.Ma.Implementation/Entity/ElementalResistanceSet.cs +++ b/Zennysoft.Game.Ma.Implementation/Entity/ElementalResistanceSet.cs @@ -7,9 +7,9 @@ namespace Zennysoft.Ma.Adapter.Entity [Save("elemental_resist_set")] public Dictionary ElementalResistance { get; } - public static ElementalResistanceSet None => new ElementalResistanceSet(0, 0, 0, 0, 0, 0); + public static ElementalResistanceSet None => new ElementalResistanceSet(0, 0, 0, 0, 0, 0, 0); - public ElementalResistanceSet(double aeolicResistance, double hydricResistance, double igneousResistance, double ferrumResistance, double telluricResistance, double holyResistance) + public ElementalResistanceSet(double aeolicResistance, double hydricResistance, double igneousResistance, double ferrumResistance, double telluricResistance, double holyResistance, double curseResistance) { ElementalResistance = new Dictionary { @@ -20,7 +20,8 @@ namespace Zennysoft.Ma.Adapter.Entity { ElementType.Ferrum, ferrumResistance }, { ElementType.Telluric, telluricResistance }, { ElementType.Holy, holyResistance }, - { ElementType.All, aeolicResistance + hydricResistance + igneousResistance + ferrumResistance + telluricResistance + holyResistance }, + { ElementType.Curse, curseResistance }, + { ElementType.All, aeolicResistance + hydricResistance + igneousResistance + ferrumResistance + telluricResistance + holyResistance + curseResistance }, }; } @@ -32,7 +33,8 @@ namespace Zennysoft.Ma.Adapter.Entity left.ElementalResistance[ElementType.Igneous] + right.ElementalResistance[ElementType.Igneous], left.ElementalResistance[ElementType.Ferrum] + right.ElementalResistance[ElementType.Ferrum], left.ElementalResistance[ElementType.Telluric] + right.ElementalResistance[ElementType.Telluric], - left.ElementalResistance[ElementType.Holy] + right.ElementalResistance[ElementType.Holy]); + left.ElementalResistance[ElementType.Holy] + right.ElementalResistance[ElementType.Holy], + left.ElementalResistance[ElementType.Curse] + right.ElementalResistance[ElementType.Curse]); } } } diff --git a/Zennysoft.Game.Ma.Implementation/Equipment/EquipableItem.cs b/Zennysoft.Game.Ma.Implementation/Equipment/EquipableItem.cs index c6cd31aa3..ce952be63 100644 --- a/Zennysoft.Game.Ma.Implementation/Equipment/EquipableItem.cs +++ b/Zennysoft.Game.Ma.Implementation/Equipment/EquipableItem.cs @@ -18,5 +18,5 @@ public abstract partial class EquipableItem : InventoryItem [Save("bonus_luck_stats")] public virtual int BonusLuck { get; } [Save("bonus_elemental_resist_stats")] - public virtual ElementalResistanceSet ElementalResistance { get; } = new ElementalResistanceSet(0, 0, 0, 0, 0, 0); + public virtual ElementalResistanceSet ElementalResistance { get; } = new ElementalResistanceSet(0, 0, 0, 0, 0, 0, 0); } diff --git a/Zennysoft.Game.Ma/export_presets.cfg b/Zennysoft.Game.Ma/export_presets.cfg index d19dbeb75..2c6b8dce3 100644 --- a/Zennysoft.Game.Ma/export_presets.cfg +++ b/Zennysoft.Game.Ma/export_presets.cfg @@ -9,7 +9,7 @@ custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" -export_path="../Export/Ma.exe" +export_path="Export/Ma.exe" patches=PackedStringArray() encryption_include_filters="" encryption_exclude_filters="" diff --git a/Zennysoft.Game.Ma/src/enemy/Enemy.cs b/Zennysoft.Game.Ma/src/enemy/Enemy.cs index 04415eeaf..92ef28f7a 100644 --- a/Zennysoft.Game.Ma/src/enemy/Enemy.cs +++ b/Zennysoft.Game.Ma/src/enemy/Enemy.cs @@ -57,7 +57,9 @@ public abstract partial class Enemy : CharacterBody3D, IEnemy, IProvide new ElementalResistanceSet(AeolicResistance, HydricResistance, IgenousResistance, FerrumResistance, TelluricResistance, HolyResistance); + [Export] public double CurseResistance { get; set; } + + public ElementalResistanceSet ElementalResistanceSet => new ElementalResistanceSet(AeolicResistance, HydricResistance, IgenousResistance, FerrumResistance, TelluricResistance, HolyResistance, CurseResistance); [Node] private AudioStreamPlayer3D _absorbSFX { get; set; } = default!; [Node] private AudioStreamPlayer3D _hitSFX { get; set; } = default!; diff --git a/Zennysoft.Game.Ma/src/items/InventoryItemStats.cs b/Zennysoft.Game.Ma/src/items/InventoryItemStats.cs index 0b82d9891..a7baf5cbd 100644 --- a/Zennysoft.Game.Ma/src/items/InventoryItemStats.cs +++ b/Zennysoft.Game.Ma/src/items/InventoryItemStats.cs @@ -63,6 +63,10 @@ public abstract partial class InventoryItemStats : Resource [Save("equipment_holy_resist")] public int HolyResistance { get; set; } = 0; + [Export] + [Save("equipment_curse_resist")] + public int CurseResistance { get; set; } = 0; + [Export(PropertyHint.Range, "0, 25, 0.1")] [Save("equipment_throw_speed")] public float ThrowSpeed { get; set; } = 12.0f; diff --git a/Zennysoft.Game.Ma/src/items/accessory/Accessory.cs b/Zennysoft.Game.Ma/src/items/accessory/Accessory.cs index 0d9a45946..d2a976011 100644 --- a/Zennysoft.Game.Ma/src/items/accessory/Accessory.cs +++ b/Zennysoft.Game.Ma/src/items/accessory/Accessory.cs @@ -38,7 +38,7 @@ public partial class Accessory : EquipableItem public override int BonusLuck { get => Stats.BonusLuck + _bonusLuck; } - public override ElementalResistanceSet ElementalResistance => new ElementalResistanceSet(Stats.AeolicResistance, Stats.HydricResistance, Stats.IgneousResistance, Stats.FerrumResistance, Stats.TelluricResistance, Stats.HolyResistance); + public override ElementalResistanceSet ElementalResistance => new ElementalResistanceSet(Stats.AeolicResistance, Stats.HydricResistance, Stats.IgneousResistance, Stats.FerrumResistance, Stats.TelluricResistance, Stats.HolyResistance, Stats.CurseResistance); [Save("accessory_tag")] public AccessoryTag AccessoryTag => Stats.AccessoryTag; diff --git a/Zennysoft.Game.Ma/src/items/armor/Armor.cs b/Zennysoft.Game.Ma/src/items/armor/Armor.cs index b83e80ff3..30a77d942 100644 --- a/Zennysoft.Game.Ma/src/items/armor/Armor.cs +++ b/Zennysoft.Game.Ma/src/items/armor/Armor.cs @@ -39,7 +39,7 @@ public partial class Armor : EquipableItem [Save("armor_bonus_luck")] private int _bonusLuck { get; set; } = 0; - public override ElementalResistanceSet ElementalResistance => new ElementalResistanceSet(Stats.AeolicResistance, Stats.HydricResistance, Stats.IgneousResistance, Stats.FerrumResistance, Stats.TelluricResistance, Stats.HolyResistance); + public override 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; diff --git a/Zennysoft.Game.Ma/src/items/armor/ArmorStats.cs b/Zennysoft.Game.Ma/src/items/armor/ArmorStats.cs index 3d9893279..42f625c42 100644 --- a/Zennysoft.Game.Ma/src/items/armor/ArmorStats.cs +++ b/Zennysoft.Game.Ma/src/items/armor/ArmorStats.cs @@ -33,5 +33,9 @@ public partial class ArmorStats : InventoryItemStats [Save("armor_holy_resistance")] private double _holyResistance { get; set; } = 0; - public ElementalResistanceSet ElementalResistanceSet => new ElementalResistanceSet(_aeolicResistance, _hydricResistance, _igneousResistance, _ferrumResistance, _telluricResistance, _holyResistance); + [Export] + [Save("armor_curse_resistance")] + private double _curseResistance { get; set; } = 0; + + public ElementalResistanceSet ElementalResistanceSet => new ElementalResistanceSet(_aeolicResistance, _hydricResistance, _igneousResistance, _ferrumResistance, _telluricResistance, _holyResistance, _curseResistance); } diff --git a/Zennysoft.Game.Ma/src/items/weapons/Weapon.cs b/Zennysoft.Game.Ma/src/items/weapons/Weapon.cs index 7a24c0afe..91c27093e 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/Weapon.cs +++ b/Zennysoft.Game.Ma/src/items/weapons/Weapon.cs @@ -44,7 +44,7 @@ public partial class Weapon : EquipableItem [Save("weapon_element")] public ElementType WeaponElement => Stats.WeaponElement; - public override ElementalResistanceSet ElementalResistance => new ElementalResistanceSet(Stats.AeolicResistance, Stats.HydricResistance, Stats.IgneousResistance, Stats.FerrumResistance, Stats.TelluricResistance, Stats.HolyResistance); + public override ElementalResistanceSet ElementalResistance => new ElementalResistanceSet(Stats.AeolicResistance, Stats.HydricResistance, Stats.IgneousResistance, Stats.FerrumResistance, Stats.TelluricResistance, Stats.HolyResistance, Stats.CurseResistance); public void IncreaseWeaponAttack(int bonus) => _bonusDamage += bonus; diff --git a/Zennysoft.Game.Ma/src/items/weapons/resources/BlackPlumeSword.tres b/Zennysoft.Game.Ma/src/items/weapons/resources/BlackPlumeSword.tres index dd8d21b1d..c3c6ba195 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/resources/BlackPlumeSword.tres +++ b/Zennysoft.Game.Ma/src/items/weapons/resources/BlackPlumeSword.tres @@ -6,15 +6,16 @@ [resource] script = ExtResource("2_yrbai") AttackSpeed = 1.0 -WeaponElement = 0 +WeaponElement = 7 WeaponTag = 0 +SelfDamage = 0 SoundEffect = 22 Name = "Black Plume Sword" -Description = "Curse Element" +Description = "Deals curse damage." SpawnRate = 0.1 BonusAttack = 8 BonusDefense = 0 -BonusLuck = 0.05 +BonusLuck = 5 BonusHP = 0 BonusVT = 0 AeolicResistance = 0 @@ -23,6 +24,7 @@ HydricResistance = 0 IgneousResistance = 0 FerrumResistance = 0 HolyResistance = 0 +CurseResistance = 0 ThrowSpeed = 12.0 ThrowDamage = 5 ItemTag = 0 diff --git a/Zennysoft.Game.Ma/src/items/weapons/resources/Ciello.tres b/Zennysoft.Game.Ma/src/items/weapons/resources/Ciello.tres index b49f8a588..6a6c95e4b 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/resources/Ciello.tres +++ b/Zennysoft.Game.Ma/src/items/weapons/resources/Ciello.tres @@ -8,6 +8,7 @@ script = ExtResource("2_tps6s") AttackSpeed = 1.0 WeaponElement = 0 WeaponTag = 0 +SelfDamage = 0 SoundEffect = 22 Name = "Ciello" Description = "Triple Strike. @@ -24,7 +25,8 @@ HydricResistance = 0 IgneousResistance = 0 FerrumResistance = 0 HolyResistance = 0 -ThrowSpeed = 12.0 -ThrowDamage = 5 +CurseResistance = 0 +ThrowSpeed = 20.0 +ThrowDamage = 25 ItemTag = 0 Texture = ExtResource("1_jiewn") diff --git a/Zennysoft.Game.Ma/src/player/Player.tscn b/Zennysoft.Game.Ma/src/player/Player.tscn index f98d514ba..f68c8e8a3 100644 --- a/Zennysoft.Game.Ma/src/player/Player.tscn +++ b/Zennysoft.Game.Ma/src/player/Player.tscn @@ -1017,6 +1017,46 @@ tracks/2/keys = { "values": [true, false, true] } +[sub_resource type="Animation" id="Animation_ymsks"] +resource_name = "FireSlash" +length = 1.23334 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"Fire Slash"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 1.23333), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0, 37] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("%Hitbox/HitboxCollision:disabled") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.166667, 0.233333), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [true, false, true] +} + [sub_resource type="Animation" id="Animation_cssau"] resource_name = "HitWall" length = 0.625002 @@ -1070,9 +1110,129 @@ tracks/3/keys = { "values": [0, 5, 0] } +[sub_resource type="Animation" id="Animation_vc6qm"] +resource_name = "LoveJudgement" +length = 1.23334 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"Love Judgement"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 1.23333), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0, 37] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("%Hitbox/HitboxCollision:disabled") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.166667, 0.233333), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [true, false, true] +} + +[sub_resource type="Animation" id="Animation_lysy5"] +resource_name = "NormalSlash" +length = 1.23334 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"Normal Slash 1"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 1.23333), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0, 37] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("%Hitbox/HitboxCollision:disabled") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.166667, 0.233333), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [true, false, true] +} + [sub_resource type="Animation" id="Animation_v3vjx"] resource_name = "Persuader" +[sub_resource type="Animation" id="Animation_na483"] +resource_name = "PlasmaSword" +length = 1.23334 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"Plasma Sword"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 1.23333), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0, 37] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("%Hitbox/HitboxCollision:disabled") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.166667, 0.233333), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [true, false, true] +} + [sub_resource type="Animation" id="Animation_flmxu"] length = 0.001 tracks/0/type = "value" @@ -1164,86 +1324,6 @@ tracks/2/keys = { "values": [true, false, true] } -[sub_resource type="Animation" id="Animation_na483"] -resource_name = "PlasmaSword" -length = 1.23334 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:animation") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [&"Plasma Sword"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:frame") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0, 1.23333), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [0, 37] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("%Hitbox/HitboxCollision:disabled") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0, 0.166667, 0.233333), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 1, -"values": [true, false, true] -} - -[sub_resource type="Animation" id="Animation_vc6qm"] -resource_name = "LoveJudgement" -length = 1.23334 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:animation") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [&"Love Judgement"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:frame") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0, 1.23333), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [0, 37] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("%Hitbox/HitboxCollision:disabled") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0, 0.166667, 0.233333), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 1, -"values": [true, false, true] -} - [sub_resource type="Animation" id="Animation_ejbn4"] resource_name = "Unarmed" length = 1.23334 @@ -1284,86 +1364,6 @@ tracks/2/keys = { "values": [true, false, true] } -[sub_resource type="Animation" id="Animation_lysy5"] -resource_name = "NormalSlash" -length = 1.23334 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:animation") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [&"Normal Slash 1"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:frame") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0, 1.23333), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [0, 37] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("%Hitbox/HitboxCollision:disabled") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0, 0.166667, 0.233333), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 1, -"values": [true, false, true] -} - -[sub_resource type="Animation" id="Animation_ymsks"] -resource_name = "FireSlash" -length = 1.23334 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:animation") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [&"Fire Slash"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:frame") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0, 1.23333), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [0, 37] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("%Hitbox/HitboxCollision:disabled") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0, 0.166667, 0.233333), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 1, -"values": [true, false, true] -} - [sub_resource type="Animation" id="Animation_f0ff4"] resource_name = "WaterSlash" length = 1.23334