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