cotn25/area/
cotn25/src/
/***************************************************************************
 *  Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer,        *
 *  Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe.   *
 *                                                                         *
 *  Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael          *
 *  Chastain, Michael Quan, and Mitchell Tse.                              *
 *                                                                         *
 *  In order to use any part of this Merc Diku Mud, you must comply with   *
 *  both the original Diku license in 'license.doc' as well the Merc      
 *
 *  license in 'license.txt'.  In particular, you may not remove either of *
 *  these copyright notices.                                               *
 *                                                                         *
 *  Much time and thought has gone into this software and you are          *
 *  benefitting.  We hope that you share your changes too.  What goes      *
 *  around, comes around.                                                  *
 ***************************************************************************/
 /***************************************************************************
 *  God Wars Mud originally written by KaVir aka Richard Woolcock.         *
 *  Changes done to the code done by Sage aka Walter Howard, this mud is   *
 *  for the public, however if you run this code it means you agree        *
 *  to the license.low, license.gw, and license.merc have fun. :)          *
***************************************************************************/

#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"

/*offer(sacrifice)*/

/*
void do_offer(CHAR_DATA *ch, char *argument  )
{
    char arg[MAX_INPUT_LENGTH];
    CHAR_DATA *victim;
    char buf[MAX_STRING_LENGTH];
    one_argument( argument,arg);
 
    if (IS_NPC(ch)) return;
    if ( arg[0] == '\0' )
    {
        send_to_char( "Who do you wish to sacrifice?\n\r", ch );
	return;
    }
    if ((victim = get_char_room( ch, arg)) == NULL)
    {
    send_to_char("They arent here.\n\r",ch);
    return;
    }
    if (IS_NPC(victim))
    {
    send_to_char("You cant sacrifice them!\n\r",ch);
    return;
    }

	if (!str_cmp(victim->name, "SirMog")) return;

    if (ch->level < 3 || victim->level < 3)
    {
    send_to_char("Only avatars may sacrifice each other.\n\r",ch);
    return;
    }
    if (victim->position > POS_INCAP)
    {
    send_to_char("You can only sacrifice mortally wounded
players.\n\r",ch);
    return;
    }
    if (is_safe(ch,victim) == TRUE) return;
    WAIT_STATE(ch,8);
sprintf(buf,"%s places his hand on %s's head.",ch->name,victim->name); 
act(buf,ch,NULL,NULL,TO_ROOM);
sprintf(buf,"You place your hand on %s's head.",victim->name);
send_to_char(buf,ch);
sprintf(buf,"A divine spirit snatches %s from the planet.",victim->name);
act(buf,ch,NULL,NULL,TO_ROOM);
send_to_char(buf,ch);
sprintf(buf,"%s has been sacrificed to God by %s.",victim->name,ch->name);
if (IS_CLASS(ch,CLASS_VAMPIRE))
{
sprintf(buf,"%s has been sacrificed to Caine by %s.",victim->name,ch->name);
send_to_char("You have been gifted power by Caine.\n\r",ch);
}
if (IS_CLASS(ch,CLASS_WEREWOLF))
{
sprintf(buf,"%s has been sacrificed to Gaia by %s.",victim->name,ch->name);
send_to_char("You have been gifted power by Gaia.\n\r",ch);
}
if (IS_CLASS(ch,CLASS_DEMON))
{
sprintf(buf,"%s has been sacrificed to Satan by %s.",victim->name,ch->name);
send_to_char("You have been gifted power by Satan\n\r",ch);
}
if (IS_CLASS(ch, CLASS_DROW)) 
{
sprintf(buf,"%s has been sacirificed to Lloth by %s.",victim->name,ch->name);
send_to_char("You have been gifted power by Lloth.\n\r", ch );
}
do_info(ch,buf);

    if (( ch->race - victim->race > 10 && ch->race > 0)
	|| (victim->race == 0 && ch->race > 0)  )
       {
	ch->paradox[0] += ch->race;
	ch->paradox[1] += ch->race;
	ch->paradox[2] += PARADOX_TICK;
    	do_paradox(ch,"self");
	if (IS_CLASS(victim, CLASS_VAMPIRE))
	do_mortalvamp(victim,"");
	else if (IS_SET(victim->special, SPC_WOLFMAN))
	do_unwerewolf(victim,"");
	if (IS_CLASS(victim, CLASS_MAGE) && IS_AFFECTED(victim, AFF_POLYMORPH)) 
	do_unpolymorph(victim,"");
	if (IS_CLASS(victim, CLASS_DROW) && IS_POLYAFF(victim,
POLY_SPIDERFORM))
	do_spiderform(victim,"");
	do_beastlike(ch,"");
	victim->level = 2;
	victim->trust = 0;
        raw_kill(victim);
	WAIT_STATE(victim, 10);
	return;
    }

ch->hit = ch->max_hit;
ch->mana= ch->max_mana;
ch->move= ch->max_move;
if (victim->race > 0)
{

if (IS_CLASS(ch, CLASS_DEMON))
    ch->pcdata->souls ++;
ch->practice += 10;
victim->race -= 1;
}
 
raw_kill(victim);
WAIT_STATE(victim,20);
return;
}

*/

