diff --git a/src/enemy/enemy_types/michael/Michael.tscn b/src/enemy/enemy_types/michael/Michael.tscn index 3cd581cd..feedf858 100644 --- a/src/enemy/enemy_types/michael/Michael.tscn +++ b/src/enemy/enemy_types/michael/Michael.tscn @@ -337,7 +337,7 @@ length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Michael/Sprite/SubViewport/AnimatedSprite:frame") +tracks/0/path = NodePath("Sprite/SubViewport/AnimatedSprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { @@ -349,7 +349,7 @@ tracks/0/keys = { tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("Michael/Sprite/SubViewport/AnimatedSprite:animation") +tracks/1/path = NodePath("Sprite/SubViewport/AnimatedSprite:animation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { @@ -361,47 +361,12 @@ tracks/1/keys = { [sub_resource type="Animation" id="Animation_0k3e8"] resource_name = "attack" -step = 0.0833333 - -[sub_resource type="Animation" id="Animation_ppbeh"] -resource_name = "idle_back_walk" -length = 1.91667 -loop_mode = 1 -step = 0.0833333 +length = 0.416668 +step = 0.0166667 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Michael/Sprite/SubViewport/AnimatedSprite:animation") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [&"idle_back_walk"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Michael/Sprite/SubViewport/AnimatedSprite:frame") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0, 0.0833333, 0.166667, 0.25, 0.333333, 0.416667, 0.5, 0.583333, 0.666666, 0.75, 0.833333, 0.916666, 1, 1.08333, 1.16667, 1.25, 1.33333, 1.41667, 1.5, 1.58333, 1.66667, 1.75, 1.83333), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), -"update": 1, -"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] -} - -[sub_resource type="Animation" id="Animation_3dffb"] -resource_name = "idle_front_walk" -length = 1.91667 -loop_mode = 1 -step = 0.0833333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Michael/Sprite/SubViewport/AnimatedSprite:animation") +tracks/0/path = NodePath("Sprite/SubViewport/AnimatedSprite:animation") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { @@ -413,7 +378,67 @@ tracks/0/keys = { tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("Michael/Sprite/SubViewport/AnimatedSprite:frame") +tracks/1/path = NodePath("Sprite/SubViewport/AnimatedSprite:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.0166667, 0.0333333, 0.05, 0.0666667, 0.0833333, 0.1, 0.116667, 0.133333, 0.15, 0.166667, 0.183333, 0.2, 0.216667, 0.233333, 0.283333, 0.3, 0.316667, 0.333333, 0.35, 0.366667, 0.383333, 0.4), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] +} + +[sub_resource type="Animation" id="Animation_ppbeh"] +resource_name = "idle_back_walk" +length = 1.91667 +loop_mode = 1 +step = 0.0833333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite/SubViewport/AnimatedSprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.0833333, 0.166667, 0.25, 0.333333, 0.416667, 0.5, 0.583333, 0.666666, 0.75, 0.833333, 0.916666, 1, 1.08333, 1.16667, 1.25, 1.33333, 1.41667, 1.5, 1.58333, 1.66667, 1.75, 1.83333), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite/SubViewport/AnimatedSprite:animation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"idle_back_walk"] +} + +[sub_resource type="Animation" id="Animation_3dffb"] +resource_name = "idle_front_walk" +length = 1.91667 +loop_mode = 1 +step = 0.0833333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite/SubViewport/AnimatedSprite:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"idle_front_walk"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite/SubViewport/AnimatedSprite:frame") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { @@ -431,7 +456,7 @@ step = 0.0833333 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Michael/Sprite/SubViewport/AnimatedSprite:animation") +tracks/0/path = NodePath("Sprite/SubViewport/AnimatedSprite:animation") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { @@ -443,7 +468,7 @@ tracks/0/keys = { tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("Michael/Sprite/SubViewport/AnimatedSprite:frame") +tracks/1/path = NodePath("Sprite/SubViewport/AnimatedSprite:frame") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { @@ -598,18 +623,16 @@ unique_name_in_owner = true texture_filter = 1 position = Vector2(45, 45) sprite_frames = SubResource("SpriteFrames_artt5") -animation = &"idle_front_walk" -frame = 16 +animation = &"idle_back_walk" [node name="AnimationPlayer" type="AnimationPlayer" parent="."] unique_name_in_owner = true -root_node = NodePath("../..") libraries = { "": SubResource("AnimationLibrary_346xs") } [node name="AnimationTree" type="AnimationTree" parent="."] unique_name_in_owner = true -root_node = NodePath("%AnimationTree/../..") +root_node = NodePath("%AnimationTree/..") tree_root = SubResource("AnimationNodeStateMachine_7gios") anim_player = NodePath("../AnimationPlayer") diff --git a/src/enemy/state/states/EnemyLogic.State.FollowPlayer.cs b/src/enemy/state/states/EnemyLogic.State.FollowPlayer.cs index 80b7e972..d4834cae 100644 --- a/src/enemy/state/states/EnemyLogic.State.FollowPlayer.cs +++ b/src/enemy/state/states/EnemyLogic.State.FollowPlayer.cs @@ -21,7 +21,8 @@ namespace GameJamDungeon enemy.Velocity = (targetPosition - enemy.GlobalTransform.Origin).Normalized() * 2f; var lookAtDir = enemy.GlobalTransform.Origin - enemy.Velocity; - enemy.LookAt(new Vector3(lookAtDir.X, enemy.GlobalPosition.Y, lookAtDir.Z)); + if (enemy.Velocity != Vector3.Zero) + enemy.LookAt(new Vector3(lookAtDir.X, enemy.GlobalPosition.Y, lookAtDir.Z)); Output(new Output.MovementComputed()); return ToSelf(); diff --git a/src/enemy/state/states/EnemyLogic.State.Idle.cs b/src/enemy/state/states/EnemyLogic.State.Idle.cs index ac067f1e..706e4241 100644 --- a/src/enemy/state/states/EnemyLogic.State.Idle.cs +++ b/src/enemy/state/states/EnemyLogic.State.Idle.cs @@ -23,7 +23,9 @@ public partial class EnemyLogic var velocity = (targetPosition - enemy.GlobalPosition).Normalized() * 1.0f; enemy.Velocity = velocity; var lookAtDir = enemy.GlobalTransform.Origin - enemy.Velocity; - enemy.LookAt(new Vector3(lookAtDir.X, enemy.GlobalPosition.Y, lookAtDir.Z)); + + if (enemy.Velocity != Vector3.Zero) + enemy.LookAt(new Vector3(lookAtDir.X, enemy.GlobalPosition.Y, lookAtDir.Z)); Output(new Output.MovementComputed()); return ToSelf();