public override object Evaluate(List <string> args, ExpressionEvaluator evaluator, Creature player, Target target = null, CastedSpell spell = null, RollResults dice = null)
        {
            ExpectingArguments(args, 1, 15);
            if (player != null)
            {
                string effectName;
                int    hue, saturation, brightness, timeOffset, secondaryHue, secondarySaturation, secondaryBrightness, yOffset, xOffset;
                double scale, rotation, autoRotation, velocityX, velocityY;
                AddSpellCastEffect.GetVisualEffectParameters(args, player, target, spell, out effectName, out hue, out saturation, out brightness, out scale, out rotation, out autoRotation, out timeOffset, out secondaryHue, out secondarySaturation, out secondaryBrightness, out xOffset, out yOffset, out velocityX, out velocityY);

                player.AddSpellHitEffect(effectName, hue, saturation, brightness,
                                         scale, rotation, autoRotation, timeOffset,
                                         secondaryHue, secondarySaturation, secondaryBrightness, xOffset, yOffset, velocityX, velocityY);
            }

            return(null);
        }
        public EffectEventArgs(List <string> args, Creature player, Target target, CastedSpell spell)
        {
            string effectName;
            int    hue, saturation, brightness, timeOffset, secondaryHue, secondarySaturation, secondaryBrightness, offsetX, offsetY;
            double scale, rotation, autoRotation, velocityX, velocityY;

            AddSpellCastEffect.GetVisualEffectParameters(args, player, target, spell, out effectName, out hue, out saturation, out brightness, out scale, out rotation, out autoRotation, out timeOffset, out secondaryHue, out secondarySaturation, out secondaryBrightness, out offsetX, out offsetY, out velocityX, out velocityY);

            EffectName          = effectName;
            Hue                 = hue;
            Saturation          = saturation;
            Brightness          = brightness;
            TimeOffset          = timeOffset;
            SecondaryHue        = secondaryHue;
            SecondarySaturation = secondarySaturation;
            SecondaryBrightness = secondaryBrightness;
            OffsetX             = offsetX;
            OffsetY             = offsetY;
            Scale               = scale;
            Rotation            = rotation;
            AutoRotation        = autoRotation;
            VelocityX           = velocityX;
            VelocityY           = velocityY;
        }