//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Friday, December 07, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class FairyFeastTransmitListWin : Window
|
{
|
[SerializeField] Button m_Close;
|
[SerializeField] Button m_Refresh;
|
[SerializeField] ScrollerController m_ScrollerControl;
|
[SerializeField] Text m_TimeStr;
|
[SerializeField] Text m_AwardCount;
|
[SerializeField] List<ItemCell> m_Items;
|
FairyModel model
|
{
|
get { return ModelCenter.Instance.GetModel<FairyModel>(); }
|
}
|
|
FairyFeastModel fairyFeastModel
|
{
|
get { return ModelCenter.Instance.GetModel<FairyFeastModel>(); }
|
}
|
|
DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_Close.onClick.AddListener(CloseClick);
|
m_Refresh.onClick.AddListener(Refresh);
|
m_ScrollerControl.OnRefreshCell += OnRefreshCell;
|
}
|
|
protected override void OnPreOpen()
|
{
|
C0F07_tagCGetFamilyInfo pak = new C0F07_tagCGetFamilyInfo();
|
pak.Type = 0;
|
GameNetSystem.Instance.SendInfo(pak);
|
|
PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += DisplayFairyMembers;
|
DisplayFairyMembers();
|
m_TimeStr.text = Language.Get("FamilyChuangong2", fairyFeastModel.activeOpenday - TimeUtility.OpenDay - 1);
|
|
var completedTimes = dailyQuestModel.GetDailyQuestCompletedTimes((int)DailyQuestType.FairyChuanGong);
|
var totalTimes = dailyQuestModel.GetDailyQuestTotalTimes((int)DailyQuestType.FairyChuanGong);
|
m_AwardCount.text = Language.Get("FamilyChuangong3", completedTimes, totalTimes);
|
for (int i = 0; i < m_Items.Count; i++)
|
{
|
if (i < fairyFeastModel.chuangongAwards.Length)
|
{
|
m_Items[i].SetActive(true);
|
int itemID = fairyFeastModel.chuangongAwards[i][0];
|
m_Items[i].Init(new ItemCellModel(itemID, false, (ulong)fairyFeastModel.chuangongAwards[i][1]));
|
m_Items[i].button.AddListener(() => {
|
ItemTipUtility.Show(itemID);
|
});
|
}
|
else
|
{
|
m_Items[i].SetActive(false);
|
}
|
}
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= DisplayFairyMembers;
|
fairyFeastModel.displayFairyMembers.Clear();
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
private void Refresh()
|
{
|
C0F07_tagCGetFamilyInfo pak = new C0F07_tagCGetFamilyInfo();
|
pak.Type = 0;
|
GameNetSystem.Instance.SendInfo(pak);
|
}
|
|
private void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var fairyMemberCell = cell as FairyFeastMemberCell;
|
fairyMemberCell.Display(cell.index);
|
}
|
|
|
|
void DisplayFairyMembers()
|
{
|
fairyFeastModel.displayFairyMembers.Clear();
|
m_ScrollerControl.Refresh();
|
PlayerFairyData.FairyData fairy = PlayerDatas.Instance.fairyData.fairy;
|
if (fairy != null)
|
{
|
List<PlayerFairyData.FairyMember> list = fairy.Member;
|
if (list != null)
|
{
|
fairyFeastModel.displayFairyMembers.AddRange(list);
|
}
|
fairyFeastModel.displayFairyMembers.Sort(Compare);
|
for (int i = 0; i < fairyFeastModel.displayFairyMembers.Count; i++)
|
{
|
m_ScrollerControl.AddCell(i % 2 == 0 ? ScrollerDataType.Header : ScrollerDataType.Normal, i);
|
}
|
}
|
m_ScrollerControl.Restart();
|
}
|
|
int Compare(PlayerFairyData.FairyMember lhs, PlayerFairyData.FairyMember rhs)
|
{
|
bool lOnline = lhs.Exattr2 == 0;
|
bool rOnline = rhs.Exattr2 == 0;
|
if (lOnline.CompareTo(rOnline) != 0)
|
{
|
return lhs.Exattr2.CompareTo(rhs.Exattr2);
|
}
|
if (lhs.LV.CompareTo(rhs.LV) != 0)
|
{
|
return -lhs.LV.CompareTo(rhs.LV);
|
}
|
if (lhs.FamilyLV.CompareTo(rhs.FamilyLV) != 0)
|
{
|
return -lhs.FamilyLV.CompareTo(rhs.FamilyLV);
|
}
|
return 1;
|
}
|
}
|
|
}
|
|
|
|
|