using UnityEngine; /// /// Sert d'inventaire et gère l'accès aux ressources /// public class ResourceManager : MonoBehaviour { private static ResourceManager _instance = null; private int _rockAmount = 20; private int _woodAmount = 20; private int _foodAmount = 20; public enum ResourceChoice { Rock, Wood, Food }; public enum AddOrRemove { Add, Remove }; 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; _woodAmount = (_woodAmount - wood) < MIN ? MIN : _woodAmount - wood; _foodAmount = (_foodAmount - food) < MIN ? MIN : _foodAmount - food; } public bool EnoughFor(int rock, int wood, int food = 0) { if (_rockAmount >= rock && _woodAmount >= wood && _foodAmount >= food) { return true; } return false; } }