112 lines
3.1 KiB
C#
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 OnOpenWindow(object data = null)
|
|
{
|
|
Refresh();
|
|
}
|
|
|
|
//invoke when reload window
|
|
protected override void OnReloadWindow(object data = null)
|
|
{
|
|
Refresh();
|
|
}
|
|
|
|
//invoke when close window
|
|
protected override void OnCloseWindow()
|
|
{
|
|
UnRegisterEvent();
|
|
}
|
|
} |