public override IEffectDescription GetDescriptionType()
    {
        GiveModifierEffectDescription desc = new GiveModifierEffectDescription(effectType, modifierType);

        desc.modifierDescription = modifierGenerator.GetDescriptionType();
        return(desc);
    }
    public override IEffectDescription Generate()
    {
        GiveModifierEffectDescription desc = new GiveModifierEffectDescription(effectType, modifierType);

        desc.durationType = (random.NextDouble() > 0.5) ? DurationType.END_OF_TURN : DurationType.FOREVER;

        if (effectType == EffectType.GIVE_MANA_COST_TAX)
        {
            // Taxing effects for your turn only won't really work
            desc.durationType = DurationType.FOREVER;
        }

        double durationMod = PowerBudget.GetDurationTypeModifier(desc.durationType);

        modifierGenerator.SetupParameters(random, model, minAllocatedBudget / durationMod, maxAllocatedBudget / durationMod);
        desc.modifierDescription = modifierGenerator.Generate();

        return(desc);
    }