public override double GetMinCost()
    {
        ManaCostModifierDescription desc = GetDescriptionType() as ManaCostModifierDescription;

        desc.manaCost = 1;

        return(desc.PowerLevel());
    }
    public override IModifierDescription Generate()
    {
        ManaCostModifierDescription desc = new ManaCostModifierDescription(positive);

        int max = ProceduralUtils.GetUpperBound(desc, ref desc.manaCost, MIN_STATS, MAX_STATS, maxAllocatedBudget);
        int min = ProceduralUtils.GetLowerBound(desc, ref desc.manaCost, MIN_STATS, MAX_STATS, minAllocatedBudget);

        desc.manaCost = random.Next(min, max + 1);

        return(desc);
    }