Further file organization
Further file organization
This commit is contained in:
82
nwn/nwnprc/trunk/smp/xxx_s_golemcrush.nss
Normal file
82
nwn/nwnprc/trunk/smp/xxx_s_golemcrush.nss
Normal file
@@ -0,0 +1,82 @@
|
||||
/*:://////////////////////////////////////////////
|
||||
//:: Spell Name Golem Crusher
|
||||
//:: Spell FileName XXX_S_GolemCrush
|
||||
//:://////////////////////////////////////////////
|
||||
//:: In Game Spell desctiption
|
||||
//:://////////////////////////////////////////////
|
||||
Evocation [Force]
|
||||
Level: Sor/Wiz 6
|
||||
Components: V, S
|
||||
Casting Time: 1 standard action
|
||||
Range: Close (8M)
|
||||
Target: One Golem
|
||||
Duration: Instantaneous
|
||||
Saving Throw: Reflex half
|
||||
Spell Resistance: No
|
||||
Source: Various (law)
|
||||
|
||||
This spell was made to kill golems when other spells could not. A small
|
||||
wave of force comes from the casters hand he must make a ranged touch
|
||||
attack to hit his target. This spell deals 1d8 points of force damage per
|
||||
caster level (max 20d8 points of force damage). The damage can only effect
|
||||
golems.
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Spell Effects Applied / Notes
|
||||
//:://////////////////////////////////////////////
|
||||
As the spell says.
|
||||
|
||||
Yes, maybe this is a little powerful, but it needs a touych attack AND a
|
||||
reflex save for half damage.
|
||||
|
||||
Sure, it passes right through golem SR though!
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Jasperre
|
||||
//::////////////////////////////////////////////*/
|
||||
|
||||
#include "SMP_INC_SPELLS"
|
||||
|
||||
void main()
|
||||
{
|
||||
// Spell Hook Check.
|
||||
if(!SMP_SpellHookCheck(SMP_SPELL_GOLEM_CRUSHER)) return;
|
||||
|
||||
// Declare major variables
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oTarget = GetSpellTargetObject();
|
||||
int nMetaMagic = SMP_GetMetaMagicFeat();
|
||||
int nSpellSaveDC = SMP_GetSpellSaveDC();
|
||||
int nCasterLevel = SMP_GetCasterLevel();
|
||||
|
||||
// Ranged touch attack
|
||||
int nTouch = SMP_SpellTouchAttack(SMP_TOUCH_RANGED, oTarget, TRUE);
|
||||
|
||||
// Dice is 1 per level.
|
||||
int nDice = SMP_LimitInteger(nCasterLevel, 20);
|
||||
|
||||
// Get damage
|
||||
int nDam = SMP_MaximizeOrEmpower(8, nDice, nMetaMagic, FALSE, nTouch);
|
||||
|
||||
// Declare effects
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_MAGBLUE);
|
||||
|
||||
// Signal event
|
||||
SMP_SignalSpellCastAt(oTarget, SMP_SPELL_GOLEM_CRUSHER);
|
||||
|
||||
// Touch attack
|
||||
if(nTouch)
|
||||
{
|
||||
// PvP check and check if construct
|
||||
if(!GetIsReactionTypeFriendly(oTarget) &&
|
||||
GetRacialType(oTarget) == RACIAL_TYPE_CONSTRUCT)
|
||||
{
|
||||
// Reflex save
|
||||
nDam = SMP_GetAdjustedDamage(SAVING_THROW_REFLEX, nDam, oTarget, nSpellSaveDC);
|
||||
|
||||
if(nDam > 0)
|
||||
{
|
||||
// Apply damage effects
|
||||
SMP_ApplyDamageVFXToObject(oTarget, eVis, nDam);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user