Example #1
0
        public CatAbilityBuilder(StatsCat stats, DruidTalents talents, float weaponDPS, float attackSpeed, float armorDamageMultiplier,
                                 float hasteBonus, float critMultiplier, float chanceAvoided, float chanceCritMelee,
                                 float chanceCritFurySwipes, float chanceCritMangle, float chanceCritRavage, float chanceCritShred,
                                 float chanceCritRake, float chanceCritRip, float chanceCritBite, float chanceGlance)
        {
            Stats                 = stats;
            Talents               = talents;
            WeaponDPS             = weaponDPS;
            AttackSpeed           = attackSpeed;
            ArmorDamageMultiplier = armorDamageMultiplier;
            HasteBonus            = hasteBonus;
            CritMultiplier        = critMultiplier;
            ChanceAvoided         = chanceAvoided;
            ChanceCritMelee       = chanceCritMelee;
            ChanceCritFurySwipes  = chanceCritFurySwipes;
            ChanceCritMangle      = chanceCritMangle;
            ChanceCritRavage      = chanceCritRavage;
            ChanceCritShred       = chanceCritShred;
            ChanceCritRake        = chanceCritRake;
            ChanceCritRip         = chanceCritRip;
            ChanceCritBite        = chanceCritBite;
            ChanceGlance          = chanceGlance;

            BaseDamage = WeaponDPS + AttackPower / 14f + stats.WeaponDamage;
        }
Example #2
0
        public CatRotationCalculator(StatsCat stats, float duration, float cpPerCPG, bool maintainMangle,
                                     float berserkDuration, float attackSpeed, bool omenOfClarity, bool glyphOfShred, float avoidedAttacks,
                                     float chanceExtraCPPerHit, float cpgEnergyCostMultiplier, float clearcastOnBleedChance,
                                     CatAbilityStats meleeStats, CatAbilityStats mangleStats, CatAbilityStats shredStats, CatAbilityStats rakeStats,
                                     CatAbilityStats ripStats, CatAbilityStats biteStats, CatAbilityStats roarStats)
        {
            Stats                   = stats;
            Duration                = duration;
            CPPerCPG                = cpPerCPG;
            MaintainMangle          = maintainMangle;
            AttackSpeed             = attackSpeed;
            OmenOfClarity           = omenOfClarity;
            GlyphOfShred            = glyphOfShred;
            AvoidedAttacks          = avoidedAttacks;
            ChanceExtraCPPerHit     = chanceExtraCPPerHit;
            CPGEnergyCostMultiplier = cpgEnergyCostMultiplier;
            ClearcastOnBleedChance  = clearcastOnBleedChance;
            BerserkDuration         = berserkDuration;

            MeleeStats  = meleeStats;
            MangleStats = mangleStats;
            ShredStats  = shredStats;
            RakeStats   = rakeStats;
            RipStats    = ripStats;
            BiteStats   = biteStats;
            RoarStats   = roarStats;

            //MangleDuration = mangleDuration;
            //RipDurationUptime = ripDurationUptime;
            //RipDuration = ripDuration;
            //RakeDuration = rakeDuration;
            //SavageRoarBonusDuration = savageRoarBonusDuration;

            //MeleeDamage = meleeDamage;
            //MangleDamage = mangleDamage;
            //ShredDamage = shredDamage;
            //RakeDamage = rakeDamage;
            //RipDamage = ripDamage;
            //BiteBaseDamage = biteBaseDamage;
            //BiteCPDamage = biteCPDamage;

            //MangleEnergy = mangleEnergy;
            //ShredEnergy = shredEnergy;
            //RakeEnergy = rakeEnergy;
            //RipEnergy = ripEnergy;
            //BiteEnergy = biteEnergy;
            //RoarEnergy = roarEnergy;

            float c = chanceExtraCPPerHit, h = (1f - chanceExtraCPPerHit);

            _chanceExtraCP[0] = c;
            _chanceExtraCP[1] = c * h;
            _chanceExtraCP[2] = c * c + c * h * h;
            _chanceExtraCP[3] = 2 * c * c * h + c * h * h * h;
            _chanceExtraCP[4] = c * c * c + 3 * c * c * h * h + c * h * h * h * h;

            //_chanceExactCP[0] = h;
            //_chanceExactCP[1] = c+h*h;
            //_chanceExactCP[2] = 2*c*h+h*h*h;
            //_chanceExactCP[3] = c*c+3*c*h*h+h*h*h*h;
            //_chanceExactCP[4] = 3*c*c*h+4*c*h*h*h+h*h*h*h*h;

            //float total0 = _chanceExactCP[0] + _chanceExtraCP[0];
            //float total1 = _chanceExactCP[1] + _chanceExtraCP[1];
            //float total2 = _chanceExactCP[2] + _chanceExtraCP[2];
            //float total3 = _chanceExactCP[3] + _chanceExtraCP[3];
            //float total4 = _chanceExactCP[4] + _chanceExtraCP[4];

            //ToString();
        }