//stolen from dw for fr by cratylus
inherit "/std/races/fish_base";
void setup() {
set_name( "fish" );
set_long( "Fish, yes. A fish. Nice generic standard fish thing.\n" );
set_height( 15 );
set_weight( 40 );
set_desc( "a fish, the kind with fins" );
set_stats( ({ -2, 14, -4, -4, -6 }) );
} /* setup() */
void check_water( object player ) {
if( !environment( player )->query_water() )
call_out( "do_drown", 4, player );
} /* check_water() */
void do_drown( object player ) {
int i;
if( environment( player )->query_water() )
return;
tell_room( environment( player ) , player->one_short() + " gasps for "
"air.\n" );
i = player->query_max_hp() / 5;
if( i < 20 ) i = 20;
player->adjust_hp( -i );
call_out( "do_drown", 4, player );
} /* do_drown() */
void start_player( object thing ) {
::start_player( thing );
thing->add_property( "gills", 1 );
thing->add_property("lives in water", 1);
thing->add_enter_commands( (: check_water :) );
thing->set_default_position( ({ "lying" }) );
thing->return_to_default_position( 0 );
} /* start_player() */
void set_unarmed_attacks( object thing ) {
int number;
number = (int)thing->query_skill_bonus( "fighting.combat.melee.unarmed" );
number = 4 + sqrt( number ) / 2;
thing->remove_attack( "hands" );
thing->remove_attack( "feet" );
thing->remove_attack( "bite" );
thing->add_attack( "bite", 100, ({ 2 * number, 5, number }),
"pierce", "unarmed", 0 );
thing->tactics( "response dodge" );
} /* set_unarmed_attacks() */
int lives_in_water() { return 1; }