PRC8/nwn/nwnprc/trunk/users/Tenjac/spells/sp_estanasstew.nss
Jaysyn904 e641b42f84 Exalted update
Updated Vow of Poverty. Added Sanctify Ki Strike, Holy Strike, Fist of Heavens, Vow of Abstinence, Vow of Chastity & Gift of Faith.  (@fenac).  Turned off the Taunt & Parry skills.  Re-disabled AC & save bonuses from Tumble & Spellcraft.   Updated min() & max() to PRCmin() & PRCmax() to not conflict with similarly named NUI adjacent functions.  Set Point Blank Shot to 30' per PnP.  Added icon for Chosen of Evil.  Started work on Hidden Talent.  Created Psionics function cheatsheet.  Updated release archive.
2025-01-29 22:46:38 -05:00

105 lines
3.4 KiB
Plaintext

//:://////////////////////////////////////////////
//:: Name Estana's Stew
//:: FileName sp_estanasstew.nss
//:://////////////////////////////////////////////
/** @file Conjuration (Healing)
Level: Cleric 2, Druid 2, Paladin 2,
Components: V, S, AF,
Casting Time: 1 round
Range: 0 ft.
Effect: Fills pot with healing stew (1 serving/2 levels)
Duration: Instantaneous (see text)
Saving Throw: Will half (harmless); see text
Spell Resistance: Yes (harmless)
This spell calls upon Estanna, goddess of hearth and home
, to fill a specially crafted stewpot with a potent healing stew.
The caster must be hold the pot in hand when Estanna's stew
is cast; otherwise, the spell fails and is wasted.
The spell creates one serving per two caster levels (maximum 5).
A single serving heals 1d6+1 points of damage and requires
a standard action to consume. Any portion of the stew that
is not consumed disappears after 1 hour.The stew can be
splashed onto a single undead creature within 10 feet.
If a ranged touch attack succeeds, the undead creature
takes 1d6+1 points of damage per serving splashed on it.
The undead creature can apply spell resistance and can
attempt a Will save to take half damage.
*/
//:://////////////////////////////////////////////
//:: Created By: Tenjac
//:: Created On: 6/20/22
//:://////////////////////////////////////////////
#include "prc_sp_func"
#include "prc_add_spell_dc"
void main()
{
if(!X2PreSpellCastCode()) return;
PRCSetSchool(SPELL_SCHOOL_ABJURATION);
object oPC = OBJECT_SELF;
int nCasterLvl = PRCGetCasterLevel(oPC);
float fDur = RoundsToSeconds(nCasterLvl);
int nSpell = GetSpellId();
if (nSpell == SPELL_ESTANAS_STEW)
{
object oItem = CreateItemOnObject("prc_estanasstew", oPC, 1);
int nServings = PRCMin(5, (nCasterLvl/2));
SetItemCharges(oItem, nServings);
}
if (nSpell == SPELL_ESTANAS_STEW_EAT)
{
int nHeal = d6(1) + 1;
SPApplyEffectToObject(DURATION_TYPE_INSTANT, PRCEffectHeal(nHeal), oPC);
}
if (nSpell == SPELL_ESTANAS_STEW_SPLASH)
{
object oItem = PRCGetSpellCastItem(OBJECT_SELF);
object oTarget = GetSpellTargetObject();
if(GetIsObjectValid(oTarget))
{
nTouch = TouchAttackRanged(oTarget);
}
// Check if we hit, or even have anything to hit!
if(nTouch >= 1)
{
int nServings = GetItemCharges(oItem);
//Chuck all of it
int nDam = (d6(1) + 1) * nServings;
// Critical hit?
if(nTouch == 2)
{
nDam *= 2;
}
int nPenetr = SPGetPenetr();
//Resist
if(!PRCDoResistSpell(OBJECT_SELF, oTarget nPenetr);
{
if(PRCMySavingThrow(SAVING_THROW_WILL, oTarget, PRCGetSaveDC(oTarget, OBJECT_SELF)))
{
nDam = nDam/2'
}
if(MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD)
{
SPApplyEffectToObject(DURATION_TYPE_INSTANT, PRCEffectDamage(oTarget, nDam, DAMAGE_TYPE_DIVINE), oTarget);
}
}
SPApplyEffectToObject(DURATION_TYPER_INSTANT, EffectVisualEffect(VFX_COM_CHUNK_YELLOW_SMALL), oTarget);
}
//Remove the object
DestroyObject(oItem);
}
PRCSetSchool();
}