Example #1
0
 public void Tick(int budget)
 {
     while (budget > 0 && _energy > 0)
     {
         Core core = _grid.ListOfEntries.Select(e => e.Core).OrderByDescending(c => c.Energy).First();
         if (core.Energy == 0)
         {
             core = _grid.Entries[_nextEnergyReceiver++].Core;
             budget--;
             _energy--;
             core.Energy++;
         }
         Core target = _grid.GetTargetOf(core);
         _exec.ConsumeEnergyUntilExecute(core, target);
         _changeTracker.Add(core);
         _changeTracker.Add(target);
     }
     NotifyChanges();
 }