public override void DoAction() { base.DoAction(); double winterChillBonusCrit = 0.1; ResultType res; double mitigation = Simulation.MagicMitigation(Player.Sim.Boss.ResistChances[School]); if (mitigation == 0) { res = ResultType.Resist; } else { res = Player.SpellAttackEnemy(Player.Sim.Boss, true, 0.02 * Player.GetTalentPoints("EP"), winterChillBonusCrit); } CommonManaSpell(); int minDmg = MIN_DMG; int maxDmg = MAX_DMG; int damage = (int)Math.Round((Randomer.Next(minDmg, maxDmg + 1) + (Player.SP * RATIO)) * (Player.Sim.DamageMod(res, School) + (res == ResultType.Crit ? 0.1 * Player.GetTalentPoints("IS") : 0)) * (1 + 0.02 * Player.GetTalentPoints("PI")) * mitigation * Player.DamageMod ); ShadowVulnerability.CheckProc(Player, this, res); RegisterDamage(new ActionResult(res, damage)); }
public override void DoAction() { base.DoAction(); ResultType res; double mitigation = Simulation.MagicMitigation(Player.Sim.Boss.ResistChances[School]); if (mitigation == 0) { res = ResultType.Resist; } else { res = Player.SpellAttackEnemy(Player.Sim.Boss, true, 0, 0.02 * Player.GetTalentPoints("Deva")); } CommonManaSpell(); int minDmg = MIN_DMG; int maxDmg = MAX_DMG; int damage = (int)Math.Round((Randomer.Next(minDmg, maxDmg + 1) + (Player.SP * RATIO)) * (Player.Sim.DamageMod(res, School) + (res == ResultType.Crit ? 0.5 * Player.GetTalentPoints("Ruin") : 0)) * (1 + 0.02 * Player.GetTalentPoints("SM")) * (1 + 0.15 * Player.GetTalentPoints("DS")) * (Player.Sim.Boss.Effects.ContainsKey(ShadowVulnerability.NAME) ? ((ShadowVulnerability)Player.Sim.Boss.Effects[ShadowVulnerability.NAME]).Modifier : 1) * mitigation * Player.DamageMod ); ShadowVulnerability.CheckProc(Player, this, res); RegisterDamage(new ActionResult(res, damage)); }