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

154 lines
4.2 KiB
C#

using BitStrap;
using UnityEngine;
using UnityEngine.UI;
public class EquipmentCurrentObject : MonoBehaviour
{
public Image icon;
public Image defaultIcon;
public GameObject equipmentChanged;
public Button selectButton;
public Button removeButton;
public EquipmentObject.EquipmentType equipmentType = EquipmentObject.EquipmentType.COUNT;
[ReadOnly]
public EquipmentObject equipmentObject;
[HideInInspector]
public EquipmentGUI equipmentGUI;
public int baitId;
public void Awake()
{
ShowEquipmentChanged(false);
}
public void EquipObject(EquipmentObject newObject, bool onlyRefresh = false)
{
if (newObject != null && !(newObject.prefab == null))
{
equipmentObject = newObject;
defaultIcon.enabled = false;
icon.sprite = equipmentObject.icon;
if ((bool)equipmentObject.icon)
{
icon.rectTransform.sizeDelta = new Vector2(icon.rectTransform.sizeDelta.y * (equipmentObject.icon.rect.width / equipmentObject.icon.rect.height), icon.rectTransform.sizeDelta.y);
}
icon.color = new Color(icon.color.r, icon.color.g, icon.color.b, (!(equipmentObject.icon == null)) ? 1f : 0f);
selectButton.interactable = true;
removeButton.gameObject.SetActive(equipmentType == EquipmentObject.EquipmentType.FLOAT || equipmentType == EquipmentObject.EquipmentType.BAIT || equipmentType == EquipmentObject.EquipmentType.HOOK || equipmentType == EquipmentObject.EquipmentType.BOILIE || equipmentType == EquipmentObject.EquipmentType.ROD_STAND || equipmentType == EquipmentObject.EquipmentType.FEEDER);
removeButton.gameObject.SetActive(true);
if (equipmentObject.hasAmount && !onlyRefresh)
{
equipmentObject.amount--;
}
equipmentGUI.equipmentManager.EquipObject(equipmentObject, -1, (!onlyRefresh) ? (-1) : baitId);
if (equipmentType == EquipmentObject.EquipmentType.FLOAT)
{
equipmentGUI.ShowFloatParams(true);
}
}
}
public void RemoveObjectBtn()
{
if (equipmentObject != null && (bool)equipmentObject.prefab && (equipmentType == EquipmentObject.EquipmentType.FLOAT || equipmentType == EquipmentObject.EquipmentType.FEEDER))
{
equipmentGUI.equipmentCurrentObjects[5].RemoveObject();
}
RemoveObject();
}
public void RemoveObject(bool onlyRefresh = false)
{
defaultIcon.enabled = true;
icon.sprite = null;
selectButton.interactable = false;
removeButton.gameObject.SetActive(false);
if (equipmentObject != null && equipmentObject.hasAmount && !onlyRefresh)
{
equipmentObject.amount++;
}
if (equipmentObject != null && (bool)equipmentObject.prefab && equipmentGUI.isCurrentSet && equipmentGUI.canEquipmentBeChanged)
{
equipmentGUI.equipmentManager.EquipmentChanged(equipmentType);
ShowEquipmentChanged(true);
}
equipmentGUI.equipmentManager.UnequipObject(equipmentType, -1, baitId);
equipmentGUI.RefreshInfo();
equipmentObject = null;
SetActive(false);
if (equipmentType == EquipmentObject.EquipmentType.FLOAT)
{
equipmentGUI.ShowFloatParams(false);
}
equipmentGUI.UnequipItem();
}
public void BuyObject(EquipmentObject equipmentObject)
{
equipmentGUI.equipmentManager.BuyObject(equipmentObject);
}
public void SellObject(EquipmentObject equipmentObject)
{
equipmentGUI.equipmentManager.SellObject(equipmentObject);
}
public void SelectObject()
{
equipmentGUI.DeselectedEquipment();
equipmentGUI.ChangeTab(equipmentObject);
equipmentGUI.RefreshInfo(equipmentObject);
}
public void ShowEquipmentChanged(bool show)
{
if (!GameController.Instance)
{
show = false;
}
show = false;
equipmentChanged.SetActive(show);
}
public void SetActive(bool active)
{
Color color = icon.color;
if (equipmentObject == null)
{
color.a = 0f;
}
else if (!active)
{
color.a = 0.1f;
}
else
{
color.a = 1f;
}
icon.color = color;
}
public void Refresh()
{
EquipmentObject equipmentObject = null;
equipmentObject = ((equipmentType != EquipmentObject.EquipmentType.BAIT) ? equipmentGUI.equipmentManager.GetCurrentEquipment(equipmentType) : equipmentGUI.equipmentManager.GetCurrentEquipmentBaits()[baitId]);
if (equipmentObject != null && equipmentObject.prefab != null)
{
EquipObject(equipmentObject, equipmentObject.hasAmount);
}
else
{
RemoveObject(true);
}
removeButton.interactable = equipmentGUI.canEquipmentBeChanged;
}
}