81 lines
2.5 KiB
C#
81 lines
2.5 KiB
C#
using GeometryTD.CustomEvent;
|
|
using GeometryTD.Procedure;
|
|
using UnityEngine;
|
|
using UnityGameFramework.Runtime;
|
|
|
|
namespace GeometryTD.UI
|
|
{
|
|
public class TestMenuForm : UGuiForm
|
|
{
|
|
[SerializeField] private GameObject combatButtonObject;
|
|
[SerializeField] private GameObject eventButtonObject;
|
|
[SerializeField] private GameObject shopButtonObject;
|
|
|
|
private TestMenuFormContext _context;
|
|
|
|
public void RefreshUI(TestMenuFormContext context)
|
|
{
|
|
_context = context;
|
|
if (_context == null)
|
|
{
|
|
SetButtonVisible(combatButtonObject, false);
|
|
SetButtonVisible(eventButtonObject, false);
|
|
SetButtonVisible(shopButtonObject, false);
|
|
return;
|
|
}
|
|
|
|
SetButtonVisible(
|
|
combatButtonObject,
|
|
_context.CurrentNodeType == RunNodeType.Combat || _context.CurrentNodeType == RunNodeType.BossCombat);
|
|
SetButtonVisible(eventButtonObject, _context.CurrentNodeType == RunNodeType.Event);
|
|
SetButtonVisible(shopButtonObject, _context.CurrentNodeType == RunNodeType.Shop);
|
|
}
|
|
|
|
public void OnCombatButtonClick()
|
|
{
|
|
GameEntry.Event.Fire(this, TestMenuNodeClickEventArgs.Create(TestMenuNodeType.Combat));
|
|
}
|
|
|
|
public void OnEventButtonClick()
|
|
{
|
|
GameEntry.Event.Fire(this, TestMenuNodeClickEventArgs.Create(TestMenuNodeType.Event));
|
|
}
|
|
|
|
public void OnShopButtonClick()
|
|
{
|
|
GameEntry.Event.Fire(this, TestMenuNodeClickEventArgs.Create(TestMenuNodeType.Shop));
|
|
}
|
|
|
|
protected override void OnOpen(object userData)
|
|
{
|
|
base.OnOpen(userData);
|
|
|
|
if (userData is TestMenuFormContext context)
|
|
{
|
|
RefreshUI(context);
|
|
return;
|
|
}
|
|
|
|
Log.Warning("TestMenuForm requires TestMenuFormContext as userData.");
|
|
}
|
|
|
|
protected override void OnClose(bool isShutdown, object userData)
|
|
{
|
|
_context = null;
|
|
SetButtonVisible(combatButtonObject, false);
|
|
SetButtonVisible(eventButtonObject, false);
|
|
SetButtonVisible(shopButtonObject, false);
|
|
|
|
base.OnClose(isShutdown, userData);
|
|
}
|
|
|
|
private static void SetButtonVisible(GameObject buttonObject, bool visible)
|
|
{
|
|
if (buttonObject != null)
|
|
{
|
|
buttonObject.SetActive(visible);
|
|
}
|
|
}
|
|
}
|
|
}
|