area/
#if defined(macintosh)
#include <types.h>
#else
#include <sys/types.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "merc.h"
#include "garou.h"

void do_gifts( CHAR_DATA *ch, char *argument )
{
    char arg1[MAX_INPUT_LENGTH];
    char arg2[MAX_INPUT_LENGTH];
    char buf [MAX_STRING_LENGTH];
    char lin [MAX_STRING_LENGTH];

    argument = one_argument( argument, arg1 );
    argument = one_argument( argument, arg2 );

    if (IS_NPC(ch)) return;

    if (!IS_CLASS(ch, CLASS_WEREWOLF))
    {
	send_to_char("Huh?\n\r",ch);
	return;
    }

    if (arg1[0] == '\0' && arg2[0] == '\0')
    { 
 	sprintf(lin,"============================================================================");
	stc(lin, ch);
	stc("                                     Breed\n\r",ch);
	stc(lin, ch);
	sprintf(buf,"        Homid     [ %d ]         Metis    [ %d ]         Lupus       [ %d ]\n\r",
			ch->gifts[HOMID], ch->gifts[METIS], ch->gifts[LUPUS] );
	stc(buf, ch);
        stc(lin, ch);
	stc("                                    Auspice\n\r",ch);
	stc(lin, ch);
	sprintf(buf,"       Ragabash   [ %d ]        Theurge   [ %d ]        Philodox     [ %d ]\n\r",
		      ch->gifts[RAGABASH], ch->gifts[THEURGE], ch->gifts[PHILODOX] );
	stc(buf, ch);
	sprintf(buf,"          Galliard   [ %d ]        Ahroun      [ %d ]\n\r",
			ch->gifts[GALLIARD], ch->gifts[AHROUN] );
	stc(buf, ch);
	stc(lin, ch);
	 /* stc("                                     Tribe\n\r",ch);
	stc(lin, ch);
	sprintf(buf,"     Black Furies [ %d ]     Bone Gnawers [ %d ]    Children of Gaia [ %d ]\n\r",
			ch->gifts[BLACKFURIES], ch->gifts[BONEGNAWERS], ch->gifts[CHILDREN] );
	stc(buf, ch);
	sprintf(buf,"        Fianna    [ %d ]    Get of Fenris [ %d ]      Glass Walkers  [ %d ]\n\r",
			ch->gifts[FIANNA], ch->gifts[GETOFFENRIS], ch->gifts[GLASSWALKERS] );
	stc(buf, ch);
	sprintf(buf,"      Red Talons  [ %d ]     Shadow Lords [ %d ]     Silent Striders [ %d ]\n\r",
			ch->gifts[REDTALONS], ch->gifts[SHADOWLORDS], ch->gifts[SILENTSTRIDERS] );
	stc(buf, ch);
	sprintf(buf,"     Silver Fangs [ %d ]      StarGazers  [ %d ]          Uktena     [ %d ]\n\r",
			ch->gifts[SILVERFANGS], ch->gifts[STARGAZERS], ch->gifts[UKTENA] );
	stc(buf, ch);
	sprintf(buf,"                              Wendigo    [ %d ]\n\r",
			ch->gifts[WENDIGO] );
	stc(buf, ch);
	stc(lin, ch);*/
	return;
    }
    if (arg2[0] == '\0')
    {
      /* Temporary, until gifts are in */
      do_gifts(ch, "");
      return;
    }

    if (!str_cmp(arg2,"learn"))
    {
	int improve;
	int cost;
	int max = 5;

	     if (!str_cmp(arg1,"homid"            )) improve = HOMID;
	else if (!str_cmp(arg1,"metis"            )) improve = METIS;
	else if (!str_cmp(arg1,"lupus"            )) improve = LUPUS;
	else if (!str_cmp(arg1,"ragabash"         )) improve = RAGABASH;
	else if (!str_cmp(arg1,"theurge"          )) improve = THEURGE;
	else if (!str_cmp(arg1,"philodox"         )) improve = PHILODOX;
	else if (!str_cmp(arg1,"galliard"         )) improve = GALLIARD;
	else if (!str_cmp(arg1,"ahroun"           )) improve = AHROUN;
	else if (!str_cmp(arg1,"black furies"     )) improve = BLACKFURIES;
        else if (!str_cmp(arg1,"children of gaia" )) improve = CHILDREN;
        else if (!str_cmp(arg1,"bone gnawers"     )) improve = BONEGNAWERS;
        else if (!str_cmp(arg1,"fianna"           )) improve = FIANNA;
	else if (!str_cmp(arg1,"get of fenris"    )) improve = GETOFFENRIS;
	else if (!str_cmp(arg1,"glass walkers"    )) improve = GLASSWALKERS;
        else if (!str_cmp(arg1,"red talons"       )) improve = REDTALONS;
	else if (!str_cmp(arg1,"shadow lords"     )) improve = SHADOWLORDS;
	else if (!str_cmp(arg1,"silent striders"  )) improve = SILENTSTRIDERS;
	else if (!str_cmp(arg1,"silver fangs"     )) improve = SILVERFANGS;
	else if (!str_cmp(arg1,"stargazers"       )) improve = STARGAZERS;
	else if (!str_cmp(arg1,"uktena"           )) improve = UKTENA;
	else if (!str_cmp(arg1,"wendigo"          )) improve = WENDIGO;
        else
	{
	    do_gifts(ch,"");
	    return;
	}

	cost = (ch->gifts[improve]+1) * 10;
	arg1[0] = UPPER(arg1[0]);
	if ( ch->gifts[improve] >= max )
	{
	    sprintf(buf,"You have already gained all of the %s gifts.\n\r", arg1);
	    send_to_char(buf,ch);
	    return;
	}

	if ( cost > ch->practice )
	{
	    sprintf(buf,"It costs you %d primal to learn a new %s gift.\n\r", cost, arg1);
	    send_to_char(buf,ch);
	    return;
	}

	ch->gifts[improve] += 1;
	ch->practice -= cost;
	sprintf(buf,"You have learned a new %s gift.\n\r", arg1);
	send_to_char(buf,ch);
	return;
    }

    else send_to_char("To learn a new gift, type: gifts '<name>' learn.\n\r",ch);
    return;
}


