gurba-0.40/
gurba-0.40/bin/
gurba-0.40/lib/
gurba-0.40/lib/cmds/guild/fighter/
gurba-0.40/lib/cmds/monster/
gurba-0.40/lib/cmds/race/catfolk/
gurba-0.40/lib/cmds/race/dwarf/
gurba-0.40/lib/cmds/verb/
gurba-0.40/lib/daemons/data/
gurba-0.40/lib/data/boards/
gurba-0.40/lib/data/messages/
gurba-0.40/lib/data/players/
gurba-0.40/lib/design/
gurba-0.40/lib/domains/gurba/
gurba-0.40/lib/domains/gurba/guilds/fighter/
gurba-0.40/lib/domains/gurba/monsters/
gurba-0.40/lib/domains/gurba/objects/armor/
gurba-0.40/lib/domains/gurba/objects/clothing/
gurba-0.40/lib/domains/gurba/objects/weapons/
gurba-0.40/lib/domains/gurba/vendors/
gurba-0.40/lib/kernel/cmds/admin/
gurba-0.40/lib/kernel/daemons/
gurba-0.40/lib/kernel/include/
gurba-0.40/lib/kernel/lib/
gurba-0.40/lib/kernel/net/
gurba-0.40/lib/kernel/sys/
gurba-0.40/lib/logs/
gurba-0.40/lib/pub/
gurba-0.40/lib/std/modules/languages/
gurba-0.40/lib/std/races/
gurba-0.40/lib/std/races/monsters/
gurba-0.40/lib/wiz/fudge/
gurba-0.40/lib/wiz/spud/
gurba-0.40/src/host/beos/
gurba-0.40/src/host/pc/res/
gurba-0.40/src/kfun/
gurba-0.40/src/lpc/
gurba-0.40/src/parser/
gurba-0.40/tmp/
static int heal_rate;
static int heal_amount;
static int heal_time;

int    is_fighting( void );
void   do_fight( void );
int    is_alive();
int    is_dead();
int    add_stat( string statname, int amt );
int    query_stat( string statname );


void set_heal_rate( int rate ) {
   heal_rate = rate;
}

int query_heal_rate( void ) {
  return( heal_rate );
}

void set_heal_step( int amt ) {
   heal_amount = amt;
}

int query_heal_step( void ) {
  return( heal_amount );
}

void create() {
   EVENT_D->subscribe_event("heart_beat");
   heal_time = 0;
   heal_rate = 10;
   heal_amount = 2;
}

void event_heart_beat( void )
{
   if( this_object()->query_hp() < this_object()->query_max_hp() && this_object()->is_alive() )
   {
      heal_time++;
      if( heal_time > heal_rate )
      {
          heal_time = 0;
          this_object()->increase_hp( random( heal_amount ) + 1 );
      }
   }
   /* Check here to see is we are in combat, if so, continue battle */
   if( this_object()->is_fighting() )
   {
      this_object()->do_fight();
   }

   if( this_object()->is_player() == 0 && this_object()->is_dead() )
   {
      EVENT_D->unsubscribe_event("heart_beat");
      this_object()->destruct();
   }
}