public UnitSetUnitChange(UnitSetBase parent, int index, UnitChange change) : base(parent) { _change = change ?? throw new ArgumentNullException(nameof(change)); _index = index; _activeUnit = _change.actionsRemaining > 0; }
public UnitSetNewTurn(UnitSetBase parent) : base(parent) { for (int i = 0; i < parent.numberOfUnits; ++i) { _units.Add(new UnitNewTurn(parent.GetUnit(i))); } }
public static int CountActiveUnits(this UnitSetBase self) { int total = 0; for (int i = 0; i < self.numberOfUnits; ++i) { if (self.GetUnit(i).actionsRemaining > 0) { ++total; } } return(total); }
public static UnitBase GetActiveUnit(this UnitSetBase self, int index, out int masterListIndex) { for (int i = 0, matchIndex = 0; i < self.numberOfUnits; ++i) { var currentUnit = self.GetUnit(i); if (currentUnit.actionsRemaining > 0) { if (matchIndex == index) { masterListIndex = i; return(currentUnit); } ++matchIndex; } } throw new System.IndexOutOfRangeException(nameof(index)); }
public UnitSetNewUnitChange(UnitSetBase parent, UnitBase newUnit) : base(parent) { _newUnit = newUnit ?? throw new ArgumentNullException(nameof(newUnit)); }