示例#1
0
        public void EndTurn()
        {
            foreach (var item in Units)
            {
                if (item.TotalArmorPoints > 0)
                {
                    item.ArmorPoints = item.TotalArmorPoints;
                }
                item.blockChecker = false;
            }
            //CellGridState = new CellGridState(this);
            CellGridState = new CellGridStateBlockInput(this);
            _cellGridState.OnStateEnter();
            List <Cell> cellTypeRuins = new List <Cell>();

            if (Units.Select(u => u.PlayerNumber).Distinct().Count() == 1)
            {
                return;
            }

            Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnStart(); });
            CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers;
            while (Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).Count == 0)
            {
                CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers;
            }

            if (TurnEnded != null)
            {
                TurnEnded.Invoke(this, new EventArgs());
            }
            uiManager.ChangeTurnUi(CurrentPlayerNumber);
            uiManager.CloseScorePanel();
            uiManager.CloseEnemyScorePanel();
            Debug.Log(string.Format("Player{0} turn", CurrentPlayerNumber));
            Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnStart(); });
            Players.Find(p => p.PlayerNumber.Equals(CurrentPlayerNumber)).Play(this);
            foreach (var item in FindObjectsOfType <NumberUnit>())
            {
                if (item.GetComponent <Unit>().PlayerNumber != CurrentPlayerNumber)
                {
                    var highlighter = item.transform.Find("WhiteTile").GetComponent <SpriteRenderer>();
                    if (highlighter != null)
                    {
                        highlighter.color = new Color(1, 1, 1, 0);
                    }
                }
            }
            foreach (var cell in Cells)
            {
                if (cell.Ruins == true)
                {
                    cellTypeRuins.Add(cell);
                    Debug.Log(cellTypeRuins);
                    // uiManager.UpdateToRuins(cell.gameObject);
                }

                /*if(cell.Temple == true)
                 * {
                 *  cell.Temple = false;
                 *  uiManager.UpdateToRuins(cell.gameObject);
                 *  cell.Ruins = true;
                 * }
                 */
            }
            if (cellTypeRuins.Count() == 4)
            {
                Random random         = new Random();
                var    randomizedCell = random.Next(cellTypeRuins.Count);
                Debug.Log(cellTypeRuins[randomizedCell]);
                cellTypeRuins[randomizedCell].Ruins  = false;
                cellTypeRuins[randomizedCell].Temple = true;

                if (cellTypeRuins[randomizedCell].Ruins == false)
                {
                    uiManager.UpdateToRuins(cellTypeRuins[randomizedCell].gameObject);
                    Debug.Log("Ruiny");
                }
                if (cellTypeRuins[randomizedCell].Temple == true)
                {
                    uiManager.UpdateToTample(cellTypeRuins[randomizedCell].gameObject);
                    Debug.Log("Temple");
                }
            }
        }
示例#2
0
 private void OnMouseExit()
 {
     uiManager.CloseEnemyScorePanel();
     enemyScorePanel.RestEvents();
 }