ResourceMaker sera utilisé pour géré la création de mini ressources cliquables dans une autre tâche. ResourceRemover change le texte en vert si les ressources nécessaires sont disponibles ou en rouge dans le cas contraire.
97 lines
1.9 KiB
C#
97 lines
1.9 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
|
|
/// <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 = 20;
|
|
private int _woodAmount = 20;
|
|
private int _foodAmount = 20;
|
|
|
|
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;
|
|
}
|
|
|
|
|
|
|
|
}
|