public float GetActivates(float YellowAttacksThatDodgeOverDur, float YellowAttacksThatParryOverDur, float ssActs) { if (AbilIterater != -1 && !CalcOpts.Maintenance[AbilIterater]) { return(0f); } float acts = 0f; float LatentGCD = (1.5f + CalcOpts.Latency + (UseReact ? CalcOpts.React / 1000f : CalcOpts.AllowedReact)); float dodge = Whiteattacks.MHAtkTable.Dodge; float parry = (Talents.GlyphOfOverpower ? Whiteattacks.MHAtkTable.Parry : 0f); // Chance to activate: Dodges + (if glyphed) Parries if (dodge + parry > 0f) { float WhtHitsOverDur = FightDuration / Whiteattacks.MhEffectiveSpeed + (combatFactors.useOH ? FightDuration / Whiteattacks.OhEffectiveSpeed : 0f) + ssActs; float dodgesoverDur = 0f + WhtHitsOverDur * (dodge + parry) + (dodge > 0 ? YellowAttacksThatDodgeOverDur : 0) + (parry > 0 ? YellowAttacksThatParryOverDur : 0); //acts += Math.Max(0f, dodgesoverDur * (1f - Whiteattacks.AvoidanceStreak)); acts += Math.Max(0f, dodgesoverDur * (1f - Whiteattacks.RageSlip(FightDuration / dodgesoverDur, RageCost))); } return(acts); }
// Functions public float GetActivates(float landedatksoverdur) { if (AbilIterater != -1 && !CalcOpts.Maintenance[AbilIterater]) { return(0f); } float acts = Buff.GetAverageProcsPerSecond(landedatksoverdur / FightDuration, 1f /*MHAtkTable.AnyLand*/, combatFactors._c_mhItemSpeed, FightDuration); acts *= FightDuration; if (StatS.BonusWarrior_T10_4P_BSSDProcChange > 0) { acts *= 1.20f; } return(acts * (1f - Whiteattacks.RageSlip(FightDuration / acts, RageCost + UsedExtraRage))); }