PRC8/nwn/nwnprc/trunk/newspellbook/moi_incan_heal.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

49 lines
2.3 KiB
Plaintext

/*
3/1/21 by Stratovarius
Fast Healing (Su): When you reach 2nd level, the irrepressible force of your soul restores your vitality whenever you are wounded, granting you fast healing at a rate equal to the points of essentia you invest in this
ability. This fast healing is usable for a number of rounds per day equal to your incandescent champion level. For example, a 5th-level incandescent champion who invests 2 points of essentia in this ability gains fast healing 2 for
a maximum of 5 rounds per day. Activating this ability requires no action, but investing essentia in it requires a swift action, as normal.
At 9th level, each ally who is adjacent to you when you activate the ability gains fast healing
*/
#include "moi_inc_moifunc"
#include "prc_inc_combat"
void main()
{
object oMeldshaper = PRCGetSpellTargetObject();
int nEssentia = GetEssentiaInvested(oMeldshaper, MELD_INCANDESCENT_HEAL);
int nClass = GetLevelByClass(CLASS_TYPE_INCANDESCENT_CHAMPION, oMeldshaper);
effect eLink;
if (nEssentia)
{
eLink = EffectLinkEffects(EffectRegenerate(nEssentia, 6.0), EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE));
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oMeldshaper, RoundsToSeconds(nClass+1));
if (nClass >= 9)
{
location lTarget = GetLocation(oMeldshaper);
// Use the function to get the closest creature as a target
object oAreaTarget = MyFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_SMALL, lTarget, TRUE, OBJECT_TYPE_CREATURE);
while(GetIsObjectValid(oAreaTarget))
{
if(oAreaTarget != oMeldshaper && // Not you
GetIsInMeleeRange(oMeldshaper, oAreaTarget) && // They must be in melee range
GetIsFriend(oAreaTarget, oMeldshaper)) // Only allies
{
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oAreaTarget, RoundsToSeconds(nClass+1));
}
//Select the next target within the spell shape.
oAreaTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_SMALL, lTarget, TRUE, OBJECT_TYPE_CREATURE);
}
}
}
else
{
FloatingTextStringOnCreature("You have no essentia invested in Incandescent Healing!", oMeldshaper, FALSE);
IncrementRemainingFeatUses(oMeldshaper, 8922);
}
}