public override object Evaluate(List <string> args, ExpressionEvaluator evaluator, Creature player, Target target, CastedSpell spell, RollResults dice = null) { ExpectingArguments(args, 1, 9); if (player == null) { return(null); } string spellId; if (spell == null) { spellId = Guid.NewGuid().ToString(); } else { spellId = spell.ID; } string effectName = Expressions.GetStr(args[0]); float lifeTime = 0; float secondsDelayStart = 0; float enlargeTime = 0; float shrinkTime = 0; float rotation = 0; float wallLength = 0; float distanceBetweenWallEffectsFeet = 2.5f; EffectLocation effectLocation = EffectLocation.CreatureBase; if (args.Count > 1) { lifeTime = (float)Expressions.GetDouble(args[1]); if (args.Count > 2) { effectLocation = Expressions.Get <EffectLocation>(args[2]); if (args.Count > 3) { secondsDelayStart = Expressions.GetFloat(args[3]); if (args.Count > 4) { enlargeTime = Expressions.GetFloat(args[4]); if (args.Count > 5) { shrinkTime = Expressions.GetFloat(args[5]); if (args.Count > 6) { rotation = Expressions.GetFloat(args[6]); if (args.Count > 7) { wallLength = Expressions.GetFloat(args[7]); if (args.Count > 8) { distanceBetweenWallEffectsFeet = Expressions.GetFloat(args[8]); } } } } } } } } OnPlayKnownEffect(effectName, spellId, player.taleSpireId, lifeTime, effectLocation, secondsDelayStart, enlargeTime, shrinkTime, rotation, wallLength, distanceBetweenWallEffectsFeet); return(null); }