Function: ObjectHasTag
Function: ObjectHasTag

Function: ObjectHasTag

ObjectHasTag ( OBJECT, TAG )

Checks if an object has an assigned tag.

Parameters

Parameter Type Description
OBJECT OBJECT The object to inspect.
TAG VALUE(STRING) The tag to test for.

Returns

VALUE(BOOLEAN) TRUE on a tag match, FALSE on no match.

What It Does

This function inspects an object and returns TRUE if the provided tag is one the tags that the provided object is assigned, or FALSE if not.

Unlike names, tags are not sanitized on assignment to objects - they are added as-is.

Tags are matched case-insensitively.

Example

Object Tags Example


action general a_quit named "quit";
action transitive a_eat named "eat", "consume";
action transitive a_drive named "drive";
action transitive a_examine named "examine", "look at", "x";
action modal a_make named "make the thing", "make thing" 
	uses modes "edible", "not edible", "not driveable", "driveable", "inert";

object o_thing named "thing" uses determiners "the"
{
	onAction(a_eat)
	{
		if (objectHasTag(this, "edible"))
			textln("You ate the thing. Delicious!");
		else
			textln("You can't eat this.");
	}

	onAction(a_drive)
	{
		if (objectHasTag(this, "driveable"))
			textln("You drive the thing. Vroom!");
		else
			textln("You can't drive this.");
	}

	onAction(a_examine)
	{
		local edible = objectHasTag(this, "edible");
		local driveable = objectHasTag(this, "driveable");

		if (edible && driveable)
			textln("It's a driveable, edible thing.");
		else if (edible)
			textln("It's an edible thing.");
		else if (driveable)
			textln("It's a driveable thing.");
		else
			textln("It's a thing.");
	}

}

world
{
	init()
	{
		giveObject(this, o_thing);
	}

	start()
	{
		textln("There's a thing here.");
		textln(
			"You can change the characteristics of the thing by typing \"make the thing\" and a"
			+ "mode: \"edible\", \"driveable\", \"not edible\" or \"not driveable\". Then you can "
			+ "\"eat\" or \"drive\" it."
		);
		textln("Typing \"make the thing inert\" will remove those characteristics.");
		textln("");
		textln("Type \"quit\" to quit.");
	}

	onAction(a_quit)
	{
		quit;
	}

	onModalAction(a_make, "edible")
	{
		addObjectTag(o_thing, "edible");
		textln("The thing is now edible.");
	}

	onModalAction(a_make, "driveable")
	{
		addObjectTag(o_thing, "driveable");
		textln("The thing is now driveable.");
	}

	onModalAction(a_make, "not edible")
	{
		removeObjectTag(o_thing, "edible");
		textln("The thing is now not edible.");
	}

	onModalAction(a_make, "not driveable")
	{
		removeObjectTag(o_thing, "driveable");
		textln("The thing is now not driveable.");
	}

	onModalAction(a_make, "inert")
	{
		removeObjectTagFromAllIn(world, "edible");
		removeObjectTagFromAllIn(world, "driveable");
		textln("The thing is now inert.");
	}

}

See Also

AddObjectTag() — Adds a tag to an object.
RemoveObjectTag() — Removes a tag from an object.
AddObjectTagToAllIn() — Adds a tag to each object in an object container element.
RemoveObjectTagFromAllIn() — Removes a tag from each object in an object container element.

×

Modal Header