107 lines
3.7 KiB
Plaintext
107 lines
3.7 KiB
Plaintext
|
//::///////////////////////////////////////////////
|
||
|
//:: Shadow Evade
|
||
|
//:: X0_S2_ShadEvade .nss
|
||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||
|
//:://////////////////////////////////////////////
|
||
|
/*
|
||
|
Gives the caster the following bonuses:
|
||
|
Level 4:
|
||
|
5% concealment
|
||
|
5/+1 DR
|
||
|
+1 AC
|
||
|
Level 6
|
||
|
10% concealment
|
||
|
5/+2 DR
|
||
|
+2 AC
|
||
|
|
||
|
Level 8
|
||
|
15% concealment
|
||
|
10/+2 DR
|
||
|
+3 AC
|
||
|
|
||
|
Level 10
|
||
|
20% concealment
|
||
|
10/+3 DR
|
||
|
+4 AC
|
||
|
|
||
|
Lasts: 5 rounds
|
||
|
|
||
|
|
||
|
Epic:
|
||
|
+2 DR Amount +1 DR Power per 5 levels after 10
|
||
|
|
||
|
*/
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:: Created By: Preston Watamaniuk
|
||
|
//:: Created On: Oct 26, 2001
|
||
|
//:: Updated for Epic Level: 2003-07-24 Georg
|
||
|
//:://////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
//Declare major variables
|
||
|
int nLevel = GetLevelByClass(CLASS_TYPE_SHADOWDANCER);
|
||
|
int nConceal, nDRAmount, nDRPower, nAC;
|
||
|
int nDuration = GetCasterLevel(OBJECT_SELF);
|
||
|
nDuration += 55;
|
||
|
|
||
|
if (nLevel <55) // non epic
|
||
|
{
|
||
|
switch (nLevel)
|
||
|
{
|
||
|
case 4:
|
||
|
case 5: nConceal = 5; nDRAmount = 5; nDRPower = DAMAGE_POWER_PLUS_ONE; nAC = 1; break;
|
||
|
case 6:
|
||
|
case 7: nConceal = 10; nDRAmount = 5; nDRPower = DAMAGE_POWER_PLUS_TWO; nAC = 2; break;
|
||
|
case 8:
|
||
|
case 9: nConceal = 15; nDRAmount = 10; nDRPower = DAMAGE_POWER_PLUS_TWO; nAC = 3; break;
|
||
|
case 10: case 11: case 12: case 13:
|
||
|
case 14: nConceal = 20; nDRAmount = 10; nDRPower = DAMAGE_POWER_PLUS_THREE; nAC = 4; break;
|
||
|
case 15: case 16: case 17: case 18:
|
||
|
case 19: nConceal = 20; nDRAmount = 12; nDRPower = DAMAGE_POWER_PLUS_FOUR; nAC = 4; break;
|
||
|
case 20: case 21: case 22: case 23:
|
||
|
case 24: nConceal = 20; nDRAmount = 14; nDRPower = DAMAGE_POWER_PLUS_FIVE; nAC = 4; break;
|
||
|
case 25: case 26: case 27: case 28:
|
||
|
case 29: nConceal = 20; nDRAmount = 16; nDRPower = DAMAGE_POWER_PLUS_FIVE; nAC = 4; break;
|
||
|
case 30: case 31: case 32: case 33:
|
||
|
case 34: nConceal = 20; nDRAmount = 18; nDRPower = DAMAGE_POWER_PLUS_FIVE; nAC = 4; break;
|
||
|
case 35: case 36: case 37: case 38:
|
||
|
case 39: nConceal = 20; nDRAmount = 20; nDRPower = DAMAGE_POWER_PLUS_FIVE; nAC = 4; break;
|
||
|
case 40: case 41: case 42: case 43:
|
||
|
case 44: nConceal = 20; nDRAmount = 22; nDRPower = DAMAGE_POWER_PLUS_FIVE; nAC = 4; break;
|
||
|
case 45: case 46: case 47: case 48:
|
||
|
case 49: nConceal = 20; nDRAmount = 24; nDRPower = DAMAGE_POWER_PLUS_FIVE; nAC = 4; break;
|
||
|
case 50: case 51: case 52: case 53:
|
||
|
case 54: nConceal = 20; nDRAmount = 26; nDRPower = DAMAGE_POWER_PLUS_FIVE; nAC = 4; break;
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// static from here
|
||
|
nConceal = 20; nDRAmount = 28; nDRPower = DAMAGE_POWER_PLUS_FIVE; nAC = 4;
|
||
|
}
|
||
|
//Declare effects
|
||
|
effect eConceal = EffectConcealment(nConceal);
|
||
|
effect eDR = EffectDamageReduction(nDRAmount, nDRPower);
|
||
|
effect eAC = EffectACIncrease(nAC);
|
||
|
effect eDur= EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
||
|
effect eVis2 = EffectVisualEffect(VFX_DUR_PROT_SHADOW_ARMOR);
|
||
|
|
||
|
//Link effects
|
||
|
effect eLink = EffectLinkEffects(eConceal, eDR);
|
||
|
|
||
|
eLink = EffectLinkEffects(eLink, eAC);
|
||
|
eLink = EffectLinkEffects(eLink, eDur);
|
||
|
eLink = EffectLinkEffects(eLink, eVis2);
|
||
|
|
||
|
effect eVis = EffectVisualEffect(VFX_IMP_SUPER_HEROISM);
|
||
|
//Signal Spell Event
|
||
|
SignalEvent(OBJECT_SELF, EventSpellCastAt(OBJECT_SELF, 477, FALSE));
|
||
|
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
|
||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, OBJECT_SELF, RoundsToSeconds(nDuration));
|
||
|
}
|
||
|
|
||
|
|