Added PnP Dire Rat.
Added PnP Dire Rat.
This commit is contained in:
53
nwn_dark_sun/ps_cosmicaware.nss
Normal file
53
nwn_dark_sun/ps_cosmicaware.nss
Normal file
@@ -0,0 +1,53 @@
|
||||
/************************************
|
||||
* Cosmic Awareness *
|
||||
* *
|
||||
* Cost: 20 *
|
||||
* Power Score: Wis -6 *
|
||||
* *
|
||||
*************************************/
|
||||
|
||||
#include "lib_psionic"
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC=OBJECT_SELF;
|
||||
int nCost=20;
|
||||
int nPowerScore=GetAbilityScore(oPC, ABILITY_WISDOM)-6;
|
||||
effect eVis=EffectVisualEffect(VFX_DUR_PROT_PREMONITION);
|
||||
eVis=EffectLinkEffects(EffectVisualEffect(VFX_DUR_LIGHT_WHITE_20), eVis);
|
||||
eVis=EffectLinkEffects(EffectVisualEffect(VFX_DUR_MAGICAL_SIGHT), eVis);
|
||||
eVis=EffectLinkEffects(EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE), eVis);
|
||||
effect eLink=EffectTrueSeeing();
|
||||
eLink=EffectLinkEffects(eLink, eVis);
|
||||
eLink=EffectLinkEffects(EffectImmunity(IMMUNITY_TYPE_TRAP), eLink);
|
||||
eLink=EffectLinkEffects(EffectImmunity(IMMUNITY_TYPE_SNEAK_ATTACK), eLink);
|
||||
eLink=ExtraordinaryEffect(eLink);
|
||||
int nLevel=GetEffectivePsionicLevel(oPC, FEAT_PSIONIC_COSMIC_AWARENESS);
|
||||
object oHide=GetItemInSlot(INVENTORY_SLOT_CARMOUR, oPC);
|
||||
|
||||
if (!PowerCheck(oPC, nCost, nPowerScore, FEAT_PSIONIC_COSMIC_AWARENESS)) return;
|
||||
|
||||
int nDuration=GetEnhancedDuration(nLevel);
|
||||
|
||||
if(GetIsObjectValid(oHide) && GetResRef(oHide)!="" )
|
||||
{
|
||||
AddItemProperty(DURATION_TYPE_TEMPORARY,
|
||||
ItemPropertySpellImmunitySchool(SPELL_SCHOOL_ILLUSION), oHide, TurnsToSeconds(nDuration));
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
oHide=CreateItemOnObject("ps_cosaware_it", oPC);
|
||||
DelayCommand(0.2, AssignCommand(oPC, ClearAllActions()));
|
||||
DelayCommand(0.2, AssignCommand(oPC, ActionEquipItem(oHide, INVENTORY_SLOT_CARMOUR)));
|
||||
DelayCommand(0.2, AddItemProperty(DURATION_TYPE_TEMPORARY,
|
||||
ItemPropertySpellImmunitySchool(SPELL_SCHOOL_ILLUSION), oHide, TurnsToSeconds(nDuration)));
|
||||
DestroyObject(oHide, TurnsToSeconds(nDuration));
|
||||
}
|
||||
|
||||
SignalEvent(oPC, EventSpellCastAt(oPC, SPELL_PSIONIC_COSMIC_AWARENESS, FALSE));
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oPC, TurnsToSeconds(nDuration));
|
||||
|
||||
}
|
Reference in New Issue
Block a user