PRC8/nwn/nwnprc/trunk/spells/sp_drgn_cloud.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

87 lines
2.7 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Name Dragon Cloud
//:: FileName sp_drgn_cloud.nss
//:://////////////////////////////////////////////
/**@file Dragon Cloud
Conjuration (Calling) [Air]
Level: Sanctified 8
Components: V, S, Sacrifice
Casting Time: 1 round
Range: Special (see text)
Effect: One conjured dragon cloud (see text)
Duration: 1 min. + 1 minute/level
Saving Throw: None
Spell Resistance: No
You must cast this spell outdoors, in a place where
clouds are visible. It calls forth a spirit of
elemental air, binds it to a nearby cloud (either a
normal cloud or storm cloud), and gives it a
dragon-like form. Upon forming, the dragon-shaped
cloud swoops toward you, arriving in 1 minute
regardless of the actual distance from you.
(The time it takes to reach you counts toward the
spell's duration.) Once it arrives, you can command
the dragon cloud like a summoned creature. The dragon
cloud speaks Auran.
At the end of the spell's duration, the dragon cloud
evaporates into nothingness as the bound elemental
spirit returns to its home plane. The dragon cloud
cannot pass through liquids or solid objects.
Sacrifice: 1d3 points of Constitution damage.
Author: Tenjac
Created: 6/11/06
*/
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
#include "prc_alterations"
#include "prc_inc_spells"
void SummonDragonCloud(location lLoc, float fDur)
{
MultisummonPreSummon();
effect sSummon = EffectSummonCreature("prc_drag_cld");
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, sSummon, lLoc, fDur);
}
void main()
{
if(!X2PreSpellCastCode()) return;
PRCSetSchool(SPELL_SCHOOL_CONJURATION);
object oPC = OBJECT_SELF;
int nCasterLevel = PRCGetCasterLevel(oPC);
object oArea = GetArea(oPC);
location lLoc = PRCGetSpellTargetLocation();
int nAbove = GetIsAreaAboveGround(oArea);
int nInside = GetIsAreaInterior(oArea);
int nNatural = GetIsAreaNatural(oArea);
float fDur = (60.0f * (nCasterLevel));
if(nAbove == AREA_ABOVEGROUND && nInside == FALSE)
{
effect eVis = EffectVisualEffect(VFX_FNF_SUMMONDRAGON);
DelayCommand(TurnsToSeconds(1), ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, lLoc));
DelayCommand(TurnsToSeconds(1), SummonDragonCloud(lLoc, fDur));
//only pay the cost if cast sucessfully
DoCorruptionCost(oPC, ABILITY_CONSTITUTION, d3(), 0);
}
else FloatingTextStringOnCreature("This spell must be cast outdoors and aboveground.", oPC, FALSE);
//Sanctified spells get mandatory 10 pt good adjustment, regardless of switch
AdjustAlignment(oPC, ALIGNMENT_GOOD, 10, FALSE);
//SPGoodShift(oPC);
PRCSetSchool();
}