diff --git a/Zennysoft.Game.Ma/src/enemy/BossTypeA.cs b/Zennysoft.Game.Ma/src/enemy/BossTypeA.cs index bd448156..9e228a58 100644 --- a/Zennysoft.Game.Ma/src/enemy/BossTypeA.cs +++ b/Zennysoft.Game.Ma/src/enemy/BossTypeA.cs @@ -37,11 +37,15 @@ public partial class BossTypeA : Enemy, IHaveEngagePlayerBehavior, IHaveFollowBe [Node] public Area3D PlayerDetector { get; set; } = default!; + [Node] public Label BossHP { get; set; } = default!; + private Vector3 _previousPosition = Vector3.Zero; public void OnResolved() { FollowBehavior.Init(NavigationAgent); + var enemyModelView3D = EnemyModelView as EnemyModelView3D; + enemyModelView3D.OnDeathAnimationCompleted += EnemyModelView3D_OnDeathAnimationCompleted; } public override void _Process(double delta) @@ -55,6 +59,8 @@ public partial class BossTypeA : Enemy, IHaveEngagePlayerBehavior, IHaveFollowBe _enemyLogic.Input(new EnemyLogic.Input.Move()); _previousPosition = GlobalPosition; } + + BossHP.Text = HealthComponent.CurrentHP.Value + "/" + HealthComponent.MaximumHP.Value; } public void OnPhysicsProcess(double delta) @@ -123,6 +129,21 @@ public partial class BossTypeA : Enemy, IHaveEngagePlayerBehavior, IHaveFollowBe _enemyLogic.Input(new EnemyLogic.Input.Activate()); } + public override void Die() + { + SetPhysicsProcess(false); + _enemyLogic.Input(new EnemyLogic.Input.Defeated()); + EnemyHitbox.SetDeferred(CollisionShape3D.PropertyName.Disabled, true); + _player.ExperiencePointsComponent.Gain(ExpGiven); + EnemyModelView.PlayDeathAnimation(); + } + + private void EnemyModelView3D_OnDeathAnimationCompleted() + { + CallDeferred(MethodName.QueueFree); + } + + public void RotateToPlayer(float rotationAngle) { var tweener = GetTree().CreateTween(); diff --git a/Zennysoft.Game.Ma/src/enemy/Enemy.cs b/Zennysoft.Game.Ma/src/enemy/Enemy.cs index 05bdb6c7..eb53dc5e 100644 --- a/Zennysoft.Game.Ma/src/enemy/Enemy.cs +++ b/Zennysoft.Game.Ma/src/enemy/Enemy.cs @@ -37,7 +37,7 @@ public abstract partial class Enemy : CharacterBody3D, IEnemy, IProvide OnPlayerHit(new AttackEventArgs(AttackData)); + private void DeathAnimation_AnimationFinished(StringName animName) { - QueueFree(); + EmitSignal(SignalName.OnDeathAnimationCompleted); } public override Vector2 GetSize() diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/14. horse_head/HorseFace.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/14. horse_head/HorseFace.tscn index 08d576a9..503240fb 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/14. horse_head/HorseFace.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/14. horse_head/HorseFace.tscn @@ -8,33 +8,32 @@ [ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="6_fg0ds"] [ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="7_exr8b"] -[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_c0n4w"] -radius = 0.658285 -height = 4.06911 +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_nt5fo"] +radius = 1.0 +height = 4.0 [sub_resource type="SphereShape3D" id="SphereShape3D_jl3qa"] radius = 2.70035 [sub_resource type="CylinderShape3D" id="CylinderShape3D_wp4vi"] -height = 7.32397 -radius = 5.58984 +height = 7.0 +radius = 3.0 [node name="HorseFace" type="CharacterBody3D"] collision_layer = 10 collision_mask = 3 -axis_lock_linear_y = true -axis_lock_angular_x = true -axis_lock_angular_y = true motion_mode = 1 script = ExtResource("1_x21p4") +InitialHP = 100 [node name="CollisionShape" type="CollisionShape3D" parent="."] unique_name_in_owner = true -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.283736, 0) -shape = SubResource("CapsuleShape3D_c0n4w") +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.182602, 0.542515, -0.127861) +shape = SubResource("CapsuleShape3D_nt5fo") [node name="EnemyModelView" parent="." instance=ExtResource("2_x21p4")] unique_name_in_owner = true +transform = Transform3D(0.15, 0, 0, 0, 0.15, 0, 0, 0, 0.15, 0, 0.826525, 0) [node name="Collision" type="Area3D" parent="."] collision_layer = 2048 @@ -96,3 +95,26 @@ bus = &"SFX" [node name="AggroSFX" type="AudioStreamPlayer3D" parent="HitSounds"] unique_name_in_owner = true bus = &"SFX" + +[node name="Control" type="Control" parent="."] +layout_mode = 3 +anchor_right = 0.149 +anchor_bottom = 0.129 +offset_left = 466.0 +offset_top = 1021.0 +offset_right = 393.92 +offset_bottom = 927.68 + +[node name="Boss Health" type="Label" parent="Control"] +layout_mode = 0 +offset_right = 40.0 +offset_bottom = 23.0 +text = "Horse Head HP:" + +[node name="BossHP" type="Label" parent="Control"] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 128.0 +offset_top = 2.0 +offset_right = 203.0 +offset_bottom = 25.0 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/14. horse_head/HorseFaceModelView.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/14. horse_head/HorseFaceModelView.tscn index 84fca1ee..7e4e086b 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/14. horse_head/HorseFaceModelView.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/14. horse_head/HorseFaceModelView.tscn @@ -165,10 +165,22 @@ bind/32/bone = -1 bind/32/pose = Transform3D(-0.16376, 0.9865, -2.58876e-07, 1.58082e-06, 2.84217e-14, -1, -0.9865, -0.16376, -1.55948e-06, 0.296279, -1.51158, -0.141545) [sub_resource type="BoxShape3D" id="BoxShape3D_q3bfl"] -size = Vector3(5, 20.856, 5.50244) +size = Vector3(5.44543, 9.64076, 6.51977) [sub_resource type="Animation" id="Animation_i2g67"] length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Armature/Skeleton3D/BoneAttachment3D2/Hitbox/CollisionShape3D:disabled") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} [sub_resource type="Animation" id="Animation_bsekl"] resource_name = "idle" @@ -655,6 +667,18 @@ tracks/33/keys = { "times": PackedFloat32Array(0) } tracks/33/use_blend = true +tracks/34/type = "value" +tracks/34/imported = false +tracks/34/enabled = true +tracks/34/path = NodePath("Armature/Skeleton3D/BoneAttachment3D2/Hitbox/CollisionShape3D:disabled") +tracks/34/interp = 1 +tracks/34/loop_wrap = true +tracks/34/keys = { +"times": PackedFloat32Array(0, 0.366667, 0.4, 0.9, 0.933333), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [true, false, true, false, true] +} [sub_resource type="Animation" id="Animation_nem1a"] resource_name = "secondary_attack" @@ -905,6 +929,18 @@ tracks/33/keys = { "times": PackedFloat32Array(0.966667) } tracks/33/use_blend = true +tracks/34/type = "value" +tracks/34/imported = false +tracks/34/enabled = true +tracks/34/path = NodePath("Armature/Skeleton3D/BoneAttachment3D2/Hitbox/CollisionShape3D:disabled") +tracks/34/interp = 1 +tracks/34/loop_wrap = true +tracks/34/keys = { +"times": PackedFloat32Array(0, 0.933333, 1.06667), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [true, false, true] +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_h244y"] _data = { @@ -4210,7 +4246,7 @@ bones/0/name = "spine1" bones/0/parent = -1 bones/0/rest = Transform3D(1.49012e-06, 0.00846654, -0.999964, 2.93367e-08, 0.999964, 0.00846654, 1, -4.19517e-08, 1.48981e-06, 0.000155807, -0.00105953, -2.01735) bones/0/enabled = true -bones/0/position = Vector3(0.0996386, -0.27557, -1.53144) +bones/0/position = Vector3(0.0996386, -0.100203, -1.53144) bones/0/rotation = Quaternion(0.0256267, -0.805691, 0.0118477, 0.591662) bones/0/scale = Vector3(1, 1, 1) bones/1/name = "spine0" @@ -4239,21 +4275,21 @@ bones/4/parent = 3 bones/4/rest = Transform3D(0.901905, -0.410135, 0.135488, 0.412416, 0.910915, 0.0120912, -0.128377, 0.0449723, 0.990705, 2.5332e-07, 0.990515, -7.07805e-08) bones/4/enabled = true bones/4/position = Vector3(2.5332e-07, 0.990515, -7.07805e-08) -bones/4/rotation = Quaternion(0.00823455, 0.0675358, 0.21052, 0.975219) +bones/4/rotation = Quaternion(-0.00638545, 0.0590521, 0.183295, 0.981262) bones/4/scale = Vector3(1, 1, 1) bones/5/name = "neck4" bones/5/parent = 4 bones/5/rest = Transform3D(0.999746, -0.0223582, -0.00293604, 0.0225401, 0.994675, 0.10057, 0.000671851, -0.10061, 0.994926, 2.23517e-07, 1.26785, -4.84288e-08) bones/5/enabled = true bones/5/position = Vector3(2.23517e-07, 1.26785, -4.84288e-08) -bones/5/rotation = Quaternion(-0.0503622, -0.000903181, 0.0112395, 0.998667) +bones/5/rotation = Quaternion(-0.0503622, -0.000903206, 0.0112395, 0.998667) bones/5/scale = Vector3(1, 1, 1) bones/6/name = "head1" bones/6/parent = 5 bones/6/rest = Transform3D(0.0598389, 0.98531, 0.15995, -0.975271, 0.0235553, 0.219755, 0.212759, -0.169144, 0.962353, 3.65078e-07, 1.40318, 0) bones/6/enabled = true bones/6/position = Vector3(3.65078e-07, 1.40318, 0) -bones/6/rotation = Quaternion(-0.343412, 0.052141, -0.495865, 0.795907) +bones/6/rotation = Quaternion(-0.327135, 0.0505906, -0.45005, 0.829384) bones/6/scale = Vector3(1, 1, 1) bones/7/name = "Bone.007" bones/7/parent = 6 @@ -4288,7 +4324,7 @@ bones/11/parent = 1 bones/11/rest = Transform3D(0.981457, 0.0769315, -0.175568, 0.18837, -0.217537, 0.957703, 0.035485, -0.973015, -0.227995, -1.09896e-07, 3.84743, -2.10479e-07) bones/11/enabled = true bones/11/position = Vector3(-1.09896e-07, 3.84743, -2.10479e-07) -bones/11/rotation = Quaternion(-0.805856, -0.0793293, -0.0234794, 0.586304) +bones/11/rotation = Quaternion(-0.814455, -0.0954406, -0.0238501, 0.571826) bones/11/scale = Vector3(1, 1, 1) bones/12/name = "arm2_L" bones/12/parent = 11 @@ -4315,7 +4351,7 @@ bones/15/name = "arm1_R" bones/15/parent = 1 bones/15/rest = Transform3D(-0.98213, 0.0512573, -0.181089, -0.187541, -0.185921, 0.964501, 0.0157695, 0.981227, 0.192212, 0.00107862, 3.8461, -0.0821097) bones/15/enabled = true -bones/15/position = Vector3(-0.203474, 3.65764, 0.0742403) +bones/15/position = Vector3(-0.168656, 3.38988, 0.124869) bones/15/rotation = Quaternion(-0.502686, 0.531044, 0.680821, -0.0422068) bones/15/scale = Vector3(1, 1, 1) bones/16/name = "arm2_R" @@ -4330,7 +4366,7 @@ bones/17/parent = 16 bones/17/rest = Transform3D(0.998789, 0.0488077, -0.00615137, -0.0491113, 0.996528, -0.0672226, 0.00284903, 0.0674433, 0.997719, -5.21541e-08, 3.04263, -1.31503e-06) bones/17/enabled = true bones/17/position = Vector3(-5.21541e-08, 3.04263, -1.31503e-06) -bones/17/rotation = Quaternion(-0.0469223, 0.0973887, 0.264564, 0.95829) +bones/17/rotation = Quaternion(-0.0077377, 0.0960272, 0.278179, 0.955686) bones/17/scale = Vector3(1, 1, 1) bones/18/name = "hand_R" bones/18/parent = 17 @@ -4343,7 +4379,7 @@ bones/19/name = "hip_L" bones/19/parent = -1 bones/19/rest = Transform3D(0.138486, 0.897208, 0.419333, -0.129033, -0.403458, 0.905854, 0.981923, -0.179556, 0.0598959, 0.000155807, -0.00105953, -2.01735) bones/19/enabled = true -bones/19/position = Vector3(0.147751, -0.279978, -1.49267) +bones/19/position = Vector3(0.147751, -0.351276, -1.49267) bones/19/rotation = Quaternion(0.427793, 0.34021, 0.687061, -0.478745) bones/19/scale = Vector3(1, 1, 1) bones/20/name = "leg1_L" @@ -4351,14 +4387,14 @@ bones/20/parent = 19 bones/20/rest = Transform3D(0.945603, 0.113405, 0.304916, -0.324072, 0.410457, 0.852351, -0.0284943, -0.9048, 0.424881, 2.08616e-07, 2.00996, -7.1153e-07) bones/20/enabled = true bones/20/position = Vector3(2.08616e-07, 2.00996, -7.1153e-07) -bones/20/rotation = Quaternion(-0.437866, -0.325186, -0.369259, 0.752446) +bones/20/rotation = Quaternion(-0.438031, -0.297412, -0.399899, 0.748168) bones/20/scale = Vector3(1, 1, 1) bones/21/name = "leg2_L" bones/21/parent = 20 bones/21/rest = Transform3D(0.990336, -0.138679, 0.00180777, 0.138628, 0.990193, 0.0173138, -0.00419111, -0.0168959, 0.999848, 5.96046e-08, 5.85994, -5.23403e-07) bones/21/enabled = true bones/21/position = Vector3(5.96046e-08, 5.85994, -5.23403e-07) -bones/21/rotation = Quaternion(-0.0474617, 0.00189033, 0.379649, 0.92391) +bones/21/rotation = Quaternion(-0.0492879, 0.00187756, 0.394257, 0.917676) bones/21/scale = Vector3(1, 1, 1) bones/22/name = "foot1_L" bones/22/parent = 21 @@ -4378,21 +4414,21 @@ bones/24/name = "kneeIK_L" bones/24/parent = -1 bones/24/rest = Transform3D(-0.176321, 1.3411e-06, 0.984333, 0.984333, 1.66893e-06, 0.176321, -1.3411e-06, 1, -1.54972e-06, 1.83022, -6.67107, 3.18901) bones/24/enabled = true -bones/24/position = Vector3(2.31525, -7.34861, 2.3999) -bones/24/rotation = Quaternion(0.350356, 0.345508, 0.703917, 0.512226) +bones/24/position = Vector3(1.83022, -6.67107, 3.18901) +bones/24/rotation = Quaternion(0.453784, 0.542292, 0.542291, 0.453784) bones/24/scale = Vector3(1, 1, 1) bones/25/name = "heelIK_L" bones/25/parent = -1 bones/25/rest = Transform3D(-0.16376, -1.60933e-06, 0.9865, -0.9865, 1.19209e-07, -0.16376, 1.78814e-07, -1, -1.54972e-06, 1.91204, -13.5859, -3.56646) bones/25/enabled = true -bones/25/position = Vector3(2.86478, -12.4291, 1.43256) +bones/25/position = Vector3(2.68465, -12.4291, 1.43256) bones/25/rotation = Quaternion(-0.253375, 0.464951, -0.563517, 0.63409) bones/25/scale = Vector3(1, 1, 1) bones/26/name = "hip_R" bones/26/parent = -1 bones/26/rest = Transform3D(0.138486, -0.897208, -0.419333, 0.129033, -0.403458, 0.905854, -0.981923, -0.179556, 0.0598959, -0.000155807, -0.00105953, -2.01735) bones/26/enabled = true -bones/26/position = Vector3(0.0289172, -0.29661, -1.59603) +bones/26/position = Vector3(0.0289171, -0.337192, -1.59603) bones/26/rotation = Quaternion(0.695067, -0.09936, -0.377924, -0.603475) bones/26/scale = Vector3(1, 1, 1) bones/27/name = "leg1_R" @@ -4400,14 +4436,14 @@ bones/27/parent = 26 bones/27/rest = Transform3D(0.945603, -0.113405, -0.304916, 0.324072, 0.410457, 0.852351, 0.0284943, -0.9048, 0.424881, -9.54606e-09, 2.00996, -3.52971e-07) bones/27/enabled = true bones/27/position = Vector3(-9.54606e-09, 2.00996, -3.52971e-07) -bones/27/rotation = Quaternion(-0.31777, 0.173906, 0.183876, 0.913766) +bones/27/rotation = Quaternion(-0.306352, 0.192188, 0.173426, 0.916044) bones/27/scale = Vector3(1, 1, 1) bones/28/name = "leg2_R" bones/28/parent = 27 bones/28/rest = Transform3D(0.990336, 0.138679, -0.00180777, -0.138628, 0.990193, 0.0173138, 0.00419111, -0.0168959, 0.999848, 4.51691e-08, 5.85994, -3.72529e-09) bones/28/enabled = true bones/28/position = Vector3(4.51691e-08, 5.85994, -3.72529e-09) -bones/28/rotation = Quaternion(-0.267722, 0.0202251, -0.174685, 0.947313) +bones/28/rotation = Quaternion(-0.296585, 0.0199619, -0.193518, 0.934981) bones/28/scale = Vector3(1, 1, 1) bones/29/name = "foot1_R" bones/29/parent = 28 @@ -4434,7 +4470,7 @@ bones/32/name = "heelIK_R" bones/32/parent = -1 bones/32/rest = Transform3D(-0.16376, 1.60933e-06, -0.9865, 0.9865, 1.19209e-07, -0.16376, -1.78814e-07, -1, -1.54972e-06, -1.91204, -13.5859, -3.56646) bones/32/enabled = true -bones/32/position = Vector3(-3.87024, -12.3974, -5.7547) +bones/32/position = Vector3(-3.64758, -12.3224, -5.7547) bones/32/rotation = Quaternion(0.514417, 0.701671, -0.342235, -0.354835) bones/32/scale = Vector3(1, 1, 1) @@ -4444,26 +4480,26 @@ mesh = SubResource("ArrayMesh_jpm24") skin = SubResource("Skin_uxw16") [node name="BoneAttachment3D" type="BoneAttachment3D" parent="Armature/Skeleton3D"] -transform = Transform3D(-0.370165, -0.13327, -0.919357, -0.257388, -0.936197, 0.239345, -0.892597, 0.325229, 0.312245, -2.00356, 8.78642, 6.1356) +transform = Transform3D(-0.370164, -0.13327, -0.919357, -0.304221, -0.917693, 0.255518, -0.87774, 0.374272, 0.299154, -2.00357, 9.05467, 6.3324) bone_name = "TOP OF SKULL" bone_idx = 8 [node name="BoneAttachment3D2" type="BoneAttachment3D" parent="Armature/Skeleton3D"] -transform = Transform3D(0.960238, 0.142738, 0.239935, -0.229825, -0.0837852, 0.969619, 0.158504, -0.986208, -0.0476489, -2.41576, 1.74608, -8.88681) +transform = Transform3D(0.960238, 0.142739, 0.239935, -0.242198, -0.00155824, 0.970226, 0.138862, -0.989759, 0.033075, -2.41575, 1.93321, -9.13936) bone_name = "hand_R" bone_idx = 18 [node name="AttackSFX" type="AudioStreamPlayer3D" parent="Armature/Skeleton3D/BoneAttachment3D2"] transform = Transform3D(0.960238, -0.2437, 0.136211, 0.14274, 0.00925007, -0.989717, 0.239934, 0.969807, 0.043668, -8.82601, 7.03556, -0.84675) -[node name="Hitbox" type="Area3D" parent="."] +[node name="Hitbox" type="Area3D" parent="Armature/Skeleton3D/BoneAttachment3D2"] unique_name_in_owner = true -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0) -collision_layer = 16 -collision_mask = 16 +transform = Transform3D(0.960238, 0.17286, 0.219232, 0.14274, -0.978844, 0.146596, 0.239935, -0.109474, -0.964597, -9.7163, 1.30653, -2.5109) +collision_layer = 64 +collision_mask = 64 -[node name="CollisionShape3D" type="CollisionShape3D" parent="Hitbox"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10.428, 0) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Armature/Skeleton3D/BoneAttachment3D2/Hitbox"] +transform = Transform3D(1, -7.10543e-15, 4.32987e-15, 0, 1, 0, 0, 0, 1, 0.222717, -2.35919, -2.58423) shape = SubResource("BoxShape3D_q3bfl") disabled = true diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/14. horse_head/animation/OxFaceAnimations.tres b/Zennysoft.Game.Ma/src/enemy/enemy_types/14. horse_head/animation/OxFaceAnimations.tres index 808b8a30..f59c4986 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/14. horse_head/animation/OxFaceAnimations.tres +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/14. horse_head/animation/OxFaceAnimations.tres @@ -17,6 +17,18 @@ tracks/0/keys = { "update": 1, "values": [true] } +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Hitbox/CollisionShape3D2:disabled") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} [sub_resource type="Animation" id="Animation_sfyuh"] resource_name = "idle" @@ -896,6 +908,18 @@ tracks/39/path = NodePath("Armature/Skeleton3D:heelIK_R") tracks/39/interp = 0 tracks/39/loop_wrap = true tracks/39/keys = PackedFloat32Array(0, 1, -0.456756, -0.539878, 0.539587, 0.456893) +tracks/40/type = "value" +tracks/40/imported = false +tracks/40/enabled = true +tracks/40/path = NodePath("Hitbox/CollisionShape3D2:disabled") +tracks/40/interp = 1 +tracks/40/loop_wrap = true +tracks/40/keys = { +"times": PackedFloat32Array(0.0666667, 0.533333, 0.7), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [true, false, true] +} [sub_resource type="Animation" id="Animation_ui3ue"] resource_name = "WALK" diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/15. ox_face/OxFace.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/15. ox_face/OxFace.tscn index e2853207..40f7ba04 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/15. ox_face/OxFace.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/15. ox_face/OxFace.tscn @@ -8,51 +8,59 @@ [ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="6_v0b2d"] [ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="7_14j2x"] -[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_7uhtm"] -radius = 4.93622 -height = 27.7025 +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_i0akf"] +radius = 1.0 +height = 4.0 [sub_resource type="SphereShape3D" id="SphereShape3D_j7u30"] radius = 15.426 [sub_resource type="CylinderShape3D" id="CylinderShape3D_ow3fn"] -height = 30.2505 -radius = 26.2886 +height = 7.0 +radius = 3.0 [node name="OX FACE" type="CharacterBody3D"] collision_layer = 10 collision_mask = 3 -axis_lock_linear_y = true -axis_lock_angular_z = true motion_mode = 1 script = ExtResource("1_v6b2s") +InitialHP = 75 [node name="CollisionShape" type="CollisionShape3D" parent="."] unique_name_in_owner = true -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3517, 15.7207, 1.32912) -shape = SubResource("CapsuleShape3D_7uhtm") +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.182602, 2.11842, -0.127861) +shape = SubResource("CapsuleShape3D_i0akf") [node name="EnemyModelView" parent="." instance=ExtResource("2_v6b2s")] unique_name_in_owner = true [node name="Skeleton3D" parent="EnemyModelView/Armature" index="0"] -bones/0/position = Vector3(-0.260213, -1.04664, -1.96818) -bones/6/rotation = Quaternion(-0.0474983, -0.294201, -0.744151, 0.597854) -bones/11/rotation = Quaternion(-0.779884, -0.0574123, 0.0814975, 0.617934) -bones/15/rotation = Quaternion(-0.215184, 0.744908, 0.614006, -0.147665) -bones/19/position = Vector3(-0.375724, -1.19489, -1.73543) -bones/19/rotation = Quaternion(0.626596, 0.294168, 0.546967, -0.470817) -bones/20/rotation = Quaternion(-0.326686, -0.424016, -0.298791, 0.79007) -bones/21/rotation = Quaternion(-0.0604759, 0.00129851, 0.489554, 0.869872) -bones/26/position = Vector3(-0.0389835, -1.11395, -2.01906) -bones/27/rotation = Quaternion(-0.202434, 0.424565, 0.138093, 0.871605) -bones/28/rotation = Quaternion(-0.0628125, -0.00116426, -0.501489, 0.86288) +bones/0/position = Vector3(-0.259305, -0.942872, -1.97518) +bones/6/rotation = Quaternion(-0.0773282, -0.305071, -0.7448, 0.588409) +bones/11/rotation = Quaternion(-0.785852, -0.0626522, 0.0695431, 0.611289) +bones/15/position = Vector3(0.00107886, 3.8461, -0.0821095) +bones/15/rotation = Quaternion(-0.209521, 0.736072, 0.623544, -0.159664) +bones/16/rotation = Quaternion(-0.486067, -0.16412, -0.362283, 0.778174) +bones/19/position = Vector3(-0.292154, -1.11583, -2.01079) +bones/19/rotation = Quaternion(0.609129, 0.315011, 0.574865, -0.446386) +bones/20/rotation = Quaternion(-0.308524, -0.444015, -0.2687, 0.79716) +bones/21/rotation = Quaternion(-0.0600846, 0.00130118, 0.486388, 0.871674) +bones/24/position = Vector3(7.04992, -9.46662, 3.49458) +bones/25/position = Vector3(4.82744, -12.3397, 0.183847) +bones/26/position = Vector3(-0.284624, -1.11395, -2.01739) +bones/27/rotation = Quaternion(-0.208994, 0.42094, 0.142755, 0.871064) +bones/28/rotation = Quaternion(-0.0643206, -0.00115453, -0.51353, 0.855657) +bones/31/position = Vector3(-7.29038, -6.72226, -0.133983) +bones/32/position = Vector3(-6.21519, -12.0654, -3.61992) [node name="BoneAttachment3D" parent="EnemyModelView/Armature/Skeleton3D" index="0"] -transform = Transform3D(-0.266252, -0.0359368, -0.963233, -0.333724, -0.934064, 0.127095, -0.904288, 0.355294, 0.236703, -1.68942, 8.20709, 4.95646) +transform = Transform3D(-0.300414, -0.0893107, -0.949618, -0.328179, -0.925139, 0.190828, -0.895572, 0.368973, 0.248615, -1.65868, 8.32445, 4.94614) [node name="BoneAttachment3D2" parent="EnemyModelView/Armature/Skeleton3D" index="2"] -transform = Transform3D(-0.0475678, -0.00318436, -0.998862, -0.0802775, -0.996746, 0.0070003, -0.995635, 0.08052, 0.0471571, -6.31325, -1.22285, -0.162251) +transform = Transform3D(-0.0442326, 0.0333211, -0.998465, -0.0879628, -0.99569, -0.0293321, -0.99514, 0.0865311, 0.0469725, -6.13785, -1.32753, -0.141988) + +[node name="CollisionShape3D" parent="EnemyModelView/Hitbox" index="0"] +transform = Transform3D(1, 0, 0, 0, 1, 3.48166e-13, 0, -3.48166e-13, 1, 0.300452, 13.2179, 0.257962) [node name="Collision" type="Area3D" parent="."] collision_layer = 2048 @@ -73,7 +81,7 @@ collision_layer = 0 collision_mask = 34 [node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerDetector"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 18.0279, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.43062, 0) shape = SubResource("CylinderShape3D_ow3fn") [node name="Components" type="Node3D" parent="."] @@ -116,4 +124,27 @@ bus = &"SFX" unique_name_in_owner = true bus = &"SFX" +[node name="Control" type="Control" parent="."] +layout_mode = 3 +anchor_right = 0.149 +anchor_bottom = 0.129 +offset_left = 6.0 +offset_top = 1021.0 +offset_right = -66.08 +offset_bottom = 927.68 + +[node name="Boss Health" type="Label" parent="Control"] +layout_mode = 0 +offset_right = 40.0 +offset_bottom = 23.0 +text = "Ox Face HP:" + +[node name="BossHP" type="Label" parent="Control"] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 95.0 +offset_top = 1.0 +offset_right = 170.0 +offset_bottom = 24.0 + [editable path="EnemyModelView"] diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/15. ox_face/OxFaceModelView.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/15. ox_face/OxFaceModelView.tscn index 03a26905..81e29750 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/15. ox_face/OxFaceModelView.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/15. ox_face/OxFaceModelView.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=128 format=4 uid="uid://dnomfbym36ivg"] +[gd_scene load_steps=129 format=4 uid="uid://dnomfbym36ivg"] [ext_resource type="Script" uid="uid://ckv5dmrw6pvn6" path="res://src/enemy/EnemyModelView3D.cs" id="1_6miqu"] [ext_resource type="Texture2D" uid="uid://dp6hwvuhfkji8" path="res://src/enemy/enemy_types/15. ox_face/models/OX FACE_Metal054C_1K-JPG_Color.jpg" id="1_lsf8e"] @@ -196,7 +196,10 @@ transitions = ["Start", "Idle", SubResource("AnimationNodeStateMachineTransition graph_offset = Vector2(-3, 30.8889) [sub_resource type="BoxShape3D" id="BoxShape3D_pmgg3"] -size = Vector3(5, 24.0327, 5.50244) +size = Vector3(5, 11.0363, 5.50244) + +[sub_resource type="BoxShape3D" id="BoxShape3D_desgq"] +size = Vector3(8.80804, 12.7197, 5.50244) [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_aqfs1"] resource_name = "Material" @@ -2675,6 +2678,7 @@ _data = { } [node name="EnemyModelView" type="Node3D"] +transform = Transform3D(0.15, 0, 0, 0, 0.15, 0, 0, 0, 0.15, 0, 0, 0) script = ExtResource("1_6miqu") [node name="Armature" type="Node3D" parent="."] @@ -2687,7 +2691,7 @@ bones/0/name = "spine1" bones/0/parent = -1 bones/0/rest = Transform3D(1.49012e-06, 0.00846654, -0.999964, 2.93367e-08, 0.999964, 0.00846654, 1, -4.23752e-08, 1.49012e-06, 0.000155807, -0.00105953, -2.01735) bones/0/enabled = true -bones/0/position = Vector3(-0.259313, -0.943851, -1.97511) +bones/0/position = Vector3(-0.307669, -0.892014, -1.97534) bones/0/rotation = Quaternion(0.0915277, -0.692111, -0.0341586, 0.715149) bones/0/scale = Vector3(1, 1, 1) bones/1/name = "spine0" @@ -2730,7 +2734,7 @@ bones/6/parent = 5 bones/6/rest = Transform3D(0.0598389, 0.98531, 0.15995, -0.975271, 0.0235553, 0.219755, 0.212759, -0.169144, 0.962353, 3.65078e-07, 1.40318, 0) bones/6/enabled = true bones/6/position = Vector3(3.65078e-07, 1.40318, 0) -bones/6/rotation = Quaternion(-0.0765744, -0.3048, -0.744794, 0.588656) +bones/6/rotation = Quaternion(-0.0777813, -0.305234, -0.744803, 0.58826) bones/6/scale = Vector3(1, 1, 1) bones/7/name = "Bone.007" bones/7/parent = 6 @@ -2765,7 +2769,7 @@ bones/11/parent = 1 bones/11/rest = Transform3D(0.981457, 0.0769315, -0.175568, 0.18837, -0.217537, 0.957703, 0.035485, -0.973015, -0.227995, -1.09896e-07, 3.84743, -2.10479e-07) bones/11/enabled = true bones/11/position = Vector3(-1.09896e-07, 3.84743, -2.10479e-07) -bones/11/rotation = Quaternion(-0.785869, -0.0626667, 0.0695102, 0.61127) +bones/11/rotation = Quaternion(-0.786087, -0.0628615, 0.0690646, 0.61102) bones/11/scale = Vector3(1, 0.999999, 1) bones/12/name = "arm2_L" bones/12/parent = 11 @@ -2792,15 +2796,15 @@ bones/15/name = "arm1_R" bones/15/parent = 1 bones/15/rest = Transform3D(-0.98213, 0.0512573, -0.181089, -0.187541, -0.185921, 0.964501, 0.0157694, 0.981227, 0.192212, 0.00107862, 3.8461, -0.0821097) bones/15/enabled = true -bones/15/position = Vector3(0.00107886, 3.8461, -0.0821095) -bones/15/rotation = Quaternion(-0.209604, 0.736202, 0.623406, -0.15949) +bones/15/position = Vector3(0.00107859, 3.8461, -0.0821097) +bones/15/rotation = Quaternion(-0.209386, 0.735858, 0.623768, -0.15995) bones/15/scale = Vector3(1, 1, 1) bones/16/name = "arm2_R" bones/16/parent = 15 bones/16/rest = Transform3D(0.999962, -0.00846545, 0.00203661, 0.00853768, 0.99922, -0.0385481, -0.0017087, 0.038564, 0.999254, -4.28408e-07, 3.65838, -2.16067e-06) bones/16/enabled = true bones/16/position = Vector3(-4.28408e-07, 3.65838, -2.16067e-06) -bones/16/rotation = Quaternion(-0.486067, -0.16412, -0.362283, 0.778174) +bones/16/rotation = Quaternion(-0.424022, 0.233298, -0.489444, 0.725412) bones/16/scale = Vector3(1, 1, 0.999999) bones/17/name = "arm3_R" bones/17/parent = 16 @@ -2820,22 +2824,22 @@ bones/19/name = "hip_L" bones/19/parent = -1 bones/19/rest = Transform3D(0.138486, 0.897208, 0.419333, -0.129033, -0.403458, 0.905854, 0.981923, -0.179556, 0.059896, 0.000155807, -0.00105953, -2.01735) bones/19/enabled = true -bones/19/position = Vector3(-0.292943, -1.11658, -2.00819) -bones/19/rotation = Quaternion(0.6093, 0.314818, 0.574607, -0.446621) +bones/19/position = Vector3(-0.33855, -1.06556, -2.01735) +bones/19/rotation = Quaternion(0.608697, 0.3155, 0.575514, -0.445793) bones/19/scale = Vector3(1, 1, 1) bones/20/name = "leg1_L" bones/20/parent = 19 bones/20/rest = Transform3D(0.945603, 0.113405, 0.304916, -0.324072, 0.410457, 0.852351, -0.0284943, -0.9048, 0.424881, 2.08616e-07, 2.00996, -7.1153e-07) bones/20/enabled = true bones/20/position = Vector3(2.08616e-07, 2.00996, -7.1153e-07) -bones/20/rotation = Quaternion(-0.308699, -0.443829, -0.268987, 0.797099) +bones/20/rotation = Quaternion(-0.314691, -0.397218, -0.306481, 0.805765) bones/20/scale = Vector3(1, 0.999999, 1) bones/21/name = "leg2_L" bones/21/parent = 20 bones/21/rest = Transform3D(0.990336, -0.138679, 0.00180777, 0.138628, 0.990193, 0.0173138, -0.00419111, -0.0168959, 0.999848, 5.96046e-08, 5.85994, -5.23403e-07) bones/21/enabled = true bones/21/position = Vector3(5.96046e-08, 5.85994, -5.23403e-07) -bones/21/rotation = Quaternion(-0.0600826, 0.0013012, 0.486371, 0.871683) +bones/21/rotation = Quaternion(-0.0612712, 0.00129298, 0.495993, 0.866161) bones/21/scale = Vector3(1, 1, 1) bones/22/name = "foot1_L" bones/22/parent = 21 @@ -2855,21 +2859,21 @@ bones/24/name = "kneeIK_L" bones/24/parent = -1 bones/24/rest = Transform3D(-0.176321, 1.3113e-06, 0.984333, 0.984333, 1.54972e-06, 0.176321, -1.3113e-06, 1, -1.54972e-06, 1.83022, -6.67107, 3.18901) bones/24/enabled = true -bones/24/position = Vector3(7.04992, -9.46662, 3.49458) +bones/24/position = Vector3(6.3015, -9.41823, 3.49458) bones/24/rotation = Quaternion(0.427621, 0.561851, 0.530083, 0.469549) bones/24/scale = Vector3(1, 1, 1) bones/25/name = "heelIK_L" bones/25/parent = -1 bones/25/rest = Transform3D(-0.16376, -1.63913e-06, 0.9865, -0.9865, 1.19209e-07, -0.16376, 8.9407e-08, -1, -1.66893e-06, 1.91204, -13.5859, -3.56646) bones/25/enabled = true -bones/25/position = Vector3(4.82744, -12.3397, 0.183847) +bones/25/position = Vector3(4.75572, -12.2213, 0.183847) bones/25/rotation = Quaternion(-0.400051, 0.463947, -0.598439, 0.516317) bones/25/scale = Vector3(1, 1, 1) bones/26/name = "hip_R" bones/26/parent = -1 bones/26/rest = Transform3D(0.138486, -0.897208, -0.419333, 0.129033, -0.403458, 0.905854, -0.981923, -0.179556, 0.059896, -0.000155807, -0.00105953, -2.01735) bones/26/enabled = true -bones/26/position = Vector3(-0.282306, -1.11395, -2.01741) +bones/26/position = Vector3(-0.338861, -1.06556, -2.01735) bones/26/rotation = Quaternion(0.608697, -0.3155, -0.575514, -0.445793) bones/26/scale = Vector3(1, 1, 1) bones/27/name = "leg1_R" @@ -2877,14 +2881,14 @@ bones/27/parent = 26 bones/27/rest = Transform3D(0.945603, -0.113405, -0.304916, 0.324072, 0.410457, 0.852351, 0.0284943, -0.9048, 0.424881, -9.54606e-09, 2.00996, -3.52971e-07) bones/27/enabled = true bones/27/position = Vector3(-9.54606e-09, 2.00996, -3.52971e-07) -bones/27/rotation = Quaternion(-0.209012, 0.420929, 0.142768, 0.871062) +bones/27/rotation = Quaternion(-0.209385, 0.420724, 0.143017, 0.871031) bones/27/scale = Vector3(1, 0.999999, 1) bones/28/name = "leg2_R" bones/28/parent = 27 bones/28/rest = Transform3D(0.990336, 0.138679, -0.00180777, -0.138628, 0.990193, 0.0173138, 0.00419111, -0.0168959, 0.999848, 4.51691e-08, 5.85994, -3.72529e-09) bones/28/enabled = true bones/28/position = Vector3(4.51691e-08, 5.85994, -3.72529e-09) -bones/28/rotation = Quaternion(-0.0643247, -0.0011545, -0.513563, 0.855637) +bones/28/rotation = Quaternion(-0.0643786, -0.00115415, -0.513993, 0.855374) bones/28/scale = Vector3(1, 1, 1) bones/29/name = "foot1_R" bones/29/parent = 28 @@ -2904,19 +2908,19 @@ bones/31/name = "kneeIK_R" bones/31/parent = -1 bones/31/rest = Transform3D(-0.176321, -1.3113e-06, -0.984333, -0.984333, 1.54972e-06, 0.176321, 1.3113e-06, 1, -1.54972e-06, -1.83022, -6.67107, 3.18901) bones/31/enabled = true -bones/31/position = Vector3(-7.29038, -6.72226, -0.133983) +bones/31/position = Vector3(-7.33877, -6.67387, -0.133983) bones/31/rotation = Quaternion(-0.453784, 0.542292, 0.542291, -0.453784) bones/31/scale = Vector3(1, 1, 1) bones/32/name = "heelIK_R" bones/32/parent = -1 bones/32/rest = Transform3D(-0.16376, 1.63913e-06, -0.9865, 0.9865, 1.19209e-07, -0.16376, -8.9407e-08, -1, -1.66893e-06, -1.91204, -13.5859, -3.56646) bones/32/enabled = true -bones/32/position = Vector3(-6.21519, -12.0654, -3.61992) +bones/32/position = Vector3(-6.26357, -12.0171, -3.61992) bones/32/rotation = Quaternion(0.456756, 0.539878, -0.539587, -0.456893) bones/32/scale = Vector3(1, 1, 1) [node name="BoneAttachment3D" type="BoneAttachment3D" parent="Armature/Skeleton3D"] -transform = Transform3D(-0.299556, -0.08797, -0.950014, -0.328348, -0.925409, 0.189225, -0.895797, 0.368619, 0.248327, -1.65945, 8.32316, 4.94631) +transform = Transform3D(-0.300929, -0.0901167, -0.949379, -0.328078, -0.924976, 0.191792, -0.895436, 0.369186, 0.248787, -1.70658, 8.37551, 4.94593) bone_name = "TOP OF SKULL" bone_idx = 8 @@ -2939,7 +2943,7 @@ mesh = SubResource("ArrayMesh_5ew54") skin = SubResource("Skin_e330f") [node name="BoneAttachment3D2" type="BoneAttachment3D" parent="Armature/Skeleton3D"] -transform = Transform3D(-0.0442828, 0.0327898, -0.99848, -0.0878525, -0.995716, -0.0288032, -0.995147, 0.0864444, 0.0469732, -6.14045, -1.32553, -0.14232) +transform = Transform3D(0.18092, -0.599546, -0.779622, -0.562296, -0.713422, 0.418149, -0.8069, 0.362727, -0.466195, -7.82684, -0.609435, 0.621258) bone_name = "hand_R" bone_idx = 18 @@ -2961,14 +2965,19 @@ anim_player = NodePath("../AnimationPlayer") [node name="Hitbox" type="Area3D" parent="."] unique_name_in_owner = true transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 1.82665, 13.216, 2.37244) -collision_layer = 16 -collision_mask = 16 +collision_layer = 64 +collision_mask = 64 [node name="CollisionShape3D" type="CollisionShape3D" parent="Hitbox"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.300452, 11.5388, 0.257962) +transform = Transform3D(1, 0, 0, 0, 1, 9.48575e-13, 0, -9.48575e-13, 1, -7.88159, 21.7793, 1.24603) shape = SubResource("BoxShape3D_pmgg3") disabled = true +[node name="CollisionShape3D2" type="CollisionShape3D" parent="Hitbox"] +transform = Transform3D(1, 0, 0, 0, 1, 2.28084e-12, 0, -2.28084e-12, 1, 2.99118, 20.397, 1.24603) +shape = SubResource("BoxShape3D_desgq") +disabled = true + [node name="WalkSFX" type="AudioStreamPlayer3D" parent="."] unique_name_in_owner = true transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.82665, 13.216, 2.37244) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Special Floors/Floor 8 Boss Floor A.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Special Floors/Floor 8 Boss Floor A.tscn index 2ad22daf..31a70cf2 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Special Floors/Floor 8 Boss Floor A.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Special Floors/Floor 8 Boss Floor A.tscn @@ -866,24 +866,26 @@ shape = SubResource("BoxShape3D_1qa0g") [node name="Bosses" type="Node3D" parent="."] [node name="OxFace" type="Node3D" parent="Bosses"] -transform = Transform3D(-6.55671e-09, 0, -0.15, 0, 0.15, 0, 0.15, 0, -6.55671e-09, -103.103, -0.510939, 13.3065) +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -103.103, -0.510939, 13.3065) [node name="OxFaceStatue" parent="Bosses/OxFace" instance=ExtResource("26_futcf")] unique_name_in_owner = true -transform = Transform3D(6.66667, 0, 2.84217e-14, 0, 6.66667, 0, -2.84217e-14, 0, 6.66667, 54.7793, -14.4037, -4.01331) +transform = Transform3D(1, 0, 3.55271e-15, 0, 1, 0, -3.55271e-15, 0, 1, 10.2518, -1.84854, -1.2916) [node name="OxFace" parent="Bosses/OxFace" instance=ExtResource("27_g6y6v")] unique_name_in_owner = true -transform = Transform3D(1, 0, 3.55271e-15, 0, 1, 0, -3.55271e-15, 0, 1, 58.194, -15.2174, -3.02698) +transform = Transform3D(1, 0, 3.55271e-15, 0, 1, 0, -3.55271e-15, 0, 1, 10.5263, -1.96946, -2.35483) visible = false +InitialHP = 125 [node name="HorseHead" type="Node3D" parent="Bosses"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.862301, 0, 2.20054) [node name="HorseHead" parent="Bosses/HorseHead" instance=ExtResource("14_jb41f")] unique_name_in_owner = true -transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -101.714, -0.54814, 10.8406) +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -101.714, -1.38925, 10.8406) visible = false +InitialHP = 125 [node name="HorseHeadStatue" parent="Bosses/HorseHead" instance=ExtResource("15_1ijgn")] unique_name_in_owner = true