示例#1
0
    public void SavePosition()
    {
        PlayerMeta  player = BaseSaver.GetPlayer();
        List <Unit> units  = new List <Unit>();

        foreach (Transform child in chrSelect.transform)
        {
            foreach (Transform chld in child)
            {
                foreach (Unit unt in player.characters)
                {
                    if (chld.name.Equals("CharName") && chld.GetComponent <TextMeshProUGUI>().text.Equals(unt.characterMoniker))
                    {
                        if (!units.Where(un => un.characterMoniker.Equals(unt.characterMoniker)).Any())
                        {
                            units.Add(unt);
                        }
                    }
                }
            }
        }
        units.Reverse();
        player.characters = units.ToArray();
        //player.characters.Reverse();
        Debug.Log("Player Units: " + player.characters.Length.ToString());
        BaseSaver.PutPlayer(player);
    }
    public void PutSelect(string selected)
    {
        if (this.selected == selected)
        {
            PlayerMeta player = BaseSaver.GetPlayer();
            player.lastDest = selected;
            BaseSaver.PutPlayer(player);

            /*
             * TODO: This is where the board eventually needs to be laoded.
             * For now we have a blank board with a few chars
             */
            BaseSaver.PutBoard(MapStatic.ReturnTestBoardDests()[selected]);
            SceneManager.LoadScene("BattleScene");
        }
        else
        {
            if (this.selected.Length > 0)
            {
                ByName(this.selected).transform.GetChild(0).gameObject.SetActive(false);
            }
            this.selected = selected;
            ByName(this.selected).transform.GetChild(0).gameObject.SetActive(true);
        }
    }
示例#3
0
    public void PutSelect(string selected)
    {
        PlayerMeta player        = BaseSaver.GetPlayer();
        BoardMeta  selectedBoard = BaseSaver.GetBoards()[(int)(StoryStatic.Dests)Enum.Parse(typeof(StoryStatic.Dests), selected)];

        if (this.selected == selected && !CompDests().Contains(selected))
        {
            player.lastDest = selected;
            BaseSaver.PutPlayer(player);
            BaseSaver.PutBoard(selectedBoard);
            MusicTransitionToBattle();
            SceneManager.LoadScene("BattleScene");
            //MusicTransitionToBattle();
        }
        else
        {
            BoardMeta bMeta = BaseSaver.GetBoard();
            if (this.selected.Length > 0)
            {
                ByName(this.selected).transform.GetChild(0).gameObject.SetActive(false);
            }
            this.selected = selected;
            ByName(this.selected).transform.GetChild(0).gameObject.SetActive(true);

            string mapName = StoryStatic.GetMapName(player.world, player.faction, this.selected);

            setDesc("<color=#9BC2C2>" + mapName + "</color>\n\n<color=#CFE4E4>" + selectedBoard.ReturnMapDesc() +
                    "</color>\n<color=#669999>" + CalcArmyString(selectedBoard.enemies) + "</color>");
        }
    }
示例#4
0
    public void UpgradeSelected(ClassNode cNode)
    {
        if (clickedUnit != null)
        {
            clickedUnit = cNode.UpgradeCharacter(clickedUnit);
            clickedUnit.SetCurrentClass(cNode.GetType().ToString());

            PlayerMeta  player   = BaseSaver.GetPlayer();
            Unit        unt      = player.characters.Where(chr => chr.characterName.Equals(clickedUnit.characterName)).First();
            List <Unit> nwRoster = new List <Unit>();
            foreach (Unit rUnt in player.characters)
            {
                if (rUnt.characterMoniker.Equals(clickedUnit.characterMoniker))
                {
                    nwRoster.Add(clickedUnit);
                }
                else
                {
                    nwRoster.Add(rUnt);
                }
            }
            player.characters = nwRoster.ToArray();
            BaseSaver.PutPlayer(player);
            RefreshSelect();
            CharClicked(clickedUnit);
        }
    }
    void EndGame(bool won)
    {
        BoardProxy.instance.gameOverPanel.SetActive(true);
        this.won = won;
        string txt = "Defeat";

        if (won)
        {
            List <UnitProxy> units  = BoardProxy.instance.GetUnits().Where(unit => unit.GetData().GetTeam() == BoardProxy.PLAYER_TEAM).ToList();
            PlayerMeta       player = BaseSaver.GetPlayer();
            List <Unit>      pChars = units.Select(unit => new Unit(unit.GetData())).ToList();
            List <string>    dests  = new List <string>(player.stats.dests);
            foreach (string unlock in BaseSaver.GetBoard().unlocks)
            {
                if (!dests.Contains(unlock))
                {
                    dests.Add(unlock);
                    unlkChar = true;
                }
            }
            player.stats.dests = dests.ToArray();
            player.characters  = pChars.ToArray();
            player.stats.dests = dests.ToArray();
            BaseSaver.PutPlayer(player);
            txt = "Victory";
        }
        BoardProxy.instance.gameOverPanel.transform.Find("GameOverHeader").GetComponent <TextMeshProUGUI>().text = txt;
    }
    public void ContinueToScene()
    {
        PlayerMeta  player = BaseSaver.GetPlayer();
        List <Unit> units  = new List <Unit>(player.characters);

        units.Add(selected);
        player.characters = units.ToArray();
        BaseSaver.PutPlayer(player);
        SceneManager.LoadScene("MapScene");
    }
