using vnxbqy.UI;
|
using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
public class CrossServerBattleFieldResultCell : ILBehaviour
|
{
|
Image rankImg;
|
Text rank;
|
Text name;
|
Image firstImg;
|
Text collectCrystal;
|
Text killNum;
|
Text score;
|
List<ItemCell> items = new List<ItemCell>();
|
|
|
|
protected override void Awake()
|
{
|
rankImg = proxy.GetWidgtEx<Image>("IMG_Rank");
|
rank = proxy.GetWidgtEx<Text>("Txt_Rank");
|
name = proxy.GetWidgtEx<Text>("Txt_Name");
|
firstImg = proxy.GetWidgtEx<Image>("Img_FirstSign");
|
collectCrystal = proxy.GetWidgtEx<Text>("Txt_Crystal");
|
killNum = proxy.GetWidgtEx<Text>("Txt_KillNum");
|
score = proxy.GetWidgtEx<Text>("Txt_Integral");
|
for (int i = 0; i < 5; i++)
|
{
|
items.Add(proxy.GetWidgtEx<ItemCell>("itemcell" + i));
|
}
|
}
|
|
public void Display(int index)
|
{
|
var result = ILCrossServerModel.Instance.dungeonResult.factionInfoList[ILCrossServerModel.Instance.seeFaction - 1].rankPlayerList[index];
|
if (index < 3)
|
{
|
rankImg.SetActiveIL(true);
|
rank.SetActiveIL(false);
|
rankImg.SetSprite(index == 0 ? "Rank_First" : (index == 1 ? "Rank_Second" : "Rank_Third"));
|
}
|
else
|
{
|
rankImg.SetActiveIL(false);
|
rank.SetActiveIL(true);
|
rank.text = (index + 1).ToString();
|
}
|
|
name.text = result.name;
|
firstImg.SetActiveIL(index == 0);
|
collectCrystal.text = result.crystalCollCnt.ToString();
|
killNum.text = result.killCount.ToString();
|
|
score.text = result.score.ToString();
|
var awards = GetRankAwards(index);
|
for (int i = 0; i < items.Count; i++)
|
{
|
if (i < awards.Count)
|
{
|
items[i].SetActiveIL(true);
|
var itemID = awards[i].id;
|
var model = new ItemCellModel(itemID, false, (ulong)awards[i].count);
|
items[i].Init(model);
|
items[i].button.SetListener(() =>
|
{
|
ItemTipUtility.Show(itemID);
|
});
|
}
|
else
|
{
|
items[i].SetActiveIL(false);
|
}
|
}
|
}
|
|
|
List<ItemEx> GetRankAwards(int index)
|
{
|
Dictionary<int, List<ItemEx>> awards = new Dictionary<int, List<ItemEx>>();
|
if (ILCrossServerModel.Instance.dungeonResult.winnerFaction == ILCrossServerModel.Instance.seeFaction)
|
{
|
awards = ILCrossServerModel.Instance.winRankAwards;
|
}
|
else
|
{
|
awards = ILCrossServerModel.Instance.defeatRankAwards;
|
}
|
var keyList = awards.Keys.ToList();
|
keyList.Sort();
|
int findKey = 0;
|
for (int i = 0; i < keyList.Count; i++)
|
{
|
if (index + 1 <= keyList[i])
|
{
|
findKey = keyList[i];
|
break;
|
}
|
}
|
if (findKey == 0)
|
{
|
return new List<ItemEx>();
|
}
|
|
return awards[findKey];
|
}
|
|
}
|