public override void Execute(Player player) { //player.PlayerAC.Stop(); player.transform.LookAt(player.target.transform.position); if (GameObject.FindGameObjectWithTag(Tags.Camera).GetComponent <MyCamera>().getPlotSwitch()) { player.GetFSM().ChangeState(player.States.WalkingState); } float TimeDelayed = 0.0f; if (player.target.GetComponent <Leader>().GetFSM().CurrentState() == player.target.GetComponent <Leader>().States.WaitingState) { if (player.target.GetComponent <Leader>().States.WaitingState.GetHasWaitedTime() < Const.LEADER_REACT_TIME) { TimeDelayed = player.target.GetComponent <Leader>().States.WaitingState.GetHasWaitedTime(); } else { TimeDelayed = Const.LEADER_REACT_TIME; } } if (GUItest.playerWaveHands) { MessageDispatcher.Instance().DisparcherMessage(TimeDelayed, player.ID(), player.target.GetComponent <Leader>().ID(), MessageEnum.PlayerWaveHands); player.GetFSM().ChangeState(player.States.WaveHandState); } else if (GUItest.playerSalute) { MessageDispatcher.Instance().DisparcherMessage(TimeDelayed, player.ID(), player.target.GetComponent <Leader>().ID(), MessageEnum.PlayerSalute); player.GetFSM().ChangeState(player.States.SaluteState); } if (Vector3.Distance(player.gameObject.transform.position, player.target.transform.position) < Const.INTERACTIVE_DISTANCE) { TipAnimation.SetPlayerCanShakeHands(true); if (GUItest.playerShakeHands) { //给主席发消息 MessageDispatcher.Instance().DisparcherMessage(0.5f, player.ID(), player.target.GetComponent <Leader>().ID(), MessageEnum.PlayerShakeHands); player.GetFSM().ChangeState(player.States.ShakeHandsState); } } else { TipAnimation.SetPlayerCanShakeHands(false); } }
public override void Exit(Player player) { TipAnimation.SetPlayerCanShakeHands(false); player.CleanWaittime(); }