using SepCore.Definition; namespace SepCore.Entity { /// /// 长枪的攻击状态。 /// public sealed class WeaponLanceAttackState : WeaponStateBase { private WeaponLance _weapon; public override WeaponStateType State => WeaponStateType.Attack; public override void OnInit(WeaponBase weapon) => _weapon = (WeaponLance)weapon; public override void OnEnter() { _weapon.ResetAttackCooldown(_weapon.CurrentCooldown); _weapon.Attack(); } public override void OnUpdate(float elapseSeconds, float realElapseSeconds) { if (!_weapon.IsAttacking) { _weapon.TransitionTo(WeaponStateType.Aim); } } public override void OnLeave() { } } }