
Antipaladin Class by Xrakisis

UPDATE.C

void update_antipaladin                            args ((CHAR_DATA *ch));

	else if (IS_CLASS(ch, CLASS_ANTIPALADIN)) max_skl = 500;

	if (IS_CLASS(ch, CLASS_ANTIPALADIN)) update_antipaladin(ch);

void update_antipaladin (CHAR_DATA *ch)
{
  if (ch->pPotentia < 1000) ch->pPotentia++;
  if (ch->position == POS_MEDITATING && ch->pPotentia < 1000) ch->pPotentia += 10;
  if (ch->pcdata->powers[APTICK] == 1)
  stc("#0You may now BattleRage again#n.\n\r", ch);
  if (ch->pcdata->powers[APTICK] > 0) ch->pcdata->powers[APTICK]--;
  if (ch->pcdata->powers[RAISETIMER] == 1)
  stc("#0You may now Raise the dead again#n.\n\r", ch);
  if (ch->pcdata->powers[RAISETIMER] > 0) ch->pcdata->powers[RAISETIMER]--;
  if ( ch->hit < ch->max_hit || ch->mana < ch->max_mana || ch->move < ch->max_move)
  werewolf_regen(ch, 2);
  regen_limb(ch);
  if (IS_SET(ch->pcdata->powers[MOUNT_SUMMON], HAS_SUMMONED_NIGHTMARE) && number_range(1,50) == 4)
  {
    send_to_char("You can summon another Nightmare.\n\r",ch);
    REMOVE_BIT(ch->pcdata->powers[MOUNT_SUMMON], HAS_SUMMONED_NIGHTMARE);
  }
  return;
}

KAV_FIGHT.C
improve_wpn

    else if (IS_CLASS(ch, CLASS_ANTIPALADIN)) max_skl = 500;




ACT_INFO.C
do_score

    if (!IS_NPC(ch) && (IS_CLASS( ch, CLASS_ANTIPALADIN)))
    {
        sprintf( buf,
        "#R[#nYou have #C%d#n out of #C%d #npoints of unholy power stored#R]\n\r",
        ch->pcdata->stats[DEMON_CURRENT],  ch->pcdata->stats[DEMON_TOTAL] );
        send_to_char( buf, ch );
    }

damroll
  if (IS_CLASS(ch, CLASS_ANTIPALADIN) && IS_SET(ch->pcdata->powers[15], APOWER_MIGHT)) value += 600;

hitroll
  if (IS_CLASS(ch, CLASS_ANTIPALADIN) && IS_SET(ch->pcdata->powers[15], APOWER_MIGHT)) value += 600;

show char to char 0
    if ( !IS_NPC(victim) && !IS_NPC(ch) && IS_CLASS(victim, CLASS_ANTIPALADIN) && IS_HERO(victim) && IS_HERO(ch))
        strcat( buf, "#R(#0Anti-Paladin#R)#n " );

do_who
         if (IS_CLASS(wch, CLASS_ANTIPALADIN))
            {
          if (mightRate > 800 )title = " #YW#yeapon #YM#yaster#n   ";
          else if (mightRate > 600 ) title = " #YM#yythic#n          ";
          else if (mightRate > 400 ) title = " #YM#yaster#n          ";
          else if (mightRate > 200 ) title = " #YM#yercenary#n       ";
          else if (mightRate <= 200  ) title = " #YD#yeviant#n         ";
          else title = "#YD#yivine #YM#yaster#n   ";
            }
    else if (IS_CLASS(wch, CLASS_ANTIPALADIN))
      {strcpy(openb, "#R^-^#n"); strcpy(closeb, "#R^-^#n");}

        else if (IS_CLASS(wch, CLASS_ANTIPALADIN))
        sprintf( kav,   "%s#0Warlord#n%s           ", openb, closeb );



CONST.C

    {
        "aura of takhisis",               13,
        spell_null,             TAR_IGNORE,             POS_STANDING,
        &gsn_takaura,            SLOT( 0),        0,     24,
        "aura of Takhisis",         "aura of Takhisis!"
     },
    {
	"malice",		13,
	spell_null,		TAR_IGNORE,	POS_STANDING,
	&gsn_malice,		SLOT( 0),	0,	24,
	"malice",		"!Malice!"
    },

DB.C
sh_int		gsn_takaura;
sh_int		gsn_malice;


