protected void GenerateEffect()
        {
            Array      values     = EffectType.GetValues(typeof(EffectType));
            EffectType effectType = (EffectType)values.GetValue(GameEnvironment.Random.Next(values.Length - magicEffects));

            bool multiplier = true;

            if (GameEnvironment.Random.NextDouble() < mulchance)
            {
                multiplier = false;
            }

            Dictionary <string, object> ret = new Dictionary <string, object>();
            double effectValue = 0;

            if (multiplier)
            {
                effectValue = 1 + Math.Round(GameEnvironment.Random.NextDouble(), 2);
            }
            else
            {
                effectValue = Math.Round(acceptablePower * GameEnvironment.Random.NextDouble());
            }

            effectValue *= balanceMultiplier[effectType];
            AddEffect(effectType, effectValue, multiplier);
        }