public void OnImpact(NWPlayer oPC, NWObject oTarget) { int perkLevel = _perk.GetPCPerkLevel(oPC, PerkType.Evasiveness); int damageBase; float length = 12.0f; int randomDamage; switch (perkLevel) { case 1: damageBase = 1; randomDamage = 6; // 6 = DAMAGE_BONUS_1d4 constant break; case 2: damageBase = 1; randomDamage = 8; // 8 = DAMAGE_BONUS_1d8 constant break; case 3: damageBase = 2; randomDamage = 10; // 10 = DAMAGE_BONUS_2d6 constant break; case 4: damageBase = 2; randomDamage = 11; // 11 = DAMAGE_BONUS_2d8 constant break; case 5: damageBase = 3; randomDamage = 15; // 15 = DAMAGE_BONUS_2d12 constant break; default: return; } Effect effect = _.EffectDamageShield(damageBase, randomDamage, DAMAGE_TYPE_MAGICAL); _.ApplyEffectToObject(DURATION_TYPE_TEMPORARY, effect, oPC.Object, length); effect = _.EffectVisualEffect(VFX_DUR_AURA_ORANGE); _.ApplyEffectToObject(DURATION_TYPE_TEMPORARY, effect, oPC.Object, length); effect = _.EffectVisualEffect(VFX_IMP_AC_BONUS); _.ApplyEffectToObject(DURATION_TYPE_INSTANT, effect, oPC.Object); }