Files
WhaleAdventure_VR/Assets/My project/Fishing Scripts/UI/FishingInventory.cs
2026-06-25 17:39:42 +09:00

179 lines
4.8 KiB
C#

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