using SepCore.Definition; namespace SepCore.Entity { /// /// 小刀的搜寻状态。 /// public sealed class WeaponKnifeSeekState : WeaponStateBase { private WeaponKnife _weapon; public override WeaponStateType State => WeaponStateType.Seek; public override void OnInit(WeaponBase weapon) => _weapon = (WeaponKnife)weapon; public override void OnEnter() { } public override void OnUpdate(float elapseSeconds, float realElapseSeconds) { _weapon.Check(); _weapon.RotateToTarget(elapseSeconds); if (_weapon.Target == null || !_weapon.Target.Available) { _weapon.TransitionTo(WeaponStateType.Idle); return; } if (_weapon.IsInRange(_weapon.Target, _weapon.SqrRange)) { _weapon.TransitionTo(WeaponStateType.Aim); } } public override void OnLeave() { } } }