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:
Jaysyn904
2025-01-29 22:46:38 -05:00
parent 370b29e917
commit e641b42f84
209 changed files with 1893 additions and 926 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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