#include <lib.h>
inherit LIB_SENTIENT;
int RatEncounter(mixed val){
    if(!val) return 0;
    if(!objectp(val)) return 0;
    if(val->GetRace() == "orc" || val->GetRace() == "rodent") return 0;
    else {
        if(!this_object()->GetLeader() && sizeof(filter(val->GetFollowers(),
                        (: base_name($1) == base_name(this_object()) :))) < 5){
            eventForce("follow "+val->GetKeyName());
            SetWanderSpeed(1);
        }
        return 1;
    }
    return 0;
}
static void create() {
    sentient::create();
    SetKeyName("rat");
    SetAdjectives( ({"ratlike","unusual","large","very","dangerous",
                "dangerous looking","rat like"}) );
    SetId( ({"rat","rous","beast"}) );
    SetShort("a rodent of unusual size");
    SetLong("A very large, very dangerous-looking ratlike beast.");
    SetRace("rodent");
    SetGender("male");
    SetClass("fighter");
    SetEncounter( (: RatEncounter :));
    SetLevel(3);
    SetMelee(1);
    SetMessage("come","$N scurries in.");
    SetMessage("leave","$N scurries $D.");
}
void init(){
    object env = environment();
    ::init();
    if(env && base_name(env) == "/domains/cave/room/cave"){
        eventForce("go east");
    }
}
void heart_beat(){
    object env = environment();
    ::heart_beat();
    if(env && base_name(env) == "/domains/cave/room/cave"){
        eventForce("go east");
    }
}