Beispiel #1
0
    public void InitFsm()
    {
        ManagerFSM.AddAllStates();
        ManagerFSM.AddEventConsequence(enumStates.ENTRY, enumEvents.OnShowIntro, enumStates.IntroLogo);
        ManagerFSM.AddEventConsequence(enumStates.IntroLogo, enumEvents.OnIntroEnd, enumStates.MainMenu);
        ManagerFSM.AddEventConsequence(enumStates.MainMenu, enumEvents.OnQuickGame, enumStates.GameIntro);
        ManagerFSM.AddEventConsequence(enumStates.GameIntro, enumEvents.OnNextWave, enumStates.Wave);
        ManagerFSM.AddEventConsequence(enumStates.Wave, enumEvents.OnWaveEnd, enumStates.UpgradeMenu);
        ManagerFSM.AddEventConsequence(enumStates.UpgradeMenu, enumEvents.OnNextWave, enumStates.Wave);
        ManagerFSM.AddEventConsequence(enumStates.UpgradeMenu, enumEvents.OnPauseMenu, enumStates.Pause);
        ManagerFSM.AddEventConsequence(enumStates.Wave, enumEvents.OnPauseMenu, enumStates.Pause);
        ManagerFSM.AddEventConsequence(enumStates.Wave, enumEvents.OnGameFinish, enumStates.GameFinished);
        ManagerFSM.AddEventConsequence(enumStates.Wave, enumEvents.OnGameExit, enumStates.MainMenu);
        ManagerFSM.AddEventConsequence(enumStates.GameFinished, enumEvents.OnGameExit, enumStates.MainMenu);
        ManagerFSM.AddEventConsequence(enumStates.GameFinished, enumEvents.OnQuickGame, enumStates.GameIntro);
        ManagerFSM.AddEventConsequence(enumStates.Pause, enumEvents.OnQuickGame, enumStates.GameIntro);
        ManagerFSM.AddEventConsequence(enumStates.MainMenu, enumEvents.OnGameExit, enumStates.QUIT);
        ManagerFSM.AddOnEnterCall(enumStates.MainMenu, OnMainMenuEnter);
        ManagerFSM.AddOnExitCall(enumStates.MainMenu, OnMainMenuExit);
        ManagerFSM.AddOnEnterCall(enumStates.IntroLogo, OnIntroEnter);
        ManagerFSM.AddOnExitCall(enumStates.IntroLogo, OnIntroExit);
        ManagerFSM.AddOnEnterCall(enumStates.GameIntro, OnGameIntroEnter);
        ManagerFSM.AddOnExitCall(enumStates.GameIntro, OnGameIntroExit);
        ManagerFSM.AddOnEnterCall(enumStates.Wave, OnWaveEnter);
        ManagerFSM.AddOnExitCall(enumStates.Wave, OnWaveExit);
        ManagerFSM.AddOnEnterCall(enumStates.UpgradeMenu, OnUpgradeMenuEnter);
        ManagerFSM.AddOnExitCall(enumStates.UpgradeMenu, OnUpgradeMenuExit);
        ManagerFSM.AddOnEnterCall(enumStates.GameFinished, OnGameFinishEnter);
        ManagerFSM.AddOnExitCall(enumStates.GameFinished, OnGameFinishExit);

        ManagerFSM.ForceState(enumStates.ENTRY);
        ManagerFSM.InvokeEvent(enumEvents.OnShowIntro);
    }