PRC8/nwn/nwnprc/trunk/scripts/prc_reservcoe.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

102 lines
3.4 KiB
Plaintext

//Spell script for reserve feat Clutch of Earth
//prc_reservcoe
//by ebonfowl
//Dedicated to Edgar, the real Ebonfowl
#include "prc_inc_sp_tch"
#include "prc_add_spell_dc"
#include "prc_inc_spells"
int EFIsFlying(object oCreature)
{
int nAppearance = GetAppearanceType(oCreature);
int bFlying = FALSE;
switch(nAppearance)
{
case APPEARANCE_TYPE_ALLIP:
case APPEARANCE_TYPE_BAT:
case APPEARANCE_TYPE_BAT_HORROR:
case APPEARANCE_TYPE_ELEMENTAL_AIR:
case APPEARANCE_TYPE_ELEMENTAL_AIR_ELDER:
case APPEARANCE_TYPE_FAERIE_DRAGON:
case APPEARANCE_TYPE_FALCON:
case APPEARANCE_TYPE_FAIRY:
case APPEARANCE_TYPE_HELMED_HORROR:
case APPEARANCE_TYPE_IMP:
case APPEARANCE_TYPE_LANTERN_ARCHON:
case APPEARANCE_TYPE_MEPHIT_AIR:
case APPEARANCE_TYPE_MEPHIT_DUST:
case APPEARANCE_TYPE_MEPHIT_EARTH:
case APPEARANCE_TYPE_MEPHIT_FIRE:
case APPEARANCE_TYPE_MEPHIT_ICE:
case APPEARANCE_TYPE_MEPHIT_MAGMA:
case APPEARANCE_TYPE_MEPHIT_OOZE:
case APPEARANCE_TYPE_MEPHIT_SALT:
case APPEARANCE_TYPE_MEPHIT_STEAM:
case APPEARANCE_TYPE_MEPHIT_WATER:
case APPEARANCE_TYPE_QUASIT:
case APPEARANCE_TYPE_RAVEN:
case APPEARANCE_TYPE_SHADOW:
case APPEARANCE_TYPE_SHADOW_FIEND:
case APPEARANCE_TYPE_SPECTRE:
case APPEARANCE_TYPE_WILL_O_WISP:
case APPEARANCE_TYPE_WRAITH:
case APPEARANCE_TYPE_WYRMLING_BLACK:
case APPEARANCE_TYPE_WYRMLING_BLUE:
case APPEARANCE_TYPE_WYRMLING_BRASS:
case APPEARANCE_TYPE_WYRMLING_BRONZE:
case APPEARANCE_TYPE_WYRMLING_COPPER:
case APPEARANCE_TYPE_WYRMLING_GOLD:
case APPEARANCE_TYPE_WYRMLING_GREEN:
case APPEARANCE_TYPE_WYRMLING_RED:
case APPEARANCE_TYPE_WYRMLING_SILVER:
case APPEARANCE_TYPE_WYRMLING_WHITE:
case APPEARANCE_TYPE_ELEMENTAL_WATER:
case APPEARANCE_TYPE_ELEMENTAL_WATER_ELDER:
case 401: //beholder
case 402: //beholder
case 403: //beholder
case 419: // harpy
case 430: // Demi Lich
case 472: // Hive mother
bFlying = TRUE;
}
return bFlying;
}
void main()
{
object oPC= OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
int nBonus = 50 + (GetLocalInt(oPC, "ClutchOfEarthBonus")*5);
int nDC = 10 + GetLocalInt(oPC, "ClutchOfEarthBonus") + GetDCAbilityModForClass(GetPrimarySpellcastingClass(oPC), oPC);
effect eVis = EffectVisualEffect(VFX_IMP_HEAD_NATURE);
effect eEffect = EffectMovementSpeedDecrease(nBonus);
eEffect = SupernaturalEffect(eEffect);
if (!GetLocalInt(oPC, "ClutchOfEarthBonus"))
{
FloatingTextStringOnCreature("You do not have a spell available of adequate level or type", oPC, FALSE);
return;
}
if (EFIsFlying(oTarget) == TRUE)
{
FloatingTextStringOnCreature("Clutch of Earth does not affect flying enemies", oPC, FALSE);
return;
}
if (GetLocalInt(oTarget, "ClutchOfEarthSaved") == TRUE)
{
FloatingTextStringOnCreature("This creature cannot be affected by Touch of Earth for 24 hours", oPC, FALSE);
return;
}
if (!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC))
{
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oTarget, 1.0);
}
else SetLocalInt(oTarget, "ClutchOfEarthSaved", TRUE);
}