예제 #1
0
 private void Next()
 {
     _currentIndex++;
     _currentIndex %= _syncs.Count;
     _next          = _syncs[_currentIndex];
     _nextFireTime  = (_timeBetweenFires / _syncs.Count) + Time;
 }
예제 #2
0
 public void AddSync(SequencedFireControl sync)
 {
     _syncs.Add(sync);
     if (_syncs.Count == 1)
     {
         _currentIndex = 0;
         _next         = _syncs[_currentIndex];
     }
 }
예제 #3
0
 public void RemoveSync(SequencedFireControl sync)
 {
     _syncs.Remove(sync);
 }
예제 #4
0
 public void OnFire(SequencedFireControl sync)
 {
     Next();
 }
예제 #5
0
 public bool CanFire(SequencedFireControl sync)
 => sync == _next && _nextFireTime <= Time;