PRC8/trunk/smp/xxx_s_fortifygol.nss
Jaysyn904 1662218bb4 Initial upload.
Adding base PRC 4.19a files to repository.
2022-10-07 13:51:24 -04:00

71 lines
2.4 KiB
Plaintext

/*:://////////////////////////////////////////////
//:: Spell Name Fortify Golem
//:: Spell FileName XXX_S_FortifyGol
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
Transmutation
Level: Sor/Wiz 4
Components: V, S, M
Casting Time: 1 standard action
Range: Close (8M)
Target: One Golem
Duration: 1 minute/level
Saving Throw: Fortitude negates (harmless) (object)
Spell Resistance: No (harmless) (object)
Source: Various (Israfel666)
This spell gives a target golem a +4 enhancement bonus to Strength and
Dexterity, bypassing any magical immunity the construct may have.
Material component: an ounce of the material the target golem is mainly made
of.
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
Not got the material component in yet (although we can do it)
As it is, its pretty simple. +4 Dexterity, Strength, to a construct-race creature.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "SMP_INC_SPELLS"
void main()
{
// Spell hook check.
if(!SMP_SpellHookCheck(SMP_SPELL_FORTIFY_GOLEM)) return;
//Declare major variables
object oCaster = OBJECT_SELF;
object oTarget = GetSpellTargetObject();
int nMetaMagic = SMP_GetMetaMagicFeat();
int nCasterLevel = SMP_GetCasterLevel();
// Duration, 1 minute/level
float fDuration = SMP_GetDuration(SMP_MINUTES, nCasterLevel, nMetaMagic);
// Delcare effects
effect eStrength = EffectAbilityIncrease(ABILITY_STRENGTH, 4);
effect eDexterity = EffectAbilityIncrease(ABILITY_DEXTERITY, 4);
effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eVis = EffectVisualEffect(VFX_IMP_HASTE);
// Link effects
effect eLink = EffectLinkEffects(eStrength, eCessate);
eLink = EffectLinkEffects(eLink, eDexterity);
if(GetRacialType(oTarget) == RACIAL_TYPE_CONSTRUCT)
{
// Remove previous castings
SMP_RemoveSpellEffectsFromTarget(SMP_SPELL_FORTIFY_GOLEM, oTarget);
// Signal event
SMP_SignalSpellCastAt(oTarget, SMP_SPELL_FORTIFY_GOLEM, FALSE);
// Apply effects
SMP_ApplyDurationAndVFX(oTarget, eVis, eLink, fDuration);
}
}