public void Initialize(GameSettings gameSettings, InputController inputController, LocalStorage.LocalStorage localStorage, SoundController soundController, ISequenceChecker sequenceChecker, IPointsCalculator pointsCalculator) { _gameSettings = gameSettings; _inputController = inputController; _localStorage = localStorage; _soundController = soundController; _sequenceChecker = sequenceChecker; _pointsCalculator = pointsCalculator; _gemSelectionController = new GemSelectionController(_inputController); _gridController = gameObject.AddComponent <GridController>(); _gridController.Initialize(_gameGrid, _gameSettings, sequenceChecker); _gemSelectionController.OnSelectionComplete.AddListener( (first, second) => StartCoroutine(ChangeGemsPosition(first, second))); _gemSelectionController.OnSelectionInvalid.AddListener(InvalidMove); _gridController.OnSequence.AddListener(CalculatePoints); ContextProvider.Context.OnPause.AddListener(Pause); }
public PointsController(LocalStorage.LocalStorage localStorage, GameSettings gameSettings, GameController gameController) { var level = localStorage.GetLevel(); Goal = gameSettings.StartGoal + (gameSettings.GoalStep * level); _gameController = gameController; gameController.OnScoreUpdate.AddListener(CompareToGoal); }