using System.Collections.Generic;
|
using UnityEngine;
|
|
// 布阵
|
public class GuildBossPowerUPWin : UIBase
|
{
|
[SerializeField] ScrollerController scrollerController;
|
|
|
|
protected override void OnPreOpen()
|
{
|
scrollerController.OnRefreshCell += OnRefreshCell;
|
GuildBossManager.Instance.BossHurtEvent += Display;
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
scrollerController.OnRefreshCell -= OnRefreshCell;
|
GuildBossManager.Instance.BossHurtEvent -= Display;
|
}
|
|
|
void Display()
|
{
|
var _list = SortPlayer();
|
scrollerController.Refresh();
|
for (int i = 0; i < _list.Count; i++)
|
{
|
scrollerController.AddCell(ScrollerDataType.Header, _list[i]);
|
}
|
scrollerController.Restart();
|
}
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell.GetComponent<GuildBossPowerUPCell>();
|
_cell.Display(cell.index);
|
}
|
|
|
List<int> SortPlayer()
|
{
|
var _list = PlayerDatas.Instance.fairyData.GetMemberIDList();
|
_list.Sort(Cmp);
|
return _list;
|
}
|
|
int Cmp(int playerIDA, int playerIDB)
|
{
|
int timeA = 0;
|
if (GuildBossManager.Instance.bossActions.ContainsKey(playerIDA))
|
{
|
timeA = (int)GuildBossManager.Instance.bossActions[playerIDA].Value2;
|
}
|
|
int timeB = 0;
|
if (GuildBossManager.Instance.bossActions.ContainsKey(playerIDB))
|
{
|
timeB = (int)GuildBossManager.Instance.bossActions[playerIDB].Value2;
|
}
|
// 0代表未布阵排后面,非0小的排前面
|
|
if (timeA == 0 && timeB == 0)
|
{
|
return playerIDA - playerIDB;
|
}
|
else if (timeA == 0)
|
{
|
return 1;
|
}
|
else if (timeB == 0)
|
{
|
return -1;
|
}
|
|
return timeA - timeB;
|
|
|
}
|
|
}
|