atd/area/
atd/build/
atd/clans/
atd/log/
atd/player/store/
atd/site/
atd/src/bin/
/* Equipment commands by Tracker */

#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 "player.h"

void do_classcreate( CHAR_DATA *ch, char *argument )
{
    OBJ_INDEX_DATA *pObjIndex;
    OBJ_DATA *obj;
    char arg[MAX_INPUT_LENGTH];
    char buf[MAX_STRING_LENGTH];
    char buf2[MAX_STRING_LENGTH];
    char ooga[MAX_STRING_LENGTH];
    char ooga2[MAX_STRING_LENGTH];
    char ooga3[MAX_STRING_LENGTH];
    int vnum = 0;
    
    argument = one_argument( argument, arg );
    
    if (IS_NPC(ch)) return;
    
    if (IS_CLASS(ch, CLASS_DEMON) || 
	 (IS_CLASS(ch, CLASS_DROW) || (IS_CLASS(ch, CLASS_HIGHLANDER))))
    {
      send_to_char("Huh?\n\r",ch);
      return;
    }

    if (IS_NPC(ch))
    {
            send_to_char("Huh?\n\r",ch);
            return;
    }
    
    if (arg[0] == '\0')
    {   
        send_to_char("Please specify what kind of equipment you want to create.\n\r", ch );
        send_to_char("Cloak, Boots, Leggings, Sleeves, Belt\n\rHood, Mask, Bracer, Ring, Amulet\n\rVest, Gloves, Long, Short.\n\r",ch);
        return;
    }
    if      (!str_cmp(arg, "cloak"   )) 
    {
    vnum = 30435;
    sprintf(ooga,"Cloak");
    }
    else if (!str_cmp(arg, "boots"   )) 
    {
      vnum = 30428;
      sprintf(ooga,"Boots"); 
    }
    else if (!str_cmp(arg, "leggings")) 
    {
      vnum = 30429;
      sprintf(ooga,"Leggings");
    }
    else if (!str_cmp(arg, "sleeves" )) 
    {
      vnum = 30431;
      sprintf(ooga,"Sleeves");
    }
    else if (!str_cmp(arg, "belt"    )) 
    {
      vnum = 30432;
      sprintf(ooga,"Belt");
    }
    else if (!str_cmp(arg, "hood"    )) 
    {
      vnum = 30436;
      sprintf(ooga,"Hood");
    }
    else if (!str_cmp(arg, "mask"    )) 
    {
      vnum = 30434;
      sprintf(ooga,"Mask");
    }
    else if (!str_cmp(arg, "bracer"  )) 
    {
      vnum = 30433;
      sprintf(ooga,"Bracer");
    }
    else if (!str_cmp(arg, "ring"    )) 
    {
      vnum = 30425;
      sprintf(ooga,"Ring");
    }
    else if (!str_cmp(arg, "amulet"  )) 
    {
      vnum = 30426;
      sprintf(ooga,"Amulet");
    }
    else if (!str_cmp(arg, "vest"    )) 
    {
      vnum = 30427;
      sprintf(ooga,"Vest");
    }
    else if (!str_cmp(arg, "gloves"  )) 
    {
      vnum = 30430;
      sprintf(ooga,"Gloves");
    }
    else if (!str_cmp(arg, "long"    ))
    {
      vnum = 32220;
      sprintf(ooga,"LongSword");
    }
    else if (!str_cmp(arg, "short"   ))
    {
      vnum = 32221;
      sprintf(ooga,"ShortSword");
    }
    else
    {
        send_to_char("That is an invalid type.\n\r", ch );
        return;
    }
    if ( ch->practice < 100)
    {
        send_to_char("It costs 100 primal to create equipment.\n\r",ch);
        return;
    }
    if ( vnum == 0 || (pObjIndex = get_obj_index( vnum )) == NULL)
    {
        send_to_char("Missing object, please inform Tracker.\n\r",ch);
        return;
    }
    ch->practice -= 100;
    obj = create_object(pObjIndex, 50);
    obj_to_char(obj, ch);
    act("$p appears in your hands.",ch,obj,NULL,TO_CHAR);
    act("$p appears in $n's hands.",ch,obj,NULL,TO_ROOM);

    if (IS_CLASS(ch, CLASS_WEREWOLF))
    {
      sprintf(ooga2,"{D[{yWereWolf{D]{w wolfkin");
      sprintf(ooga2,"wolfkin");
    }
    else if (IS_CLASS(ch, CLASS_NINJA))
    {
      sprintf(ooga2,"{D[{mNinja{D]{w assassin's");
      sprintf(ooga3,"ninja assassin");
    }
    else if (IS_CLASS(ch, CLASS_ANGEL))
    {
      sprintf(ooga2,"{D[{WAngel{D]{w angelic");
      sprintf(ooga3,"angelic angel");
    }
    else if (IS_CLASS(ch, CLASS_VAMPIRE))
    {
      sprintf(ooga2,"{D[{rVampire{D]{w vampiric");
      sprintf(ooga3,"vampiric vampire");
    }
    else if (IS_CLASS(ch, CLASS_PRIEST))
    {
      sprintf(ooga2,"{D[{WPriest{D]{w holy");
      sprintf(ooga3,"priest holy");
    }
	else if (IS_CLASS(ch, CLASS_RANGER))
	{
	  sprintf(ooga2,"{D[{GRanger{D]{w nature's");
	  sprintf(ooga3,"nature ranger");
	}
    else if( IS_CLASS( ch, CLASS_MAGE ) )
    {
	char * col;
        char * title;
	switch ( PC(ch,powers[MPOWER_RUNE0]) )
        {
            default: col = "#c"; break;
            case PURPLE_MAGIC:  col = "#p";  break;
            case RED_MAGIC:     col = "#r"; break;
            case BLUE_MAGIC:    col = "#b"; break;
            case GREEN_MAGIC:   col = "#g"; break;
            case YELLOW_MAGIC:  col = "#Y";break;
        }

	switch( ch->level )
	{
	   default: title = "Chaos"; break;
	   case LEVEL_APPRENTICE: title = "Apprentice"; break;
           case LEVEL_MAGE: title = "Magistra"; break;
           case LEVEL_ARCHMAGE: title = "Mythical Master"; break;
	}
	sprintf( ooga2, "{D[%s%s{D]{w Mystical", col, title );
	sprintf( ooga3, "%s mage mystical", title );
    }
    else
    {
      sprintf(ooga2,"{D[#.ClassLess{D]{w classless");
      sprintf(ooga3,"classless");
    }

      sprintf(buf,"%s %s",ooga2,ooga);
      sprintf(buf2,"%s %s",ooga3,ooga);
        free_string( obj->short_descr );
        obj->short_descr = str_dup( buf );
        free_string( obj->name );
        obj->name = str_dup( buf2 );
      send_to_char("You bend and shape the object to fit your class.\n\r",ch);
    return;
}

