Beispiel #1
0
    public void FinishMinigame(LastMinigameFinish FinishState)
    {
        MinigamesPlayed++;
        LastMinigameFinishState = FinishState;
        switch (FinishState)
        {
        case LastMinigameFinish.LOST:
            break;

        case LastMinigameFinish.WON:
            UpdateMetaScore(1);
            UpdateMetaScore(0);
            MinigamesWon++;
            break;

        case LastMinigameFinish.TIE:
            UpdateMetaScore(1);
            UpdateMetaScore(0);
            break;

        case LastMinigameFinish.P1WIN:
            UpdateMetaScore(0);
            MinigamesWonByP1++;
            break;

        case LastMinigameFinish.P2WIN:
            UpdateMetaScore(1);
            MinigamesWonByP2++;
            break;

        case LastMinigameFinish.NONE:
        default:
            break;
        }
    }
    private void DisplayFinishGraphics(LastMinigameFinish FinishState)
    {
        switch (FinishState)
        {
        case LastMinigameFinish.LOST:
            Instantiate(Settings.LoseGraphicsPrefab);
            break;

        case LastMinigameFinish.WON:
            Instantiate(Settings.WinGraphicsPrefab);
            break;

        case LastMinigameFinish.TIE:
            Instantiate(Settings.TieGraphicsPrefab);
            break;

        case LastMinigameFinish.P1WIN:
            Instantiate(Settings.P1WinGraphicsPrefab);
            break;

        case LastMinigameFinish.P2WIN:
            Instantiate(Settings.P2WinGraphicsPrefab);
            break;

        case LastMinigameFinish.NONE:
        default:
            break;
        }
    }
Beispiel #3
0
    public void FinishMinigame(LastMinigameFinish FinishState)
    {
        MinigamesPlayed++;
        switch (FinishState)
        {
        case LastMinigameFinish.LOST:
            break;

        case LastMinigameFinish.WON:
            MinigamesWon++;
            break;

        case LastMinigameFinish.TIE:
            break;

        case LastMinigameFinish.P1WIN:
            MinigamesWonByP1++;
            break;

        case LastMinigameFinish.P2WIN:
            MinigamesWonByP2++;
            break;

        case LastMinigameFinish.NONE:
        default:
            break;
        }
    }
Beispiel #4
0
 public void SetupNewMinigames(MinigameInfo[] NewSelectedMinigames, MinigameGamemodeTypes NewGamemode)
 {
     MinigamesWon            = 0;
     MinigamesPlayed         = 0;
     MinigamesWonByP1        = 0;
     MinigamesWonByP2        = 0;
     LastMinigameFinishState = LastMinigameFinish.NONE;
     SelectedMinigames       = NewSelectedMinigames;
     Gamemode = NewGamemode;
 }
    public void FinishGame(LastMinigameFinish FinishState)
    {
        if (!MinigameEnded)
        {
            // Detect if the user passed in a bad finish state for the current minigame type
            if (CurrentGamemode == MinigameGamemodeTypes.TWOPLAYERVS)
            {
                if (FinishState == LastMinigameFinish.LOST ||
                    FinishState == LastMinigameFinish.WON)
                {
                    Debug.LogError("Tried to finish a versus game as a singleplayer/coop game!");
                    return;
                }
            }
            else
            {
                if (FinishState == LastMinigameFinish.P1WIN ||
                    FinishState == LastMinigameFinish.P2WIN ||
                    FinishState == LastMinigameFinish.TIE)
                {
                    Debug.LogError("Tried to finish a singleplayer/coop game as a versus game!");
                    return;
                }
            }

            // Since we passed the bad state check, we can finish up the minigame correctly
            MinigameEnded = true;
            DisplayFinishGraphics(FinishState);

            // Only update the game state if it actually exists (in the case the minigame is launched from scene in editor,
            // the game state WILL NOT be valid
            if (GameState.Instance.IsGameStateValid())
            {
                // if we have played numGamesToPlay number of games, then go to the EndScreen scene. Otherwise, go back
                // to the minigame launcher
                GameState.Instance.FinishMinigame(FinishState);

                if (GameState.Instance.MinigamesPlayed >= GameState.Instance.SelectedMinigames.Count ||
                    GameState.Instance.MinigamesWonByP1 > (GameState.Instance.SelectedMinigames.Count / 2) ||
                    GameState.Instance.MinigamesWonByP2 > (GameState.Instance.SelectedMinigames.Count / 2))
                {
                    Debug.Log("Going back to the end screen");
                    StartCoroutine(GoToEndScreen());
                }
                else
                {
                    StartCoroutine(GoBackToLauncher());
                }
            }
        }
    }
    public void FinishGame(LastMinigameFinish FinishState)
    {
        if (!MinigameEnded)
        {
            // Detect if the user passed in a bad finish state for the current minigame type
            if (CurrentGamemode == MinigameGamemodeTypes.TWOPLAYERVS)
            {
                if (FinishState == LastMinigameFinish.LOST ||
                    FinishState == LastMinigameFinish.WON)
                {
                    Debug.LogError("Tried to finish a versus game as a singleplayer/coop game!");
                    return;
                }
            }
            else
            {
                if (FinishState == LastMinigameFinish.P1WIN ||
                    FinishState == LastMinigameFinish.P2WIN ||
                    FinishState == LastMinigameFinish.TIE)
                {
                    Debug.LogError("Tried to finish a singleplayer/coop game as a versus game!");
                    return;
                }
            }

            // Since we passed the bad state check, we can finish up the minigame correctly
            MinigameEnded = true;
            DisplayFinishGraphics(FinishState);

            // Only update the game state if it actually exists (in the case the minigame is launched from scene in editor,
            // the game state WILL NOT be valid
            if (GameState.Instance.IsGameStateValid())
            {
                GameState.Instance.FinishMinigame(FinishState);
                StartCoroutine(GoBackToLauncher());
            }
        }
    }