Ejemplo n.º 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);
    }