void do_vampcreate( CHAR_DATA *ch, char *argument )
{
    OBJ_INDEX_DATA *pObjIndex;
    OBJ_DATA *obj; 
    char arg[MAX_INPUT_LENGTH];
    int vnum = 0;
    
    argument = one_argument( argument, arg );
        
    if (IS_NPC(ch)) return;
        
    if (!IS_CLASS(ch, CLASS_VAMPIRE))
    {
            send_to_char("Huh?\n\r",ch);
            return;
    }

    if (arg[0] == '\0')
    {
        send_to_char("Please specify what kind of equipment you want to create.\n\r", ch );
        send_to_char("Ring, Cape, Armor, Helm, Pants,\n\rBoots, Gauntlets, Bracer, Sleeves, Belt,\n\rMask, Gloves, Cloak.",ch);
        return;
    }   

    if      (!str_cmp(arg, "ring"     )) vnum = 32222;
    else if (!str_cmp(arg, "cape"     )) vnum = 32223;
    else if (!str_cmp(arg, "armor"    )) vnum = 32224;
    else if (!str_cmp(arg, "helm"     )) vnum = 32225;
    else if (!str_cmp(arg, "pants"    )) vnum = 32226;
    else if (!str_cmp(arg, "boots"    )) vnum = 32227;
    else if (!str_cmp(arg, "gauntlets")) vnum = 32228;
    else if (!str_cmp(arg, "bracer"   )) vnum = 32229;
    else if (!str_cmp(arg, "sleeves"  )) vnum = 32230;
    else if (!str_cmp(arg, "belt"     )) vnum = 32231;
    else if (!str_cmp(arg, "mask"     )) vnum = 32232;
    else if (!str_cmp(arg, "gloves"   )) vnum = 32233;
    else if (!str_cmp(arg, "cloak"    )) vnum = 32234;
    else
    {
        send_to_char("That is an invalid type.\n\r", ch );
        return;
    }
    if ( ch->practice < 100)
    {
        send_to_char("It costs 100 primal to create equipment.\n\r",ch);
        return;
    }
    if ( vnum == 0 || (pObjIndex = get_obj_index( vnum )) == NULL)
    {
        send_to_char("Missing object, please inform Tracker.\n\r",ch);
        return;
    }
    ch->practice -= 100;
    obj = create_object(pObjIndex, 50);
    obj_to_char(obj, ch);
    act("$p appears in your hands.",ch,obj,NULL,TO_CHAR); 
    act("$p appears in $n's hands.",ch,obj,NULL,TO_ROOM);
    return;
}

