using asap.core; using cfg; using GameCore; using System.Collections.Generic; using System.Linq; using UnityEngine; public class FishingBuffLayoutPopupPanel : MonoBehaviour { RectTransform defaultStyle; RectTransform targetStyle; HomeBuffItem btn_buff_prefab; HomeBuffItem btn_buff_target; BuffDataCenter buffDataCenter; FishingData fishingData; FishBuffTimeData targetBuffTimeData; Transform content; List fishBuffTimeData; private void Awake() { content = transform.Find("root/ScrollView/Viewport/Content"); defaultStyle = transform.Find("root/ScrollView/Viewport/Content/btn_buff_beilv/Ani_Container/icon").GetComponent(); targetStyle = transform.Find("root/ScrollView/Viewport/Content/btn_buff_target/Ani_Container/icon").GetComponent(); btn_buff_prefab = transform.Find("root/ScrollView/Viewport/Content/btn_buff_beilv").GetComponent(); } private void Start() { btn_buff_prefab.gameObject.SetActive(false); fishingData = GContext.container.Resolve(); buffDataCenter = GContext.container.Resolve(); fishBuffTimeData = buffDataCenter.GetGroupBuff(); int mapId = fishingData.MapId; var mapBuffTimeData = buffDataCenter.GetMapBuffTimeData(mapId); if (mapBuffTimeData != null) { fishBuffTimeData.Add(mapBuffTimeData); } targetBuffTimeData = buffDataCenter.GetBuffData(); if (targetBuffTimeData != null) { fishBuffTimeData.Add(targetBuffTimeData); } ShowBuff(); } void ShowBuff() { fishBuffTimeData = fishBuffTimeData.Where(x => x.isEnd == false).ToList(); fishBuffTimeData.Sort((a, b) => b.SortID.CompareTo(a.SortID)); int dataCount = fishBuffTimeData.Count; for (int i = 0; i < dataCount; i++) { HomeBuffItem homeBuffItem; var item = Instantiate(btn_buff_prefab.gameObject, content); homeBuffItem = item.GetComponent(); if (targetBuffTimeData != null && fishBuffTimeData[i].buffID == targetBuffTimeData.buffID) { btn_buff_target = homeBuffItem; homeBuffItem.InitPanel(fishBuffTimeData[i], "", targetStyle); CollectingTargetInit targetWeightInit = GContext.container.Resolve().collectingTargetInit; if (targetWeightInit != null) { btn_buff_target.InitPanel(targetBuffTimeData, targetWeightInit.BuffIcon, targetStyle); } } else { homeBuffItem.InitPanel(fishBuffTimeData[i], "", defaultStyle); } } } }