/* -*- LPC -*- */
/*
* $Locker: $
* $Id: press_credentials.c,v 1.7 2001/08/17 08:39:25 pinkfish Exp $
*
*
*/
inherit "/obj/clothing";
private string _owner = "someone";
private string _paper;
void set_owner_stuff();
void update_stuff();
void setup() {
add_property("press credentials",1);
set_name( "badge" );
set_short( "press credentials badge" );
add_adjective( ({ "press", "credentials" }) );
add_alias( "badge" );
add_property( "nosteal", 1 );
add_alias( "credentials" );
set_type( "badge" );
setup_clothing( 1000 );
set_weight( 1 );
reset_drop();
set_wear_remove_func(base_name(this_object()), "wear_badge");
} /* setup() */
void init() {
if( _owner == "someone" ) {
update_stuff();
}
if( this_player()->query_name() == lower_case(_owner) ) {
add_command( "show", "<direct:object:me'credentials'>");
}
} /* init() */
void wear_badge(object ob, object player) {
if (!ob) {
if (player) {
player->remove_title("newspaper");
}
} else if (_paper) {
player->set_title("newspaper", "Reporter for " + _paper);
}
} /* wear_badge() */
void set_owner_stuff() {
set_long( "This is a small badge with a hand-drawn picture of " +
_owner + " on it, underneath the logo of " + _paper + ". "
"Emblazoned along the bottom are the words \"Official Reporter\".\n");
if (query_worn_by()) {
query_worn_by()->set_title("newspaper", "Reporter for " + _paper);
}
} /* set_owner_stuff() */
int do_show() {
add_succeeded_mess( ({ "With a practiced flick of your wrist, you display "
"your press credentials to the room.\n", "With a practiced flick of $p "
"wrist, $N whips out $p press credentials for " + _paper +
" and shows them to "
"everybody.\n" }) );
return 1;
} /* do_show() */
void set_paper_name(string paper) {
_paper = paper;
} /* set_paper_name() */
string query_paper_name() {
return _paper;
} /* query_paper_name() */
void update_stuff() {
object ob;
ob = environment();
if( ob && living( ob ) ) {
_owner = ob->query_cap_name();
}
set_owner_stuff();
} /* update_stuff() */
mapping query_dynamic_auto_load() {
return ([
"::" : ::query_dynamic_auto_load(),
"cred owner" : _owner,
"paper" : _paper
]);
} /* query_dynamic_auto_load() */
void init_dynamic_arg( mapping map ) {
_paper = map["paper"];
_owner = map["cred owner"];
::init_dynamic_arg( map[ "::" ] );
set_owner_stuff();
} /* init_dynamic_arg() */