Exalted update
Updated Vow of Poverty. Added Sanctify Ki Strike, Holy Strike, Fist of Heavens, Vow of Abstinence, Vow of Chastity & Gift of Faith. (@fenac). Turned off the Taunt & Parry skills. Re-disabled AC & save bonuses from Tumble & Spellcraft. Updated min() & max() to PRCmin() & PRCmax() to not conflict with similarly named NUI adjacent functions. Set Point Blank Shot to 30' per PnP. Added icon for Chosen of Evil. Started work on Hidden Talent. Created Psionics function cheatsheet. Updated release archive.
This commit is contained in:
@@ -48,7 +48,7 @@ void main()
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int EleDmg = ChangedElementalDamage(oCaster, DAMAGE_TYPE_FIRE);
|
||||
int nSaveType = ChangedSaveType(EleDmg);
|
||||
int nDice = min(5, nCasterLevel);
|
||||
int nDice = PRCMin(5, nCasterLevel);
|
||||
int nDamage;
|
||||
float fDist;
|
||||
|
||||
|
@@ -64,7 +64,7 @@ void main()
|
||||
int nCasterLvl = PRCGetCasterLevel(oCaster);
|
||||
int nPenetr = nCasterLvl + SPGetPenetr();
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int nDice = min(10, nCasterLvl);
|
||||
int nDice = PRCMin(10, nCasterLvl);
|
||||
int EleDmg = ChangedElementalDamage(oCaster, DAMAGE_TYPE_ELECTRICAL);
|
||||
int nSaveType = ChangedSaveType(EleDmg);
|
||||
|
||||
|
@@ -49,7 +49,7 @@ int DoSpell(object oCaster, object oTarget, int nCasterLevel, int nSpellID, int
|
||||
}
|
||||
|
||||
// Extra points based on spell level, capped to caster level
|
||||
int nExtraDamage = min(nSpellLevel * 5, nCasterLevel);
|
||||
int nExtraDamage = PRCMin(nSpellLevel * 5, nCasterLevel);
|
||||
|
||||
// Healing is more effective for players on low or normal difficulty
|
||||
int nDifficultyCondition = (GetIsPC(oTarget) && (GetGameDifficulty() < GAME_DIFFICULTY_CORE_RULES)) && bIsCure;
|
||||
|
@@ -39,7 +39,7 @@ int DoSpell(object oCaster, object oTarget, int nCasterLevel)
|
||||
if(nMetaMagic & METAMAGIC_EXTEND)
|
||||
fDuration *= 2;
|
||||
|
||||
int nShadow = max(GetLocalInt(oCaster, "ShadowMantle_Shoulder"), GetLocalInt(oTarget, "ShadowMantle_Shoulder"));
|
||||
int nShadow = PRCMax(GetLocalInt(oCaster, "ShadowMantle_Shoulder"), GetLocalInt(oTarget, "ShadowMantle_Shoulder"));
|
||||
if (nShadow) nPnP = FALSE;
|
||||
if (DEBUG) DoDebug("nw_s0_darkness: oCaster "+GetName(oCaster)+" oTarget "+GetName(oTarget)+" nSwitch "+IntToString(nPnP));
|
||||
|
||||
|
@@ -43,7 +43,7 @@ void main()
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M);
|
||||
effect eDam;
|
||||
//Limit Caster level for the purposes of damage
|
||||
int nDice = min(10, nCasterLvl);
|
||||
int nDice = PRCMin(10, nCasterLvl);
|
||||
|
||||
nCasterLvl += SPGetPenetr();
|
||||
|
||||
|
@@ -36,7 +36,7 @@ void main()
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int EleDmg = ChangedElementalDamage(oCaster, DAMAGE_TYPE_FIRE);
|
||||
int nSaveType = ChangedSaveType(EleDmg);
|
||||
int nDice = min(15, nCasterLvl);
|
||||
int nDice = PRCMin(15, nCasterLvl);
|
||||
|
||||
int nDamage, nDamage2;
|
||||
effect eStrike = EffectVisualEffect(VFX_IMP_DIVINE_STRIKE_FIRE);
|
||||
|
@@ -143,7 +143,7 @@ void main()
|
||||
if (nTotem)
|
||||
{
|
||||
int nTotemRage = GetMaxEssentiaCapacityFeat(oPC) - nEssentia;
|
||||
int nExtraEss = max(nTotem/2, 1);
|
||||
int nExtraEss = PRCMax(nTotem/2, 1);
|
||||
int nBoost;
|
||||
if (nExtraEss >= nTotemRage)
|
||||
{
|
||||
|
@@ -275,9 +275,9 @@ void SummonPRCFamiliar(object oPC)
|
||||
nFamiliarType--;
|
||||
|
||||
int nFamLevel = GetLevelByClass(CLASS_TYPE_WIZARD);
|
||||
nFamLevel = max(nFamLevel, GetLevelByClass(CLASS_TYPE_SORCERER));
|
||||
nFamLevel = max(nFamLevel, GetLevelByClass(CLASS_TYPE_WITCH));
|
||||
nFamLevel = max(nFamLevel, GetLevelByClass(CLASS_TYPE_HEXBLADE));
|
||||
nFamLevel = PRCMax(nFamLevel, GetLevelByClass(CLASS_TYPE_SORCERER));
|
||||
nFamLevel = PRCMax(nFamLevel, GetLevelByClass(CLASS_TYPE_WITCH));
|
||||
nFamLevel = PRCMax(nFamLevel, GetLevelByClass(CLASS_TYPE_HEXBLADE));
|
||||
nFamLevel += GetLevelByClass(CLASS_TYPE_ALIENIST);
|
||||
if (GetHasFeat(FEAT_SHADOW_FAMILIAR, oPC)) nFamLevel = GetLevelByTypeArcane(oPC) + GetShadowcasterLevel(oPC); // For the purpose of determining familiar abilities that depend on your arcane caster level, your levels in all classes that allow you to cast mysteries or arcane spells stack
|
||||
|
||||
|
@@ -82,7 +82,7 @@ void main()
|
||||
int nNormHP = GetCurrentHitPoints(oTarget);
|
||||
|
||||
//Apply effects
|
||||
effect eSarc = EffectLinkEffects(EffectTemporaryHitpoints(10 * min(20, nCasterLvl)), EffectCutsceneParalyze());
|
||||
effect eSarc = EffectLinkEffects(EffectTemporaryHitpoints(10 * PRCMin(20, nCasterLvl)), EffectCutsceneParalyze());
|
||||
eSarc = EffectLinkEffects(eSarc, EffectVisualEffect(VFX_DUR_PROTECTION_GOOD_MAJOR));
|
||||
|
||||
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSarc, oTarget, fDur, TRUE, PRCGetSpellId(), nCasterLvl);
|
||||
|
@@ -72,12 +72,12 @@ void main()
|
||||
}
|
||||
|
||||
//evil take damage, separate saving throw
|
||||
nDam = d6(min(5, nCasterLvl/2));
|
||||
nDam = d6(PRCMin(5, nCasterLvl/2));
|
||||
|
||||
//maximize
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 6 * (min(5, nCasterLvl/2));
|
||||
nDam = 6 * (PRCMin(5, nCasterLvl/2));
|
||||
}
|
||||
|
||||
//empower
|
||||
@@ -85,7 +85,7 @@ void main()
|
||||
{
|
||||
nDam += (nDam/2);
|
||||
}
|
||||
nDam += SpellDamagePerDice(oPC, min(5, nCasterLvl/2));
|
||||
nDam += SpellDamagePerDice(oPC, PRCMin(5, nCasterLvl/2));
|
||||
if(PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC)) nDam = (nDam/2);
|
||||
|
||||
//Apply damage
|
||||
|
@@ -45,7 +45,7 @@ void main()
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
int nCasterMaxHP = GetMaxHitPoints(oPC);
|
||||
int nCasterCurrentHP = GetCurrentHitPoints(oPC);
|
||||
int nDam = min((nCasterMaxHP - nCasterCurrentHP), nCasterLvl);
|
||||
int nDam = PRCMin((nCasterMaxHP - nCasterCurrentHP), nCasterLvl);
|
||||
int nDC = PRCGetSaveDC(oTarget, oPC);
|
||||
|
||||
PRCSignalSpellEvent(oTarget, TRUE, SPELL_BESTOW_WOUND, oPC);
|
||||
|
@@ -60,18 +60,18 @@ void main()
|
||||
|
||||
if (iAttackRoll > 0)
|
||||
{
|
||||
int nDam = d6(min(5, (nCasterLevel/2)));
|
||||
int nDam = d6(PRCMin(5, (nCasterLevel/2)));
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 6 * (min(5, (nCasterLevel/2)));
|
||||
nDam = 6 * (PRCMin(5, (nCasterLevel/2)));
|
||||
}
|
||||
|
||||
if(nMetaMagic & METAMAGIC_EMPOWER)
|
||||
{
|
||||
nDam += (nDam/2);
|
||||
}
|
||||
nDam += SpellDamagePerDice(oPC, min(5, nCasterLevel/2));
|
||||
nDam += SpellDamagePerDice(oPC, PRCMin(5, nCasterLevel/2));
|
||||
//save
|
||||
if(!PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, PRCGetSaveDC(oTarget, oPC), SAVING_THROW_TYPE_SPELL))
|
||||
{
|
||||
|
@@ -56,7 +56,7 @@ void main()
|
||||
int nAbilityScore = GetAbilityScoreForClass(nClassType, oPC);
|
||||
|
||||
int nAttackBonus = (2 + nCasterLvl + (nAbilityScore - 10)/2 );
|
||||
int nTripBonus = min(5,(nCasterLvl/3));
|
||||
int nTripBonus = PRCMin(5,(nCasterLvl/3));
|
||||
|
||||
int iAttackRoll = GetAttackRoll(oTarget, OBJECT_INVALID, OBJECT_INVALID, 0, nAttackBonus,0,nDisplayFeedback, 0.0, TOUCH_ATTACK_MELEE_SPELL);
|
||||
if (iAttackRoll > 0)
|
||||
@@ -67,7 +67,7 @@ void main()
|
||||
//save
|
||||
if(!PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, PRCGetSaveDC(oTarget, oPC), SAVING_THROW_TYPE_SPELL))
|
||||
{
|
||||
int nOpposing = d20() + (max(GetAbilityModifier(ABILITY_STRENGTH, oTarget), GetAbilityModifier(ABILITY_DEXTERITY, oTarget))) + EvalSizeBonus(oTarget);
|
||||
int nOpposing = d20() + (PRCMax(GetAbilityModifier(ABILITY_STRENGTH, oTarget), GetAbilityModifier(ABILITY_DEXTERITY, oTarget))) + EvalSizeBonus(oTarget);
|
||||
int nCheck = d20() + 2 + nTripBonus;
|
||||
|
||||
if(nCheck > nOpposing)
|
||||
|
@@ -49,7 +49,7 @@ int DoSpell(object oCaster, object oTarget, int nCasterLevel, int nEvent)
|
||||
{
|
||||
if (!PRCDoResistSpell(oCaster, oTarget, nPenetr))
|
||||
{
|
||||
int nDice= min(nCasterLevel/2, 5);
|
||||
int nDice= PRCMin(nCasterLevel/2, 5);
|
||||
int nDam = d6(nDice);
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE) nDam = 6 * nDice;
|
||||
if(nMetaMagic & METAMAGIC_EMPOWER) nDam += (nDam/2);
|
||||
|
@@ -70,17 +70,17 @@ void main()
|
||||
{
|
||||
if((nRace == RACIAL_TYPE_UNDEAD) || (nRace == RACIAL_TYPE_OUTSIDER && nAlign == ALIGNMENT_EVIL))
|
||||
{
|
||||
nDam = d6(min(nCasterLevel, 15));
|
||||
nDam = d6(PRCMin(nCasterLevel, 15));
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 6 * min(nCasterLevel, 15);
|
||||
nDam = 6 * PRCMin(nCasterLevel, 15);
|
||||
}
|
||||
if(nMetaMagic & METAMAGIC_EMPOWER)
|
||||
{
|
||||
nDam += (nDam/2);
|
||||
}
|
||||
nDam += SpellDamagePerDice(oPC, min(nCasterLevel,15));
|
||||
nDam += SpellDamagePerDice(oPC, PRCMin(nCasterLevel,15));
|
||||
}
|
||||
|
||||
if((nRace == RACIAL_TYPE_ELEMENTAL) ||
|
||||
@@ -89,17 +89,17 @@ void main()
|
||||
//Material native and living
|
||||
(nRace != RACIAL_TYPE_OUTSIDER && nRace != RACIAL_TYPE_UNDEAD && nRace != RACIAL_TYPE_CONSTRUCT))
|
||||
{
|
||||
nDam = d6(min(nCasterLevel/2, 7));
|
||||
nDam = d6(PRCMin(nCasterLevel/2, 7));
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 6 * min(nCasterLevel/2, 7);
|
||||
nDam = 6 * PRCMin(nCasterLevel/2, 7);
|
||||
}
|
||||
if(nMetaMagic & METAMAGIC_EMPOWER)
|
||||
{
|
||||
nDam += (nDam/2);
|
||||
}
|
||||
nDam += SpellDamagePerDice(oPC, min(nCasterLevel/2, 7));
|
||||
nDam += SpellDamagePerDice(oPC, PRCMin(nCasterLevel/2, 7));
|
||||
}
|
||||
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, PRCEffectDamage(oTarget, nDam, DAMAGE_TYPE_DIVINE), oTarget);
|
||||
|
@@ -70,7 +70,7 @@ void main()
|
||||
|
||||
effect eVilLink = EffectLinkEffects(EffectAttackDecrease(nModify, ATTACK_BONUS_MISC), EffectSavingThrowDecrease(SAVING_THROW_ALL, nModify, SAVING_THROW_TYPE_FEAR));
|
||||
effect eGoodLink = EffectLinkEffects(EffectAttackIncrease(nModify, ATTACK_BONUS_MISC), EffectSavingThrowIncrease(SAVING_THROW_ALL, nModify, SAVING_THROW_TYPE_FEAR));
|
||||
eGoodLink = EffectLinkEffects(eGoodLink, EffectTemporaryHitpoints(d8(1) + min(20, nCasterLvl)));
|
||||
eGoodLink = EffectLinkEffects(eGoodLink, EffectTemporaryHitpoints(d8(1) + PRCMin(20, nCasterLvl)));
|
||||
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
|
@@ -74,47 +74,47 @@ void main()
|
||||
return;
|
||||
}
|
||||
|
||||
nDam = d4(min((nCasterLvl/2), 10));
|
||||
nDam = d4(PRCMin((nCasterLvl/2), 10));
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 4 * (min((nCasterLvl/2), 10));
|
||||
nDam = 4 * (PRCMin((nCasterLvl/2), 10));
|
||||
}
|
||||
}
|
||||
|
||||
//standard
|
||||
else if(nSpell == SPELL_CHANNELED_PYROBURST_2)
|
||||
{
|
||||
nDam = d6(min(10, nCasterLvl));
|
||||
nDam = d6(PRCMin(10, nCasterLvl));
|
||||
fRadius = 3.048f;
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 6 * (min(10, nCasterLvl));
|
||||
nDam = 6 * (PRCMin(10, nCasterLvl));
|
||||
}
|
||||
}
|
||||
|
||||
//full round
|
||||
else if(nSpell == SPELL_CHANNELED_PYROBURST_3)
|
||||
{
|
||||
nDam = d8(min(10, nCasterLvl));
|
||||
nDam = d8(PRCMin(10, nCasterLvl));
|
||||
fRadius = 4.57f;
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 8 * (min(10, nCasterLvl));
|
||||
nDam = 8 * (PRCMin(10, nCasterLvl));
|
||||
}
|
||||
}
|
||||
|
||||
//two rounds
|
||||
else if(nSpell == SPELL_CHANNELED_PYROBURST_4)
|
||||
{
|
||||
nDam = d10(min(10, nCasterLvl));
|
||||
nDam = d10(PRCMin(10, nCasterLvl));
|
||||
fRadius = 6.10f;
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 10 * (min(10, nCasterLvl));
|
||||
nDam = 10 * (PRCMin(10, nCasterLvl));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ void main()
|
||||
{
|
||||
nDam += (nDam/2);
|
||||
}
|
||||
nDam += SpellDamagePerDice(oPC, min(10, nCasterLvl));
|
||||
nDam += SpellDamagePerDice(oPC, PRCMin(10, nCasterLvl));
|
||||
|
||||
if(PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC, SAVING_THROW_TYPE_FIRE))
|
||||
{
|
||||
|
@@ -46,7 +46,7 @@ void main()
|
||||
float fDur;
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
int nMin = min(10, nCasterLvl);
|
||||
int nMin = PRCMin(10, nCasterLvl);
|
||||
int nDam;
|
||||
int nDC = PRCGetSaveDC(oTarget, oPC);
|
||||
|
||||
|
@@ -54,7 +54,7 @@ void main()
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int nSpell = PRCGetSpellId();
|
||||
int nBonus = nSpell == SPELL_DEFLECT ? nCasterLvl/2:
|
||||
min(5, (nCasterLvl/3));
|
||||
PRCMin(5, (nCasterLvl/3));
|
||||
|
||||
PRCSignalSpellEvent(oPC, FALSE, nSpell, oPC);
|
||||
|
||||
|
@@ -57,11 +57,11 @@ void main()
|
||||
{
|
||||
if(!PRCDoResistSpell(oPC, oTarget, nCasterLvl + SPGetPenetr()))
|
||||
{
|
||||
int nDam = d6(min(nCasterLvl,10));
|
||||
int nDam = d6(PRCMin(nCasterLvl,10));
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 6 * (min(nCasterLvl, 10));
|
||||
nDam = 6 * (PRCMin(nCasterLvl, 10));
|
||||
}
|
||||
if(nMetaMagic & METAMAGIC_EMPOWER)
|
||||
{
|
||||
@@ -71,7 +71,7 @@ void main()
|
||||
{
|
||||
fDur += fDur;
|
||||
}
|
||||
nDam += SpellDamagePerDice(oPC, min(nCasterLvl, 10));
|
||||
nDam += SpellDamagePerDice(oPC, PRCMin(nCasterLvl, 10));
|
||||
if(GetAlignmentGoodEvil(oTarget) == ALIGNMENT_EVIL)
|
||||
{
|
||||
nDC = PRCGetSaveDC(oTarget, oPC);
|
||||
|
@@ -63,19 +63,19 @@ void main()
|
||||
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
nDam = d6(min(nCasterLvl/2, 10));
|
||||
nDam = d6(PRCMin(nCasterLvl/2, 10));
|
||||
nDC = PRCGetSaveDC(oTarget, oPC);
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 6 * (min(nCasterLvl/2, 10));
|
||||
nDam = 6 * (PRCMin(nCasterLvl/2, 10));
|
||||
}
|
||||
|
||||
if(nMetaMagic & METAMAGIC_EMPOWER)
|
||||
{
|
||||
nDam += (nDam/2);
|
||||
}
|
||||
nDam += SpellDamagePerDice(oPC, min(nCasterLvl/2, 10));
|
||||
nDam += SpellDamagePerDice(oPC, PRCMin(nCasterLvl/2, 10));
|
||||
if(PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_SPELL))
|
||||
{
|
||||
nDam = (nDam/2);
|
||||
|
@@ -54,7 +54,7 @@ void main()
|
||||
if(GetLevelByClass(CLASS_TYPE_SORCERER, oPC))
|
||||
{
|
||||
//not sure whether we can have 40+ caster levels now...
|
||||
nCasterLvl = min(nCasterLvl + 1, 40);
|
||||
nCasterLvl = PRCMin(nCasterLvl + 1, 40);
|
||||
}
|
||||
|
||||
float fDur = (60.0 * nCasterLvl);
|
||||
|
@@ -37,7 +37,7 @@ void main()
|
||||
object oPC = OBJECT_SELF;
|
||||
location lLoc = PRCGetSpellTargetLocation();
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
int nBonus = max((nCasterLvl/3), 1);
|
||||
int nBonus = PRCMax((nCasterLvl/3), 1);
|
||||
int nRace;
|
||||
|
||||
//Spellhook
|
||||
|
@@ -59,7 +59,7 @@ void main()
|
||||
location lTarget = PRCGetSpellTargetLocation();
|
||||
int nSpellID = PRCGetSpellId();
|
||||
int nCasterLvl = PRCGetCasterLevel(oCaster);
|
||||
int nDice = min(15, nCasterLvl);
|
||||
int nDice = PRCMin(15, nCasterLvl);
|
||||
int nPenter = nCasterLvl + SPGetPenetr();
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int nDamageType, nImpVfx, nDamage, nDamage2;
|
||||
|
@@ -120,7 +120,7 @@ void main()
|
||||
SetLocalInt(oGrenade, "PRC_EnergizedPotionSave", SAVING_THROW_TYPE_SONIC);
|
||||
sDamageType = "Sonic";
|
||||
}
|
||||
nLevel = min(3, nLevel);
|
||||
nLevel = PRCMin(3, nLevel);
|
||||
SetLocalInt(oGrenade, "PRC_GrenadeLevel", nLevel);
|
||||
SetLocalInt(oGrenade, "PRC_EnPotSaveDC", nDC);
|
||||
|
||||
|
@@ -44,7 +44,7 @@ Created: 6/28/06
|
||||
|
||||
int GetERSpellResistance(int nCasterLvl)
|
||||
{
|
||||
int nSRBonus = min(nCasterLvl, 20);
|
||||
int nSRBonus = PRCMin(nCasterLvl, 20);
|
||||
int nIPConst;
|
||||
|
||||
switch(nSRBonus)
|
||||
@@ -81,7 +81,7 @@ void main()
|
||||
object oMyArmor = IPGetTargetedOrEquippedArmor(FALSE);
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
int nSR = GetERSpellResistance(nCasterLvl);
|
||||
int nArmor = min(nCasterLvl / 5, 4);
|
||||
int nArmor = PRCMin(nCasterLvl / 5, 4);
|
||||
float fDur = (60.0f * nCasterLvl);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
|
||||
|
@@ -48,7 +48,7 @@ void main()
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int nDam = d6(min(nCasterLvl, 20));
|
||||
int nDam = d6(PRCMin(nCasterLvl, 20));
|
||||
int nSaveDC = PRCGetSaveDC(oTarget, oPC);
|
||||
int nType = MyPRCGetRacialType(oTarget);
|
||||
|
||||
@@ -62,14 +62,14 @@ void main()
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 6*(min(nCasterLvl, 20));
|
||||
nDam = 6*(PRCMin(nCasterLvl, 20));
|
||||
}
|
||||
|
||||
if(nMetaMagic & METAMAGIC_EMPOWER)
|
||||
{
|
||||
nDam += (nDam/2);
|
||||
}
|
||||
nDam += SpellDamagePerDice(oPC, min(nCasterLvl, 20));
|
||||
nDam += SpellDamagePerDice(oPC, PRCMin(nCasterLvl, 20));
|
||||
//SR check
|
||||
if(!PRCDoResistSpell(oPC, oTarget, (nCasterLvl + SPGetPenetr())))
|
||||
{
|
||||
|
@@ -39,9 +39,9 @@ void main()
|
||||
if(nMetaMagic & METAMAGIC_EXTEND)
|
||||
fDur *= 2;
|
||||
|
||||
int nBonus = d10(1) + (min(10, nCasterLvl));
|
||||
int nBonus = d10(1) + (PRCMin(10, nCasterLvl));
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
nBonus = 10 + (min(10, nCasterLvl));
|
||||
nBonus = 10 + (PRCMin(10, nCasterLvl));
|
||||
if(nMetaMagic & METAMAGIC_EMPOWER)
|
||||
nBonus += (nBonus/2);
|
||||
|
||||
|
@@ -43,7 +43,7 @@ void main()
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
float fDur= (600.0f * nCasterLvl);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int nAmount = min(50, (5 * nCasterLvl));
|
||||
int nAmount = PRCMin(50, (5 * nCasterLvl));
|
||||
effect eDR = EffectDamageReduction(10, DAMAGE_POWER_PLUS_ONE, nAmount);
|
||||
|
||||
//placeholder VFX
|
||||
|
@@ -42,7 +42,7 @@ void main()
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int nType = MyPRCGetRacialType(oPC);
|
||||
int nType2 = MyPRCGetRacialType(oTarget);
|
||||
int nDice = min(10, nCasterLvl);
|
||||
int nDice = PRCMin(10, nCasterLvl);
|
||||
|
||||
PRCSignalSpellEvent(oTarget,TRUE, SPELL_FLESH_RIPPER, oPC);
|
||||
|
||||
|
@@ -56,7 +56,7 @@ void HoundBuff(object oPC)
|
||||
oHound = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oPC, i);
|
||||
}
|
||||
|
||||
int nHP = max(0, GetMaxHitPoints(oPC) - GetCurrentHitPoints(oHound));
|
||||
int nHP = PRCMax(0, GetMaxHitPoints(oPC) - GetCurrentHitPoints(oHound));
|
||||
effect eHP = EffectTemporaryHitpoints(nHP);
|
||||
|
||||
int nABBonus = GetBaseAttackBonus(oPC);
|
||||
|
@@ -36,7 +36,7 @@ void main()
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
location lLoc = PRCGetSpellTargetLocation();
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int nDam = min(15,nCasterLvl);
|
||||
int nDam = PRCMin(15,nCasterLvl);
|
||||
float fDur = RoundsToSeconds(nCasterLvl);
|
||||
effect eVis, eShield, eReduce;
|
||||
int nSpell = GetSpellId();
|
||||
|
@@ -52,7 +52,7 @@ void main()
|
||||
|
||||
object oPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nLevel = min(PRCGetCasterLevel(oPC), 10);
|
||||
int nLevel = PRCMin(PRCGetCasterLevel(oPC), 10);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
|
||||
PRCSignalSpellEvent(oTarget, TRUE, SPELL_NECROTIC_BLOAT, oPC);
|
||||
|
@@ -51,7 +51,7 @@ void main()
|
||||
|
||||
|
||||
object oPC = OBJECT_SELF;
|
||||
int nLevel = min(PRCGetCasterLevel(oPC), 15);
|
||||
int nLevel = PRCMin(PRCGetCasterLevel(oPC), 15);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
|
@@ -53,7 +53,7 @@ void main()
|
||||
|
||||
object oPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nLevel = min(PRCGetCasterLevel(oPC), 15);
|
||||
int nLevel = PRCMin(PRCGetCasterLevel(oPC), 15);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
|
||||
PRCSignalSpellEvent(oTarget, TRUE, SPELL_NECROTIC_ERUPTION, oPC);
|
||||
|
@@ -54,7 +54,7 @@ void main()
|
||||
|
||||
object oPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nLevel = min(PRCGetCasterLevel(oPC), 25);
|
||||
int nLevel = PRCMin(PRCGetCasterLevel(oPC), 25);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
|
||||
PRCSignalSpellEvent(oTarget, TRUE, SPELL_NECROTIC_TERMINATION, oPC);
|
||||
|
@@ -37,7 +37,7 @@ void main()
|
||||
object oPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
int nDice = min(10, nCasterLvl);
|
||||
int nDice = PRCMin(10, nCasterLvl);
|
||||
int nDam = d6(nDice);
|
||||
int nTouch = PRCDoRangedTouchAttack(oTarget);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
|
@@ -52,7 +52,7 @@ void main()
|
||||
object oTarget;
|
||||
location lTarget = PRCGetSpellTargetLocation();
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
int nDice = min(15, nCasterLvl);
|
||||
int nDice = PRCMin(15, nCasterLvl);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int eDamageType = ChangedElementalDamage(oPC, DAMAGE_TYPE_COLD);
|
||||
int nDC, bIsElemental, nDam;
|
||||
|
@@ -95,18 +95,18 @@ void main()
|
||||
if(GetAlignmentGoodEvil(oTarget) == ALIGNMENT_EVIL)
|
||||
{
|
||||
//Damage = 2d6/level
|
||||
nDam = d6(min(40, (2 * nCasterLvl)));
|
||||
nDam = d6(PRCMin(40, (2 * nCasterLvl)));
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 6 * (min(40, (2 * nCasterLvl)));
|
||||
nDam = 6 * (PRCMin(40, (2 * nCasterLvl)));
|
||||
}
|
||||
|
||||
if(nMetaMagic & METAMAGIC_EMPOWER)
|
||||
{
|
||||
nDam += (nDam/2);
|
||||
}
|
||||
nDam += SpellDamagePerDice(oPC, min(40, (2 * nCasterLvl)));
|
||||
nDam += SpellDamagePerDice(oPC, PRCMin(40, (2 * nCasterLvl)));
|
||||
//Reflex save for 1/2 damage
|
||||
if(PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC, SAVING_THROW_TYPE_GOOD))
|
||||
{
|
||||
@@ -126,18 +126,18 @@ void main()
|
||||
else if(GetAlignmentGoodEvil(oTarget) == ALIGNMENT_NEUTRAL)
|
||||
{
|
||||
//Half damage for neutrality, Damage = 1d6
|
||||
nDam = d6(min(20,nCasterLvl));
|
||||
nDam = d6(PRCMin(20,nCasterLvl));
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 6 * (min(20,nCasterLvl));
|
||||
nDam = 6 * (PRCMin(20,nCasterLvl));
|
||||
}
|
||||
|
||||
if(nMetaMagic & METAMAGIC_EMPOWER)
|
||||
{
|
||||
nDam += (nDam/2);
|
||||
}
|
||||
nDam += SpellDamagePerDice(oPC, min(20, nCasterLvl));
|
||||
nDam += SpellDamagePerDice(oPC, PRCMin(20, nCasterLvl));
|
||||
//Reflex for further 1/2
|
||||
if(PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC, SAVING_THROW_TYPE_GOOD))
|
||||
{
|
||||
|
@@ -62,7 +62,7 @@ void main()
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
int nSpell = GetSpellId();
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int nDam = min(15,nCasterLvl);
|
||||
int nDam = PRCMin(15,nCasterLvl);
|
||||
float fDur = RoundsToSeconds(nCasterLvl);
|
||||
effect eShield;
|
||||
effect eVis;
|
||||
|
@@ -53,7 +53,7 @@ void main()
|
||||
PRCSignalSpellEvent(oTarget,FALSE, SPELL_PROTECTION_FROM_ARROWS, oPC);
|
||||
|
||||
// Damage Resistance 10 piercing, max of 100 total
|
||||
effect eBuff = EffectLinkEffects(EffectDamageResistance(DAMAGE_TYPE_PIERCING, 10, min((10 * nCasterLvl), 100)), EffectVisualEffect(VFX_DUR_PROTECTION_ARROWS));
|
||||
effect eBuff = EffectLinkEffects(EffectDamageResistance(DAMAGE_TYPE_PIERCING, 10, PRCMin((10 * nCasterLvl), 100)), EffectVisualEffect(VFX_DUR_PROTECTION_ARROWS));
|
||||
|
||||
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBuff, oTarget, fDur);
|
||||
|
||||
|
@@ -63,21 +63,21 @@ void main()
|
||||
|
||||
if((MyPRCGetRacialType(oTarget) == RACIAL_TYPE_OUTSIDER) && (nAlign == ALIGNMENT_EVIL))
|
||||
{
|
||||
nDam = d8(min(nCasterLvl, 20));
|
||||
nDam = d8(PRCMin(nCasterLvl, 20));
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 8 * (min(nCasterLvl, 20));
|
||||
nDam = 8 * (PRCMin(nCasterLvl, 20));
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
nDam = d6(min(nCasterLvl, 20));
|
||||
nDam = d6(PRCMin(nCasterLvl, 20));
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 6 * (min(nCasterLvl, 20));
|
||||
nDam = 6 * (PRCMin(nCasterLvl, 20));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ void main()
|
||||
{
|
||||
nDam += (nDam/2);
|
||||
}
|
||||
nDam += SpellDamagePerDice(oPC, min(nCasterLvl, 20));
|
||||
nDam += SpellDamagePerDice(oPC, PRCMin(nCasterLvl, 20));
|
||||
//Save for 1/2
|
||||
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_EVIL))
|
||||
{
|
||||
|
@@ -60,7 +60,7 @@ void main()
|
||||
{
|
||||
if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, oShadow))
|
||||
{
|
||||
int nDamage = d6() + min(10, nCasterLvl);
|
||||
int nDamage = d6() + PRCMin(10, nCasterLvl);
|
||||
nDamage += SpellDamagePerDice(oShadow, 1);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, PRCEffectDamage(oTarget, DAMAGE_TYPE_SLASHING, nDamage), oTarget);
|
||||
}
|
||||
|
@@ -80,7 +80,7 @@ void main()
|
||||
effect eImpact = EffectVisualEffect(VFX_FNF_SCINTILLATING_PATTERN);
|
||||
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, lTarget, 0.0f);
|
||||
|
||||
int nHD = min(nCasterLvl, 20);
|
||||
int nHD = PRCMin(nCasterLvl, 20);
|
||||
float fDistance;
|
||||
int bContinueLoop, nCurrentHD, nLow;
|
||||
object oLowest;
|
||||
|
@@ -44,7 +44,7 @@ void main()
|
||||
object oPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nStack = GetItemStackSize(oTarget);
|
||||
int nCreate = min(8, nStack);
|
||||
int nCreate = PRCMin(8, nStack);
|
||||
SetItemStackSize(oTarget, (nStack - nCreate));
|
||||
string sSerp;
|
||||
|
||||
|
@@ -50,7 +50,7 @@ int DoSpell(object oCaster, object oTarget, int nCasterLevel, int nEvent)
|
||||
{
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int nPenetr = nCasterLevel + SPGetPenetr();
|
||||
int nDie = min(nCasterLevel, 5);
|
||||
int nDie = PRCMin(nCasterLevel, 5);
|
||||
object oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oTarget);
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_BIGBYS_BIGBLUE_HAND2);
|
||||
|
||||
|
@@ -55,12 +55,12 @@ void main()
|
||||
//SR
|
||||
if(!PRCDoResistSpell(oPC, oTarget, nCasterLvl + SPGetPenetr()) && PRCGetIsAliveCreature(oTarget))
|
||||
{
|
||||
int nDam = d4(min(nCasterLvl, 10));
|
||||
int nDam = d4(PRCMin(nCasterLvl, 10));
|
||||
|
||||
//eval metamagic
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 4 * (min(nCasterLvl, 10));
|
||||
nDam = 4 * (PRCMin(nCasterLvl, 10));
|
||||
}
|
||||
|
||||
if(nMetaMagic & METAMAGIC_EMPOWER)
|
||||
@@ -73,7 +73,7 @@ void main()
|
||||
{
|
||||
nDam = nDam/2;
|
||||
}
|
||||
nDam += SpellDamagePerDice(oPC, min(nCasterLvl, 10));
|
||||
nDam += SpellDamagePerDice(oPC, PRCMin(nCasterLvl, 10));
|
||||
effect eVis = EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_GREASE);
|
||||
|
||||
//Apply damage & visual
|
||||
|
@@ -62,11 +62,11 @@ void main()
|
||||
SPApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectBlindness(), oTarget);
|
||||
}
|
||||
|
||||
int nDam = d6(min(nCasterLvl, 20));
|
||||
int nDam = d6(PRCMin(nCasterLvl, 20));
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 6 *(min(nCasterLvl, 20));
|
||||
nDam = 6 *(PRCMin(nCasterLvl, 20));
|
||||
}
|
||||
|
||||
if(nMetaMagic & METAMAGIC_EMPOWER)
|
||||
@@ -78,7 +78,7 @@ void main()
|
||||
{
|
||||
nDam = nDam/2;
|
||||
}
|
||||
nDam += SpellDamagePerDice(oPC, min(nCasterLvl, 20));
|
||||
nDam += SpellDamagePerDice(oPC, PRCMin(nCasterLvl, 20));
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, PRCEffectDamage(oTarget, nDam, DAMAGE_TYPE_DIVINE), oTarget);
|
||||
}
|
||||
}
|
||||
|
@@ -80,9 +80,9 @@ int DoSpell(object oCaster, object oTarget, int nCasterLevel, int nEvent)
|
||||
fDur += fDur;
|
||||
}
|
||||
|
||||
int nDamInt = min(nDam, (GetAbilityScore(oTarget, ABILITY_INTELLIGENCE) - 1));
|
||||
int nDamWis = min(nDam, (GetAbilityScore(oTarget, ABILITY_WISDOM) - 1));
|
||||
int nDamCha = min(nDam, (GetAbilityScore(oTarget, ABILITY_CHARISMA) - 1));
|
||||
int nDamInt = PRCMin(nDam, (GetAbilityScore(oTarget, ABILITY_INTELLIGENCE) - 1));
|
||||
int nDamWis = PRCMin(nDam, (GetAbilityScore(oTarget, ABILITY_WISDOM) - 1));
|
||||
int nDamCha = PRCMin(nDam, (GetAbilityScore(oTarget, ABILITY_CHARISMA) - 1));
|
||||
|
||||
ApplyAbilityDamage(oTarget, ABILITY_INTELLIGENCE, nDamInt, DURATION_TYPE_TEMPORARY, TRUE, fDur, TRUE, oCaster);
|
||||
ApplyAbilityDamage(oTarget, ABILITY_WISDOM, nDamWis, DURATION_TYPE_TEMPORARY, TRUE, fDur, TRUE, oCaster);
|
||||
|
@@ -37,7 +37,7 @@ int DoSpell(object oCaster, object oTarget, int nCasterLevel, int nEvent)
|
||||
{
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int nPenetr = nCasterLevel + SPGetPenetr();
|
||||
int nDie = min(nCasterLevel, 5);
|
||||
int nDie = PRCMin(nCasterLevel, 5);
|
||||
object oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oTarget);
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_BIGBYS_BIGBLUE_HAND2);
|
||||
|
||||
|
@@ -82,7 +82,7 @@ void HiImABomb(object oTarget, int nCounter, int nHP, int nCasterLvl, int nMetaM
|
||||
// eSplode = SupernaturalEffect(eSplode);
|
||||
|
||||
location lLoc = GetLocation(oTarget);
|
||||
int nDice = min((nCasterLvl/2), 10);
|
||||
int nDice = PRCMin((nCasterLvl/2), 10);
|
||||
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_BLINDDEAF), oTarget);
|
||||
|
||||
|
@@ -127,9 +127,9 @@ int DoSpell(object oCaster, object oTarget, int nCasterLevel)
|
||||
int nRegen, nDur;
|
||||
switch(nSpellID)
|
||||
{
|
||||
case SPELL_LESSER_VIGOR: nRegen = 1; nDur = min(15, 10 + nCasterLevel); break;
|
||||
case SPELL_VIGOR: nRegen = 2; nDur = min(25, 10 + nCasterLevel); break;
|
||||
case SPELL_MONSTROUS_REGENERATION: nRegen = 4; nDur = min(35, 10 + nCasterLevel); break;
|
||||
case SPELL_LESSER_VIGOR: nRegen = 1; nDur = PRCMin(15, 10 + nCasterLevel); break;
|
||||
case SPELL_VIGOR: nRegen = 2; nDur = PRCMin(25, 10 + nCasterLevel); break;
|
||||
case SPELL_MONSTROUS_REGENERATION: nRegen = 4; nDur = PRCMin(35, 10 + nCasterLevel); break;
|
||||
}
|
||||
|
||||
if(PRCGetMetaMagicFeat() & METAMAGIC_EXTEND)
|
||||
|
@@ -82,8 +82,8 @@ void main()
|
||||
|
||||
switch(nSpellID)
|
||||
{
|
||||
case SPELL_MASS_LESSER_VIGOR: nRegen = 1; nDur = min(25, 10 + nCasterLevel); break;
|
||||
case SPELL_VIGOROUS_CIRCLE: nRegen = 3; nDur = min(40, 10 + nCasterLevel); break;
|
||||
case SPELL_MASS_LESSER_VIGOR: nRegen = 1; nDur = PRCMin(25, 10 + nCasterLevel); break;
|
||||
case SPELL_VIGOROUS_CIRCLE: nRegen = 3; nDur = PRCMin(40, 10 + nCasterLevel); break;
|
||||
}
|
||||
|
||||
if(PRCGetMetaMagicFeat() & METAMAGIC_EXTEND)
|
||||
|
@@ -47,7 +47,7 @@ void main()
|
||||
location lLoc = PRCGetSpellTargetLocation();
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int nDice = min(nCasterLvl, 15);
|
||||
int nDice = PRCMin(nCasterLvl, 15);
|
||||
int nAlign;
|
||||
int nDam;
|
||||
int nDC;
|
||||
|
@@ -44,7 +44,7 @@ void main()
|
||||
float fDuration = TurnsToSeconds(1); // * Duration 1 turn
|
||||
if(nMetaMagic & METAMAGIC_EXTEND)
|
||||
fDuration *= 2;
|
||||
int nScale = min(5, max(1, CasterLvl / 3));
|
||||
int nScale = PRCMin(5, PRCMax(1, CasterLvl / 3));
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_HEAD_HOLY);
|
||||
|
||||
|
@@ -10,15 +10,15 @@ void main()
|
||||
|
||||
switch(nSpell)
|
||||
{
|
||||
case SPELL_LESSER_DISPEL : nTest = d20(1) + min(5, nVsLevel); break;
|
||||
case SPELL_DISPEL_MAGIC : nTest = d20(1) + min(10, nVsLevel); break;
|
||||
case SPELL_DISPELLING_TOUCH : nTest = d20(1) + min(10, nVsLevel); break;
|
||||
case SPELL_SLASHING_DISPEL : nTest = d20(1) + min(10, nVsLevel); break;
|
||||
case POWER_DISPELPSIONICS : nTest = d20(1) + min(15, GetManifesterLevel(GetLastSpellCaster())); break;
|
||||
case SPELL_GREATER_DISPELLING : nTest = d20(1) + min(20, nVsLevel); break;
|
||||
case SPELL_GREAT_WALL_OF_DISPEL : nTest = d20(1) + min(20, nVsLevel); break;
|
||||
case SPELL_MORDENKAINENS_DISJUNCTION: nTest = d20(1) + min(40, nVsLevel); break;
|
||||
case 4061 : nTest = d20(1) + min(40, nVsLevel); break;//Superb Dispelling
|
||||
case SPELL_LESSER_DISPEL : nTest = d20(1) + PRCMin(5, nVsLevel); break;
|
||||
case SPELL_DISPEL_MAGIC : nTest = d20(1) + PRCMin(10, nVsLevel); break;
|
||||
case SPELL_DISPELLING_TOUCH : nTest = d20(1) + PRCMin(10, nVsLevel); break;
|
||||
case SPELL_SLASHING_DISPEL : nTest = d20(1) + PRCMin(10, nVsLevel); break;
|
||||
case POWER_DISPELPSIONICS : nTest = d20(1) + PRCMin(15, GetManifesterLevel(GetLastSpellCaster())); break;
|
||||
case SPELL_GREATER_DISPELLING : nTest = d20(1) + PRCMin(20, nVsLevel); break;
|
||||
case SPELL_GREAT_WALL_OF_DISPEL : nTest = d20(1) + PRCMin(20, nVsLevel); break;
|
||||
case SPELL_MORDENKAINENS_DISJUNCTION: nTest = d20(1) + PRCMin(40, nVsLevel); break;
|
||||
case 4061 : nTest = d20(1) + PRCMin(40, nVsLevel); break;//Superb Dispelling
|
||||
default : nTest = 0; break;
|
||||
}
|
||||
if (nTest >= 11 + nMyLevel)
|
||||
|
@@ -46,7 +46,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION);
|
||||
//Declare major variables
|
||||
effect eVis = EffectVisualEffect(448);
|
||||
int nDuration = PRCGetCasterLevel(OBJECT_SELF);
|
||||
int nDamage = min(nDuration * 2, 30);
|
||||
int nDamage = PRCMin(nDuration * 2, 30);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
object oTarget = OBJECT_SELF;
|
||||
effect eShield = EffectDamageShield(nDamage, 0, ChangedElementalDamage(OBJECT_SELF, DAMAGE_TYPE_ACID));
|
||||
|
@@ -75,21 +75,21 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_ABJURATION);
|
||||
|
||||
switch (nSpellID)
|
||||
{
|
||||
case SPELL_GLYPH_OF_WARDING_ACID: nDamageType = DAMAGE_TYPE_ACID; nSaveType = SAVING_THROW_TYPE_ACID; nDice = min((nCasterLevel /2), 5); nVfx = VFX_FNF_EXPLOSION_ACID; break;
|
||||
case SPELL_GLYPH_OF_WARDING_COLD: nDamageType = DAMAGE_TYPE_COLD; nSaveType = SAVING_THROW_TYPE_COLD; nDice = min((nCasterLevel /2), 5); nVfx = VFX_FNF_EXPLOSION_COLD; break;
|
||||
case SPELL_GLYPH_OF_WARDING_ELECTRICITY: nDamageType = DAMAGE_TYPE_ELECTRICAL; nSaveType = SAVING_THROW_TYPE_ELECTRICITY; nDice = min((nCasterLevel /2), 5); nVfx = VFX_FNF_ELECTRIC_EXPLOSION; break;
|
||||
case SPELL_GLYPH_OF_WARDING_FIRE: nDamageType = DAMAGE_TYPE_FIRE; nSaveType = SAVING_THROW_TYPE_FIRE; nDice = min((nCasterLevel /2), 5); nVfx = VFX_FNF_FIREBALL; break;
|
||||
case SPELL_GLYPH_OF_WARDING_SONIC: nDamageType = DAMAGE_TYPE_SONIC; nSaveType = SAVING_THROW_TYPE_SONIC; nDice = min((nCasterLevel /2), 5); nVfx = VFX_FNF_SOUND_BURST; break;
|
||||
case SPELL_GREATER_GLYPH_OF_WARDING_ACID: nDamageType = DAMAGE_TYPE_ACID; nSaveType = SAVING_THROW_TYPE_ACID; nDice = min((nCasterLevel /2), 10); nVfx = VFX_FNF_EXPLOSION_ACID; break;
|
||||
case SPELL_GREATER_GLYPH_OF_WARDING_COLD: nDamageType = DAMAGE_TYPE_COLD; nSaveType = SAVING_THROW_TYPE_COLD; nDice = min((nCasterLevel /2), 10); nVfx = VFX_FNF_EXPLOSION_COLD; break;
|
||||
case SPELL_GREATER_GLYPH_OF_WARDING_ELECTRICITY: nDamageType = DAMAGE_TYPE_ELECTRICAL; nSaveType = SAVING_THROW_TYPE_ELECTRICITY; nDice = min((nCasterLevel /2), 10); nVfx = VFX_FNF_ELECTRIC_EXPLOSION; break;
|
||||
case SPELL_GREATER_GLYPH_OF_WARDING_FIRE: nDamageType = DAMAGE_TYPE_FIRE; nSaveType = SAVING_THROW_TYPE_FIRE; nDice = min((nCasterLevel /2), 10); nVfx = VFX_FNF_FIREBALL; break;
|
||||
case SPELL_GREATER_GLYPH_OF_WARDING_SONIC: nDamageType = DAMAGE_TYPE_SONIC; nSaveType = SAVING_THROW_TYPE_SONIC; nDice = min((nCasterLevel /2), 10); nVfx = VFX_FNF_SOUND_BURST; break;
|
||||
case SPELL_ELDER_GLYPH_OF_WARDING_ACID: nDamageType = DAMAGE_TYPE_ACID; nSaveType = SAVING_THROW_TYPE_ACID; nDice = min(nCasterLevel, 30); nVfx = VFX_FNF_EXPLOSION_ACID; break;
|
||||
case SPELL_ELDER_GLYPH_OF_WARDING_COLD: nDamageType = DAMAGE_TYPE_COLD; nSaveType = SAVING_THROW_TYPE_COLD; nDice = min(nCasterLevel, 30); nVfx = VFX_FNF_EXPLOSION_COLD; break;
|
||||
case SPELL_ELDER_GLYPH_OF_WARDING_ELECTRICITY: nDamageType = DAMAGE_TYPE_ELECTRICAL; nSaveType = SAVING_THROW_TYPE_ELECTRICITY; nDice = min(nCasterLevel, 30); nVfx = VFX_FNF_ELECTRIC_EXPLOSION; break;
|
||||
case SPELL_ELDER_GLYPH_OF_WARDING_FIRE: nDamageType = DAMAGE_TYPE_FIRE; nSaveType = SAVING_THROW_TYPE_FIRE; nDice = min(nCasterLevel, 30); nVfx = VFX_FNF_FIREBALL; break;
|
||||
case SPELL_ELDER_GLYPH_OF_WARDING_SONIC: nDamageType = DAMAGE_TYPE_SONIC; nSaveType = SAVING_THROW_TYPE_SONIC; nDice = min(nCasterLevel, 30); nVfx = VFX_FNF_SOUND_BURST; break;
|
||||
case SPELL_GLYPH_OF_WARDING_ACID: nDamageType = DAMAGE_TYPE_ACID; nSaveType = SAVING_THROW_TYPE_ACID; nDice = PRCMin((nCasterLevel /2), 5); nVfx = VFX_FNF_EXPLOSION_ACID; break;
|
||||
case SPELL_GLYPH_OF_WARDING_COLD: nDamageType = DAMAGE_TYPE_COLD; nSaveType = SAVING_THROW_TYPE_COLD; nDice = PRCMin((nCasterLevel /2), 5); nVfx = VFX_FNF_EXPLOSION_COLD; break;
|
||||
case SPELL_GLYPH_OF_WARDING_ELECTRICITY: nDamageType = DAMAGE_TYPE_ELECTRICAL; nSaveType = SAVING_THROW_TYPE_ELECTRICITY; nDice = PRCMin((nCasterLevel /2), 5); nVfx = VFX_FNF_ELECTRIC_EXPLOSION; break;
|
||||
case SPELL_GLYPH_OF_WARDING_FIRE: nDamageType = DAMAGE_TYPE_FIRE; nSaveType = SAVING_THROW_TYPE_FIRE; nDice = PRCMin((nCasterLevel /2), 5); nVfx = VFX_FNF_FIREBALL; break;
|
||||
case SPELL_GLYPH_OF_WARDING_SONIC: nDamageType = DAMAGE_TYPE_SONIC; nSaveType = SAVING_THROW_TYPE_SONIC; nDice = PRCMin((nCasterLevel /2), 5); nVfx = VFX_FNF_SOUND_BURST; break;
|
||||
case SPELL_GREATER_GLYPH_OF_WARDING_ACID: nDamageType = DAMAGE_TYPE_ACID; nSaveType = SAVING_THROW_TYPE_ACID; nDice = PRCMin((nCasterLevel /2), 10); nVfx = VFX_FNF_EXPLOSION_ACID; break;
|
||||
case SPELL_GREATER_GLYPH_OF_WARDING_COLD: nDamageType = DAMAGE_TYPE_COLD; nSaveType = SAVING_THROW_TYPE_COLD; nDice = PRCMin((nCasterLevel /2), 10); nVfx = VFX_FNF_EXPLOSION_COLD; break;
|
||||
case SPELL_GREATER_GLYPH_OF_WARDING_ELECTRICITY: nDamageType = DAMAGE_TYPE_ELECTRICAL; nSaveType = SAVING_THROW_TYPE_ELECTRICITY; nDice = PRCMin((nCasterLevel /2), 10); nVfx = VFX_FNF_ELECTRIC_EXPLOSION; break;
|
||||
case SPELL_GREATER_GLYPH_OF_WARDING_FIRE: nDamageType = DAMAGE_TYPE_FIRE; nSaveType = SAVING_THROW_TYPE_FIRE; nDice = PRCMin((nCasterLevel /2), 10); nVfx = VFX_FNF_FIREBALL; break;
|
||||
case SPELL_GREATER_GLYPH_OF_WARDING_SONIC: nDamageType = DAMAGE_TYPE_SONIC; nSaveType = SAVING_THROW_TYPE_SONIC; nDice = PRCMin((nCasterLevel /2), 10); nVfx = VFX_FNF_SOUND_BURST; break;
|
||||
case SPELL_ELDER_GLYPH_OF_WARDING_ACID: nDamageType = DAMAGE_TYPE_ACID; nSaveType = SAVING_THROW_TYPE_ACID; nDice = PRCMin(nCasterLevel, 30); nVfx = VFX_FNF_EXPLOSION_ACID; break;
|
||||
case SPELL_ELDER_GLYPH_OF_WARDING_COLD: nDamageType = DAMAGE_TYPE_COLD; nSaveType = SAVING_THROW_TYPE_COLD; nDice = PRCMin(nCasterLevel, 30); nVfx = VFX_FNF_EXPLOSION_COLD; break;
|
||||
case SPELL_ELDER_GLYPH_OF_WARDING_ELECTRICITY: nDamageType = DAMAGE_TYPE_ELECTRICAL; nSaveType = SAVING_THROW_TYPE_ELECTRICITY; nDice = PRCMin(nCasterLevel, 30); nVfx = VFX_FNF_ELECTRIC_EXPLOSION; break;
|
||||
case SPELL_ELDER_GLYPH_OF_WARDING_FIRE: nDamageType = DAMAGE_TYPE_FIRE; nSaveType = SAVING_THROW_TYPE_FIRE; nDice = PRCMin(nCasterLevel, 30); nVfx = VFX_FNF_FIREBALL; break;
|
||||
case SPELL_ELDER_GLYPH_OF_WARDING_SONIC: nDamageType = DAMAGE_TYPE_SONIC; nSaveType = SAVING_THROW_TYPE_SONIC; nDice = PRCMin(nCasterLevel, 30); nVfx = VFX_FNF_SOUND_BURST; break;
|
||||
}
|
||||
|
||||
nDice = nDice < 1 ? 1 : nDice;
|
||||
|
@@ -29,7 +29,7 @@ void main()
|
||||
location lTarget = PRCGetSpellTargetLocation();
|
||||
int nCasterLvl = PRCGetCasterLevel(oCaster);
|
||||
int nPenetr = nCasterLvl + SPGetPenetr();
|
||||
int nDice = min(nCasterLvl, 5);
|
||||
int nDice = PRCMin(nCasterLvl, 5);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int EleDmg = ChangedElementalDamage(oCaster, DAMAGE_TYPE_COLD);
|
||||
int nSaveType = ChangedSaveType(EleDmg);
|
||||
|
@@ -149,7 +149,7 @@ void main()
|
||||
|
||||
//Sets the save DC for Dragon Breath attacks. This is a reflex save to halve the damage.
|
||||
//Save is 10+CON+1/2 DD level. Gains +1 at level 13, and every 3 levels after.
|
||||
int nSaveDCBonus = ((nLevel)/2) + max((nLevel - 10) / 3, 0);
|
||||
int nSaveDCBonus = ((nLevel)/2) + PRCMax((nLevel - 10) / 3, 0);
|
||||
|
||||
//Sets damage levels for Dragon Breath attacks. 2d10 at level 3,
|
||||
//4d10 at level 7, and then an additional 2d10 every 3 levels (10, 13, 16, ect)
|
||||
|
Reference in New Issue
Block a user