forked from Jaysyn/PRC8
Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
94 lines
3.2 KiB
Plaintext
94 lines
3.2 KiB
Plaintext
/*:://////////////////////////////////////////////
|
|
//:: Spell Name Desecrate
|
|
//:: Spell FileName PHS_S_Desecrate
|
|
//:://////////////////////////////////////////////
|
|
//:: In Game Spell desctiption
|
|
//:://////////////////////////////////////////////
|
|
Evocation [Evil]
|
|
Level: Clr 2, Evil 2
|
|
Components: V, S, M, DF
|
|
Casting Time: 1 standard action
|
|
Range: Close (8M)
|
|
Area: 6.67-M.-radius emanation
|
|
Duration: 2 hours/level
|
|
Saving Throw: None
|
|
Spell Resistance: Yes
|
|
|
|
This spell imbues an area with negative energy. Each Charisma check made to
|
|
turn undead within this area takes a -3 profane penalty, and every undead
|
|
creature entering a desecrated area gains a +1 profane bonus on attack rolls,
|
|
damage rolls, and saving throws. An undead creature created within or
|
|
summoned into such an area gains +1 hit points per HD.
|
|
|
|
Furthermore, anyone who casts animate dead within this area may create as
|
|
many as double the normal amount of undead (that is, 4 HD per caster level
|
|
rather than 2 HD per caster level).
|
|
|
|
Desecrate counters and dispels consecrate.
|
|
|
|
Material Component: A vial of unholy water and 25 gp worth (5 pounds) of
|
|
silver dust, all of which must be sprinkled around the area.
|
|
//:://////////////////////////////////////////////
|
|
//:: Spell Effects Applied / Notes
|
|
//:://////////////////////////////////////////////
|
|
As concetrate for the most part.
|
|
|
|
Applies effects On Enter and removes On Exit. The summoning scripts for undead
|
|
have the special bonus HP thing.
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Jasperre
|
|
//::////////////////////////////////////////////*/
|
|
|
|
#include "PHS_INC_SPELLS"
|
|
|
|
void main()
|
|
{
|
|
// Spell hook check.
|
|
if(!PHS_SpellHookCheck(PHS_SPELL_DESECRATE)) return;
|
|
|
|
// Declare major variables
|
|
location lTarget = GetSpellTargetLocation();
|
|
int nCasterLevel = PHS_GetCasterLevel();
|
|
int nMetaMagic = PHS_GetMetaMagicFeat();
|
|
int bStop = FALSE;
|
|
|
|
// Need holy water and silver dust
|
|
if(!PHS_ComponentExactItemRemove(PHS_ITEM_CURSED_WATER, "Cursed (Unholy) Water", "Desecrate")) return;
|
|
|
|
if(!PHS_ComponentExactItemRemove(PHS_ITEM_SILVER_DUST_25, "Silver Dust", "Consecrate")) return;
|
|
|
|
// Duration in hours
|
|
float fDuration = PHS_GetDuration(PHS_HOURS, nCasterLevel * 2, nMetaMagic);
|
|
|
|
// Declare effects
|
|
effect eAOE = EffectAreaOfEffect(PHS_AOE_PER_DESECRATE);
|
|
effect eImpact = EffectVisualEffect(VFX_FNF_LOS_EVIL_20);
|
|
|
|
// Apply AOE visual
|
|
PHS_ApplyLocationVFX(lTarget, eImpact);
|
|
|
|
// Are we going to remove desecrate AOE's instead?
|
|
int nCnt = 1;
|
|
object oAOE = GetNearestObjectToLocation(OBJECT_TYPE_AREA_OF_EFFECT, lTarget, nCnt);
|
|
// Distance and validity check
|
|
while(GetIsObjectValid(oAOE) &&
|
|
GetDistanceBetweenLocations(lTarget, GetLocation(oAOE)) <= 6.67)
|
|
{
|
|
// Check for consecrate
|
|
if(GetTag(oAOE) == PHS_AOE_TAG_PER_CONSECRATE)
|
|
{
|
|
// Destroy and not do anything else
|
|
DestroyObject(oAOE);
|
|
bStop = TRUE;
|
|
}
|
|
nCnt++;
|
|
oAOE = GetNearestObjectToLocation(OBJECT_TYPE_AREA_OF_EFFECT, lTarget, nCnt);
|
|
}
|
|
|
|
if(bStop != TRUE)
|
|
{
|
|
// Apply effects
|
|
PHS_ApplyLocationDuration(lTarget, eAOE, fDuration);
|
|
}
|
|
}
|