using Godot; using System; public partial class ChaseState : State { [Export] public float Speed = 40f; [Export] public Node2D player; public CharacterBody2D skeleton; public override void Ready() { if (player == null) { GD.Print("Du har glemt at lave en reference til Player."); } GD.Print("ChaseState ready."); } public override void PhysicsUpdate(float delta) { fsm.npc.Velocity = fsm.npc.GlobalPosition.DirectionTo(player.GlobalPosition) * this.Speed; if ( fsm.npc.GlobalPosition.DistanceTo( player.GlobalPosition ) > 50f ) { GD.Print("Skift til PatrolState"); fsm.TransitionTo("PatrolState"); } if (fsm.npc.GlobalPosition.DistanceTo(player.GlobalPosition) < 10f) { GD.Print("Skift til AttackState"); fsm.TransitionTo("AttackState"); } fsm.npc.MoveAndSlide(); } }