void do_oldlevel( CHAR_DATA *ch, char *argument )
{
    char arg       [MAX_INPUT_LENGTH];
    char skill  [20]; 
    char stance [20];
    float chgen = 0;
    float chgenexp = 0;
    int percent = 0;
    int nextgen = 0;
    int expneeded = 0;
    one_argument( argument, arg );
    ROOM_INDEX_DATA *room;

    if (IS_NPC(ch)) return;  
    
	if (arg[0] == '\0')
	{
	stc("#0x#r----#R=====#r----#R=====#r----#R=====#r----#0x#n\n\r",ch);
	sprintf(skill, "#0You are currently generation #W%d#n\n\r", ch->generation);
        send_to_char( skill, ch );
        chgen = ch->generation;
	chgenexp = ch->genexp;
	if (ch->generation == 6)
       expneeded = 13000000.00;
    else if(ch->generation == 5)
       expneeded = 150000000.00;
    else if(ch->generation == 4)
       expneeded = 400000000.00;
    else if(ch->generation == 3)
       expneeded = 900000000.00;
    else if(ch->generation == 2)
       expneeded = 1800000000.00;
	percent = (chgenexp / expneeded)*100.00;

	nextgen = (ch->generation - 1);
	if (ch->generation > 1 && ch->level > 2)
	{
	sprintf(skill,"#0You are #R%d#W%% #0on your way to generation #R%d.#n\n\r",percent,nextgen);
	stc(skill,ch);
	}
	
	stc("#0x#r----#R=====#r----#R=====#r----#R=====#r----#0x#n\n\r",ch);
	if ( ch->stance[12] == 1 )
      sprintf(stance, " Viper" );
     else if ( ch->stance[12] == 2 )
      sprintf(stance, " Crane" );
     else if ( ch->stance[12] == 3 )
      sprintf(stance, " Crab" );  
     else if ( ch->stance[12] == 4 )
      sprintf(stance, " Mongoose" );  
     else if ( ch->stance[12] == 5 )
      sprintf(stance, " Pitbull" );  
     else if ( ch->stance[12] == 6 )
      sprintf(stance, " Hawk" );  
     else if ( ch->stance[12] == 7 )
      sprintf(stance, " Badger" );  
     else if ( ch->stance[12] == 8 )
      sprintf(stance, " Cougar" );  
     else if ( ch->stance[12] == 9 )
      sprintf(stance, " Wolverine" );  
     else if ( ch->stance[12] == 10 )
      sprintf(stance, " Grizzly" ); 
     else if ( ch->stance[12] == 11 )
      sprintf(stance, " Wolf" );
     else if ( ch->stance[12] == 13 )
      sprintf( stance, " SS1");
     else if ( ch->stance[12] == 14 )
      sprintf( stance, " SS2");
     else if ( ch->stance[12] == 15 )
      sprintf( stance, " SS3");
     else if ( ch->stance[12] == 16 )
      sprintf( stance, " SS4");
     else if ( ch->stance[12] == 17 )
      sprintf( stance, " SS5");
     else if ( ch->stance[12] == -1 )
      sprintf(stance, " None" );
     else
      sprintf(stance, " None" );
	sprintf(skill, "#0Autostance#n:  #R%s #n\n\r",stance);
     send_to_char(skill, ch);
    if (IS_SET(ch->act, PLR_RIGHTHAND))
      send_to_char("#wYou favor your right arm in combat.#n\n\r",ch);
    else if(IS_SET(ch->act, PLR_LEFTHAND))
      send_to_char("#wYou favor your left arm in combat.#n\n\r",ch);
    else
      send_to_char("#wYou fight well with both your arms.#n\n\r",ch);

    stc("#0x#r----#R=====#r----#R=====#r----#R=====#r----#0x#n\n\r",ch);
    
    if ( IS_CLASS(ch, CLASS_DEMON) )
     send_to_char("You are a demon!\n\r", ch);
     if (IS_CLASS(ch, CLASS_UNDEAD_KNIGHT))
       send_to_char("You are an undead knight!\n\r",ch);
     if ( IS_CLASS(ch, CLASS_WEREWOLF) )
     send_to_char("You are a werewolf!\n\r", ch);
    if ( IS_CLASS(ch, CLASS_VAMPIRE) )
     send_to_char("You are a vampire!\n\r", ch);
    if ( IS_CLASS(ch, CLASS_DROW) )
     send_to_char("You are a drow!\n\r", ch);    
    if (IS_CLASS(ch, CLASS_DRACONIAN))
     send_to_char("You are a Draconian!!\n\r",ch);
    if (IS_CLASS(ch, CLASS_WIZARD))
     send_to_char("You are a War Wizard!\n\r",ch);
    if (IS_CLASS(ch, CLASS_WRAITH))
     send_to_char("You are a wraith!!\n\r",ch);
    if (IS_CLASS(ch, CLASS_ELEMENTAL))
     send_to_char("You are an Elemental!!\n\r",ch);
    if (IS_CLASS(ch, CLASS_PALADIN))
     send_to_char("You are a Paladin!!\n\r",ch);
    if (IS_CLASS(ch, CLASS_ASSASSIN))
     send_to_char("You are an Assassin!!\n\r",ch);
    if (IS_CLASS(ch, CLASS_ANGEL))
     send_to_char("You are an angel!\n\r", ch);
    if (IS_CLASS(ch, CLASS_TANARRI))
     send_to_char("You are a warrior of The Bloodwars.\n\r",ch);
    if (IS_CLASS(ch, CLASS_UNDEAD_LYCAN))
     send_to_char("You are an undead lycan!\n\r", ch);
    if (IS_CLASS(ch, CLASS_HELLS_SOLDIER))
     send_to_char("You are a HELLS SOLDIER!\n\r", ch);
    if (IS_CLASS(ch, CLASS_UNDEAD_ASSASSIN))
     send_to_char("You are an Undead Assassin.\n\r", ch);
    if (IS_CLASS(ch, CLASS_BLADE_MASTER))
     send_to_char("You are a Blade Master.\n\r", ch);
     if ( IS_CLASS(ch, CLASS_DRAGON) )
     send_to_char(" You are a dragon!                      \n\r", ch);    


 if (IS_CLASS(ch, CLASS_TANARRI))
 {
  if (ch->pcdata->rank == TANARRI_FODDER)
    send_to_char("You are nothing but fodder for the great war.\n\r",ch);
  if (ch->pcdata->rank == TANARRI_FIGHTER)
    send_to_char("You are a fighter in the great war.\n\r",ch);
  if (ch->pcdata->rank == TANARRI_ELITE)
    send_to_char("You are an elite warrior in the great war.\n\r",ch);
  if (ch->pcdata->rank == TANARRI_CAPTAIN)
    send_to_char("You are a captain in the great war.\n\r",ch);
  if (ch->pcdata->rank == TANARRI_WARLORD)
    send_to_char("You are a warlord in the great war.\n\r",ch);
  if (ch->pcdata->rank == TANARRI_BALOR)
    send_to_char("You are a Tanar'ri Balor.\n\r",ch);
 } 

 if (IS_CLASS(ch, CLASS_VAMPIRE) )
 {

	if (ch->pcdata->rank == AGE_TRUEBLOOD)
	  send_to_char("You are a TrueBlood!\n\r",ch);
	else if (ch->pcdata->rank == AGE_LA_MAGRA)
	  send_to_char("You are a La Magra!\n\r",ch);
	else if (ch->pcdata->rank == AGE_METHUSELAH)
	  send_to_char("You are a Methuselah!\n\r",ch);
	else if (ch->pcdata->rank == AGE_ELDER)
	  send_to_char("You are an Elder!\n\r",ch);
	else if (ch->pcdata->rank == AGE_ANCILLA)
	  send_to_char("You are an Ancilla!\n\r",ch);
	else if (ch->pcdata->rank == AGE_NEONATE)
	  send_to_char("You are a Neonate!\n\r", ch);
	else
	  send_to_char("You are a Childe!\n\r", ch);
    }
    room = get_room_index( ch->home );
    
	sprintf(skill, "#0Recall Room#R : #Y%s#n\n\r", room->name);
    send_to_char( skill, ch );
	stc("#0x#r----#R=====#r----#R=====#r----#R=====#r----#0x#n\n\r",ch);	
	stc("#wTo view weapons, use the argument weapons ('#Rlevel weapons#w')#n\n\r",ch);	
	stc("#wTo view stances, use the argument stances ('#Blevel stances#w')#n\n\r",ch);
	stc("#wTo view spells, use the argument spells ('#Plevel spells#w')#n\n\r",ch);
	stc("#wTo view using old style dystopia method ('#Woldlevel#w')#n",ch);
        }

	else if (!str_cmp(arg,"weapons"))
	{
     stc("     ,/|   #G(__                   #0/|#l    /(_)\\    #0|\\                  #G__)#g     |\\\n\r",ch);
     stc("   ,/  \\   #G, _#R`#G-\\              #0/' `\\#b   \\#R`#b,#R'#b/   #0/' `\\             #G/-#R`#G__ >,#g  /  `\\\n\r",ch);
     stc("  /     \\_#G/ / #7^^^            #0/' / | `\\#l_/\\^/\\#l_#0/' | \\ `\\           #7^^^#G  \\ \\#g_/    `\\\n\r",ch);
     stc(" /    |   #G||                #0O  |   \\#b/'   #0V#b   `\\#0/   |  O                #G||   #g|    \\\n\r",ch);
     stc("|  |  |  /#G||               #0O   |#l,-,|   ,_;_,   |,-,#0|   O               #G||#g\\  |  |  |\n\r",ch);
     stc("|  |   \\ | #G\\\\             #0oO#l    \\  \\\\ '\\ I /` //  /    #0Oo             #G// #g| /   |  |\n\r",ch);
     stc("|  \\   /\\| #G| #Y)            #0oO#l     \\ \\#0`#b\\  \\ /  /#0'#l/ /     #0Oo            #Y( #G| #g|/\\   /  |\n\r",ch);
     stc("|   \\ |  ` #G/#Y/              #0O    /^#l\\ \\#0,#b\\  |  /#0,#l/ /#0^#l\\    #0O              #Y\\#G\\ #g'  | /   |\n\r",ch);
     stc("|  /'\\|   #G( #Y|     #0__________#0O  /#0__#l/ /#0__#b| I |#0__#l\\ \\#0__#0\\  O#0__________     #Y| #G)   #g|/`\\  |\n\r",ch);
     stc(" \\ |  `    #G\\\\    #0|           #0\\|  #7'''  ''' ```  ```  #0|/           #0|    #Y/#G/    #g'  | /\n\r",ch);
     stc("  \\|    #r(  #G||    #0|                 #rW#Reapon #rL#Revels                 #0|   #Y( #G|  #r)    #g|/\n\r",ch);
	 sprintf(skill,"   #G\\    #G\\\\_//    #0|Slice: #7%-4d #0Stab: #7%-4d #0Whip:  #7%-4d #0Pierce: #7%-4d#0|    #G\\\\_//    #g/\n\r",ch->wpn[1],ch->wpn[2],ch->wpn[4],ch->wpn[11]);
	 stc(skill,ch);
	 sprintf(skill,"    #G`    `v'     #0|Crush: #7%-4d #0Claw: #7%-4d #0Slash: #7%-4d #0Pound:  #7%-4d#0|     #G'v'    #g'\n\r",ch->wpn[8],ch->wpn[5],ch->wpn[3],ch->wpn[7]);
	 stc(skill,ch);
	 sprintf(skill,"    #G`    `v'     #0|Blast: #7%-4d #0Grep: #7%-4d #0Suck: #7%-4d  #0Bite:  #7%-4d #0|     #G'v'    #g'\n\r",ch->wpn[6],ch->wpn[9],ch->wpn[12],ch->wpn[10]);
	 stc(skill,ch);    
	 sprintf(skill,"                 #0|                   Unarm: #7%-4d                 #0|\n\r",ch->wpn[0]);
	 stc(skill,ch);
         stc("                 #0|_______________________________________________#0|#n\n\r",ch);
	}

	else if (!str_cmp(arg,"magic") || !str_cmp(arg,"spells"))
	{
	stc(" #y_________________________________\n\r",ch);
	stc("#y/  _\\                             \\\n\r",ch);
	stc("#y\\ (_/_____________________________/\n\r",ch);
	if (IS_ITEMAFF(ch, ITEMA_AFFENTROPY)) sprintf(skill," #y\\   #0*#rR#Red Magic            #0[#R%-3d#0]#y\\\n\r",ch->spl[1] + 20);
	else sprintf(skill," #y\\   #0*#rR#Red Magic            #0[#R%-3d#0]#y\\\n\r",ch->spl[1]);
	stc(skill,ch);
	if (IS_ITEMAFF(ch, ITEMA_AFFENTROPY)) sprintf(skill,"  #y\\   #0*#bB#Blue Magic           #0[#R%-3d#0]#y\\\n\r",ch->spl[2] + 20);
	else sprintf(skill,"  #y\\   #0*#bB#Blue Magic           #0[#R%-3d#0]#y\\\n\r",ch->spl[2]);
	stc(skill,ch);
	if (IS_ITEMAFF(ch, ITEMA_AFFENTROPY)) sprintf(skill,"   #y\\   #0*#gG#Green Magic          #0[#R%-3d#0]#y\\\n\r",ch->spl[3] + 20);
	else sprintf(skill,"   #y\\   #0*#gG#Green Magic          #0[#R%-3d#0]#y\\\n\r",ch->spl[3]);
	stc(skill,ch);
	if (IS_ITEMAFF(ch, ITEMA_AFFENTROPY)) sprintf(skill,"  #y__\\   #0*#pP#Purple Magic         #0[#R%-3d#0]#y\\\n\r",ch->spl[0] + 20);
	else sprintf(skill,"  #y__\\   #0*#pP#Purple Magic         #0[#R%-3d#0]#y\\\n\r",ch->spl[0]);
	stc(skill,ch);
	if (IS_ITEMAFF(ch, ITEMA_AFFENTROPY)) sprintf(skill," #y/ )_\\   #0*#yY#Yellow Magic         #0[#R%-3d#0]#y\\\n\r",ch->spl[4] + 20);
	else sprintf(skill," #y/ )_\\   #0*#yY#Yellow Magic         #0[#R%-3d#0]#y\\\n\r",ch->spl[4]);
	stc(skill,ch);
	stc(" #y\\___/______________________________/#n\n\r",ch);
	}

	else if (!str_cmp(arg,"stances"))
	{    
	stc("#r                                      _.--.\n\r",ch);
	stc("                                     #r.' ,--.`.\n\r",ch);
	stc("                                   #r,' ,'    `|\n\r",ch);
	stc("                                #r,'  ,'      '\n\r",ch);
	stc("                              #r,'   '\n\r",ch);
	stc("                            #r,'    '\n\r",ch);
	stc("                         #r_,-    ,'\n\r",ch);
	stc("                      #r_,'       |                           ____,-------.\n\r",ch);
	stc("                   #r_,'           `.                   _,---'   ___,----. `.\n\r",ch);
	stc("                #r_,'             #R_,---.#r             ,-'      ,-'         `.|\n\r",ch);
	stc("             #r_,'            #R_,-'  _   `.#r        ,' #R__#r     ,'             |'\n\r",ch);
	stc("           #r,'   .--.    #R_,-'__,--' `.   `.#r   ,'#R_,-'  `.#r ,'              ,'\n\r",ch);
	stc("        #r,'  , '    `. #R,'_,-'        `.    .,'-'-.      `.\n\r",ch);
	stc("     #r ,', '         #R,','             `.          `-. `. `.\n\r",ch);
	stc("    #r,','          #0,''`)#r`.#R            ,`.         `.  `.`-.`.\n\r",ch);
	stc("   #r,,'           #0((  '   #r`.#R        ,'     _,-=-.  `\\  `\\ #0|`.\\\n\r",ch);
	stc("  #r' (             #0``       #r`.#R    ,'     ,'-,'  `.  `)  `)`  #0))\n\r",ch);
	stc(" #r(   `                       #r` #R.'     ,'#y-,#R'     |  #Y,#R;   ;  #0''\n\r",ch);
	stc("  #r`#R                           #R`:     |---|      `.     ,'\n\r",ch);
	stc("                               #R:     |---|       '.    :\n\r",ch);
	stc("                               #R:     `.--`.       '.   :\n\r",ch);
	stc("                               #R`      `    `       ',`__)\n\r",ch);
	stc("#0X#r==============================#0[#rS#Rtance #rL#Revels#0]#r==============================#0X\n\r",ch);
	sprintf(skill,"#r|#0    Viper #7%-4d    #0Crane #7%-4d    #0Crab #7%-4d    #0Mongoose #7%-4d    #0Pitbull #7%-4d#r    |\n\r",ch->stance[1],ch->stance[2],ch->stance[3],ch->stance[4],ch->stance[5]);
	stc(skill,ch);
	sprintf(skill,"#r|#0   Hawk #7%-4d   #0Badger #7%-4d   #0Cougar #7%-4d    #0Grizzly  #7%-4d  #0Wolverine #7%-4d#r    |\n\r",ch->stance[6],ch->stance[7],ch->stance[8],ch->stance[10],ch->stance[9]);
	stc(skill,ch);
	stc("#0X#r==============================#0[#rS#Ruper #rS#Rtances#0]#r==============================#0X#n\n\r",ch);
	sprintf(skill,"#r|#0      SS1 #7%-4d      #0SS2 #7%-4d     #0SS3 #7%-4d       #0SS4 #7%-4d  #0SS5 #7%-4d#r    |#n\n\r",ch->stance[13],ch->stance[14],ch->stance[15],ch->stance[16],ch->stance[17]);
	stc(skill,ch);
	stc("#r|                                                                           |\n\r",ch);
	stc("#r|       #7To gain super stances, you must max all your current stances.       #r|\n\r",ch);
	stc("#r|      #7After this, use 'setstance' to beging editing your superstance.      #r|\n\r",ch);
	stc("#0X#r==============================#0[#r+#R-#r+#R-#r+#R-#r+#R-#r+#R-#r+#R-#r+#0]#r==============================#0X#n\n\r",ch);
    }    

	else
	{
	do_level(ch,"");
	}

return;
}


