using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class TreasurePavilionRankAwardActCell : CellView { [SerializeField] Text rankText; [SerializeField] ItemCell[] items; [SerializeField] Transform rankTextObj; [SerializeField] Image rankImg; [SerializeField] Image rankBG; [SerializeField] ItemCell[] itemsEx; [SerializeField] Text needScore; [SerializeField] Text needScoreEx; TreasurePavilionRankActModel model { get { return ModelCenter.Instance.GetModel(); } } public void Display(int index) { if (index < 3) { rankTextObj.SetActive(false); rankImg.SetActive(true); rankImg.SetSprite("actrank" + (index + 1)); rankImg.SetNativeSize(); rankBG.SetSprite("actrankBG" + (index + 1)); } else { rankTextObj.SetActive(true); rankImg.SetActive(false); rankBG.SetSprite("actrankBGOther"); } Dictionary rankAwardsInfo = new Dictionary(); //if (model.SelectAwardRank == 0) //{ // rankAwardsInfo = model.operationAct.rankInfo; //} //else if (model.SelectAwardRank == 1) { rankAwardsInfo = model.operationCrossAct.rankInfo; } var keys = rankAwardsInfo.Keys.ToList(); keys.Sort(); int startRank = 1; if (index > 0) { startRank = keys[index - 1] + 1; } int endRank = keys[index]; if (startRank == endRank) rankText.text = endRank.ToString(); else rankText.text = StringUtility.Contact(startRank, "-", endRank); for (int i = 0; i < items.Length; i++) { if (i < rankAwardsInfo[endRank].awardItemList.Count) { items[i].SetActive(true); int itemID = rankAwardsInfo[endRank].awardItemList[i].id; items[i].Init(new ItemCellModel(itemID, false, (ulong)rankAwardsInfo[endRank].awardItemList[i].count)); items[i].button.AddListener(() => { ItemTipUtility.Show(itemID); }); } else { items[i].SetActive(false); } } if (rankAwardsInfo[endRank].needScore == 0) { needScore.text = string.Empty; } else { needScore.text = Language.Get("RankInfo2") + rankAwardsInfo[endRank].needScore; } for (int i = 0; i < itemsEx.Length; i++) { if (i < rankAwardsInfo[endRank].awardItemListEx.Count) { itemsEx[i].SetActive(true); int itemID = rankAwardsInfo[endRank].awardItemListEx[i].id; itemsEx[i].Init(new ItemCellModel(itemID, false, (ulong)rankAwardsInfo[endRank].awardItemListEx[i].count)); itemsEx[i].button.AddListener(() => { ItemTipUtility.Show(itemID); }); } else { itemsEx[i].SetActive(false); } } if (rankAwardsInfo[endRank].needScoreEx == 0) { needScoreEx.text = string.Empty; } else { needScoreEx.text = Language.Get("CrossServerOneVsOneWin__4") + rankAwardsInfo[endRank].needScoreEx; } } } }