Ader Alisma 01 1a45b9a1bb Ajout de ClickBehavior pour détecter le click sur les yields
LevelManager prefab comporte aussi ResourceManager et ClickBehavior

Modification de la vitesse de création des yields

Création des yields prefabs
2023-06-11 16:06:01 -04:00

117 lines
2.5 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 = 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;
}
private void Update()
{
if (Input.GetMouseButtonDown(0))
{
Vector2 clickPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition);
RaycastHit2D hit = Physics2D.Raycast(clickPoint, transform.up);
if (hit.collider != null)
{
if (hit.collider.CompareTag("Resource"))
{
hit.collider.GetComponent<ResourceMaker>().GenerateResource();
}
}
}
}
}