public void CopyDataToSave() { playerArmy = new PlayerArmy(); if (Race != null) { playerArmy.faction = Race; } if (HeroName != null && HeroName != string.Empty) { playerArmy.HeroName = HeroName; } else { playerArmy.HeroName = HeroNames.GetRandomHeroName(); HeroName = playerArmy.HeroName; } if (ArmyBuilder.Instance != null && ArmyBuilder.Instance.Hero != null) { playerArmy.heroID = ArmyBuilder.Instance.Hero.myUnitID; } else { playerArmy.heroID = null; } playerArmy.unitIDs = new List <UnitID>(); foreach (Unit u in UnitsList) { playerArmy.unitIDs.Add(u.myUnitID); } }
public void LoadAIArmyToGame(int points) { LoadAIArmy(points); RecreateUnitsList(); FindObjectOfType <VERY_POORLY_WRITTEN_CLASS>().Okay(); HeroNames.SetHeroName(TurnManager.Instance.PlayerToMove, HeroName); Player.Players[1].Race = Race; }
public void LoadArmyToGame() { LoadPlayerArmy(); RecreateUnitsList(); FindObjectOfType <VERY_POORLY_WRITTEN_CLASS>().Okay(); StartCoroutine(CloseWindow(GameObject.Find("LoadWindowPanel"))); if (GameStateManager.Instance.MatchType == MatchTypes.Online) { GameStateManager.Instance.GetComponent <PhotonView>().RPC("RPCSetHeroName", PhotonTargets.All, TurnManager.Instance.PlayerToMove, HeroName); } else { HeroNames.SetHeroName(TurnManager.Instance.PlayerToMove, HeroName); } }
public Unit FindHero(HeroNames name, int playerNumber = 1) { Unit target = null; if (name == HeroNames.Unnamed) { Debug.LogError("Unnamed hero error in FindHero()"); return(null); } // No known player: if (playerNumber == -1) { foreach (Player player in players) { foreach (Unit unit in player.heroes) { if (HeroNameMatch(unit, name)) { target = unit; } break; } if (target != null) { break; } } } else { if (players.Count > playerNumber) { foreach (Unit unit in players[playerNumber].heroes) { if (HeroNameMatch(unit, name)) { target = unit; } break; } } else { Debug.LogErrorFormat("Player index {0} out of array range {1}.", playerNumber, players.Count); } } return(target); }
bool HeroNameMatch(Unit unit, HeroNames matchName) { if (unit.IsHero()) { HeroNames statName = unit.hero.heroName; if (matchName == statName) { return(true); } } else { Debug.LogWarning("Unit is not hero, but it should be."); } return(false); }
void RPCSetHeroName(int ID, string name) { HeroNames.SetHeroName(ID, name); }
public void OK() { CameraController.Instance.SetCurrentViewTo(0); CombatController.Instance.MakeAIWait(3f); this.transform.parent.parent.gameObject.SetActive(false); if (TurnManager.Instance.PlayerToMove == 0 && GameStateManager.Instance.MatchType != MatchTypes.Online) { TurnManager.Instance.TurnCount = -1; // Pedestal.enabled = true; //heroChoicer.NextPlayer(); TurnManager.Instance.NewTurn(false); SkyboxChanger.Instance.SetSkyboxTo(SkyboxChanger.Instance.PregameSkyboxDefault); SaveLoadManager.Instance.UnitsList.Clear(); foreach (Transform child in UnitPanel.transform) { if (Application.isEditor) { DestroyImmediate(child.gameObject); } else { Destroy(child.gameObject); } } if (Player.Players[1].Type == PlayerType.AI) { SaveLoadManager.Instance.LoadAIArmyToGame(SaveLoadManager.Instance.currentSaveValue); Player.Players[1].Race = SaveLoadManager.Instance.Race; } else { LoadWindow.SetActive(true); LoadWindow.GetComponent <CanvasGroup>().alpha = 1f; LoadWindow.GetComponent <CanvasGroup>().interactable = true; LoadWindow.GetComponent <CanvasGroup>().blocksRaycasts = true; } } else { if (GameStateManager.Instance.MatchType == MatchTypes.Online) { var Text1 = FindObjectOfType <CurrentPlayerInfo>(); Text1.GetComponent <Text>().text = Player.Players[Mathf.Abs(TurnManager.Instance.PlayerHavingTurn - 1)].Colour.ToString() + "'s turn"; Text1.isOff = true; var Text3 = FindObjectOfType <TurnNumberText>(); Text3.GetComponent <Text>().text = "Waiting for opponent..."; Text3.isOff = true; Tile.areDropzonesOn = false; } else { TurnManager.Instance.NewTurn(true); } HeroNames.SetAIHeroesNameDifferent(); foreach (Tile tile in FindObjectsOfType <Tile>()) { tile.GetComponent <Renderer>().material.color = Color.white; } CameraController.Instance.StartCoroutine(CameraController.Instance.CheckIfPositionAndRotationMatchDesired()); // UnitPanel.transform.parent.gameObject.SetActive(false); } if (GameStateManager.Instance.MatchType == MatchTypes.Online) { TurnManager.Instance.PlayerEndedPreGame(); } }