PRC8_fork/nwn/nwnprc/trunk/smp/phs_s_guidance.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

78 lines
2.6 KiB
Plaintext

/*:://////////////////////////////////////////////
//:: Spell Name Guidance
//:: Spell FileName PHS_S_Guidance
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
creature touched gets +1 on attack rolls, saving throws or skill checks for
9 seconds.
"This spell imbues the subject with a touch of divine guidance. The creature
gets a +1 competence bonus on a single attack roll, saving throw, or skill
check, for 9 seconds.
You can either choose attack, saving throw, or skill for the bonus applied.
NwN cannot affect "1 roll" so the duration is set to 9 seconds (and cannot
be extended)."
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
As I have said, 9 seconds (IE should be about 1 attack, skill check (EG:
use magical device, taunt) or save (or rounds of saves)).
All 3 are universal bonuses (to all saves, or all skills). 9 seconds
worth won't break a game.
This will definatly be a sub-dial spell, the duration is too small and it
is definatly not going to be a problem.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "PHS_INC_SPELLS"
void main()
{
// Spell hook check.
if(!PHS_SpellHookCheck(PHS_SPELL_GUIDANCE)) return;
// Declare major variables
object oTarget = GetSpellTargetObject();
int nSpell = GetSpellId();
// Duration is a static 9 seconds - as true strike.
float fDuration = 9.0;
// Bonus effect...what is it?
effect eBonus;
// Depends on "subspell" cast
if(nSpell == PHS_SPELL_GUIDANCE_SKILL)
{
eBonus = EffectSkillIncrease(SKILL_ALL_SKILLS, 1);
}
else if(nSpell == PHS_SPELL_GUIDANCE_SAVE)
{
eBonus = EffectSavingThrowIncrease(SAVING_THROW_ALL, 1);
}
// Default to attack
else //if(nSpell == PHS_SPELL_GUIDANCE_ATTACK)
{
eBonus = EffectAttackIncrease(1, ATTACK_BONUS_MISC);
}
// Declare other effects
effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eVis = EffectVisualEffect(VFX_IMP_IMPROVE_ABILITY_SCORE);
// Link
effect eLink = EffectLinkEffects(eBonus, eCessate);
// Signal event spell cast at
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_GUIDANCE, FALSE);
// Remove previous castings (remove subspell)
PHS_RemoveSpellEffectsFromTarget(nSpell, oTarget);
// Apply effects
PHS_ApplyDurationAndVFX(oTarget, eVis, eLink, fDuration);
}