diff --git a/Characters/Character.cs b/Characters/Character.cs index 2fec6b9..192b9ab 100644 --- a/Characters/Character.cs +++ b/Characters/Character.cs @@ -130,7 +130,14 @@ public partial class Character : CharacterBody2D, IFaction StunAnimation.Stop(); } - Sprite.FlipH = Target.X < 0; + if (Target.X < 0) + { + Sprite.FlipH = true; + } + else if (Target.X > 0) + { + Sprite.FlipH = false; + } DrawTarget(); } @@ -214,7 +221,7 @@ public partial class Character : CharacterBody2D, IFaction scale.Y = -1; angle = Mathf.Pi - angle; } - else + else if (target.X > 0) { scale.Y = 1; } diff --git a/Characters/Player.cs b/Characters/Player.cs index 44050a0..57f7fa8 100644 --- a/Characters/Player.cs +++ b/Characters/Player.cs @@ -11,7 +11,20 @@ public sealed partial class Player : Character { private string _spriteAnim; - public Vector2 DesiredTarget { get; set; } + private Vector2 _desiredTarget; + + public Vector2 DesiredTarget + { + get => _desiredTarget; + set + { + if (value.IsZeroApprox()) + { + return; + } + _desiredTarget = value; + } + } [Export] public PlayerCamera Camera { get; set; } diff --git a/State/Character/PlayerState.cs b/State/Character/PlayerState.cs index b8590fb..aea87c6 100644 --- a/State/Character/PlayerState.cs +++ b/State/Character/PlayerState.cs @@ -56,7 +56,12 @@ public abstract partial class PlayerState : CharacterState Character.LookTowardsDirection(); var player = _player; - player.DesiredTarget = player.GetDesiredInputFromInput(); + var desiredTarget = player.GetDesiredInputFromInput(); + if (!desiredTarget.IsZeroApprox()) + { + // can never be zero + player.DesiredTarget = desiredTarget; + } if (Character.Inventory.SelectedItem is Items.Weapon weapon) {