Files
survival-game/Assets/Mirror/Examples/PickupsDropsChilds/Scripts/Interfaces/EquippedBox.cs
2025-06-16 15:14:23 +02:00

67 lines
1.9 KiB
C#

using UnityEngine;
namespace Mirror.Examples.PickupsDropsChilds
{
public class EquippedBox : MonoBehaviour, IEquipped
{
// Note: This example doesn't include animations or sounds for simplicity.
// These are just here for illustration purposes...the implementation
// methods could do something interesting like play a sound or animation.
[Header("Components")]
public Animator animator;
public AudioSource audioSource;
[Header("Equipped Item")]
[SerializeField]
EquippedItemConfig _equippedItemConfig;
public EquippedItemConfig equippedItemConfig
{
get => _equippedItemConfig;
set
{
Debug.Log($"{transform.root.name} EquippedItemConfig set from {_equippedItemConfig} to {value}", gameObject);
_equippedItemConfig = value;
}
}
void Reset()
{
equippedItemConfig = new EquippedItemConfig { usages = 0, maxUsages = 0 };
}
// Play appropriate animation or sound
public void Use()
{
// Effectively unlimited uses
if (equippedItemConfig.maxUsages == 0)
{
Debug.Log("Box used");
return;
}
if (equippedItemConfig.usages > 0)
Debug.Log("Box used");
else
Debug.Log("Box is out of uses");
}
// Play appropriate animation or sound
public void AddUsages(byte usages)
{
Debug.Log($"Box added {usages} usages");
}
// Play appropriate animation or sound
public void ResetUsages()
{
Debug.Log("Box reset");
}
// Play appropriate animation or sound
public void ResetUsages(byte usages)
{
Debug.Log($"Box reset usages to {usages}");
}
}
}