2023-07-23 23:39:20 -07:00
|
|
|
using Godot;
|
2023-08-06 01:07:30 -07:00
|
|
|
using SupaLidlGame.State.Thinker;
|
2023-07-23 23:39:20 -07:00
|
|
|
|
|
|
|
namespace SupaLidlGame.State.NPC.Doc;
|
|
|
|
|
|
|
|
public partial class DocLanceState : DocAttackState
|
|
|
|
{
|
|
|
|
[Export]
|
|
|
|
public float DashSpeed { get; set; } = 212;
|
|
|
|
|
|
|
|
[Export]
|
|
|
|
public DocExitState ExitState { get; set; }
|
|
|
|
|
|
|
|
public override DocChooseAttackState ChooseAttackState
|
|
|
|
{
|
|
|
|
get => null;
|
|
|
|
set { }
|
|
|
|
}
|
|
|
|
|
|
|
|
public override PackedScene Projectile
|
|
|
|
{
|
|
|
|
get => null;
|
|
|
|
set { }
|
|
|
|
}
|
|
|
|
|
|
|
|
public override double AttackDuration { get; set; }
|
|
|
|
|
|
|
|
public override double Duration { get; set; }
|
|
|
|
|
|
|
|
protected Vector2 _dashDirection;
|
|
|
|
|
|
|
|
protected double _dashTime;
|
|
|
|
|
|
|
|
protected float _oldFriction = 0;
|
|
|
|
|
|
|
|
public override NPCState Enter(IState<NPCState> previousState)
|
|
|
|
{
|
|
|
|
var state = base.Enter(previousState);
|
|
|
|
_doc.ShouldMove = true;
|
2023-08-06 01:07:30 -07:00
|
|
|
_doc.ThinkerStateMachine.ChangeState<DashDefensive>(out var _);
|
2023-07-23 23:39:20 -07:00
|
|
|
|
|
|
|
return state;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected override void Attack()
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public override NPCState Process(double delta)
|
|
|
|
{
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|