public override object Evaluate(List<string> args, ExpressionEvaluator evaluator, Character player, Target target = null, CastedSpell spell = null, DiceStoppedRollingData dice = null) { ExpectingArguments(args, 1, 4); string fillColor = "player"; string outlineColor = "player"; int delayMs = 0; if (args.Count > 1) { fillColor = args[1].Trim(); if (args.Count > 2) { outlineColor = args[2].Trim(); if (args.Count > 3) delayMs = Expressions.GetInt(args[3], player, target, spell, dice); } } CreaturePlusModId recipient = Expressions.GetCustomData<CreaturePlusModId>(evaluator.Variables); if (recipient != null && recipient.Creature is Character recipientPlayer) recipientPlayer.ShowState(Expressions.GetStr(args[0], player, target, spell), fillColor, outlineColor, delayMs); else if (player != null) player.ShowState(Expressions.GetStr(args[0], player, target, spell), fillColor, outlineColor, delayMs); return null; }