using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
/// <summary>
|
/// 公会徽章界面 :functionOrder 0 代表有公会的情况下打开,1 代表没有公会的情况下创建时打开
|
/// </summary>
|
public class GuildEmblemWin : UIBase
|
{
|
[SerializeField] GuildEmblemCell guildEmblem;
|
[SerializeField] ScrollerController emblemScroller;
|
[SerializeField] Text emblemInfoText;
|
[SerializeField] Text timeDescText;
|
[SerializeField] InputField flagNameText;
|
[SerializeField] Text nowTimeText;
|
[SerializeField] Button changeBtn;
|
|
|
string emblemWord;
|
|
protected override void InitComponent()
|
{
|
flagNameText.onValueChanged.AddListener(OnFlagNameChange);
|
changeBtn.AddListener(ChangeEmblem);
|
}
|
protected override void OnPreOpen()
|
{
|
GuildEmblemModel.Instance.ChooseEmblemIdChangeEvent += ChooseEmblemEvent;
|
emblemScroller.OnRefreshCell += OnRefreshCell;
|
|
if (functionOrder == 1)
|
{
|
GuildEmblemModel.Instance.nowChooseEmblemId = GuildEmblemModel.Instance.createSelectEmblemId;
|
emblemWord = GuildEmblemModel.Instance.createEmblemWord;
|
}
|
else
|
{
|
GuildEmblemModel.Instance.nowChooseEmblemId = PlayerDatas.Instance.fairyData.fairy.EmblemID;
|
emblemWord = PlayerDatas.Instance.fairyData.fairy.EmblemWord;
|
}
|
|
flagNameText.text = emblemWord;
|
GuildEmblemModel.Instance.SortShowList();
|
|
CreateEmblemScroller();
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
|
GuildEmblemModel.Instance.ChooseEmblemIdChangeEvent -= ChooseEmblemEvent;
|
emblemScroller.OnRefreshCell -= OnRefreshCell;
|
}
|
|
void CreateEmblemScroller()
|
{
|
emblemScroller.Refresh();
|
for (int i = 0; i < GuildEmblemModel.Instance.showList.Count; i++)
|
{
|
if (i % 5 == 0)
|
{
|
emblemScroller.AddCell(ScrollerDataType.Header, i);
|
}
|
}
|
emblemScroller.Restart();
|
}
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell.GetComponent<GuildEmblemListCell>();
|
_cell.Display(cell.index);
|
}
|
|
void Display()
|
{
|
guildEmblem.Display(GuildEmblemModel.Instance.nowChooseEmblemId, emblemWord, 2f);
|
emblemScroller.m_Scorller.RefreshActiveCellViews();
|
var config = FamilyEmblemConfig.Get(GuildEmblemModel.Instance.nowChooseEmblemId);
|
emblemInfoText.text = config.Descriptive;
|
if (config.ExpireMinutes == 0)
|
{
|
timeDescText.text = "";
|
}
|
else
|
{
|
timeDescText.text = Language.Get("Mail12", TimeUtility.SecondsToShortDHMS(config.ExpireMinutes * 60));
|
}
|
|
if (functionOrder == 1)
|
{
|
nowTimeText.text = "";
|
}
|
else
|
{
|
// 公会徽章过期时间
|
if (GuildEmblemModel.Instance.IsLimitTime(GuildEmblemModel.Instance.nowChooseEmblemId, out var familyAction))
|
{
|
int time = (int)familyAction.Value2 - TimeUtility.AllSeconds;
|
if (time > 0)
|
nowTimeText.text = Language.Get("GoldRush29", TimeUtility.SecondsToShortDHMS(time));
|
else
|
nowTimeText.text = "";
|
}
|
else
|
{
|
nowTimeText.text = "";
|
}
|
|
}
|
|
if (functionOrder == 1)
|
{
|
changeBtn.SetInteractable(GuildEmblemModel.Instance.IsUnLock(GuildEmblemModel.Instance.nowChooseEmblemId));
|
}
|
else
|
{
|
changeBtn.SetInteractable(GuildEmblemModel.Instance.IsCaptain() && GuildEmblemModel.Instance.IsUnLock(GuildEmblemModel.Instance.nowChooseEmblemId));
|
}
|
}
|
|
|
void OnFlagNameChange(string value)
|
{
|
emblemWord = value;
|
guildEmblem.Display(GuildEmblemModel.Instance.nowChooseEmblemId, emblemWord, 2f);
|
}
|
|
void ChooseEmblemEvent()
|
{
|
Display();
|
}
|
|
void ChangeEmblem()
|
{
|
if (functionOrder == 1)
|
{
|
GuildEmblemModel.Instance.createEmblemWord = emblemWord;
|
GuildEmblemModel.Instance.createSelectEmblemId = GuildEmblemModel.Instance.nowChooseEmblemId;
|
}
|
else
|
{
|
var pack = new CA624_tagCMChangeFamilyEmblem();
|
pack.EmblemID = (byte)GuildEmblemModel.Instance.nowChooseEmblemId;
|
pack.EmblemWord = emblemWord;
|
GameNetSystem.Instance.SendInfo(pack);
|
}
|
|
CloseWindow();
|
}
|
}
|