public override void DoAction() { base.DoAction(); bool inner = Player.Effects.ContainsKey(InnerFocusBuff.NAME); CommonManaSpell(inner ? 0 : Cost); if (inner) { Player.Effects[InnerFocusBuff.NAME].EndEffect(); } ResultType res = Simulation.MagicMitigationBinary(Player.Sim.Boss.MagicResist[School]); if (res == ResultType.Hit) { res = Player.SpellAttackEnemy(Player.Sim.Boss, false, 0.02 * Player.GetTalentPoints("SF")); } if (res == ResultType.Hit) { if (Player.Sim.Boss.Effects.ContainsKey(DevouringPlagueDoT.NAME)) { Player.Sim.Boss.Effects[DevouringPlagueDoT.NAME].Refresh(); } else { new DevouringPlagueDoT(Player, Player.Sim.Boss).StartEffect(); } } }
public override void DoAction() { base.DoAction(); CommonManaSpell(); ResultType res = Simulation.MagicMitigationBinary(Player.Sim.Boss.MagicResist[School]); if (res == ResultType.Hit) { res = Player.SpellAttackEnemy(Player.Sim.Boss, false, 0.02 * Player.GetTalentPoints("Suppr")); } if (res == ResultType.Hit) { Player.Sim.RegisterAction(new RegisteredAction(this, new ActionResult(ResultType.Hit, 0), Player.Sim.CurrentTime)); if (Player.Sim.Boss.Effects.ContainsKey(CurseOfAgonyDoT.NAME)) { Player.Sim.Boss.Effects[CurseOfAgonyDoT.NAME].Refresh(); } else { new CurseOfAgonyDoT(Player, Player.Sim.Boss).StartEffect(); } } else { Player.Sim.RegisterAction(new RegisteredAction(this, new ActionResult(ResultType.Resist, 0), Player.Sim.CurrentTime)); } }
public override void ApplyTick(int damage) { // Apparently ticks can be silently resisted ResultType res = Simulation.MagicMitigationBinary(Player.Sim.Boss.MagicResist[School.Light]); if (res == ResultType.Hit) { // Recalculate tick damage each time. int currDmg = GetTickDamage(); base.ApplyTick(currDmg); } else { if (Program.logFight) { Program.Log(string.Format("{0:N2} : {1} tick {2}", Player.Sim.CurrentTime, ToString(), res)); } } }
public override void StartCast(bool forceInstant = false) { CommonManaSpell(); NextTick = Player.Sim.CurrentTime + TickDelay; ResultType res = Simulation.MagicMitigationBinary(Player.Sim.Boss.MagicResist[School]); if (res == ResultType.Hit) { res = Player.SpellAttackEnemy(Player.Sim.Boss, false, 0.02 * Player.GetTalentPoints("SF")); } if (res == ResultType.Hit) { Player.Sim.RegisterAction(new RegisteredAction(this, new ActionResult(ResultType.Hit, 0), Player.Sim.CurrentTime)); TickDamage = GetTickDamage(); base.StartCast(forceInstant); } else { Player.Sim.RegisterAction(new RegisteredAction(this, new ActionResult(ResultType.Resist, 0), Player.Sim.CurrentTime)); } }
public override void DoAction() { base.DoAction(); CommonManaSpell(); ResultType res = Simulation.MagicMitigationBinary(Player.Sim.Boss.MagicResist[School]); if (res == ResultType.Hit) { res = Player.SpellAttackEnemy(Player.Sim.Boss, false, 0.02 * Player.GetTalentPoints("Suppr")); } if (res == ResultType.Hit) { if (Player.Sim.Boss.Effects.ContainsKey(CorruptionDoT.NAME)) { Player.Sim.Boss.Effects[CorruptionDoT.NAME].Refresh(); } else { new CorruptionDoT(Player, Player.Sim.Boss).StartEffect(); } } }