using UnityEngine; public class FishingInventory : MonoBehaviour { [Header("Item Counts")] [SerializeField] private int fishCount; [SerializeField] private int rottenFishCount; [SerializeField] private int trashCount; [SerializeField] private int bottleCount; [SerializeField] private int plasticBagCount; [SerializeField] private int jellyfishPowderCount; [SerializeField] private int oldCompassCount; [SerializeField] private int memoryPieceCount; public int FishCount => fishCount; public int RottenFishCount => rottenFishCount; public int TrashCount => trashCount; public int BottleCount => bottleCount; public int PlasticBagCount => plasticBagCount; public int JellyfishPowderCount => jellyfishPowderCount; public int OldCompassCount => oldCompassCount; public int MemoryPieceCount => memoryPieceCount; private void OnValidate() { ClampCounts(); } private void ClampCounts() { fishCount = Mathf.Max(0, fishCount); rottenFishCount = Mathf.Max(0, rottenFishCount); trashCount = Mathf.Max(0, trashCount); bottleCount = Mathf.Max(0, bottleCount); plasticBagCount = Mathf.Max(0, plasticBagCount); jellyfishPowderCount = Mathf.Max(0, jellyfishPowderCount); oldCompassCount = Mathf.Max(0, oldCompassCount); memoryPieceCount = Mathf.Max(0, memoryPieceCount); } public void AddItem(FishingItemType itemType, int amount = 1) { if (itemType == FishingItemType.None || amount <= 0) return; switch (itemType) { case FishingItemType.Fish: fishCount += amount; break; case FishingItemType.RottenFish: rottenFishCount += amount; break; case FishingItemType.Trash: trashCount += amount; break; case FishingItemType.Bottle: bottleCount += amount; break; case FishingItemType.PlasticBag: plasticBagCount += amount; break; case FishingItemType.JellyfishPowder: jellyfishPowderCount += amount; break; case FishingItemType.OldCompass: oldCompassCount += amount; break; case FishingItemType.MemoryPiece: memoryPieceCount += amount; break; } } public bool HasItem(FishingItemType itemType, int amount = 1) { if (itemType == FishingItemType.None || amount <= 0) return false; return GetItemCount(itemType) >= amount; } public bool ConsumeItem(FishingItemType itemType, int amount = 1) { if (!HasItem(itemType, amount)) return false; switch (itemType) { case FishingItemType.Fish: fishCount -= amount; break; case FishingItemType.RottenFish: rottenFishCount -= amount; break; case FishingItemType.Trash: trashCount -= amount; break; case FishingItemType.Bottle: bottleCount -= amount; break; case FishingItemType.PlasticBag: plasticBagCount -= amount; break; case FishingItemType.JellyfishPowder: jellyfishPowderCount -= amount; break; case FishingItemType.OldCompass: oldCompassCount -= amount; break; case FishingItemType.MemoryPiece: memoryPieceCount -= amount; break; } return true; } public int GetItemCount(FishingItemType itemType) { switch (itemType) { case FishingItemType.Fish: return fishCount; case FishingItemType.RottenFish: return rottenFishCount; case FishingItemType.Trash: return trashCount; case FishingItemType.Bottle: return bottleCount; case FishingItemType.PlasticBag: return plasticBagCount; case FishingItemType.JellyfishPowder: return jellyfishPowderCount; case FishingItemType.OldCompass: return oldCompassCount; case FishingItemType.MemoryPiece: return memoryPieceCount; case FishingItemType.None: default: return 0; } } public void ResetInventory() { fishCount = 0; rottenFishCount = 0; trashCount = 0; bottleCount = 0; plasticBagCount = 0; jellyfishPowderCount = 0; oldCompassCount = 0; memoryPieceCount = 0; } }