private void CreateStates()
    {
        states = new Dictionary <string, TreeState>();

        TreeState inactive = new TreeStateInactive();
        TreeState active   = new TreeStateActive();
        TreeState eatingMinigameWrangle = new TreeStateEatingMinigameWrangle();
        TreeState eatingMinigameMash    = new TreeStateEatingMinigameMash();
        TreeState eating = new TreeStateEating();

        states.Add("Inactive", inactive);
        states.Add("Active", active);
        states.Add("EatingMinigameWrangle", eatingMinigameWrangle);
        states.Add("EatingMinigameMash", eatingMinigameMash);
        states.Add("Eating", eating);

        foreach (TreeState state in states.Values)
        {
            state.Tree = this;
        }

        currentState = (Active) ? active : inactive;

        currentState.Enter();
    }
示例#2
0
	protected virtual void CreateStates()
    {        
        states = new Dictionary<string, TreeState>();

        TreeState inactive = new TreeStateInactive();
        TreeState inactiveDead = new TreeStateInactiveDead();
        TreeState active = new TreeStateActive();
        TreeState eatingMinigameWrangle = new TreeStateEatingMinigameWrangle();
        TreeState eatingMinigameMash = new TreeStateEatingMinigameMash();
        TreeState eatingMinigameMashInstant = new TreeStateEatingMinigameMashInstant();
        TreeState eating = new TreeStateEating();

        // Axe man minigame states
        TreeState axeManMinigameDead = new TreeStateAxeManMinigameDead();
        TreeState axeManMinigameWaitForChop = new TreeStateAxeManMinigameWaitForChop();
        TreeState axeManMinigameGroan = new TreeStateAxeManMinigameGroan();
        TreeState axeManMinigamePanToAxe = new TreeStateAxeManMinigamePanToAxe();
        TreeState axeManMinigameWrangleAxe = new TreeStateAxeManMinigameWrangleAxe();
        TreeState axeManMinigameGrabAxe = new TreeStateAxeManMinigameGrabAxe();
        TreeState axeManMinigameRemoveAxe = new TreeStateAxeManMinigameRemoveAxe();
        TreeState axeManMinigameRaiseAxe = new TreeStateAxeManMinigameRaiseAxe();
        TreeState axeManMinigameDropAxe = new TreeStateAxeManMinigameDropAxe();
        TreeState axeManMinigameLowerToAxeMan = new TreeStateAxeManMinigameLowerToAxeMan();
        TreeState axeManMinigameRaiseAxeMan = new TreeStateAxeManMinigameRaiseAxeMan();
        TreeState axeManMinigameWrangleAxeMan = new TreeStateAxeManMinigameWrangleAxeMan();
        TreeState axeManMinigameMash = new TreeStateAxeManMinigameMash();
        TreeState axeManMinigameEatingFirstHalf = new TreeStateAxeManMinigameEatingFirstHalf();
        TreeState axeManMinigameEatingLastWords = new TreeStateAxeManMinigameEatingLastWords();
        TreeState axeManMinigameEatingLastHalf = new TreeStateAxeManMinigameEatingLastHalf();

        states.Add("Inactive", inactive);
        states.Add("InactiveDead", inactiveDead);
        states.Add("Active", active);
        states.Add("EatingMinigameWrangle", eatingMinigameWrangle);
        states.Add("EatingMinigameMash", eatingMinigameMash);
        states.Add("EatingMinigameMashInstant", eatingMinigameMashInstant);
        states.Add("Eating", eating);

        // Axe man minigame state
        states.Add("AxeManMinigameDead", axeManMinigameDead);
        states.Add("AxeManMinigameWaitForChop", axeManMinigameWaitForChop);
        states.Add("AxeManMinigameGroan", axeManMinigameGroan);
        states.Add("AxeManMinigamePanToAxe", axeManMinigamePanToAxe);
        states.Add("AxeManMinigameWrangleAxe", axeManMinigameWrangleAxe);
        states.Add("AxeManMinigameGrabAxe", axeManMinigameGrabAxe);
        states.Add("AxeManMinigameRemoveAxe", axeManMinigameRemoveAxe);
        states.Add("AxeManMinigameRaiseAxe", axeManMinigameRaiseAxe);
        states.Add("AxeManMinigameDropAxe", axeManMinigameDropAxe);
        states.Add("AxeManMinigameLowerToAxeMan", axeManMinigameLowerToAxeMan);
        states.Add("AxeManMinigameRaiseAxeMan", axeManMinigameRaiseAxeMan);
        states.Add("AxeManMinigameWrangleAxeMan", axeManMinigameWrangleAxeMan);
        states.Add("AxeManMinigameMash", axeManMinigameMash);
        states.Add("AxeManMinigameEatingFirstHalf", axeManMinigameEatingFirstHalf);
        states.Add("AxeManMinigameEatingLastWords", axeManMinigameEatingLastWords);
        states.Add("AxeManMinigameEatingLastHalf", axeManMinigameEatingLastHalf);

        foreach (TreeState state in states.Values) state.Tree = this;

        currentState = (Active) ? states["Active"] : states["Inactive"];

        if (Active) MessageCenter.Instance.Broadcast(new CameraChangeFollowedMessage(transform, Vector3.zero));

        currentState.Enter(null);
    }