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; } }