protected void SetupTextEffect(TextEffectPoolable textEffect, Entity entity, string text, Color color, Sprite sprite = null)
    {
        textEffect.GameObject.transform.position = entity.GameObject.transform.position + new Vector3(0, 1, 0);
        textEffect.GameObject.GetComponent<TextEffectBehaviour>().InitialPosition = textEffect.GameObject.transform.position;

        Text textComponent = textEffect.GameObject.GetComponentInChildren<Text>();
        textComponent.text = text;
        textComponent.color = color;
        Image image = textEffect.GameObject.GetComponentInChildren<Image>();

        if (sprite != null)
        {
            textEffect.GameObject.GetComponent<TextEffectBehaviour>()._hasAnImage = true;
            image.sprite = sprite;
        }
        else
        {
            image.color = new Color(image.color.r, image.color.g, image.color.b, 0);
            textEffect.GameObject.GetComponent<TextEffectBehaviour>()._hasAnImage = false;
        }

    }
 public override void DisplayText(TextEffectPoolable textEffect, Entity entity)
 {
     SetupTextEffect(textEffect, entity, "+ " + _value.ToString() + " PORTÉE", ColorErule._gain);
 }
 public override void DisplayText(TextEffectPoolable textEffect, Entity entity)
 {
     SetupTextEffect(textEffect, entity, "- " + _value.ToString() + " DEGATS FIXES", ColorErule._loss);
 }
 public override void DisplayText(TextEffectPoolable textEffect, Entity entity)
 {
     SetupTextEffect(textEffect, entity, "- " + _value.ToString() + "% RÉSISTANCE", ColorErule._loss, _element.getSprite());
 }
 public abstract void DisplayText(TextEffectPoolable textEffect, Entity entity);
 public override void DisplayText(TextEffectPoolable textEffect, Entity entity)
 {
     SetupTextEffect(textEffect, entity, _value.ToString(), ColorErule._heal);        
 }
 public override void DisplayText(TextEffectPoolable textEffect, Entity entity)
 {
     SetupTextEffect(textEffect, entity, _value.ToString(), ColorErule._damage, _element.getSprite());
 }