dynamically searching for enough enemies and free spawn position

pull/13/head
Sascha 2024-06-20 12:38:29 +07:00
parent 44c67173f9
commit cf321f2bb0
9 changed files with 160 additions and 138 deletions

@ -558,36 +558,36 @@ bones/1/name = "hips"
bones/1/parent = 0
bones/1/rest = Transform3D(1, -1.92983e-22, -2.06635e-07, 9.18536e-22, 1, 3.51128e-15, 2.06635e-07, -3.51128e-15, 1, -2.1013e-22, 0.405663, 8.88178e-16)
bones/1/enabled = true
bones/1/position = Vector3(8.93276e-20, 0.380142, 1.31412e-15)
bones/1/rotation = Quaternion(5.43748e-05, 0.0425453, 3.42386e-05, 0.999095)
bones/1/position = Vector3(1.45527e-19, 0.368055, 1.99235e-15)
bones/1/rotation = Quaternion(5.36202e-05, 0.0425453, 3.42743e-05, 0.999095)
bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "spine"
bones/2/parent = 1
bones/2/rest = Transform3D(1, 8.67181e-22, 3.55271e-15, -8.67181e-22, 1, 3.52176e-23, -3.55271e-15, -3.52176e-23, 1, -4.36903e-23, 0.191978, -8.88178e-16)
bones/2/enabled = true
bones/2/position = Vector3(5.98821e-12, 0.191978, -2.81142e-12)
bones/2/rotation = Quaternion(-2.97124e-05, 0.00392385, 0.000185612, 0.999992)
bones/2/rotation = Quaternion(-3.01182e-05, 0.00391104, 0.000186688, 0.999992)
bones/2/scale = Vector3(1, 1, 1)
bones/3/name = "chest"
bones/3/parent = 2
bones/3/rest = Transform3D(1, -2.05374e-22, -1.77636e-14, 2.05374e-22, 1, -1.11653e-14, 1.77636e-14, 1.11653e-14, 1, -9.6328e-23, 0.374988, 1.77636e-15)
bones/3/enabled = true
bones/3/position = Vector3(-1.41719e-11, 0.374988, 2.56118e-11)
bones/3/rotation = Quaternion(3.14584e-05, 8.10904e-05, 0.000552385, 1)
bones/3/rotation = Quaternion(3.06867e-05, 8.08743e-05, 0.000551279, 1)
bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "upperarm.l"
bones/4/parent = 3
bones/4/rest = Transform3D(0.0572952, 0.998357, 5.96046e-08, -2.98023e-07, -1.19209e-07, 1, 0.998357, -0.0572953, 2.38419e-07, 0.212007, 0.134132, 8.92131e-08)
bones/4/enabled = true
bones/4/position = Vector3(0.211999, 0.134123, -2.35985e-05)
bones/4/rotation = Quaternion(-0.553335, -0.0654529, -0.657209, 0.507555)
bones/4/position = Vector3(0.211999, 0.134123, -2.33752e-05)
bones/4/rotation = Quaternion(-0.551486, -0.0592255, -0.640171, 0.531542)
bones/4/scale = Vector3(0.999999, 0.999999, 1)
bones/5/name = "lowerarm.l"
bones/5/parent = 4
bones/5/rest = Transform3D(0.993885, 0.110424, -1.77241e-07, -0.110424, 0.993885, -4.82524e-07, 1.22875e-07, 4.99145e-07, 1, -3.31295e-09, 0.241897, 4.4799e-09)
bones/5/enabled = true
bones/5/position = Vector3(4.27124e-08, 0.241897, -1.72472e-07)
bones/5/rotation = Quaternion(2.00807e-07, 3.25179e-08, -0.474779, 0.880105)
bones/5/rotation = Quaternion(2.92383e-07, 6.3331e-08, -0.512264, 0.858828)
bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "wrist.l"
bones/6/parent = 5
@ -601,28 +601,28 @@ bones/7/parent = 6
bones/7/rest = Transform3D(1, 8.33334e-14, -2.83571e-14, -8.33334e-14, 1, -2.54025e-13, 2.83571e-14, 2.54025e-13, 1, -2.04281e-14, 0.0738259, -1.19209e-07)
bones/7/enabled = true
bones/7/position = Vector3(-7.1782e-09, 0.0738259, -1.0869e-08)
bones/7/rotation = Quaternion(-0.3175, -0.328211, 0.129283, 0.880203)
bones/7/rotation = Quaternion(-0.321293, -0.338459, 0.143422, 0.872724)
bones/7/scale = Vector3(1, 1, 1)
bones/8/name = "handslot.l"
bones/8/parent = 7
bones/8/rest = Transform3D(0, 1, -2.32809e-07, -1, 0, -6.82762e-08, -6.82761e-08, 2.32809e-07, 1, 8.34841e-10, 0.0961251, -0.0575)
bones/8/enabled = true
bones/8/position = Vector3(9.24143e-10, 0.0961252, -0.0575)
bones/8/rotation = Quaternion(0.00155569, 0.00155678, -0.701015, 0.713143)
bones/8/rotation = Quaternion(0.0011421, 0.00114723, -0.702536, 0.711647)
bones/8/scale = Vector3(1, 1, 1)
bones/9/name = "upperarm.r"
bones/9/parent = 3
bones/9/rest = Transform3D(0.0572954, -0.998357, -1.49012e-07, 2.38419e-07, -1.19209e-07, 1, -0.998357, -0.0572954, 2.38419e-07, -0.212007, 0.134132, 7.46997e-08)
bones/9/enabled = true
bones/9/position = Vector3(-0.212003, 0.134124, -2.19028e-05)
bones/9/rotation = Quaternion(-0.613645, 0.0851877, 0.626254, 0.473275)
bones/9/position = Vector3(-0.212003, 0.134124, -2.2126e-05)
bones/9/rotation = Quaternion(-0.610971, 0.0795064, 0.611725, 0.496171)
bones/9/scale = Vector3(0.999999, 0.999999, 1)
bones/10/name = "lowerarm.r"
bones/10/parent = 9
bones/10/rest = Transform3D(0.993885, -0.110424, 1.06327e-07, 0.110424, 0.993885, -4.82539e-07, -5.23934e-08, 4.91329e-07, 1, 4.03071e-09, 0.241897, 3.62012e-09)
bones/10/enabled = true
bones/10/position = Vector3(-4.04491e-08, 0.241897, -5.30697e-08)
bones/10/rotation = Quaternion(2.04647e-07, -7.10107e-08, 0.500509, 0.865731)
bones/10/rotation = Quaternion(2.487e-07, -7.47989e-08, 0.536316, 0.844018)
bones/10/scale = Vector3(1, 1, 1)
bones/11/name = "wrist.r"
bones/11/parent = 10
@ -636,21 +636,21 @@ bones/12/parent = 11
bones/12/rest = Transform3D(1, -8.32931e-14, 2.83546e-14, 8.32931e-14, 1, -6.34575e-14, -2.83546e-14, 6.34575e-14, 1, 2.04281e-14, 0.0738259, -1.19209e-07)
bones/12/enabled = true
bones/12/position = Vector3(-1.3659e-08, 0.0738259, -6.36404e-08)
bones/12/rotation = Quaternion(-0.311543, 0.306188, -0.21277, 0.874025)
bones/12/rotation = Quaternion(-0.315858, 0.318244, -0.227488, 0.864409)
bones/12/scale = Vector3(1, 1, 1)
bones/13/name = "handslot.r"
bones/13/parent = 12
bones/13/rest = Transform3D(0, -1, 2.32809e-07, 1, 0, -6.86063e-08, 6.86063e-08, 2.32809e-07, 1, -8.34841e-10, 0.0961251, -0.0575)
bones/13/enabled = true
bones/13/position = Vector3(-1.97277e-08, 0.0961251, -0.0575)
bones/13/rotation = Quaternion(0.00413784, 0.00486389, 0.702654, 0.711503)
bones/13/rotation = Quaternion(0.00366376, 0.00430769, 0.703152, 0.711017)
bones/13/scale = Vector3(1, 1, 1)
bones/14/name = "head"
bones/14/parent = 3
bones/14/rest = Transform3D(1, 8.09955e-22, 1.77636e-14, -8.09955e-22, 1, 1.49605e-14, -1.77636e-14, -1.49605e-14, 1, 4.67612e-25, 0.268797, 0)
bones/14/enabled = true
bones/14/position = Vector3(-1.24879e-11, 0.268797, 4.0423e-15)
bones/14/rotation = Quaternion(0.00053076, -0.0309193, -1.77239e-05, 0.999522)
bones/14/rotation = Quaternion(0.000529949, -0.0309058, -1.85595e-05, 0.999522)
bones/14/scale = Vector3(1, 1, 1)
bones/15/name = "Skeleton_Warrior_Helmet"
bones/15/parent = 14
@ -663,71 +663,71 @@ bones/16/name = "upperleg.l"
bones/16/parent = 1
bones/16/rest = Transform3D(1, -1.31243e-07, -1.34242e-07, -1.35828e-07, -0.999396, -0.0347426, -1.29601e-07, 0.0347426, -0.999397, 0.170945, 0.113587, 1.70271e-08)
bones/16/enabled = true
bones/16/position = Vector3(0.170945, 0.113587, 0.000243319)
bones/16/rotation = Quaternion(0.991944, 0.0816094, 0.0759702, 0.060125)
bones/16/position = Vector3(0.170945, 0.113587, 0.000250944)
bones/16/rotation = Quaternion(0.989255, 0.0822554, 0.0781205, 0.0922223)
bones/16/scale = Vector3(1, 1, 1)
bones/17/name = "lowerleg.l"
bones/17/parent = 16
bones/17/rest = Transform3D(1, 1.62704e-07, 1.37175e-07, -1.30054e-07, 0.977432, -0.211252, -1.68451e-07, 0.211252, 0.977432, -1.1194e-08, 0.227077, -2.32076e-08)
bones/17/enabled = true
bones/17/position = Vector3(3.92422e-08, 0.227078, -1.35529e-10)
bones/17/rotation = Quaternion(0.315689, 7.30449e-08, -2.16364e-07, 0.948863)
bones/17/rotation = Quaternion(0.401377, 6.59323e-08, -2.65083e-07, 0.915913)
bones/17/scale = Vector3(1, 1, 1)
bones/18/name = "foot.l"
bones/18/parent = 17
bones/18/rest = Transform3D(1, -6.39488e-14, 1.68587e-07, -1.36667e-07, 0.585513, 0.810663, -9.87102e-08, -0.810663, 0.585513, -1.49012e-08, 0.149437, 3.72566e-09)
bones/18/enabled = true
bones/18/position = Vector3(4.3785e-08, 0.149437, -6.94943e-09)
bones/18/rotation = Quaternion(-0.580434, -0.20251, 0.0609008, 0.78637)
bones/18/rotation = Quaternion(-0.625288, -0.197932, 0.0761131, 0.751029)
bones/18/scale = Vector3(1, 1, 0.999999)
bones/19/name = "toes.l"
bones/19/parent = 18
bones/19/rest = Transform3D(-1, 1.21361e-07, 3.37844e-07, -1.58967e-07, 0.694106, -0.719873, -3.21865e-07, -0.719873, -0.694106, -1.6149e-10, 0.16565, 8.79764e-10)
bones/19/enabled = true
bones/19/position = Vector3(-7.03199e-09, 0.16565, 2.68891e-08)
bones/19/rotation = Quaternion(2.48894e-05, 0.920179, -0.391499, -5.45907e-06)
bones/19/rotation = Quaternion(-2.0707e-06, 0.920155, -0.391555, 6.54457e-07)
bones/19/scale = Vector3(1, 0.999998, 1)
bones/20/name = "upperleg.r"
bones/20/parent = 1
bones/20/rest = Transform3D(1, 1.31243e-07, 2.02657e-07, 1.38205e-07, -0.999396, -0.0347426, 1.97975e-07, 0.0347426, -0.999397, -0.170945, 0.113587, 5.32468e-09)
bones/20/enabled = true
bones/20/position = Vector3(-0.170945, 0.113344, -0.000243642)
bones/20/rotation = Quaternion(0.994628, -0.0310958, 0.0301371, 0.0940206)
bones/20/position = Vector3(-0.170945, 0.113344, -0.000251267)
bones/20/rotation = Quaternion(0.991463, -0.0330182, 0.0293404, 0.122678)
bones/20/scale = Vector3(1, 1, 1)
bones/21/name = "lowerleg.r"
bones/21/parent = 20
bones/21/rest = Transform3D(1, -1.65029e-07, -1.36672e-07, 1.32432e-07, 0.977432, -0.211252, 1.6845e-07, 0.211252, 0.977432, 1.18882e-08, 0.227077, -2.32075e-08)
bones/21/enabled = true
bones/21/position = Vector3(-9.67559e-09, 0.227077, -1.42054e-08)
bones/21/rotation = Quaternion(0.373875, -6.88084e-08, 2.63502e-07, 0.927479)
bones/21/rotation = Quaternion(0.449137, -6.62013e-08, 3.15187e-07, 0.893463)
bones/21/scale = Vector3(1, 1, 1)
bones/22/name = "foot.r"
bones/22/parent = 21
bones/22/rest = Transform3D(1, 5.68434e-14, 1.68587e-07, -1.36668e-07, 0.585513, 0.810663, -9.87101e-08, -0.810663, 0.585513, 1.49012e-08, 0.149437, 3.72559e-09)
bones/22/enabled = true
bones/22/position = Vector3(1.60742e-08, 0.149437, 6.91271e-09)
bones/22/rotation = Quaternion(-0.610889, 0.11213, -0.0159592, 0.783573)
bones/22/rotation = Quaternion(-0.65153, 0.110934, -0.0230393, 0.750114)
bones/22/scale = Vector3(1, 1, 0.999999)
bones/23/name = "toes.r"
bones/23/parent = 22
bones/23/rest = Transform3D(-1, 1.21361e-07, 3.58529e-08, 5.84281e-08, 0.694106, -0.719873, -1.12251e-07, -0.719873, -0.694106, -1.61491e-10, 0.16565, 2.84604e-09)
bones/23/enabled = true
bones/23/position = Vector3(6.94014e-09, 0.16565, 2.44373e-08)
bones/23/rotation = Quaternion(-8.8069e-05, 0.920215, -0.391413, 2.01279e-05)
bones/23/rotation = Quaternion(-8.80688e-05, 0.920215, -0.391413, 2.01278e-05)
bones/23/scale = Vector3(1, 0.999998, 1)
bones/24/name = "kneeIK.l"
bones/24/parent = 0
bones/24/rest = Transform3D(1, -2.47926e-07, -3.89414e-07, -3.89414e-07, 3.57628e-07, -1, 2.47926e-07, 1, 3.57628e-07, 0.170945, 0.29231, 0.575812)
bones/24/enabled = true
bones/24/position = Vector3(0.170945, 0.292356, 0.575858)
bones/24/position = Vector3(0.170945, 0.292353, 0.575855)
bones/24/rotation = Quaternion(0.707107, -2.25334e-07, -5.00237e-08, 0.707107)
bones/24/scale = Vector3(1, 1, 1)
bones/25/name = "control-toe-roll.l"
bones/25/parent = 0
bones/25/rest = Transform3D(1, 2.05345e-07, -6.39488e-14, -7.10543e-15, 3.57628e-07, 1, 2.05345e-07, -1, 3.57628e-07, 0.170945, 0.0259902, 0.245789)
bones/25/enabled = true
bones/25/position = Vector3(0.201736, 0.0277743, 0.208027)
bones/25/rotation = Quaternion(-0.70929, -7.23714e-08, -7.28314e-08, 0.704917)
bones/25/position = Vector3(0.201736, 0.0277755, 0.208071)
bones/25/rotation = Quaternion(-0.709324, -7.23689e-08, -7.2836e-08, 0.704883)
bones/25/scale = Vector3(1, 1, 1)
bones/26/name = "control-heel-roll.l"
bones/26/parent = 25
@ -741,7 +741,7 @@ bones/27/parent = 26
bones/27/rest = Transform3D(-1, -1.44017e-07, -2.51498e-07, -8.10837e-08, -0.694106, 0.719873, -2.7824e-07, 0.719873, 0.694106, -8.85797e-10, 0.213436, -8.66923e-10)
bones/27/enabled = true
bones/27/position = Vector3(-4.34108e-08, 0.213436, -1.24871e-08)
bones/27/rotation = Quaternion(-1.33533e-07, 0.391084, 0.920355, 2.11998e-08)
bones/27/rotation = Quaternion(-1.33533e-07, 0.391084, 0.920355, 2.11999e-08)
bones/27/scale = Vector3(1, 1, 1)
bones/28/name = "heelIK.l"
bones/28/parent = 27
@ -768,15 +768,15 @@ bones/31/name = "kneeIK.r"
bones/31/parent = 0
bones/31/rest = Transform3D(1, -2.47926e-07, 1.50996e-07, 1.50996e-07, 3.57628e-07, -1, 2.47926e-07, 1, 3.57628e-07, -0.170945, 0.29231, 0.575812)
bones/31/enabled = true
bones/31/position = Vector3(-0.170945, 0.292356, 0.575858)
bones/31/position = Vector3(-0.170945, 0.292353, 0.575855)
bones/31/rotation = Quaternion(0.707107, -3.427e-08, 1.4104e-07, 0.707107)
bones/31/scale = Vector3(1, 1, 1)
bones/32/name = "control-toe-roll.r"
bones/32/parent = 0
bones/32/rest = Transform3D(1, 2.05345e-07, -5.68434e-14, -1.42109e-14, 3.57628e-07, 1, 2.05345e-07, -1, 3.57628e-07, -0.170945, 0.0259902, 0.245789)
bones/32/enabled = true
bones/32/position = Vector3(-0.170945, 0.0251414, 0.241148)
bones/32/rotation = Quaternion(-0.702955, -7.30723e-08, -7.21246e-08, 0.711234)
bones/32/position = Vector3(-0.170945, 0.0251433, 0.241086)
bones/32/rotation = Quaternion(-0.702903, -7.30746e-08, -7.21199e-08, 0.711285)
bones/32/scale = Vector3(1, 1, 1)
bones/33/name = "control-heel-roll.r"
bones/33/parent = 32
@ -790,7 +790,7 @@ bones/34/parent = 33
bones/34/rest = Transform3D(-1, -1.44017e-07, -2.51498e-07, -8.10837e-08, -0.694106, 0.719873, -2.7824e-07, 0.719873, 0.694106, 1.40154e-08, 0.213436, -5.23748e-10)
bones/34/enabled = true
bones/34/position = Vector3(-2.94849e-09, 0.213436, -1.62925e-08)
bones/34/rotation = Quaternion(-1.46971e-07, 0.391084, 0.920355, 2.40359e-08)
bones/34/rotation = Quaternion(-1.46972e-07, 0.391084, 0.920355, 2.40362e-08)
bones/34/scale = Vector3(1, 1, 1)
bones/35/name = "heelIK.r"
bones/35/parent = 34
@ -824,7 +824,7 @@ bones/39/name = "handIK.l"
bones/39/parent = 0
bones/39/rest = Transform3D(-1.19209e-07, 1, 0, -1.19209e-07, 0, 1, 1, 1.19209e-07, 1.19209e-07, 0.713181, 1.10676, 2.99767e-07)
bones/39/enabled = true
bones/39/position = Vector3(0.520733, 0.76992, -0.0592629)
bones/39/position = Vector3(0.520733, 0.773056, -0.0592629)
bones/39/rotation = Quaternion(0.795617, 0.00380772, 0.605784, 0.00243902)
bones/39/scale = Vector3(1, 1, 1)
bones/40/name = "elbowIK.r"
@ -838,12 +838,12 @@ bones/41/name = "handIK.r"
bones/41/parent = 0
bones/41/rest = Transform3D(0, -1, -5.96046e-08, 1.78814e-07, -1.19209e-07, 1, -1, -5.96046e-08, 1.19209e-07, -0.713182, 1.10676, -6.1348e-08)
bones/41/enabled = true
bones/41/position = Vector3(-0.510811, 0.770372, 0.0633182)
bones/41/position = Vector3(-0.510811, 0.773507, 0.0633182)
bones/41/rotation = Quaternion(-0.762388, 0.00756033, 0.647063, -0.00406022)
bones/41/scale = Vector3(1, 1, 1)
[node name="Skeleton_Warrior_Helmet" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(0.999527, -0.00143233, 0.0307253, 0.00147181, 0.999998, -0.00126238, -0.0307234, 0.001307, 0.999527, -0.000552329, 1.19035, 8.6935e-05)
transform = Transform3D(0.999527, -0.00143107, 0.030726, 0.00147038, 0.999998, -0.0012568, -0.0307241, 0.00130138, 0.999527, -0.000553347, 1.17827, 8.49444e-05)
bone_name = "Skeleton_Warrior_Helmet"
bone_idx = 15
@ -897,7 +897,7 @@ transform = Transform3D(1, -1.18234e-11, 9.31323e-10, 6.54836e-11, 1, -3.49246e-
shape = SubResource("CapsuleShape3D_c30pj")
[node name="lowerarm_r" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(-0.578631, -0.472769, -0.664586, -0.222883, -0.692174, 0.686453, -0.784543, 0.545327, 0.295141, -0.389842, 0.950633, -0.0789789)
transform = Transform3D(-0.608409, -0.463014, -0.644558, -0.232302, -0.672699, 0.702503, -0.758862, 0.577141, 0.301718, -0.39229, 0.94883, -0.0872339)
bone_name = "lowerarm.r"
bone_idx = 10
@ -911,7 +911,7 @@ shape = SubResource("CapsuleShape3D_wwi0t")
disabled = true
[node name="lowerarm_l" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(-0.468721, 0.548917, 0.692091, 0.0704385, -0.757766, 0.648712, 0.880532, 0.352815, 0.316517, 0.378381, 0.966656, -0.150671)
transform = Transform3D(-0.496314, 0.546042, 0.674915, 0.0832016, -0.743926, 0.663061, 0.864146, 0.385241, 0.32379, 0.379106, 0.966255, -0.159178)
bone_name = "lowerarm.l"
bone_idx = 5
@ -925,7 +925,7 @@ shape = SubResource("CapsuleShape3D_ba1wv")
disabled = true
[node name="lowerleg_r" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(0.998251, -0.0572024, 0.0149539, -0.0561251, -0.837258, 0.543921, -0.0185934, -0.543808, -0.839003, -0.182075, 0.270844, 0.0573739)
transform = Transform3D(0.99814, -0.0565735, 0.022699, -0.0582086, -0.774021, 0.630479, -0.0180989, -0.630628, -0.775874, -0.182163, 0.261633, 0.0701742)
bone_name = "lowerleg.r"
bone_idx = 21
@ -939,7 +939,7 @@ shape = SubResource("CapsuleShape3D_r0iiv")
disabled = true
[node name="lowerleg_l" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(0.983543, 0.177017, -0.0361774, 0.171096, -0.848192, 0.501295, 0.0580527, -0.499235, -0.86452, 0.207454, 0.271329, 0.0126561)
transform = Transform3D(0.982543, 0.175475, -0.0617861, 0.177209, -0.781722, 0.597919, 0.0566202, -0.59843, -0.799172, 0.207671, 0.26151, 0.0271473)
bone_name = "lowerleg.l"
bone_idx = 17
@ -962,8 +962,8 @@ libraries = {
tree_root = SubResource("AnimationNodeStateMachine_7v7qh")
anim_player = NodePath("../AnimationPlayer")
parameters/current_length = 1.04167
parameters/current_position = 0.806535
parameters/current_delta = 0.0333333
parameters/current_position = 0.539532
parameters/current_delta = 0.038006
parameters/Death_A/current_length = 0.791667
parameters/Death_A/current_position = 0.791667
parameters/Death_A/current_delta = 0.0263263
@ -980,12 +980,12 @@ parameters/Hit_B/current_length = 0.833333
parameters/Hit_B/current_position = 0.833333
parameters/Hit_B/current_delta = 0.0175824
parameters/IWR/current_length = 1.04167
parameters/IWR/current_position = 0.806535
parameters/IWR/current_delta = 0.0333333
parameters/IWR/current_position = 0.539532
parameters/IWR/current_delta = 0.038006
parameters/IWR/blend_position = Vector2(0.000524879, -0.0137615)
parameters/IWR/0/current_length = 1.04167
parameters/IWR/0/current_position = 0.806535
parameters/IWR/0/current_delta = 0.0333333
parameters/IWR/0/current_position = 0.539532
parameters/IWR/0/current_delta = 0.038006
parameters/IWR/1/current_length = 0.791667
parameters/IWR/1/current_position = 0.708259
parameters/IWR/1/current_delta = 0.0166667
@ -993,8 +993,8 @@ parameters/IWR/2/current_length = 1.04167
parameters/IWR/2/current_position = 1.04167
parameters/IWR/2/current_delta = 0.0
parameters/IWR/3/current_length = 0.791667
parameters/IWR/3/current_position = 0.18161
parameters/IWR/3/current_delta = 0.0333333
parameters/IWR/3/current_position = 0.164938
parameters/IWR/3/current_delta = 0.038006
parameters/IWR/4/current_length = 0.791667
parameters/IWR/4/current_position = 0.390352
parameters/IWR/4/current_delta = 0.0166667

@ -416,7 +416,7 @@ bones/20/parent = 19
bones/20/rest = Transform3D(1, 2.20872e-08, -2.03599e-08, -2.19087e-08, 0.999962, 0.00873287, 2.05521e-08, -0.00873287, 0.999962, -1.96343e-13, 0.00321952, -7.45082e-11)
bones/20/enabled = true
bones/20/position = Vector3(-1.96343e-13, 0.00321952, -7.45082e-11)
bones/20/rotation = Quaternion(-0.00436648, -1.02281e-08, -1.09991e-08, 0.99999)
bones/20/rotation = Quaternion(-0.00350551, -1.0237e-08, -1.09899e-08, 0.999994)
bones/20/scale = Vector3(1, 1, 1)
bones/21/name = "Chest"
bones/21/parent = 20
@ -437,14 +437,14 @@ bones/23/parent = 22
bones/23/rest = Transform3D(1, -2.50697e-09, -5.19409e-09, 1.68398e-09, 0.98826, -0.152781, 5.51612e-09, 0.152781, 0.98826, 4.19095e-11, 0.00270864, 2.94531e-10)
bones/23/enabled = true
bones/23/position = Vector3(4.19095e-11, 0.00270864, 2.94531e-10)
bones/23/rotation = Quaternion(0.0766157, -2.68545e-09, 1.05083e-09, 0.997061)
bones/23/rotation = Quaternion(0.077423, -1.91336e-05, -7.0442e-05, 0.996998)
bones/23/scale = Vector3(1, 1, 1)
bones/24/name = "Head"
bones/24/parent = 23
bones/24/rest = Transform3D(0.995965, 0.0110639, 0.0891059, -0.0301004, 0.976097, 0.215241, -0.0845949, -0.217053, 0.972488, -8.84756e-11, 0.00278009, 7.69505e-10)
bones/24/enabled = true
bones/24/position = Vector3(-8.84756e-11, 0.00278009, 7.69505e-10)
bones/24/rotation = Quaternion(-0.108831, 0.0437293, -0.0103631, 0.993044)
bones/24/rotation = Quaternion(-0.110643, 0.0437481, -0.0102833, 0.992844)
bones/24/scale = Vector3(1, 1, 1)
bones/25/name = "Head_end"
bones/25/parent = 24
@ -465,21 +465,21 @@ bones/27/parent = 26
bones/27/rest = Transform3D(-0.0214637, -0.19568, 0.980439, -0.772443, 0.625832, 0.107997, -0.634715, -0.755014, -0.164586, -1.49012e-10, 0.00258801, -1.93715e-09)
bones/27/enabled = true
bones/27/position = Vector3(-1.49012e-10, 0.00258801, -1.93715e-09)
bones/27/rotation = Quaternion(-0.359615, 0.67303, -0.240337, 0.599955)
bones/27/rotation = Quaternion(-0.358914, 0.672453, -0.240428, 0.600985)
bones/27/scale = Vector3(0.999996, 1, 1.00001)
bones/28/name = "LeftForeArm"
bones/28/parent = 27
bones/28/rest = Transform3D(0.979308, 0.0804198, -0.185711, -0.183058, 0.74328, -0.643448, 0.0862895, 0.66413, 0.742621, 7.91624e-11, 0.00470775, 5.82077e-11)
bones/28/enabled = true
bones/28/position = Vector3(7.91624e-11, 0.00470775, 5.82077e-11)
bones/28/rotation = Quaternion(0.351215, -0.0730593, -0.07077, 0.930754)
bones/28/rotation = Quaternion(0.351317, -0.0722602, -0.0716651, 0.930709)
bones/28/scale = Vector3(1, 1, 1)
bones/29/name = "LeftHand"
bones/29/parent = 28
bones/29/rest = Transform3D(-0.0513878, 0.0216333, 0.998444, -0.0653424, 0.99755, -0.024977, -0.996539, -0.0665242, -0.0498483, -1.67638e-10, 0.00527228, -5.58794e-11)
bones/29/enabled = true
bones/29/position = Vector3(-1.67638e-10, 0.00527228, -5.58794e-11)
bones/29/rotation = Quaternion(-0.0150854, 0.724359, -0.0315801, 0.688534)
bones/29/rotation = Quaternion(-0.01451, 0.724288, -0.0318895, 0.688607)
bones/29/scale = Vector3(1, 1, 1)
bones/30/name = "LeftHandIndex1"
bones/30/parent = 29
@ -542,21 +542,21 @@ bones/38/parent = 37
bones/38/rest = Transform3D(-0.964546, 0.185606, -0.18765, -0.01415, 0.673586, 0.738972, 0.263559, 0.715427, -0.64707, 4.09782e-10, 0.00258801, -3.72529e-10)
bones/38/enabled = true
bones/38/position = Vector3(4.09782e-10, 0.00258801, -3.72529e-10)
bones/38/rotation = Quaternion(0.0472979, 0.906256, 0.401212, -0.12447)
bones/38/rotation = Quaternion(0.0479221, 0.906336, 0.400744, -0.125152)
bones/38/scale = Vector3(1.00001, 1, 0.999996)
bones/39/name = "RightForeArm"
bones/39/parent = 38
bones/39/rest = Transform3D(0.751591, -0.653857, -0.0870728, 0.659576, 0.743279, 0.111782, -0.00837009, -0.141446, 0.989911, -3.35276e-10, 0.00470775, -1.0361e-10)
bones/39/enabled = true
bones/39/position = Vector3(-3.35276e-10, 0.00470775, -1.0361e-10)
bones/39/rotation = Quaternion(-0.0678256, -0.0210801, 0.351795, 0.933379)
bones/39/rotation = Quaternion(-0.068785, -0.0214416, 0.351773, 0.933308)
bones/39/scale = Vector3(1, 1, 1)
bones/40/name = "RightHand"
bones/40/parent = 39
bones/40/rest = Transform3D(0.973894, 0.0637677, 0.217864, -0.0684951, 0.99755, 0.0142082, -0.216425, -0.0287599, 0.975876, 1.49012e-10, 0.00527228, 1.76951e-10)
bones/40/enabled = true
bones/40/position = Vector3(1.49012e-10, 0.00527228, 1.76951e-10)
bones/40/rotation = Quaternion(-0.0108135, 0.109294, -0.0332856, 0.993393)
bones/40/rotation = Quaternion(-0.0107625, 0.110815, -0.0333021, 0.993225)
bones/40/scale = Vector3(1, 1, 1)
bones/41/name = "RightHandIndex1"
bones/41/parent = 40
@ -612,21 +612,21 @@ bones/48/parent = 19
bones/48/rest = Transform3D(0.990532, 0.137646, 0.000736739, 0.137156, -0.98643, -0.0902725, -0.0116994, 0.089514, -0.995921, 0.00201529, 0.000584635, 9.67385e-10)
bones/48/enabled = true
bones/48/position = Vector3(0.00201529, 0.000584635, 9.67385e-10)
bones/48/rotation = Quaternion(0.996598, 0.0689332, -0.00274987, 0.0451)
bones/48/rotation = Quaternion(0.996526, 0.0693229, -0.00272923, 0.0460766)
bones/48/scale = Vector3(1.00005, 1, 1)
bones/49/name = "LeftLeg"
bones/49/parent = 48
bones/49/rest = Transform3D(0.964789, -0.2188, 0.146002, 0.261003, 0.727337, -0.634713, 0.0326824, 0.650464, 0.758836, -2.02563e-10, 0.00526174, 5.22414e-11)
bones/49/enabled = true
bones/49/position = Vector3(-2.02563e-10, 0.00526174, 5.22414e-11)
bones/49/rotation = Quaternion(0.34591, 0.0305003, 0.12914, 0.928837)
bones/49/rotation = Quaternion(0.347747, 0.0304746, 0.129827, 0.928056)
bones/49/scale = Vector3(1, 0.999998, 1)
bones/50/name = "LeftFoot"
bones/50/parent = 49
bones/50/rest = Transform3D(0.899721, 0.436021, -0.020147, -0.0153375, 0.0777065, 0.996859, 0.43623, -0.896557, 0.0766018, 2.09548e-11, 0.00608811, 6.51926e-11)
bones/50/enabled = true
bones/50/position = Vector3(2.09548e-11, 0.00608811, 6.51926e-11)
bones/50/rotation = Quaternion(-0.660568, -0.159216, -0.157469, 0.716592)
bones/50/rotation = Quaternion(-0.661347, -0.159074, -0.157552, 0.715886)
bones/50/scale = Vector3(1.00002, 0.999984, 1)
bones/51/name = "LeftToes"
bones/51/parent = 50
@ -647,21 +647,21 @@ bones/53/parent = 19
bones/53/rest = Transform3D(0.947691, -0.0550513, -0.314368, -0.156332, -0.938818, -0.306887, -0.278236, 0.339985, -0.898327, -0.00201529, 0.000584635, 9.69761e-10)
bones/53/enabled = true
bones/53/position = Vector3(-0.00201529, 0.000584635, 9.69761e-10)
bones/53/rotation = Quaternion(0.972735, -0.0543277, -0.152305, 0.166251)
bones/53/rotation = Quaternion(0.972562, -0.0545842, -0.152284, 0.167191)
bones/53/scale = Vector3(0.999987, 1, 0.999999)
bones/54/name = "RightLeg"
bones/54/parent = 53
bones/54/rest = Transform3D(0.944194, 0.309956, -0.111442, -0.293456, 0.637956, -0.711965, -0.149582, 0.70494, 0.693314, 0, 0.00526174, 8.19564e-10)
bones/54/enabled = true
bones/54/position = Vector3(0, 0.00526174, 8.19564e-10)
bones/54/rotation = Quaternion(0.391448, 0.0105369, -0.166705, 0.904913)
bones/54/rotation = Quaternion(0.393007, 0.0105275, -0.167368, 0.904114)
bones/54/scale = Vector3(0.999997, 1, 0.999999)
bones/55/name = "RightFoot"
bones/55/parent = 54
bones/55/rest = Transform3D(0.845272, -0.523061, 0.109173, -0.0169768, 0.177925, 0.983898, -0.534058, -0.833522, 0.141515, -2.42144e-10, 0.00608812, -1.86265e-10)
bones/55/enabled = true
bones/55/position = Vector3(-2.42144e-10, 0.00608812, -1.86265e-10)
bones/55/rotation = Quaternion(-0.617624, 0.218594, 0.171985, 0.735649)
bones/55/rotation = Quaternion(-0.618382, 0.218514, 0.172054, 0.735019)
bones/55/scale = Vector3(0.999995, 1, 1)
bones/56/name = "RightToes"
bones/56/parent = 55
@ -685,7 +685,7 @@ skin = SubResource("Skin_s3c17")
surface_material_override/0 = ExtResource("2_vqkvs")
[node name="RightHand" type="BoneAttachment3D" parent="Root/Skeleton3D"]
transform = Transform3D(0.0791263, -0.162145, -0.983586, 0.964803, -0.235804, 0.116487, -0.250813, -0.958182, 0.137777, -0.00592509, -0.00127386, 0.013504)
transform = Transform3D(0.0814943, -0.160938, -0.983591, 0.964569, -0.235762, 0.118493, -0.250955, -0.958396, 0.136019, -0.00592291, -0.00128792, 0.0135028)
bone_name = "RightHand"
bone_idx = 40
@ -698,7 +698,7 @@ shape = SubResource("CapsuleShape3D_lhfxf")
disabled = true
[node name="LeftHand" type="BoneAttachment3D" parent="Root/Skeleton3D"]
transform = Transform3D(0.0791383, 0.162136, -0.983586, 0.971013, -0.235819, 0.0392527, -0.225576, -0.95818, -0.176096, 0.00577021, -0.00187496, 0.0134532)
transform = Transform3D(0.0799124, 0.15999, -0.983875, 0.97074, -0.236754, 0.0403456, -0.226473, -0.95831, -0.174225, 0.00576935, -0.00189334, 0.0134516)
bone_name = "LeftHand"
bone_idx = 29
@ -711,7 +711,7 @@ shape = SubResource("CapsuleShape3D_uxn71")
disabled = true
[node name="Spine" type="BoneAttachment3D" parent="Root/Skeleton3D"]
transform = Transform3D(1, 1.47076e-07, -1.0406e-08, -1.9976e-08, 0.0642405, -0.997934, -1.45553e-07, 0.997934, 0.0642404, 4.14743e-06, -0.000861241, 0.0148156)
transform = Transform3D(1, 1.47057e-07, -1.06581e-08, -1.99749e-08, 0.062522, -0.998044, -1.45552e-07, 0.998044, 0.0625219, 4.14743e-06, -0.000861241, 0.0148156)
bone_name = "Spine"
bone_idx = 20
@ -723,7 +723,7 @@ transform = Transform3D(0.990902, -0.0599725, 0.120481, 0.0674876, 0.995956, -0.
shape = SubResource("CapsuleShape3D_fajjo")
[node name="RightLeg" type="BoneAttachment3D" parent="Root/Skeleton3D"]
transform = Transform3D(0.957983, 0.0370115, -0.284375, 0.237405, 0.45388, 0.858852, 0.160865, -0.890292, 0.426029, -0.00230081, -0.00306797, 0.00735195)
transform = Transform3D(0.957963, 0.0371855, -0.28442, 0.237088, 0.455443, 0.858112, 0.161453, -0.889486, 0.427488, -0.00230187, -0.00307747, 0.00735608)
bone_name = "RightLeg"
bone_idx = 54
@ -736,8 +736,8 @@ libraries = {
deterministic = false
tree_root = SubResource("AnimationNodeStateMachine_r2kvc")
anim_player = NodePath("../AnimationPlayer")
parameters/current_length = 0.666667
parameters/current_position = 0.469865
parameters/current_length = 1.06667
parameters/current_position = 0.0547394
parameters/current_delta = 0.0166667
parameters/conditions/grounded = false
parameters/conditions/jumping = false
@ -751,7 +751,7 @@ parameters/attack/current_length = 2.0
parameters/attack/current_position = 1.44794
parameters/attack/current_delta = 0.0741513
parameters/idle/current_length = 1.06667
parameters/idle/current_position = 0.572203
parameters/idle/current_position = 0.0547394
parameters/idle/current_delta = 0.0166667
parameters/jump/current_length = 0.5
parameters/jump/current_position = 0.160275

@ -1,4 +1,4 @@
[gd_scene load_steps=21 format=3 uid="uid://b1i4juq2u7pwk"]
[gd_scene load_steps=20 format=3 uid="uid://b1i4juq2u7pwk"]
[ext_resource type="Environment" uid="uid://d31wkt76cft8k" path="res://resources/world_environment.tres" id="1_03qki"]
[ext_resource type="Script" path="res://scripts/game_manager.gd" id="1_kvi4c"]
@ -10,7 +10,6 @@
[ext_resource type="PackedScene" uid="uid://d1vowjv6aed2s" path="res://packed-scenes/ui.tscn" id="9_ah8u8"]
[ext_resource type="MeshLibrary" uid="uid://bs0yqy7xhugol" path="res://resources/level_mesh_library.tres" id="9_dr0le"]
[ext_resource type="PackedScene" uid="uid://bh4kdk3huhnrr" path="res://packed-scenes/wall_cracked.tscn" id="10_2s32u"]
[ext_resource type="Script" path="res://scripts/enemy_controller.gd" id="11_137ne"]
[ext_resource type="PackedScene" uid="uid://d135lsanl2mnu" path="res://packed-scenes/wall_doorway.tscn" id="11_c5fdg"]
[ext_resource type="PackedScene" uid="uid://bkh0th4s2lkcq" path="res://packed-scenes/chest.tscn" id="12_ead6y"]
[ext_resource type="Script" path="res://scripts/audio_manager.gd" id="12_o8q33"]
@ -41,9 +40,31 @@ size = Vector3(10000, 10000, 1000)
[node name="GameManager" type="Node" parent="."]
script = ExtResource("1_kvi4c")
[node name="SpawnManager" type="Node" parent="." node_paths=PackedStringArray("spawn_points")]
[node name="SpawnManager" type="Node" parent="." node_paths=PackedStringArray("spawn_points_array", "enemies_folder")]
script = ExtResource("4_2vmwg")
spawn_points = NodePath("../Enemies/SpawnPoints")
spawn_points_array = [NodePath("SpawnPoints/SpawnPoint1"), NodePath("SpawnPoints/SpawnPoint2"), NodePath("SpawnPoints/SpawnPoint3"), NodePath("SpawnPoints/SpawnPoint4")]
enemies_folder = NodePath("Enemies")
enemies = Array[PackedScene]([ExtResource("13_8a4e7")])
[node name="SpawnPoints" type="Node" parent="SpawnManager"]
[node name="SpawnPoint1" type="Node3D" parent="SpawnManager/SpawnPoints"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.3076, 1.36247, -36.183)
script = ExtResource("15_y5174")
[node name="SpawnPoint2" type="Node3D" parent="SpawnManager/SpawnPoints"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 19.8284, 1.36247, 0.242004)
script = ExtResource("15_y5174")
[node name="SpawnPoint3" type="Node3D" parent="SpawnManager/SpawnPoints"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -29.0138, 1.36247, -12.0637)
script = ExtResource("15_y5174")
[node name="SpawnPoint4" type="Node3D" parent="SpawnManager/SpawnPoints"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.09839, 1.36247, -12.0637)
script = ExtResource("15_y5174")
[node name="Enemies" type="Node" parent="SpawnManager"]
[node name="Player" parent="." node_paths=PackedStringArray("model") groups=["player"] instance=ExtResource("14_bpicj")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.8595, 1.08565, 13.3696)
@ -110,25 +131,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18, 1, 9)
item_name = "WallDoorway"
state = 2
[node name="Enemies" type="Node" parent="." node_paths=PackedStringArray("player")]
script = ExtResource("11_137ne")
enemy = ExtResource("13_8a4e7")
player = NodePath("../Player")
[node name="SpawnPoints" type="Node3D" parent="Enemies"]
[node name="SpawnPoint1" type="Node3D" parent="Enemies/SpawnPoints"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.3076, 1.36247, -36.183)
script = ExtResource("15_y5174")
[node name="SpawnPoint2" type="Node3D" parent="Enemies/SpawnPoints"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 19.8284, 1.36247, 0.242004)
script = ExtResource("15_y5174")
[node name="SpawnPoint3" type="Node3D" parent="Enemies/SpawnPoints"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 32.9955, 1.36247, -12.0637)
script = ExtResource("15_y5174")
[node name="Audio" type="Node" parent="."]
script = ExtResource("12_o8q33")

@ -29,7 +29,7 @@ func _physics_process(_delta: float) -> void:
if distance <= attack_range:
state = States.attacking
func _on_state_changed(new_state: States) -> void:
func _on_state_changed(_old_state: States, new_state: States) -> void:
name_changed.emit(unit_name, States.keys()[new_state])
match new_state:
States.idle:
@ -40,7 +40,8 @@ func _on_state_changed(new_state: States) -> void:
nav_agent.set_target_position(player.position)
if nav_agent.is_navigation_finished() or nav_agent.is_target_reached(): return
var next_path_position: Vector3 = nav_agent.get_next_path_position()
model.look_at(next_path_position)
if next_path_position != null:
model.look_at(next_path_position)
var new_velocity: Vector3 = global_position.direction_to(next_path_position) * speed
_on_velocity_computed(new_velocity)
States.attacking:

@ -1,28 +0,0 @@
extends Node
@export var enemy: PackedScene
@export var max_enemy_count := 3
@export var player: Player
@onready var spawn_points := [$SpawnPoint1, $SpawnPoint2, $SpawnPoint3]
var enemy_count: int
func _process(_delta: float) -> void:
if enemy_count < max_enemy_count:
spawn_new_enemy()
func spawn_new_enemy() -> void:
enemy_count += 1
var new_enemy = enemy.instantiate() as Enemy
new_enemy.player = player
new_enemy.name = "Enemy" + str(randi_range(1000000, 999999999))
new_enemy.unit_name = new_enemy.name
var spawn_point = spawn_points.pick_random()
print("Spawn " + new_enemy.unit_name + " on " + spawn_point.name + " at " + str(spawn_point.position))
new_enemy.position = spawn_point.position
new_enemy.unit_died.connect(_on_unit_died)
add_child(new_enemy)
func _on_unit_died() -> void:
enemy_count -= 1
print("One Enemy down...")

@ -33,7 +33,7 @@ func _ready() -> void:
state_changed.connect(_on_state_changed)
player_loaded.emit()
func _on_state_changed(new_state: States) -> void:
func _on_state_changed(old_state:States, new_state: States) -> void:
match new_state:
States.blocking:
print("Player is blocking!")

@ -1,15 +1,44 @@
extends Node
class_name SpawnManager extends Node
@export var spawn_points: Node3D
@export var spawn_points_array: Array[SpawnPoint]
@export var enemies_folder: Node
@export var enemies: Array[PackedScene]
@export var max_enemy := 3
var spawn_points_array
@onready var player : Player = get_tree().get_first_node_in_group("player")
var enemy_count := 0
var enemy_number := 0
func _ready() -> void:
spawn_points_array = spawn_points.get_children()
max_enemy = spawn_points_array.size()
while enemy_count < max_enemy:
spawn_new_enemy()
enough_enemies()
func enough_enemies() -> void:
var foundSpawnPoint := false
if enemy_count < max_enemy:
for spawn_point in spawn_points_array:
if !spawn_point.isFull:
foundSpawnPoint = true
enemy_count += 1
spawn_new_enemy(spawn_point)
if foundSpawnPoint:
enough_enemies()
else:
print("No free spawn point found for enemy!")
func spawn_new_enemy(spawn_point: SpawnPoint) -> void:
enemy_number += 1
var new_enemy = enemies.pick_random().instantiate() as Enemy
new_enemy.player = player
new_enemy.name = new_enemy.name + str(enemy_number)
new_enemy.unit_name = new_enemy.name
print("Spawn " + new_enemy.unit_name + " on " + spawn_point.name + " at " + str(spawn_point.position))
new_enemy.position = spawn_point.position
new_enemy.unit_died.connect(_on_unit_died)
enemies_folder.add_child(new_enemy)
spawn_point.isFull = true
spawn_point.enemy = new_enemy
func spawn_new_enemy() -> void:
pass
func _on_unit_died() -> void:
enemy_count -= 1
enough_enemies()

@ -1,4 +1,22 @@
extends Node3D
class_name SpawnPoint extends Node3D
@export var isFull: bool
@export var enemy: Enemy
var isFull: bool:
get:
return isFull
set(value):
isFull = value
#print(name + ".isFull = " + str(isFull))
var enemy: Enemy:
get:
return enemy
set(value):
enemy = value
if enemy != null:
enemy.state_changed.connect(_on_enemy_state_changed)
#print(name + ".enemy = " + str(enemy.name))
func _on_enemy_state_changed(old_state: Unit.States, new_state: Unit.States) -> void:
if old_state == Unit.States.idle and new_state != Unit.States.idle:
enemy = null
isFull = false

@ -37,8 +37,8 @@ var state = States.idle:
get:
return state
set(value):
state_changed.emit(state, value)
state = value
state_changed.emit(value)
@export var unit_name: String:
get:
@ -67,7 +67,7 @@ var stamina : int:
signal name_changed(unit_name: String)
signal health_changed(current_health: int, maximum_health: int)
signal stamina_changed(current_stamina: int, maximum_stamina: int)
signal state_changed(new_state: States)
signal state_changed(old_state: States, new_state: States)
signal unit_died()
func _process(delta: float) -> void: