コード例 #1
0
 public void ChangeState(IMissionState state)
 {
     if (currentState != null)
     {
         currentState.Exit();
         previousState = currentState;
     }
     currentState = state;
     currentState.Enter();
 }
コード例 #2
0
    public void Enter()
    {
        result                   = null;
        playerMachine            = new PlayerMachine();
        playerMachine.playerData = new PlayerMachine.Data();

        playerMachine.ChangeState(new IPS_Move());
        var gui = UnityEngine.Object.FindObjectOfType <GUIControll>();

        gui.GUIEnabled.mission.Player.SetActive(true);
    }
コード例 #3
0
    public void ExecuteStateLogic()
    {
        var newState = currentState.Execute();

        if (newState != null)
        {
            currentState.Exit();
            newState.Enter();
            previousState = currentState;
            currentState  = newState;
        }
    }
コード例 #4
0
    void ControllRestrictions()
    {
        var restriction = playerMachine.playerData.character.ControllEffects();

        switch (restriction)
        {
        case Restriction.Cannot_all:
            result = new IMS_NextCharacter();
            break;

        case Restriction.Attack_anyone:
            //result = przechodzi na kontrole ai
            break;

        case Restriction.Attack_ally:
            //result = przechodzi na kontrole ai
            break;
        }
        if (playerMachine.playerData.character.currentStats.lifeStats.HealthStatus == HealthStatus.Dead)
        {
            result = new IMS_NextCharacter();
        }
    }