71 lines
2.4 KiB
Plaintext
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);
|
|
}
|
|
}
|