Generic Costume (#1226)

(an instance of Generic Scripted Object made by Marcus)

     A suit of clothes.

Go to location of this object, wooden box.

After a moment, something begins to happen...
     The Generic Costume is the costume with a difference.
     If you are a descendant of the Thespian (#1223), you can wear costumes. They change your description.
     Generic Costumes, however, are also scripted objects...you can write your performances directly on them (use @notedit .script).
     Costumes are fun to make, play with, and share with your friends.
     See help #1226 for more information...


HELP MANUAL:
     Costumes, descendants of #1226, are scriptable objects in which you may dress yourself 
in order to appear differently. In order to wear them you must be a Thespian (a descendent 
of #1223).
     
     As the creator of a costume, you have two properties to set:
     
     .role_msg (use @role costume is "") -- the name of the role, which will appended 
to the Thespian's name or substitute for it under certain conditions.
     .role_desc_msg (use @role_desc costume is "" or @notedit costume.role_desc_msg) 
-- the description of the costumed Thespian, to be substituted for eir usual one. 
This description will accept the usual name and pronoun substitutions (Visitor, he 
etc.; see help pronouns).
     
     The costume also has a script which you may use to perform works of drama or pathos 
or spam your friends. To write it use @notedit costume.script. (You should at least 
save yourself @quota and delete the advertising copy currently scripted.)



VERB SOURCE CODE:

dress:
if ($string_utils:match_player(dobjstr) == player)
    if ($object_utils:has_callable_verb(player, "costume"))
        if (valid(player.costume))
            player:tell("You have a costume on. Can't wear two.");
        elseif (this.location != player)
            player:tell($string_utils:pronoun_sub(this.cant_wear_msg));
        else
            player:costume(this);
        endif
    else
        player:tell("Sorry, you have to be a Thespian to dress in costumes like this 
one. See #1223...");
    endif
else
    player:tell("Sorry, you can only dress yourself.");
endif
.


dress_msg odress_msg remove_msg oremove_msg:
msg = this.(verb);
return msg ? $string_utils:pronoun_sub(msg, @args) | "";
.


doff shed:
$object_utils:has_property(player, "costume") ? costume = player.costume | (costume 
= $nothing);
(this == costume) ? player:uncostume(this) | player:tell("You're not dressed in ", 
this.name);
.


play perf*orm:
if (this.script)
    if ($object_utils:has_property(player, "costume"))
        if (player.costume == this)
            pass(@args);
        else
            player:tell("Memory fails you. You might have to dress yourself in ", 
this:title(), " if you want to play its script.");
        endif
    else
        player:tell("Just playing with ", this:title(), " is no good. You have to 
dress yourself in it.");
    endif
else
    player:tell(this:titlec(), " has no script to play.");
endif
.


d*rop th*row:
if ($object_utils:has_callable_verb(player, "uncostume"))
    if (player.costume == this)
        player:uncostume(this);
    endif
endif
pass(@args);
.


title:
title = pass(@args);
if ($object_utils:has_property(this.location, "costume"))
    if (this.location.costume == this)
        title = tostr(title, " [worn]");
    endif
endif
return title;
.



PROPERTY DATA:
      odress_msg
      dress_msg
      cant_wear_msg
      remove_msg
      oremove_msg
      role_msg
      role_desc_msg

CHILDREN:
Critic Costume The Other Polar Bear Costume Chorus Costume Coyote costume Polar Bear costume a sewing pattern Costume clothes Hermeticus costume costume Jaguar Inanna costume Text for Tara Lupercus black leathers leathers Willfulness Anacreon costume silver orchid gold