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); } }
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>"); } }
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"); }
// 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); }
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); }
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(); }
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; }