예제 #1
0
    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);
        }
    }
예제 #2
0
 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;
 }
예제 #3
0
 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);
     }
 }
예제 #4
0
            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);
            }
예제 #5
0
 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);
 }
예제 #6
0
 void RPCSetHeroName(int ID, string name)
 {
     HeroNames.SetHeroName(ID, name);
 }
예제 #7
0
    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();
        }
    }