2025/05/13 Update
Updated TF Shadowlord's prereq 2da. Fixed CW Samurai's TWF levelup issue. Added CW Samurai's skill 2DA back in. Cleaned up ECL 2DA. Fixed prereq bug with Imp Crit Eagle Claw. Added Ability Focus feats for all Shapes, Essences & Invocations with DCs. Fixed bug with 6th slot of crafting spells prereqs. Added Reth Dekala HD to Initiator total. Removed Dark Sun race files. Updated all racial outsiders, monstrous humanoids, aberrations, giants, humanoids and fey to have the correct weapon & armor profs.
This commit is contained in:
@@ -30,6 +30,9 @@ void main()
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nCasterLvl = GetInvokerLevel(OBJECT_SELF, GetInvokingClass());
|
||||
int nDC = GetInvocationSaveDC(oTarget, OBJECT_SELF, INVOKE_BALEFUL_UTTERANCE);
|
||||
|
||||
if (GetHasFeat(FEAT_ABFOC_BALEFUL_UTTERANCE, OBJECT_SELF)) nDC += 2;
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_DESTRUCTION);
|
||||
|
||||
if(GetIsObjectValid(oTarget))
|
||||
|
@@ -77,7 +77,7 @@ void main()
|
||||
sMes = "*Sickening Blast Essence Applied*";
|
||||
break;
|
||||
|
||||
case INVOKE_BANEFUL_BLAST_ABBERATION:
|
||||
case INVOKE_BANEFUL_BLAST_ABERRATION:
|
||||
nLevel = 3;
|
||||
nRace = RACIAL_TYPE_ABERRATION;
|
||||
sMes = "*Abberation Blast Essence Applied*";
|
||||
@@ -155,7 +155,7 @@ void main()
|
||||
sMes = "*Human Blast Essence Applied*";
|
||||
break;
|
||||
|
||||
case INVOKE_BANEFUL_BLAST_MONSTEROUS:
|
||||
case INVOKE_BANEFUL_BLAST_MONSTROUS:
|
||||
nLevel = 3;
|
||||
nRace = RACIAL_TYPE_HUMANOID_MONSTROUS;
|
||||
sMes = "*Monstrous Blast Essence Applied*";
|
||||
|
@@ -29,6 +29,10 @@ void main()
|
||||
nDuration = PRCGetScaledDuration(nDuration, oTarget);
|
||||
int nRacial = MyPRCGetRacialType(oTarget);
|
||||
int nPenetr = CasterLvl + SPGetPenetr();
|
||||
int nDC = GetInvocationSaveDC(oTarget, oCaster);
|
||||
|
||||
if (GetHasFeat(FEAT_ABFOC_CALL_OF_THE_BEAST, OBJECT_SELF)) nDC += 2;
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_CHARM);
|
||||
effect eCharm = PRCGetScaledEffect(EffectCharmed(), oTarget);
|
||||
effect eMind = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_NEGATIVE);
|
||||
@@ -48,7 +52,7 @@ void main()
|
||||
if(nRacial == RACIAL_TYPE_ANIMAL)
|
||||
{
|
||||
//Make Will Save
|
||||
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, GetInvocationSaveDC(oTarget, oCaster), SAVING_THROW_TYPE_MIND_SPELLS))
|
||||
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS))
|
||||
{
|
||||
//Apply impact effects and linked duration and charm effect
|
||||
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration), TRUE, -1, CasterLvl);
|
||||
|
@@ -31,6 +31,10 @@ void main()
|
||||
int nDuration = CasterLvl;
|
||||
int nPenetr = CasterLvl + SPGetPenetr();
|
||||
int nRacial = MyPRCGetRacialType(oTarget);
|
||||
int nDC = GetInvocationSaveDC(oTarget, oCaster);
|
||||
|
||||
if (GetHasFeat(FEAT_ABFOC_CHARM, oCaster)) nDC += 2;
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_CHARM);
|
||||
effect eCharm = EffectDominated(); //EffectDominated is limited to 1 creature at a time
|
||||
effect eMind = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_NEGATIVE);
|
||||
@@ -51,7 +55,7 @@ void main()
|
||||
if (!PRCDoResistSpell(oCaster, oTarget, nPenetr))
|
||||
{
|
||||
// Make Will save vs Mind-Affecting
|
||||
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, GetInvocationSaveDC(oTarget, oCaster), SAVING_THROW_TYPE_MIND_SPELLS))
|
||||
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS))
|
||||
{
|
||||
//Apply impact and linked effect
|
||||
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, HoursToSeconds(nDuration * 24), TRUE, -1, CasterLvl);
|
||||
|
@@ -26,6 +26,10 @@ void main()
|
||||
location lTarget = PRCGetSpellTargetLocation();
|
||||
int CasterLvl = GetInvokerLevel(oCaster, GetInvokingClass());
|
||||
int nPenetr = CasterLvl + SPGetPenetr();
|
||||
int nDC = GetInvocationSaveDC(oTarget, oCaster);
|
||||
|
||||
if (GetHasFeat(FEAT_ABFOC_DEAFENING_ROAR, oCaster)) nDC += 2;
|
||||
|
||||
float fDelay;
|
||||
effect eDeaf = EffectDeaf();
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_BLIND_DEAF_M);
|
||||
|
@@ -27,6 +27,8 @@ void main()
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nCasterLvl = GetInvokerLevel(oPC, GetInvokingClass());
|
||||
int nDC = GetInvocationSaveDC(oTarget, oPC);
|
||||
|
||||
if (GetHasFeat(FEAT_ABFOC_DREAD_SEIZURE, oPC)) nDC += 2;
|
||||
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
|
@@ -52,7 +52,7 @@ void main()
|
||||
int nDC = 10 + nBlastLvl + GetAbilityModifier(ABILITY_CHARISMA);
|
||||
if(GetHasFeat(FEAT_LORD_OF_ALL_ESSENCES)) nDC += 2;
|
||||
|
||||
// nDC += InvokerAbilityFocus(oPC, nEssence, nEssence2);
|
||||
nDC += InvokerAbilityFocus(oPC, nEssence, nEssence2);
|
||||
|
||||
int nDamageType = nEssence ? (nEssenceData >>> 4) & 0xFFF : DAMAGE_TYPE_MAGICAL;
|
||||
int nDamageType2 = nEssence2 ? (nEssenceData2 >>> 4) & 0xFFF : DAMAGE_TYPE_MAGICAL;
|
||||
|
@@ -40,6 +40,8 @@ void main()
|
||||
nBlastLvl = PRCMax(4, PRCMax(PRCMax(nEssenceData & 0xF, nEssenceData2 & 0xF), nBlastLvl));
|
||||
int nDC = 10 + nBlastLvl + GetAbilityModifier(ABILITY_CHARISMA);
|
||||
if(GetHasFeat(FEAT_LORD_OF_ALL_ESSENCES)) nDC += 2;
|
||||
|
||||
nDC += InvokerAbilityFocus(oPC, nEssence, nEssence2);
|
||||
|
||||
int nDamageType = nEssence ? (nEssenceData >>> 4) & 0xFFF : DAMAGE_TYPE_MAGICAL;
|
||||
int nDamageType2 = nEssence2 ? (nEssenceData2 >>> 4) & 0xFFF : DAMAGE_TYPE_MAGICAL;
|
||||
|
@@ -75,6 +75,9 @@ void main()
|
||||
nBlastLvl = PRCMax(nShapeLevel, PRCMax(PRCMax(nEssenceData & 0xF, nEssenceData2 & 0xF), nBlastLvl));
|
||||
int nDC = 10 + nBlastLvl + GetAbilityModifier(ABILITY_CHARISMA);
|
||||
if(GetHasFeat(FEAT_LORD_OF_ALL_ESSENCES)) nDC += 2;
|
||||
|
||||
nDC += InvokerAbilityFocus(oPC, nEssence, nEssence2);
|
||||
|
||||
int nDmgDice = GetBlastDamageDices(oPC, nInvLevel);
|
||||
|
||||
int nDamageType = nEssence ? (nEssenceData >>> 4) & 0xFFF : DAMAGE_TYPE_MAGICAL;
|
||||
|
@@ -36,6 +36,8 @@ void main()
|
||||
nBlastLvl = PRCMax(PRCMax(nEssenceData & 0xF, nEssenceData2 & 0xF), nBlastLvl);
|
||||
int nDC = 10 + nBlastLvl + GetAbilityModifier(ABILITY_CHARISMA);
|
||||
if(GetHasFeat(FEAT_LORD_OF_ALL_ESSENCES)) nDC += 2;
|
||||
|
||||
nDC += InvokerAbilityFocus(oPC, nEssence, nEssence2);
|
||||
|
||||
int nDamageType = nEssence ? (nEssenceData >>> 4) & 0xFFF : DAMAGE_TYPE_MAGICAL;
|
||||
int nDamageType2 = nEssence2 ? (nEssenceData2 >>> 4) & 0xFFF : DAMAGE_TYPE_MAGICAL;
|
||||
|
@@ -40,6 +40,8 @@ void main()
|
||||
nBlastLvl = PRCMax(PRCMax(nEssenceData & 0xF, nEssenceData2 & 0xF), nBlastLvl);
|
||||
int nDC = 10 + nBlastLvl + GetAbilityModifier(ABILITY_CHARISMA);
|
||||
if(GetHasFeat(FEAT_LORD_OF_ALL_ESSENCES)) nDC += 2;
|
||||
|
||||
nDC += InvokerAbilityFocus(oPC, nEssence, nEssence2);
|
||||
|
||||
int nDamageType = nEssence ? (nEssenceData >>> 4) & 0xFFF : DAMAGE_TYPE_MAGICAL;
|
||||
int nDamageType2 = nEssence2 ? (nEssenceData2 >>> 4) & 0xFFF : DAMAGE_TYPE_MAGICAL;
|
||||
|
@@ -36,6 +36,9 @@ void main()
|
||||
object oCaster = GetAreaOfEffectCreator();
|
||||
int nCasterLvl = GetInvokerLevel(oCaster, CLASS_TYPE_WARLOCK);
|
||||
int nDC = GetInvocationSaveDC(oTarget, oCaster, INVOKE_MIASMIC_CLOUD);
|
||||
|
||||
if (GetHasFeat(FEAT_ABFOC_MIASMIC_CLOUD, oCaster)) nDC += 2;
|
||||
|
||||
effect eConceal = EffectConcealment(20);
|
||||
effect eDex = EffectAbilityDecrease(ABILITY_DEXTERITY, 2);
|
||||
effect eStr = EffectAbilityDecrease(ABILITY_STRENGTH, 2);
|
||||
|
@@ -26,6 +26,8 @@ void DoSleepCheck(object oTarget, int nSleepCheck, object oCaster)
|
||||
return;
|
||||
|
||||
int nDC = GetInvocationSaveDC(oTarget, oCaster);
|
||||
|
||||
if (GetHasFeat(FEAT_ABFOC_PAINFUL_SLUMBER_OF_THE_AGES, oCaster)) nDC += 2;
|
||||
|
||||
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, (nDC), SAVING_THROW_TYPE_MIND_SPELLS))
|
||||
{
|
||||
|
@@ -19,6 +19,8 @@ void main()
|
||||
int CasterLvl = GetInvokerLevel(OBJECT_SELF, GetInvokingClass());
|
||||
CasterLvl += SPGetPenetr();
|
||||
int nDuration = CasterLvl + 1;
|
||||
|
||||
if (GetHasFeat(FEAT_ABFOC_STEAL_SUMMONING, OBJECT_SELF)) CasterLvl += 2;
|
||||
|
||||
//does the creature have a master.
|
||||
oMaster = GetMaster(oTarget);
|
||||
|
@@ -44,6 +44,9 @@ void main()
|
||||
nDamage = d6(4) + nCasterLvl;
|
||||
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
|
||||
int nDC = GetInvocationSaveDC(oTarget, oCaster, INVOKE_WALL_OF_PERILOUS_FLAME);
|
||||
|
||||
if (GetHasFeat(FEAT_ABFOC_WALL_OF_PERILOUS_FLAME, oCaster)) nDC += 2;
|
||||
|
||||
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_FIRE);
|
||||
|
||||
if(nDamage > 0)
|
||||
|
@@ -60,6 +60,9 @@ void main()
|
||||
|
||||
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
|
||||
int nDC = GetInvocationSaveDC(oTarget, oCaster, INVOKE_WALL_OF_PERILOUS_FLAME);
|
||||
|
||||
if (GetHasFeat(FEAT_ABFOC_WALL_OF_PERILOUS_FLAME, oCaster)) nDC += 2;
|
||||
|
||||
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_FIRE);
|
||||
|
||||
if(nDamage > 0)
|
||||
|
@@ -54,6 +54,8 @@ void main()
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nCasterLvl = GetInvokerLevel(OBJECT_SELF, GetInvokingClass());
|
||||
int nDC = GetInvocationSaveDC(oTarget, oPC);
|
||||
|
||||
if (GetHasFeat(FEAT_ABFOC_WORD_OF_CHANGING, oPC)) nDC += 2;
|
||||
|
||||
if (GetIsDM(oTarget)) return;
|
||||
|
||||
|
Reference in New Issue
Block a user