Exemple #1
0
        public void calculateTimings()
        {
            CalculateSkillData();

            float crittableInverseSum = 0;

            PetSkillInstance PrevSkill = null;

            foreach (PetSkillInstance S in skills)
            {
                S.CalculateTimings(PrevSkill);
                PrevSkill = S;

                crittableInverseSum += S.crittable_freq > 0 ? 1f / S.crittable_freq : 0;
            }

            petSpecialFrequency = crittableInverseSum > 0 ? 1f / crittableInverseSum : 0;
        }
Exemple #2
0
        public float kc_dps         = 0; // T

        public void CalculateTimings(PetSkillInstance PrevSkill)
        {
            possible_freq = cooldown - (cooldown % PetGCD) + ((cooldown % PetGCD) > 0 ? PetGCD : 0);

            gcd_left = 1;
            if (PrevSkill != null)
            {
                gcd_left = PrevSkill.gcd_left - PrevSkill.gcd_used;
            }

            gcd_needed = cooldown >= 30 ? 0 : possible_freq > 0 ? PetGCD / possible_freq : 0;

            gcd_used = 1f - (gcd_left - gcd_needed);
            if (PrevSkill != null)
            {
                gcd_used = gcd_left > gcd_needed ? gcd_needed : gcd_left;
            }

            temp_frequency = gcd_used > 0 ? PetGCD / gcd_used : cooldown >= 30 ? cooldown : 0;

            fps_needed = (1f - priorityRotation.owlsFocus) * (temp_frequency > 0 ? focus / temp_frequency : 0);

            fps_available = priorityRotation.fpsGained;
            if (PrevSkill != null)
            {
                fps_available = PrevSkill.fps_available - PrevSkill.fps_needed;
            }

            frequency = 0;
            if (fps_available > 0)
            {
                frequency = temp_frequency * (fps_needed / fps_available);
            }
            if (fps_available > fps_needed)
            {
                frequency = temp_frequency;
            }

            crittable_freq = can_crit ? frequency : 0;
        }
Exemple #3
0
        public float kc_dps = 0; // T       

        public void CalculateTimings(PetSkillInstance PrevSkill) {
            possible_freq = cooldown - (cooldown % PetGCD) + ((cooldown % PetGCD) > 0 ? PetGCD : 0);

            gcd_left = 1;
            if (PrevSkill != null) { gcd_left = PrevSkill.gcd_left - PrevSkill.gcd_used; }

            gcd_needed = cooldown >= 30 ? 0 : possible_freq > 0 ? PetGCD / possible_freq : 0;

            gcd_used = 1f - (gcd_left - gcd_needed);
            if (PrevSkill != null) { gcd_used = gcd_left > gcd_needed ? gcd_needed : gcd_left; }

            temp_frequency = gcd_used > 0 ? PetGCD / gcd_used : cooldown >= 30 ? cooldown : 0;

            fps_needed = (1f - priorityRotation.owlsFocus) * (temp_frequency > 0 ? focus / temp_frequency : 0);

            fps_available = priorityRotation.fpsGained;
            if (PrevSkill != null) { fps_available = PrevSkill.fps_available - PrevSkill.fps_needed; }

            frequency = 0;
            if (fps_available > 0) frequency = temp_frequency * (fps_needed / fps_available);
            if (fps_available > fps_needed) frequency = temp_frequency;

            crittable_freq = can_crit ? frequency : 0;
        }