NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/UI_PVPMainController.cs

112 lines
3.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.UIElements;
using Button = UnityEngine.UI.Button;
using Image = UnityEngine.UI.Image;
using Toggle = UnityEngine.UI.Toggle;
using ScrollView = PhxhSDK.PhxhScrollView;
using Framework;
public class UI_PVPMainController : UIWindow
{
//UI GameObj
///Auto Gen Start///
public Button Button_EnemyInfo_0;
public Button Button_EnemyInfo_1;
public Button Button_EnemyInfo_2;
public TMP_Text Text_Score;
public TMP_Text Text_Order;
///Auto Gen End///
private List<PVPEnemyInfo> _enemies = new();
private List<Button> _enemyButtons = new();
// Use this for initialization
public override void OnInit()
{
//bind UI GameObj
UI_PVPMainBinder.GetComponents(this);
PVPManager.Instance.GetPVPInformation();
BindButton("Button_Back/Button_back",OnClickBack);
BindButton("Button_Back/Button_Home",OnClickBack);
_enemyButtons.Clear();
_enemyButtons.Add(Button_EnemyInfo_0);
_enemyButtons.Add(Button_EnemyInfo_1);
_enemyButtons.Add(Button_EnemyInfo_2);
RegisterEvent();
}
private void RegisterEvent()
{
EventManager.Instance.Register(EventManager.EventName.OnGetPVPInformation, Refresh);
}
private void UnRegisterEvent()
{
EventManager.Instance.Unregister(EventManager.EventName.OnGetPVPInformation, Refresh);
}
private void OnClickBack()
{
CloseWindow(UIWindowCloseType.HideAndDestroy);
}
private void Refresh()
{
Text_Score.text = PVPManager.Instance.score.ToString();
Text_Order.text = PVPManager.Instance.order.ToString();
_enemies = PVPManager.Instance.Enemies.ToList();
for (int i = 0; i < 3; i++)
{
if (i < _enemies.Count)
{
_enemyButtons[i].gameObject.SetActive(true);
RenderButtonEnemyInfo(_enemyButtons[i], _enemies[i]);
}
else
{
_enemyButtons[i].gameObject.SetActive(false);
}
}
}
private void RenderButtonEnemyInfo(Button btn, PVPEnemyInfo enemyInfo)
{
var score = btn.transform.Find("score").GetComponent<TMP_Text>();
var order = btn.transform.Find("order").GetComponent<TMP_Text>();
var nickName = btn.transform.Find("nickName").GetComponent<TMP_Text>();
score.text = enemyInfo.score.ToString();
order.text = enemyInfo.order.ToString();
nickName.text = enemyInfo.nickName;
btn.onClick.RemoveAllListeners();
btn.onClick.AddListener(() => { PVPManager.Instance.StartPVPFight(enemyInfo.actorID); });
}
//invoke when open window
protected override void OnShowWindow(object data = null)
{
Refresh();
}
//invoke when reload window
protected override void OnReloadWindow(object data = null)
{
Refresh();
}
//invoke when close window
protected override void OnHideWindow()
{
UnRegisterEvent();
}
}