mud/lib/shadows/bear.c
2020-09-06 05:43:07 -07:00

75 lines
1.5 KiB
C

#include <lib.h>
#include <dirs.h>
inherit LIB_SHADOW;
inherit LIB_ID;
object me = this_object();
varargs string GetExternalDesc(object who){
return "A large brown bear. Not as huge as a grizzly, but plenty big enough to knock your block off.";
}
varargs string GetLong(object who){
return "A large brown bear. Not as huge as a grizzly, but plenty big enough to knock your block off.";
}
string GetName(){
return "Bear";
}
string GetCapName(){
return "Bear";
}
string GetKeyName(){
return "bear";
}
string GetShort(){
return "a bear";
}
string GetRace(){
return "bear";
}
int eventShadow(object whom){
object *shadows = keys(whom->GetShadows());
if(sizeof(shadows)){
foreach(object shade in shadows){
if(base_name(shade) == base_name(me)) return 0;
}
}
if(base_name(previous_object()) == "/domains/town/armor/bearsuit"){
::eventShadow(whom);
whom->SetId(({"bear"}));
whom->cmdParseRefresh();
return 1;
}
return 0;
}
int unbearshadow(){
object ob = GetShadowedObject();
if(!ob) return 0;
ob->SetId();
ob->cmdParseRefresh();
eventUnshadow();
}
string array parse_command_id_list() {
string array ids = (this_object()->GetId() + ({ "bear" }) || ({}));
return filter(ids, (: stringp($1) && ($1 != "") :));
}
string array parse_command_plural_id_list() {
string array ids = (this_object()->GetId() + ({"bear"}) || ({}));
ids = filter(ids, (: stringp($1) && ($1 != "") :));
return map(ids, (: pluralize :));
}