Fixed CCOH, Fixed starting GP, Fixed DMFI languages, Fix cep weapon appearances, Fixed new player start up system. Added PC deleter. Added ACP 4.1. Full compile. Updated release archive.
124 lines
3.3 KiB
Plaintext
124 lines
3.3 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Bolt: Poison
|
|
//:: NW_S1_BltPoison.nss
|
|
//:: Copyright (c) 2001 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
Must make a ranged touch attack. If successful
|
|
the target is struck down with poison that
|
|
scales with level.
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Preston Watamaniuk
|
|
//:: Created On: May 22, 2001
|
|
//:://////////////////////////////////////////////
|
|
#include "NW_I0_SPELLS"
|
|
#include "prc_inc_spells"
|
|
//#include "wm_include"
|
|
|
|
void main()
|
|
{
|
|
//if (WildMagicOverride()) { return; }
|
|
|
|
//:: Declare major variables
|
|
object oNPC = OBJECT_SELF;
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
|
|
int nHD = GetHitDice(oNPC);
|
|
int nRacial = MyPRCGetRacialType(OBJECT_SELF);
|
|
int nPoison;
|
|
|
|
effect ePoison;
|
|
|
|
//Fire cast spell at event for the specified target
|
|
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_POISON));
|
|
|
|
//Determine the poison type based on the Racial Type and HD
|
|
switch (nRacial)
|
|
{
|
|
case RACIAL_TYPE_OUTSIDER:
|
|
if (nHD <= 9)
|
|
{
|
|
nPoison = POISON_QUASIT_VENOM;
|
|
}
|
|
else if (nHD > 9 && nHD < 13)
|
|
{
|
|
nPoison = POISON_BEBILITH_VENOM;
|
|
}
|
|
else if (nHD >= 13)
|
|
{
|
|
nPoison = POISON_PIT_FIEND_ICHOR;
|
|
}
|
|
break;
|
|
case RACIAL_TYPE_VERMIN:
|
|
if (nHD < 3)
|
|
{
|
|
nPoison = POISON_TINY_SPIDER_VENOM;
|
|
}
|
|
else if (nHD <= 3 && nHD < 6)
|
|
{
|
|
nPoison = POISON_SMALL_SPIDER_VENOM;
|
|
}
|
|
else if (nHD <= 6 && nHD < 9)
|
|
{
|
|
nPoison = POISON_MEDIUM_SPIDER_VENOM;
|
|
}
|
|
else if (nHD <= 9 && nHD < 12)
|
|
{
|
|
nPoison = POISON_LARGE_SPIDER_VENOM;
|
|
}
|
|
else if (nHD <= 12 && nHD < 15)
|
|
{
|
|
nPoison = POISON_HUGE_SPIDER_VENOM;
|
|
}
|
|
else if (nHD <= 15 && nHD < 18)
|
|
{
|
|
nPoison = POISON_GARGANTUAN_SPIDER_VENOM;
|
|
}
|
|
else if (nHD >= 18)
|
|
{
|
|
nPoison = POISON_COLOSSAL_SPIDER_VENOM;
|
|
}
|
|
break;
|
|
default:
|
|
if (nHD < 3)
|
|
{
|
|
nPoison = POISON_NIGHTSHADE;
|
|
}
|
|
else if (nHD <= 3 && nHD < 6)
|
|
{
|
|
nPoison = POISON_BLADE_BANE;
|
|
}
|
|
else if (nHD <= 6 && nHD < 9)
|
|
{
|
|
nPoison = POISON_BLOODROOT;
|
|
}
|
|
else if (nHD <= 9 && nHD < 12)
|
|
{
|
|
nPoison = POISON_LARGE_SPIDER_VENOM;
|
|
}
|
|
else if (nHD <= 12 && nHD < 15)
|
|
{
|
|
nPoison = POISON_LICH_DUST;
|
|
}
|
|
else if (nHD <= 15 && nHD < 18)
|
|
{
|
|
nPoison = POISON_DARK_REAVER_POWDER;
|
|
}
|
|
else if (nHD >= 18 )
|
|
{
|
|
nPoison = POISON_BLACK_LOTUS_EXTRACT;
|
|
}
|
|
|
|
break;
|
|
}
|
|
//Make a ranged touch attack
|
|
if (TouchAttackRanged (oTarget))
|
|
{
|
|
ePoison = EffectPoison(nPoison);
|
|
//Apply effects
|
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePoison, oTarget);
|
|
}
|
|
}
|
|
|