Further file organization
Further file organization
This commit is contained in:
110
nwn/nwnprc/trunk/spells/sp_ham_right.nss
Normal file
110
nwn/nwnprc/trunk/spells/sp_ham_right.nss
Normal file
@@ -0,0 +1,110 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name Hammer of Righteousness
|
||||
//:: FileName sp_ham_right.nss
|
||||
//:://////////////////////////////////////////////
|
||||
/**@file Hammer of Righteousness
|
||||
Evocation [Force, Good]
|
||||
Level: Sanctified 3
|
||||
Components: V, S, Sacrifice
|
||||
Casting Time: 1 standard action
|
||||
Range: Medium (100 ft. + 10 ft./level)
|
||||
Effect: Magic warhammer of force
|
||||
Duration: Instantaneous
|
||||
Saving Throw: Fortitude half
|
||||
Spell Resistance: Yes
|
||||
|
||||
A great warhammer of positive energy springs into
|
||||
existence, launches toward a target that you can
|
||||
see within the range of the spell, and strikes
|
||||
unerringly.
|
||||
|
||||
The hammer of righteousness deals 1d6 points of
|
||||
damage per caster level to the target, or 1d8
|
||||
points of damage per caster level if the target is
|
||||
evil. The caster can decide to deal non-lethal
|
||||
damage instead of lethal damage with the hammer,
|
||||
or can split the damage evenly between the two
|
||||
types. How the damage is split must be decided
|
||||
before damage is rolled. The hammer is considered
|
||||
a force effect and has no miss chance when striking
|
||||
an incorporeal target. A successful Fortitude save
|
||||
halves the damage.
|
||||
|
||||
Sacrifice: 1d3 points of Strength damage.
|
||||
|
||||
Author: Tenjac
|
||||
Created: 6/14/06
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "prc_inc_spells"
|
||||
#include "prc_add_spell_dc"
|
||||
|
||||
void main()
|
||||
{
|
||||
if(!X2PreSpellCastCode()) return;
|
||||
|
||||
PRCSetSchool(SPELL_SCHOOL_EVOCATION);
|
||||
|
||||
object oPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
int nDC = PRCGetSaveDC(oTarget, oPC);
|
||||
int nAlign = GetAlignmentGoodEvil(oTarget);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
|
||||
PRCSignalSpellEvent(oTarget,TRUE, SPELL_HAMMER_OF_RIGHTEOUSNESS, oPC);
|
||||
|
||||
if(!PRCDoResistSpell(OBJECT_SELF, oTarget, nCasterLvl + SPGetPenetr()))
|
||||
{
|
||||
int nDam = d6(nCasterLvl);
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 6 * (nCasterLvl);
|
||||
}
|
||||
|
||||
if(nAlign == ALIGNMENT_EVIL)
|
||||
{
|
||||
nDam = d8(nCasterLvl);
|
||||
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
||||
{
|
||||
nDam = 8 * (nCasterLvl);
|
||||
}
|
||||
}
|
||||
|
||||
if(nMetaMagic & METAMAGIC_EMPOWER)
|
||||
{
|
||||
nDam += (nDam/2);
|
||||
}
|
||||
nDam += SpellDamagePerDice(oPC, nCasterLvl);
|
||||
//Save for 1/2
|
||||
if(PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_GOOD))
|
||||
{
|
||||
nDam = (nDam/2);
|
||||
|
||||
if(GetHasMettle(oTarget, SAVING_THROW_FORT))
|
||||
{
|
||||
nDam = 0;
|
||||
}
|
||||
}
|
||||
|
||||
//Play VFX
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_STRIKE_HOLY), oTarget);
|
||||
|
||||
//Apply damage
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, PRCEffectDamage(oTarget, nDam, DAMAGE_TYPE_MAGICAL), oTarget);
|
||||
}
|
||||
DoCorruptionCost(oPC, ABILITY_STRENGTH, d3(1), 0);
|
||||
|
||||
//Sanctified spells get mandatory 10 pt good adjustment, regardless of switch
|
||||
AdjustAlignment(oPC, ALIGNMENT_GOOD, 10, FALSE);
|
||||
|
||||
//SPGoodShift(oPC);
|
||||
|
||||
PRCSetSchool();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user