Files
YachtDice/Assets/Scripts/UI/Presentation/GameInfoPresenter.cs
T
2026-03-28 12:53:34 +07:00

83 lines
2.0 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 SetRunInfoText(string text)
{
_view.SetRunInfoText(text);
}
public void SetRunHud(string phase, int bet, int stage, int stageCount, int target, int quota, int storedRolls)
{
_view.SetRunHud(phase, bet, stage, stageCount, target, quota, storedRolls);
}
public void SetCurrencyText(int amount)
{
_view.SetCurrencyText(amount);
}
public void SetShopButtonInteractable(bool interactable)
{
_view.SetShopButtonInteractable(interactable);
}
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();
}
}
}