Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
60 lines
2.4 KiB
Plaintext
60 lines
2.4 KiB
Plaintext
/**
|
|
* Rage
|
|
*
|
|
* Enchantment (Compulsion) [Mind-Affecting]
|
|
* Level: Bard 2, Sorcerer/Wizard 3
|
|
* Components: V, S,
|
|
* Casting Time: 1 standard action
|
|
* Range: Medium (100 ft. + 10 ft./level)
|
|
* Target: One willing living creature per three levels, no two of which may be more than 30 ft. apart
|
|
* Duration: Concentration + 1 round/level (D)
|
|
* Saving Throw: None
|
|
* Spell Resistance: Yes
|
|
*
|
|
* Each affected creature gains a +2 morale bonus to Strength and Constitution, a +1 morale bonus on Will saves, and a -2 penalty to AC.
|
|
*/
|
|
|
|
#include "prc_inc_spells"
|
|
|
|
void main()
|
|
{
|
|
PRCSetSchool(SPELL_SCHOOL_ENCHANTMENT);
|
|
if (!X2PreSpellCastCode())
|
|
return;
|
|
|
|
//Declare major variables
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
int CasterLvl = PRCGetCasterLevel(OBJECT_SELF);
|
|
int nMetaMagic = PRCGetMetaMagicFeat();
|
|
int nDuration = CasterLvl;
|
|
int nSpellID = PRCGetSpellId();
|
|
if (CheckMetaMagic(nMetaMagic, METAMAGIC_EXTEND))
|
|
nDuration *= 2;
|
|
|
|
// how many creatures (we've done one already)
|
|
int nCreatures = (CasterLvl/3);
|
|
if (nCreatures >= 1)
|
|
{
|
|
object oNextTarget = MyFirstObjectInShape(SHAPE_SPHERE, FeetToMeters(30.0), GetLocation(oTarget), TRUE); // only creatures
|
|
int nCount;
|
|
while (GetIsObjectValid(oNextTarget) && nCount < nCreatures)
|
|
{
|
|
if (GetIsFriend(oNextTarget, OBJECT_SELF) && PRCGetIsAliveCreature(oNextTarget))
|
|
{
|
|
//Fire cast spell at event for the specified target
|
|
SignalEvent(oNextTarget, EventSpellCastAt(OBJECT_SELF, nSpellID));
|
|
effect eLink = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
|
eLink = EffectLinkEffects(eLink, EffectAbilityIncrease(ABILITY_CONSTITUTION, 2));
|
|
eLink = EffectLinkEffects(eLink, EffectAbilityIncrease(ABILITY_STRENGTH, 2));
|
|
eLink = EffectLinkEffects(eLink, EffectSavingThrowIncrease(SAVING_THROW_WILL, 1));
|
|
eLink = EffectLinkEffects(eLink, EffectACDecrease(2, AC_DODGE_BONUS));
|
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration),TRUE,-1,CasterLvl);
|
|
nCount++;
|
|
}
|
|
oNextTarget = MyNextObjectInShape(SHAPE_SPHERE, FeetToMeters(30.0), GetLocation(oTarget), TRUE); // only creatures
|
|
}
|
|
}
|
|
|
|
PRCSetSchool();
|
|
}
|