/*
 * Homid Gifts
 * Level One  - Persuasion    - Like Awe for Vampires.  Automatic
 * Level Two  - Staredown     - Mobs flee
 * Level Three- Disquiet      - Spell effect, -hit\dam in combat for opponent.
 * Level Four - Reshape Object- Rename objects
 * Level Five - Cocoon        - Damage Reduction
 */

/*
 * Homid - 2 - Staredown 
 */

void do_staredown( CHAR_DATA *ch, char *argument )
{
    CHAR_DATA *victim;
    char arg[MAX_INPUT_LENGTH];
    char buf[MAX_STRING_LENGTH];

    argument = one_argument( argument, arg );

    if ( IS_NPC(ch) ) return;

    if ( !IS_CLASS(ch, CLASS_WEREWOLF) )
    {
	stc("Huh?\n\r",ch);
	return;
    }

    if ( ch->gifts[HOMID] < 2 )
    {
      stc("You have not learned the Homid gift of Staredown.\n\r",ch);
      return;
    }

    if ( ( victim = get_char_room( ch, arg) ) == NULL )
    {
      stc("They aren't here.\n\r",ch);
      return;
    }

    arg[0] = UPPER(arg[0]);    

    if ( ch->fighting == NULL )
    {
      stc("You must be fighting to use the gift of Staredown.\n\r",ch);
      return;
    }

    if ( victim->fighting == NULL )
    {
      sprintf(buf, "%s is not fighting anyone.", arg);
      stc(buf, ch);
      return;
    }  

    WAIT_STATE( ch, 16 );

    if ( IS_NPC(victim) )
    {
      if ( ch->gifts[HOMID] < 4 )
      {
	  if ( number_range( 1, 3 ) != 1 )
        {
          act("You stare deeply into $N's eyes, but nothing happens.",ch,NULL,victim,TO_CHAR);
          act("$n stares deeply into your eyes.",ch,NULL,victim,TO_VICT);
          act("$n stares deeply into $N's eyes, but nothing happens.",ch,NULL,victim,TO_NOTVICT);
	    return;
        }
      }

      act("You stare into $N's eyes, and $E flees in terror.",ch,NULL,victim,TO_CHAR);
      act("$n stares deeply into your eyes, and you are filled with terror.",ch,NULL,victim,TO_VICT);
      act("$n stares deeply into $N's eyes, and $E flees in terror.",ch,NULL,victim,TO_NOTVICT);
      do_flee( victim, "" );
      return;
    }

    else
    {
      if ( ch->gifts[HOMID] < 5 )
      {
        if ( number_range( 1, 4 ) != 2 )
        {
          act("You stare deeply into $N's eyes, but nothing happens.",ch,NULL,victim,TO_CHAR);
          act("$n stares deeply into your eyes.",ch,NULL,victim,TO_VICT);
          act("$n stares deeply into $N's eyes, but nothing happens.",ch,NULL,victim,TO_NOTVICT);
	    return;
        }
      }

      act("You stare into $N's eyes, and $E flees in terror.",ch,NULL,victim,TO_CHAR);
      act("$n stares deeply into your eyes, and you are filled with terror.",ch,NULL,victim,TO_VICT);
      act("$n stares deeply into $N's eyes, and $E flees in terror.",ch,NULL,victim,TO_NOTVICT);
      do_flee( victim, "" );
      return;
    }

  return;

}

