Beispiel #1
0
 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)));
     }
 }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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));
 }