Further file organization
Further file organization
This commit is contained in:
57
nwn/nwnprc/trunk/scripts/prc_metamagic.nss
Normal file
57
nwn/nwnprc/trunk/scripts/prc_metamagic.nss
Normal file
@@ -0,0 +1,57 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Metamagic Feat Abilities
|
||||
//:: prc_metamagic.nss
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Grants new metamagic feat abilities for the new spell system.
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: N-S
|
||||
//:: Created On: 20/09/2009
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
//:: Updated for .35 by Jaysyn 2023/03/11
|
||||
|
||||
#include "inc_newspellbook"
|
||||
|
||||
int GetHasSpontaneousNSBClass(object oPC)
|
||||
{
|
||||
int i;
|
||||
for (i = 1; i <= 8; i++)
|
||||
{
|
||||
int nClass = GetClassByPosition(i, oPC);
|
||||
if (SPELLBOOK_TYPE_SPONTANEOUS == GetSpellbookTypeForClass(nClass))
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = OBJECT_SELF;
|
||||
if(DEBUG) DoDebug("prc_metamagic running");
|
||||
|
||||
if (!UseNewSpellBook(oPC))
|
||||
{
|
||||
if(DEBUG) DoDebug("prc_metamagic: New spellbook system disabled.");
|
||||
return;
|
||||
}
|
||||
if (!GetHasSpontaneousNSBClass(oPC))
|
||||
{
|
||||
if(DEBUG) DoDebug("prc_metamagic: No spontaneously casting classes.");
|
||||
return;
|
||||
}
|
||||
|
||||
object oSkin = GetPCSkin(oPC);
|
||||
|
||||
if (GetHasFeat(FEAT_EXTEND_SPELL, oPC))
|
||||
IPSafeAddItemProperty(oSkin, PRCItemPropertyBonusFeat(IP_CONST_FEAT_EXTEND_SPELL_ABILITY), 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||||
if (GetHasFeat(FEAT_SILENCE_SPELL, oPC))
|
||||
IPSafeAddItemProperty(oSkin, PRCItemPropertyBonusFeat(IP_CONST_FEAT_SILENT_SPELL_ABILITY), 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||||
if (GetHasFeat(FEAT_STILL_SPELL, oPC))
|
||||
IPSafeAddItemProperty(oSkin, PRCItemPropertyBonusFeat(IP_CONST_FEAT_STILL_SPELL_ABILITY), 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||||
if (GetHasFeat(FEAT_EMPOWER_SPELL, oPC))
|
||||
IPSafeAddItemProperty(oSkin, PRCItemPropertyBonusFeat(IP_CONST_FEAT_EMPOWER_SPELL_ABILITY), 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||||
if (GetHasFeat(FEAT_MAXIMIZE_SPELL, oPC))
|
||||
IPSafeAddItemProperty(oSkin, PRCItemPropertyBonusFeat(IP_CONST_FEAT_MAXIMIZE_SPELL_ABILITY), 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||||
if (GetHasFeat(FEAT_QUICKEN_SPELL, oPC))
|
||||
IPSafeAddItemProperty(oSkin, PRCItemPropertyBonusFeat(IP_CONST_FEAT_QUICKEN_SPELL_ABILITY), 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||||
}
|
Reference in New Issue
Block a user