Files
YachtDice/Assets/Scripts/UI/Presentation/GameInfoPresenter.cs
T
2026-03-04 06:48:21 +07:00

68 lines
1.6 KiB
C#

using System;
namespace YachtDice.UI.Presentation
{
public sealed class GameInfoPresenter : IDisposable
{
private readonly GameInfoView _view;
public event Action NewGameClicked;
public event Action ShopClicked;
public event Action InventoryClicked;
public GameInfoPresenter(GameInfoView view)
{
_view = view;
}
public void Initialize()
{
_view.OnNewGameClicked += HandleNewGameClicked;
_view.OnShopClicked += HandleShopClicked;
_view.OnInventoryClicked += HandleInventoryClicked;
}
public void Dispose()
{
_view.OnNewGameClicked -= HandleNewGameClicked;
_view.OnShopClicked -= HandleShopClicked;
_view.OnInventoryClicked -= HandleInventoryClicked;
}
public void SetTurnText(int turn, int maxTurns)
{
_view.SetTurnText(turn, maxTurns);
}
public void SetCurrencyText(int amount)
{
_view.SetCurrencyText(amount);
}
public void ShowGameOver(int finalScore)
{
_view.ShowGameOver(finalScore);
}
public void HideGameOver()
{
_view.HideGameOver();
}
private void HandleNewGameClicked()
{
NewGameClicked?.Invoke();
}
private void HandleShopClicked()
{
ShopClicked?.Invoke();
}
private void HandleInventoryClicked()
{
InventoryClicked?.Invoke();
}
}
}