Esempio n. 1
0
    IEnumerator StartEncounter()
    {
        yield return(new WaitForSeconds(2f));

        CinemachineCamera.GetCameras();
        sortedUnits = unsortedUnits.OrderByDescending(o => o.currentInitiative).ToList();
        foreach (TacticsMovement u in sortedUnits)
        {
            u.AllocateTile();
            order.Enqueue(u);
        }
        OnEncounterStart(order.Peek()); //Alert all that the encounter has started.

        foreach (Unit u in order)
        {
            if (u.unitInfo.faction == Factions.players)
            {
                players.Add(u);
            }
            if (u.unitInfo.faction == Factions.enemies)
            {
                enemies.Add(u);
            }
        }

        StartTurn();
        yield break;
    }
Esempio n. 2
0
    static void StartTurn()
    {
        currentUnit = order.Peek();
        currentUnit.ResetActions();
        order.Peek().BeginTurn();
        GameObject selector = GameObject.FindGameObjectWithTag("selector");

        selector.transform.SetParent(currentUnit.transform, false);
        actionUIManager.UpdateActions(currentUnit.GetComponent <TacticsMovement>());
        CinemachineCamera.FollowUnit(currentUnit.GetComponent <TacticsMovement>());
        OnTurnStart(currentUnit);
        CombatLog.UpdateCombatLog(currentUnit.name + "(" + currentUnit.gameObject.GetInstanceID() + ")" + " starts turn.");
    }