示例#1
0
    public void ShowCampaignBoard(string boardToShow)
    {
        levelsCommonAssets.SetActive(true);

        GameObject currentBoard = levelsGroup.transform.Find(boardToShow).gameObject;

        currentBoard.SetActive(true);

        currentBoard.transform.Find("StarsInfo").transform.Find("StarsObtained").GetComponent <Text>().text = CampaignData.GetBoardStars(currentBoard.name).ToString();

        currentBoardLevels = currentBoard.transform.Find("LevelSlider").transform.GetChild(0).transform.GetChild(0).gameObject;


        List <GameObject> levelButtons = new List <GameObject>();

        foreach (Transform child in currentBoardLevels.transform)
        {
            levelButtons.Add(child.gameObject);
        }

        for (int i = 0; i < levelButtons.Count; i++)
        {
            GameObject btn = levelButtons[i];

            //Handle Transparency
            string lvlNum        = btn.name.Substring(6, btn.name.Length - 6);
            int    prevLevel     = (int.Parse(lvlNum.Substring(2, lvlNum.Length - 2))) - 1;
            string prevLevelName = lvlNum.Substring(0, 1) + "-" + prevLevel;

            int levelStarRating = CampaignData.GetLevelStats(lvlNum).starRating;
            //Debug.Log(lvlNum + " Stars: " + levelStarRating);


            //If level completed
            if (CampaignData.GetLevelStats(lvlNum).isComplete)
            {
                btn.transform.Find("CheckMark").gameObject.SetActive(true);

                if (levelStarRating == 1)
                {
                    btn.transform.Find("1Star").gameObject.SetActive(true);
                }
                else if (levelStarRating == 2)
                {
                    btn.transform.Find("2Stars").gameObject.SetActive(true);
                }
                else if (levelStarRating == 3)
                {
                    btn.transform.Find("3Stars").gameObject.SetActive(true);
                }
                else
                {
                    btn.transform.Find("1Star").gameObject.SetActive(false);
                    btn.transform.Find("2Stars").gameObject.SetActive(false);
                    btn.transform.Find("3Stars").gameObject.SetActive(false);
                }
            }

            if (prevLevel != 0 && !CampaignData.GetLevelStats(prevLevelName).isComplete ||
                (lvlNum == "2-1" && !CampaignData.GetHeroBoardStats(HeroManager.Hero.Multiplier).isComplete) ||
                (lvlNum == "3-1" && !CampaignData.GetHeroBoardStats(HeroManager.Hero.Demolition).isComplete))
            {
                btn.GetComponent <Button>().enabled = false;
                Color temp = btn.GetComponent <Image>().color;
                temp.a = 0.5f;
                btn.GetComponent <Image>().color = temp;

                Color textTemp = btn.transform.Find("LevelText").GetComponent <Text>().color;
                textTemp.a = 0.5f;
                btn.transform.Find("LevelText").GetComponent <Text>().color = textTemp;
            }
            else if (prevLevel != 0 && CampaignData.GetLevelStats(prevLevelName).isComplete)
            {
                btn.GetComponent <Button>().enabled = true;
                Color temp = btn.GetComponent <Image>().color;
                temp.a = 1f;
                btn.GetComponent <Image>().color = temp;

                Color textTemp = btn.transform.Find("LevelText").GetComponent <Text>().color;
                textTemp.a = 1f;
                btn.transform.Find("LevelText").GetComponent <Text>().color = textTemp;
            }
        }

        //If completed all previous level, unlocked hero board (later add check for # of stars required)
        string lastLevelName = levelButtons[levelButtons.Count - 1].name.Split('_')[1];

        if (CampaignData.GetLevelStats(lastLevelName).isComplete&& CampaignData.EnoughBoardStars(currentBoard.name))
        {
            //Debug.Log("Star Count: " + CampaignData.GetBoardStars(currentBoard.name));
            currentBoard.transform.Find("Locked").gameObject.SetActive(false);
        }
        //Debug.Log("Star Count: " + CampaignData.GetBoardStars(currentBoard.name));
        boardSelectMenu.SetActive(false);
    }
示例#2
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;
            }
        }
    }