示例#7
0
    // Update is called once per frame
    public void Click(string faction)
    {
        Debug.Log("Click: " + faction);
        string     aiStr  = "\nCampaign: Easy\n";
        GameMeta   game   = BaseSaver.GetGame();
        PlayerMeta player = BaseSaver.GetPlayer();

        player.faction = (Unit.FactionType)Enum.Parse(typeof(Unit.FactionType), faction);

        Color mainColor = HelperScripts.GetColorByFaction(player.faction);

        mainColor.a = .5f;
        GetComponent <Image>().color = mainColor;
        //transform.GetChild(2).GetComponent<Image>().color = HelperScripts.GetColorByFactionBold(player.faction);

        ResetParticles();

        if (finalWorld)
        {
            player.world = GameMeta.World.candy;
            aiStr        = "\nCampaign: Hard\n";
        }
        else
        {
            switch (player.faction)
            {
            case Unit.FactionType.Human: player.world = GameMeta.World.nile; break;

            case Unit.FactionType.Egypt: player.world = GameMeta.World.mountain; break;

            case Unit.FactionType.Cthulhu: player.world = GameMeta.World.pyramid; aiStr = "\nCampaign: Hard\n"; break;

            default: player.world = GameMeta.World.nile; break;
            }
        }

        switch (player.faction)
        {
        case Unit.FactionType.Human: SetParticles(human, true); break;

        case Unit.FactionType.Egypt: SetParticles(egypt, true); break;

        case Unit.FactionType.Cthulhu: SetParticles(cthulhu, true); break;
        }

        BaseSaver.PutPlayer(player);
        desc.text = "- " + faction + " - " + aiStr + "Strategy: " + Unit.GetFactionDesc(player.faction);
        btn.SetActive(true);
    }
示例#8
0
    public void ContinueToScene()
    {
        PlayerMeta  player = BaseSaver.GetPlayer();
        List <Unit> units  = new List <Unit>(player.characters);

        units.Insert(0, selected);
        //units.Add(selected);
        player.characters = units.ToArray();

        Debug.Log("Current Player Chars: " + player.characters.Length.ToString());

        BaseSaver.PutPlayer(player);
        CharAcceptSound();
        SceneManager.LoadScene("MapScene");
    }
    public void SaveMoveToScene(string save)
    {
        BaseSaver.PutSave(save);

        /*
         * Save the player demo objects
         */
        PlayerMeta player   = BaseSaver.GetPlayer();
        string     nxtScene = "MapScene";

        if (player == null)
        {
            player             = new PlayerMeta();
            player.stats.dests = new string[] { "Dest1" };
            BaseSaver.PutPlayer(player);
            nxtScene = "CharSelectScreen";
        }
        //Load the scene
        SceneManager.LoadScene(nxtScene);
    }
示例#10
0
    public void OpenTutorialMsg()
    {
        dialogScreen.SetActive(true);

        BaseSaver.PutSave("sv0");

        /*
         * Save the player demo objects
         */
        PlayerMeta player = BaseSaver.GetPlayer();

        player             = new PlayerMeta();
        player.stats.dests = new string[] { "Dest1" };
        player.faction     = Unit.FactionType.Human;
        player.characters  = new Unit[] { };
        BaseSaver.PutPlayer(player);
        player.characters = new List <Unit>(new Unit[] { Unit.BuildInitial(player.faction, Unit.UnitType.Soldier, BoardProxy.PLAYER_TEAM) }).ToArray();
        player.world      = GameMeta.World.tutorial;
        BaseSaver.PutPlayer(player);

        dialogScreen.GetComponent <TutorialMsgController>().Populate();
    }
