using System; using Unity.VisualScripting; using UnityEngine; using VContainer; using VContainer.Unity; public class GameScreenController: IGameScreenController { GameScreenView gameScreenView; [Inject] private IScoreService IscoreService; [Inject] private IPauseScreenController IpauseScreenController; [Inject] private IInputReader IinputReader; [Inject] private IAudioController IaudioController; public GameScreenController(GameScreenView _gameScreenView,IScoreService _IscoreService,IPauseScreenController _IpauseScreenController) { this.gameScreenView = _gameScreenView; IscoreService = _IscoreService; IpauseScreenController=_IpauseScreenController; IscoreService.OnScoreChange += UpdateScore; gameScreenView.pauseBtn.onClick.AddListener(OnPauseButtonClicked); } private void UpdateScore(int score) { Debug.Log("calling Score"); gameScreenView.UpdateScore(score); } public void ShowGameScreen() { gameScreenView.Show(); } public void HideGameScreen() { gameScreenView.Hide(); } public void OnPauseButtonClicked() { IaudioController.PlayBtnPressedSound(); Time.timeScale = 0f; IinputReader.LockInput(); IpauseScreenController.ShowPauseScreen(); } } public interface IGameScreenController { void ShowGameScreen(); void HideGameScreen(); }