void do_disquiet( CHAR_DATA *ch, char *argument )
{
    CHAR_DATA *victim;
    AFFECT_DATA af;
    char arg [MAX_INPUT_LENGTH];

    argument = one_argument( argument, arg );

    if (IS_NPC(ch)) return;

    if (!IS_CLASS(ch, CLASS_WEREWOLF))
    {
      send_to_char("Huh?\n\r", ch);
      return;
    }

    if ( ch->gifts[HOMID] < 3 )
    {
      send_to_char("You have not learned the Homid gift of Disquiet.\n\r", ch);
      return;
    }

    if ( ( victim = get_char_room(ch, arg) ) == NULL ) 
    {
      stc("They are not here.\n\r",ch);
      return;
    }

    if ( is_safe( ch, victim) ) return;

    if ( ch->gnosis[GCURRENT] < 1 )
    {
      stc("You need one point of gnosis power to use the gift of Disquiet.\n\r",ch);
      return;
    }

    af.duration  = ch->gifts[HOMID];
    af.location  = APPLY_DAMROLL;
    af.modifier  = -( ch->gifts[HOMID] * 5 );
    af.bitvector = 0;
    affect_to_char( victim, &af );

    af.duration  = ch->gifts[HOMID];
    af.location  = APPLY_HITROLL;
    af.modifier  = -( ch->gifts[HOMID] * 5 );
    af.bitvector = 0;
    affect_to_char( victim, &af );

    ch->gnosis[CURRENT]--;
    act("Your eyes glow a sinister red as you glare at $N.",ch,NULL,victim,TO_CHAR);
    act("$n's eyes glow a sinister red as $e glares at you.\n\rYou feel odd.",ch,NULL,victim,TO_VICT);
    act("$n's eyes glow a sinister red as $e glares at $N.",ch,NULL,victim,TO_NOTVICT);
    
    return;

}

