inherit "/std/races/standard";
#include "light_defs.inc"
void setup()
{
set_long("This is a Kender - a small demi-human, much like a halfling, "
"except that they do not outwardly age. They all have "
"their hair bound up in a ponytail on the top of their head, "
"called a topknot.\n");
set_name("kender");
set_light_limits(LIGHT_HALFLING_LOW, LIGHT_HALFLING_HIGH);
set_race_size(3);
reset_get();
}
void set_racial_bonuses()
{
previous_object()->adjust_bonus_wis(-2);
previous_object()->adjust_bonus_dex(2);
previous_object()->adjust_bonus_str(-1);
// This whole code is based on Khelben's halfling code,
// Which is similar to a Kender anyway.
// thanks to Khelben for his help.
// The differences I'm trying to emphasize is the Kender's
// foolishness and extreme dexterity. The Strength minus
// is logical, considering their size (approx. halfling size)
// Anavrin the Kender Mage 12-13-96
}
int query_skill_bonus(int lvl, string skill)
{
return 0;
}
string query_desc(object ob)
{
if((int)ob->query_gender() == 1)
return("A childlike Kender lad.\n");
return("A childlike Kender lass.\n");
}
void race_heartbeat(object player)
{
object *list;
object item;
if(!player || !ENV(player) || player->query_dead()) return;
::race_heartbeat(player);
if(player->query_property("noguild") || ENV(player)->query_property("noguild")) return;
list = all_inventory(ENV(player));
item = list[random(sizeof(list))];
if(item != player && item->query_alive()&& (!item->query_creator()))
{
list = all_inventory(item);
if(!sizeof(list)) return;
item = list[random(sizeof(list))];
if(!item->query_in_use())
{
item->move(player);
call_out("oops",5,player,item->query_short());
}
}
if(!living(item))item->move(player);
if(!player->query_hide_shadow())
{
item = clone_object("/std/commands/shadows/hide");
item->setup_shadow(player);
}
}
void oops(object player,string name)
{
if(player)
tell_object(player,"Hmm you seem to have acquired a "+name+" which someone carelessly misplaced.\n");
}