Beispiel #1
0
 public void TimeTick()
 {
     if (TimeTickEvent != null)
     {
         TimeTickEvent.Invoke();
     }
 }
Beispiel #2
0
        private void Refuel(TimeTickEvent tickEvent)
        {
            if (_currentFuelLevel < MaxFuelLevel)
            {
                var refuelAmount = Math.Min(RefuelPerSecond * tickEvent.DeltaTime, MaxFuelLevel - _currentFuelLevel);

                _currentFuelLevel += refuelAmount;

                _events.OnNext(new RefueledEvent(refuelAmount, _currentFuelLevel));
            }
        }
Beispiel #3
0
        private void AddLift(TimeTickEvent tickEvent)
        {
            if (_currentFuelLevel > 0)
            {
                var fuelConsumed = Math.Min(FuelConsumedPerSecond * tickEvent.DeltaTime, _currentFuelLevel);

                _currentFuelLevel -= fuelConsumed;

                var liftForce = ForcePerSecond * tickEvent.DeltaTime;

                _events.OnNext(new LiftAddedEvent(liftForce));
                _events.OnNext(new FuelConsumedEvent(fuelConsumed, _currentFuelLevel));
            }
            else
            {
                EndLift();
            }
        }