68 lines
1.6 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|