59 lines
2.1 KiB
C#
59 lines
2.1 KiB
C#
using Darkmatter.Core;
|
|
using System;
|
|
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
using VContainer;
|
|
|
|
namespace Darkmatter.Presentation
|
|
{
|
|
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;
|
|
[Inject] private ILeaderBoardController IleaderBoardController;
|
|
public DeathScreenController(DeathScreenView _deathScreenView)
|
|
{
|
|
deathScreenView = _deathScreenView;
|
|
deathScreenView.restartBtn.onClick.AddListener(OnRestartButtonClicked);
|
|
deathScreenView.exitBtn.onClick.AddListener(OnExitButtonClicked);
|
|
deathScreenView.leaderBoardBtn.onClick.AddListener(OnLeaderBoardBtnClicked);
|
|
}
|
|
|
|
private void OnLeaderBoardBtnClicked()
|
|
{
|
|
IaudioController.PlayBtnPressedSound();
|
|
IleaderBoardController.ShowLeaderBoard();
|
|
}
|
|
|
|
public void ShowDeathScreen()
|
|
{
|
|
IgameScreenController.HideGameScreen();
|
|
IleaderBoardController.UpdateLeaderBoardScore(IscoreService.score); //update leaderboard with current score when player dies
|
|
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);
|
|
}
|
|
}
|
|
}
|