Generic Performance Room (#1998)

(an instance of Generic Room with Stacking made by Marcus)

     If you are wearing a costume in here (that is, if you are a child of the Generic Thespian, #1223, wearing a child of the Generic Costume, #1226), your own name will be replaced with the name of your costume's role when you :say, :emote, or perform certain stage-talk functions.

Go to location of this object, wooden box.


HELP MANUAL:
     As a child of the Generic Room with Stacking (#563), this room supports stacking.
     As a descendant of #110 and #176 this room supports MOO-weather, ambient noise, and 
other features.
     In the Performance Room, moreover, if you are a Thespian (a descendant of #1223) 
and are wearing a costume (a descendant of #1226), the most common expressive actions, 
:say, :emote, and certain stage-feature functions (borrowed from #112, the Stage 
Talk FO) are emended to refer not to your player.name, but your costume.role_msg.
     (Other verbs are likely to reveal your player.name)
     Break a leg!



VERB SOURCE CODE:

say:
player:tell("You say, \"", argstr, "\"");
this:announce(this:get_name(player), " says, \"", argstr, "\"");
.


emote:
name = this:get_name(player);
if ((argstr != "") && (argstr[1] == ":"))
    this:announce_all(name, argstr[2..length(argstr)]);
else
    this:announce_all(name, " ", argstr);
endif
.


get_name:
who = args[1];
name = who.name;
if ($object_utils:has_property(who, "costume"))
    costume = who.costume;
    if ($object_utils:has_property(costume, "role_msg"))
        costume.role_msg ? name = costume.role_msg | name;
    endif
endif
return name;
.


`*:
" Hacked from the stage-feature object, #112. ";
name = verb[2..length(verb)];
who = player.location:match_object(name);
if ($command_utils:object_match_failed(who, name))
    return;
endif
player.location:announce_all(this:get_name(player), " [to ", this:get_name(who), 
"]: ", argstr);
.


[*:
" hacked from #112, the Stage-talk FO. ";
player.location:announce_all((((this:get_name(player) + " ") + verb) + " ") + argstr);
.


]*:
" Hacked from #112, the Stage-talk FO. ";
player.location:announce_all("[", (((this:get_name(player) + " ") + verb[2..length(verb)]) 
+ (argstr ? " " + argstr | "")) + "]");
.



PROPERTY DATA:

CHILDREN:
Pleasance... a peregrination Below the Stage Empty Lot a Clock