private bool ApplyBuff(GameObject target, AttackBuff buff, float duration, float potency, float chance)
    {
        if (buff == AttackBuff.NONE)
        {
            return(false);
        }
        //Apply buff
        bool success = target.GetComponent <PlayerStats>().AddBuff(buff, potency, chance);

        if (!success)
        {
            return(false);
        }
        //If it succeeded, show a popup and remove the buff in a few seconds
        string message = (potency > 0 ? "+" : "-") + System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(buff.ToString().Replace("_", " ").ToLower());
        Color  color   = (potency > 0 ? Color.green : Color.red);

        ShowPopup(message, 2, color, 15, target.transform.position, false, -.001f, .002f);
        StartCoroutine(RemoveBuff(target, buff, duration, potency));
        return(true);
    }