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:
Jaysyn904
2025-05-13 23:05:31 -04:00
parent 66de6daa94
commit 2caeb8941c
125 changed files with 3990 additions and 3630 deletions

View File

@@ -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))

View File

@@ -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*";

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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))
{

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);

View File

@@ -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))
{

View File

@@ -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);

View File

@@ -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)

View File

@@ -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)

View File

@@ -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;