Files
MinFt/Client/Assets/Scripts/UI/Home/HomeSupplyDropPanel.cs
2026-04-27 12:07:32 +08:00

81 lines
2.2 KiB
C#

using asap.core;
using cfg;
using GameCore;
using System.Collections;
using UnityEngine;
using UnityEngine.AddressableAssets;
public class HomeSupplyDropPanel : MonoBehaviour
{
PlayerData playerData;
Tables _tables;
SupplyDropPopupPanel supplyDropPanel;
int ShowSupplyDropIndex = -1;
int allCount = 0;
bool isShow;
public void Init()
{
_tables = GContext.container.Resolve<Tables>();
playerData = GContext.container.Resolve<PlayerData>();
allCount = _tables.TbSupplyDrop.DataList.Count;
var DataList = _tables.TbEnergyDef.DataList;
for (int i = 0; i < DataList.Count; i++)
{
if (DataList[i].SupplyDrop > 0)
{
ShowSupplyDropIndex = i;
break;
}
}
}
public bool Show()
{
if (!GContext.container.Resolve<FishingEventData>().IsOpenDrop)
{
return false;
}
if (ShowSupplyDropIndex == -1)
{
return false;
}
StopCoroutine("Hide");
if (playerData.magnification >= ShowSupplyDropIndex && playerData.magnification < ShowSupplyDropIndex + allCount)
{
gameObject.SetActive(true);
if (!isShow)
{
LoadSupplyDropPanel();
isShow = true;
}
if (supplyDropPanel != null)
{
supplyDropPanel.Show(playerData.magnification - ShowSupplyDropIndex);
}
StartCoroutine("Hide");
return true;
}
else
{
gameObject.SetActive(false);
return false;
}
}
async void LoadSupplyDropPanel()
{
GameObject go = await Addressables.LoadAssetAsync<GameObject>("SupplydropPopupPanel").Task;
if (go != null)
{
var panel = Instantiate(go, transform);
supplyDropPanel = panel.transform.Find("root").GetComponent<SupplyDropPopupPanel>();
supplyDropPanel.Init();
supplyDropPanel.Show(playerData.magnification - ShowSupplyDropIndex);
}
}
IEnumerator Hide()
{
yield return new WaitForSeconds(2f);
gameObject.SetActive(false);
}
}