void do_reshape(CHAR_DATA *ch, char *argument)
{
    char arg1[MAX_STRING_LENGTH];
    char arg2[MAX_STRING_LENGTH];
    OBJ_DATA *obj; 
 
    argument=one_argument(argument,arg1);
    strcpy(arg2,argument);

    if (IS_NPC(ch)) return;

    if (!IS_CLASS(ch,CLASS_WEREWOLF))
    {
      send_to_char("Huh?\n\r",ch);
      return;
    }

    if (ch->gifts[HOMID] < 4)
    {
      send_to_char("You have not achieved the Homid gift of Reshape Object.\n\r",ch);
      return;
    }

    if (arg1 == NULL || arg2 == NULL)
    {
       send_to_char("Syntax: Reshape (Item) (Description).\n\r",ch);
       return;
    }

    if ( ( obj = get_obj_carry( ch,arg1 ) ) == NULL )
    {
      send_to_char("You dont have that item.\n\r",ch);
      return;
    }

    if (strlen(arg2) > 40 || strlen(arg2) < 3)
    {
      send_to_char("The name should be between 3 and 40 characters.\n\r",ch);
      return;
    }

    free_string(obj->name);
    obj->name = str_dup(arg2);
    free_string(obj->short_descr);
    obj->short_descr=str_dup(arg2);
    send_to_char("Ok.\n\r",ch);
    return;
}

void do_cocoon( CHAR_DATA *ch, char *argument )
{
    if ( IS_NPC(ch) ) return;

    if ( !IS_CLASS(ch, CLASS_WEREWOLF) )
    {
	stc("Huh?\n\r",ch);
	return;
    }

    if ( ch->gifts[HOMID] < 5 )
    {
      stc("You haven't learned the Homid gift of Cocoon.\n\r",ch);
      return;
    }


    if ( IS_GAR1(ch, WOLF_COCOON) )
    {
      stc("Your cocoon breaks and falls to the ground.\n\r",ch);
      act("$n's cocoon breaks and falls to the ground.",ch,NULL,NULL,TO_ROOM);
      REMOVE_BIT(ch->garou1, WOLF_COCOON);
      return;
    } 

    if ( ch->gnosis[GCURRENT] < 2 )
    {
      stc("You do not have enough gnosis to use Cocoon.\n\r",ch);
      return;
    }

    else
    {
      stc("Your body is surrounded by a thick, opaque epidermis.\n\r",ch);
      act("$n's body is surrounded by a thick, opaque epidermis.",ch,NULL,NULL,TO_ROOM);
      SET_BIT(ch->garou1, WOLF_COCOON);
      ch->gnosis[GCURRENT]--;
      return;
    }
  return;
}

/*
 * Metis Gifts
 * Level One  - Gift of the Porcupine - Quills
 * Level Two  - Burrow          - Like Demon Travel
 * Level Three- Eyes of the Cat - Nightsight
 * Level Four - Wither Limb	- Withers a limb, easier on NPCs
 * Level Five - Totem Gift	- Random, Special Power. Ooo.
 */

void do_quills( CHAR_DATA *ch, char *argument )
{
    if ( IS_NPC(ch) ) return;

    if ( !IS_CLASS(ch, CLASS_WEREWOLF) )
    {
   	stc("Huh?\n\r",ch);
	return;
    }

    if ( ch->gifts[METIS] < 1 )
    {
        stc("You haven't learned the Gift of the Porcupine.\n\r",ch);
	return;
    }

    if ( IS_SET(ch->newbits, NEW_QUILLS) )
    {
        stc("Your quills soften and twist into fur.\n\r",ch);
	act("$n's quills soften and revert back to fur.",ch,NULL,NULL,TO_ROOM);
        REMOVE_BIT(ch->newbits, NEW_QUILLS);
	return;
    }

    if ( !IS_SET(ch->newbits, NEW_QUILLS) )
    {
        stc("Your fur becomes bristly and sharp.\n\r",ch);
	act("$n's fur becomes bristly and sharp.",ch,NULL,NULL,TO_ROOM);
	SET_BIT(ch->newbits, NEW_QUILLS);
	return;
    }
  return;
}

