99 lines
2.6 KiB
C#
99 lines
2.6 KiB
C#
using NBC;
|
|
using UnityEngine;
|
|
|
|
namespace NBF
|
|
{
|
|
/// <summary>
|
|
/// 闲置状态
|
|
/// </summary>
|
|
public class PlayerIdle : PlayerStateBase
|
|
{
|
|
public override uint StateId => States.Player.Idle;
|
|
|
|
public enum Phase
|
|
{
|
|
/// <summary>
|
|
/// 完全闲置的
|
|
/// </summary>
|
|
Idle,
|
|
|
|
/// <summary>
|
|
/// 准备拿东西
|
|
/// </summary>
|
|
PrepareTake,
|
|
|
|
/// <summary>
|
|
/// 拿着东西
|
|
/// </summary>
|
|
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;
|
|
}
|
|
}
|
|
} |