void do_ninjacreate( CHAR_DATA *ch, char *argument )
{
    OBJ_INDEX_DATA *pObjIndex;
    OBJ_DATA *obj; 
    char arg[MAX_INPUT_LENGTH];
    int vnum = 0;
    
    argument = one_argument( argument, arg );
        
    if (IS_NPC(ch)) return;
        
    if (!IS_CLASS(ch, CLASS_NINJA))
    {
            send_to_char("Huh?\n\r",ch);
            return;
    }

    if (arg[0] == '\0')
    {
        send_to_char("Please specify what kind of equipment you want to create.\n\r", ch );
        send_to_char("Cloak, Boots, Leggings, Sleeves, Belt\n\rHood, Mask, Bracer, Ring, Amulet\n\rVest, Gloves.",ch);
        return;
    }   
    if      (!str_cmp(arg, "cloak"   )) vnum = 30435;
    else if (!str_cmp(arg, "boots"   )) vnum = 30428;
    else if (!str_cmp(arg, "leggings")) vnum = 30429;
    else if (!str_cmp(arg, "sleeves" )) vnum = 30431;
    else if (!str_cmp(arg, "belt"    )) vnum = 30432;
    else if (!str_cmp(arg, "hood"    )) vnum = 30436;
    else if (!str_cmp(arg, "mask"    )) vnum = 30434;
    else if (!str_cmp(arg, "bracer"  )) vnum = 30433;
    else if (!str_cmp(arg, "ring"    )) vnum = 30425;
    else if (!str_cmp(arg, "amulet"  )) vnum = 30426;
    else if (!str_cmp(arg, "vest"    )) vnum = 30427;
    else if (!str_cmp(arg, "gloves"  )) vnum = 30430;
    else
    {
        send_to_char("That is an invalid type.\n\r", ch );
        return;
    }
    if ( ch->practice < 100)
    {
        send_to_char("It costs 100 primal to create equipment.\n\r",ch);
        return;
    }
    if ( vnum == 0 || (pObjIndex = get_obj_index( vnum )) == NULL)
    {
        send_to_char("Missing object, please inform Tracker.\n\r",ch);
        return;
    }
    ch->practice -= 100;
    obj = create_object(pObjIndex, 50);
    SET_BIT(obj->spectype, SITEM_NINJA);
    obj_to_char(obj, ch);
    act("$p appears in your hands.",ch,obj,NULL,TO_CHAR); 
    act("$p appears in $n's hands.",ch,obj,NULL,TO_ROOM);
    return;
}

void do_magecreate( CHAR_DATA *ch, char *argument )
{
    OBJ_INDEX_DATA *pObjIndex;
    OBJ_DATA *obj; 
    char arg[MAX_INPUT_LENGTH];
    int vnum = 0;
    
    argument = one_argument( argument, arg );
        
    if (IS_NPC(ch)) return;
        
    if (!IS_CLASS(ch, CLASS_MAGE))
    {
            send_to_char("Huh?\n\r",ch);
            return;
    }

    if (arg[0] == '\0')
    {
        send_to_char("Please specify what kind of equipment you want to create.\n\r", ch );
        send_to_char("Ring, Amulet, Plate, Helm, Leggings\n\rBoots, Gauntlets, Armplates, Cloak, Bracer\n\rGirth, Cape.",ch);
        return;
    }   

    if      (!str_cmp(arg, "ring"     )) vnum = 30412;
    else if (!str_cmp(arg, "amulet"   )) vnum = 30413;
    else if (!str_cmp(arg, "plate"    )) vnum = 30414;
    else if (!str_cmp(arg, "helm"     )) vnum = 30415;
    else if (!str_cmp(arg, "leggings" )) vnum = 30416;
    else if (!str_cmp(arg, "boots"    )) vnum = 30417;
    else if (!str_cmp(arg, "gauntlets")) vnum = 30418;
    else if (!str_cmp(arg, "armplates")) vnum = 30419;
    else if (!str_cmp(arg, "cloak"    )) vnum = 30420;
    else if (!str_cmp(arg, "bracer"   )) vnum = 30421;
    else if (!str_cmp(arg, "mask"     )) vnum = 30422;
    else if (!str_cmp(arg, "girth"    )) vnum = 30423;
    else if (!str_cmp(arg, "cape"     )) vnum = 30452;
    else
    {
        send_to_char("That is an invalid type.\n\r", ch );
        return;
    }
    if ( ch->practice < 100)
    {
        send_to_char("It costs 100 primal to create equipment.\n\r",ch);
        return;
    }
    if ( vnum == 0 || (pObjIndex = get_obj_index( vnum )) == NULL)
    {
        send_to_char("Missing object, please inform Tracker.\n\r",ch);
        return;
    }
    ch->practice -= 100;
    obj = create_object(pObjIndex, 50);
    obj_to_char(obj, ch);
    act("$p appears in your hands.",ch,obj,NULL,TO_CHAR); 
    act("$p appears in $n's hands.",ch,obj,NULL,TO_ROOM);
    return;
}