Further file organization
Further file organization
This commit is contained in:
47
nwn/nwnprc/trunk/psionics/psi_ast_con_ptch.nss
Normal file
47
nwn/nwnprc/trunk/psionics/psi_ast_con_ptch.nss
Normal file
@@ -0,0 +1,47 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Astral Construct Poison Touch ability OnHit
|
||||
//:: psi_ast_con_ptch
|
||||
//::///////////////////////////////////////////////
|
||||
/*
|
||||
Fort save vs DC 10 + 0.5 * AC's HD + AC's Cha mod
|
||||
On failed save, 1 Con damage
|
||||
1 minute later, regardless of first save, a second
|
||||
save versus same DC, on fail 1d2 Con damage
|
||||
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Ornedan
|
||||
//:: Created On: 23.01.2005
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "prc_inc_spells"
|
||||
|
||||
|
||||
void DoPoison(object oTarget, object oCaster, int nDC, int nDam){
|
||||
//Declare major variables
|
||||
//effect eDamage = EffectAbilityDecrease(ABILITY_CONSTITUTION, nDam);
|
||||
//effect eLink = EffectLinkEffects(EffectVisualEffect(VFX_IMP_POISON_S), eDamage);
|
||||
|
||||
// First check for poison immunity, if not, make a fort save versus spells.
|
||||
if(!GetIsImmune(oTarget, IMMUNITY_TYPE_POISON) &&
|
||||
!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_POISON, oCaster))
|
||||
{
|
||||
//Apply the poison effect and VFX impact
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_POISON_S), oTarget);
|
||||
ApplyAbilityDamage(oTarget, ABILITY_CONSTITUTION, nDam, DURATION_TYPE_PERMANENT, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nDC = 10 + GetHitDice(oCaster) / 2 + GetAbilityModifier(ABILITY_CHARISMA, oCaster);
|
||||
|
||||
// Primary damage
|
||||
DoPoison(oTarget, oCaster, nDC, 1);
|
||||
|
||||
// Secondary damage
|
||||
DelayCommand(MinutesToSeconds(1), DoPoison(oTarget, oCaster, nDC, d2(1)));
|
||||
}
|
Reference in New Issue
Block a user