void do_level(CHAR_DATA * ch, char *argument)
{
  char arg[MAX_INPUT_LENGTH];
  char skill[20];
  char buf[MAX_STRING_LENGTH];
    char stance [20];
    float chgen = 0;
    float chgenexp = 0;
    int percent = 0;
    int nextgen = 0;
    int expneeded = 0;
    one_argument( argument, arg );
    ROOM_INDEX_DATA *room;


  one_argument(argument, arg);

  if (IS_NPC(ch))
    return;

//  sprintf(buf, " %s\n\r\n\r", get_dystopia_banner("Weapon Levels", 
// 72));
//  send_to_char(buf, ch);


	
stc("#0X#r==============================#0[#rW#Reapon #rL#Revels#0]#r==============================#0X#n\n\r",ch);


        sprintf( buf, "#r|#0Unarmed #R[#0%d#R]      #n", ch->wpn[0]);
        send_to_char( buf, ch );
        sprintf( buf, "#0Knife: #R[#0%d#R]       #n#n", ch->wpn[6]);
        send_to_char( buf, ch );
        sprintf( buf, "#0Spear: #R[#0%d#R]     #n", ch->wpn[2]);
        send_to_char( buf, ch );
        sprintf( buf, "#0Shortsword: #R[#0%d#R]\n\r#n", ch->wpn[11]);
        send_to_char( buf, ch );
        sprintf( buf, "#r|#0Whip: #R[#0%d#R]          ", ch->wpn[4]);
        send_to_char( buf, ch );
        sprintf( buf, "#0Broadsword: #R[#0%d#R]#n  ", ch->wpn[3]);
        send_to_char( buf, ch );
        sprintf( buf, "#0Longsword: #R[#0%d#R]#n ", ch->wpn[1]);
        send_to_char( buf, ch );
        sprintf( buf, "#0Dagger: #R[#0%d#R]#n\n\r", ch->wpn[18]);
        send_to_char( buf, ch );
        sprintf( buf, "#r|#0Bastard Sword: #R[#0%d#R]#n ", ch->wpn[12]);
        send_to_char( buf, ch );
        sprintf( buf, "#0Axe: #R[#0%d#R]#n         ", ch->wpn[9]);
        send_to_char( buf, ch );
        sprintf( buf, "#0Mace: #R[#0%d#R]#n      ", ch->wpn[8]);
        send_to_char( buf, ch );
        sprintf( buf, "#0Sickle: #R[#0%d#R]#n      \n\r", ch->wpn[17]);
        send_to_char( buf, ch );
        sprintf( buf, "#r|#0Staff: #R[#0%d#R]#n         ", ch->wpn[5]);
        send_to_char( buf, ch );
        sprintf( buf, "#0Warhammer: #R[#0%d#R]#n   ", ch->wpn[7]);
        send_to_char( buf, ch );
        sprintf( buf, "#0Flail: #R[#0%d#R]#n\n\r", ch->wpn[13]);
        send_to_char( buf, ch );
        sprintf( buf, "#r|#0Morningstar: #R[#0%d#R]#n   ", ch->wpn[14]);
        send_to_char( buf, ch );
        sprintf( buf, "#0Polearm: #R[#0%d#R]#n     ", ch->wpn[15]);
        send_to_char( buf, ch );
        sprintf( buf, "#0Club: #R[#0%d#R]#n\n\r", ch->wpn[16]);
        send_to_char( buf, ch );
        sprintf( buf, "#r|#0Two-Handed Longsword: #R[#0%d#R]#n\n\r", ch->wpn[10]);
        send_to_char( buf, ch );


	stc("#0X#r==============================#0[#rS#Rtance #rL#Revels#0]#r==============================#0X\n\r",ch);
	sprintf(skill,"#r|#0    Viper #7%-4d    #0Crane #7%-4d     #0Crab #7%-4d    #0Mongoose #7%-4d  #0PitBull #7%-4d#r  |\n\r",ch->stance[1],ch->stance[2],ch->stance[3],ch->stance[4],ch->stance[5]);
	stc(skill,ch);
	sprintf(skill,"#r|#0    Hawk   #7%-4d   #0Badger #7%-4d    #0Cougar #7%-4d  #0Grizzly  #7%-4d  #0Wolverine #7%-4d#r|\n\r",ch->stance[6],ch->stance[7],ch->stance[8],ch->stance[10],ch->stance[9]);
	stc(skill,ch);
	stc("#0X#r==============================#0[#rS#Ruper #rS#Rtances#0]#r==============================#0X#n\n\r",ch);
	sprintf(skill,"#r|#0      SS1 #7%-4d      #0SS2 #7%-4d     #0SS3 #7%-4d       #0SS4 #7%-4d  #0SS5 #7%-4d#r         |#n\n\r",ch->stance[13],ch->stance[14],ch->stance[15],ch->stance[16],ch->stance[17]);
	stc(skill,ch);
	stc("#r|                                                                           |\n\r",ch);
	stc("#r|       #7To gain super stances, you must max all your current stances.       #r|\n\r",ch);
	stc("#r|      #7After this, use 'setstance' to beging editing your superstance.      #r|\n\r",ch);
	
stc("#0X#r==============================#0[#rS#Rpell #rL#Revels#0]#r===============================#0X#n\n\r",ch);
  sprintf(skill, "#r|   #pPurple#n #C: %-4d", ch->spl[0]);  
  send_to_char(skill, ch);
  sprintf(skill, "   #lBlue#n #C: %-4d", ch->spl[2]);
  send_to_char(skill, ch);
  sprintf(skill, "   #rRed#n #C: %-4d", ch->spl[1]);  
  send_to_char(skill, ch);
  sprintf(skill, "   #gGreen#n #C: %-4d", ch->spl[3]);
  send_to_char(skill, ch);
  sprintf(skill, "   #yYellow#n #C: %-4d #r|#n\n\r", ch->spl[4]);
  send_to_char(skill, ch);
	stc("#0X#r==============================#0[#r+#R-#r+#R-#r+#R-#r+#R-#r+#R-#r+#R-#r+#0]#r==============================#0X#n\n\r",ch);

	stc("#0x#r----#R=====#r----#R=====#r----#R=====#r----#0x#n\n\r",ch);
	sprintf(skill, "#0You are currently generation #W%d#n\n\r", ch->generation);
        send_to_char( skill, ch );
        chgen = ch->generation;
	chgenexp = ch->genexp;
	if (ch->generation == 6)
       expneeded = 13000000.00;
    else if(ch->generation == 5)
       expneeded = 150000000.00;
    else if(ch->generation == 4)
       expneeded = 400000000.00;
    else if(ch->generation == 3)
       expneeded = 900000000.00;
    else if(ch->generation == 2)
       expneeded = 1800000000.00;
	percent = (chgenexp / expneeded)*100.00;

	nextgen = (ch->generation - 1);
	if (ch->generation > 1 && ch->level > 2)
	{
	sprintf(skill,"#0You are #R%d#W%% #0on your way to generation #R%d.#n\n\r",percent,nextgen);
	stc(skill,ch);
	}
	
	stc("#0x#r----#R=====#r----#R=====#r----#R=====#r----#0x#n\n\r",ch);
	if ( ch->stance[12] == 1 )
      sprintf(stance, " Viper" );
     else if ( ch->stance[12] == 2 )
      sprintf(stance, " Crane" );
     else if ( ch->stance[12] == 3 )
      sprintf(stance, " Crab" );  
     else if ( ch->stance[12] == 4 )
      sprintf(stance, " Mongoose" );  
     else if ( ch->stance[12] == 5 )
      sprintf(stance, " Pitbull" );  
     else if ( ch->stance[12] == 6 )
      sprintf(stance, " Hawk" );  
     else if ( ch->stance[12] == 7 )
      sprintf(stance, " Badger" );  
     else if ( ch->stance[12] == 8 )
      sprintf(stance, " Cougar" );  
     else if ( ch->stance[12] == 9 )
      sprintf(stance, " Wolverine" );  
     else if ( ch->stance[12] == 10 )
      sprintf(stance, " Grizzly" ); 
     else if ( ch->stance[12] == 11 )
      sprintf(stance, " Wolf" );
     else if ( ch->stance[12] == 13 )
      sprintf( stance, " SS1");
     else if ( ch->stance[12] == 14 )
      sprintf( stance, " SS2");
     else if ( ch->stance[12] == 15 )
      sprintf( stance, " SS3");
     else if ( ch->stance[12] == 16 )
      sprintf( stance, " SS4");
     else if ( ch->stance[12] == 17 )
      sprintf( stance, " SS5");
     else if ( ch->stance[12] == -1 )
      sprintf(stance, " None" );
     else
      sprintf(stance, " None" );
	sprintf(skill, "#0Autostance#n:  #R%s #n\n\r",stance);
     send_to_char(skill, ch);
    if (IS_SET(ch->act, PLR_RIGHTHAND))
      send_to_char("#wYou favor your right arm in combat.#n\n\r",ch);
    else if(IS_SET(ch->act, PLR_LEFTHAND))
      send_to_char("#wYou favor your left arm in combat.#n\n\r",ch);
    else
      send_to_char("#wYou fight well with both your arms.#n\n\r",ch);

    stc("#0x#r----#R=====#r----#R=====#r----#R=====#r----#0x#n\n\r",ch);
    
    if ( IS_CLASS(ch, CLASS_DEMON) )
     send_to_char("You are a demon!\n\r", ch);
     if (IS_CLASS(ch, CLASS_UNDEAD_KNIGHT))
       send_to_char("You are an undead knight!\n\r",ch);
     if ( IS_CLASS(ch, CLASS_WEREWOLF) )
     send_to_char("You are a werewolf!\n\r", ch);
    if ( IS_CLASS(ch, CLASS_VAMPIRE) )
     send_to_char("You are a vampire!\n\r", ch);
    if ( IS_CLASS(ch, CLASS_DROW) )
     send_to_char("You are a drow!\n\r", ch);    
    if (IS_CLASS(ch, CLASS_DRACONIAN))
     send_to_char("You are a Draconian!!\n\r",ch);
    if (IS_CLASS(ch, CLASS_WIZARD))
     send_to_char("You are a War Wizard!\n\r",ch);
    if (IS_CLASS(ch, CLASS_WRAITH))
     send_to_char("You are a wraith!!\n\r",ch);
    if (IS_CLASS(ch, CLASS_ELEMENTAL))
     send_to_char("You are an Elemental!!\n\r",ch);
    if (IS_CLASS(ch, CLASS_PALADIN))
     send_to_char("You are a Paladin!!\n\r",ch);
    if (IS_CLASS(ch, CLASS_ASSASSIN))
     send_to_char("You are an Assassin!!\n\r",ch);
    if (IS_CLASS(ch, CLASS_ANGEL))
     send_to_char("You are an angel!\n\r", ch);
    if (IS_CLASS(ch, CLASS_BETRAYER))
     send_to_char("You are a Betrayer!\n\r", ch);
    if (IS_CLASS(ch, CLASS_TANARRI))
     send_to_char("You are a warrior of The Bloodwars.\n\r",ch);
    if (IS_CLASS(ch, CLASS_UNDEAD_LYCAN))
     send_to_char("You are an undead lycan!\n\r", ch);
    if (IS_CLASS(ch, CLASS_HELLS_SOLDIER))
     send_to_char("You are a HELLS SOLDIER!\n\r", ch);
    if (IS_CLASS(ch, CLASS_UNDEAD_ASSASSIN))
     send_to_char("You are an Undead Assassin.\n\r", ch);
    if (IS_CLASS(ch, CLASS_BLADE_MASTER))
     send_to_char("You are a Blade Master.\n\r", ch);

     if ( IS_CLASS(ch, CLASS_DRAGON) )
     send_to_char(" You are a dragon!                      \n\r", ch);    


 if (IS_CLASS(ch, CLASS_TANARRI))
 {
  if (ch->pcdata->rank == TANARRI_FODDER)
    send_to_char("You are nothing but fodder for the great war.\n\r",ch);
  if (ch->pcdata->rank == TANARRI_FIGHTER)
    send_to_char("You are a fighter in the great war.\n\r",ch);
  if (ch->pcdata->rank == TANARRI_ELITE)
    send_to_char("You are an elite warrior in the great war.\n\r",ch);
  if (ch->pcdata->rank == TANARRI_CAPTAIN)
    send_to_char("You are a captain in the great war.\n\r",ch);
  if (ch->pcdata->rank == TANARRI_WARLORD)
    send_to_char("You are a warlord in the great war.\n\r",ch);
  if (ch->pcdata->rank == TANARRI_BALOR)
    send_to_char("You are a Tanar'ri Balor.\n\r",ch);
 } 

 if (IS_CLASS(ch, CLASS_VAMPIRE) )
 {

	if (ch->pcdata->rank == AGE_TRUEBLOOD)
	  send_to_char("You are a TrueBlood!\n\r",ch);
	else if (ch->pcdata->rank == AGE_LA_MAGRA)
	  send_to_char("You are a La Magra!\n\r",ch);
	else if (ch->pcdata->rank == AGE_METHUSELAH)
	  send_to_char("You are a Methuselah!\n\r",ch);
	else if (ch->pcdata->rank == AGE_ELDER)
	  send_to_char("You are an Elder!\n\r",ch);
	else if (ch->pcdata->rank == AGE_ANCILLA)
	  send_to_char("You are an Ancilla!\n\r",ch);
	else if (ch->pcdata->rank == AGE_NEONATE)
	  send_to_char("You are a Neonate!\n\r", ch);
	else
	  send_to_char("You are a Childe!\n\r", ch);
    }
    room = get_room_index( ch->home );
    
	sprintf(skill, "#0Recall Room#R : #Y%s#n\n\r", room->name);
    send_to_char( skill, ch );
	stc("#0x#r----#R=====#r----#R=====#r----#R=====#r----#0x#n\n\r",ch);	

  return;
}


