public void OnImpact(NWPlayer player, NWObject target, int level) { var effectiveStats = _playerStat.GetPlayerItemEffectiveStats(player); int luck = _perk.GetPCPerkLevel(player, PerkType.Lucky) + effectiveStats.Luck; int lightBonus = effectiveStats.LightAbility; int min = 1; float length; int damage; int wisdom = player.WisdomModifier; int intelligence = player.IntelligenceModifier; min += lightBonus / 4 + wisdom / 3 + intelligence / 4; switch (level) { case 1: damage = _random.D4(1, min); length = 3; break; case 2: damage = _random.D4(1, min); length = 6; break; case 3: damage = _random.D6(1, min); length = 6; break; case 4: damage = _random.D8(1, min); length = 6; break; case 5: damage = _random.D8(1, min); length = 9; break; case 6: // Only available with background perk damage = _random.D12(1, min); length = 9; break; default: return; } if (_random.Random(100) + 1 <= luck) { length = length * 2; player.SendMessage("Lucky force push!"); } _.ApplyEffectToObject(DURATION_TYPE_INSTANT, _.EffectDamage(damage, DAMAGE_TYPE_POSITIVE), target); _.ApplyEffectToObject(DURATION_TYPE_TEMPORARY, _.EffectKnockdown(), target, length); _skill.RegisterPCToNPCForSkill(player, target, SkillType.LightSideAbilities); }
public void OnImpact(NWPlayer player, NWObject target, int level) { int damage; float duration; switch (level) { case 1: damage = _random.D4(1); duration = 6; break; case 2: damage = _random.D8(1); duration = 6; break; case 3: damage = _random.D8(2); duration = 6; break; case 4: damage = _random.D8(2); duration = 12; break; case 5: damage = _random.D8(3); duration = 12; break; case 6: damage = _random.D8(4); duration = 12; break; case 7: damage = _random.D8(5); duration = 12; break; case 8: damage = _random.D8(5); duration = 18; break; case 9: damage = _random.D8(6); duration = 24; break; default: return; } _.ApplyEffectToObject(DURATION_TYPE_INSTANT, _.EffectDamage(damage, DAMAGE_TYPE_PIERCING), target); _.ApplyEffectToObject(DURATION_TYPE_TEMPORARY, _.EffectCutsceneImmobilize(), target, duration); _.ApplyEffectToObject(DURATION_TYPE_TEMPORARY, _.EffectVisualEffect(VFX_IMP_ACID_L), target, duration); }
public void Tick(NWCreature oCaster, NWObject oTarget, int currentTick, int effectiveLevel, string data) { if (currentTick % 2 != 0) return; int damage = _random.D4(1); oCaster.AssignCommand(() => { _.ApplyEffectToObject(DURATION_TYPE_INSTANT, _.EffectDamage(damage, DAMAGE_TYPE_FIRE), oTarget); }); }
public void OnImpact(NWPlayer player, NWObject target, int perkLevel) { int damage; float length; switch (perkLevel) { case 1: damage = _random.D4(1); length = 6.0f; break; case 2: damage = _random.D4(2); length = 6.0f; break; case 3: damage = _random.D6(2); length = 6.0f; break; case 4: damage = _random.D6(2); length = 9.0f; break; case 5: damage = _random.D6(3); length = 9.0f; break; case 6: damage = _random.D8(3); length = 9.0f; break; default: return; } _.ApplyEffectToObject(DURATION_TYPE_TEMPORARY, _.EffectKnockdown(), target.Object, length); _.ApplyEffectToObject(DURATION_TYPE_INSTANT, _.EffectDamage(damage, DAMAGE_TYPE_BLUDGEONING), target); }
private void DoDiceRoll(NWPlayer user, int sides, int number) { int value; if (number < 1) { number = 1; } else if (number > 10) { number = 10; } switch (sides) { case 2: value = _random.D2(number); break; case 4: value = _random.D4(number); break; case 6: value = _random.D6(number); break; case 8: value = _random.D8(number); break; case 10: value = _random.D10(number); break; case 20: value = _random.D20(number); break; case 100: value = _random.D100(number); break; default: value = 0; break; } string dieRoll = number + "d" + sides; string message = _color.SkillCheck("Dice Roll: ") + dieRoll + ": " + value; user.SpeakString(message); }
public void OnImpact(NWPlayer player, NWObject target, int level) { int damage; int seconds; int dotDamage; switch (level) { case 1: damage = _random.D4(1); seconds = 6; dotDamage = 1; break; case 2: damage = _random.D8(1); seconds = 6; dotDamage = 1; break; case 3: damage = _random.D8(2); seconds = 6; dotDamage = 1; break; case 4: damage = _random.D8(2); seconds = 12; dotDamage = 2; break; case 5: damage = _random.D8(3); seconds = 12; dotDamage = 2; break; case 6: damage = _random.D8(4); seconds = 12; dotDamage = 2; break; case 7: damage = _random.D8(5); seconds = 12; dotDamage = 3; break; case 8: damage = _random.D8(5); seconds = 18; dotDamage = 3; break; case 9: damage = _random.D8(6); seconds = 24; dotDamage = 3; break; default: return; } _.ApplyEffectToObject(DURATION_TYPE_INSTANT, _.EffectDamage(damage, DAMAGE_TYPE_PIERCING), target); _customEffect.ApplyCustomEffect(player, target.Object, CustomEffectType.Bleeding, seconds, level, Convert.ToString(dotDamage)); }
public void OnImpact(NWPlayer player, NWObject target, int perkLevel) { int damage = 0; float duration = 0.0f; switch (perkLevel) { case 1: damage = _random.D4(1); duration = 6; break; case 2: damage = _random.D4(2); duration = 6; break; case 3: damage = _random.D4(2); duration = 9; break; case 4: damage = _random.D8(2); duration = 9; break; case 5: damage = _random.D8(2); duration = 12; break; case 6: damage = _random.D6(3); duration = 15; break; case 7: damage = _random.D8(3); duration = 15; break; case 8: damage = _random.D8(3); duration = 18; break; case 9: damage = _random.D8(4); duration = 18; break; case 10: damage = _random.D8(4); duration = 21; break; } _.ApplyEffectToObject(DURATION_TYPE_INSTANT, _.EffectDamage(damage, DAMAGE_TYPE_SLASHING), target); _.ApplyEffectToObject(DURATION_TYPE_TEMPORARY, _.EffectACDecrease(3), target, duration); _.ApplyEffectToObject(DURATION_TYPE_INSTANT, _.EffectVisualEffect(VFX_IMP_HEAD_EVIL), target); player.SendMessage("Your target's armor has been breached."); }