inherit "/std/races/base";
void setup() {
set_name( "lobster" );
set_long( "A cranky lobster.\n" );
set_height( 10 );
set_weight( 18 );
set_desc( "a cranky lobster" );
bits = ({
"head", "head", ({ 0, 200, 0,
"left antenna", "right antenna", "left antennule", "right "
"antennule", "brain", "left eye", "right eye", "left eyestalk",
"right eyestalk", "jaw", "skull" }),
"left antenna", "antenna", ({ "head", 2, 0 }),
"right antenna", "antenna", ({ "head", 2, 0 }),
"left antennule", "antennule", ({ "head", 1, 0 }),
"right antennule", "antennule", ({ "head", 1, 0 }),
"brain", "brain", ({ "head", 50, 0 }),
"skull", "skull", ({ "head", 50, 0 }),
"left eye", "eye", ({ "head", 5, 0 }),
"right eye", "eye", ({ "head", 5, 0 }),
"left eyestalk", "eyestalk", ({ "head", 2, 0 }),
"right eyestalk", "eyestalk", ({ "head", 2, 0 }),
"jaw", "mouth", ({ "head", 25, 0 }),
"carapace", "carapace", ({ 0, 25, 0 }),
"thorax", "thorax", ({ 0, 500, 0,
"left cheliped", "right cheliped", "left second leg",
"right second leg", "left third leg", "right third leg", "left "
"fourth leg", "right fourth leg", "left back leg", "right back "
"leg", "heart", "hepatopancreas", "intestine", "stomach" }),
"left cheliped", "cheliped", ({ "thorax", 75, 0 }),
"right cheliped", "cheliped", ({ "thorax", 75, 0 }),
"left second leg", "leg", ({ "thorax", 50, 0 }),
"right second leg", "leg", ({ "thorax", 50, 0 }),
"left third leg", "leg", ({ "thorax", 50, 0 }),
"right third leg", "leg", ({ "thorax", 50, 0 }),
"left fourth leg", "leg", ({ "thorax", 50, 0 }),
"right fourth leg", "leg", ({ "thorax", 50, 0 }),
"left back leg", "leg", ({ "thorax", 50, 0 }),
"right back leg", "leg", ({ "thorax", 50, 0 }),
"heart", "heart", ({ "thorax", 50, 0 }),
"hepatopancreas", "hepatopancreas", ({ "thorax", 10, 0 }),
"intestine", "intestine", ({ "thorax", 30, 0 }),
"stomach", "stomach", ({ "thorax", 30, 0 }),
"apron", "apron", ({ 0, 100, 0, "left pleopod", "right pleopod" }),
"left pleopod", "pleopod", ({ "apron", 20, 0 }),
"right pleopod", "pleopod", ({ "apron", 20, 0 })
});
inedible = ({ "jaw", "carapace", "skull" });
unrottable = ({ "jaw", "carapace", "skull" });
set_skin( "shell" );
set_stats( ({ -6, 4, -6, -4, -6 }) );
} /* setup() */
int query_eat( string type ) {
return ( member_array( type, inedible ) == -1 );
} /* query_eat() */
void new_set_level( mixed *args ) {
int level;
object thing;
if( sizeof(args) < 2 || !args[1] )
return;
level = args[ 0 ];
thing = args[ 1 ];
thing->add_skill_level( "other.health", level * 2 );
thing->add_ac( "blunt", "blunt", level / 2 );
thing->add_ac( "pierce", "pierce", level / 4 );
thing->add_ac( "sharp", "sharp", level / 3 );
} /* new_set_level() */
void set_unarmed_attacks( object thing ) {
int number;
number = (int)thing->query_skill_bonus( "fighting.combat.melee.unarmed" );
number = 4 + sqrt( number );
thing->remove_attack( "hands" );
thing->remove_attack( "feet" );
thing->remove_attack( "pincers" );
thing->add_attack( "pincers", 100, ({ number, 10, number }),
"unarmed", "unarmed", 0 );
thing->add_attack_message( "pincers", "unarmed", ({
20, "$N bat$s $I with $p pincer.\n",
60, "$N nip$s $P $z with $p pincer.\n",
100, "$N scratch$es $I deeply with $p pincer.\n",
140, "$N cut$s $P $z deeply with $p pincer.\n",
180, "$N dig$s $p pincer into $P $z.\n",
220, "$N gouge$s $I with $p pincer.\n",
0, "$N slice$s $P $z up with $p pincer.\n" }) );
thing->tactics( "response dodge" );
} /* set_unarmed_attacks() */
int lives_in_water() { return 1; }