Amon_PRC8/_removed/x0_s2_shadevade.nss

107 lines
3.7 KiB
Plaintext
Raw Permalink Normal View History

2025-04-03 19:00:46 -04:00
//::///////////////////////////////////////////////
//:: 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));
}