Added "removed" folder
This commit is contained in:
113
_removed/nw_s1_draglight.nss
Normal file
113
_removed/nw_s1_draglight.nss
Normal file
@@ -0,0 +1,113 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Dragon Breath Lightning
|
||||
//:: NW_S1_DragLightn
|
||||
//:: Copyright (c) 2001 Bioware Corp.
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
Calculates the proper damage and DC Save for the
|
||||
breath weapon based on the HD of the dragon.
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Preston Watamaniuk
|
||||
//:: Created On: May 9, 2001
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
Patch 1.70
|
||||
|
||||
- wrong target check (could affect other NPCs)
|
||||
- damage was the same for all creatures in AoE
|
||||
- old evasion behaviour (now that evasion is applied will appear in log)
|
||||
- did signalized wrong spell id
|
||||
> breath weapon damage and DC calculation changed in order to allow higher values
|
||||
for custom content dragons with 40+ HD. DC calculation is now 10+1/2 dragon's HD+
|
||||
dragon's constitution modifier.
|
||||
*/
|
||||
|
||||
#include "70_inc_dragons"
|
||||
#include "x0_i0_spells"
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
int nDamage = GetDragonBreathNumDice();
|
||||
int nDC = GetDragonBreathDC();
|
||||
|
||||
//When used by a dragon disciple, calculate DC and damage based on their DD levels
|
||||
if (GetLocalInt(OBJECT_SELF, "ddbreath") == 1 )
|
||||
{
|
||||
int nLevel = GetLevelByClass(CLASS_TYPE_DRAGONDISCIPLE, OBJECT_SELF);
|
||||
nDamage = 2*nLevel / 3;
|
||||
//if (nLevel == 29) nDamage = 25;
|
||||
//if (nLevel == 30) nDamage = 30;
|
||||
|
||||
switch (nLevel)
|
||||
{
|
||||
case 1: nDC = 15; break;
|
||||
case 2: nDC = 15; break;
|
||||
case 3: nDC = 15; break;
|
||||
case 4: nDC = 15; break;
|
||||
case 5: nDC = 16; break;
|
||||
case 6: nDC = 16; break;
|
||||
case 7: nDC = 17; break;
|
||||
case 8: nDC = 17; break;
|
||||
case 9: nDC = 18; break;
|
||||
case 10: nDC = 18; break;
|
||||
case 11: nDC = 19; break;
|
||||
case 12: nDC = 20; break;
|
||||
case 13: nDC = 21; break;
|
||||
case 14: nDC = 22; break;
|
||||
case 15: nDC = 23; break;
|
||||
case 16: nDC = 24; break;
|
||||
case 17: nDC = 25; break;
|
||||
case 18: nDC = 26; break;
|
||||
case 19: nDC = 27; break;
|
||||
case 20: nDC = 28; break;
|
||||
case 21: nDC = 29; break;
|
||||
case 22: nDC = 30; break;
|
||||
case 23: nDC = 31; break;
|
||||
case 24: nDC = 32; break;
|
||||
case 25: nDC = 33; break;
|
||||
case 26: nDC = 34; break;
|
||||
case 27: nDC = 35; break;
|
||||
case 28: nDC = 36; break;
|
||||
case 29: nDC = 37; break;
|
||||
case 30: nDC = 38; break;
|
||||
}
|
||||
}
|
||||
//Done
|
||||
|
||||
int nDamStrike;
|
||||
float fDelay;
|
||||
//effect eLightning = EffectBeam(VFX_BEAM_LIGHTNING, OBJECT_SELF,BODY_NODE_HAND);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
|
||||
effect eBreath;
|
||||
|
||||
if (GetLocalInt(OBJECT_SELF, "ddbreath") == 0 ) PlayDragonBattleCry();
|
||||
//Get first target in spell area
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation());
|
||||
while (GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(oTarget != OBJECT_SELF && spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF))
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_DRAGON_BREATH_LIGHTNING));
|
||||
//randomize damage for each creature in AoE
|
||||
nDamStrike = d10(nDamage);
|
||||
if (GetLocalInt(OBJECT_SELF, "ddbreath") == 0 ) nDamStrike = d8(nDamage);
|
||||
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||
nDamStrike = GetReflexAdjustedDamage(nDamStrike, oTarget, nDC, SAVING_THROW_TYPE_ELECTRICITY, OBJECT_SELF);
|
||||
if(nDamStrike > 0)
|
||||
{
|
||||
//Set the damage effect
|
||||
eBreath = EffectDamage(nDamStrike, DAMAGE_TYPE_ELECTRICAL);
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
//Apply the VFX impact and effects
|
||||
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT,eBreath,oTarget));
|
||||
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oTarget));
|
||||
}
|
||||
}
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation());
|
||||
}
|
||||
SetLocalInt(OBJECT_SELF, "ddbreath", 0);
|
||||
}
|
Reference in New Issue
Block a user