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:
61
_haks/poa_exp_spells/sp_false_life.nss
Normal file
61
_haks/poa_exp_spells/sp_false_life.nss
Normal file
@@ -0,0 +1,61 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name False Life
|
||||
//:: FileName sp_false_life.nss
|
||||
//:://////////////////////////////////////////////
|
||||
/**@file False Life
|
||||
Necromancy
|
||||
Level: Sor/Wiz 2, Hexblade 2
|
||||
Components: V, S, M
|
||||
Casting Time: 1 standard action
|
||||
Range: Personal
|
||||
Target: You
|
||||
Duration: 1 hour/level or until discharged; see text
|
||||
|
||||
You harness the power of unlife to grant yourself a
|
||||
limited ability to avoid death. While this spell is
|
||||
in effect, you gain temporary hit points equal to
|
||||
1d10 +1 per caster level (maximum +10).
|
||||
|
||||
Material Component: A small amount of alcohol or
|
||||
distilled spirits, which you use to trace certain
|
||||
sigils on your body during casting. These sigils
|
||||
cannot be seen once the alcohol or spirits evaporate.
|
||||
|
||||
**/
|
||||
|
||||
#include "prc_alterations"
|
||||
#include "prc_inc_spells"
|
||||
|
||||
void main()
|
||||
{
|
||||
if(!X2PreSpellCastCode()) return;
|
||||
|
||||
PRCSetSchool(SPELL_SCHOOL_NECROMANCY);
|
||||
|
||||
object oPC = OBJECT_SELF;
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
float fDur = HoursToSeconds(nCasterLvl);
|
||||
if(nMetaMagic & METAMAGIC_EXTEND)
|
||||
fDur *= 2;
|
||||
|
||||
int nBonus = d10(1) + (min(20, nCasterLvl));
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
nBonus = 10 + (min(20, nCasterLvl));
|
||||
if(nMetaMagic & METAMAGIC_EMPOWER)
|
||||
nBonus += (nBonus/2);
|
||||
|
||||
PRCRemoveEffectsFromSpell(oPC, SPELL_FALSE_LIFE);
|
||||
|
||||
PRCSignalSpellEvent(oPC, FALSE, SPELL_FALSE_LIFE, oPC);
|
||||
|
||||
effect eHP = EffectTemporaryHitpoints(nBonus);
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
||||
effect eLink = EffectLinkEffects(eHP, eDur);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_HEAD_EVIL);
|
||||
|
||||
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oPC, fDur, TRUE, SPELL_FALSE_LIFE, nCasterLvl, oPC);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||||
|
||||
PRCSetSchool();
|
||||
}
|
Reference in New Issue
Block a user