void do_burrow( CHAR_DATA *ch, char *argument )
{
    char      arg [MAX_INPUT_LENGTH];
    CHAR_DATA *victim;

    argument = one_argument( argument, arg );

    if (IS_NPC(ch)) return;

    if ( !IS_CLASS(ch, CLASS_WEREWOLF) )
    {
        send_to_char("Huh?\n\r",ch);
        return;
    }

    if ( ch->gifts[METIS] < 2 )
    {
        send_to_char("You haven't learned the Metis gift of Burrow.\n\r", ch);
        return;
    }

    if ( arg[0] == '\0' )
    {
        send_to_char("Burrow to who?\n\r", ch);
        return;
    }

    if ( ( victim = get_char_world( ch, arg ) ) == NULL )
    {
        send_to_char( "They are not here.\n\r", ch );
        return;
    }

    if ( IS_NPC(victim) )
    {
        send_to_char( "Not on NPC's.\n\r", ch );
        return;
    }

    if (IS_IMMUNE(victim, IMM_TRAVEL))
    {
        send_to_char("I don't think they want you to do that.\n\r",ch);
        return;
    }        

    if ( victim == ch )
    {
        send_to_char( "You cannot burrow to yourself.\n\r", ch);
        return;
    }

    if ( victim->level != LEVEL_AVATAR || !IS_CLASS(victim, CLASS_WEREWOLF))
    {
        send_to_char( "Nothing happens.\n\r", ch );
        return;
    }

    if (victim->in_room == NULL)
    {
        send_to_char( "Nothing happens.\n\r", ch );
        return;
    }

    send_to_char("You burrow into the ground.\n\r",ch);
    act("$n burrows into the ground.",ch,NULL,NULL,TO_ROOM);
    char_from_room(ch);
    char_to_room(ch,victim->in_room);
    do_look(ch,"");
    send_to_char("You burrow out of the ground.\n\r",ch);
    act("$n burrows out of the ground.",ch,NULL,NULL,TO_ROOM);
    return;
}
  
// Eyes of the Cat - Nightsight.  clan.c

