PRC8/trunk/scripts/prc_metamagic.nss
Jaysyn904 1662218bb4 Initial upload.
Adding base PRC 4.19a files to repository.
2022-10-07 13:51:24 -04:00

56 lines
2.2 KiB
Plaintext

//::///////////////////////////////////////////////
//:: 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
//:://////////////////////////////////////////////
#include "inc_newspellbook"
int GetHasSpontaneousNSBClass(object oPC)
{
int i;
for (i = 1; i <= 3; 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);
}