/* /lib/creator.c
* from the Foundation II LPC Library
* a very simple creator object
* created by Descartes of Borg 950321
*/
#include <lib.h>
#include "creator.h"
inherit LIB_INTERACTIVE;
private int CreatorAge, CreatorBirth;
private string Gender;
private static int LastCreatorAge;
/* ***************** /lib/creator.c driver applies ***************** */
static void create() {
interactive::create();
CreatorAge = 0;
LastCreatorAge = time();
CreatorBirth = time();
}
static void net_dead() {
interactive::net_dead();
CreatorAge += time() - LastCreatorAge;
LastCreatorAge = time();
}
void restart_heart() {
string tmp;
interactive::restart_heart();
LastCreatorAge = time();
if( file_size(tmp = user_path(GetKeyName()) + "dead.edit") >0 )
message("system", "\nYour edit file was saved as: "+tmp, this_object());
}
/* ***************** /lib/creator.c events ***************** */
void eventDescribeEnvironment(int verbose) {
object env;
if( !(env = environment()) ) {
message("room_description", "No environment.", this_object());
return;
}
message("system", file_name(env), this_object());
interactive::eventDescribeEnvironment(verbose);
}
/* ***************** /lib/creator.c local functions ***************** */
int Setup() {
string tmp;
if( !interactive::Setup() ) return 0;
AddChannel( ({ "cre", "intercre", "intergossip", "interchat", "foundation" }) );
if( archp() ) AddChannel("admin");
AddSearchPath( ({ DIR_CREATOR_CMDS, DIR_SECURE_CREATOR_CMDS }) );
if( file_size(tmp = user_path(GetKeyName()) + "cmds") == -2 )
AddSearchPath( ({ tmp }) );
if( archp() ) AddSearchPath( ({ DIR_ADMIN_CMDS, DIR_SECURE_ADMIN_CMDS }) );
return 1;
}
int eventForce(string cmd) {
if( !((int)master()->valid_apply( ({ GetKeyName() }) )) ) return 0;
else return interactive::eventForce(cmd);
}
/* *************** /lib/creator.c modal functions *************** */
int CanCarry(int amount) { return 1; }
/* ************ /lib/creator.c data manipulation functions ************ */
int GetCreatorAge() {
int x;
if( !interactive(this_object()) ) return CreatorAge;
x = time() - LastCreatorAge;
CreatorAge += x;
LastCreatorAge = time();
return CreatorAge;
}
string SetGender(string gender) {
if( !((int)master()->valid_apply( ({ GetKeyName() }) )) ) return Gender;
else return (Gender = gender);
}
string GetGender() { return Gender; }
int GetCreatorBirth() { return CreatorBirth; }