Clear out experimental .35 files
Clear out experimental .35 files
This commit is contained in:
@@ -1,162 +0,0 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Prismatic Dragon Prismatic Breath
|
||||
//:: X2_S1_PrisSpray
|
||||
//:: Copyright (c) 2003 Bioware Corp.
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Sends out a prismatic cone that has a random
|
||||
//:: effect for each target struck.
|
||||
//:: Save is HD
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Georg Zoeller
|
||||
//:: Created On: Aug 09, 2003
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
int ApplyPrismaticEffect(int nEffect, object oTarget);
|
||||
#include "prc_inc_spells"
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget;
|
||||
int nCasterLevel = 8;
|
||||
int nRandom;
|
||||
int nHD;
|
||||
int nVisual;
|
||||
effect eVisual;
|
||||
int bTwoEffects;
|
||||
|
||||
//Set the delay to apply to effects based on the distance to the target
|
||||
float fDelay = 0.5 + GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
//Get first target in the spell area
|
||||
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 20.0, GetSpellTargetLocation());
|
||||
while (GetIsObjectValid(oTarget))
|
||||
{
|
||||
if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF) && oTarget != OBJECT_SELF)
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId()));
|
||||
//Make an SR check
|
||||
//Blind the target if they are less than 9 HD
|
||||
nHD = GetHitDice(oTarget);
|
||||
if (nHD <= 8)
|
||||
{
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectBlindness(), oTarget, RoundsToSeconds(nCasterLevel));
|
||||
}
|
||||
//Determine if 1 or 2 effects are going to be applied
|
||||
nRandom = d8();
|
||||
if(nRandom == 8)
|
||||
{
|
||||
//Get the visual effect
|
||||
nVisual = ApplyPrismaticEffect(Random(7) + 1, oTarget);
|
||||
nVisual = ApplyPrismaticEffect(Random(7) + 1, oTarget);
|
||||
}
|
||||
else
|
||||
{
|
||||
//Get the visual effect
|
||||
nVisual = ApplyPrismaticEffect(nRandom, oTarget);
|
||||
}
|
||||
//Set the visual effect
|
||||
if(nVisual != 0)
|
||||
{
|
||||
eVisual = EffectVisualEffect(nVisual);
|
||||
//Apply the visual effect
|
||||
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisual, oTarget));
|
||||
}
|
||||
}
|
||||
//Get next target in the spell area
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 20.0, GetSpellTargetLocation());
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// ApplyPrismaticEffect
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
/* Given a reference integer and a target, this function will apply the effect
|
||||
of corresponding prismatic cone to the target. To have any effect the
|
||||
reference integer (nEffect) must be from 1 to 7.*/
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Created By: Aidan Scanlan On: April 11, 2001
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
int ApplyPrismaticEffect(int nEffect, object oTarget)
|
||||
{
|
||||
int nDamage;
|
||||
effect ePrism;
|
||||
effect eVis;
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||
effect eLink;
|
||||
int nVis;
|
||||
float fDelay = 0.5 + GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
//Based on the random number passed in, apply the appropriate effect and set the visual to
|
||||
//the correct constant
|
||||
switch(nEffect)
|
||||
{
|
||||
case 1://fire
|
||||
nDamage = 20;
|
||||
nVis = VFX_IMP_FLAME_S;
|
||||
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, 31,SAVING_THROW_TYPE_FIRE);
|
||||
ePrism = EffectDamage(nDamage, DAMAGE_TYPE_FIRE);
|
||||
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, ePrism, oTarget));
|
||||
break;
|
||||
case 2: //Acid
|
||||
nDamage = 40;
|
||||
nVis = VFX_IMP_ACID_L;
|
||||
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, 31,SAVING_THROW_TYPE_ACID);
|
||||
ePrism = EffectDamage(nDamage, DAMAGE_TYPE_ACID);
|
||||
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, ePrism, oTarget));
|
||||
break;
|
||||
case 3: //Electricity
|
||||
nDamage = 80;
|
||||
nVis = VFX_IMP_LIGHTNING_S;
|
||||
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, 31,SAVING_THROW_TYPE_ELECTRICITY);
|
||||
ePrism = EffectDamage(nDamage, DAMAGE_TYPE_ELECTRICAL);
|
||||
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, ePrism, oTarget));
|
||||
break;
|
||||
case 4: //Poison
|
||||
{
|
||||
effect ePoison = EffectPoison(POISON_BEBILITH_VENOM);
|
||||
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, ePoison, oTarget));
|
||||
}
|
||||
break;
|
||||
case 5: //Paralyze
|
||||
{
|
||||
effect eDur2 = EffectVisualEffect(VFX_DUR_PARALYZED);
|
||||
if (PRCMySavingThrow(SAVING_THROW_FORT, oTarget, 31) == 0)
|
||||
{
|
||||
ePrism = EffectParalyze();
|
||||
eLink = EffectLinkEffects(eDur, ePrism);
|
||||
eLink = EffectLinkEffects(eLink, eDur2);
|
||||
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(10)));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 6: //Confusion
|
||||
{
|
||||
effect eMind = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
||||
ePrism = PRCEffectConfused();
|
||||
eLink = EffectLinkEffects(eMind, ePrism);
|
||||
eLink = EffectLinkEffects(eLink, eDur);
|
||||
|
||||
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, 31, SAVING_THROW_TYPE_MIND_SPELLS, OBJECT_SELF, fDelay))
|
||||
{
|
||||
nVis = VFX_IMP_CONFUSION_S;
|
||||
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(10)));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 7: //Death
|
||||
{
|
||||
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, 31, SAVING_THROW_TYPE_DEATH, OBJECT_SELF, fDelay))
|
||||
{
|
||||
DeathlessFrenzyCheck(oTarget);
|
||||
//nVis = VFX_IMP_DEATH;
|
||||
ePrism = EffectDeath();
|
||||
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, ePrism, oTarget));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
return nVis;
|
||||
}
|
||||
|
Reference in New Issue
Block a user