Further file organization
Further file organization
This commit is contained in:
49
nwn/nwnprc/trunk/newspellbook/moi_incan_heal.nss
Normal file
49
nwn/nwnprc/trunk/newspellbook/moi_incan_heal.nss
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user