Esempio n. 1
0
        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();
                }
            }
        }
Esempio n. 2
0
        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));
                }
            }
        }
Esempio n. 4
0
        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));
            }
        }
Esempio n. 5
0
        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();
                }
            }
        }