Make altar spawn behavior consistent with dungeon floors

Add missing audio/vfx/hitboxes to other directional attacks for most enemies
Play hit sound and pause slightly before playing death animation
This commit is contained in:
2026-06-17 01:13:23 -07:00
parent 9decb2a02d
commit 138b4538e1
17 changed files with 1230 additions and 307 deletions
+3
View File
@@ -191,6 +191,9 @@ public abstract partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLo
_rustTimer.Stop(); _rustTimer.Stop();
_enemyLogic.Input(new EnemyLogic.Input.Defeated()); _enemyLogic.Input(new EnemyLogic.Input.Defeated());
_player.ExperiencePointsComponent.Gain(ExpGiven); _player.ExperiencePointsComponent.Gain(ExpGiven);
EnemyModelView.PlayHitAnimation();
_hitSFX.Play();
await ToSignal(GetTree().CreateTimer(0.1f), "timeout");
EnemyModelView.PlayDeathAnimation(); EnemyModelView.PlayDeathAnimation();
_dieSFX.Play(); _dieSFX.Play();
_gameRepo.OnEnemyDied(this); _gameRepo.OnEnemyDied(this);
@@ -23,7 +23,7 @@ public partial class EngagePlayerBehavior : Node, IEngagePlayerBehavior
{ {
_actionTimer = new Timer(); _actionTimer = new Timer();
_acquireTargetTimer = new Timer() { WaitTime = _acquireTargetTime }; _acquireTargetTimer = new Timer() { WaitTime = _acquireTargetTime };
_actionTimer.WaitTime = 0.5f; _actionTimer.WaitTime = 0.3f;
_actionTimer.Timeout += OnAttackTimeout; _actionTimer.Timeout += OnAttackTimeout;
_acquireTargetTimer.Timeout += OnAcquireTargetTimeout; _acquireTargetTimer.Timeout += OnAcquireTargetTimeout;
AddChild(_actionTimer); AddChild(_actionTimer);
@@ -39,7 +39,7 @@ public partial class EngagePlayerBehavior : Node, IEngagePlayerBehavior
public void Disengage() public void Disengage()
{ {
_actionTimer.Stop(); _actionTimer.Stop();
_actionTimer.WaitTime = 0.5f; _actionTimer.WaitTime = 0.3f;
_acquireTargetTimer.Stop(); _acquireTargetTimer.Stop();
} }
@@ -3181,7 +3181,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.332842, 0.66857), "times": PackedFloat32Array(0, 0.332842, 0.416667),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -3225,7 +3225,7 @@ tracks/1/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/1/interp = 1 tracks/1/interp = 1
tracks/1/loop_wrap = true tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
"times": PackedFloat32Array(0, 0.332842, 0.66857), "times": PackedFloat32Array(0, 0.332842, 0.4167),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -3242,6 +3242,21 @@ tracks/2/keys = {
"update": 1, "update": 1,
"values": [&"attack"] "values": [&"attack"]
} }
tracks/3/type = "audio"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("AudioStreamPlayer3D")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("67_dnvt3")
}],
"times": PackedFloat32Array(0)
}
tracks/3/use_blend = true
[sub_resource type="Animation" id="Animation_ivy74"] [sub_resource type="Animation" id="Animation_ivy74"]
resource_name = "primary_attack_left" resource_name = "primary_attack_left"
@@ -3266,7 +3281,7 @@ tracks/1/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/1/interp = 1 tracks/1/interp = 1
tracks/1/loop_wrap = true tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
"times": PackedFloat32Array(0, 0.332842, 0.66857), "times": PackedFloat32Array(0, 0.332842, 0.4167),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -3283,6 +3298,21 @@ tracks/2/keys = {
"update": 1, "update": 1,
"values": [&"attack"] "values": [&"attack"]
} }
tracks/3/type = "audio"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("AudioStreamPlayer3D")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("67_dnvt3")
}],
"times": PackedFloat32Array(0)
}
tracks/3/use_blend = true
[sub_resource type="Animation" id="Animation_x7uye"] [sub_resource type="Animation" id="Animation_x7uye"]
resource_name = "primary_attack_right" resource_name = "primary_attack_right"
@@ -3307,7 +3337,7 @@ tracks/1/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/1/interp = 1 tracks/1/interp = 1
tracks/1/loop_wrap = true tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
"times": PackedFloat32Array(0, 0.332842, 0.66857), "times": PackedFloat32Array(0, 0.332842, 0.416667),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -3336,6 +3366,21 @@ tracks/3/keys = {
"update": 1, "update": 1,
"values": [&"attack"] "values": [&"attack"]
} }
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("67_dnvt3")
}],
"times": PackedFloat32Array(0)
}
tracks/4/use_blend = true
[sub_resource type="AnimationLibrary" id="AnimationLibrary_6tj5r"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_6tj5r"]
_data = { _data = {
@@ -3216,7 +3216,7 @@ tracks/0/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0, 0.0333333, 0.3), "times": PackedFloat32Array(0, 0.0333333, 0.0500001),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -3282,7 +3282,7 @@ tracks/0/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0, 0.0333333, 0.3), "times": PackedFloat32Array(0, 0.0333333, 0.0500001),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -3347,7 +3347,7 @@ tracks/0/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0, 0.0333333, 0.3), "times": PackedFloat32Array(0, 0.0333333, 0.0500001),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -3412,7 +3412,7 @@ tracks/0/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0, 0.0333333, 0.3), "times": PackedFloat32Array(0, 0.0333333, 0.0500001),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -4156,7 +4156,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.588603, 0.833705), "times": PackedFloat32Array(0, 0.588603, 0.666667),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -4277,7 +4277,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.588603, 0.833705), "times": PackedFloat32Array(0, 0.588603, 0.666666),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -4345,7 +4345,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.588603, 0.833705), "times": PackedFloat32Array(0, 0.588603, 0.666666),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -4425,7 +4425,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.588603, 0.833705), "times": PackedFloat32Array(0, 0.588603, 0.666666),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -3720,7 +3720,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.189498, 0.499215), "times": PackedFloat32Array(0, 0.189498, 0.25),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -3776,7 +3776,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.189498, 0.499215), "times": PackedFloat32Array(0, 0.189498, 0.25),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -3832,7 +3832,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.189498, 0.499215), "times": PackedFloat32Array(0, 0.189498, 0.25),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -3888,7 +3888,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.189498, 0.499215), "times": PackedFloat32Array(0, 0.189498, 0.25),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -3920,7 +3920,7 @@ tracks/0/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0, 0.167084, 0.5), "times": PackedFloat32Array(0, 0.167084, 0.25),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -4010,7 +4010,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.167084, 0.413635), "times": PackedFloat32Array(0, 0.167084, 0.25),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -4076,7 +4076,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.167084, 0.413635), "times": PackedFloat32Array(0, 0.167084, 0.25),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -4142,7 +4142,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.167084, 0.413635), "times": PackedFloat32Array(0, 0.167084, 0.25),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -3486,7 +3486,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.335728, 0.749375), "times": PackedFloat32Array(0, 0.335728, 0.416667),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -3556,11 +3556,41 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.335728, 0.749375), "times": PackedFloat32Array(0, 0.335728, 0.416667),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
} }
tracks/3/type = "audio"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("AudioStreamPlayer3D")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"clips": [{
"end_offset": 3.5333,
"start_offset": 2.1795,
"stream": ExtResource("94_i3hgg")
}],
"times": PackedFloat32Array(0)
}
tracks/3/use_blend = true
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("102_8xbn0")
}],
"times": PackedFloat32Array(0)
}
tracks/4/use_blend = true
[sub_resource type="Animation" id="Animation_7d2d3"] [sub_resource type="Animation" id="Animation_7d2d3"]
resource_name = "primary_attack_left" resource_name = "primary_attack_left"
@@ -3601,6 +3631,36 @@ tracks/2/keys = {
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
} }
tracks/3/type = "audio"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("AudioStreamPlayer3D")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"clips": [{
"end_offset": 3.5333,
"start_offset": 2.1795,
"stream": ExtResource("94_i3hgg")
}],
"times": PackedFloat32Array(0)
}
tracks/3/use_blend = true
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("102_8xbn0")
}],
"times": PackedFloat32Array(0)
}
tracks/4/use_blend = true
[sub_resource type="Animation" id="Animation_poqxf"] [sub_resource type="Animation" id="Animation_poqxf"]
resource_name = "primary_attack_right" resource_name = "primary_attack_right"
@@ -3641,6 +3701,40 @@ tracks/2/keys = {
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
} }
tracks/3/type = "audio"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("AudioStreamPlayer3D")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": null
}, {
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("102_8xbn0")
}],
"times": PackedFloat32Array(0, 0.0001)
}
tracks/3/use_blend = true
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 3.5333,
"start_offset": 2.1795,
"stream": ExtResource("94_i3hgg")
}],
"times": PackedFloat32Array(0)
}
tracks/4/use_blend = true
[sub_resource type="Animation" id="Animation_airxj"] [sub_resource type="Animation" id="Animation_airxj"]
resource_name = "secondary_attack" resource_name = "secondary_attack"
@@ -3763,6 +3857,36 @@ tracks/2/keys = {
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
} }
tracks/3/type = "audio"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("AudioStreamPlayer3D")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"clips": [{
"end_offset": 3.8412,
"start_offset": 0.5968,
"stream": ExtResource("94_i3hgg")
}],
"times": PackedFloat32Array(-0.583333)
}
tracks/3/use_blend = true
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("104_ice28")
}],
"times": PackedFloat32Array(0)
}
tracks/4/use_blend = true
[sub_resource type="Animation" id="Animation_o6ljw"] [sub_resource type="Animation" id="Animation_o6ljw"]
resource_name = "secondary_attack_left" resource_name = "secondary_attack_left"
@@ -3804,6 +3928,36 @@ tracks/2/keys = {
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
} }
tracks/3/type = "audio"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("AudioStreamPlayer3D")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"clips": [{
"end_offset": 3.8412,
"start_offset": 0.5968,
"stream": ExtResource("94_i3hgg")
}],
"times": PackedFloat32Array(-0.583333)
}
tracks/3/use_blend = true
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("104_ice28")
}],
"times": PackedFloat32Array(0)
}
tracks/4/use_blend = true
[sub_resource type="Animation" id="Animation_cyiv5"] [sub_resource type="Animation" id="Animation_cyiv5"]
resource_name = "secondary_attack_right" resource_name = "secondary_attack_right"
@@ -3857,6 +4011,40 @@ tracks/3/keys = {
"update": 1, "update": 1,
"values": [true] "values": [true]
} }
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 3.8412,
"start_offset": 0.5968,
"stream": ExtResource("94_i3hgg")
}],
"times": PackedFloat32Array(-0.583333)
}
tracks/4/use_blend = true
tracks/5/type = "audio"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("AudioStreamPlayer3D")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": null
}, {
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("104_ice28")
}],
"times": PackedFloat32Array(0, 0.0001)
}
tracks/5/use_blend = true
[sub_resource type="AnimationLibrary" id="AnimationLibrary_xidnl"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_xidnl"]
_data = { _data = {
@@ -4823,13 +5011,11 @@ libraries = {
[node name="WalkSFX" type="AudioStreamPlayer3D" parent="."] [node name="WalkSFX" type="AudioStreamPlayer3D" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.86303, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.86303, 0)
stream = ExtResource("94_i3hgg")
autoplay = true autoplay = true
bus = &"SFX" bus = &"SFX"
[node name="Shadow" type="Sprite3D" parent="."] [node name="Shadow" type="Sprite3D" parent="."]
transform = Transform3D(1.265, 0, 0, 0, -5.52949e-08, 1.265, 0, -1.265, -5.52949e-08, 0.00393164, -0.0238594, 0.0077811) transform = Transform3D(1.265, 0, 0, 0, -5.52949e-08, 1.265, 0, -1.265, -5.52949e-08, 0.00393164, -0.0238594, 0.0077811)
visible = false
transparency = 0.1 transparency = 0.1
cast_shadow = 0 cast_shadow = 0
modulate = Color(1, 1, 1, 0.591) modulate = Color(1, 1, 1, 0.591)
@@ -670,7 +670,7 @@ tracks/0/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0, 0.76, 1.16), "times": PackedFloat32Array(0, 0.76, 0.8),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -777,7 +777,7 @@ tracks/0/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0, 0.332842, 0.66857), "times": PackedFloat32Array(0, 0.76, 0.8),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -830,7 +830,7 @@ tracks/0/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0, 0.332842, 0.66857), "times": PackedFloat32Array(0, 0.76, 0.8),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -883,7 +883,7 @@ tracks/0/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0, 0.332842, 0.66857), "times": PackedFloat32Array(0, 0.76, 0.8),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -1,4 +1,4 @@
[gd_scene load_steps=899 format=3 uid="uid://de6e8yv6mv4fe"] [gd_scene load_steps=900 format=3 uid="uid://de6e8yv6mv4fe"]
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_6dej3"] [ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_6dej3"]
[ext_resource type="Texture2D" uid="uid://dnd6d5cx7x7i8" path="res://src/enemy/enemy_types/07. chinthe/animations/CHINTHE - RERENDER/BACK/0400.png" id="2_3sdh3"] [ext_resource type="Texture2D" uid="uid://dnd6d5cx7x7i8" path="res://src/enemy/enemy_types/07. chinthe/animations/CHINTHE - RERENDER/BACK/0400.png" id="2_3sdh3"]
@@ -408,6 +408,7 @@
[ext_resource type="Texture2D" uid="uid://cot4wx5fg5pfs" path="res://src/vfx/Enemy Affected/water_hit_layer2.png" id="397_3iqav"] [ext_resource type="Texture2D" uid="uid://cot4wx5fg5pfs" path="res://src/vfx/Enemy Affected/water_hit_layer2.png" id="397_3iqav"]
[ext_resource type="Texture2D" uid="uid://cbei66g134fgv" path="res://src/vfx/Enemy Affected/water layer 1.png" id="398_ii52r"] [ext_resource type="Texture2D" uid="uid://cbei66g134fgv" path="res://src/vfx/Enemy Affected/water layer 1.png" id="398_ii52r"]
[ext_resource type="Texture2D" uid="uid://bp6npqoco5fl3" path="res://src/vfx/Enemy Affected/curse_damage.png" id="399_v8fg0"] [ext_resource type="Texture2D" uid="uid://bp6npqoco5fl3" path="res://src/vfx/Enemy Affected/curse_damage.png" id="399_v8fg0"]
[ext_resource type="AudioStream" uid="uid://6hbvxrms14mg" path="res://src/audio/sfx/enemy_chinthe_teleport_IN.ogg" id="404_8vs7h"]
[sub_resource type="ViewportTexture" id="ViewportTexture_h1kaf"] [sub_resource type="ViewportTexture" id="ViewportTexture_h1kaf"]
viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport") viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport")
@@ -5712,6 +5713,21 @@ tracks/6/keys = {
"update": 0, "update": 0,
"values": [Color(1, 1, 1, 1), Color(100, 100, 100, 1), Color(1, 1, 1, 1)] "values": [Color(1, 1, 1, 1), Color(100, 100, 100, 1), Color(1, 1, 1, 1)]
} }
tracks/7/type = "audio"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Chinthe SFX")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("404_8vs7h")
}],
"times": PackedFloat32Array(0)
}
tracks/7/use_blend = true
[sub_resource type="AnimationLibrary" id="AnimationLibrary_46p8q"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_46p8q"]
_data = { _data = {
@@ -5907,13 +5923,13 @@ states/Start/position = Vector2(199, 100)
"states/Stop Walk/node" = SubResource("AnimationNodeStateMachine_li182") "states/Stop Walk/node" = SubResource("AnimationNodeStateMachine_li182")
"states/Stop Walk/position" = Vector2(72.437, 334.144) "states/Stop Walk/position" = Vector2(72.437, 334.144)
"states/Teleport In/node" = SubResource("AnimationNodeAnimation_li182") "states/Teleport In/node" = SubResource("AnimationNodeAnimation_li182")
"states/Teleport In/position" = Vector2(-67.563, 254.144) "states/Teleport In/position" = Vector2(-67.563, 253.144)
"states/Unactivated Idle/node" = ExtResource("245_gr3tp") "states/Unactivated Idle/node" = ExtResource("245_gr3tp")
"states/Unactivated Idle/position" = Vector2(357, 100) "states/Unactivated Idle/position" = Vector2(357, 100)
states/Walking/node = SubResource("AnimationNodeStateMachine_7dl50") states/Walking/node = SubResource("AnimationNodeStateMachine_7dl50")
states/Walking/position = Vector2(348, 400.144) states/Walking/position = Vector2(348, 400.144)
transitions = ["Start", "Unactivated Idle", SubResource("AnimationNodeStateMachineTransition_umemc"), "Unactivated Idle", "Activate", SubResource("AnimationNodeStateMachineTransition_t3xhd"), "Activate", "Idle", SubResource("AnimationNodeStateMachineTransition_5jjkq"), "Primary Attack", "Idle", SubResource("AnimationNodeStateMachineTransition_keq07"), "Idle", "Primary Skill", SubResource("AnimationNodeStateMachineTransition_manul"), "Primary Skill", "Teleport In", SubResource("AnimationNodeStateMachineTransition_auprl"), "Teleport In", "Idle", SubResource("AnimationNodeStateMachineTransition_i5vf2"), "Idle", "Primary Attack", SubResource("AnimationNodeStateMachineTransition_jbhro"), "Stop Walk", "Idle", SubResource("AnimationNodeStateMachineTransition_yu6fp"), "Idle", "Walking", SubResource("AnimationNodeStateMachineTransition_sgkk0"), "Walking", "Stop Walk", SubResource("AnimationNodeStateMachineTransition_8e7of")] transitions = ["Start", "Unactivated Idle", SubResource("AnimationNodeStateMachineTransition_umemc"), "Unactivated Idle", "Activate", SubResource("AnimationNodeStateMachineTransition_t3xhd"), "Activate", "Idle", SubResource("AnimationNodeStateMachineTransition_5jjkq"), "Primary Attack", "Idle", SubResource("AnimationNodeStateMachineTransition_keq07"), "Idle", "Primary Skill", SubResource("AnimationNodeStateMachineTransition_manul"), "Primary Skill", "Teleport In", SubResource("AnimationNodeStateMachineTransition_auprl"), "Teleport In", "Idle", SubResource("AnimationNodeStateMachineTransition_i5vf2"), "Idle", "Primary Attack", SubResource("AnimationNodeStateMachineTransition_jbhro"), "Stop Walk", "Idle", SubResource("AnimationNodeStateMachineTransition_yu6fp"), "Idle", "Walking", SubResource("AnimationNodeStateMachineTransition_sgkk0"), "Walking", "Stop Walk", SubResource("AnimationNodeStateMachineTransition_8e7of")]
graph_offset = Vector2(-313.563, 209.889) graph_offset = Vector2(-216.563, -3.11099)
[sub_resource type="AtlasTexture" id="AtlasTexture_tawq7"] [sub_resource type="AtlasTexture" id="AtlasTexture_tawq7"]
atlas = ExtResource("395_ymova") atlas = ExtResource("395_ymova")
@@ -4362,6 +4362,18 @@ tracks/3/keys = {
"times": PackedFloat32Array(0) "times": PackedFloat32Array(0)
} }
tracks/3/use_blend = true tracks/3/use_blend = true
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.166667, 0.333333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
[sub_resource type="Animation" id="Animation_fmw6u"] [sub_resource type="Animation" id="Animation_fmw6u"]
resource_name = "primary_attack_left" resource_name = "primary_attack_left"
@@ -4418,6 +4430,18 @@ tracks/3/keys = {
"times": PackedFloat32Array(0) "times": PackedFloat32Array(0)
} }
tracks/3/use_blend = true tracks/3/use_blend = true
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.166667, 0.333333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
[sub_resource type="Animation" id="Animation_psv15"] [sub_resource type="Animation" id="Animation_psv15"]
resource_name = "primary_attack_right" resource_name = "primary_attack_right"
@@ -4474,6 +4498,18 @@ tracks/3/keys = {
"times": PackedFloat32Array(0) "times": PackedFloat32Array(0)
} }
tracks/3/use_blend = true tracks/3/use_blend = true
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.166667, 0.333333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
[sub_resource type="Animation" id="Animation_5y02v"] [sub_resource type="Animation" id="Animation_5y02v"]
resource_name = "secondary_attack" resource_name = "secondary_attack"
@@ -4598,6 +4634,18 @@ tracks/3/keys = {
"times": PackedFloat32Array(0) "times": PackedFloat32Array(0)
} }
tracks/3/use_blend = true tracks/3/use_blend = true
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.583333, 0.75),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
[sub_resource type="Animation" id="Animation_m347f"] [sub_resource type="Animation" id="Animation_m347f"]
resource_name = "secondary_attack_left" resource_name = "secondary_attack_left"
@@ -4654,6 +4702,18 @@ tracks/3/keys = {
"times": PackedFloat32Array(0) "times": PackedFloat32Array(0)
} }
tracks/3/use_blend = true tracks/3/use_blend = true
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.583333, 0.75),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
[sub_resource type="Animation" id="Animation_xe0e6"] [sub_resource type="Animation" id="Animation_xe0e6"]
resource_name = "secondary_attack_right" resource_name = "secondary_attack_right"
@@ -4710,6 +4770,18 @@ tracks/3/keys = {
"times": PackedFloat32Array(0) "times": PackedFloat32Array(0)
} }
tracks/3/use_blend = true tracks/3/use_blend = true
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.583333, 0.75),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_x0ep5"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_x0ep5"]
_data = { _data = {
@@ -1,4 +1,4 @@
[gd_scene load_steps=695 format=3 uid="uid://d02te8cwjistl"] [gd_scene load_steps=696 format=3 uid="uid://d02te8cwjistl"]
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_a8qtn"] [ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_a8qtn"]
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_xa3ug"] [ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_xa3ug"]
@@ -275,6 +275,7 @@
[ext_resource type="Texture2D" uid="uid://cot4wx5fg5pfs" path="res://src/vfx/Enemy Affected/water_hit_layer2.png" id="266_ewlwi"] [ext_resource type="Texture2D" uid="uid://cot4wx5fg5pfs" path="res://src/vfx/Enemy Affected/water_hit_layer2.png" id="266_ewlwi"]
[ext_resource type="Texture2D" uid="uid://cbei66g134fgv" path="res://src/vfx/Enemy Affected/water layer 1.png" id="267_ucfs5"] [ext_resource type="Texture2D" uid="uid://cbei66g134fgv" path="res://src/vfx/Enemy Affected/water layer 1.png" id="267_ucfs5"]
[ext_resource type="Texture2D" uid="uid://bp6npqoco5fl3" path="res://src/vfx/Enemy Affected/curse_damage.png" id="268_4it51"] [ext_resource type="Texture2D" uid="uid://bp6npqoco5fl3" path="res://src/vfx/Enemy Affected/curse_damage.png" id="268_4it51"]
[ext_resource type="AudioStream" uid="uid://ugc77goiwht0" path="res://src/audio/sfx/enemy_ambassador_punch.ogg" id="270_i3uxw"]
[sub_resource type="Resource" id="Resource_f45wt"] [sub_resource type="Resource" id="Resource_f45wt"]
script = ExtResource("2_xa3ug") script = ExtResource("2_xa3ug")
@@ -4333,7 +4334,7 @@ tracks/4/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/4/interp = 1 tracks/4/interp = 1
tracks/4/loop_wrap = true tracks/4/loop_wrap = true
tracks/4/keys = { tracks/4/keys = {
"times": PackedFloat32Array(0, 0.0833333, 0.25), "times": PackedFloat32Array(0, 0.166667, 0.333333),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -4394,6 +4395,18 @@ tracks/3/keys = {
"times": PackedFloat32Array(0) "times": PackedFloat32Array(0)
} }
tracks/3/use_blend = true tracks/3/use_blend = true
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.166667, 0.333333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
[sub_resource type="Animation" id="Animation_fmw6u"] [sub_resource type="Animation" id="Animation_fmw6u"]
resource_name = "primary_attack_left" resource_name = "primary_attack_left"
@@ -4450,6 +4463,18 @@ tracks/3/keys = {
"times": PackedFloat32Array(0) "times": PackedFloat32Array(0)
} }
tracks/3/use_blend = true tracks/3/use_blend = true
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.166667, 0.333333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
[sub_resource type="Animation" id="Animation_psv15"] [sub_resource type="Animation" id="Animation_psv15"]
resource_name = "primary_attack_right" resource_name = "primary_attack_right"
@@ -4506,6 +4531,18 @@ tracks/3/keys = {
"times": PackedFloat32Array(0) "times": PackedFloat32Array(0)
} }
tracks/3/use_blend = true tracks/3/use_blend = true
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.166667, 0.333333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
[sub_resource type="Animation" id="Animation_5y02v"] [sub_resource type="Animation" id="Animation_5y02v"]
resource_name = "secondary_attack" resource_name = "secondary_attack"
@@ -4559,6 +4596,21 @@ tracks/3/keys = {
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
} }
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("270_i3uxw")
}],
"times": PackedFloat32Array(0)
}
tracks/4/use_blend = true
[sub_resource type="Animation" id="Animation_tlm8w"] [sub_resource type="Animation" id="Animation_tlm8w"]
resource_name = "secondary_attack_back" resource_name = "secondary_attack_back"
@@ -4600,6 +4652,33 @@ tracks/2/keys = {
"update": 1, "update": 1,
"values": [false] "values": [false]
} }
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.583333, 0.75),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("270_i3uxw")
}],
"times": PackedFloat32Array(0)
}
tracks/4/use_blend = true
[sub_resource type="Animation" id="Animation_m347f"] [sub_resource type="Animation" id="Animation_m347f"]
resource_name = "secondary_attack_left" resource_name = "secondary_attack_left"
@@ -4641,6 +4720,33 @@ tracks/2/keys = {
"update": 1, "update": 1,
"values": [false] "values": [false]
} }
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.583333, 0.75),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("270_i3uxw")
}],
"times": PackedFloat32Array(0)
}
tracks/4/use_blend = true
[sub_resource type="Animation" id="Animation_xe0e6"] [sub_resource type="Animation" id="Animation_xe0e6"]
resource_name = "secondary_attack_right" resource_name = "secondary_attack_right"
@@ -4682,6 +4788,33 @@ tracks/2/keys = {
"update": 1, "update": 1,
"values": [true] "values": [true]
} }
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.583333, 0.75),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("270_i3uxw")
}],
"times": PackedFloat32Array(0)
}
tracks/4/use_blend = true
[sub_resource type="AnimationLibrary" id="AnimationLibrary_x0ep5"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_x0ep5"]
_data = { _data = {
@@ -4422,7 +4422,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.5, 0.666667, 0.75, 0.916667), "times": PackedFloat32Array(0, 0.166667, 0.25, 0.583333, 0.666667),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true, false, true] "values": [true, false, true, false, true]
@@ -4475,6 +4475,37 @@ tracks/1/keys = {
"update": 0, "update": 0,
"values": [0, 15] "values": [0, 15]
} }
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.166667, 0.25, 0.583333, 0.666667),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 1,
"values": [true, false, true, false, true]
}
tracks/3/type = "audio"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("AgniSounds")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("341_ypc6s")
}, {
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("341_ypc6s")
}],
"times": PackedFloat32Array(0.166667, 0.5)
}
tracks/3/use_blend = true
[sub_resource type="Animation" id="Animation_vur8v"] [sub_resource type="Animation" id="Animation_vur8v"]
resource_name = "primary_attack_left" resource_name = "primary_attack_left"
@@ -4504,6 +4535,37 @@ tracks/1/keys = {
"update": 0, "update": 0,
"values": [0, 15] "values": [0, 15]
} }
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.166667, 0.25, 0.583333, 0.666667),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 1,
"values": [true, false, true, false, true]
}
tracks/3/type = "audio"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("AgniSounds")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("341_ypc6s")
}, {
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("341_ypc6s")
}],
"times": PackedFloat32Array(0.166667, 0.5)
}
tracks/3/use_blend = true
[sub_resource type="Animation" id="Animation_pa2sb"] [sub_resource type="Animation" id="Animation_pa2sb"]
resource_name = "primary_attack_right" resource_name = "primary_attack_right"
@@ -4533,6 +4595,37 @@ tracks/1/keys = {
"update": 0, "update": 0,
"values": [0, 15] "values": [0, 15]
} }
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.166667, 0.25, 0.583333, 0.666667),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 1,
"values": [true, false, true, false, true]
}
tracks/3/type = "audio"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("AgniSounds")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("341_ypc6s")
}, {
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("341_ypc6s")
}],
"times": PackedFloat32Array(0.166667, 0.5)
}
tracks/3/use_blend = true
[sub_resource type="Animation" id="Animation_5y02v"] [sub_resource type="Animation" id="Animation_5y02v"]
resource_name = "secondary_attack" resource_name = "secondary_attack"
@@ -4581,7 +4674,7 @@ tracks/3/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/3/interp = 1 tracks/3/interp = 1
tracks/3/loop_wrap = true tracks/3/loop_wrap = true
tracks/3/keys = { tracks/3/keys = {
"times": PackedFloat32Array(0, 0.666667, 0.916667), "times": PackedFloat32Array(0, 0.666667, 0.833333),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -4630,6 +4723,33 @@ tracks/1/keys = {
"update": 0, "update": 0,
"values": [0, 22] "values": [0, 22]
} }
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.666667, 0.833333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/3/type = "audio"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("AgniSounds")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("342_q4052")
}],
"times": PackedFloat32Array(0.5)
}
tracks/3/use_blend = true
[sub_resource type="Animation" id="Animation_mm0yx"] [sub_resource type="Animation" id="Animation_mm0yx"]
resource_name = "secondary_attack_left" resource_name = "secondary_attack_left"
@@ -4671,6 +4791,33 @@ tracks/2/keys = {
"update": 1, "update": 1,
"values": [-1, 0] "values": [-1, 0]
} }
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.666667, 0.833333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AgniSounds")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("342_q4052")
}],
"times": PackedFloat32Array(0.5)
}
tracks/4/use_blend = true
[sub_resource type="Animation" id="Animation_x32v4"] [sub_resource type="Animation" id="Animation_x32v4"]
resource_name = "secondary_attack_right" resource_name = "secondary_attack_right"
@@ -4712,6 +4859,33 @@ tracks/2/keys = {
"update": 1, "update": 1,
"values": [-1, 0] "values": [-1, 0]
} }
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.666667, 0.833333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AgniSounds")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("342_q4052")
}],
"times": PackedFloat32Array(0.5)
}
tracks/4/use_blend = true
[sub_resource type="AnimationLibrary" id="AnimationLibrary_x0ep5"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_x0ep5"]
_data = { _data = {
@@ -4075,6 +4075,33 @@ tracks/2/keys = {
"times": PackedFloat32Array(0.333333) "times": PackedFloat32Array(0.333333)
} }
tracks/2/use_blend = true tracks/2/use_blend = true
tracks/3/type = "method"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("ProjectileSystem")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.333333, 0.916667),
"transitions": PackedFloat32Array(1, 1),
"values": [{
"args": [],
"method": &"Fire"
}, {
"args": [],
"method": &"Fire"
}]
}
tracks/4/type = "animation"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Sprite3D/AnimationPlayer2")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": PackedStringArray("[stop]", "Sunblast", "Sunblast"),
"times": PackedFloat32Array(0, 0.333333, 0.916666)
}
[sub_resource type="Animation" id="Animation_1bumx"] [sub_resource type="Animation" id="Animation_1bumx"]
resource_name = "primary_attack_left" resource_name = "primary_attack_left"
@@ -4119,6 +4146,33 @@ tracks/2/keys = {
"times": PackedFloat32Array(0.333333) "times": PackedFloat32Array(0.333333)
} }
tracks/2/use_blend = true tracks/2/use_blend = true
tracks/3/type = "animation"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Sprite3D/AnimationPlayer2")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"clips": PackedStringArray("[stop]", "Sunblast", "Sunblast"),
"times": PackedFloat32Array(0, 0.333333, 0.916666)
}
tracks/4/type = "method"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("ProjectileSystem")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0.333333, 0.916667),
"transitions": PackedFloat32Array(1, 1),
"values": [{
"args": [],
"method": &"Fire"
}, {
"args": [],
"method": &"Fire"
}]
}
[sub_resource type="Animation" id="Animation_0yqqu"] [sub_resource type="Animation" id="Animation_0yqqu"]
resource_name = "primary_attack_right" resource_name = "primary_attack_right"
@@ -4163,6 +4217,33 @@ tracks/2/keys = {
"times": PackedFloat32Array(0.333333) "times": PackedFloat32Array(0.333333)
} }
tracks/2/use_blend = true tracks/2/use_blend = true
tracks/3/type = "method"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("ProjectileSystem")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.333333, 0.916667),
"transitions": PackedFloat32Array(1, 1),
"values": [{
"args": [],
"method": &"Fire"
}, {
"args": [],
"method": &"Fire"
}]
}
tracks/4/type = "animation"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Sprite3D/AnimationPlayer2")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": PackedStringArray("[stop]", "Sunblast", "Sunblast"),
"times": PackedFloat32Array(0, 0.333333, 0.916667)
}
[sub_resource type="Animation" id="Animation_wtyys"] [sub_resource type="Animation" id="Animation_wtyys"]
resource_name = "secondary_attack" resource_name = "secondary_attack"
@@ -4199,7 +4280,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.25, 0.413635), "times": PackedFloat32Array(0, 0.25, 0.333333),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -4267,7 +4348,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.25, 0.413635), "times": PackedFloat32Array(0, 0.25, 0.333333),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -4287,6 +4368,18 @@ tracks/3/keys = {
"times": PackedFloat32Array(0.0833333) "times": PackedFloat32Array(0.0833333)
} }
tracks/3/use_blend = true tracks/3/use_blend = true
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Sprite3D/AnimationPlayer2:current_animation")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.0833333, 0.25),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": ["", &"Primary Attack", &"Primary Attack"]
}
[sub_resource type="Animation" id="Animation_lid5r"] [sub_resource type="Animation" id="Animation_lid5r"]
resource_name = "secondary_attack_left" resource_name = "secondary_attack_left"
@@ -4323,7 +4416,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.25, 0.413635), "times": PackedFloat32Array(0, 0.25, 0.333333),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -4343,6 +4436,18 @@ tracks/3/keys = {
"times": PackedFloat32Array(0.0833333) "times": PackedFloat32Array(0.0833333)
} }
tracks/3/use_blend = true tracks/3/use_blend = true
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Sprite3D/AnimationPlayer2:current_animation")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.0833333, 0.25),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": ["", &"Primary Attack", &"Primary Attack"]
}
[sub_resource type="Animation" id="Animation_au0i1"] [sub_resource type="Animation" id="Animation_au0i1"]
resource_name = "secondary_attack_right" resource_name = "secondary_attack_right"
@@ -4379,7 +4484,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.25, 0.413635), "times": PackedFloat32Array(0, 0.25, 0.333333),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -4399,6 +4504,18 @@ tracks/3/keys = {
"times": PackedFloat32Array(0.0833333) "times": PackedFloat32Array(0.0833333)
} }
tracks/3/use_blend = true tracks/3/use_blend = true
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Sprite3D/AnimationPlayer2:current_animation")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.0833333, 0.25),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": ["", &"Primary Attack", &"Primary Attack"]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_pkiq5"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_pkiq5"]
_data = { _data = {
@@ -5240,7 +5240,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.75, 1.5), "times": PackedFloat32Array(0, 0.75, 0.833333),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -5333,90 +5333,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.75, 1.5), "times": PackedFloat32Array(0, 0.75, 0.833333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, true, true]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:flip_h")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("512_0pum8")
}],
"times": PackedFloat32Array(0.666667)
}
tracks/4/use_blend = true
tracks/5/type = "audio"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("AudioStreamPlayer3D")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("513_vwlpl")
}],
"times": PackedFloat32Array(0.666667)
}
tracks/5/use_blend = true
[sub_resource type="Animation" id="Animation_wc21g"]
resource_name = "primary_attack_left"
length = 1.83334
step = 0.0833333
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [&"primary_attack_left"]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 1.83333),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0, 22]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.75, 1.41667),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -5463,6 +5380,109 @@ tracks/5/keys = {
"times": PackedFloat32Array(0.666667) "times": PackedFloat32Array(0.666667)
} }
tracks/5/use_blend = true tracks/5/use_blend = true
tracks/6/type = "animation"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("VFX Animation Player")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"clips": PackedStringArray("ATTACK VFX"),
"times": PackedFloat32Array(0.666667)
}
[sub_resource type="Animation" id="Animation_wc21g"]
resource_name = "primary_attack_left"
length = 1.83334
step = 0.0833333
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [&"primary_attack_left"]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 1.83333),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0, 22]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.75, 0.833333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:flip_h")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("512_0pum8")
}],
"times": PackedFloat32Array(0.666667)
}
tracks/4/use_blend = true
tracks/5/type = "audio"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("AudioStreamPlayer3D")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("513_vwlpl")
}],
"times": PackedFloat32Array(0.666667)
}
tracks/5/use_blend = true
tracks/6/type = "animation"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("VFX Animation Player")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"clips": PackedStringArray("ATTACK VFX"),
"times": PackedFloat32Array(0.666666)
}
[sub_resource type="Animation" id="Animation_w7rrw"] [sub_resource type="Animation" id="Animation_w7rrw"]
resource_name = "primary_attack_right" resource_name = "primary_attack_right"
@@ -5499,7 +5519,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.335728, 1.75), "times": PackedFloat32Array(0, 0.75, 0.833333),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -5546,6 +5566,16 @@ tracks/5/keys = {
"times": PackedFloat32Array(0.666667) "times": PackedFloat32Array(0.666667)
} }
tracks/5/use_blend = true tracks/5/use_blend = true
tracks/6/type = "animation"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("VFX Animation Player")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"clips": PackedStringArray("ATTACK VFX"),
"times": PackedFloat32Array(0.666667)
}
[sub_resource type="Animation" id="Animation_b727r"] [sub_resource type="Animation" id="Animation_b727r"]
resource_name = "secondary_attack" resource_name = "secondary_attack"
@@ -5582,7 +5612,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.335728, 0.749375), "times": PackedFloat32Array(0, 0.5, 0.580939),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -5665,7 +5695,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.335728, 0.749375), "times": PackedFloat32Array(0, 0.5, 0.580939),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -5682,6 +5712,36 @@ tracks/3/keys = {
"update": 1, "update": 1,
"values": [false] "values": [false]
} }
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("513_vwlpl")
}],
"times": PackedFloat32Array(0.333433)
}
tracks/4/use_blend = true
tracks/5/type = "audio"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("AudioStreamPlayer3D")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("514_l1ir8")
}],
"times": PackedFloat32Array(0)
}
tracks/5/use_blend = true
[sub_resource type="Animation" id="Animation_mva41"] [sub_resource type="Animation" id="Animation_mva41"]
resource_name = "secondary_attack_left" resource_name = "secondary_attack_left"
@@ -5718,7 +5778,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.335728, 0.749375), "times": PackedFloat32Array(0, 0.5, 0.580939),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -5735,6 +5795,36 @@ tracks/3/keys = {
"update": 1, "update": 1,
"values": [true] "values": [true]
} }
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("513_vwlpl")
}],
"times": PackedFloat32Array(0.5)
}
tracks/4/use_blend = true
tracks/5/type = "audio"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("AudioStreamPlayer3D")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("514_l1ir8")
}],
"times": PackedFloat32Array(0)
}
tracks/5/use_blend = true
[sub_resource type="Animation" id="Animation_dalxy"] [sub_resource type="Animation" id="Animation_dalxy"]
resource_name = "secondary_attack_right" resource_name = "secondary_attack_right"
@@ -5771,7 +5861,7 @@ tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.335728, 0.749375), "times": PackedFloat32Array(0, 0.5, 0.580939),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false, true]
@@ -5788,6 +5878,36 @@ tracks/3/keys = {
"update": 1, "update": 1,
"values": [false] "values": [false]
} }
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("514_l1ir8")
}],
"times": PackedFloat32Array(0)
}
tracks/4/use_blend = true
tracks/5/type = "audio"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("AudioStreamPlayer3D")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("513_vwlpl")
}],
"times": PackedFloat32Array(0.5)
}
tracks/5/use_blend = true
[sub_resource type="AnimationLibrary" id="AnimationLibrary_xidnl"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_xidnl"]
_data = { _data = {
@@ -2915,25 +2915,13 @@ tracks/0/keys = {
tracks/1/type = "value" tracks/1/type = "value"
tracks/1/imported = false tracks/1/imported = false
tracks/1/enabled = true tracks/1/enabled = true
tracks/1/path = NodePath("Hitbox/CollisionShape3D:disabled") tracks/1/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:flip_h")
tracks/1/interp = 1 tracks/1/interp = 1
tracks/1/loop_wrap = true tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 1, "update": 1,
"values": [true]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:flip_h")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false] "values": [false]
} }
@@ -3085,177 +3073,21 @@ tracks/2/keys = {
resource_name = "attack" resource_name = "attack"
length = 0.750008 length = 0.750008
step = 0.0833333 step = 0.0833333
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [&"attack"]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.75),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0, 9]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.332842, 0.66857),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
[sub_resource type="Animation" id="Animation_djeua"] [sub_resource type="Animation" id="Animation_djeua"]
resource_name = "primary_attack_back" resource_name = "primary_attack_back"
length = 0.750008 length = 0.750008
step = 0.0833333 step = 0.0833333
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.75),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0, 9]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.332842, 0.66857),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [&"attack"]
}
[sub_resource type="Animation" id="Animation_ivy74"] [sub_resource type="Animation" id="Animation_ivy74"]
resource_name = "primary_attack_left" resource_name = "primary_attack_left"
length = 0.750008 length = 0.750008
step = 0.0833333 step = 0.0833333
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.75),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0, 9]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.332842, 0.66857),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [&"attack"]
}
[sub_resource type="Animation" id="Animation_x7uye"] [sub_resource type="Animation" id="Animation_x7uye"]
resource_name = "primary_attack_right" resource_name = "primary_attack_right"
length = 0.750008 length = 0.750008
step = 0.0833333 step = 0.0833333
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.75),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0, 9]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.332842, 0.66857),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:flip_h")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [&"attack"]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_6tj5r"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_6tj5r"]
_data = { _data = {
@@ -1,4 +1,4 @@
[gd_scene load_steps=765 format=3 uid="uid://omkas04o46rq"] [gd_scene load_steps=764 format=3 uid="uid://omkas04o46rq"]
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_vf7er"] [ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_vf7er"]
[ext_resource type="Resource" uid="uid://co0eq5nl2ai24" path="res://src/enemy/enemy_types/9b. Aqueos Demon/AqueosDemonInfo.tres" id="2_ejhrk"] [ext_resource type="Resource" uid="uid://co0eq5nl2ai24" path="res://src/enemy/enemy_types/9b. Aqueos Demon/AqueosDemonInfo.tres" id="2_ejhrk"]
@@ -339,7 +339,6 @@
[ext_resource type="Texture2D" uid="uid://dqqhu0s51o3n7" path="res://src/vfx/Enemy Affected/Wind Damage.png" id="335_bm8cm"] [ext_resource type="Texture2D" uid="uid://dqqhu0s51o3n7" path="res://src/vfx/Enemy Affected/Wind Damage.png" id="335_bm8cm"]
[ext_resource type="Texture2D" uid="uid://dh6mk1c35nymx" path="res://src/vfx/Enemy Affected/firedamage.png" id="336_lcl8v"] [ext_resource type="Texture2D" uid="uid://dh6mk1c35nymx" path="res://src/vfx/Enemy Affected/firedamage.png" id="336_lcl8v"]
[ext_resource type="AnimationNodeStateMachine" uid="uid://clybvwx3itfeo" path="res://src/enemy/animation_state_machines/SecondaryAttackStateMachine.tres" id="336_oklrx"] [ext_resource type="AnimationNodeStateMachine" uid="uid://clybvwx3itfeo" path="res://src/enemy/animation_state_machines/SecondaryAttackStateMachine.tres" id="336_oklrx"]
[ext_resource type="AudioStream" uid="uid://ddcyb2ni2aisr" path="res://src/audio/sfx/ENEMY_AQUEOS_LOOP.ogg" id="336_sm161"]
[ext_resource type="Texture2D" uid="uid://7a42df2ijrmv" path="res://src/vfx/Enemy Affected/earth damage.png" id="337_2v6ek"] [ext_resource type="Texture2D" uid="uid://7a42df2ijrmv" path="res://src/vfx/Enemy Affected/earth damage.png" id="337_2v6ek"]
[ext_resource type="Texture2D" uid="uid://cot4wx5fg5pfs" path="res://src/vfx/Enemy Affected/water_hit_layer2.png" id="338_mh670"] [ext_resource type="Texture2D" uid="uid://cot4wx5fg5pfs" path="res://src/vfx/Enemy Affected/water_hit_layer2.png" id="338_mh670"]
[ext_resource type="Texture2D" uid="uid://cbei66g134fgv" path="res://src/vfx/Enemy Affected/water layer 1.png" id="339_wp6o0"] [ext_resource type="Texture2D" uid="uid://cbei66g134fgv" path="res://src/vfx/Enemy Affected/water layer 1.png" id="339_wp6o0"]
@@ -4420,6 +4419,18 @@ tracks/2/keys = {
"times": PackedFloat32Array(0.166667, 0.5) "times": PackedFloat32Array(0.166667, 0.5)
} }
tracks/2/use_blend = true tracks/2/use_blend = true
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.666667, 0.833333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
[sub_resource type="Animation" id="Animation_dc327"] [sub_resource type="Animation" id="Animation_dc327"]
resource_name = "primary_attack_back" resource_name = "primary_attack_back"
@@ -4449,6 +4460,37 @@ tracks/1/keys = {
"update": 0, "update": 0,
"values": [0, 15] "values": [0, 15]
} }
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.666667, 0.833333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/3/type = "audio"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("AudioStreamPlayer3D")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("341_bm8cm")
}, {
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("341_bm8cm")
}],
"times": PackedFloat32Array(0.166667, 0.5)
}
tracks/3/use_blend = true
[sub_resource type="Animation" id="Animation_vur8v"] [sub_resource type="Animation" id="Animation_vur8v"]
resource_name = "primary_attack_left" resource_name = "primary_attack_left"
@@ -4478,6 +4520,37 @@ tracks/1/keys = {
"update": 0, "update": 0,
"values": [0, 15] "values": [0, 15]
} }
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.666667, 0.833333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/3/type = "audio"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("AudioStreamPlayer3D")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("341_bm8cm")
}, {
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("341_bm8cm")
}],
"times": PackedFloat32Array(0.166667, 0.5)
}
tracks/3/use_blend = true
[sub_resource type="Animation" id="Animation_pa2sb"] [sub_resource type="Animation" id="Animation_pa2sb"]
resource_name = "primary_attack_right" resource_name = "primary_attack_right"
@@ -4507,6 +4580,37 @@ tracks/1/keys = {
"update": 0, "update": 0,
"values": [0, 15] "values": [0, 15]
} }
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.666667, 0.833333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/3/type = "audio"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("AudioStreamPlayer3D")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("341_bm8cm")
}, {
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("341_bm8cm")
}],
"times": PackedFloat32Array(0.166667, 0.5)
}
tracks/3/use_blend = true
[sub_resource type="Animation" id="Animation_5y02v"] [sub_resource type="Animation" id="Animation_5y02v"]
resource_name = "secondary_attack" resource_name = "secondary_attack"
@@ -4563,6 +4667,18 @@ tracks/3/keys = {
"times": PackedFloat32Array(0.5) "times": PackedFloat32Array(0.5)
} }
tracks/3/use_blend = true tracks/3/use_blend = true
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.666667, 0.833333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
[sub_resource type="Animation" id="Animation_dlml7"] [sub_resource type="Animation" id="Animation_dlml7"]
resource_name = "secondary_attack_back" resource_name = "secondary_attack_back"
@@ -4592,6 +4708,33 @@ tracks/1/keys = {
"update": 0, "update": 0,
"values": [0, 22] "values": [0, 22]
} }
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.666667, 0.833333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/3/type = "audio"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("AudioStreamPlayer3D")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("342_lcl8v")
}],
"times": PackedFloat32Array(0.5)
}
tracks/3/use_blend = true
[sub_resource type="Animation" id="Animation_mm0yx"] [sub_resource type="Animation" id="Animation_mm0yx"]
resource_name = "secondary_attack_left" resource_name = "secondary_attack_left"
@@ -4633,6 +4776,33 @@ tracks/2/keys = {
"update": 1, "update": 1,
"values": [-1, 0] "values": [-1, 0]
} }
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.666667, 0.833333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("342_lcl8v")
}],
"times": PackedFloat32Array(0.5)
}
tracks/4/use_blend = true
[sub_resource type="Animation" id="Animation_x32v4"] [sub_resource type="Animation" id="Animation_x32v4"]
resource_name = "secondary_attack_right" resource_name = "secondary_attack_right"
@@ -4674,6 +4844,33 @@ tracks/2/keys = {
"update": 1, "update": 1,
"values": [-1, 0] "values": [-1, 0]
} }
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Hitbox/CollisionShape3D:disabled")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.666667, 0.833333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, true]
}
tracks/4/type = "audio"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AudioStreamPlayer3D")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("342_lcl8v")
}],
"times": PackedFloat32Array(0.5)
}
tracks/4/use_blend = true
[sub_resource type="AnimationLibrary" id="AnimationLibrary_x0ep5"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_x0ep5"]
_data = { _data = {
@@ -5422,7 +5619,6 @@ omni_range = 1.0
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."] [node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.6405, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.6405, 0)
stream = ExtResource("336_sm161")
autoplay = true autoplay = true
bus = &"SFX" bus = &"SFX"
doppler_tracking = 1 doppler_tracking = 1
@@ -1,6 +1,7 @@
using Chickensoft.AutoInject; using Chickensoft.AutoInject;
using Chickensoft.Introspection; using Chickensoft.Introspection;
using Godot; using Godot;
using System.Drawing;
using System.Linq; using System.Linq;
using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter;
@@ -38,24 +39,52 @@ public partial class Altar : SpecialFloor
{ {
if (ItemSpawnPoints == null) if (ItemSpawnPoints == null)
return; return;
var color = string.Empty;
var itemSpawnPoints = ItemSpawnPoints.GetChildren(); var itemSpawnPoints = ItemSpawnPoints.GetChildren();
var rng = new RandomNumberGenerator(); var rng = new RandomNumberGenerator();
rng.Randomize(); rng.Randomize();
var database = ItemDatabase.Instance;
var spawnableItems = ItemDatabase.Instance.Items.Where(x => (x.SpawnsOn as FloorSpawnTable).SpawnsOnFloor(FloorType.Altar)).ToArray();
var numberOfItemsToSpawn = rng.RandiRange(2, itemSpawnPoints.Count); var numberOfItemsToSpawn = rng.RandiRange(2, itemSpawnPoints.Count);
itemSpawnPoints.Shuffle(); itemSpawnPoints.Shuffle();
var database = ItemDatabase.Instance; var spawnPoints = itemSpawnPoints.Cast<Marker3D>().ToList();
var spawnableItems = database.Items.Where(x => (x.SpawnsOn as FloorSpawnTable).SpawnsOnFloor(FloorType.Altar)).ToArray(); foreach (var spawnPoint in spawnPoints)
foreach (var spawnPoint in itemSpawnPoints.Cast<Marker3D>())
{ {
if (numberOfItemsToSpawn <= 0) if (numberOfItemsToSpawn <= 0)
break; break;
numberOfItemsToSpawn--; numberOfItemsToSpawn--;
var rarity = RarityTag.Common;
var rarityGroup = rng.Randf();
if (rarityGroup < 0.5f)
{
rarity = RarityTag.Common;
color = "white";
}
else if (rarityGroup < 0.85f)
{
rarity = RarityTag.Uncommon;
color = "green";
}
else if (rarityGroup < 0.99f)
{
rarity = RarityTag.Rare;
color = "cyan";
}
else
{
rarity = RarityTag.Legendary;
color = "gold";
}
spawnableItems = [.. spawnableItems.Where(x => x.RarityTag == rarity)];
if (spawnableItems.Length == 0)
break;
var selectedItem = database.PickItemFromList(spawnableItems) as Node3D; var selectedItem = database.PickItemFromList(spawnableItems) as Node3D;
var duplicated = selectedItem.Duplicate((int)DuplicateFlags.UseInstantiation) as Node3D; var duplicated = selectedItem.Duplicate((int)DuplicateFlags.UseInstantiation) as Node3D;
AddChild(duplicated); AddChild(duplicated);
duplicated.Position = new Vector3(spawnPoint.Position.X, 0, spawnPoint.Position.Z); duplicated.Position = new Vector3(spawnPoint.Position.X, 0, spawnPoint.Position.Z);
GD.PrintRich($"Item spawned: [b]{(selectedItem as IBaseInventoryItem).ItemName}[/b] at {duplicated.GlobalPosition}. Rolled a {rarityGroup} for a [color={color}]{rarity}");
} }
} }