示例#11
0
    IEnumerator TimeEndGame(bool won)
    {
        if (!AnimationInteractionController.AllAnimationsFinished())
        {
            yield return(new WaitForSeconds(AnimationInteractionController.AFTER_KILL));
        }

        BoardProxy.instance.gameObject.GetComponent <Grid>().enabled = false;

        BoardProxy.instance.gameOverPanel.SetActive(true);
        BoardProxy.instance.gameOverPanel.transform.GetChild(2).gameObject.SetActive(false);
        BoardProxy.instance.gameOverPanel.transform.GetChild(3).gameObject.SetActive(false);

        /*
         * Replace shit here
         */

        PlayerMeta player = BaseSaver.GetPlayer();
        BoardMeta  brd    = BaseSaver.GetBoard();
        Glossary   glossy = BoardProxy.instance.glossary.GetComponent <Glossary>();

        Unit.FactionType fact = won ? player.faction : brd.enemies[0].GetFactionType();
        switch (fact)
        {
        case Unit.FactionType.Cthulhu:
            BoardProxy.instance.gameOverPanel.transform.GetChild(0).GetComponent <Image>().sprite = glossy.endBattleOverlayCthulhuLeft;
            BoardProxy.instance.gameOverPanel.transform.GetChild(1).GetComponent <Image>().sprite = glossy.endBattleOverlayCthulhuRight;
            break;

        case Unit.FactionType.Egypt:
            BoardProxy.instance.gameOverPanel.transform.GetChild(0).GetComponent <Image>().sprite = glossy.endBattleOverlayEgyptLeft;
            BoardProxy.instance.gameOverPanel.transform.GetChild(1).GetComponent <Image>().sprite = glossy.endBattleOverlayEgyptRight;
            break;

        case Unit.FactionType.Human:
            BoardProxy.instance.gameOverPanel.transform.GetChild(0).GetComponent <Image>().sprite = glossy.endBattleOverlayHumanLeft;
            BoardProxy.instance.gameOverPanel.transform.GetChild(1).GetComponent <Image>().sprite = glossy.endBattleOverlayHumanRight;
            break;

        default:
            BoardProxy.instance.gameOverPanel.transform.GetChild(0).GetComponent <Image>().sprite = glossy.endBattleOverlaySusieLeft;
            BoardProxy.instance.gameOverPanel.transform.GetChild(1).GetComponent <Image>().sprite = glossy.endBattleOverlaySusieRight;
            break;
        }

        GameObject screenChild = BoardProxy.instance.gameOverPanel.transform.GetChild(0).gameObject;

        Vector3 moveToPos    = screenChild.transform.position;
        float   screenHeight = screenChild.GetComponent <RectTransform>().rect.height;

        Vector3 startPosHigh = new Vector3(0, moveToPos.y + screenHeight, moveToPos.z);
        Vector3 startPosLow  = new Vector3(0, moveToPos.y - screenHeight, moveToPos.z);

        BoardProxy.instance.gameOverPanel.transform.GetChild(0).localPosition = startPosHigh;
        BoardProxy.instance.gameOverPanel.transform.GetChild(1).localPosition = startPosLow;

        if (!won)
        {
            BoardProxy.instance.gameOverPanel.transform.GetChild(2).gameObject.SetActive(true);
            BoardProxy.instance.gameOverPanel.transform.GetChild(2).localPosition = startPosHigh;
            iTween.MoveTo(BoardProxy.instance.gameOverPanel.transform.GetChild(2).gameObject, moveToPos, 3f);
        }
        else
        {
            BoardProxy.instance.gameOverPanel.transform.GetChild(3).gameObject.SetActive(true);
            switch (fact)
            {
            case Unit.FactionType.Cthulhu:
                BoardProxy.instance.gameOverPanel.transform.GetChild(3).GetChild(0).GetComponent <Image>().sprite = glossy.endBattleWinOverlayCthulhu1;
                BoardProxy.instance.gameOverPanel.transform.GetChild(3).GetChild(1).GetComponent <Image>().sprite = glossy.endBattleWinOverlayCthulhu2;
                break;

            case Unit.FactionType.Egypt:
                BoardProxy.instance.gameOverPanel.transform.GetChild(3).GetChild(0).GetComponent <Image>().sprite = glossy.endBattleWinOverlayEgypt1;
                BoardProxy.instance.gameOverPanel.transform.GetChild(3).GetChild(1).GetComponent <Image>().sprite = glossy.endBattleWinOverlayEgypt2;
                break;

            case Unit.FactionType.Human:
                BoardProxy.instance.gameOverPanel.transform.GetChild(3).GetChild(0).GetComponent <Image>().sprite = glossy.endBattleWinOverlayHuman1;
                BoardProxy.instance.gameOverPanel.transform.GetChild(3).GetChild(1).GetComponent <Image>().sprite = glossy.endBattleWinOverlayHuman2;
                break;

            default:
                BoardProxy.instance.gameOverPanel.transform.GetChild(3).GetChild(0).GetComponent <Image>().sprite = glossy.endBattleWinOverlayCthulhu1;
                BoardProxy.instance.gameOverPanel.transform.GetChild(3).GetChild(1).GetComponent <Image>().sprite = glossy.endBattleWinOverlayCthulhu2;
                break;
            }
            BoardProxy.instance.gameOverPanel.transform.GetChild(3).localPosition = startPosHigh;
            iTween.MoveTo(BoardProxy.instance.gameOverPanel.transform.GetChild(3).gameObject, moveToPos, 3f);
        }

        iTween.MoveTo(BoardProxy.instance.gameOverPanel.transform.GetChild(0).gameObject, moveToPos, 1f);
        iTween.MoveTo(BoardProxy.instance.gameOverPanel.transform.GetChild(1).gameObject, moveToPos, 1f);


        MusicTransitionToMap();
        this.won = won;
        string txt = "Defeat";

        if (won)
        {
            //Apply inactive unit class bonuses
            if (player.characters.Length > 3)
            {
                List <Unit> inactiveUnits = new List <Unit>(new Unit[] { player.characters[0] });
                if (player.characters.Length > 4)
                {
                    inactiveUnits.Add(player.characters[1]);
                }
                for (int i = 0; i < inactiveUnits.Count; i++)
                {
                    Debug.Log("Applying bonus to: " + inactiveUnits[i].characterMoniker + " - " + inactiveUnits[i].characterName);
                    inactiveUnits[i] = ClassNode.ApplyClassBonusesBattle(inactiveUnits[i], inactiveUnits.ToArray());
                    if (inactiveUnits[i].GetInactiveExpBuff() > 0)
                    {
                        inactiveUnits[i].ApplyInactiveExpBuff();
                    }
                }
            }

            List <UnitProxy> units = BoardProxy.instance.GetUnits().Where(unit => unit.GetData().GetTeam() == BoardProxy.PLAYER_TEAM &&
                                                                          unit.GetData().GetCurrHealth() > 0 && !unit.GetData().GetSummoned()).ToList();
            //PlayerMeta player = BaseSaver.GetPlayer();
            List <Unit> pChars = new List <Unit>(player.characters);
            pChars.Reverse();
            //Remove the top three chars from the roster
            pChars.RemoveAt(0);
            if (pChars.Count > 0)
            {
                pChars.RemoveAt(0);
            }
            if (pChars.Count > 0)
            {
                pChars.RemoveAt(0);
            }
            Debug.Log("pChars Before");
            foreach (Unit unt in pChars)
            {
                Debug.Log(unt.ToString());
            }
            //Fill them back in if they are still on the board
            List <Unit> pCharsBoard = new List <Unit>(new HashSet <Unit>(units.Select(unit => new Unit(unit.GetData()))));
            foreach (Unit unt in pCharsBoard)
            {
                Debug.Log(unt.ToString());
                if (!pChars.Where(pCh => pCh.characterMoniker.Equals(unt.characterMoniker)).Any())
                {
                    pChars.Add(unt);
                }
            }
            Debug.Log("pChars After");
            for (int i = 0; i < pChars.Count(); i++)
            {
                Debug.Log(pChars[i].ToString());
                //pChars[i] = ClassNode.ApplyClassBonusesBattle(pChars[i], inactiveUnits.ToArray());
            }
            List <string> dests = new List <string>(player.stats.dests);
            foreach (string unlock in BaseSaver.GetBoard().unlocks)
            {
                if (!dests.Contains(unlock))
                {
                    dests.Add(unlock);
                    unlkChar = true;
                }
            }
            player.stats.dests = dests.ToArray();
            player.characters  = pChars.ToArray();
            BaseSaver.PutPlayer(player);
            txt = "Victory";
        }
        BoardProxy.instance.gameOverPanel.transform.GetChild(5).GetComponent <TextMeshProUGUI>().text = txt;
    }