Parameter | Type | Description |
---|---|---|
OBJECT | OBJECT | The object to check. |
VALUE(BOOLEAN) | TRUE if the object has an owner, FALSE if not. |
This function checks if an object is owned by another object container. If it does, this returns TRUE. If not, this returns FALSE.
action general a_quit named "quit";
action general a_takeall named "take all", "take everything";
action general a_dropall named "drop all", "drop everything";
action transitive a_take named "take", "pick up", "t";
action transitive a_drop named "drop", "discard", "d";
action transitive a_examine named "examine", "look at", "x";
object archetype o_all
{
onAction(a_take)
{
if (hasObject(player, this))
textln("You already have this.");
else
{
giveObject(player, this);
textln("Taken.");
}
}
onAction(a_drop)
{
if (!hasObject(player, this))
textln("You don't have this.");
else
{
giveObject(room, this);
textln("Dropped.");
}
}
}
object o_scissors : o_all named "scissors", "pair of scissors" uses determiners "the" tagged "takeable", "useful"
{
onAction(a_examine)
{
textln("Looks like a pair of scissors.");
}
onPlayerBrowse()
{
textln("A pair of scissors.");
}
onRoomBrowse()
{
textln("A pair of scissors is here.");
}
}
object o_ball : o_all named "ball" uses determiners "the" tagged "takeable"
{
onAction(a_examine)
{
textln("Looks like a ball.");
}
onPlayerBrowse()
{
textln("A ball.");
}
onRoomBrowse()
{
textln("A ball is lying on the ground.");
}
}
object o_key : o_all named "key", "small key" uses determiners "the" tagged "takeable", "useful"
{
onAction(a_examine)
{
textln("Looks like a small key.");
}
onPlayerBrowse()
{
textln("A small key.");
}
onRoomBrowse()
{
textln("A small key is here looking unused.");
}
}
room r_main;
player p_main;
world
{
init()
{
setPlayer(p_main);
setRoom(p_main, r_main);
giveObject(r_main, o_scissors);
giveObject(r_main, o_ball);
giveObject(r_main, o_key);
}
function seeAll()
{
textln("");
if (objectCount(room) > 0)
{
textln("In this room:");
browse(room);
}
else
{
textln("There's nothing in the room.");
}
textln("");
if (objectCount(player) > 0)
{
textln("I have:");
browse(player);
textln("");
textln("But these look useful:");
browseTagged(player, "useful");
}
else
{
textln("I have nothing.");
}
}
start()
{
textln("Type \"take\" to take objects, and \"drop\" to put them down.");
textln("Type \"examine\" to examine objects.");
textln("Type \"take all\" to take all objects.");
textln("Type \"drop all\" to drop all objects.");
textln("");
textln("Type \"quit\" to quit.");
seeAll();
}
onAction(a_quit)
{
quit;
}
onAction(a_takeall)
{
moveObjectsWithTag(room, player, "takeable");
textln("Took everything.");
}
onAction(a_dropall)
{
moveObjectsWithTag(player, room, "takeable");
textln("Dropped everything.");
}
afterEveryCommand()
{
seeAll();
}
}
GiveObject() — Gives an object to another object container.
RemoveObject() — Removes an object from its current owner.
MoveObjectsWithTag() — Moves a set of objects to another object container.
ObjectCount() — Returns the amount of objects an element owns.
HasObject() — Checks if an element owns an object.