public override object Evaluate(List <string> args, ExpressionEvaluator evaluator, Character player, Target target = null, CastedSpell spell = null, DiceStoppedRollingData dice = null) { ExpectingArguments(args, 1, 2); if (player != null) { string fileName = Expressions.GetStr(args[0], player, target, spell); int timeOffsetMs = 0; if (args.Count > 1) { timeOffsetMs = Expressions.GetInt(args[1], player, target, spell); } player.AddSpellCastSoundEffect(fileName, timeOffsetMs); } return(null); }