forked from Jaysyn/PRC8
77 lines
3.0 KiB
Plaintext
77 lines
3.0 KiB
Plaintext
|
/*:://////////////////////////////////////////////
|
|||
|
//:: Spell Name Magic Circle against Chaos
|
|||
|
//:: Spell FileName PHS_S_MagicCirC
|
|||
|
//:://////////////////////////////////////////////
|
|||
|
//:: In Game Spell desctiption
|
|||
|
//:://////////////////////////////////////////////
|
|||
|
Abjuration [Lawful]
|
|||
|
Level: Clr 3, Law 3, Pal 3, Sor/Wiz 3
|
|||
|
Components: V, S, DF
|
|||
|
Casting Time: 1 standard action
|
|||
|
Range: Touch
|
|||
|
Area: 3.33-M.-radius emanation from touched creature
|
|||
|
Duration: 10 min./level
|
|||
|
Saving Throw: Will negates (harmless)
|
|||
|
Spell Resistance: No; see text
|
|||
|
|
|||
|
All creatures within the area gain the effects of a protection from chaos
|
|||
|
spell, gaining +2 AC, +2 saves and immunity to possession by chaotic
|
|||
|
creatures.
|
|||
|
|
|||
|
In addition, no nonlawful summoned creatures can enter the area either.
|
|||
|
You must overcome a creature<72>s spell resistance in order to keep it at bay,
|
|||
|
but the deflection and resistance bonuses and the protection from mental
|
|||
|
control apply regardless of enemies<65> spell resistance. If the summoned
|
|||
|
creature is already in the area when the spell then they ignore the
|
|||
|
resistance check. The protection against summoned creatures ends if the
|
|||
|
warded creature makes an attack against or tries to force the barrier
|
|||
|
against the blocked creature.
|
|||
|
|
|||
|
This spell is not cumulative with protection from chaos and vice versa.
|
|||
|
//:://////////////////////////////////////////////
|
|||
|
//:: Spell Effects Applied / Notes
|
|||
|
//:://////////////////////////////////////////////
|
|||
|
AOE placed on the target.
|
|||
|
|
|||
|
The On Enter will do pushback and apply effects. It applies it to ALL creatures.
|
|||
|
|
|||
|
Only outsiders and summoned creatures will be affected by the pushback.
|
|||
|
//:://////////////////////////////////////////////
|
|||
|
//:: Created By: Jasperre
|
|||
|
//::////////////////////////////////////////////*/
|
|||
|
|
|||
|
#include "PHS_INC_SPELLS"
|
|||
|
|
|||
|
void main()
|
|||
|
{
|
|||
|
// Spell hook check.
|
|||
|
if(!PHS_SpellHookCheck(PHS_SPELL_MAGIC_CIRCLE_AGAINST_CHAOS)) return;
|
|||
|
|
|||
|
//Declare major variables
|
|||
|
object oCaster = OBJECT_SELF;
|
|||
|
object oTarget = GetSpellTargetObject();
|
|||
|
int nCasterLevel = PHS_GetCasterLevel();
|
|||
|
int nMetaMagic = PHS_GetMetaMagicFeat();
|
|||
|
|
|||
|
// 10 minutes/level duration
|
|||
|
float fDuration = PHS_GetDuration(PHS_MINUTES, nCasterLevel * 10, nMetaMagic);
|
|||
|
|
|||
|
// Declare effects
|
|||
|
effect eAOE = EffectAreaOfEffect(PHS_AOE_MOB_MAGCIR_CHAOS);
|
|||
|
|
|||
|
// Signal spell cast at event
|
|||
|
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_MAGIC_CIRCLE_AGAINST_CHAOS, FALSE);
|
|||
|
|
|||
|
// Remove previous castings
|
|||
|
PHS_RemoveSpecificEffectFromSpell(EFFECT_TYPE_AREA_OF_EFFECT, PHS_SPELL_MAGIC_CIRCLE_AGAINST_CHAOS, oTarget);
|
|||
|
|
|||
|
// Set local integer so that the first ones will not be affected, which
|
|||
|
// is removed after 1.0 seconds.
|
|||
|
string sLocal = PHS_MOVING_BARRIER_START + IntToString(PHS_SPELL_MAGIC_CIRCLE_AGAINST_CHAOS);
|
|||
|
SetLocalInt(oCaster, sLocal, TRUE);
|
|||
|
DelayCommand(1.0, DeleteLocalInt(oCaster, sLocal));
|
|||
|
|
|||
|
// Apply effects
|
|||
|
PHS_ApplyDuration(oTarget, eAOE, fDuration);
|
|||
|
}
|