using NBC; using UnityEngine; namespace NBF { /// /// 闲置状态 /// public class PlayerIdle : PlayerStateBase { public override uint StateId => States.Player.Idle; public enum Phase { /// /// 完全闲置的 /// Idle, /// /// 准备拿东西 /// PrepareTake, /// /// 拿着东西 /// TakeItem, } public Phase Stage = Phase.Idle; protected override void onEnter() { _owner.PlayerAnimatorCtrl.LureThrown = false; _owner.MinorArm.IK.enabled = false; if (_owner.Gears.Rod && _owner.Gears.Reel) { _owner.Gears.Reel.Unlock(false); } Stage = Phase.Idle; } protected override uint onUpdate() { // if (Input.GetKeyDown(KeyCode.O)) // { // SetArm(); // _owner.Gears.Reel.AnimatorCtrl.Reeling2 = 1; // _owner.PlayerAnimatorCtrl.PodsakAction = true; // _owner.PlayerAnimatorCtrl.Telestick = false; // } if (Stage == Phase.Idle) { if (_owner && _owner.Gears.Rod) { Stage = Phase.PrepareTake; } } else if (Stage == Phase.PrepareTake) { if (_owner.Data.currentGear.Type == GearType.Pole) { var handPoint = _owner.MinorArm.LeftRigMagnet; var ret = _owner.PutLineToLeftHandHelper(handPoint, 3f); if (ret) { _owner.PlayerAnimatorCtrl.RodReady = true; Stage = Phase.TakeItem; } } else { _owner.PlayerAnimatorCtrl.RodReady = true; Stage = Phase.TakeItem; } } else if (Stage == Phase.TakeItem) { if (_owner.Gears.Rod) { //如果准备好了杆子,则可进入抛竿 if (Input.GetMouseButtonDown(0)) { return States.Player.WaitThrow; } } } return States.None; } } }