Spell & Ability Upgrade
Reorganized hak files & removed duplicates. Added @rafhot's PRC spell & ability level scaling expansion. Further script integration. Full compile.
This commit is contained in:
53
_haks/poa_exp_abilities/nw_s1_mumundead.nss
Normal file
53
_haks/poa_exp_abilities/nw_s1_mumundead.nss
Normal file
@@ -0,0 +1,53 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Bolster Undead
|
||||
//:: NW_S1_MumUndead
|
||||
//:: Copyright (c) 2001 Bioware Corp.
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
This spell increases the Turn Resistance of
|
||||
all undead around the caster by an amount
|
||||
scaled with HD.
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Preston Watamaniuk
|
||||
//:: Created On: May 22, 2002
|
||||
//:://////////////////////////////////////////////
|
||||
#include "NW_I0_SPELLS"
|
||||
#include "prc_inc_spells"
|
||||
//#include "wm_include"
|
||||
|
||||
void main()
|
||||
{
|
||||
//if (WildMagicOverride()) { return; }
|
||||
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nScaling = nHD / 4;
|
||||
|
||||
if(nScaling == 0) {nScaling = 1;}
|
||||
|
||||
float fDelay;
|
||||
|
||||
effect eTurn = EffectTurnResistanceIncrease(nScaling);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_HEAD_EVIL);
|
||||
effect eImpact = EffectVisualEffect(VFX_FNF_LOS_EVIL_30);
|
||||
|
||||
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, GetLocation(oNPC));
|
||||
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(GetIsFriend(oTarget))
|
||||
{
|
||||
fDelay = GetRandomDelay();
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_MUMMY_BOLSTER_UNDEAD, FALSE));
|
||||
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eTurn, oTarget, RoundsToSeconds(10)));
|
||||
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||
}
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user