using System;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
public class RenameWin : UIBase
|
{
|
[SerializeField] InputField input;
|
[SerializeField] Button btnOk;
|
[SerializeField] Button btnRandom;
|
[SerializeField] TextEx txtFirst;
|
[SerializeField] TextEx txtMoney;
|
[SerializeField] ImageEx imgMoney;
|
|
RenameManager manager { get { return RenameManager.Instance; } }
|
protected override void InitComponent()
|
{
|
base.InitComponent();
|
btnRandom.SetListener(() =>
|
{
|
input.text = manager.GetSafeRandomName();
|
});
|
btnOk.SetListener(() =>
|
{
|
bool isFirstRename = manager.IsFirstRename();
|
if (!isFirstRename && !UIHelper.CheckMoneyCount(manager.moneyType, manager.moneyNeed))
|
{
|
string title = Language.Get("Mail101");
|
string info = Language.Get("PlayerProfile22");
|
ConfirmCancel.ShowPopConfirm(title, info, (bool isOk) =>
|
{
|
if (isOk)
|
{
|
|
}
|
else
|
{
|
CloseWindow();
|
}
|
});
|
return;
|
}
|
|
if (!manager.CheckNameLimit(input.text, out var errorCode))
|
{
|
manager.ShowNameErrorTip(errorCode);
|
return;
|
}
|
|
manager.SendRenamePack(input.text);
|
});
|
}
|
|
protected override void OnPreOpen()
|
{
|
base.OnPreOpen();
|
manager.OnUpdatePlayerNameCountEvent += OnUpdatePlayerNameCount;
|
manager.OnUpdateRenameResultEvent += OnUpdateRenameResultEvent;
|
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
base.OnPreClose();
|
manager.OnUpdatePlayerNameCountEvent -= OnUpdatePlayerNameCount;
|
manager.OnUpdateRenameResultEvent -= OnUpdateRenameResultEvent;
|
PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh;
|
}
|
|
private void PlayerDataRefresh(PlayerDataType type)
|
{
|
Display();
|
}
|
|
private void OnUpdateRenameResultEvent()
|
{
|
Display();
|
}
|
|
private void OnUpdatePlayerNameCount()
|
{
|
Display();
|
}
|
|
void Display()
|
{
|
bool isFirstRename = manager.IsFirstRename();
|
txtFirst.SetActive(isFirstRename);
|
txtMoney.SetActive(!isFirstRename);
|
imgMoney.SetIconWithMoneyType(manager.moneyType);
|
txtMoney.text = UIHelper.ShowUseMoney(manager.moneyType, manager.moneyNeed);
|
}
|
}
|