public override void DoAction() { Weapon weapon = Player.MH; ResultType res = Player.YellowAttackEnemy(Player.Sim.Boss); int minDmg = (int)Math.Round(weapon.DamageMin + Simulation.Normalization(weapon) * (Player.AP + Player.nextAABonus) / 14); int maxDmg = (int)Math.Round(weapon.DamageMax + Simulation.Normalization(weapon) * (Player.AP + Player.nextAABonus) / 14); Player.nextAABonus = 0; int damage = (int)Math.Round((Randomer.Next(minDmg, maxDmg + 1) + 68) * Player.Sim.DamageMod(res) * Simulation.ArmorMitigation(Player.Sim.Boss.Armor) * (1 + (0.02 * Player.GetTalentPoints("Agg"))) * (res == ResultType.Crit ? 1 + (0.06 * Player.GetTalentPoints("Letha")) : 1) * (1 + (0.01 * Player.GetTalentPoints("Murder"))) * Player.DamageMod ); CommonAction(); if (res == ResultType.Parry || res == ResultType.Dodge) { // TODO à vérifier Player.Resource -= Cost / 2; } else { Player.Resource -= Cost; } if (res == ResultType.Hit || res == ResultType.Crit || res == ResultType.Block || res == ResultType.Glance) { Player.Combo++; } /* * if (res == ResultType.Crit && Randomer.NextDouble() < 0.2 * Player.GetTalentPoints("SF")) * { * Player.Combo++; * } */ RegisterDamage(new ActionResult(res, damage)); Player.CheckOnHits(true, false, res); }
public override void DoAction() { ResultType res = Player.YellowAttackEnemy(Player.Sim.Boss); CommonAction(); if (res != ResultType.Parry && res != ResultType.Dodge) { Player.Ressource -= RessourceCost; } int minDmg = (int)Math.Round(Player.MH.DamageMin + Simulation.Normalization(Player.MH) * Player.AP / 14); int maxDmg = (int)Math.Round(Player.MH.DamageMax + Simulation.Normalization(Player.MH) * Player.AP / 14); /* * if (Player.OH != null) * { * minDmg += (int)Math.Round(Player.OH.DamageMin + Simulation.Normalization(Player.OH) * Player.AP / 14); * maxDmg += (int)Math.Round(Player.OH.DamageMax + Simulation.Normalization(Player.OH) * Player.AP / 14); * } */ int damage = (int)Math.Round(Player.Sim.random.Next(minDmg, maxDmg + 1) * Player.Sim.DamageMod(res) * Entity.ArmorMitigation(Player.Sim.Boss.Armor) * (res == ResultType.Crit ? 1 + (0.1 * Player.GetTalentPoints("Impale")) : 1) * (Player.DualWielding() ? 1 : (1 + 0.01 * Player.GetTalentPoints("2HS")))); RegisterDamage(new ActionResult(res, damage)); if (Player.GetTalentPoints("DW") > 0) { DeepWounds.CheckProc(Player, res, Player.GetTalentPoints("DW")); } if (Player.GetTalentPoints("Flurry") > 0) { Flurry.CheckProc(Player, res, Player.GetTalentPoints("Flurry")); } if (Player.MH.Enchantment.Name == "Crusader") { Crusader.CheckProc(Player, res, Player.MH.Speed); } }
public override void DoAction() { ResultType res = Player.YellowAttackEnemy(Player.Sim.Boss); CommonAction(); Player.Resource -= Cost; int minDmg = (int)Math.Round(Player.MH.DamageMin + Simulation.Normalization(Player.MH) * Player.AP / 14); int maxDmg = (int)Math.Round(Player.MH.DamageMax + Simulation.Normalization(Player.MH) * Player.AP / 14); int damage = (int)Math.Round(Randomer.Next(minDmg, maxDmg + 1) * Player.Sim.DamageMod(res) * Simulation.ArmorMitigation(Player.Sim.Boss.Armor) * Player.DamageMod * (res == ResultType.Crit ? 1 + (0.1 * Player.GetTalentPoints("Impale")) : 1) * (Player.DualWielding ? 1 : (1 + 0.01 * Player.GetTalentPoints("2HS")))); RegisterDamage(new ActionResult(res, damage)); Player.CheckOnHits(true, false, res); }