Ejemplo n.º 1
0
    IEnumerator ShowOutcomeText(string mode, float waitDelay)
    {
        showingOutcome = true;
        yield return(new WaitForSeconds(waitDelay));

        if (mode == "classic")
        {
            scoreNumber.text = GameManager.Instance.GetPlayerPoints() + " / " + GameManager.Instance.GetTotalPoints();

            if (GameManager.Instance.PlayerWon() == "W")
            {
                //Debug.Log("Game Won");
                gameWonImage.SetActive(true);

                gameLostImage.SetActive(false);
                drawImage.SetActive(false);
            }
            else if (GameManager.Instance.PlayerWon() == "L")
            {
                //Debug.Log("Game Lost");
                gameLostImage.SetActive(true);

                gameWonImage.SetActive(false);
                drawImage.SetActive(false);
            }
            else
            {
                //Debug.Log("Draw");
                drawImage.SetActive(true);

                gameWonImage.SetActive(false);
                gameLostImage.SetActive(false);
            }
        }
        else if (mode == "2player")
        {
            if (GameManagerTwoPlayer.Instance.PlayerWon() == "W1")
            {
                //Debug.Log("P1 Wins");
                playerOneWinsImage.SetActive(true);

                playerTwoWinsImage.SetActive(false);
                drawImage.SetActive(false);
            }
            else if (GameManagerTwoPlayer.Instance.PlayerWon() == "W2")
            {
                //Debug.Log("P2 Wins");
                playerTwoWinsImage.SetActive(true);

                playerOneWinsImage.SetActive(false);
                drawImage.SetActive(false);
            }
            else
            {
                //Debug.Log("Draw");
                drawImage.SetActive(true);

                playerOneWinsImage.SetActive(false);
                playerTwoWinsImage.SetActive(false);
            }

            p1ScoreNumber.text = GameManagerTwoPlayer.Instance.GetPlayerPoints("One") + " / " + GameManagerTwoPlayer.Instance.GetTotalPoints();
            p2ScoreNumber.text = GameManagerTwoPlayer.Instance.GetPlayerPoints("Two") + " / " + GameManagerTwoPlayer.Instance.GetTotalPoints();
        }
        else if (mode == "campaign")
        {
            string sceneName = SceneManager.GetActiveScene().name;
            string levelName = sceneName.Split('_')[1];



            if (CampaignGameManager.Instance.PlayerWon() == "L")
            {
                boardFailedImage.SetActive(true);
                boardCompleteImage.SetActive(false);
            }
            else
            {
                boardCompleteImage.SetActive(true);
                boardFailedImage.SetActive(false);
                Debug.Log("Won");

                int newStarRating = 0;
                Debug.Log(CampaignGameManager.Instance.PlayerWon());

                if (CampaignGameManager.Instance.PlayerWon() == "S01")
                {
                    star01.transform.GetChild(2).gameObject.SetActive(true);

                    newStarRating = 1;
                }
                else if (CampaignGameManager.Instance.PlayerWon() == "S02")
                {
                    star01.transform.GetChild(2).gameObject.SetActive(true);
                    star02.transform.GetChild(2).gameObject.SetActive(true);

                    newStarRating = 2;
                }
                else if (CampaignGameManager.Instance.PlayerWon() == "S03")
                {
                    star01.transform.GetChild(2).gameObject.SetActive(true);
                    star02.transform.GetChild(2).gameObject.SetActive(true);
                    star03.transform.GetChild(2).gameObject.SetActive(true);

                    newStarRating = 3;
                }


                LevelStats currentStats = CampaignData.GetLevelStats(levelName);
                int        starChange   = 0;

                if (!currentStats.isComplete)
                {
                    currentStats.isComplete = true;
                }
                if (currentStats.starRating < newStarRating)
                {
                    starChange = newStarRating - currentStats.starRating;
                    currentStats.starRating = newStarRating; Debug.Log("New Star Rating: " + currentStats.starRating);
                }
                if (currentStats.bestScore < CampaignGameManager.Instance.GetPlayerPoints())
                {
                    currentStats.bestScore = CampaignGameManager.Instance.GetPlayerPoints();
                }

                CampaignData.SetLevelStats(levelName, currentStats);


                if (levelName[0] == '1')
                {
                    CampaignData.UpdateBoardStars("BoardOne", starChange);
                }
                else if (levelName[0] == '2')
                {
                    CampaignData.UpdateBoardStars("BoardTwo", starChange);
                }
                else if (levelName[0] == '3')
                {
                    CampaignData.UpdateBoardStars("BoardThree", starChange);
                }


                if (!didSave)
                {
                    SaveLoad.Save();
                    didSave = true;
                }
            }
            scoreNumber.text = "" + CampaignGameManager.Instance.GetPlayerPoints();

            if (CampaignData.GetLevelStats(levelName).isComplete)
            {
                Color temp = nextLevelButton.GetComponent <Image>().color;
                temp.a = 1f;
                nextLevelButton.GetComponent <Image>().color = temp;

                nextLevelButton.GetComponent <Button>().enabled = true;
            }
            else
            {
                Color temp = nextLevelButton.GetComponent <Image>().color;
                temp.a = 0.5f;
                nextLevelButton.GetComponent <Image>().color = temp;

                nextLevelButton.GetComponent <Button>().enabled = false;
            }
        }
    }