コード例 #1
0
ファイル: CatAbilityStats.cs プロジェクト: rakot/rawr
        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;
        }
コード例 #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();
        }