PRC8/nwn/nwnprc/trunk/psionics/psi_pow_hypercog.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

81 lines
2.5 KiB
Plaintext

/*
----------------
Hypercognition
psi_pow_hypercog
----------------
17/7/05 by Stratovarius
*/ /** @file
Hypercognition
Clairsentience
Level: Seer 8
Manifesting Time: 1 standard action
Range: Personal
Target: You
Duration: 1 round/level
Power Points: 15
Metapsionics: Extend
You make lightning-fast deductions based on only the slightest clue,
pattern, or scrap of memory resident in your mind. You can make reasonable
statements about a person, place, or object, seemingly from very little
knowledge. However, your knowledge is in fact the result of a rigorously
logical process that you force your mind to undertake, digging up and
correlating every possible piece of knowledge bearing on the topic (possibly
even extracting echoes of knowledge from the Astral Plane).
The knowledge you gain manifests as a +20 enhancement bonus to Lore skill.
Augmentation: For each additional power point, the enhancement bonus to Lore
skill increases by +2.
*/
#include "psi_inc_psifunc"
#include "psi_inc_pwresist"
#include "psi_spellhook"
#include "prc_inc_spells"
void main()
{
/*
Spellcast Hook Code
Added 2004-11-02 by Stratovarius
If you want to make changes to all powers,
check psi_spellhook to find out more
*/
if (!PsiPrePowerCastCode())
{
// If code within the PrePowerCastHook (i.e. UMD) reports FALSE, do not run this spell
return;
}
// End of Spell Cast Hook
object oManifester = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
struct manifestation manif =
EvaluateManifestation(oManifester, oTarget,
PowerAugmentationProfile(PRC_NO_GENERIC_AUGMENTS,
1, PRC_UNLIMITED_AUGMENTATION
),
METAPSIONIC_EXTEND
);
if(manif.bCanManifest)
{
int nBonus = 20 + (2 * manif.nTimesAugOptUsed_1);
effect eLink = EffectSkillIncrease(SKILL_LORE, nBonus);
eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE));
eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_IMP_MAGICAL_VISION));
float fDuration = 6.0f * manif.nManifesterLevel;
if(manif.bExtend) fDuration *= 2;
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, fDuration, TRUE, -1, manif.nManifesterLevel);
}
}