Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
71 lines
2.2 KiB
Plaintext
71 lines
2.2 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Name Close Wounds
|
|
//:: FileName sp_close_wounds.nss
|
|
//:://////////////////////////////////////////////
|
|
/** @file Close Wounds
|
|
Conjuration (Healing)
|
|
Level: Clr 3, Hlr 3
|
|
Components: V
|
|
Casting Time: 1 swift action
|
|
Range: Close
|
|
Target: One creature
|
|
Duration: Instantaneous
|
|
Saving Throw: Will half (harmless)
|
|
Spell Resistance: Yes (harmless)
|
|
|
|
This spell cures 2d4 points of damage. You can cast
|
|
this spell with an instant utterance.
|
|
|
|
Used against an undead creature, close wounds deals
|
|
damage instea of curing the creature (which takes half
|
|
damage if it makes a Will saving throw).
|
|
**/
|
|
//////////////////////////////////////////////////
|
|
// Author: Tenjac
|
|
// Date: 5.10.06
|
|
///////////////////////////////////////////////////
|
|
|
|
#include "prc_inc_spells"
|
|
#include "prc_add_spell_dc"
|
|
|
|
void main()
|
|
{
|
|
if(!X2PreSpellCastCode()) return;
|
|
|
|
PRCSetSchool(SPELL_SCHOOL_CONJURATION);
|
|
|
|
object oPC = OBJECT_SELF;
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
int nMetaMagic = PRCGetMetaMagicFeat();
|
|
int nHeal = d4(2);
|
|
int nCasterLvl = PRCGetCasterLevel(oPC);
|
|
|
|
if(nMetaMagic & METAMAGIC_MAXIMIZE)
|
|
nHeal = 8;
|
|
|
|
if(nMetaMagic & METAMAGIC_EMPOWER)
|
|
nHeal += (nHeal/2);
|
|
|
|
//Damage if undead
|
|
if(MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD
|
|
|| (GetHasFeat(FEAT_TOMB_TAINTED_SOUL, oTarget) && GetAlignmentGoodEvil(oTarget) != ALIGNMENT_GOOD))
|
|
{
|
|
//SR
|
|
if(!PRCDoResistSpell(oPC, oTarget, nCasterLvl + SPGetPenetr()))
|
|
{
|
|
//save for 1/2 dam
|
|
nHeal += SpellDamagePerDice(oPC, 2);
|
|
if(PRCMySavingThrow(SAVING_THROW_WILL, oTarget, PRCGetSaveDC(oTarget, oPC), SAVING_THROW_TYPE_POSITIVE))
|
|
nHeal = nHeal/2;
|
|
|
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HEALING_S), oTarget);
|
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, PRCEffectDamage(oTarget, nHeal, DAMAGE_TYPE_POSITIVE), oTarget);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HEALING_S), oTarget);
|
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, PRCEffectHeal(nHeal, oTarget), oTarget);
|
|
}
|
|
PRCSetSchool();
|
|
} |