SYNOPSIS
mixed P_EXPLORABLE "Explorable"
mixed Set(P_EXPLORABLE, mixed value)
mixed Query(P_EXPLORABLE)
or
mixed SetExplorable(mixed value)
mixed QueryExplorable()
mixed AddExplorable (mixed new)
Evaluated by:
int DoExplore (mixed arg)
DESCRIPTION
This property determines if this room itself is explorable (the mere act
of entering counts) or if the scrutinization of a detail is needed.
The default value is 0, i.e. nothing in the room is explorable.
If the value is 1, the room itself is explorable. If the value is a string,
it is the name of the detail which scrutinization counts. The detail
name may be prepended by "look:", "listen:", "smell:" or "read:" if
just the specified action on the detail counts as exploration.
The properties value may also be an array of the aforementioned values
to combine the several possibilities. AddExplorable() helps in building
this array.
The value is analyzed using the lfun DoExplore(). This lfun is passed
as argument what is explored, checks if the given thing is explorable at
all and on success calls this_player()->SetExplored(). Result is 0 on
failure and non-zero on success.
IMPORTANT: Explorable rooms must be checked in with the /obj/explorer
controlling object - any archwizard can do this.
OSB needs more explorable rooms and details, so don't hesitate!
EXAMPLE
// Entering the room counts as exploration, also listening to the clock.
// Variant A)
SetExplorable( ({ 1, "listen:clock" }) );
// Variant B)
AddExplorable(1);
AddExplorable("listen:clock");
AVAILABILITY
Include: <properties.h>
Availability: /std/room/(description) and descendants.
SEE ALSO
room(S), details(P), noises(P), readmsgs(P), smells(P)