protected override void ApplicationStarted() { defaultPool = PoolManager.GetPool(); var levelBlueprint = new LevelBlueprint(); var levelEntity = defaultPool.CreateEntity(levelBlueprint); var player = defaultPool.CreateEntity(new PlayerBlueprint(_gameConfiguration.StartingFoodPoints)); var playerView = player.GetComponent <ViewComponent>(); var playerComponent = player.GetComponent <PlayerComponent>(); var levelComponent = levelEntity.GetComponent <LevelComponent>(); levelComponent.Level.DistinctUntilChanged() .Subscribe(x => { playerView.View.transform.position = Vector3.zero; SetupLevel(levelComponent); }); _eventSystem.Receive <PlayerKilledEvent>() .Delay(TimeSpan.FromSeconds(_gameConfiguration.IntroLength)) .Subscribe(x => { levelBlueprint.UpdateLevel(levelComponent, 1); playerComponent.Food.Value = _gameConfiguration.StartingFoodPoints; SetupLevel(levelComponent); }); }
public override void EventTriggered(ExitReachedEvent eventData) { var movementComponent = eventData.Player.GetComponent <MovementComponent>(); movementComponent.StopMovement = true; var levelComponent = _level.GetComponent <LevelComponent>(); var currentLevel = levelComponent.Level.Value; var levelBlueprint = new LevelBlueprint(); levelBlueprint.UpdateLevel(levelComponent, currentLevel + 1); }