Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/HUDBaits.cs
2026-02-21 16:45:37 +08:00

59 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class HUDBaits : MonoBehaviour
{
public HUDBaitsWidget hookWidget;
public List<HUDBaitsWidget> baitWidgets = new List<HUDBaitsWidget>();
public Text noBaitMessage;
public void Refresh(FishingHands fishingHands)
{
if (fishingHands == null)
{
return;
}
base.gameObject.SetActive((bool)fishingHands.bait && fishingHands.bait.equipmentObject != null && fishingHands.bait.equipmentObject.prefab != null && !fishingHands.fishingRod.isOnRodStand);
if (!IsIconOk(fishingHands.bait.equipmentObject))
{
return;
}
hookWidget.Refresh(fishingHands.bait.equipmentObject, fishingHands.bait.hookSize);
for (int i = 0; i < baitWidgets.Count; i++)
{
if (i < fishingHands.bait.baitParts.Count)
{
if ((bool)fishingHands.bait.baitParts[i] && !IsIconOk(fishingHands.bait.baitParts[i].equipmentObject))
{
return;
}
baitWidgets[i].Refresh((!fishingHands.bait.baitParts[i] || fishingHands.bait.equipmentObject == null) ? null : fishingHands.bait.baitParts[i].equipmentObject);
baitWidgets[i].gameObject.SetActive(true);
}
else
{
baitWidgets[i].Refresh(null);
baitWidgets[i].gameObject.SetActive(false);
}
}
noBaitMessage.transform.parent.gameObject.SetActive((bool)fishingHands.bait && fishingHands.bait.baitType == Bait.BaitType.HOOK && !fishingHands.bait.HasAnyBaitParts());
}
private bool IsIconOk(EquipmentObject equipmentObject)
{
if (equipmentObject != null && equipmentObject.icon == null && (bool)GlobalSettings.Instance)
{
LeanTween.delayedCall(UnityEngine.Random.Range(0.5f, 1f), (Action)delegate
{
HUDManager.Instance.hudBaits.Refresh(GameController.Instance.fishingPlayer.currentHands);
});
return false;
}
return true;
}
}