using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using GatherAndDefend.Events;
using UnityEngine.UI;
///
/// Gère l'affichage des resources
///
public class ResourceText : MonoBehaviour
{
private Color _populationCriticalColor = Color.red;
private Color _populationWarningColor = Color.yellow;
private Color _populationRegularColor = Color.white;
[SerializeField]
private TextMeshProUGUI _rockText;
[SerializeField]
private TextMeshProUGUI _woodText;
[SerializeField]
private TextMeshProUGUI _foodText;
[SerializeField]
private TextMeshProUGUI _populationText;
[SerializeField]
private Image _populationCriticalIndicator;
private ResourceManager _resourceManager;
void Start()
{
_resourceManager = ResourceManager.Instance;
_populationCriticalIndicator.enabled = false;
}
void Update()
{
RefreshResources();
RefreshPopulation();
}
void RefreshResources()
{
_rockText.text = _resourceManager.RockAmount.ToString();
_woodText.text = _resourceManager.WoodAmount.ToString();
_foodText.text = _resourceManager.FoodAmount.ToString();
}
void RefreshPopulation()
{
float current = _resourceManager.CurrentPopulation;
float max = _resourceManager.MaximumPopulation;
_populationCriticalIndicator.enabled = current >= max;
var chosenColor = _populationRegularColor;
if (current >= max)
{
chosenColor = _populationCriticalColor;
_populationText.fontStyle = FontStyles.Bold;
}
else if (((float)current / (float)max) > GlobalConfig.Instance.Current.populationWarningPercentage)
{
chosenColor = _populationWarningColor;
_populationText.fontStyle = FontStyles.Bold;
}
else
{
_populationText.fontStyle = 0;
}
var hexColor = $"#{ToHexString(chosenColor.r)}{ToHexString(chosenColor.g)}{ToHexString(chosenColor.b)}";
_populationText.text = $"{_resourceManager.CurrentPopulation} / {_resourceManager.MaximumPopulation}";
}
string ToHexString(float colorValue)
{
return ((int)(255 * colorValue)).ToString("X2");
}
}