forked from Jaysyn/PRC8
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.
78 lines
2.7 KiB
Plaintext
78 lines
2.7 KiB
Plaintext
/*:://////////////////////////////////////////////
|
||
//:: Spell Name Liveoak
|
||
//:: Spell FileName PHS_S_Liveoak
|
||
//:://////////////////////////////////////////////
|
||
//:: In Game Spell desctiption
|
||
//:://////////////////////////////////////////////
|
||
Casting Time: 10 minutes
|
||
Range: Touch
|
||
Target: Tree touched
|
||
Duration: One day/level (D)
|
||
Saving Throw: None
|
||
Spell Resistance: No
|
||
|
||
This spell turns an oak tree into a protector or guardian. The spell can be
|
||
cast on only a single tree at a time; while liveoak is in effect, you can’t
|
||
cast it again on another tree.
|
||
|
||
Liveoak must be cast on a healthy, Huge oak. A triggering phrase of up to one
|
||
word per caster level is placed on the targeted oak. The liveoak spell
|
||
triggers the tree into animating as a treant.
|
||
|
||
If liveoak is dispelled, the tree takes root immediately, wherever it happens
|
||
to be. If released by you, the tree tries to return to its original location
|
||
before taking root.
|
||
//:://////////////////////////////////////////////
|
||
//:: Spell Effects Applied / Notes
|
||
//:://////////////////////////////////////////////
|
||
Might wnat to change the duration + casting times.
|
||
|
||
It uses a special tagged placeable - should also have a new appearance too.
|
||
|
||
DLA treant should be suitable :-)
|
||
//:://////////////////////////////////////////////
|
||
//:: Created By: Jasperre
|
||
//::////////////////////////////////////////////*/
|
||
|
||
#include "PHS_INC_SPELLS"
|
||
|
||
void main()
|
||
{
|
||
// Spell Hook Check
|
||
if(!PHS_SpellHookCheck(PHS_SPELL_LIVEOAK)) return;
|
||
|
||
// Declare major variables
|
||
object oCaster = OBJECT_SELF;
|
||
object oTarget = GetSpellTargetObject(); // Only placeable!
|
||
location lTarget = GetLocation(oTarget);
|
||
int nCasterLevel = PHS_GetCasterLevel();
|
||
int nMetaMagic = PHS_GetMetaMagicFeat();
|
||
string sResRef = "phs_liveoaktreant";
|
||
|
||
// Get Duration in days
|
||
float fDuration = PHS_GetDuration(PHS_HOURS, nCasterLevel * 24, nMetaMagic);
|
||
|
||
// Declare effects
|
||
effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
||
|
||
PHS_SignalSpellCastAt(oCaster, PHS_SPELL_LIVEOAK, FALSE);
|
||
|
||
// Make sure we have targeted a tree, or at least, one placeable
|
||
// with the right integer on it.
|
||
if(GetLocalInt(oTarget, "PHS_LIVEOAK") != TRUE)
|
||
{
|
||
FloatingTextStringOnCreature("Only an oaktree or similar can be targeted by this spell.", oCaster, FALSE);
|
||
return;
|
||
}
|
||
|
||
// We create the object, move the staff into its inventory, and add it as
|
||
// a henchman. You cannot look at any summoned creatures inventory - good!
|
||
object oTreant = CreateObject(OBJECT_TYPE_CREATURE, sResRef, lTarget);
|
||
|
||
// Apply effects
|
||
PHS_ApplyDuration(oTarget, eCessate, fDuration);
|
||
|
||
// Set master
|
||
AddHenchman(oCaster, oTreant);
|
||
}
|