forked from Jaysyn/PRC8
61 lines
2.2 KiB
Plaintext
61 lines
2.2 KiB
Plaintext
|
//::///////////////////////////////////////////////
|
||
|
//:: Battletide
|
||
|
//:: X2_S0_BattTide
|
||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||
|
//:://////////////////////////////////////////////
|
||
|
/*
|
||
|
You create an aura that steals energy from your
|
||
|
enemies. Your enemies suffer a -2 circumstance
|
||
|
penalty on saves, attack rolls, and damage rolls,
|
||
|
once entering the aura. On casting, you gain a
|
||
|
+2 circumstance bonus to your saves, attack rolls,
|
||
|
and damage rolls.
|
||
|
*/
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:: Created By: Andrew Nobbs
|
||
|
//:: Created On: Dec 04, 2002
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:: Last Updated By: Andrew Nobbs 06/06/03
|
||
|
//:: modified by mr_bumpkin Dec 4, 2003 for prc stuff
|
||
|
#include "prc_inc_spells"
|
||
|
#include "prc_add_spell_dc"
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
if (!X2PreSpellCastCode()) return;
|
||
|
|
||
|
PRCSetSchool(SPELL_SCHOOL_TRANSMUTATION);
|
||
|
|
||
|
//Declare major variables
|
||
|
object oCaster = OBJECT_SELF;
|
||
|
int nCasterLvl = PRCGetCasterLevel(oCaster);
|
||
|
int nMetaMagic = PRCGetMetaMagicFeat();
|
||
|
int nAOE = AOE_MOB_TIDE_OF_BATTLE;
|
||
|
|
||
|
//Make nDuration at least 1 round.
|
||
|
if (nCasterLvl < 1)
|
||
|
nCasterLvl = 1;
|
||
|
float fDuration = RoundsToSeconds(nCasterLvl);
|
||
|
|
||
|
//Make metamagic check for extend
|
||
|
if(nMetaMagic & METAMAGIC_EXTEND)
|
||
|
fDuration *= 2; //Duration is +100%
|
||
|
|
||
|
effect eVis = EffectVisualEffect(VFX_IMP_HOLY_AID);
|
||
|
effect eLink = EffectSavingThrowIncrease(SAVING_THROW_ALL, 2);
|
||
|
eLink = EffectLinkEffects(eLink, EffectDamageIncrease(2));
|
||
|
eLink = EffectLinkEffects(eLink, EffectAttackIncrease(2));
|
||
|
eLink = EffectLinkEffects(eLink, EffectAreaOfEffect(nAOE));
|
||
|
eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE));
|
||
|
|
||
|
SignalEvent(oCaster, EventSpellCastAt(oCaster, SPELL_BATTLETIDE, FALSE));
|
||
|
|
||
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oCaster, fDuration, TRUE, SPELL_BATTLETIDE, nCasterLvl);
|
||
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oCaster);
|
||
|
|
||
|
//Setup Area Of Effect object
|
||
|
object oAoE = GetAreaOfEffectObject(GetLocation(oCaster), "VFX_MOB_BATTLETIDE");
|
||
|
SetAllAoEInts(SPELL_BATTLETIDE, oAoE, PRCGetSpellSaveDC(SPELL_BATTLETIDE, SPELL_SCHOOL_TRANSMUTATION), 0, nCasterLvl);
|
||
|
|
||
|
PRCSetSchool();
|
||
|
}
|