Exemple #1
0
    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);
        }
    }
Exemple #2
0
 public override void Exit(Player player)
 {
     TipAnimation.SetPlayerCanShakeHands(false);
     player.CleanWaittime();
 }