diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/07. chinthe/Chinthe.cs b/Zennysoft.Game.Ma/src/enemy/enemy_types/07. chinthe/Chinthe.cs index 065db80a3..97eece887 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/07. chinthe/Chinthe.cs +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/07. chinthe/Chinthe.cs @@ -3,6 +3,7 @@ using Chickensoft.Introspection; using Godot; using System; using System.Collections.Generic; +using System.Linq; using Zennysoft.Game.Ma; [Meta(typeof(IAutoNode))] @@ -70,7 +71,9 @@ public partial class Chinthe : Enemy2D, IHaveEngagePlayerBehavior, IHaveFollowBe var dot = _player.GlobalBasis.Z.Dot(GlobalBasis.Z); var currentDirection = GlobalBasis.Z.Normalized(); var amountToTeleportBy = dot > 0 ? 5 : -5; - GlobalPosition = GlobalPosition + new Vector3(amountToTeleportBy * targetPosition.X, 0, amountToTeleportBy * targetPosition.Z); + var target = GlobalPosition + new Vector3(amountToTeleportBy * targetPosition.X, 0, amountToTeleportBy * targetPosition.Z); + var safeSpot = NavigationServer3D.MapGetClosestPoint(NavigationServer3D.GetMaps().Single(), target); + GlobalPosition = new Vector3(safeSpot.X, 0, safeSpot.Z); ResetPhysicsInterpolation(); } diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/Ambassador.cs b/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/Ambassador.cs index a47c71e97..5f317e4ce 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/Ambassador.cs +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/Ambassador.cs @@ -25,8 +25,8 @@ public partial class Ambassador : Enemy2D, IHavePatrolBehavior, IHaveEngagePlaye FollowBehavior.Init(NavigationAgent); PatrolBehavior.Init(NavigationAgent); PatrolBehavior.HomePosition = GlobalPosition; - PatrolBehavior.OnVelocityComputed += OnVelocityComputed; - FollowBehavior.OnVelocityComputed += OnVelocityComputed; + PatrolBehavior.OnVelocityComputed += OnAmbassadorVelocityComputed; + FollowBehavior.OnVelocityComputed += OnAmbassadorVelocityComputed; EngagePlayerBehavior.TakeAction += EngagePlayerBehavior_TakeAction; EngagePlayerBehavior.AcquireTarget += EngagePlayerBehavior_AcquireTarget; PlayerDetector.BodyEntered += PlayerDetector_BodyEntered; @@ -37,6 +37,7 @@ public partial class Ambassador : Enemy2D, IHavePatrolBehavior, IHaveEngagePlaye public void OnResolved() { _enemyLogic.Input(new EnemyLogic.Input.Patrol()); + _enemyLogic.Input(new EnemyLogic.Input.Move()); } public override void PerformAction() @@ -46,4 +47,22 @@ public partial class Ambassador : Enemy2D, IHavePatrolBehavior, IHaveEngagePlaye var selection = rng.RandWeighted([PrimaryAttackChance, SecondaryAttackChance]); options[(int)selection].Invoke(); } + + public override void _Process(double delta) + { + + } + + public void OnAmbassadorVelocityComputed(Vector3 safeVelocity) + { + Velocity = safeVelocity; + if (Velocity.Length() > 0.15f) + EnemyModelView.PlayWalkAnimation(); + else + EnemyModelView.PlayIdleAnimation(); + + LookAtTarget(safeVelocity); + if (((EnemyModelView)EnemyModelView).CanMove) + MoveAndSlide(); + } } \ No newline at end of file diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/AmbassadorModelView.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/AmbassadorModelView.tscn index 940c7435b..3587bb9cd 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/AmbassadorModelView.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/AmbassadorModelView.tscn @@ -1169,6 +1169,18 @@ tracks/2/keys = { "update": 1, "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.0333333), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} [sub_resource type="Animation" id="Animation_o5mvi"] resource_name = "idle_back" @@ -1252,6 +1264,18 @@ tracks/2/keys = { "update": 1, "values": [false] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath(".:CanMove") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.333333, 0.916667, 1.25, 1.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [false, true, false, true, false] +} [sub_resource type="Animation" id="Animation_7j3of"] resource_name = "idle_front" @@ -1335,6 +1359,18 @@ tracks/2/keys = { "update": 1, "values": [false] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath(".:CanMove") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.333333, 0.916667, 1.25, 1.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [false, true, false, true, false] +} [sub_resource type="Animation" id="Animation_a705x"] resource_name = "idle_left" @@ -1418,6 +1454,18 @@ tracks/2/keys = { "update": 1, "values": [false] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath(".:CanMove") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.333333, 0.916667, 1.25, 1.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [false, true, false, true, false] +} [sub_resource type="Animation" id="Animation_vm8m6"] resource_name = "idle_right" @@ -1501,6 +1549,18 @@ tracks/2/keys = { "update": 1, "values": [true] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath(".:CanMove") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.333333, 0.916667, 1.25, 1.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [false, true, false, true, false] +} [sub_resource type="Animation" id="Animation_u0g5s"] resource_name = "primary_attack" @@ -2073,6 +2133,7 @@ collision_mask = 64 [node name="CollisionShape3D" type="CollisionShape3D" parent="Hitbox"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.189337, 0.217529, -1.45579) shape = SubResource("BoxShape3D_53wuj") +disabled = true [node name="AnimationPlayer" type="AnimationPlayer" parent="."] unique_name_in_owner = true diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorSmallModelView.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorSmallModelView.tscn index 81218f7b7..86d687094 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorSmallModelView.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorSmallModelView.tscn @@ -1184,6 +1184,18 @@ tracks/3/keys = { "update": 1, "values": [true] } +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath(".:CanMove") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} [sub_resource type="Animation" id="Animation_o5mvi"] resource_name = "idle_back" @@ -1267,6 +1279,18 @@ tracks/2/keys = { "update": 1, "values": [false] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath(".:CanMove") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.333333, 0.916667, 1.25, 1.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [false, true, false, true, false] +} [sub_resource type="Animation" id="Animation_7j3of"] resource_name = "idle_front" @@ -1350,6 +1374,18 @@ tracks/2/keys = { "update": 1, "values": [false] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath(".:CanMove") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.333333, 0.916667, 1.25, 1.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [false, true, false, true, false] +} [sub_resource type="Animation" id="Animation_a705x"] resource_name = "idle_left" @@ -1433,6 +1469,18 @@ tracks/2/keys = { "update": 1, "values": [false] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath(".:CanMove") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.333333, 0.916667, 1.25, 1.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [false, true, false, true, false] +} [sub_resource type="Animation" id="Animation_vm8m6"] resource_name = "idle_right" @@ -1516,6 +1564,18 @@ tracks/2/keys = { "update": 1, "values": [true] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath(".:CanMove") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.333333, 0.916667, 1.25, 1.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [false, true, false, true, false] +} [sub_resource type="Animation" id="Animation_u0g5s"] resource_name = "primary_attack" @@ -1983,6 +2043,7 @@ states/Idle/position = Vector2(375, 100) states/Walking/node = ExtResource("266_0cp06") states/Walking/position = Vector2(652, 100) transitions = ["Start", "Idle", SubResource("AnimationNodeStateMachineTransition_oceba"), "Idle", "Walking", SubResource("AnimationNodeStateMachineTransition_yqco6"), "Walking", "Idle", SubResource("AnimationNodeStateMachineTransition_ikyxn"), "Idle", "Primary Attack", SubResource("AnimationNodeStateMachineTransition_2y5m2"), "Walking", "Primary Attack", SubResource("AnimationNodeStateMachineTransition_dyptf"), "Walking", "Secondary Attack", SubResource("AnimationNodeStateMachineTransition_7vwa6"), "Idle", "Secondary Attack", SubResource("AnimationNodeStateMachineTransition_i3uxw"), "Primary Attack", "Idle", SubResource("AnimationNodeStateMachineTransition_ig6n6"), "Secondary Attack", "Idle", SubResource("AnimationNodeStateMachineTransition_8fqp0")] +graph_offset = Vector2(-132, 68) [node name="EnemyModelView" type="Node3D"] script = ExtResource("1_a8qtn") diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteelModelView.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteelModelView.tscn index d07080f24..63fcd6f64 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteelModelView.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteelModelView.tscn @@ -1173,6 +1173,18 @@ tracks/2/keys = { "update": 1, "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), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} [sub_resource type="Animation" id="Animation_o5mvi"] resource_name = "idle_back" @@ -1256,6 +1268,18 @@ tracks/2/keys = { "update": 1, "values": [false] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath(".:CanMove") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.333333, 0.916667, 1.25, 1.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [false, true, false, true, false] +} [sub_resource type="Animation" id="Animation_7j3of"] resource_name = "idle_front" @@ -1339,6 +1363,18 @@ tracks/2/keys = { "update": 1, "values": [false] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath(".:CanMove") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.333333, 0.916667, 1.25, 1.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [false, true, false, true, false] +} [sub_resource type="Animation" id="Animation_a705x"] resource_name = "idle_left" @@ -1422,6 +1458,18 @@ tracks/2/keys = { "update": 1, "values": [false] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath(".:CanMove") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.333333, 0.916667, 1.25, 1.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [false, true, false, true, false] +} [sub_resource type="Animation" id="Animation_vm8m6"] resource_name = "idle_right" @@ -1505,6 +1553,18 @@ tracks/2/keys = { "update": 1, "values": [true] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath(".:CanMove") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.333333, 0.916667, 1.25, 1.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [false, true, false, true, false] +} [sub_resource type="Animation" id="Animation_u0g5s"] resource_name = "primary_attack" @@ -1561,6 +1621,18 @@ tracks/3/keys = { "times": PackedFloat32Array(0) } 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_s5aqg"] resource_name = "primary_attack_back" @@ -1617,6 +1689,18 @@ tracks/3/keys = { "times": PackedFloat32Array(0) } 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"] resource_name = "primary_attack_left" @@ -1673,6 +1757,18 @@ tracks/3/keys = { "times": PackedFloat32Array(0) } 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"] resource_name = "primary_attack_right" @@ -1729,6 +1825,18 @@ tracks/3/keys = { "times": PackedFloat32Array(0) } 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"] resource_name = "secondary_attack" @@ -1785,6 +1893,18 @@ tracks/3/keys = { "times": PackedFloat32Array(0) } 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_tlm8w"] resource_name = "secondary_attack_back" @@ -1841,6 +1961,18 @@ tracks/3/keys = { "times": PackedFloat32Array(0) } 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"] resource_name = "secondary_attack_left" @@ -1897,6 +2029,18 @@ tracks/3/keys = { "times": PackedFloat32Array(0) } 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"] resource_name = "secondary_attack_right" @@ -1953,6 +2097,18 @@ tracks/3/keys = { "times": PackedFloat32Array(0) } 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"] _data = { diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agni/AgniDemonModelView.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agni/AgniDemonModelView.tscn index 04685d432..74589af2c 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agni/AgniDemonModelView.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agni/AgniDemonModelView.tscn @@ -2126,7 +2126,8 @@ EnemyLoreInfo = SubResource("Resource_f45wt") [node name="Sprite3D" type="Sprite3D" parent="."] unique_name_in_owner = true -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0250915, 1.985, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0250915, 2.95966, 0) +pixel_size = 0.015 billboard = 2 texture_filter = 0 render_priority = 100 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/PalanModelView.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/PalanModelView.tscn index 5cdb95ed4..9afb902e9 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/PalanModelView.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/PalanModelView.tscn @@ -978,540 +978,6 @@ _data = { &"Sunblast": SubResource("Animation_0qt6f") } -[sub_resource type="AtlasTexture" id="AtlasTexture_ycu4d"] -atlas = ExtResource("207_klhid") -region = Rect2(2560, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_u6rpl"] -atlas = ExtResource("207_klhid") -region = Rect2(3072, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_xmbum"] -atlas = ExtResource("207_klhid") -region = Rect2(3584, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_5etdo"] -atlas = ExtResource("207_klhid") -region = Rect2(4096, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_l2yl1"] -atlas = ExtResource("207_klhid") -region = Rect2(4608, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_xldvr"] -atlas = ExtResource("207_klhid") -region = Rect2(5120, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_73ixp"] -atlas = ExtResource("207_klhid") -region = Rect2(5632, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_yn1iw"] -atlas = ExtResource("207_klhid") -region = Rect2(6144, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_vyvum"] -atlas = ExtResource("207_klhid") -region = Rect2(6656, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_r8nxd"] -atlas = ExtResource("207_klhid") -region = Rect2(7168, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_3t1w7"] -atlas = ExtResource("207_klhid") -region = Rect2(7680, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_wfs0y"] -atlas = ExtResource("207_klhid") -region = Rect2(8192, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ucayo"] -atlas = ExtResource("207_klhid") -region = Rect2(8704, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_7pkyy"] -atlas = ExtResource("207_klhid") -region = Rect2(9216, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_hp2cu"] -atlas = ExtResource("207_klhid") -region = Rect2(9728, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_36022"] -atlas = ExtResource("207_klhid") -region = Rect2(10240, 0, 512, 512) - -[sub_resource type="SpriteFrames" id="SpriteFrames_skutu"] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_ycu4d") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_u6rpl") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_xmbum") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_5etdo") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_l2yl1") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_xldvr") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_73ixp") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_yn1iw") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_vyvum") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_r8nxd") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_3t1w7") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_wfs0y") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ucayo") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_7pkyy") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_hp2cu") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_36022") -}], -"loop": false, -"name": &"default", -"speed": 20.0 -}] - -[sub_resource type="AtlasTexture" id="AtlasTexture_lfx76"] -atlas = ExtResource("208_1bumx") -region = Rect2(1536, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_esogq"] -atlas = ExtResource("208_1bumx") -region = Rect2(2048, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_p6prl"] -atlas = ExtResource("208_1bumx") -region = Rect2(2560, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_1bx82"] -atlas = ExtResource("208_1bumx") -region = Rect2(3072, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_2r7qj"] -atlas = ExtResource("208_1bumx") -region = Rect2(3584, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_roe23"] -atlas = ExtResource("208_1bumx") -region = Rect2(4096, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_3c2vn"] -atlas = ExtResource("208_1bumx") -region = Rect2(4608, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_7vfvi"] -atlas = ExtResource("208_1bumx") -region = Rect2(5120, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_duqa0"] -atlas = ExtResource("208_1bumx") -region = Rect2(5632, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_15wcb"] -atlas = ExtResource("208_1bumx") -region = Rect2(6144, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_485il"] -atlas = ExtResource("208_1bumx") -region = Rect2(6656, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_1ad8r"] -atlas = ExtResource("208_1bumx") -region = Rect2(7168, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_dabot"] -atlas = ExtResource("208_1bumx") -region = Rect2(7680, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_j5vwn"] -atlas = ExtResource("208_1bumx") -region = Rect2(8192, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_pgvhf"] -atlas = ExtResource("208_1bumx") -region = Rect2(8704, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_dypo2"] -atlas = ExtResource("208_1bumx") -region = Rect2(9216, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_qfppj"] -atlas = ExtResource("208_1bumx") -region = Rect2(9728, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_nn6wu"] -atlas = ExtResource("208_1bumx") -region = Rect2(10240, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_hxual"] -atlas = ExtResource("208_1bumx") -region = Rect2(10752, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_4pon6"] -atlas = ExtResource("208_1bumx") -region = Rect2(11264, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_7t0c1"] -atlas = ExtResource("208_1bumx") -region = Rect2(11776, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_23nq1"] -atlas = ExtResource("208_1bumx") -region = Rect2(12288, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_74s5u"] -atlas = ExtResource("208_1bumx") -region = Rect2(12800, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_h5aaw"] -atlas = ExtResource("208_1bumx") -region = Rect2(13312, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_tpwkh"] -atlas = ExtResource("208_1bumx") -region = Rect2(13824, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_wj2yp"] -atlas = ExtResource("208_1bumx") -region = Rect2(14336, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_3778w"] -atlas = ExtResource("208_1bumx") -region = Rect2(14848, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ibrcd"] -atlas = ExtResource("208_1bumx") -region = Rect2(15360, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ao225"] -atlas = ExtResource("208_1bumx") -region = Rect2(15872, 0, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_yeh15"] -atlas = ExtResource("208_1bumx") -region = Rect2(0, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_klbq3"] -atlas = ExtResource("208_1bumx") -region = Rect2(512, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_nby80"] -atlas = ExtResource("208_1bumx") -region = Rect2(1024, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_hj4pt"] -atlas = ExtResource("208_1bumx") -region = Rect2(1536, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_52fee"] -atlas = ExtResource("208_1bumx") -region = Rect2(2048, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_knwtr"] -atlas = ExtResource("208_1bumx") -region = Rect2(2560, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_w2gpb"] -atlas = ExtResource("208_1bumx") -region = Rect2(3072, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_451ej"] -atlas = ExtResource("208_1bumx") -region = Rect2(3584, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_io8kp"] -atlas = ExtResource("208_1bumx") -region = Rect2(4096, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_mfwlx"] -atlas = ExtResource("208_1bumx") -region = Rect2(4608, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_6xnkb"] -atlas = ExtResource("208_1bumx") -region = Rect2(5120, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_8mxfo"] -atlas = ExtResource("208_1bumx") -region = Rect2(5632, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_o6st7"] -atlas = ExtResource("208_1bumx") -region = Rect2(6144, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_knt6e"] -atlas = ExtResource("208_1bumx") -region = Rect2(6656, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_g0n6k"] -atlas = ExtResource("208_1bumx") -region = Rect2(7168, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ufmw7"] -atlas = ExtResource("208_1bumx") -region = Rect2(7680, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_w3xca"] -atlas = ExtResource("208_1bumx") -region = Rect2(8192, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_gwfhu"] -atlas = ExtResource("208_1bumx") -region = Rect2(8704, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ysml0"] -atlas = ExtResource("208_1bumx") -region = Rect2(9216, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_au2wy"] -atlas = ExtResource("208_1bumx") -region = Rect2(9728, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_m3te5"] -atlas = ExtResource("208_1bumx") -region = Rect2(10240, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_nxn0i"] -atlas = ExtResource("208_1bumx") -region = Rect2(10752, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_hxgbc"] -atlas = ExtResource("208_1bumx") -region = Rect2(11264, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_kr8yc"] -atlas = ExtResource("208_1bumx") -region = Rect2(11776, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_mx134"] -atlas = ExtResource("208_1bumx") -region = Rect2(12288, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_5pui3"] -atlas = ExtResource("208_1bumx") -region = Rect2(12800, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_b81am"] -atlas = ExtResource("208_1bumx") -region = Rect2(13312, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ktubo"] -atlas = ExtResource("208_1bumx") -region = Rect2(13824, 512, 512, 512) - -[sub_resource type="AtlasTexture" id="AtlasTexture_vuiua"] -atlas = ExtResource("208_1bumx") -region = Rect2(14336, 512, 512, 512) - -[sub_resource type="SpriteFrames" id="SpriteFrames_j3g1o"] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_lfx76") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_esogq") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_p6prl") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_1bx82") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_2r7qj") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_roe23") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_3c2vn") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_7vfvi") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_duqa0") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_15wcb") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_485il") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_1ad8r") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_dabot") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_j5vwn") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_pgvhf") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_dypo2") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_qfppj") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_nn6wu") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_hxual") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_4pon6") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_7t0c1") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_23nq1") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_74s5u") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_h5aaw") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_tpwkh") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_wj2yp") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_3778w") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ibrcd") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ao225") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_yeh15") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_klbq3") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_nby80") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_hj4pt") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_52fee") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_knwtr") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_w2gpb") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_451ej") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_io8kp") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_mfwlx") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_6xnkb") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_8mxfo") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_o6st7") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_knt6e") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_g0n6k") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ufmw7") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_w3xca") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_gwfhu") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ysml0") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_au2wy") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_m3te5") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_nxn0i") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_hxgbc") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_kr8yc") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_mx134") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_5pui3") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_b81am") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ktubo") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_vuiua") -}], -"loop": true, -"name": &"default", -"speed": 30.0 -}] - [sub_resource type="BoxShape3D" id="BoxShape3D_53wuj"] size = Vector3(1, 0.565, 2) @@ -2386,13 +1852,547 @@ Damage = 10 ElementType = 0 metadata/_custom_type_script = "uid://ctshiyffvt4y5" +[sub_resource type="AtlasTexture" id="AtlasTexture_ycu4d"] +atlas = ExtResource("207_klhid") +region = Rect2(2560, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_u6rpl"] +atlas = ExtResource("207_klhid") +region = Rect2(3072, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xmbum"] +atlas = ExtResource("207_klhid") +region = Rect2(3584, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5etdo"] +atlas = ExtResource("207_klhid") +region = Rect2(4096, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_l2yl1"] +atlas = ExtResource("207_klhid") +region = Rect2(4608, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xldvr"] +atlas = ExtResource("207_klhid") +region = Rect2(5120, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_73ixp"] +atlas = ExtResource("207_klhid") +region = Rect2(5632, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yn1iw"] +atlas = ExtResource("207_klhid") +region = Rect2(6144, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vyvum"] +atlas = ExtResource("207_klhid") +region = Rect2(6656, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_r8nxd"] +atlas = ExtResource("207_klhid") +region = Rect2(7168, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3t1w7"] +atlas = ExtResource("207_klhid") +region = Rect2(7680, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wfs0y"] +atlas = ExtResource("207_klhid") +region = Rect2(8192, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ucayo"] +atlas = ExtResource("207_klhid") +region = Rect2(8704, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7pkyy"] +atlas = ExtResource("207_klhid") +region = Rect2(9216, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hp2cu"] +atlas = ExtResource("207_klhid") +region = Rect2(9728, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_36022"] +atlas = ExtResource("207_klhid") +region = Rect2(10240, 0, 512, 512) + +[sub_resource type="SpriteFrames" id="SpriteFrames_skutu"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_ycu4d") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_u6rpl") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xmbum") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5etdo") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_l2yl1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xldvr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_73ixp") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_yn1iw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_vyvum") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_r8nxd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3t1w7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_wfs0y") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ucayo") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7pkyy") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hp2cu") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_36022") +}], +"loop": false, +"name": &"default", +"speed": 20.0 +}] + +[sub_resource type="AtlasTexture" id="AtlasTexture_lfx76"] +atlas = ExtResource("208_1bumx") +region = Rect2(1536, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_esogq"] +atlas = ExtResource("208_1bumx") +region = Rect2(2048, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_p6prl"] +atlas = ExtResource("208_1bumx") +region = Rect2(2560, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1bx82"] +atlas = ExtResource("208_1bumx") +region = Rect2(3072, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2r7qj"] +atlas = ExtResource("208_1bumx") +region = Rect2(3584, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_roe23"] +atlas = ExtResource("208_1bumx") +region = Rect2(4096, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3c2vn"] +atlas = ExtResource("208_1bumx") +region = Rect2(4608, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7vfvi"] +atlas = ExtResource("208_1bumx") +region = Rect2(5120, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_duqa0"] +atlas = ExtResource("208_1bumx") +region = Rect2(5632, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_15wcb"] +atlas = ExtResource("208_1bumx") +region = Rect2(6144, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_485il"] +atlas = ExtResource("208_1bumx") +region = Rect2(6656, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1ad8r"] +atlas = ExtResource("208_1bumx") +region = Rect2(7168, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dabot"] +atlas = ExtResource("208_1bumx") +region = Rect2(7680, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_j5vwn"] +atlas = ExtResource("208_1bumx") +region = Rect2(8192, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pgvhf"] +atlas = ExtResource("208_1bumx") +region = Rect2(8704, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dypo2"] +atlas = ExtResource("208_1bumx") +region = Rect2(9216, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qfppj"] +atlas = ExtResource("208_1bumx") +region = Rect2(9728, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nn6wu"] +atlas = ExtResource("208_1bumx") +region = Rect2(10240, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hxual"] +atlas = ExtResource("208_1bumx") +region = Rect2(10752, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4pon6"] +atlas = ExtResource("208_1bumx") +region = Rect2(11264, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7t0c1"] +atlas = ExtResource("208_1bumx") +region = Rect2(11776, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_23nq1"] +atlas = ExtResource("208_1bumx") +region = Rect2(12288, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_74s5u"] +atlas = ExtResource("208_1bumx") +region = Rect2(12800, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_h5aaw"] +atlas = ExtResource("208_1bumx") +region = Rect2(13312, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tpwkh"] +atlas = ExtResource("208_1bumx") +region = Rect2(13824, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wj2yp"] +atlas = ExtResource("208_1bumx") +region = Rect2(14336, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3778w"] +atlas = ExtResource("208_1bumx") +region = Rect2(14848, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ibrcd"] +atlas = ExtResource("208_1bumx") +region = Rect2(15360, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ao225"] +atlas = ExtResource("208_1bumx") +region = Rect2(15872, 0, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yeh15"] +atlas = ExtResource("208_1bumx") +region = Rect2(0, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_klbq3"] +atlas = ExtResource("208_1bumx") +region = Rect2(512, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nby80"] +atlas = ExtResource("208_1bumx") +region = Rect2(1024, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hj4pt"] +atlas = ExtResource("208_1bumx") +region = Rect2(1536, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_52fee"] +atlas = ExtResource("208_1bumx") +region = Rect2(2048, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_knwtr"] +atlas = ExtResource("208_1bumx") +region = Rect2(2560, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_w2gpb"] +atlas = ExtResource("208_1bumx") +region = Rect2(3072, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_451ej"] +atlas = ExtResource("208_1bumx") +region = Rect2(3584, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_io8kp"] +atlas = ExtResource("208_1bumx") +region = Rect2(4096, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mfwlx"] +atlas = ExtResource("208_1bumx") +region = Rect2(4608, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6xnkb"] +atlas = ExtResource("208_1bumx") +region = Rect2(5120, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8mxfo"] +atlas = ExtResource("208_1bumx") +region = Rect2(5632, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_o6st7"] +atlas = ExtResource("208_1bumx") +region = Rect2(6144, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_knt6e"] +atlas = ExtResource("208_1bumx") +region = Rect2(6656, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_g0n6k"] +atlas = ExtResource("208_1bumx") +region = Rect2(7168, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ufmw7"] +atlas = ExtResource("208_1bumx") +region = Rect2(7680, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_w3xca"] +atlas = ExtResource("208_1bumx") +region = Rect2(8192, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gwfhu"] +atlas = ExtResource("208_1bumx") +region = Rect2(8704, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ysml0"] +atlas = ExtResource("208_1bumx") +region = Rect2(9216, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_au2wy"] +atlas = ExtResource("208_1bumx") +region = Rect2(9728, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_m3te5"] +atlas = ExtResource("208_1bumx") +region = Rect2(10240, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nxn0i"] +atlas = ExtResource("208_1bumx") +region = Rect2(10752, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hxgbc"] +atlas = ExtResource("208_1bumx") +region = Rect2(11264, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kr8yc"] +atlas = ExtResource("208_1bumx") +region = Rect2(11776, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mx134"] +atlas = ExtResource("208_1bumx") +region = Rect2(12288, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5pui3"] +atlas = ExtResource("208_1bumx") +region = Rect2(12800, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_b81am"] +atlas = ExtResource("208_1bumx") +region = Rect2(13312, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ktubo"] +atlas = ExtResource("208_1bumx") +region = Rect2(13824, 512, 512, 512) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vuiua"] +atlas = ExtResource("208_1bumx") +region = Rect2(14336, 512, 512, 512) + +[sub_resource type="SpriteFrames" id="SpriteFrames_j3g1o"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_lfx76") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_esogq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_p6prl") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1bx82") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2r7qj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_roe23") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3c2vn") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7vfvi") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_duqa0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_15wcb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_485il") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1ad8r") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_dabot") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_j5vwn") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_pgvhf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_dypo2") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qfppj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nn6wu") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hxual") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4pon6") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7t0c1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_23nq1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_74s5u") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_h5aaw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tpwkh") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_wj2yp") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3778w") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ibrcd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ao225") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_yeh15") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_klbq3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nby80") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hj4pt") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_52fee") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_knwtr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_w2gpb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_451ej") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_io8kp") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_mfwlx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6xnkb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8mxfo") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_o6st7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_knt6e") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_g0n6k") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ufmw7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_w3xca") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gwfhu") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ysml0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_au2wy") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_m3te5") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nxn0i") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hxgbc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kr8yc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_mx134") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5pui3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_b81am") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ktubo") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_vuiua") +}], +"loop": true, +"name": &"default", +"speed": 30.0 +}] + [node name="EnemyModelView" type="Node3D"] script = ExtResource("1_yke7o") [node name="Sprite3D" type="Sprite3D" parent="."] unique_name_in_owner = true -transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 1.58928, 0) -pixel_size = 0.005 +transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 2.64295, 0) +pixel_size = 0.0085 billboard = 1 alpha_cut = 1 texture_filter = 0 @@ -2419,23 +2419,11 @@ sprite_frames = SubResource("SpriteFrames_sobol") animation = &"idle_front" [node name="AnimationPlayer2" type="AnimationPlayer" parent="Sprite3D"] -root_node = NodePath("Sunblast") +root_node = NodePath("../../Sunblast") libraries = { &"": SubResource("AnimationLibrary_uma8i") } -[node name="Sunblast" type="AnimatedSprite3D" parent="Sprite3D/AnimationPlayer2"] -transform = Transform3D(0.335, 0, 0, 0, 0.335, 0, 0, 0, 0.335, -0.546079, 0.441674, 0.207245) -offset = Vector2(150, 400) -sprite_frames = SubResource("SpriteFrames_skutu") -frame = 15 - -[node name="Primary Attack" type="AnimatedSprite3D" parent="Sprite3D/AnimationPlayer2"] -transform = Transform3D(0.275, 0, 0, 0, 0.275, 0, 0, 0, 0.275, 0, 1.33811, -0.317864) -billboard = 1 -render_priority = 102 -sprite_frames = SubResource("SpriteFrames_j3g1o") - [node name="Hitbox" type="Area3D" parent="."] unique_name_in_owner = true transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.152949, 1.55261, 0) @@ -2486,3 +2474,17 @@ cast_shadow = 0 modulate = Color(1, 1, 1, 0.591) texture_filter = 0 texture = ExtResource("212_lid5r") + +[node name="Sunblast" type="AnimatedSprite3D" parent="."] +transform = Transform3D(0.335, 0, 0, 0, 0.335, 0, 0, 0, 0.335, -0.546079, 1.49534, 0.207245) +offset = Vector2(150, 400) +pixel_size = 0.0085 +sprite_frames = SubResource("SpriteFrames_skutu") +frame = 15 + +[node name="Primary Attack" type="AnimatedSprite3D" parent="."] +transform = Transform3D(0.275, 0, 0, 0, 0.275, 0, 0, 0, 0.275, 0, 2.39178, -0.317864) +pixel_size = 0.0085 +billboard = 1 +render_priority = 102 +sprite_frames = SubResource("SpriteFrames_j3g1o") diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/PalanProjectile1.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/PalanProjectile1.tscn index e419b9596..d5e781bc0 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/PalanProjectile1.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/PalanProjectile1.tscn @@ -516,25 +516,17 @@ _data = { script = ExtResource("1_mm1vd") [node name="Bullet" type="Node3D" parent="."] -visible = false - -[node name="AnimatedSprite3D" type="AnimatedSprite3D" parent="Bullet"] -transform = Transform3D(4.3946e-16, -1.00536e-08, -0.23, -0.23, -1.00536e-08, -2.06464e-21, -1.00536e-08, 0.23, -1.00536e-08, 0, 0, 0) -visible = false -offset = Vector2(0, 150) -sprite_frames = SubResource("SpriteFrames_brsyt") -autoplay = "default" -frame_progress = 0.347379 +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.547908) [node name="AnimatedSprite3D3" type="AnimatedSprite3D" parent="Bullet"] -transform = Transform3D(4.3946e-16, -1.00536e-08, -0.23, -0.23, -1.00536e-08, -2.06464e-21, -1.00536e-08, 0.23, -1.00536e-08, -0.110128, 0, 0) +transform = Transform3D(4.3946e-16, -1.00536e-08, -0.23, -0.23, -1.00536e-08, -2.06464e-21, -1.00536e-08, 0.23, -1.00536e-08, -0.0494268, 0, 0) offset = Vector2(0, 150) sprite_frames = SubResource("SpriteFrames_brsyt") autoplay = "default" frame_progress = 0.365901 [node name="AnimatedSprite3D2" type="AnimatedSprite3D" parent="Bullet"] -transform = Transform3D(0.23, 0, 1.00536e-08, 1.00536e-08, 4.39458e-16, -0.23, 0, 0.23, 4.39458e-16, -0.0667875, 0.0385479, 0) +transform = Transform3D(0.23, 0, 1.00536e-08, 1.00536e-08, 4.39458e-16, -0.23, 0, 0.23, 4.39458e-16, -0.0599805, -0.0069199, 0) offset = Vector2(0, 150) sprite_frames = SubResource("SpriteFrames_brsyt") autoplay = "default" @@ -554,7 +546,7 @@ shape = SubResource("SphereShape3D_kct8n") [node name="AnimationPlayer" type="AnimationPlayer" parent="Bullet"] unique_name_in_owner = true -root_node = NodePath("../AnimatedSprite3D") +root_node = NodePath("") libraries = { &"": SubResource("AnimationLibrary_q8n6h") } diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/PalanProjectile2.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/PalanProjectile2.tscn index 8bf610cc8..94741c247 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/PalanProjectile2.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/PalanProjectile2.tscn @@ -493,17 +493,11 @@ _data = { script = ExtResource("1_k72x7") [node name="Bullet" type="Node3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 35) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.42531) visible = false [node name="AnimatedSprite3D2" type="AnimatedSprite3D" parent="Bullet"] -transform = Transform3D(4.3946e-16, -1.00536e-08, -0.23, -0.23, -1.00536e-08, -2.06464e-21, -1.00536e-08, 0.23, -1.00536e-08, 0, 0, 0) -offset = Vector2(0, 150) -sprite_frames = SubResource("SpriteFrames_aistn") -autoplay = "default" - -[node name="AnimatedSprite3D3" type="AnimatedSprite3D" parent="Bullet"] -transform = Transform3D(4.3946e-16, -1.00536e-08, -0.23, -0.23, -1.00536e-08, -2.06464e-21, -1.00536e-08, 0.23, -1.00536e-08, -0.110128, 0, 0) +transform = Transform3D(4.3946e-16, -1.00536e-08, -0.23, -0.23, -1.00536e-08, -2.06464e-21, -1.00536e-08, 0.23, -1.00536e-08, -0.0569987, 0.0446073, 0) offset = Vector2(0, 150) sprite_frames = SubResource("SpriteFrames_aistn") autoplay = "default" diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldModelView.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldModelView.tscn index 11cf6c308..64012a66b 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldModelView.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldModelView.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=585 format=3 uid="uid://bochx2nfql67q"] +[gd_scene load_steps=584 format=3 uid="uid://bochx2nfql67q"] [ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_h8pla"] [ext_resource type="Texture2D" uid="uid://clwj6yknpw74n" path="res://src/enemy/enemy_types/12. Shield of Heaven/animations/New/Idle Back/0001.png" id="2_2eclh"] @@ -2168,6 +2168,18 @@ tracks/3/keys = { "update": 1, "values": [false] } +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Attack 1 VFX:frame") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} [sub_resource type="Animation" id="Animation_xt8vr"] resource_name = "idle_back" @@ -2564,8 +2576,8 @@ tracks/4/path = NodePath("VFX Animation Player") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { -"clips": PackedStringArray("[stop]", "ATTACK VFX", "[stop]"), -"times": PackedFloat32Array(0, 0.666667, 1.66667) +"clips": PackedStringArray("ATTACK VFX"), +"times": PackedFloat32Array(0.666667) } tracks/5/type = "audio" tracks/5/imported = false @@ -3141,49 +3153,13 @@ states/Idle/node = ExtResource("166_yh3w6") states/Idle/position = Vector2(359, 100) "states/Primary Attack/node" = ExtResource("167_fab8g") "states/Primary Attack/position" = Vector2(359, 263) +"states/Secondary Attack/node" = SubResource("AnimationNodeAnimation_j5so5") +"states/Secondary Attack/position" = Vector2(687, 263) states/Walking/node = ExtResource("169_w7rrw") states/Walking/position = Vector2(687, 100) -states/secondary_attack/node = SubResource("AnimationNodeAnimation_j5so5") -states/secondary_attack/position = Vector2(687, 263) -transitions = ["Start", "Idle", SubResource("AnimationNodeStateMachineTransition_y7ljc"), "Idle", "Walking", SubResource("AnimationNodeStateMachineTransition_08dxp"), "Idle", "Primary Attack", SubResource("AnimationNodeStateMachineTransition_yk2s3"), "Primary Attack", "Idle", SubResource("AnimationNodeStateMachineTransition_mb5pg"), "Walking", "Primary Attack", SubResource("AnimationNodeStateMachineTransition_olfsm"), "Walking", "Idle", SubResource("AnimationNodeStateMachineTransition_f1vvk"), "Idle", "secondary_attack", SubResource("AnimationNodeStateMachineTransition_0pum8"), "Walking", "secondary_attack", SubResource("AnimationNodeStateMachineTransition_vwlpl"), "secondary_attack", "Idle", SubResource("AnimationNodeStateMachineTransition_l1ir8")] +transitions = ["Start", "Idle", SubResource("AnimationNodeStateMachineTransition_y7ljc"), "Idle", "Walking", SubResource("AnimationNodeStateMachineTransition_08dxp"), "Idle", "Primary Attack", SubResource("AnimationNodeStateMachineTransition_yk2s3"), "Primary Attack", "Idle", SubResource("AnimationNodeStateMachineTransition_mb5pg"), "Walking", "Primary Attack", SubResource("AnimationNodeStateMachineTransition_olfsm"), "Walking", "Idle", SubResource("AnimationNodeStateMachineTransition_f1vvk"), "Idle", "Secondary Attack", SubResource("AnimationNodeStateMachineTransition_0pum8"), "Walking", "Secondary Attack", SubResource("AnimationNodeStateMachineTransition_vwlpl"), "Secondary Attack", "Idle", SubResource("AnimationNodeStateMachineTransition_l1ir8")] graph_offset = Vector2(-16, 68) -[sub_resource type="Animation" id="Animation_v8s5q"] -resource_name = "ATTACK VFX" -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(-5.96046e-08, 0.966667), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [0, 29] -} - -[sub_resource type="Animation" id="Animation_jd3bx"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [0] -} - -[sub_resource type="AnimationLibrary" id="AnimationLibrary_yuosm"] -_data = { -&"ATTACK VFX": SubResource("Animation_v8s5q"), -&"RESET": SubResource("Animation_jd3bx") -} - [sub_resource type="AtlasTexture" id="AtlasTexture_iv5px"] atlas = ExtResource("381_moqrm") region = Rect2(0, 0, 512, 512) @@ -3398,15 +3374,73 @@ animations = [{ "speed": 24.0 }] -[sub_resource type="SpriteFrames" id="SpriteFrames_lgwan"] +[sub_resource type="Animation" id="Animation_v8s5q"] +resource_name = "ATTACK VFX" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(-5.96046e-08, 0.966667), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0, 29] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:animation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"default"] +} + +[sub_resource type="Animation" id="Animation_jd3bx"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:animation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"default"] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_yuosm"] +_data = { +&"ATTACK VFX": SubResource("Animation_v8s5q"), +&"RESET": SubResource("Animation_jd3bx") +} [node name="EnemyModelView" type="Node3D"] script = ExtResource("1_h8pla") [node name="Sprite3D" type="Sprite3D" parent="."] unique_name_in_owner = true -transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 1.70362, 0) -pixel_size = 0.005 +transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 2.56856, 0) +pixel_size = 0.007 billboard = 2 alpha_cut = 1 texture_filter = 0 @@ -3460,22 +3494,19 @@ process_mode = 3 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0455525, 0) bus = &"SFX" -[node name="VFX Animation Player" type="AnimationPlayer" parent="."] -root_node = NodePath("Attack 1 VFX") -libraries = { -&"": SubResource("AnimationLibrary_yuosm") -} - -[node name="Attack 1 VFX" type="AnimatedSprite3D" parent="VFX Animation Player"] -transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 1.14695, 0.733219) +[node name="Attack 1 VFX" type="AnimatedSprite3D" parent="."] +transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 2.01189, 0.733219) modulate = Color(1, 1, 1, 0.788235) +pixel_size = 0.007 billboard = 1 texture_filter = 0 sprite_frames = SubResource("SpriteFrames_ie7uh") -[node name="Attack 2 VFX" type="AnimatedSprite3D" parent="VFX Animation Player"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2.74915, 0) -sprite_frames = SubResource("SpriteFrames_lgwan") +[node name="VFX Animation Player" type="AnimationPlayer" parent="."] +root_node = NodePath("../Attack 1 VFX") +libraries = { +&"": SubResource("AnimationLibrary_yuosm") +} [node name="WalkSFX" type="AudioStreamPlayer3D" parent="."] unique_name_in_owner = true diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.cs b/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.cs index 5a306f855..552cdf5a8 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.cs +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.cs @@ -1,6 +1,8 @@ using Chickensoft.AutoInject; using Chickensoft.Introspection; using Godot; +using System; +using System.Collections.Generic; using System.Linq; using Zennysoft.Game.Ma; @@ -9,6 +11,11 @@ public partial class ShieldOfHeaven : Enemy2D, IHavePatrolBehavior, IHaveEngageP { public override void _Notification(int what) => this.Notify(what); + + [Export] private float PrimaryAttackChance { get; set; } = 0.75f; + + [Export] private float SecondaryAttackChance { get; set; } = 0.25f; + [Node] public NavigationAgent3D NavigationAgent { get; set; } [Node] public PatrolBehavior PatrolBehavior { get; set; } = default!; [Node] public FollowBehavior FollowBehavior { get; set; } = default!; @@ -16,6 +23,7 @@ public partial class ShieldOfHeaven : Enemy2D, IHavePatrolBehavior, IHaveEngageP [Node] public Area3D PlayerDetector { get; set; } = default!; + public void OnReady() { FollowBehavior.Init(NavigationAgent); @@ -39,4 +47,12 @@ public partial class ShieldOfHeaven : Enemy2D, IHavePatrolBehavior, IHaveEngageP PlayerDetector.BodyEntered -= PlayerDetector_BodyEntered; PlayerDetector.BodyExited -= PlayerDetector_BodyExited; } + + public override void PerformAction() + { + var rng = new RandomNumberGenerator(); + var options = new List() { EnemyModelView.PlayPrimaryAttackAnimation, EnemyModelView.PlaySecondaryAttackAnimation }; + var selection = rng.RandWeighted([PrimaryAttackChance, SecondaryAttackChance]); + options[(int)selection].Invoke(); + } } diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.tscn index b2f386662..6e57112b4 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.tscn @@ -34,12 +34,12 @@ script = ExtResource("1_oxa5b") [node name="CollisionShape" type="CollisionShape3D" parent="."] unique_name_in_owner = true -transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.1154, 0) +transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.71346, 0) shape = SubResource("CapsuleShape3D_cwfph") [node name="LineOfSight" type="Area3D" parent="."] unique_name_in_owner = true -transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.1154, 0) +transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.71346, 0) collision_layer = 2 collision_mask = 2 @@ -55,7 +55,7 @@ collision_mask = 3 [node name="PlayerDetector" type="Area3D" parent="."] unique_name_in_owner = true -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1154, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.71346, 0) collision_layer = 0 collision_mask = 34 @@ -63,7 +63,7 @@ collision_mask = 34 shape = SubResource("CylinderShape3D_d5a6t") [node name="Collision" type="Area3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1154, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.71346, 0) collision_layer = 2048 collision_mask = 0 @@ -75,7 +75,7 @@ unique_name_in_owner = true transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.110944, 0) [node name="Components" type="Node3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1154, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.71346, 0) [node name="PatrolBehavior" parent="Components" instance=ExtResource("4_jvpqg")] unique_name_in_owner = true @@ -94,7 +94,7 @@ avoidance_enabled = true radius = 1.0 [node name="HitSounds" type="Node3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1154, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.71346, 0) [node name="AbsorbSFX" type="AudioStreamPlayer3D" parent="HitSounds"] unique_name_in_owner = true