/**
* Jellyfish race object
*
* @author Dasquian
* @started 4 March 2001
*/
inherit "/std/races/base";
#define STINGEFFECT "/std/effects/disease/jellyfish_sting"
void setup() {
set_name( "jellyfish" );
set_long( "A jelly-like blob with tendrils.\n" );
set_height( 15 );
set_weight( 20 );
set_desc( "a jelly-like blob with tendrils." );
bits = ({
"tendril", "tendril", ({ 0, 1, ({ "/std/bit", 10 }) }),
"bell", "bell", ({ 0, 10, 0 })
});
inedible = ({ "bell", "tendril" });
unrottable = ({ });
set_skin( "exocuticule" );
add_ac( "acid", "acid", 100 );
add_ac( "poison", "poison", 100 );
add_ac( "blunt", "blunt", 75 );
add_ac( "sharp", "sharp", 25 );
add_ac( "pierce", "pierce", 25 );
set_stats( ({ -5, -5, -5, -5, -5 }) );
} /* create() */
void set_unarmed_attacks( object thing ) {
int number;
number = (int)thing->query_skill_bonus( "fighting.combat.melee.unarmed" );
number = 2 + (sqrt( number ) / 10);
thing->remove_attack( "hands" );
thing->remove_attack( "feet" );
thing->remove_attack( "tendrils" );
thing->add_attack( "tendrils", 100, ({ number, 10, number }),
"blunt", "blunt", ({ "sting", this_object() }) );
thing->add_attack_message( "tendrils", "blunt", ({
20, "$N brush$es $P $z with $p tendrils",
60, "$N slap$s $P $z with $p tendrils",
100, "$N knock$s $I with $p tendrils",
140, "$N thwack$s $I with $p tendrils",
180, "$N smack$s $p tendrils into $P $z",
220, "$N wallop$s $I with $p tendrils",
0, "$N hammer$s $I with $p tendrils" }) );
} /* set_unarmed_attacks() */
void start_player( object thing ) {
::start_player( thing );
thing->add_property( "gills", 1 );
thing->add_property("lives in water", 1);
} /* start_player() */
int lives_in_water() { return 1; }
void sting( int damage, object him, object me, string atype, string aname ) {
him->add_effect(STINGEFFECT, damage);
} /* sting() */