//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, June 11, 2019
|
//--------------------------------------------------------
|
|
using LitJson;
|
using vnxbqy.UI;
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
|
|
public class ILAchievementActivityWin : ILWindow
|
{
|
ScrollerController groupScroller;
|
IntensifySmoothSlider slider;
|
Text process;
|
ButtonEx scoreAwardBtn;
|
ItemCell scoreItem;
|
Text awardtip;
|
Image getImg;
|
ScrollerController scrollerAward;
|
|
#region Built-in
|
protected override void BindController()
|
{
|
groupScroller = proxy.GetWidgtEx<ScrollerController>("groupScroller");
|
slider = proxy.GetWidgtEx<IntensifySmoothSlider>("ExpSlider");
|
process = proxy.GetWidgtEx<Text>("process");
|
scoreAwardBtn = proxy.GetWidgtEx<ButtonEx>("scoreAwardBtn");
|
scoreItem = proxy.GetWidgtEx<ItemCell>("itemcell");
|
awardtip = proxy.GetWidgtEx<Text>("awardtip");
|
getImg = proxy.GetWidgtEx<Image>("ImageEx");
|
scrollerAward = proxy.GetWidgtEx<ScrollerController>("scrollerAward");
|
|
}
|
int jumpIndex = 0;
|
protected override void OnPreOpen()
|
{
|
jumpIndex = ILAchievementModel.Instance.GetJumpIndex();
|
ILAchievementModel.Instance.selectIndex = ILAchievementModel.Instance.m_NewAchieveMentGroup[jumpIndex];
|
ILAchievementModel.Instance.UpdateScoreAwardState += UpdateScoreAwardState;
|
ILAchievementModel.Instance.OnSelectUpdate += OnSelectUpdate;
|
ILAchievementModel.Instance.UpdateAchievement += UpdateAchievement;
|
ShowScore();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
groupScroller.OnRefreshCell += OnRefreshGroupCell;
|
scrollerAward.OnRefreshCell += OnRefreshAwardCell;
|
CreateGroupScroller();
|
CreateAwardScroller();
|
}
|
|
protected override void OnPreClose()
|
{
|
ILAchievementModel.Instance.OnSelectUpdate -= OnSelectUpdate;
|
groupScroller.OnRefreshCell -= OnRefreshGroupCell;
|
scrollerAward.OnRefreshCell -= OnRefreshAwardCell;
|
ILAchievementModel.Instance.UpdateScoreAwardState -= UpdateScoreAwardState;
|
ILAchievementModel.Instance.UpdateAchievement -= UpdateAchievement;
|
}
|
|
|
#endregion
|
|
void OnSelectUpdate()
|
{
|
groupScroller.m_Scorller.RefreshActiveCellViews();
|
CreateAwardScroller();
|
}
|
|
void OnRefreshAwardCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell.GetILBehaviour<ILAchievementActivityAwardCell>();
|
_cell.Display(cell.index);
|
}
|
|
void OnRefreshGroupCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell.GetILBehaviour<ILAchievementActivityGroupCell>();
|
_cell.Display(cell.index);
|
}
|
|
void CreateGroupScroller()
|
{
|
groupScroller.Refresh();
|
for (int i = 0; i < ILAchievementModel.Instance.m_NewAchieveMentGroup.Length; i++)
|
{
|
groupScroller.AddCell(ScrollerDataType.Header, ILAchievementModel.Instance.m_NewAchieveMentGroup[i]);
|
}
|
groupScroller.Restart();
|
groupScroller.JumpIndex(jumpIndex);
|
}
|
|
void CreateAwardScroller()
|
{
|
var ids = ILAchievementModel.Instance.GetAchieveIDs(ILAchievementModel.Instance.selectIndex);
|
scrollerAward.Refresh();
|
for (int i = 0; i < ids.Count; i++)
|
{
|
scrollerAward.AddCell(ScrollerDataType.Header, ids[i]);
|
}
|
scrollerAward.Restart();
|
}
|
|
void ShowScore()
|
{
|
int showIndex = ILAchievementModel.Instance.GetScoreAwardShowIndex();
|
int index = showIndex;
|
var keys = ILAchievementModel.Instance.scoreAwards.Keys.ToList();
|
keys.Sort();
|
if (showIndex == -1)
|
{
|
index = keys.Count - 1;
|
}
|
var showScore = ILAchievementModel.Instance.GetShowScore();
|
slider.value = Math.Min(1, (float)showScore / keys[index]);
|
|
process.text = showScore + "/" + keys[index];
|
scoreAwardBtn.SetListener(()=> {
|
var pak = new IL_CA504_tagCMPlayerGetReward();
|
pak.RewardType = 59;
|
pak.DataEx = (uint)index;
|
GameNetSystem.Instance.SendInfo(pak);
|
});
|
|
int itemID = ILAchievementModel.Instance.scoreAwards[keys[index]][0];
|
var count = (ulong)ILAchievementModel.Instance.scoreAwards[keys[index]][1];
|
scoreItem.Init(new ItemCellModel(itemID, false, count));
|
scoreItem.button.SetListener(()=> {
|
ItemTipUtility.Show(itemID);
|
});
|
|
getImg.SetActiveIL(showIndex == -1);
|
scoreAwardBtn.SetActiveIL(showIndex != -1);
|
if (showScore < (ulong)keys[index])
|
{
|
awardtip.text = Language.Get("AchievementActivity1", (ulong)keys[index] - showScore);
|
scoreAwardBtn.interactable = false;
|
}
|
else
|
{
|
awardtip.text = string.Empty;
|
scoreAwardBtn.interactable = true;
|
}
|
|
}
|
|
|
void UpdateScoreAwardState()
|
{
|
ShowScore();
|
}
|
|
void UpdateAchievement()
|
{
|
scrollerAward.m_Scorller.RefreshActiveCellViews();
|
}
|
}
|