PRC8/nwn/nwnprc/trunk/scripts/prc_domain_cast.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

72 lines
2.9 KiB
Plaintext

//:://////////////////////////////////////////////
//:: Bonus Domain system: Cast spell from domain slot
//:: prc_domain_cast
//:://////////////////////////////////////////////
/** @file
Determines which domain slot was used based on
spellID and runs CastDomainSpell() based on it.
@author Ornedan
@date Created - 2005.09.19
*/
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
#include "inc_newspellbook"
#include "prc_inc_domain"
// Radial master indices in spells.2da. Assume radial entries follow immediately after the master and are in order
const int SPELLID_DOMAIN_LEVEL_1 = 1655;
const int SPELLID_DOMAIN_LEVEL_2 = 1661;
const int SPELLID_DOMAIN_LEVEL_3 = 1667;
const int SPELLID_DOMAIN_LEVEL_4 = 1673;
const int SPELLID_DOMAIN_LEVEL_5 = 1679;
const int SPELLID_DOMAIN_LEVEL_6 = 1685;
const int SPELLID_DOMAIN_LEVEL_7 = 1691;
const int SPELLID_DOMAIN_LEVEL_8 = 1701;
const int SPELLID_DOMAIN_LEVEL_9 = 1707;
const int NUM_RADIALS = 5;
void main()
{
object oPC = OBJECT_SELF;
int nSpellID = GetSpellId();
int nLevel, nSlot;
// Determine level and slot
if(nSpellID > SPELLID_DOMAIN_LEVEL_1 && nSpellID <= SPELLID_DOMAIN_LEVEL_1 + NUM_RADIALS){
nLevel = 1;
nSlot = nSpellID - SPELLID_DOMAIN_LEVEL_1;
}else if(nSpellID > SPELLID_DOMAIN_LEVEL_2 && nSpellID <= SPELLID_DOMAIN_LEVEL_2 + NUM_RADIALS){
nLevel = 2;
nSlot = nSpellID - SPELLID_DOMAIN_LEVEL_2;
}else if(nSpellID > SPELLID_DOMAIN_LEVEL_3 && nSpellID <= SPELLID_DOMAIN_LEVEL_3 + NUM_RADIALS){
nLevel = 3;
nSlot = nSpellID - SPELLID_DOMAIN_LEVEL_3;
}else if(nSpellID > SPELLID_DOMAIN_LEVEL_4 && nSpellID <= SPELLID_DOMAIN_LEVEL_4 + NUM_RADIALS){
nLevel = 4;
nSlot = nSpellID - SPELLID_DOMAIN_LEVEL_4;
}else if(nSpellID > SPELLID_DOMAIN_LEVEL_5 && nSpellID <= SPELLID_DOMAIN_LEVEL_5 + NUM_RADIALS){
nLevel = 5;
nSlot = nSpellID - SPELLID_DOMAIN_LEVEL_5;
}else if(nSpellID > SPELLID_DOMAIN_LEVEL_6 && nSpellID <= SPELLID_DOMAIN_LEVEL_6 + NUM_RADIALS){
nLevel = 6;
nSlot = nSpellID - SPELLID_DOMAIN_LEVEL_6;
}else if(nSpellID > SPELLID_DOMAIN_LEVEL_7 && nSpellID <= SPELLID_DOMAIN_LEVEL_7 + NUM_RADIALS){
nLevel = 7;
nSlot = nSpellID - SPELLID_DOMAIN_LEVEL_7;
}else if(nSpellID > SPELLID_DOMAIN_LEVEL_8 && nSpellID <= SPELLID_DOMAIN_LEVEL_8 + NUM_RADIALS){
nLevel = 8;
nSlot = nSpellID - SPELLID_DOMAIN_LEVEL_8;
}else if(nSpellID > SPELLID_DOMAIN_LEVEL_9 && nSpellID <= SPELLID_DOMAIN_LEVEL_9 + NUM_RADIALS){
nLevel = 9;
nSlot = nSpellID - SPELLID_DOMAIN_LEVEL_9;
}
if(DEBUG) DoDebug("prc_domain_cast: Casting domain spell. spellID = " + IntToString(nSpellID) + " ; level = " + IntToString(nLevel) + "; slot = " + IntToString(nSlot));
CastDomainSpell(oPC, nSlot, nLevel);
}