Example #1
0
    public void EndTurn()
    {
        grid.UnpaintAllFaces();

        hasSelecetedUnit = false;
        battleGui.ActionsMenuCanvas.enabled = false;

        //Update Current Team/ Turn
        if (CurrentTeam == TeamsList.Length - 1)
        {
            CurrentTeam = 0;
            CurrentTurn++;
        }

        else
        {
            do
            {
                CurrentTeam++;

                if (CurrentTeam == TeamsList.Length)
                {
                    CurrentTeam = 0;
                    CurrentTurn++;
                }
            }while (UnitsList.Find(unit => unit.Team == CurrentTeam) == null);
        }

        //Update Grid Graph
        foreach (Unit unit in UnitsList)
        {
            unit.hasMoved    = false;
            unit.hasAttacked = false;

            if (unit.Team != CurrentTeam)
            {
                grid.pathGraph.Vertices[unit.currentTile].traversable = false;
                grid.pathGraph.MakeUnwalkable(unit.currentTile);
            }

            else
            {
                grid.pathGraph.Vertices[unit.currentTile].traversable = true;
                grid.pathGraph.MakeWalkable(unit.currentTile);
            }
        }

        //Turn announcement
        status = BattleStatus.Paused;
        // announcements.NextTurn (TeamsList [CurrentTeam] + "'s turn");
        announcements.NextTurn("Next Turn");
    }