using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
public class GuildBossAwardWin : UIBase
|
{
|
[SerializeField] ScrollerController atkScroller;
|
[SerializeField] ScrollerController awardScroller;
|
[SerializeField] Button getAllBtn;
|
|
protected override void InitComponent()
|
{
|
getAllBtn.AddListener(OnGetAllBtnClick);
|
}
|
|
|
protected override void OnPreOpen()
|
{
|
atkScroller.OnRefreshCell += OnRefreshCell;
|
awardScroller.OnRefreshCell += OnRefreshAwardCell;
|
GuildBossManager.Instance.BossHurtEvent += Display;
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
atkScroller.OnRefreshCell -= OnRefreshCell;
|
awardScroller.OnRefreshCell -= OnRefreshAwardCell;
|
GuildBossManager.Instance.BossHurtEvent -= Display;
|
}
|
|
|
void Display()
|
{
|
var _list = GuildBossManager.Instance.bossActions.Keys.ToList();
|
_list.Sort(Cmp);
|
atkScroller.Refresh();
|
for (int i = 0; i < _list.Count; i++)
|
{
|
if (_list[i] == 1)
|
{
|
continue;
|
}
|
var data = GuildBossManager.Instance.bossActions[_list[i]];
|
if (data.Value4 + data.Value5 * Constants.ExpPointValue <= 0)
|
{
|
continue;
|
}
|
atkScroller.AddCell(ScrollerDataType.Header, _list[i]);
|
}
|
atkScroller.Restart();
|
|
//50个一行
|
int cnt = Mathf.CeilToInt(GuildBossManager.Instance.m_BoxUnGetCount / 50.0f);
|
awardScroller.Refresh();
|
for (int i = 0; i < cnt; i++)
|
{
|
awardScroller.AddCell(ScrollerDataType.Header, i);
|
}
|
awardScroller.Restart();
|
}
|
|
int Cmp(int playerIDA, int playerIDB)
|
{
|
int timeA = (int)GuildBossManager.Instance.bossActions[playerIDA].Time;
|
int timeB = (int)GuildBossManager.Instance.bossActions[playerIDB].Time;
|
return timeB.CompareTo(timeA);
|
}
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell.GetComponent<Text>();
|
//{0}累积造成<color=#fa1010>{1}</color>伤害,共为成员们带回了<Img img=guildboss2_img_132 size=30 folder=GuildBoss/>x<color=#fa1010>{2}</color>
|
var data = GuildBossManager.Instance.GetMemberData(cell.index);
|
var actionData = GuildBossManager.Instance.bossActions[cell.index];
|
_cell.text = Language.Get("GuildBoss20", data.Name, UIHelper.ReplaceLargeNum(actionData.Value4 + actionData.Value5 * Constants.ExpPointValue), actionData.Value6);
|
}
|
|
void OnRefreshAwardCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell.GetComponent<GuildBossAwardLineCell>();
|
_cell.Display(cell.index);
|
}
|
|
void OnGetAllBtnClick()
|
{
|
if (GuildBossManager.Instance.m_BoxUnGetCount <= 0)
|
{
|
return;
|
}
|
var pack = new CA504_tagCMPlayerGetReward();
|
pack.RewardType = 3;
|
GameNetSystem.Instance.SendInfo(pack);
|
|
}
|
}
|