179 lines
4.8 KiB
C#
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;
|
|
}
|
|
}
|