Beispiel #1
0
        public GameState(
            GameRoundEntity owner,
            GameStateModel model,
            UserInputModel userInputModel,
            JesterEntity jesterEntity,
            AudioService audioService,
            ParticleService particleService)
            : base(owner)
        {
            _model           = model;
            _userInputModel  = userInputModel;
            _jesterEntity    = jesterEntity;
            _audioService    = audioService;
            _particleService = particleService;

            _audioService.ResetPausedSlots();
            _particleService.ResetPausedSlots();

            _userInputModel.OnPause
            .Subscribe(_ => model.IsPaused.Value = !model.IsPaused.Value)
            .AddTo(owner);

            _jesterEntity.OnKicked
            .Subscribe(_ => model.OnRoundStart.Execute())
            .AddTo(owner);

            _jesterEntity.OnLanded
            .Subscribe(_ => model.OnRoundEnd.Execute())
            .AddTo(owner);

            _model.IsPaused
            .Subscribe(OnPauseChanged)
            .AddTo(owner);
        }