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