/* the Werewolf */ /* a serious upgrade */ /* Archana /12/17/99 */ #include <weather.h> #define SHADOW "/std/races/shadows/were_race" inherit "/std/races/base"; void setup() { if(!WEATHER->query_moon_state()>3) { set_long("The Werewolf, in wolf form.\n"); set_name("werewolf"); set_weight(3000); set_height(250); set_desc( "a nasty violent monster"); add_ac( "blunt", "blunt", 3 ); add_ac( "pierce", "pierce", 2 ); add_ac( "sharp", "sharp", 2 ); set_stats( ({ 10, 11, 9, 12, 0 }) ); set_sight( ({ 5, 20, 200, 300 }) ); bits = ({ "head", "head", ({ 0, 10, ({"/std/bit", 1}), "left eye", "right eye", "nose", "skull", "left ear", "right ear", "tongue" }), "left eye", "eye", ({ "head", 1, ({"/std/bit", 1}) }), "right eye", "eye", ({ "head", 1, ({"/std/bit", 1}) }), "skull", "cranium", ({ "head", 5, ({"/std/bit", 1}), "brain", "teeth" }), "brain", "brain", ({ "skull", 3, ({"/std/bit", 1}) }), "left ear", "ear", ({"head", 1, ({"/std/bit", 1}) }), "right ear", "ear", ({"head", 1, ({"/std/bit", 1}) }), "nose", "nose", ({ "head", 1, ({"/std/bit", 1}) }), "teeth", "teeth", ({ "skull", 3, ({"/std/bit_set",1}), "tooth" }), "tooth", "tooth", ({ "teeth", 1, ({"/std/bit", 48}) }), "tongue", "tongue", ({ "head", 1, ({"/std/bit", 1}) }), "neck", "neck", ({ 0, 14, ({"/std/bit", 1}) }), "torso", "body", ({ 0, 200, ({"/std/bit", 1}), "heart", "liver", "left kidney", "right kidney", "left lung", "right lung", "spleen", "intestine", "pancreas" }), "heart", "heart", ({ "torso", 3, ({"/std/bit", 1}) }), "liver", "liver", ({ "torso", 5, ({"/std/bit", 1}) }), "left kidney", "kidney", ({ "torso", 4, ({"/std/bit", 1}) }), "right kidney", "kidney", ({ "torso",4, ({"/std/bit", 1}) }), "left lung", "lung", ({ "torso", 7, ({"/std/bit", 1}) }), "right lung", "lung", ({ "torso", 7, ({"/std/bit", 1}) }), "spleen", "spleen", ({ "torso", 6, ({"/std/bit", 1}) }), "intestine", "gut", ({ "torso", 9, ({"/std/bit", 1}) }), "pancreas", "pancreas", ({ "torso", 8, ({"/std/bit", 1}) }), "left front leg","leg",({ 0,15,({"/std/bit", 1}),"left front paw"}), "left front paw","paw", ({ "left front leg",6,({"/std/bit", 1}),"claw"}), "claw","claw",({"left front paw",1,({"/std/bit", 4})}), "right front leg","leg",({ 0,15,({"/std/bit", 1}),"right front paw"}), "right front paw","paw", ({ "right front leg",6,({"/std/bit", 1}),"claw"}), "claw","claw",({"right front paw",1,({"/std/bit", 4})}), "left rear leg","leg",({ 0,15,({"/std/bit", 1}),"left rear paw"}), "left rear paw","paw", ({ "left rear leg",6,({"/std/bit", 1}),"claw"}), "claw","claw",({"left rear paw",1,({"/std/bit", 4})}), "right rear leg","leg",({ 0,15,({"/std/bit", 1}),"right rear paw"}), "right rear paw","paw",({"right rear leg",6,({"/std/bit", 1}),"claw"}), "skin", "skin", ({ 0, 175, 0 }), "claw","claw",({"right rear paw",1,({"/std/bit", 4})}), "tail", "tail", ({0, 18, ({"/std/bit", 1}) }) }); inedible = ({"skull", "claw", "tail", "teeth", "tooth" }); unrottable = ({"skull", "claw", "teeth", "tooth" }); set_skin( "skin" ); }else{ set_long("The Werewolf, in human form.\n"); set_name("werewolf"); set_weight(3000); set_height(250); set_desc( "a nasty violent monster"); add_ac( "blunt", "blunt", 3 ); add_ac( "blunt", "blunt", 2 ); add_ac( "sharp", "sharp", 2 ); set_stats( ({ 12, 10, 0, 12, 0 }) ); set_sight( ({ 5, 20, 200, 300 }) ); set_skin("pelt"); inedible = ({ "skull", "teeth", "tooth" }); unrottable = ({ "skull", "teeth", "tooth" }); bits = ({ "head", "head", ({ 0, 40, ({ "/std/bit", 1 }), "left ear", "right ear", "left eye", "right eye", "nose", "scalp", "tongue", "skull" }), "left ear", "ear", ({ "head", 1, ({ "/std/bit", 1 }) }), "right ear", "ear", ({ "head", 1, ({ "/std/bit", 1 }) }), "left eye", "eye", ({ "head", 1, ({ "/std/bit", 1 }) }), "right eye", "eye", ({ "head", 1, ({ "/std/bit", 1 }) }), "nose", "nose", ({ "head", 1, ({ "/std/bit", 1 }) }), "scalp", "scalp", ({ "head", 3, ({ "/std/bit", 1 }) }), "tongue", "tongue", ({ "head", 2, ({ "/std/bit", 1 }) }), "skull", "skull", ({ "head", 20, ({ "/std/bit", 1 }), "teeth", "brain" }), "brain", "brain", ({ "skull", 40, ({ "/std/bit", 1 }) }), "teeth", "teeth", ({ "skull", 2, ({ "/std/bit_set", 1}), "tooth" }), "tooth", "tooth", ({ "teeth", 1, ({ "/std/bit", 32}) }), "left arm", "arm", ({ 0, 80, ({ "/std/bit", 1 }), "left hand" }), "right arm", "arm", ({ 0, 80, ({ "/std/bit", 1 }), "right hand" }), "torso", "torso", ({ 0, 400, ({ "/std/bit", 1 }), "heart", "liver", "left kidney", "right kidney", "left lung", "right lung", "spleen" }), "left hand", "hand", ({ "left arm", 15, ({ "/std/bit", 1 }), "left little finger", "left third finger", "left index finger", "left ring finger", "left thumb" }), "right hand", "hand", ({ "right arm", 15, ({ "/std/bit", 1 }), "right little finger", "right third finger", "right index finger", "right ring finger", "right thumb" }), "left little finger", "finger", ({ "left hand", 1, ({ "/std/bit", 1 }) }), "left third finger", "finger", ({ "left hand", 1, ({ "/std/bit", 1 }) }), "left index finger", "finger", ({ "left hand", 1, ({ "/std/bit", 1 }) }), "left ring finger", "finger", ({ "left hand", 1, ({ "/std/bit", 1 }) }), "left thumb", "finger", ({ "left hand", 1, ({ "/std/bit", 1 }) }), "right little finger", "finger", ({ "right hand", 1, ({ "/std/bit", 1 }) }), "right third finger", "finger", ({ "right hand", 1, ({ "/std/bit", 1 }) }), "right index finger", "finger", ({ "right hand", 1, ({ "/std/bit", 1 }) }), "right ring finger", "finger", ({ "right hand", 1, ({ "/std/bit", 1 }) }), "right thumb", "finger", ({ "right hand", 1, ({ "/std/bit", 1 }) }), "heart", "heart", ({ "torso", 10, ({ "/std/bit", 1 }) }), "liver", "liver", ({ "torso", 5, ({ "/std/bit", 1 }) }), "left kidney", "kidney", ({ "torso", 5, ({ "/std/bit", 1 }) }), "right kidney", "kidney", ({ "torso", 5, ({ "/std/bit", 1 }) }), "left lung", "lung", ({ "torso", 5, ({ "/std/bit", 1 }) }), "right lung", "lung", ({ "torso", 5, ({ "/std/bit", 1 }) }), "spleen", "spleen", ({ "torso", 5, ({ "/std/bit", 1 }) }), "genitals", "genitals", ({ 0, 5, ({ "/std/bit", 1 }) }), "left leg", "leg", ({ 0, 300, ({ "/std/bit", 1 }), "left foot" }), "right leg", "leg", ({ 0, 300, ({ "/std/bit", 1 }), "right foot" }), "left foot", "foot", ({ "left leg", 50, ({ "/std/bit", 1 }), "left big toe", "left second toe", "left third toe", "left fourth toe", "left little toe" }), "right foot", "foot", ({ "right leg", 50, ({ "/std/bit", 1 }), "right big toe", "right second toe", "right third toe", "right fourth toe", "right little toe" }), "right little toe", "toe", ({ "right foot", 1, ({ "/std/bit", 1 }) }), "right second toe", "toe", ({ "right foot", 1, ({ "/std/bit", 1 }) }), "right third toe", "toe", ({ "right foot", 1, ({ "/std/bit", 1 }) }), "right fourth toe", "toe", ({ "right foot", 1, ({ "/std/bit", 1 }) }), "right big toe", "toe", ({ "right foot", 1, ({ "/std/bit", 1 }) }), "left little toe", "toe", ({ "left foot", 1, ({ "/std/bit", 1 }) }), "left second toe", "toe", ({ "left foot", 1, ({ "/std/bit", 1 }) }), "left third toe", "toe", ({ "left foot", 1, ({ "/std/bit", 1 }) }), "left fourth toe", "toe", ({ "left foot", 1, ({ "/std/bit", 1 }) }), "left big toe", "toe", ({ "left foot", 1, ({ "/std/bit", 1 }) }), }); } } /* setup() */ void start_player( object thing ) { ::start_player( thing ); clone_object( SHADOW )->setup_shadow( thing ); } /* start_player() */ void set_unarmed_attacks( object thing ) { thing->remove_attack("feet"); thing->remove_attack("hands"); thing->add_attack( "claws", 75, ({ 32, 5, 15 }), "sharp", "unarmed", 0 ); thing->add_attack( "bite", 25, ({ 60, 10, 50 }), "sharp", "unarmed", 0 ); thing->add_attack_message( "claws", "sharp", ({ 20, ({ "You tear at $hcname$ with your claws.\n", "$mcname$ tears at you with $mposs$ claws.\n", "$mcname$ tears $hcname$ with $mposs$ claws.\n"}), 60, ({ "You shred $hcname$ with your claws.\n", "$mcname$ shreds you with $mposs$ claws.\n", "$mcname$ shreds $hcname$ with $mposs$ claws.\n"}), 100, ({ "You rend the flesh of $hcname$.\n", "$mcname$ rends your flesh with $mposs$ claws.\n", "$mcname$ rends $hcname$ flesh with $mposs$ claws.\n"}), 140, ({ "You savagely tear $hcname$ to shreds.\n", "$mcname$ tears you to shreds.\n", "$mcname$ tears $hcname$ to shreds.\n"}), 180, ({ "You slice $hcname$ with your claws.\n", "$mcname$ slices you across the chest.\n", "$mcname$ slices $hcname$ across the chest.\n"}), 220, ({ "You rip large chunks of flesh out of $hcname$ with your claws.\n", "$mcname$ rips large chunks of flesh out of you with $mposs$ claws.\n", "$mcname$ rips large chunks of flesh out of $hcname$ with $mposs$ claws.\n"}), 0, ({ "You nearly disembowels $hcname$ with your claws.\n", "$mcname$ nearly disembowels you with $mposs$ claws.\n", "$mcname$ nearly disembowels $hcname$ with $mposs$ claws.\n"}),}) ); thing->add_attack_message( "bite", "sharp", ({ 20, ({ "You bite $hcname$.\n", "$mcname$ bites you deeply.\n", "$mcname$ bites $hcname$ deeply.\n"}), 60, ({ "You savage $hcname$.\n", "$mcname$ savagely tears at you with $mposs$ teeth.\n", "$mcname$ savagely tears at $hcname$ with $mposs$ teeth.\n"}), 100, ({ "You bites deeply into $hcname$ arm.\n", "$mcname$ bites deeply into your arm, tearing your flesh.\n", "$mcname$ bites deeply into $hcname$ arm.\n"}), 140, ({ "You bite off a large piece of $hcname$ flesh.\n", "$mcname$ bites a large piece of flesh off your side.\n", "$mcname$ bites large chunks of flesh from $hcname$.\n"}), 180, ({ "You rip into $hcname$ flesh with your teeth.\n", "$mcname$ rips into your flesh deeply, causing serious gashes.\n", "$mcname$ rips into $hcname$ causing serious gashes.\n"}), 220, ({ "You lunge for $hcname$ throat.\n", "$mcname$ lunges for your throat.\n", "$mcname$ lunges at $hcname$ biting deeply into $hposs$ throat.\n"}), 0, ({ "You sink your teeth deep into $hcname$'s muscle and sinew.\n", "$mcname$ sinks $mposs$ teeth deep into $hcname$'s muscle and sinew.\n", "$mcname$ sinks $mposs$ teeth into $hcname$'s muscle and sinew.\n"}),}) ); } /* set_unarmed_attacks() */