forked from Jaysyn/PRC8
47 lines
1.6 KiB
Plaintext
47 lines
1.6 KiB
Plaintext
|
//::///////////////////////////////////////////////
|
||
|
//:: 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)));
|
||
|
}
|