Beispiel #1
0
        protected override void SetupMachine()
        {
            base.SetupMachine();

            mainState = new MachineState();

            firstStartState  = new GameObjectMachineState(firstStartGo);
            secondStartState = new GameObjectMachineState(secondStartGo);
            thirdStartState  = new GameObjectMachineState(thirdStartGo);
            mainMenuState    = new GameObjectMachineState(mainMenuGo);

            firstGameState  = new MachineState();
            secondGameState = new MachineState();
            thirdGameState  = new MachineState();

            AllowTrigger(FIRST_START_TRIGGER);
            AllowTrigger(SECOND_START_TRIGGER);
            AllowTrigger(THIRD_START_TRIGGER);
            AllowTrigger(MENU_START_TRIGGER);
            AllowTrigger(NEXT_TRIGGER);

            mainState.AddTrigger(FIRST_START_TRIGGER, firstStartState);
            mainState.AddTrigger(SECOND_START_TRIGGER, secondStartState);
            mainState.AddTrigger(THIRD_START_TRIGGER, thirdStartState);
            mainState.AddTrigger(MENU_START_TRIGGER, mainMenuState);

            firstStartState.AddTrigger(NEXT_TRIGGER, firstGameState);
            secondStartState.AddTrigger(NEXT_TRIGGER, secondGameState);
            thirdStartState.AddTrigger(NEXT_TRIGGER, thirdGameState);

            mainMenuState.AddTrigger(FIRST_START_TRIGGER, firstStartState);
            mainMenuState.AddTrigger(SECOND_START_TRIGGER, secondStartState);
            mainMenuState.AddTrigger(THIRD_START_TRIGGER, thirdStartState);

            mainState.OnStart += MainState_OnStart;

            firstGameState.OnStart  += FirstGameState_OnStart;
            secondGameState.OnStart += SecondGameState_OnStart;
            thirdGameState.OnStart  += ThirdGameState_OnStart;
        }