using asap.core; using cfg; using GameCore; using System.Collections.Generic; using UnityEngine; public class SupplyDropPopupPanel : MonoBehaviour { //[NonSerialized] public List introItem; //[NonSerialized] public List detailsItems; PlayerItemData playerItemData; Tables _tables; public void Init() { playerItemData = GContext.container.Resolve(); Transform content = transform.Find("content"); Transform supplyDrop = transform.Find("supplydrop"); int count = content.childCount; introItem = new List(count); detailsItems = new List(count); for (int i = 1; i <= count; i++) { introItem.Add(content.Find($"content{i}").GetComponent()); detailsItems.Add(supplyDrop.Find($"supplydrop{i}").GetComponent()); } _tables = GContext.container.Resolve(); var DataList = _tables.TbSupplyDrop.DataList; IUIService uIService = GContext.container.Resolve(); SupplyDropDetailsItem detailsItem; for (int i = 0; i < DataList.Count; i++) { var item = DataList[i]; introItem[i].text_num.text = $"x{item.ID}"; introItem[i].text_title.text = LocalizationMgr.GetText(item.Name_l10n_key); detailsItem = detailsItems[i]; detailsItem.text_title.text = $"x{item.ID}"; //uIService.SetImageSprite(detailsItem[i].icon, item.Icon); ShowRewardItems(detailsItem, item.DropID, item.ID); } } void ShowRewardItems(SupplyDropDetailsItem detailsItem, List dropId, int id) { List rewardItems = detailsItem.rewardItems; List lines = detailsItem.lines; for (int j = 0; j < rewardItems.Count; j++) { var rewardItem = rewardItems[j]; if (dropId.Count > j) { rewardItem.gameObject.SetActive(true); if (j == 0) { SupplyDropGameplayCash supplyDropGameplayCash = _tables.TbSupplyDropGameplayCash.DataMap[id]; int max = playerItemData.GetExtraCoinMag(supplyDropGameplayCash.MaxRewardDisplay); rewardItem.text_num.text = LocalizationMgr.GetFormatTextValue("UI_SupplydropPopupPanel_3", ConvertTools.GetNumberString(max)); } else if (j == 1) { SupplyDropGameplayLure supplyDropGameplayLure = _tables.TbSupplyDropGameplayLure.DataMap[id]; int max = supplyDropGameplayLure.MaxRewardDisplay; max = playerItemData.IntInflation(max, null); rewardItem.text_num.text = LocalizationMgr.GetFormatTextValue("UI_SupplydropPopupPanel_3", ConvertTools.GetNumberString(max)); } else { List itemData = playerItemData.GetItemDataByDropId(dropId[j]); rewardItem.SetData(itemData[0]); if (itemData.Count > 1) { float min = itemData[0].count; float max = itemData[^1].count; for (int i = 1; i < itemData.Count; i++) { if (itemData[i].count < min) { min = itemData[i].count; } max += itemData[i].count; } rewardItem.text_num.text = $"{ConvertTools.GetNumberString((int)min)}-{ConvertTools.GetNumberString((int)max)}"; } } } else { rewardItem.gameObject.SetActive(false); lines[j - 1].SetActive(false); } } } public void Show(int index) { for (int i = 0; i < detailsItems.Count; i++) { detailsItems[i].gameObject.SetActive(i == index); } } }