INTERP.C
 /*
  * Anti-Paladin
  */

    { "summonmount",      do_summonmount,   POS_STANDING,   3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0},
    { "unholyritual",       do_unholyritual,    POS_STANDING,   3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0},
    { "layonhands",    do_layonhands, POS_FIGHTING,   3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0},
    { "delve",      do_delve,   POS_STANDING,   3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0},
    { "raisedead",      do_raise,   POS_STANDING,   3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0},
    { "morph",      do_morph,   POS_STANDING,   3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0},
    { "entangle",      do_web,   POS_FIGHTING,   3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0},
    { "dirtkick",      do_dirtkick,   POS_FIGHTING,   3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0},
    { "detectliving",      do_detectliving,   POS_STANDING,   3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0},
    { "flamestrike",      do_flamestrike,   POS_FIGHTING,   3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0},
    { "grapple",      do_grapple,   POS_FIGHTING,   3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0},
    { "sandman",      do_apsleep,   POS_STANDING,   3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0},
    { "battlerage",      do_battlerage,   POS_FIGHTING,   3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0},
    { "shadowtravel",      do_shadowtravel,   POS_STANDING,   3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0},





FIGHT.C

multi_hit
  if ( dt == gsn_malice )
  {
    one_hit( ch, victim, dt, 1 );
    return;
  }

  if (!IS_NPC(ch) && IS_CLASS(ch, CLASS_ANTIPALADIN) && IS_SET(ch->pcdata->powers[15], APOWER_MALICE))
  {
    one_hit(ch,victim,gsn_malice,1);
    one_hit(ch,victim,gsn_malice,1);
    one_hit(ch,victim,gsn_malice,1);
  }

  if (IS_CLASS(victim,CLASS_ANTIPALADIN) && IS_SET(victim->pcdata->powers[15], APOWER_TAKAURA))
                {
                        while (number_range(1, 2) != 1)
                                one_hit(victim, ch, gsn_takaura, 0);
                        while (number_range(1, 2) != 1)
                                one_hit(victim, ch, gsn_takaura, 0);
                        while (number_range(1, 2) != 1)
                                one_hit(victim, ch, gsn_takaura, 0);
                }

one_hit
  if (dt == gsn_takaura)				        dam *= 3;

number_attacks (twice is_npc vict/!is_npc vict)
if (IS_CLASS(ch, CLASS_ANTIPALADIN))
{
count += 5;
if (IS_SET(ch->pcdata->powers[15], APOWER_SPEED)) count += 2;
}

update_damcap
if (IS_CLASS(ch, CLASS_ANTIPALADIN)) max_dam +=  ch->pcdata->powers[DARKARTS] * 120;

hurt_person: Add in some ors so antipaladins can get demon points

check_parry/check_dodge
if (IS_CLASS(ch, CLASS_ANTIPALADIN)) chance -= 30;
if (IS_CLASS(victim, CLASS_ANTIPALADIN)) chance += 30;





MERC.H

extern sh_int	gsn_takaura;
extern sh_int	gsn_malice;

struct char_data
int			pPotentia;

 /*
  * Anti-Paladin
  */
DECLARE_DO_FUN( do_summonmount );
DECLARE_DO_FUN( do_unholyritual );
DECLARE_DO_FUN( do_layonhands );
DECLARE_DO_FUN( do_delve );
DECLARE_DO_FUN( do_raise );
DECLARE_DO_FUN( do_morph );
DECLARE_DO_FUN( do_apsleep);
DECLARE_DO_FUN( do_dirtkick);
DECLARE_DO_FUN( do_grapple);
DECLARE_DO_FUN( do_flamestrike);
DECLARE_DO_FUN( do_detectliving);
DECLARE_DO_FUN( do_battlerage);
DECLARE_DO_FUN( do_shadowtravel);


WIZUTIL.c
do_classself

else if (!str_cmp(arg1,"antipaladin"))
{
ch->class = CLASS_ANTIPALADIN;
send_to_char( "You are now an #7Anti-Paladin#n.\n\r", ch);
sprintf(buf,"%s Has become an #7Anti-Paladin#n.", ch->name);
do_info(ch,buf);
}


Save.c 

    fprintf( fp, "PlayerPotentia   %d\n",   ch->pPotentia               );
    ch->pPotentia                       = 0;
    ch->pPotentia                       = 0;
          KEY( "PlayerPotentia",  ch->pPotentia,              fread_number( fp ) );