示例#1
0
        public void SetDPS(CharacterCalculationsRetribution calc)
        {
            calc.WhiteSkill           = White;
            calc.SealSkill            = Seal;
            calc.SealDotSkill         = SealDot;
            calc.CommandSkill         = SoC;
            calc.JudgementSkill       = Judge;
            calc.TemplarsVerdictSkill = TV;
            calc.CrusaderStrikeSkill  = CS;
            calc.ConsecrationSkill    = Cons;
            calc.ExorcismSkill        = Exo;
            calc.HolyWrathSkill       = HW;
            calc.HammerOfWrathSkill   = HoW;
            calc.GoakSkill            = GoaK;

            calc.DPSPoints = White.GetDPS() +
                             Seal.GetDPS() +
                             SealDot.GetDPS() +
                             SoC.GetDPS() +
                             Judge.GetDPS() +
                             CS.GetDPS() +
                             TV.GetDPS() +
                             Exo.GetDPS() +
                             HW.GetDPS() +
                             Cons.GetDPS() +
                             HoW.GetDPS() +
                             GoaK.GetDPS() +
                             calc.OtherDPS;
        }
示例#2
0
 public float DPS()
 {
     return
         (White.WhiteDPS() +
          SealDPS(Seal, SealDot) +
          GetAbilityDps(Judge) +
          GetAbilityDps(DS) +
          GetAbilityDps(CS) +
          GetAbilityDps(Cons) +
          GetAbilityDps(Exo) +
          GetAbilityDps(HoW) +
          HandOfReckoningDPS(HoR));
 }
示例#3
0
        protected Rotation(CombatStats combats)
        {
            if (combats == null)
            {
                throw new ArgumentNullException("combats");
            }

            Combats = combats;
            CS      = combats.Talents.CrusaderStrike == 0 ? (Skill) new NullCrusaderStrike(combats) : (Skill) new CrusaderStrike(combats);
            DS      = combats.Talents.DivineStorm == 0 ? (Skill) new NullCrusaderStrike(combats) : (Skill) new DivineStorm(combats);
            Exo     = new Exorcism(combats);
            HoW     = new HammerOfWrath(combats);
            Cons    = new Consecration(combats);
            White   = new White(combats);
            HoR     = new HandOfReckoning(combats);

            switch (combats.CalcOpts.Seal)
            {
            case SealOf.Righteousness:
                Seal    = new SealOfRighteousness(combats);
                SealDot = new NullSealDoT(combats);
                Judge   = new JudgementOfRighteousness(combats);
                break;

            case SealOf.Command:
                if (combats.Talents.SealOfCommand == 0)
                {
                    goto default;
                }

                Seal    = new SealOfCommand(combats);
                SealDot = new NullSealDoT(combats);
                Judge   = new JudgementOfCommand(combats);
                break;

            case SealOf.Vengeance:
                float stack = AverageSoVStackSize();
                Seal    = new SealOfVengeance(combats, stack);
                SealDot = new SealOfVengeanceDoT(combats, stack);
                Judge   = new JudgementOfVengeance(combats, stack);
                break;

            default:
                Seal    = new NullSeal(combats);
                SealDot = new NullSealDoT(combats);
                Judge   = new NullJudgement(combats);
                break;
            }
        }
示例#4
0
        public float GetMeleeCritsPerSec()
        {
            // Melee crit procs can be triggered by:
            // - Crusader Strike crits
            // - Divine Storm crits on each target
            // - Weapon swing crits
            // - Tiny Abomination in a Jar releasing attack crits
            // (2 multiplier needs to be moved to another place)
            // - Judgement crits

            return
                (GetAbilityCritsPerSecond(CS) +
                 GetAbilityCritsPerSecond(DS) +
                 White.ChanceToCrit() / Combats.AttackSpeed +
                 Combats.Stats.MoteOfAnger * 2 * White.ChanceToCrit() +
                 GetAbilityCritsPerSecond(Judge));
        }
示例#5
0
        public float GetPhysicalAttacksPerSec()
        {
            // Physical hit procs can be triggered by:
            // - Crusader Strike hits
            // - Divine Storm hits
            // - Weapon swing hits
            // - Tiny Abomination in a Jar releasing attack hits
            // (2 multiplier needs to be moved to another place)
            // - Judgement hits
            // - Hammer of Wrath hits

            return
                (GetAbilityHitsPerSecond(CS) +
                 GetAbilityHitsPerSecond(DS) +
                 White.ChanceToLand() / Combats.AttackSpeed +
                 Combats.Stats.MoteOfAnger * 2 * White.ChanceToLand() +
                 GetAbilityHitsPerSecond(Judge) +
                 GetAbilityHitsPerSecond(HoW));
        }
示例#6
0
        public void SetDPS(CharacterCalculationsRetribution calc)
        {
            SetCharacterCalculations(calc);

            calc.AverageSoVStack = AverageSoVStackSize();
            calc.SoVOvertake     = SoVOvertakeTime();

            calc.WhiteDPS           = White.WhiteDPS();
            calc.SealDPS            = SealDPS(Seal, SealDot);
            calc.JudgementDPS       = GetAbilityDps(Judge);
            calc.DivineStormDPS     = GetAbilityDps(DS);
            calc.CrusaderStrikeDPS  = GetAbilityDps(CS);
            calc.ConsecrationDPS    = GetAbilityDps(Cons);
            calc.ExorcismDPS        = GetAbilityDps(Exo);
            calc.HammerOfWrathDPS   = GetAbilityDps(HoW);
            calc.HandOfReckoningDPS = HandOfReckoningDPS(HoR);

            calc.WhiteSkill           = White;
            calc.SealSkill            = Seal;
            calc.JudgementSkill       = Judge;
            calc.DivineStormSkill     = DS;
            calc.CrusaderStrikeSkill  = CS;
            calc.ConsecrationSkill    = Cons;
            calc.ExorcismSkill        = Exo;
            calc.HammerOfWrathSkill   = HoW;
            calc.HandOfReckoningSkill = HoR;

            calc.DPSPoints =
                calc.WhiteDPS +
                calc.SealDPS +
                calc.JudgementDPS +
                calc.CrusaderStrikeDPS +
                calc.DivineStormDPS +
                calc.ExorcismDPS +
                calc.HandOfReckoningDPS +
                calc.ConsecrationDPS +
                calc.HammerOfWrathDPS +
                calc.OtherDPS;
        }