gather-and-defend/Assets/Scripts/ResourceManager.cs
Ader Alisma 01 3e00af6067 Update sur scene de TestResource
Ajout de ResourceText. Permet de montrer l'inventaire des ressources dynamiquement.

Modification de la gestion d'instance dans ResourceManager

Changement des boutons pour la version TextMeshPro

Debut de la coroutine de ResourceMaker
2023-05-20 18:50:27 -04:00

88 lines
1.8 KiB
C#

using UnityEngine;
/// <summary>
/// Sert d'inventaire et gère l'accès aux ressources
/// </summary>
public class ResourceManager : MonoBehaviour
{
private static ResourceManager _instance = null;
private int _rockAmount = 0;
private int _woodAmount = 0;
private int _foodAmount = 0;
private const int MAX = 100;
private const int MIN = 0;
public ResourceManager() { }
public static ResourceManager Instance
{
get
{
return _instance;
}
}
private void Awake()
{
if (_instance != null && _instance != this)
{
Destroy(this);
}
else
{
_instance = this;
}
}
public int RockAmount
{
set
{
if (_rockAmount + value < MAX)
{
_rockAmount += value;
}
}
get { return _rockAmount; }
}
public int WoodAmount
{
set
{
if (_woodAmount + value < MAX)
{
_woodAmount += value;
}
}
get { return _woodAmount; }
}
public int FoodAmount
{
set
{
if (_foodAmount + value < MAX)
{
_foodAmount += value;
}
}
get { return _foodAmount; }
}
public void Remove(int rock, int wood, int food)
{
_rockAmount = _rockAmount - rock < MIN ? MIN : _rockAmount - rock;
_rockAmount = _rockAmount - wood < MIN ? MIN : _rockAmount - wood;
_foodAmount = _foodAmount - food < MIN ? MIN : _foodAmount - food;
}
public bool EnoughFor(int rock, int wood, int food = 0)
{
if (rock > _rockAmount || wood > _woodAmount || food > _foodAmount)
{
return false;
}
return true;
}
}