Files
HelixJump/Assets/Scripts/UI/DeathScreenController.cs
2025-12-15 21:51:34 +05:45

51 lines
1.5 KiB
C#

using System;
using UnityEngine;
using UnityEngine.SceneManagement;
using VContainer;
using VContainer.Unity;
public class DeathScreenController:IDeathScreenController
{
private DeathScreenView deathScreenView;
[Inject] private IScoreService IscoreService;
[Inject] private IInputReader IinputReader;
[Inject] private IAudioController IaudioController;
[Inject] private IGameSession IgameSession;
[Inject] private IGameScreenController IgameScreenController;
public DeathScreenController(DeathScreenView _deathScreenView)
{
deathScreenView = _deathScreenView;
deathScreenView.restartBtn.onClick.AddListener(OnRestartButtonClicked);
deathScreenView.exitBtn.onClick.AddListener(OnExitButtonClicked);
}
public void ShowDeathScreen()
{
IgameScreenController.HideGameScreen();
deathScreenView.Show(IscoreService.score,IscoreService.highScore);
}
private void OnExitButtonClicked()
{
Debug.Log("Exit Button Clicked");
IinputReader.UnlockInput();
IaudioController.PlayBtnPressedSound();
IgameSession.showStartScreen = true;
SceneManager.LoadScene(0);
}
private void OnRestartButtonClicked()
{
Debug.Log("Restart Button Clicked");
IinputReader.UnlockInput();
IaudioController.PlayBtnPressedSound();
IgameSession.showStartScreen = false;
SceneManager.LoadScene(0);
}
}
public interface IDeathScreenController
{
void ShowDeathScreen();
}