/* 
 * Class Power setting commands for Werewolves and Vampires
 * -Tijer
 */

void do_giftset( CHAR_DATA *ch, char *argument )
{
    CHAR_DATA   *victim;
    char        arg1[MAX_INPUT_LENGTH];
    char        arg2[MAX_INPUT_LENGTH];
    char        arg3[MAX_INPUT_LENGTH];
    sh_int      gift = 0;
    sh_int      value = 0;
     
    argument = one_argument( argument, arg1 );
    argument = one_argument( argument, arg2 );
    argument = one_argument( argument, arg3 );
         
    if ( IS_NPC( ch ) )
    {
        send_to_char("Huh?\n\r",ch);
        return;
    }
    if ( arg1[0] == '\0' || arg2[0] == '\0' || arg3[0] == '\0' )
    {
        send_to_char( "Syntax : setgift [victim] [gift/all] [level]\n\r\n\r",ch);
        send_to_char( " Gift being one of:\n\r", ch );
        send_to_char( "  homid lupus metis\n\r", ch );
        send_to_char( "  ragabash theurge galliard philodox ahroun\n\r", ch );
        
        send_to_char( "  furies gnawers children fianna get\n\r", ch );
        send_to_char( "  walkers talons lords striders fangs\n\r", ch );
        send_to_char( "  stargazers wendigos uktena\n\r", ch );
        return;
    }
   if ( ( victim = get_char_world( ch, arg1 ) ) == NULL )
    {
        send_to_char( "They aren't here.\n\r", ch );
        return;
    }
        
    if ( IS_NPC(victim ) )
    {
        send_to_char( "Not on NPC's.\n\r", ch );
        return;
    }
        
    if ( !IS_CLASS(victim, CLASS_WEREWOLF))
    {
        send_to_char( "Only on Werewolves, and Abomination!\n\r", ch );

        return;
    }
     
        
    if ( !str_cmp( arg2, "all" ) )
    {
        value = is_number( arg3 ) ? atoi( arg3 ) : -1;
    
        if ( value < 0 || value > 5 )
        {
            send_to_char( "Range is 0 - 5.\n\r", ch );
            return;
        }
    
     
        for ( gift = 0 ; gift <= MAX_GIFTS ; gift++ )
                victim->gifts[gift] = value;
     
        send_to_char("Done.\n\r", ch );
        return;
    }
     
   else if ( !str_cmp( arg2, "homid" ) )   gift = HOMID;
    else if ( !str_cmp( arg2, "metis" ) )  gift = METIS;
    else if ( !str_cmp( arg2, "lupus" ) )  gift = LUPUS;
    else if ( !str_cmp( arg2, "ahroun" ) ) gift = AHROUN;
    else if ( !str_cmp( arg2, "theurge" ) ) gift = THEURGE;
    else if ( !str_cmp( arg2, "philodox" ) )gift = PHILODOX;
    else if ( !str_cmp( arg2, "galliard" ) )gift = GALLIARD;
    else if ( !str_cmp( arg2, "ragabash" ) )gift = RAGABASH;
    else if ( !str_cmp( arg2, "furies" ) ) gift = BLACKFURIES;
    else if ( !str_cmp( arg2, "gnawers" )) gift = BONEGNAWERS;
    else if ( !str_cmp( arg2, "children" ) )gift = CHILDREN;
    else if ( !str_cmp( arg2, "fianna" ) ) gift = FIANNA;
    else if ( !str_cmp( arg2, "get" ) )    gift = GETOFFENRIS;
    else if ( !str_cmp( arg2, "walkers" ) )gift = GLASSWALKERS;
    else if ( !str_cmp( arg2, "talons" ) ) gift = REDTALONS;
    else if ( !str_cmp( arg2, "lords" ) )  gift = SHADOWLORDS;
    else if ( !str_cmp( arg2, "striders" ) )gift = SILENTSTRIDERS;
    else if ( !str_cmp( arg2, "fangs" ) )  gift = SILVERFANGS;
    else if ( !str_cmp( arg2, "stargazers" ) ) gift = STARGAZERS;
    else if ( !str_cmp( arg2, "uktena" ) ) gift = UKTENA;
    else if ( !str_cmp( arg2, "wendigos" ) ) gift = WENDIGO;
    else 
    {
        do_giftset( ch, "" );
        return;
    }

    if ( value < 0 || value > 5 )
    {
        send_to_char( "Range is 0 - 5.\n\r", ch );
        return;
    }
         victim->gifts[gift] = value;
         send_to_char("Done.\n\r", ch );
    return;
}