#include <lib.h>
#include <medium.h>
#include <message_class.h>
inherit LIB_CORPSE;
int stank;
void create(){
corpse::create();
SetId(({"chassis","body","synthetics"}));
SetAdjectives(({"melting","corroding"}));
}
void init(){
::init();
if(environment() && environment()->GetMedium() == MEDIUM_LAND) stank = 1;
}
int eventDecay(){
if( !environment() ){
Destruct();
return 0;
}
Fresh = 0;
switch(Count){
case 10:
if(stank)
environment()->eventPrint(possessive_noun(Owner) + " chassis " +
"begins to corrode.", MSG_ROOMDESC);
SetId(GetId()..., "chassis", "body");
SetAdjectives(GetAdjectives()..., "melting", "corroding");
SetShort("the corroding chassis of an artificial body");
SetSmell("The chassis emits an acrid chemical odor.");
break;
case 20:
if(stank)
environment()->eventPrint("An acrid chemical odor fills the entire "
"area.", MSG_ROOMDESC);
SetId(GetId()..., "synthetics", "pile", "pile of synthetics");
SetShort("a pile of corroding synthetics");
SetSmell("Its smell is nearly unbearable.");
break;
case 30:
Destruct();
return 0;
}
Count++;
return Count;
}
void SetCorpse(object who){
string tmpshort = (string)who->GetShort();
if(sizeof(who->GetRiders())) tmpshort = (string)who->GetPlainShort();
SetKeyName(who->GetKeyName());
SetId(({ "remains","wreckage",who->GetId()... }) );
Owner = who->GetCapName();
Race = who->GetRace();
Count = 1;
Fresh = 1;
SetShort("the wreckage of "+tmpshort);
SetLong("As you look closely at " + who->GetCapName() +
", you notice that " + nominative(who) +
" does not appear to be moving.");
}