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.
110 lines
5.1 KiB
Plaintext
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;
|
|
} |