コード例 #1
0
    public static void SwitchTurn(PlayerActionScript player)
    {
        UnitActionScript unit = turnTeam.Peek();

        if (turnTeam.Contains(player))
        {
            UnitActionScript[] tempTurns = turnTeam.ToArray();
            turnTeam = new Queue <UnitActionScript>();
            turnTeam.Enqueue(player);
            foreach (UnitActionScript tact in tempTurns)
            {
                // Debug.Log("checking: "+tact+" != "+player+" ->"+ (tact != player));
                if (tact != player)
                {
                    turnTeam.Enqueue(tact);
                    PrintTurnQueue();
                }
            }
            int temp = unit.remainingActionPoints;

            unit.EndTurn();
            unit.DoReset();
            unit.remainingActionPoints = temp;
            StartTurn(false);
        }
        else
        {
            Debug.Log("selected player can't move in this turn");
        }
        PrintTurnQueue();
    }
コード例 #2
0
 public static Collider GetCurrentPlayer()
 {
     if (turnTeam != null && turnTeam.Count > 0)
     {
         UnitActionScript tact = turnTeam.Peek();
         if (tact != null)
         {
             return(tact.GetComponentInParent <Collider>());
         }
     }
     return(null);
 }
コード例 #3
0
    public static void EndTurn()
    {
        UnitActionScript unit = turnTeam.Dequeue();

        unit.EndTurn();
        if (turnTeam.Count > 0)
        {
            StartTurn(false);
        }
        else
        {
            Debug.Log("Turn ended");
            string team = turnKey.Dequeue();
            turnKey.Enqueue(team);
            InitTeamTurnQueue();
        }
    }
コード例 #4
0
    public static void AddUnit(UnitActionScript unit)
    {
        List <UnitActionScript> list;

        if (!units.ContainsKey(unit.tag))
        {
            list            = new List <UnitActionScript>();
            units[unit.tag] = list;

            if (!turnKey.Contains(unit.tag))
            {
                Debug.Log("adding unit " + unit.name);
                turnKey.Enqueue(unit.tag);
                Debug.Log("turnKey has " + turnKey.Count + " elements");
            }
        }
        else
        {
            list = units[unit.tag];
        }

        list.Add(unit);
    }
コード例 #5
0
 public static void RemoveUnit(UnitActionScript unit)
 {
     //implementarla se un'unità può essere rimossa dal gioco
 }