void do_wither( CHAR_DATA *ch, char *argument )
{
    CHAR_DATA *victim;
    OBJ_DATA *obj;
    char arg[MAX_INPUT_LENGTH];
    bool blah = FALSE;
    int chance = 0;

    argument = one_argument( argument, arg );

    if ( IS_NPC(ch) ) return;

    if ( !IS_CLASS(ch, CLASS_WEREWOLF) )
    {
	stc("Huh?\n\r",ch);
	return;
    }

    if ( ch->gifts[METIS] < 4 )
    {
	stc("You haven't learned the Metis gift of Wither Limb.\n\r",ch);
	return;
    }

    if ( ch->gnosis[GCURRENT] < 3 )
    {
	stc("You do not have enough gnosis power stored to use the gift of Wither Limb.\n\r",ch);
	return;
    }

    if ( arg[0] == '\0' )
    {
	stc("Who's limb do you wish to wither?\n\r",ch);
	return;
    }

    if ( ( victim = get_char_room( ch, arg ) ) == NULL )
    {
	stc("They aren't here.\n\r",ch);
	return;
    }

    if ( IS_ARM_R(victim, LOST_ARM) && IS_ARM_L(victim, LOST_ARM) )
    {
	stc("They have already lost both their arms.\n\r",ch);
	return;
    }
 
    WAIT_STATE(ch, 32);
    ch->gnosis[CURRENT] -= 3;
    if ( IS_NPC( victim ) )
    {
      chance = number_range( 45, 55 );

      if ( number_percent( ) > chance )
      {
	stc("Nothing happened.\n\r",ch);
	return;
      }

       if ( !IS_ARM_R(victim, LOST_ARM) )
         blah = FALSE;
       else blah = TRUE;

	 if ( !blah )
         {
 	  if (!IS_ARM_R(victim,LOST_ARM))
	      SET_BIT(victim->loc_hp[3],LOST_ARM);
	  if (!IS_BLEEDING(victim,BLEEDING_ARM_R))
	      SET_BIT(victim->loc_hp[6],BLEEDING_ARM_R);
	  if (IS_BLEEDING(victim,BLEEDING_HAND_R))
	      REMOVE_BIT(victim->loc_hp[6],BLEEDING_HAND_R);
	  act("You concentrate deeply and $N's arm starts to wither!",ch,NULL,victim,TO_CHAR);
	  act("$n's eyes glow dark red as $e gazes at you, and your arm begins withering!",ch,NULL,victim,TO_NOTVICT);
	  act("$n gazes evilly at $N, and $S arm begins withering!",ch,NULL,victim,TO_VICT);
	  make_part(victim,"arm");
	  if (IS_ARM_L(victim,LOST_ARM) && IS_ARM_R(victim,LOST_ARM))
	  {
	      if ((obj = get_eq_char( victim, WEAR_ARMS )) != NULL)
		  take_item(victim,obj);
	  }
	  if ((obj = get_eq_char( victim, WEAR_WIELD )) != NULL)
	      take_item(victim,obj);
	  if ((obj = get_eq_char( victim, WEAR_HANDS )) != NULL)
	      take_item(victim,obj);
	  if ((obj = get_eq_char( victim, WEAR_WRIST_R )) != NULL)
	      take_item(victim,obj);
	  if ((obj = get_eq_char( victim, WEAR_FINGER_R )) != NULL)
	      take_item(victim,obj);
	  return;
         }
       
	 else if ( blah )
	 {
 	  if (!IS_ARM_L(victim,LOST_ARM))
	      SET_BIT(victim->loc_hp[2],LOST_ARM);
	  else blah = TRUE;
	  if (!IS_BLEEDING(victim,BLEEDING_ARM_L))
	      SET_BIT(victim->loc_hp[6],BLEEDING_ARM_L);
	  if (IS_BLEEDING(victim,BLEEDING_HAND_L))
	      REMOVE_BIT(victim->loc_hp[6],BLEEDING_HAND_L);
	  act("You concentrate deeply and $N's arm starts to wither!",ch,NULL,victim,TO_CHAR);
	  act("$n's eyes glow dark red as $e gazes at you, and your arm begins withering!",ch,NULL,victim,TO_NOTVICT);
	  act("$n gazes evilly at $N, and $S arm begins withering!",ch,NULL,victim,TO_VICT);
	  make_part(victim,"arm");
	  if (IS_ARM_L(victim,LOST_ARM) && IS_ARM_R(victim,LOST_ARM))
	  {
	      if ((obj = get_eq_char( victim, WEAR_ARMS )) != NULL)
		  take_item(victim,obj);
	  }
	  if ((obj = get_eq_char( victim, WEAR_WIELD )) != NULL)
	      take_item(victim,obj);
	  if ((obj = get_eq_char( victim, WEAR_HANDS )) != NULL)
	      take_item(victim,obj);
	  if ((obj = get_eq_char( victim, WEAR_WRIST_L )) != NULL)
	      take_item(victim,obj);
	  if ((obj = get_eq_char( victim, WEAR_FINGER_L )) != NULL)
	      take_item(victim,obj);
	  return;
        }
    }

    else if ( !IS_NPC(victim) )
    {
	chance = 15;
      if ( number_percent( ) > chance )
      {
	act("You gaze intently at $N.\n\rNothing happens.",ch,NULL,victim,TO_CHAR);
	act("$n gazes eerily at you.\n\rNothing happens.",ch,NULL,victim,TO_VICT);
	act("$n gazes eerily at $N.",ch,NULL,victim,TO_NOTVICT);
	return;
      }


       if ( !IS_ARM_R(victim, LOST_ARM) )
         blah = FALSE;
       else blah = TRUE;

	 if ( !blah )
         {
 	  if (!IS_ARM_R(victim,LOST_ARM))
	      SET_BIT(victim->loc_hp[3],LOST_ARM);
	  if (!IS_BLEEDING(victim,BLEEDING_ARM_R))
	      SET_BIT(victim->loc_hp[6],BLEEDING_ARM_R);
	  if (IS_BLEEDING(victim,BLEEDING_HAND_R))
	      REMOVE_BIT(victim->loc_hp[6],BLEEDING_HAND_R);
	  act("You concentrate deeply and $N's arm starts to wither!",ch,NULL,victim,TO_CHAR);
	  act("$n's eyes glow dark red as $e gazes at you, and your arm begins withering!",ch,NULL,victim,TO_NOTVICT);
	  act("$n gazes evilly at $N, and $S arm begins withering!",ch,NULL,victim,TO_VICT);
	  make_part(victim,"arm");
	  if (IS_ARM_L(victim,LOST_ARM) && IS_ARM_R(victim,LOST_ARM))
	  {
	      if ((obj = get_eq_char( victim, WEAR_ARMS )) != NULL)
		  take_item(victim,obj);
	  }
	  if ((obj = get_eq_char( victim, WEAR_WIELD )) != NULL)
	      take_item(victim,obj);
	  if ((obj = get_eq_char( victim, WEAR_HANDS )) != NULL)
	      take_item(victim,obj);
	  if ((obj = get_eq_char( victim, WEAR_WRIST_R )) != NULL)
	      take_item(victim,obj);
	  if ((obj = get_eq_char( victim, WEAR_FINGER_R )) != NULL)
	      take_item(victim,obj);
	  return;
	 }

	 else if ( blah )
	 {
 	  if (!IS_ARM_L(victim,LOST_ARM))
	      SET_BIT(victim->loc_hp[2],LOST_ARM);
	  else blah = TRUE;
	  if (!IS_BLEEDING(victim,BLEEDING_ARM_L))
	      SET_BIT(victim->loc_hp[6],BLEEDING_ARM_L);
	  if (IS_BLEEDING(victim,BLEEDING_HAND_L))
	      REMOVE_BIT(victim->loc_hp[6],BLEEDING_HAND_L);
	  act("You concentrate deeply and $N's arm starts to wither!",ch,NULL,victim,TO_CHAR);
	  act("$n's eyes glow dark red as $e gazes at you, and your arm begins withering!",ch,NULL,victim,TO_NOTVICT);
	  act("$n gazes evilly at $N, and $S arm begins withering!",ch,NULL,victim,TO_VICT);
	  make_part(victim,"arm");
	  if (IS_ARM_L(victim,LOST_ARM) && IS_ARM_R(victim,LOST_ARM))
	  {
	      if ((obj = get_eq_char( victim, WEAR_ARMS )) != NULL)
		  take_item(victim,obj);
	  }
	  if ((obj = get_eq_char( victim, WEAR_WIELD )) != NULL)
	      take_item(victim,obj);
	  if ((obj = get_eq_char( victim, WEAR_HANDS )) != NULL)
	      take_item(victim,obj);
	  if ((obj = get_eq_char( victim, WEAR_WRIST_L )) != NULL)
	      take_item(victim,obj);
	  if ((obj = get_eq_char( victim, WEAR_FINGER_L )) != NULL)
	      take_item(victim,obj);
	  return;
        }
      }
  return;
}

/*
 * Ahroun Gifts
 */

void do_razorclaws(CHAR_DATA *ch, char *argument)
{

   if (IS_CLASS(ch, CLASS_WEREWOLF))
   {
	if ( ch->gifts[AHROUN] <= 1 )
        {
	    stc("Huh?\n\r",ch);
	    return;
	}
   }

   if ( !IS_VAMPAFF(ch, VAM_CLAWS) )
   {
	stc("Your talons aren't even extended!\n\r",ch);
	return;
   }

   if ( IS_GAR1(ch, WOLF_RAZORCLAWS ) )
   {
      stc("Your claws lose their razor-sharp edge.\n\r",ch);
      act("$n's claws lose their razor-sharp edge.",ch,NULL,NULL,TO_ROOM);
      REMOVE_BIT(ch->garou1, WOLF_RAZORCLAWS);
   }
   else
   {
	send_to_char("You hone your claws to a razor sharpness.\n\r",ch);
	act("$n hones $s claws to a razor sharpness.",ch, NULL, NULL, TO_ROOM);
	SET_BIT( ch->garou1, WOLF_RAZORCLAWS );
   }

  return;

}