//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Monday, January 28, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using vnxbqy.UI;
|
using System.Collections.Generic;
|
|
public class CrossServerBattleFieldAchievementWin : ILWindow
|
{
|
Button close;
|
ScrollerController scrollerTab;
|
ScrollerController scrollerItem;
|
|
AchievementModel achievementModel { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } }
|
#region Built-in
|
protected override void BindController()
|
{
|
close = proxy.GetWidgtEx<Button>("Img_Close");
|
scrollerTab = proxy.GetWidgtEx<ScrollerController>("scrollerTab");
|
scrollerItem = proxy.GetWidgtEx<ScrollerController>("scrollerItems");
|
|
}
|
|
protected override void AddListeners()
|
{
|
close.SetListener(()=> {
|
WindowCenter.Instance.CloseIL<CrossServerBattleFieldAchievementWin>();
|
});
|
|
}
|
|
protected override void OnPreOpen()
|
{
|
ILCrossServerModel.Instance.selectAchievementIndex = ILCrossServerModel.Instance.FindRedPointTabIndex();
|
scrollerTab.OnRefreshCell += OnRefreshTabCell;
|
scrollerItem.OnRefreshCell += OnRefreshItemCell;
|
achievementModel.achievementCompletedEvent += AchievementCompletedEvent;
|
ILCrossServerModel.Instance.OnSelectAchievementUpdate += OnSelectAchievementUpdate;
|
}
|
|
protected override void OnAfterOpen()
|
{
|
CreateScrollerTab();
|
CreateScrollerItem();
|
}
|
|
protected override void OnPreClose()
|
{
|
scrollerTab.OnRefreshCell -= OnRefreshTabCell;
|
scrollerItem.OnRefreshCell -= OnRefreshItemCell;
|
achievementModel.achievementCompletedEvent -= AchievementCompletedEvent;
|
ILCrossServerModel.Instance.OnSelectAchievementUpdate -= OnSelectAchievementUpdate;
|
}
|
|
#endregion
|
|
void CreateScrollerTab()
|
{
|
scrollerTab.Refresh();
|
for (int i = 0; i < ILCrossServerModel.Instance.gszcAchievementGroup.Count; i++)
|
{
|
scrollerTab.AddCell(ScrollerDataType.Header, i);
|
}
|
scrollerTab.Restart();
|
scrollerTab.m_Scorller.RefreshActiveCellViews();
|
scrollerTab.JumpIndex(ILCrossServerModel.Instance.selectAchievementIndex);
|
}
|
|
|
void CreateScrollerItem()
|
{
|
ILCrossServerModel.Instance.SortSuccessItems();
|
scrollerItem.Refresh();
|
for (int i = 0; i < ILCrossServerModel.Instance.sortSueecssIDs.Count; i++)
|
{
|
scrollerItem.AddCell(ScrollerDataType.Header, i);
|
}
|
scrollerItem.Restart();
|
scrollerItem.m_Scorller.RefreshActiveCellViews();
|
}
|
|
void OnRefreshTabCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell.GetILBehaviour<CrossServerBattleFieldAchievementTabCell>();
|
_cell?.Display(cell.index);
|
}
|
|
void OnRefreshItemCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell.GetILBehaviour<CrossServerBattleFieldAchievementItemCell>();
|
_cell?.Display(cell.index);
|
}
|
|
void AchievementCompletedEvent(int id)
|
{
|
var index = ILCrossServerModel.Instance.FindRedPointTabIndex();
|
if (index != ILCrossServerModel.Instance.selectAchievementIndex)
|
{
|
ILCrossServerModel.Instance.selectAchievementIndex = index;
|
scrollerTab.JumpIndex(index);
|
return;
|
}
|
ILCrossServerModel.Instance.SortSuccessItems();
|
scrollerItem.m_Scorller.RefreshActiveCellViews();
|
}
|
|
void OnSelectAchievementUpdate()
|
{
|
scrollerTab.m_Scorller.RefreshActiveCellViews();
|
CreateScrollerItem();
|
}
|
}
|