PRC8/nwn/nwnprc/trunk/scripts/eog_spittle.nss
Jaysyn904 0f43e5cbd2 2025-04-15 Update
Added Elven blades to Weaponmaster prereqs
Fixed Beckon the Frozen
Fixed bug with Fire Brand
Fixed duration bug with Improved Invisibility
Added Soul Eater to Shifter prereqs
Fixed ability based class prereqs in prc_prereq.nss
Update Eye of Gruumsh for epic levels
Update Ur-Priest for epic levels
Update Forsaker for epic levels
Update Anima Mage for epic levels
Update Serene Guardian for epic levels
Bladesinger abilities can use chain shirts
Fixed Elemental Abjuration
Fixed bug with prc cache creature.
Forsakers can use non-magic items (heal kits, alchemy, etc)
Updated ruleset.2da for NWNEE update
Updated AotS bonus feats

-Notes
Added 3.5e Template index
Added 3.5e update booklet

Removed release archive
2025-04-15 18:10:14 -04:00

55 lines
2.1 KiB
Plaintext

//:////////////////////////////////////
//: Eye of Gruumsh - Blinding Spittle
//: ranged touch attack
//: Reflex save (DC 10 + Eye of Gruumsh level + EoG Con bonus)
//: Causes blindness
//:////////////////////////////////////
#include "prc_inc_sp_tch"
void CheckBlindness(object oTarget)
{
if (GetIsDead(oTarget) || !PRCGetIsFighting(oTarget) && PRCGetHasEffect(EFFECT_TYPE_BLINDNESS, oTarget) )
{
PRCRemoveSpecificEffect(EFFECT_TYPE_BLINDNESS, oTarget);
}
else if(PRCGetHasEffect(EFFECT_TYPE_BLINDNESS, oTarget) )
{
DelayCommand(6.0, CheckBlindness(oTarget) );
}
}
void main()
{
object oCaster = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
int iTargetRace = MyPRCGetRacialType(oTarget);
int iBeholder = iTargetRace == RACIAL_TYPE_ABERRATION && GetHasSpell(710, oTarget) && GetHasSpell(711, oTarget) && GetHasSpell(712, oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_ACID_S), oTarget);
if(GetDistanceBetween(oCaster, oTarget) < 6.2 && // has to be within 20 ft.
iTargetRace != RACIAL_TYPE_OOZE && // has to use sight to attack
//iTargetRace != RACIAL_TYPE_CONSTRUCT &&
//iTargetRace != RACIAL_TYPE_UNDEAD && //:: none of these have any intrinsic immmunity to blindness
//iTargetRace != RACIAL_TYPE_ELEMENTAL &&
//iTargetRace != RACIAL_TYPE_VERMIN &&
!iBeholder)
{
int iHitEnemy = PRCDoRangedTouchAttack(oTarget);;
if(iHitEnemy > 0)
{
int iDC = 10 + GetLevelByClass(CLASS_TYPE_PRC_EYE_OF_GRUUMSH, oCaster) + GetAbilityModifier(ABILITY_CONSTITUTION, oCaster);
if(ReflexSave(oTarget, iDC, SAVING_THROW_TYPE_ACID, oCaster) == 0 && !GetIsImmune(oTarget, IMMUNITY_TYPE_BLINDNESS))
{
effect eBlind = EffectBlindness();
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBlind, oTarget);
DelayCommand(6.0,CheckBlindness(oTarget) );
}
}
}
}