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); }