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

110 lines
5.1 KiB
Plaintext

/////////////////////////////////////////////////////////
/*
Chosen of Evil [Vile]
Your naked devotion to wickedness causes dark powers to
take an interest in your well-being.
Prerequisites: Con 13, any other vile feat.
Benefit: As an immediate action, you can take 1 point
of Constitution damage to gain an insight bonus equal
to the number of vile feats you have, including this one.
Until the end of your next turn, you can apply this bonus
to attack rolls, saving throws, or skill checks.*/
/////////////////////////////////////////////////////////
#include "prc_inc_spells"
int GetVileFeats(object oPC);
void main()
{
object oPC = OBJECT_SELF;
if(GetIsImmune(oPC, IMMUNITY_TYPE_ABILITY_DECREASE))
{
FloatingTextStringOnCreature("If you cannot take ability damage you cannot use this feat", oPC, FALSE);
return;
}
int nBonus = GetVileFeats(oPC);
int nSpell = GetSpellId();
float fDuration = TurnsToSeconds(1);
ApplyAbilityDamage(oPC, ABILITY_CONSTITUTION, 1, DURATION_TYPE_TEMPORARY, TRUE, -1.0f);
//VFX
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_EVIL_HELP), oPC);
//Different effects
if(nSpell == SPELL_CHOSEN_EVIL_ATTACK)
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackIncrease(nBonus), oPC, fDuration);
else if(nSpell == SPELL_CHOSEN_EVIL_SAVE)
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectSavingThrowIncrease(SAVING_THROW_ALL, nBonus, SAVING_THROW_TYPE_ALL), oPC, fDuration);
else if(nSpell == SPELL_CHOSEN_EVIL_SKILL)
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectSkillIncrease(SKILL_ALL_SKILLS, nBonus), oPC, fDuration);
//epic fail
else if(DEBUG) DoDebug("Invalid SpellID: " + IntToString(nSpell));
}
int GetVileFeats(object oPC)
{
int nCount = GetHasFeat(FEAT_DARK_SPEECH, oPC)
+ GetHasFeat(FEAT_DEFORM_EYES, oPC)
+ GetHasFeat(FEAT_DEFORM_FACE, oPC)
+ GetHasFeat(FEAT_VILE_DEFORM_GAUNT, oPC)
+ GetHasFeat(FEAT_VILE_DEFORM_OBESE, oPC)
+ GetHasFeat(FEAT_EB_HAND, oPC)
+ GetHasFeat(FEAT_EB_HEAD, oPC)
+ GetHasFeat(FEAT_EB_CHEST, oPC)
+ GetHasFeat(FEAT_EB_ARM, oPC)
+ GetHasFeat(FEAT_EB_NECK, oPC)
+ GetHasFeat(FEAT_LICHLOVED, oPC)
+ GetHasFeat(FEAT_THRALL_TO_DEMON, oPC)
+ GetHasFeat(FEAT_DISCIPLE_OF_DARKNESS, oPC)
+ GetHasFeat(FEAT_VILE_WILL_DEFORM, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_CLUB, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_DAGGER, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_MACE, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_MORNINGSTAR, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_QUARTERSTAFF, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_SPEAR, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_SHORTSWORD, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_RAPIER, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_SCIMITAR, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_LONGSWORD, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_GREATSWORD, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_HANDAXE, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_BATTLEAXE, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_GREATAXE, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_HALBERD, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_LIGHTHAMMER, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_LIGHTFLAIL, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_WARHAMMER, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_HEAVYFLAIL, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_SCYTHE, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_KATANA, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_BASTARDSWORD, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_DIREMACE, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_DOUBLEAXE, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_TWOBLADED, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_KAMA, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_KUKRI, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_HEAVYCROSSBOW, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_LIGHTCROSSBOW, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_SLING, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_LONGBOW, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_SHORTBOW, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_SHURIKEN, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_DART, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_SICKLE, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_DWAXE, oPC)
+ GetHasFeat(FEAT_VILE_MARTIAL_MINDBLADE, oPC)
+ GetHasFeat(FEAT_APOSTATE, oPC)
+ GetHasFeat(FEAT_DARK_WHISPERS, oPC)
+ GetHasFeat(FEAT_MASTERS_WILL, oPC)
+ GetHasFeat(FEAT_DEFORM_MADNESS, oPC)
+ GetHasFeat(FEAT_REFLEXIVE_PSYCHOSIS, oPC)
+ GetHasFeat(FEAT_FAVORED_ZULKIRS, oPC)
+ GetHasFeat(FEAT_CHOSEN_OF_EVIL, oPC);
//+ GetHasFeat(, oPC);
return nCount;
}