forked from Jaysyn/PRC8
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:
@@ -123,7 +123,7 @@ void EurynomePoisonBloodDelay(object oBinder, object oTarget, int nDC)
|
||||
{
|
||||
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_POISON))
|
||||
{
|
||||
int nDice = min(5, GetBinderLevel(oBinder, VESTIGE_EURYNOME)/3);
|
||||
int nDice = PRCMin(5, GetBinderLevel(oBinder, VESTIGE_EURYNOME)/3);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_ACID_S), oTarget);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(d6(nDice), DAMAGE_TYPE_ACID), oTarget);
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ void main()
|
||||
{
|
||||
object oBinder = OBJECT_SELF;
|
||||
int nKSSLvl = GetLevelByClass(CLASS_TYPE_KNIGHT_SACRED_SEAL, oBinder);
|
||||
int nCHAmod = max(1, GetAbilityModifier(ABILITY_CHARISMA, oBinder));
|
||||
int nCHAmod = PRCMax(1, GetAbilityModifier(ABILITY_CHARISMA, oBinder));
|
||||
int nSpellID = PRCGetSpellId();
|
||||
|
||||
if(GetIsPatronVestigeBound(oBinder))
|
||||
|
||||
@@ -29,7 +29,7 @@ void main()
|
||||
if(!BindAbilCooldown(oBinder, GetSpellId(), VESTIGE_BUER)) return;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nBinderLevel = GetBinderLevel(oBinder, VESTIGE_BUER);
|
||||
int nHeal = d8() + min(nBinderLevel, 10);
|
||||
int nHeal = d8() + PRCMin(nBinderLevel, 10);
|
||||
|
||||
if(PRCGetIsAliveCreature(oTarget))
|
||||
{
|
||||
|
||||
@@ -25,7 +25,7 @@ void main()
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int CasterLvl = GetInvokerLevel(oCaster, GetInvokingClass());
|
||||
int nSkillBonus = GetHasFeat(FEAT_MORPHEME_SAVANT) ? max(GetAbilityModifier(ABILITY_CHARISMA, oCaster) * 2, 6) : 6;
|
||||
int nSkillBonus = GetHasFeat(FEAT_MORPHEME_SAVANT) ? PRCMax(GetAbilityModifier(ABILITY_CHARISMA, oCaster) * 2, 6) : 6;
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_IMPROVE_ABILITY_SCORE);
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
||||
effect eSkill = EffectSkillIncrease(SKILL_BLUFF, nSkillBonus);
|
||||
|
||||
@@ -40,14 +40,14 @@ void main()
|
||||
}
|
||||
if(nSpell == INVOKE_DAMAGE_REDUCTION)
|
||||
{
|
||||
int nDur = max(3 + nCha, 1);
|
||||
int nRedAmt = ((nWarlockLvl + 1) / 4) + (max(nDiscLvl / 2, 1));
|
||||
int nDur = PRCMax(3 + nCha, 1);
|
||||
int nRedAmt = ((nWarlockLvl + 1) / 4) + (PRCMax(nDiscLvl / 2, 1));
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectDamageReduction(nRedAmt, DAMAGE_POWER_PLUS_THREE), oPC, RoundsToSeconds(nDur));
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_SUPER_HEROISM), oPC);
|
||||
}
|
||||
if(nSpell == INVOKE_FIENDISH_RESISTANCE)
|
||||
{
|
||||
int nDur = max(3 + nCha, 1);
|
||||
int nDur = PRCMax(3 + nCha, 1);
|
||||
if(GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD)
|
||||
{
|
||||
FloatingTextStringOnCreature("Your deity must be evil!", oPC, FALSE);
|
||||
@@ -63,7 +63,7 @@ void main()
|
||||
}
|
||||
if(nSpell == INVOKE_PROTECTIVE_AURA)
|
||||
{
|
||||
int nDur = max(3 + nCha, 1);
|
||||
int nDur = PRCMax(3 + nCha, 1);
|
||||
if(GetAlignmentGoodEvil(oPC) == ALIGNMENT_EVIL)
|
||||
{
|
||||
FloatingTextStringOnCreature("Your deity must be good!", oPC, FALSE);
|
||||
@@ -79,15 +79,15 @@ void main()
|
||||
}
|
||||
if(nSpell == INVOKE_STRENGTH_OF_WILL)
|
||||
{
|
||||
int nDur = max(3 + nCha, 1);
|
||||
int nBonus = max(nDiscLvl / 2, 1);
|
||||
int nDur = PRCMax(3 + nCha, 1);
|
||||
int nBonus = PRCMax(nDiscLvl / 2, 1);
|
||||
|
||||
eGift = EffectLinkEffects(EffectVisualEffect(VFX_DUR_MIND_AFFECTING_POSITIVE), EffectSavingThrowIncrease(SAVING_THROW_WILL, nBonus, SAVING_THROW_TYPE_MIND_SPELLS));
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eGift, oPC, RoundsToSeconds(nDur));
|
||||
}
|
||||
if(nSpell == INVOKE_WILD_FRENZY)
|
||||
{
|
||||
int nDur = max(3 + nCha, 1);
|
||||
int nDur = PRCMax(3 + nCha, 1);
|
||||
int nTempHP = 2 * nDiscLvl;
|
||||
if(GetAlignmentLawChaos(oPC) == ALIGNMENT_LAWFUL)
|
||||
{
|
||||
|
||||
@@ -41,8 +41,8 @@ void main()
|
||||
|
||||
//calculate DC for essence effects
|
||||
int nInvLevel = GetInvokerLevel(oPC, CLASS_TYPE_WARLOCK);
|
||||
int nBlastLvl = min((nInvLevel + 1) / 2, 9);
|
||||
nBlastLvl = max(max(nEssenceData & 0xF, nEssenceData2 & 0xF), nBlastLvl);
|
||||
int nBlastLvl = PRCMin((nInvLevel + 1) / 2, 9);
|
||||
nBlastLvl = PRCMax(PRCMax(nEssenceData & 0xF, nEssenceData2 & 0xF), nBlastLvl);
|
||||
int nDC = 10 + nBlastLvl + GetAbilityModifier(ABILITY_CHARISMA);
|
||||
if(GetHasFeat(FEAT_LORD_OF_ALL_ESSENCES)) nDC += 2;
|
||||
|
||||
|
||||
@@ -36,8 +36,8 @@ void main()
|
||||
|
||||
//calculate DC for essence effects
|
||||
int nInvLevel = GetInvokerLevel(oPC, CLASS_TYPE_WARLOCK);
|
||||
int nBlastLvl = min((nInvLevel + 1) / 2, 9);
|
||||
nBlastLvl = max(4, max(max(nEssenceData & 0xF, nEssenceData2 & 0xF), nBlastLvl));
|
||||
int nBlastLvl = PRCMin((nInvLevel + 1) / 2, 9);
|
||||
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;
|
||||
|
||||
|
||||
@@ -71,8 +71,8 @@ void main()
|
||||
|
||||
//calculate DC for essence effects
|
||||
int nInvLevel = GetInvokerLevel(oPC, CLASS_TYPE_WARLOCK);
|
||||
int nBlastLvl = min((nInvLevel + 1) / 2, 9);
|
||||
nBlastLvl = max(nShapeLevel, max(max(nEssenceData & 0xF, nEssenceData2 & 0xF), nBlastLvl));
|
||||
int nBlastLvl = PRCMin((nInvLevel + 1) / 2, 9);
|
||||
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;
|
||||
int nDmgDice = GetBlastDamageDices(oPC, nInvLevel);
|
||||
|
||||
@@ -32,8 +32,8 @@ void main()
|
||||
|
||||
//calculate DC for essence effects
|
||||
int nInvLevel = GetInvokerLevel(oPC, CLASS_TYPE_WARLOCK);
|
||||
int nBlastLvl = min((nInvLevel + 1) / 2, 9);
|
||||
nBlastLvl = max(max(nEssenceData & 0xF, nEssenceData2 & 0xF), nBlastLvl);
|
||||
int nBlastLvl = PRCMin((nInvLevel + 1) / 2, 9);
|
||||
nBlastLvl = PRCMax(PRCMax(nEssenceData & 0xF, nEssenceData2 & 0xF), nBlastLvl);
|
||||
int nDC = 10 + nBlastLvl + GetAbilityModifier(ABILITY_CHARISMA);
|
||||
if(GetHasFeat(FEAT_LORD_OF_ALL_ESSENCES)) nDC += 2;
|
||||
|
||||
|
||||
@@ -36,8 +36,8 @@ void main()
|
||||
|
||||
//calculate DC for essence effects
|
||||
int nInvLevel = GetInvokerLevel(oPC, CLASS_TYPE_WARLOCK);
|
||||
int nBlastLvl = min((nInvLevel + 1) / 2, 9);
|
||||
nBlastLvl = max(max(nEssenceData & 0xF, nEssenceData2 & 0xF), nBlastLvl);
|
||||
int nBlastLvl = PRCMin((nInvLevel + 1) / 2, 9);
|
||||
nBlastLvl = PRCMax(PRCMax(nEssenceData & 0xF, nEssenceData2 & 0xF), nBlastLvl);
|
||||
int nDC = 10 + nBlastLvl + GetAbilityModifier(ABILITY_CHARISMA);
|
||||
if(GetHasFeat(FEAT_LORD_OF_ALL_ESSENCES)) nDC += 2;
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ void main()
|
||||
{
|
||||
int nClass = GetLocalInt(oPC, "SpellType");
|
||||
int nSpellbookMinLevel = 0;
|
||||
int nSpellbookMaxLevel = min((GetInvokerLevel(oPC, CLASS_TYPE_WARLOCK) + 1) / 2, 9);
|
||||
int nSpellbookMaxLevel = PRCMin((GetInvokerLevel(oPC, CLASS_TYPE_WARLOCK) + 1) / 2, 9);
|
||||
if(DEBUG) DoDebug("inv_imbueitemcon: Spellbook max level: " + IntToString(nSpellbookMaxLevel));
|
||||
string sFile = GetFileForClass(nClass);
|
||||
int i;
|
||||
|
||||
@@ -30,7 +30,7 @@ void main()
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M);
|
||||
|
||||
//cap the extra damage
|
||||
nCasterLvl = min(nCasterLvl, 20);
|
||||
nCasterLvl = PRCMin(nCasterLvl, 20);
|
||||
|
||||
object oTarget = GetEnteringObject();
|
||||
if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, oCaster))
|
||||
|
||||
@@ -42,7 +42,7 @@ void main()
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M);
|
||||
|
||||
//cap the extra damage
|
||||
nCasterLvl = min(nCasterLvl, 20);
|
||||
nCasterLvl = PRCMin(nCasterLvl, 20);
|
||||
|
||||
object oTarget = GetFirstInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
|
||||
//Declare the spell shape, size and the location.
|
||||
|
||||
@@ -63,7 +63,7 @@ void main()
|
||||
|
||||
if(GetHasFeat(FEAT_PARAGON_VISIONARY))
|
||||
{
|
||||
int nSkillBonus = max(2 * GetAbilityModifier(ABILITY_WISDOM, OBJECT_SELF), 6);
|
||||
int nSkillBonus = PRCMax(2 * GetAbilityModifier(ABILITY_WISDOM, OBJECT_SELF), 6);
|
||||
effect eLink = EffectLinkEffects(EffectUltravision(), EffectSeeInvisible());
|
||||
eLink = EffectLinkEffects(eLink, EffectSkillIncrease(SKILL_SPOT, nSkillBonus));
|
||||
eLink = EffectLinkEffects(eLink, EffectSkillIncrease(SKILL_LISTEN, nSkillBonus));
|
||||
|
||||
@@ -392,7 +392,7 @@ void main()
|
||||
SetHeader("How much do you want to invest into "+GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nMeld)))+"?");
|
||||
int i;
|
||||
|
||||
for(i = 1; i <= min(GetTotalEssentia(oMeldshaper)-GetTotalEssentiaInvested(oMeldshaper), GetMaxEssentiaCapacity(oMeldshaper, nClass, nMeld)); i++)
|
||||
for(i = 1; i <= PRCMin(GetTotalEssentia(oMeldshaper)-GetTotalEssentiaInvested(oMeldshaper), GetMaxEssentiaCapacity(oMeldshaper, nClass, nMeld)); i++)
|
||||
{
|
||||
AddChoice(IntToString(i), i, oMeldshaper);
|
||||
}
|
||||
@@ -409,7 +409,7 @@ void main()
|
||||
int nMeld = GetLocalInt(oMeldshaper, "nMeld");
|
||||
SetHeader("How much do you want to invest into "+GetStringByStrRef(StringToInt(Get2DACache("feat", "FEAT", nMeld)))+"?");
|
||||
int i;
|
||||
for(i = 1; i <= min(GetTotalEssentia(oMeldshaper)-GetTotalEssentiaInvested(oMeldshaper), GetMaxEssentiaCapacityFeat(oMeldshaper)); i++)
|
||||
for(i = 1; i <= PRCMin(GetTotalEssentia(oMeldshaper)-GetTotalEssentiaInvested(oMeldshaper), GetMaxEssentiaCapacityFeat(oMeldshaper)); i++)
|
||||
{
|
||||
AddChoice(IntToString(i), i, oMeldshaper);
|
||||
}
|
||||
@@ -420,7 +420,7 @@ void main()
|
||||
// Build the confirmation query
|
||||
int nMeld = GetLocalInt(oMeldshaper, "nMeld");
|
||||
SetHeader("How much do you want to invest into "+GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nMeld)))+"?");
|
||||
int nMax = min(GetTotalEssentia(oMeldshaper)-GetTotalEssentiaInvested(oMeldshaper), GetMaxEssentiaCapacityFeat(oMeldshaper));
|
||||
int nMax = PRCMin(GetTotalEssentia(oMeldshaper)-GetTotalEssentiaInvested(oMeldshaper), GetMaxEssentiaCapacityFeat(oMeldshaper));
|
||||
if (nMeld == MELD_SPINE_ENHANCEMENT) nMax = GetLevelByClass(CLASS_TYPE_SPINEMELD_WARRIOR, oMeldshaper)/2;
|
||||
int i;
|
||||
for(i = 1; i <= nMax; i++)
|
||||
|
||||
@@ -11,5 +11,5 @@ void main()
|
||||
{
|
||||
object oMeldshaper = PRCGetSpellTargetObject();
|
||||
|
||||
SetIncorporeal(oMeldshaper, RoundsToSeconds(max(GetAbilityModifier(ABILITY_CHARISMA, oMeldshaper),1)), 1);
|
||||
SetIncorporeal(oMeldshaper, RoundsToSeconds(PRCMax(GetAbilityModifier(ABILITY_CHARISMA, oMeldshaper),1)), 1);
|
||||
}
|
||||
@@ -189,7 +189,7 @@ void main()
|
||||
int nPower = GetLocalInt(oMeldshaper, "nPower");
|
||||
SetHeader("How much do you want to invest into "+GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nPower)))+"?");
|
||||
int i;
|
||||
int nMin = min(GetMaxEssentiaCapacityFeat(oMeldshaper), StringToInt(Get2DACache("spells", "Innate", nPower)));
|
||||
int nMin = PRCMin(GetMaxEssentiaCapacityFeat(oMeldshaper), StringToInt(Get2DACache("spells", "Innate", nPower)));
|
||||
for(i = 1; i <= nMin; i++)
|
||||
{
|
||||
AddChoice(IntToString(i), i, oMeldshaper);
|
||||
|
||||
@@ -29,7 +29,7 @@ void main()
|
||||
|
||||
if(myst.bCanMyst)
|
||||
{
|
||||
int nAC = min(4, 1 + myst.nShadowcasterLevel/6);
|
||||
int nAC = PRCMin(4, 1 + myst.nShadowcasterLevel/6);
|
||||
myst.eLink = SupernaturalEffect(EffectLinkEffects(EffectACIncrease(nAC, AC_DEFLECTION_BONUS), EffectVisualEffect(VFX_DUR_ENTROPIC_SHIELD)));
|
||||
|
||||
myst.fDur = 60.0 * myst.nShadowcasterLevel;
|
||||
|
||||
@@ -40,7 +40,7 @@ void main()
|
||||
// Check Spell Resistance
|
||||
if(!PRCDoResistSpell(oShadow, oTarget, myst.nPen) || myst.bIgnoreSR)
|
||||
{
|
||||
int nDam = MetashadowsDamage(myst, 6, 1, min(5, myst.nShadowcasterLevel/4));
|
||||
int nDam = MetashadowsDamage(myst, 6, 1, PRCMin(5, myst.nShadowcasterLevel/4));
|
||||
if (PRCMySavingThrow(SAVING_THROW_WILL, oTarget, GetShadowcasterDC(oShadow), SAVING_THROW_TYPE_MIND_SPELLS))
|
||||
nDam/2;
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ void main()
|
||||
|
||||
if(myst.bCanMyst)
|
||||
{
|
||||
int nAmount = min(120, myst.nShadowcasterLevel * 10);
|
||||
int nAmount = PRCMin(120, myst.nShadowcasterLevel * 10);
|
||||
myst.eLink = EffectLinkEffects(EffectDamageResistance(DAMAGE_TYPE_COLD, nAmount, nAmount), EffectVisualEffect(VFX_DUR_PROTECTION_ENERGY_COLD));
|
||||
myst.eLink = EffectLinkEffects(myst.eLink, EffectDamageIncrease(DAMAGE_BONUS_1d6, DAMAGE_TYPE_COLD));
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ void main()
|
||||
|
||||
if(myst.bCanMyst)
|
||||
{
|
||||
int nAmount = min(75, GetHitDice(oTarget) * 5);
|
||||
int nAmount = PRCMin(75, GetHitDice(oTarget) * 5);
|
||||
myst.eLink = EffectLinkEffects(EffectTemporaryHitpoints(nAmount), EffectVisualEffect(VFX_DUR_CHAOS_CLOAK));
|
||||
|
||||
myst.fDur = 600.0 * myst.nShadowcasterLevel;
|
||||
|
||||
@@ -24,7 +24,7 @@ void main()
|
||||
object oShadow = GetAreaOfEffectCreator();
|
||||
object oAoE = GetAreaOfEffectObject(GetLocalLocation(oShadow, "BlackFire_Loc"), "VFX_PER_CURTAIN_SHADOWS");
|
||||
struct mystery myst = GetLocalMystery(oShadow, MYST_HOLD_MYST+"3");
|
||||
int nDice = min(15, myst.nShadowcasterLevel);
|
||||
int nDice = PRCMin(15, myst.nShadowcasterLevel);
|
||||
|
||||
//Capture the first target object in the shape.
|
||||
object oTarget = GetEnteringObject();
|
||||
|
||||
@@ -31,7 +31,7 @@ void main()
|
||||
int nDamage;
|
||||
object oAoE = GetAreaOfEffectObject(GetLocalLocation(oShadow, "BlackFire_Loc"), "VFX_PER_CURTAIN_SHADOWS");
|
||||
struct mystery myst = GetLocalMystery(oShadow, MYST_HOLD_MYST+"3");
|
||||
int nDice = min(15, myst.nShadowcasterLevel);
|
||||
int nDice = PRCMin(15, myst.nShadowcasterLevel);
|
||||
|
||||
//Capture the first target object in the shape.
|
||||
object oTarget = GetFirstInPersistentObject(OBJECT_SELF, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
|
||||
|
||||
@@ -23,7 +23,7 @@ void main()
|
||||
|
||||
if (!GetLocalInt(oShadow, "FlickerMyst"))
|
||||
{
|
||||
int nLevel = max(GetShadowcasterLevel(oShadow), GetLocalInt(oShadow, "TenebrousFlicker"));
|
||||
int nLevel = PRCMax(GetShadowcasterLevel(oShadow), GetLocalInt(oShadow, "TenebrousFlicker"));
|
||||
DimensionDoor(oShadow, nLevel);
|
||||
SetLocalInt(oShadow, "FlickerMyst", TRUE);
|
||||
DelayCommand(5.5, DeleteLocalInt(oShadow, "FlickerMyst"));
|
||||
|
||||
@@ -30,7 +30,7 @@ void main()
|
||||
|
||||
if(myst.bCanMyst)
|
||||
{
|
||||
int nDie = min(myst.nShadowcasterLevel, 20);
|
||||
int nDie = PRCMin(myst.nShadowcasterLevel, 20);
|
||||
location lTargetLocation = PRCGetSpellTargetLocation();
|
||||
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_VAMPIRIC_DRAIN_PRC), lTargetLocation);
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ void main()
|
||||
|
||||
if(myst.bCanMyst)
|
||||
{
|
||||
int nDie = min(myst.nShadowcasterLevel, 10);
|
||||
int nDie = PRCMin(myst.nShadowcasterLevel, 10);
|
||||
|
||||
//Declare the spell shape, size and the location. Capture the first target object in the shape.
|
||||
object oTarget = MyFirstObjectInShape(SHAPE_SPELLCONE, FeetToMeters(30.0), lTargetLocation, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
|
||||
|
||||
@@ -30,7 +30,7 @@ void main()
|
||||
|
||||
if(myst.bCanMyst)
|
||||
{
|
||||
int nDie = min(myst.nShadowcasterLevel, 5);
|
||||
int nDie = PRCMin(myst.nShadowcasterLevel, 5);
|
||||
myst.fDur = RoundsToSeconds(myst.nShadowcasterLevel);
|
||||
if(myst.bExtend) myst.fDur *= 2;
|
||||
myst.nPen = ShadowSRPen(oShadow, myst.nShadowcasterLevel);
|
||||
|
||||
@@ -37,9 +37,9 @@ void main()
|
||||
//--------------------------------------------------------------------------
|
||||
// Dispel Magic is capped at caster level 10
|
||||
//--------------------------------------------------------------------------
|
||||
int nCasterLevel = min(myst.nShadowcasterLevel, 10);
|
||||
int nCasterLevel = PRCMin(myst.nShadowcasterLevel, 10);
|
||||
if (myst.nMystId == MYST_SHADOWS_FADE_GREATER)
|
||||
nCasterLevel = min(myst.nShadowcasterLevel, 20);
|
||||
nCasterLevel = PRCMin(myst.nShadowcasterLevel, 20);
|
||||
|
||||
if (GetIsObjectValid(oTarget))
|
||||
{
|
||||
|
||||
@@ -33,7 +33,7 @@ void main()
|
||||
|
||||
if(myst.bCanMyst)
|
||||
{
|
||||
int nDie = min(myst.nShadowcasterLevel, 20);
|
||||
int nDie = PRCMin(myst.nShadowcasterLevel, 20);
|
||||
myst.nPen = ShadowSRPen(oShadow, myst.nShadowcasterLevel);
|
||||
myst.nSaveDC = GetShadowcasterDC(oShadow);
|
||||
effect eCold = EffectVisualEffect(VFX_IMP_DIVINE_STRIKE_COLD);
|
||||
|
||||
@@ -62,7 +62,7 @@ void main()
|
||||
int nDam = d6();
|
||||
if (GetLocalInt(oShadow, "SharpShadMax")) nDam = 6;
|
||||
if (GetLocalInt(oShadow, "SharpShadEmp")) nDam += nDam/2;
|
||||
nDam += min(15, GetShadowcasterLevel(oShadow, CLASS_TYPE_SHADOWCASTER));
|
||||
nDam += PRCMin(15, GetShadowcasterLevel(oShadow, CLASS_TYPE_SHADOWCASTER));
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_MAGMAG), oTarget);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nDam, DAMAGE_TYPE_PIERCING), oTarget);
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ void main()
|
||||
if (oTarget == oPC) return; // No hitting yourself
|
||||
if (GetLocalInt(oPC, "CombatLoopProtection")) return; // Stop the damn loop
|
||||
|
||||
int nAbi = max(GetAbilityModifier(ABILITY_INTELLIGENCE, oPC), GetAbilityModifier(ABILITY_CHARISMA, oPC));
|
||||
int nAbi = PRCMax(GetAbilityModifier(ABILITY_INTELLIGENCE, oPC), GetAbilityModifier(ABILITY_CHARISMA, oPC));
|
||||
SetLocalInt(oPC, "BABOverride", GetShadowcasterLevel(oPC));
|
||||
DelayCommand(1.0, DeleteLocalInt(oPC, "BABOverride"));
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ void TOBAttack(object oTarget, object oInitiator, struct maneuver move)
|
||||
if(GetAlignmentGoodEvil(oInitiator) != GetAlignmentGoodEvil(oTarget)
|
||||
|| GetAlignmentLawChaos(oInitiator) != GetAlignmentLawChaos(oTarget))
|
||||
{
|
||||
int nHeal = d6() + min(move.nInitiatorLevel, 5);
|
||||
int nHeal = d6() + PRCMin(move.nInitiatorLevel, 5);
|
||||
object oHeal = GetCrusaderHealTarget(oInitiator, FeetToMeters(10.0));
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(nHeal), oHeal);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HEALING_L_LAW), oHeal);
|
||||
|
||||
@@ -39,7 +39,7 @@ void TOBAttack(object oTarget, object oInitiator, struct maneuver move)
|
||||
if(GetAlignmentGoodEvil(oInitiator) != GetAlignmentGoodEvil(oTarget)
|
||||
|| GetAlignmentLawChaos(oInitiator) != GetAlignmentLawChaos(oTarget))
|
||||
{
|
||||
int nHeal = d6(3) + min(move.nInitiatorLevel, 10);
|
||||
int nHeal = d6(3) + PRCMin(move.nInitiatorLevel, 10);
|
||||
object oHeal = GetCrusaderHealTarget(oInitiator, FeetToMeters(10.0));
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(nHeal), oHeal);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HEALING_L_LAW), oHeal);
|
||||
|
||||
@@ -46,7 +46,7 @@ void TOBAttack(object oTarget, object oInitiator, struct maneuver move)
|
||||
if(GetIsFriend(oTarget, oInitiator))
|
||||
{
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, PRCGetSpellId()));
|
||||
int nHeal = d6(3) + min(move.nInitiatorLevel, 50);
|
||||
int nHeal = d6(3) + PRCMin(move.nInitiatorLevel, 50);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(nHeal), oTarget);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HEALING_L_LAW), oTarget);
|
||||
}
|
||||
|
||||
@@ -203,7 +203,7 @@ void main()
|
||||
// Determine maximum maneuver level
|
||||
// Initiators get new maneuvers at the same levels as wizards
|
||||
// See ToB p39, table 3-1
|
||||
int nMaxLevel = min(9, (GetInitiatorLevel(oInitiator, nClass) + 1)/2);
|
||||
int nMaxLevel = PRCMin(9, (GetInitiatorLevel(oInitiator, nClass) + 1)/2);
|
||||
|
||||
// Set the tokens
|
||||
int i;
|
||||
|
||||
@@ -234,7 +234,7 @@ void main()
|
||||
// Determine maximum maneuver level
|
||||
// Initiators get new maneuvers at the same levels as wizards
|
||||
// See ToB p39, table 3-1
|
||||
int nMaxLevel = min(9, (GetInitiatorLevel(oInitiator, nClass) + 1)/2);
|
||||
int nMaxLevel = PRCMin(9, (GetInitiatorLevel(oInitiator, nClass) + 1)/2);
|
||||
|
||||
// Set the tokens
|
||||
int i;
|
||||
|
||||
@@ -76,7 +76,7 @@ void main()
|
||||
// Determine maximum maneuver level
|
||||
// Initiators get new maneuvers at the same levels as wizards
|
||||
// See ToB p39, table 3-1
|
||||
int nMaxLevel = min(9, (GetInitiatorLevel(oPC, nClass) + 1)/2);
|
||||
int nMaxLevel = PRCMin(9, (GetInitiatorLevel(oPC, nClass) + 1)/2);
|
||||
|
||||
// Set the tokens
|
||||
int i;
|
||||
|
||||
@@ -71,7 +71,7 @@ void main()
|
||||
oItem = GetSpellCastItem();
|
||||
if(GetBaseItemType(oItem) == BASE_ITEM_ARMOR)
|
||||
{
|
||||
int nCold = min(10, GetDamageDealtByType(DAMAGE_TYPE_COLD));
|
||||
int nCold = PRCMin(10, GetDamageDealtByType(DAMAGE_TYPE_COLD));
|
||||
if(nCold > 0)
|
||||
{
|
||||
effect eHeal = EffectHeal(nCold);
|
||||
|
||||
@@ -76,7 +76,7 @@ void main()
|
||||
else /* Effects of UTTER_ARCHERS_EYE_R would be here */
|
||||
{
|
||||
// Damage Resistance 10 piercing, max of 100 total
|
||||
utter.eLink = EffectLinkEffects(EffectDamageResistance(DAMAGE_TYPE_PIERCING, 10, min((10 * utter.nTruespeakerLevel), 100)), EffectVisualEffect(VFX_DUR_PROTECTION_ARROWS));
|
||||
utter.eLink = EffectLinkEffects(EffectDamageResistance(DAMAGE_TYPE_PIERCING, 10, PRCMin((10 * utter.nTruespeakerLevel), 100)), EffectVisualEffect(VFX_DUR_PROTECTION_ARROWS));
|
||||
}
|
||||
// If either of these ApplyEffect isn't needed, delete it.
|
||||
// Duration Effects
|
||||
|
||||
Reference in New Issue
Block a user