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; }
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."); }