/***************************************************************************
* 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. *
***************************************************************************/
#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_aura( CHAR_DATA *ch, char *argument )
{
char arg1 [MAX_INPUT_LENGTH];
int aura = 0;
int cost = 0;
smash_tilde(argument);
argument = one_argument( argument, arg1 );
if (IS_NPC(ch)) return;
if (!IS_CLASS(ch, CLASS_PALADIN))
{
send_to_char( "Huh?\n\r", ch);
return;
}
if ( arg1[0] == '\0' )
{
send_to_char( "Syntax: Aura <power>\n\r", ch );
send_to_char("Scry (2000), Charge (3000), HolyBless (5000), Joust (2000),\n\r",ch);
send_to_char("SpeedBlows (4000), HolyToughness (4000).\n\r", ch);
return;
}
if (!str_cmp(arg1,"scry"))
{aura = PALADIN_SCRY; cost = 2000;}
else if (!str_cmp(arg1,"charge"))
{aura = PALADIN_CHARGE; cost = 3000;}
else if (!str_cmp(arg1,"speedblows"))
{aura = PALADIN_SPEED; cost = 4000;}
else if (!str_cmp(arg1,"holytoughness"))
{aura = PALADIN_TOUGHNESS; cost = 4000;}
else if (!str_cmp(arg1,"holybless"))
{aura = PALADIN_HOLYBLESS; cost = 5000;}
else if (!str_cmp(arg1, "joust"))
{aura = PALADIN_JOUST; cost = 2000;}
else
{
send_to_char( "Syntax: Aura <power>\n\r", ch );
send_to_char("Scry (2000), Charge (3000), HolyBless (5000), Joust (2000),\n\r",ch);
send_to_char("SpeedBlows (4000), HolyToughness (4000).\n\r", ch);
return;
}
if (IS_PPOWER(ch, aura))
{
send_to_char("You already have that power.\n\r",ch);
return;
}
if (ch->pcdata->stats[PALADIN_TOTAL] < cost ||
ch->pcdata->stats[PALADIN_CURRENT] < cost)
{
send_to_char("You have insufficient aura points to give yourself that power.\n\r",ch);
return;
}
SET_BIT(ch->pcdata->powers[PPOWER_FLAGS], aura);
ch->pcdata->stats[PALADIN_TOTAL] -= cost;
ch->pcdata->stats[PALADIN_CURRENT] -= cost;
send_to_char( "Ok.\n\r", ch);
save_char_obj(ch);
return;
}
/* Paladin Clan List - Loki */
void do_pclan( CHAR_DATA *ch, char *argument )
{
char buf[MAX_STRING_LENGTH];
char arg[MAX_INPUT_LENGTH];
CHAR_DATA *gch;
one_argument( argument, arg );
if (IS_NPC(ch)) return;
if (!IS_CLASS(ch, CLASS_PALADIN))
{
send_to_char("Huh?\n\r",ch);
return;
}
send_to_char("(: Name :) (:Hits %:) (:Mana %:) (:Move %:) (: Exp :)\n\r", ch );
for ( gch = char_list; gch != NULL; gch = gch->next )
{
if ( IS_NPC(gch) ) continue;
if ( !IS_CLASS(gch, CLASS_PALADIN) ) continue;
if ( strlen(gch->clan) > 16) continue;
if ( gch->clan != NULL/* && strlen(gch->clan) > 1*/ )
{ /* (:%7d:) */
sprintf( buf,
"(%-16s) (%-6d%3d) (%-6d%3d) (%-6d%3d) (%7d)\n\r",
capitalize( gch->name ),
gch->hit, (gch->hit * 100 / gch->max_hit ),
gch->mana, (gch->mana * 100 / gch->max_mana),
gch->move, (gch->move * 100 / gch->max_move),
gch->exp);
send_to_char( buf, ch );
}
}
return;
}
void do_paladinarmor( 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_PALADIN))
{
send_to_char("Huh?\n\r", ch );
return;
}
if (arg[0] == '\0')
{
send_to_char("Command: paladinarmor <piece>.\n\r", ch);
return;
}
if (!str_cmp(arg,"ring" )) vnum = 29712;
else if (!str_cmp(arg,"collar" )) vnum = 29713;
else if (!str_cmp(arg,"plate" )) vnum = 29714;
else if (!str_cmp(arg,"helmet" )) vnum = 29715;
else if (!str_cmp(arg,"leggings" )) vnum = 29716;
else if (!str_cmp(arg,"boots" )) vnum = 29717;
else if (!str_cmp(arg,"gauntlets" )) vnum = 29718;
else if (!str_cmp(arg,"sleeves" )) vnum = 29719;
else if (!str_cmp(arg,"cape" )) vnum = 29720;
else if (!str_cmp(arg,"belt" )) vnum = 29721;
else if (!str_cmp(arg,"bracer" )) vnum = 29722;
else if (!str_cmp(arg,"mask" )) vnum = 29723;
else if (!str_cmp(arg,"longsword" )) vnum = 29724;
else
{
send_to_char("Please specify which piece of Paladin armor you wish to make: LongSword, ring, collar, \n\rplate, helmet, leggings, boots, gauntlets, sleeves, cape, belt, bracer, or mask.\n\r",ch);
return;
}
if ( (ch->pcdata->stats[PALADIN_TOTAL] < 5000 || ch->pcdata->stats[PALADIN_CURRENT] < 5000) )
{
send_to_char("It costs 5000 points of power to create a piece of Paladin armor.\n\r",ch);
return;
}
if ( vnum == 0 || (pObjIndex = get_obj_index( vnum )) == NULL)
{
send_to_char("Missing object, please inform Eterared.\n\r",ch);
return;
}
ch->pcdata->stats[PALADIN_TOTAL] -= 5000;
ch->pcdata->stats[PALADIN_CURRENT] -= 5000;
obj = create_object(pObjIndex, 50);
obj_to_char(obj, ch);
act("$p appears in your hands in a blast of white flames.",ch,obj,NULL,TO_CHAR);
act("$p appears in $n's hands in a blast of white flames.",ch,obj,NULL,TO_ROOM);
return;
}