Ejemplo n.º 1
0
        public void AbilityDK_PlagueStrike_BP_Basic()
        {
            // Needs AP passed in
            Stats FFTestStats = new StatsDK();

            FFTestStats.AttackPower = 100;

            Item i = new Item("Test", ItemQuality.Common, ItemType.Dagger, 1, "", ItemSlot.MainHand, "", false, new Stats(), new Stats(), ItemSlot.None, ItemSlot.None, ItemSlot.None, 10, 20, ItemDamageType.Physical, 2, "");

            Rawr.TankDK.CalculationOptionsTankDK c = new Rawr.TankDK.CalculationOptionsTankDK();
            //c.talents = new DeathKnightTalents();
            //Weapon w = new Weapon(i, FFTestStats, c, 0f);

            CombatState combatState = new CombatState();
            //combatState.m_Stats = FFTestStats;
            //combatState.MH = w;
            //combatState.m_Talents = c.talents;

            //AbilityDK_PlagueStrike PS = new AbilityDK_PlagueStrike(combatState);

            // Blood Plauge application.
            //AbilityDK_BloodPlague BP = new AbilityDK_BloodPlague(combatState);

            // A disease dealing [0 + AP * 0.055 * 1.15] Shadow damage every 3 sec .
            // Base damage 0
            // Bonus from attack power [AP * 0.055 * 1.15]

            // Plague Strike Checking

            /*
             * Assert.IsTrue(PS.szName == "Plague Strike", "Name");
             * Assert.AreEqual(PS.AbilityCost[(int)DKCostTypes.Blood], 0, "Blood Rune");
             * Assert.AreEqual(PS.AbilityCost[(int)DKCostTypes.Frost], 0, "Frost Rune");
             * Assert.AreEqual(PS.AbilityCost[(int)DKCostTypes.UnHoly], 1, "UnHoly Rune");
             * Assert.AreEqual(PS.AbilityCost[(int)DKCostTypes.RunicPower], -10, "RP");
             * Assert.AreEqual(Math.Floor((378 + PS.wMH.damage) / 2), PS.uBaseDamage, "BaseDamage");
             * Assert.AreEqual(Math.Floor((378 + PS.wMH.damage) / 2), PS.uBaseDamage, "Total Damage");
             * Assert.AreEqual(PS.uRange, AbilityDK_Base.MELEE_RANGE, "Range");
             * Assert.AreEqual(PS.tDamageType, ItemDamageType.Physical, "Damage Type");
             * Assert.AreEqual(PS.Cooldown, 1500u, "Cooldown");
             *
             * // Blood Plague Checking
             * Assert.IsTrue(BP.szName == "Blood Plague", "Name");
             * Assert.AreEqual(BP.AbilityCost[(int)DKCostTypes.Blood], 0, "Blood Rune");
             * Assert.AreEqual(BP.AbilityCost[(int)DKCostTypes.Frost], 0, "Frost Rune");
             * Assert.AreEqual(BP.AbilityCost[(int)DKCostTypes.UnHoly], 0, "UnHoly Rune");
             * Assert.AreEqual(BP.AbilityCost[(int)DKCostTypes.RunicPower], 0, "Runic Power");
             * Assert.AreEqual(BP.uBaseDamage, 0u, "Damage");
             * Assert.AreEqual(BP.tDamageType, ItemDamageType.Shadow, "Damage Type");
             * // Not sure if this actually needs a Cooldown.
             * //            Assert.AreEqual(BP.Cooldown, 0u, "Cooldown");
             * Assert.AreEqual(BP.uDuration, 15000u, "Duration");
             * Assert.AreEqual(BP.uTickRate, 3000u, "TickRate");
             * Assert.AreEqual((int)(FFTestStats.AttackPower * 0.055f * 1.15f), BP.GetTickDamage(), 0.1, "GetTickDamage");
             * Assert.AreEqual((int)(BP.GetTickDamage() * (15 / 3)), BP.GetTotalDamage(), 0.1, "GetTotalDamage");
             * */
        }
Ejemplo n.º 2
0
        /// <summary>
        /// With Triggers already setup, just pass into the Accumulate function and return the values
        /// </summary>
        /// <param name="effect"></param>
        /// <returns></returns>
        public StatsDK getSpecialEffects(SpecialEffect effect)
        {
            StatsDK statsAverage = new StatsDK();

            triggerIntervals[Trigger.Use] = effect.Cooldown;
            if (float.IsInfinity(effect.Cooldown))
            {
                triggerIntervals[Trigger.Use] = m_bo.BerserkTimer;
            }

            effect.AccumulateAverageStats(statsAverage, triggerIntervals, triggerChances, unhastedAttackSpeed, m_bo.BerserkTimer);
            return(statsAverage);
        }