PRC8/nwn/nwnprc/trunk/scripts/prc_class_sla.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
Updated AMS marker feats.  Removed arcane & divine marker feats.  Updated Dread Necromancer for epic progression. Updated weapon baseitem models.  Updated new weapons for crafting & npc equip.
 Updated prefix.  Updated release archive.
2024-02-11 14:01:05 -05:00

211 lines
5.1 KiB
Plaintext

/**
* @file
* Spellscript for a range of class SLAs.
*
* Class SLAs that use DoRacialSLA() are all grouped in this file.
*/
/*
Extraordinary Spell-Like Supernatural
Dispel No Yes No
Spell resistance No Yes No
Antimagic field No Yes Yes
Attack of opportunity No Yes No
*/
#include "inc_newspellbook"
#include "prc_inc_core"
void main()
{
object oCaster = OBJECT_SELF;
int nSpellID = GetSpellId();
int nClass, nCasterLvl, nDC, nSpell;
int bInstantCast = FALSE;
switch(nSpellID){
case 1552:// warpriest healing circle
{
nClass = CLASS_TYPE_WARPRIEST;
nSpell = SPELL_HEALING_CIRCLE;
break;
}
case 1555:// warpriest mass haste
{
nClass = CLASS_TYPE_WARPRIEST;
nSpell = SPELL_MASS_HASTE;
break;
}
case 1563:// warpriest mass heal
{
nClass = CLASS_TYPE_WARPRIEST;
nSpell = SPELL_MASS_HEAL;
break;
}
case 3005:// Fire Shield for the Disciple of Mephistopheles
{
nCasterLvl = 15;
nSpell = SPELL_ELEMENTAL_SHIELD;
break;
}
case 3002:// Flare for the Disciple of Mephistopheles
{
nCasterLvl = 15;
nDC = GetLevelByClass(CLASS_TYPE_DISCIPLE_OF_MEPH) + GetAbilityModifier(ABILITY_CHARISMA) + 10;
nSpell = SPELL_FLARE;
break;
}
case 1764:
{
nClass = CLASS_TYPE_ARCANE_DUELIST;
nSpell = SPELL_BLUR;
break;
}
case 1765:
{
nClass = CLASS_TYPE_ARCANE_DUELIST;
nSpell = SPELL_MIRROR_IMAGE;
break;
}
case 2752:
{
nClass = CLASS_TYPE_DISC_BAALZEBUL;
nSpell = SPELL_MASS_CHARM;
break;
}
case 2753:
{
nClass = CLASS_TYPE_DISC_BAALZEBUL;
nSpell = SPELL_CHARM_PERSON;
break;
}
case 1934:
{
nClass = CLASS_TYPE_SLAYER_OF_DOMIEL;
nSpell = SPELL_DETECT_EVIL;
break;
}
case 2767:
{
nCasterLvl = 18;
nSpell = SPELL_IRON_BODY;
break;
}
case 2766:
{
nCasterLvl = 15;
nSpell = SPELL_STONESKIN;
break;
}
case 1619:
{
nClass = CLASS_TYPE_JUDICATOR;
nSpell = SPELL_HORRID_WILTING;
break;
}
case 2035:
{
nClass = CLASS_TYPE_HATHRAN;
nSpell = SPELL_FEAR;
break;
}
case 1644:
{
nClass = CLASS_TYPE_HEALER;
nSpell = SPELL_REMOVE_BLINDNESS_AND_DEAFNESS;
break;
}
case 1630:
{
nClass = CLASS_TYPE_HEALER;
nSpell = SPELL_REMOVE_DISEASE;
break;
}
case 1636:
{
nClass = CLASS_TYPE_HEALER;
nSpell = SPELL_REMOVE_FEAR;
break;
}
case 1620:
{
nClass = CLASS_TYPE_HEALER;
nSpell = SPELL_REMOVE_PARALYSIS;
break;
}
case 1638:
{
nClass = CLASS_TYPE_HEALER;
nSpell = SPELL_NEUTRALIZE_POISON;
break;
}
case 1697:
{
nClass = CLASS_TYPE_HEALER;
nSpell = SPELL_REGENERATE;
break;
}
case 1698:
{
nClass = CLASS_TYPE_HEALER;
nSpell = SPELL_TRUE_RESURRECTION;
break;
}
case 1649:
{
nClass = CLASS_TYPE_HEALER;
nSpell = SPELL_GREATER_RESTORATION;
break;
}
case 1653:
{
nClass = CLASS_TYPE_HEALER;
nSpell = SPELL_STONE_TO_FLESH;
break;
}
case 17297:
{
nClass = CLASS_TYPE_KNIGHT_MIDDLECIRCLE;
nSpell = SPELL_TRUE_STRIKE;
break;
}
case 1556:
{
nClass = CLASS_TYPE_ORCUS;
nSpell = SPELL_FEAR;
break;
}
case 3008:
{
nCasterLvl = GetHitDice(oCaster);
nSpell = SPELL_TRUE_STRIKE;
break;
}
case 2140://URang haste
{
nCasterLvl = 10;
bInstantCast = TRUE;
nSpell = SPELL_HASTE;
break;
}
case 2086:
{
nClass = CLASS_TYPE_ANTI_PALADIN;
nSpell = SPELL_DEATH_KNELL;
break;
}
case 2087:
{
nClass = CLASS_TYPE_ANTI_PALADIN;
nSpell = SPELL_CONTAGION;
break;
}
}
if(nClass)
{
nCasterLvl = GetLevelByClass(nClass, oCaster);
nDC = 10 + GetAbilityModifier(ABILITY_CHARISMA) + nCasterLvl;
}
DoRacialSLA(nSpell, nCasterLvl, nDC, bInstantCast);
}