PRC8/nwn/nwnprc/trunk/spells/sp_blade_blood.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
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.
2024-02-11 14:01:05 -05:00

68 lines
2.3 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Name Blade of Blood
//:: FileName sp_blade_blood.nss
//:://////////////////////////////////////////////
/**@file Blade of Blood
Necromancy
Level: Assassin 1, blackguards 1, cleric 1,
duskblade 1, sorcerer/wizard 1
Components: V,S
Casting Time: 1 swift action
Range: Touch
Target: Weapon touched
Duration: 1 round/level or until dicharged
Saving Throw: None
Spell Resistance: No
This spell infuses the weapon touched with baleful
energy. The next time this weapon strikes a
living creature, blade of blood discharges. The
spell deals an extra 1d6 points of damage against
the target of the attack. You can voluntarily take
5 hit points of damage to empower the weapon to deal
an extra 2d6 points of damage(for a total of 3d6
points of extra damage).
The weapon loses this property if its wielder drops
it or otherwise loses contact with it.
**/
#include "prc_inc_spells"
void main()
{
if(!X2PreSpellCastCode()) return;
PRCSetSchool(SPELL_SCHOOL_NECROMANCY);
object oPC = OBJECT_SELF;
object oTarget = IPGetTargetedOrEquippedMeleeWeapon();
int nCasterLvl = PRCGetCasterLevel(oPC);
int nSpell = PRCGetSpellId();
float fDur = RoundsToSeconds(nCasterLvl);
int nMetaMagic = PRCGetMetaMagicFeat();
if(nMetaMagic & METAMAGIC_EXTEND)
{
fDur += fDur;
}
if(nSpell == SPELL_BLADE_OF_BLOOD_EMP)
{
SPApplyEffectToObject(DURATION_TYPE_INSTANT, PRCEffectDamage(oTarget, 5, DAMAGE_TYPE_MAGICAL), oPC);
}
//Set local ints
SetLocalInt(oTarget, "PRC_BLADE_BLOOD_METAMAGIC", nMetaMagic);
SetLocalInt(oTarget, "PRC_BLADE_BLOOD_SPELLID", nSpell);
//Set up removal
itemproperty ipHook = ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1);
IPSafeAddItemProperty(oTarget, ipHook, fDur);
AddEventScript(oTarget, EVENT_ITEM_ONHIT, "prc_event_bladeb", FALSE, FALSE);
if (DEBUG) DoDebug("Blade of Blood: oPC - "+GetName(oPC)+" oTarget - "+GetName(oTarget)+" nSpell - "+IntToString(nSpell)+" fDur - "+FloatToString(fDur));
PRCSetSchool();
}