#define POISON_EFFECT "/std/effects/poisons/spider_venom"
inherit "/std/races/arachnid";
void setup() {
set_name( "spider" );
set_long( "A small, poisonous, hairy spider.\n" );
set_desc( "a hairy arachnid" );
set_height( 5 );
set_weight( 2 );
add_bit( "silk gland", "gland", ({ "abdomen", 10,
({"/std/bit", 1, 400}) }) );
add_bit( "poison gland", "gland", ({ "cephalothorax", 5,
({"/std/bit", 1, 400}) }) );
inedible += ({ "poison gland" });
set_stats( ({ -6, 4, -6, -6, -6 }) );
} /* setup() */
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 ) {
thing->remove_attack( "hands" );
thing->remove_attack( "feet" );
thing->remove_attack( "standard" );
thing->remove_attack( "bite" );
thing->remove_attack( "chew" );
thing->add_attack( "bite", 80, ({ 10, 2, 5 }),
"pierce", "unarmed", ({ "poison", this_object() }) );
thing->add_attack( "chew", 100, ({ 2, 2, 10 }),
"sharp", "unarmed", 0 );
thing->tactics( "response dodge" );
} /* set_unarmed_attacks() */
void poison( int damage, object him, object me, string a_type,
string a_name ) {
tell_room( me->one_short() + " visciously sinks its fangs into " +
him->one_short() + " who seethes in agony!\n" );
tell_object( him, me->one_short() + " sinks its fangs into you! You "
"seethe in agony.\n" );
him->add_effect( POISON_EFFECT, 100 );
} /* poison() */