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.
86 lines
2.6 KiB
Plaintext
86 lines
2.6 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Pulse: Disease
|
|
//:: NW_S1_PulsDis
|
|
//:: Copyright (c) 2001 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
A wave of disease spreads out from the creature
|
|
and infects all those within 10ft
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Preston Watamaniuk
|
|
//:: Created On: Aug 14, 2000
|
|
//:://////////////////////////////////////////////
|
|
//#include "wm_include"
|
|
#include "prc_inc_spells"
|
|
|
|
void main()
|
|
{
|
|
//if (WildMagicOverride()) { return; }
|
|
|
|
//:: Declare major variables
|
|
object oNPC = OBJECT_SELF;
|
|
object oTarget;
|
|
|
|
int nRacial = MyPRCGetRacialType(oNPC);
|
|
int nHD = GetHitDice(oNPC);
|
|
int nDamage = d6(nHD);
|
|
int nDisease;
|
|
|
|
float fDelay;
|
|
|
|
effect eDisease;
|
|
effect ePulse = EffectVisualEffect(266);
|
|
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NATURE);
|
|
|
|
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, ePulse, GetLocation(oNPC));
|
|
|
|
//Determine the disease type based on the Racial Type
|
|
switch (nRacial)
|
|
{
|
|
case RACIAL_TYPE_VERMIN:
|
|
nDisease = DISEASE_VERMIN_MADNESS;
|
|
break;
|
|
case RACIAL_TYPE_UNDEAD:
|
|
nDisease = DISEASE_FILTH_FEVER;
|
|
break;
|
|
case RACIAL_TYPE_OUTSIDER:
|
|
nDisease = DISEASE_DEMON_FEVER;
|
|
break;
|
|
case RACIAL_TYPE_MAGICAL_BEAST:
|
|
nDisease = DISEASE_SOLDIER_SHAKES;
|
|
break;
|
|
case RACIAL_TYPE_ABERRATION:
|
|
nDisease = DISEASE_BLINDING_SICKNESS;
|
|
break;
|
|
default:
|
|
nDisease = DISEASE_MINDFIRE;
|
|
break;
|
|
}
|
|
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
|
|
|
//Get first target in spell area
|
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
|
while(GetIsObjectValid(oTarget))
|
|
{
|
|
if(oTarget != oNPC)
|
|
{
|
|
if(!GetIsReactionTypeFriendly(oTarget))
|
|
{
|
|
//Fire cast spell at event for the specified target
|
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_DISEASE));
|
|
//Determine effect delay
|
|
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
|
eDisease = EffectDisease(nDisease);
|
|
//Apply the VFX impact and effects
|
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDisease, oTarget));
|
|
}
|
|
}
|
|
//Get next target in spell area
|
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
|
}
|
|
}
|
|
|
|
|