using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using proto; namespace MoleMole { public class MonoRankInfoRow : MonoBehaviour { private const int MAX_NUM_TOOLS_TO_SHOW = 5; private const int INVISIBLE_ITEM_ID = 70015; private EndlessPlayerData _endlessPlayerData; public void SetupView(int rank, EndlessPlayerData endlessData, string playerName, EndlessMainPageContext.ViewStatus viewStatus = EndlessMainPageContext.ViewStatus.ShowCurrentGroup) { _endlessPlayerData = endlessData; base.transform.Find("Rank").GetComponent().text = rank.ToString(); base.transform.Find("PlayerName").GetComponent().text = playerName; base.transform.Find("FloorNum").GetComponent().text = ((endlessData.progress >= 1) ? endlessData.progress.ToString() : "-"); base.transform.Find("FloorLabel").gameObject.SetActive(endlessData.progress >= 1); if (viewStatus == EndlessMainPageContext.ViewStatus.ShowCurrentGroup) { base.transform.Find("Me").gameObject.SetActive(rank == Singleton.Instance.CurrentRank); } else { base.transform.Find("Me").gameObject.SetActive(false); } Transform transform = base.transform.Find("ApplyedToolsList"); List wait_burst_bomb_list = endlessData.wait_burst_bomb_list; int i = 0; foreach (EndlessWaitBurstBomb item in wait_burst_bomb_list) { EndlessToolDataItem toolData = new EndlessToolDataItem((int)item.item_id); if (i < transform.childCount) { Transform child = transform.GetChild(i); child.gameObject.SetActive(true); child.GetComponent().SetupView(toolData, item.burst_time, null); i++; } } List wait_effect_item_list = endlessData.wait_effect_item_list; foreach (EndlessWaitEffectItem item2 in wait_effect_item_list) { EndlessToolDataItem endlessToolDataItem = new EndlessToolDataItem((int)item2.item_id); if (endlessToolDataItem.ShowIcon && i < transform.childCount) { Transform child2 = transform.GetChild(i); child2.gameObject.SetActive(true); child2.GetComponent().SetupView(endlessToolDataItem, item2.expire_time, OnEndlessToolTimeOut); i++; } } if (viewStatus == EndlessMainPageContext.ViewStatus.ShowCurrentGroup && Singleton.Instance.PlayerInvisible((int)endlessData.uid)) { EndlessToolDataItem endlessToolDataItem2 = new EndlessToolDataItem(70015); if (endlessToolDataItem2.ShowIcon && i < transform.childCount) { Transform child3 = transform.GetChild(i); child3.gameObject.SetActive(true); child3.GetComponent().SetupView(endlessToolDataItem2, endlessData.hidden_expire_time, OnEndlessToolTimeOut); i++; } } for (; i < transform.childCount; i++) { Transform child4 = transform.GetChild(i); child4.gameObject.SetActive(false); } } private void OnEndlessToolTimeOut(int itemID) { _endlessPlayerData.wait_effect_item_list.RemoveAll((EndlessWaitEffectItem item) => item.item_id == itemID); _endlessPlayerData.wait_burst_bomb_list.RemoveAll((EndlessWaitBurstBomb item) => item.item_id == itemID); Singleton.Instance.FireNotify(new Notify(NotifyTypes.EndlessAppliedToolChange)); } } }