Files
back_cantanBuilding/Assets/Scripts/UI/Buff/FishingBuffLayoutPopupPanel.cs
2026-05-26 16:15:54 +08:00

77 lines
2.8 KiB
C#

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> 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<RectTransform>();
targetStyle = transform.Find("root/ScrollView/Viewport/Content/btn_buff_target/Ani_Container/icon").GetComponent<RectTransform>();
btn_buff_prefab = transform.Find("root/ScrollView/Viewport/Content/btn_buff_beilv").GetComponent<HomeBuffItem>();
}
private void Start()
{
btn_buff_prefab.gameObject.SetActive(false);
fishingData = GContext.container.Resolve<FishingData>();
buffDataCenter = GContext.container.Resolve<BuffDataCenter>();
fishBuffTimeData = buffDataCenter.GetGroupBuff();
int mapId = fishingData.MapId;
var mapBuffTimeData = buffDataCenter.GetMapBuffTimeData(mapId);
if (mapBuffTimeData != null)
{
fishBuffTimeData.Add(mapBuffTimeData);
}
targetBuffTimeData = buffDataCenter.GetBuffData<CollectionTargetWeight>();
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<HomeBuffItem>();
if (targetBuffTimeData != null && fishBuffTimeData[i].buffID == targetBuffTimeData.buffID)
{
btn_buff_target = homeBuffItem;
homeBuffItem.InitPanel(fishBuffTimeData[i], "", targetStyle);
CollectingTargetInit targetWeightInit = GContext.container.Resolve<FishingEventData>().collectingTargetInit;
if (targetWeightInit != null)
{
btn_buff_target.InitPanel(targetBuffTimeData, targetWeightInit.BuffIcon, targetStyle);
}
}
else
{
homeBuffItem.InitPanel(fishBuffTimeData[i], "", defaultStyle);
}
}
}
}