public NotifyPathAggregateWhenEnemiesAreSpawned(EnemiesAggregate enemy, PathFinderAggregate pathFinder) { enemy.Events .OfType <EnemiesEvent, EnemiesEvent.EnemySpawned>() .DelayFrame(1) .Subscribe(spawned => HandleEnemiesSpawnedEvent(spawned, pathFinder)); }
public IncreaseScrapWhenEnemyDestroyed(EnemiesAggregate enemies, ScrapWalletAggregate scrapWallet, int scrapAmount) { enemies.Events .OfType <EnemiesEvent, EnemiesEvent.EnemyDestroyed>() .Subscribe(_ => scrapWallet.Increase(scrapAmount)); }
public TimeIntegration(EnemiesAggregate enemies) { var timeEvents = Observable.EveryUpdate().Select(_ => new TimeEvent()); timeEvents.Subscribe(enemies.TimeObserver); }