2026.06.25 Fishing scene
This commit is contained in:
178
Assets/My project/Fishing Scripts/UI/FishingInventory.cs
Normal file
178
Assets/My project/Fishing Scripts/UI/FishingInventory.cs
Normal file
@@ -0,0 +1,178 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user