public StateSequencer(IGameStateUseCase gameStateUseCase, ReadyView readyView, DrawView drawView, AttackView attackView, DamageView damageView, ClearView clearView, FailView failView) { _states = new List <BaseState> { readyView, drawView, attackView, damageView, clearView, failView, }; _disposable = new CompositeDisposable(); _tokenSource = new CancellationTokenSource(); foreach (var state in _states) { state.InitAsync(_tokenSource.Token).Forget(); } _gameStateUseCase = gameStateUseCase; _gameStateUseCase.GameState() .Subscribe(gameState => { Reset(gameState); TickAsync(gameState, _tokenSource.Token).Forget(); }) .AddTo(_disposable); }
private void Construct(GameType gameType, SeController seController, SceneLoader sceneLoader, ClearView clearView, FreePlayNextView freePlayNextView, IClearDataUseCase clearDataUseCase) { _gameType = gameType; _seController = seController; _sceneLoader = sceneLoader; _clearView = clearView; _freePlayNextView = freePlayNextView; _clearDataUseCase = clearDataUseCase; }