[Monk-Windwalker] EXPERIMENTAL.lua - Efficiency calculation may not be perfect.
jo32 opened this issue · 5 comments
When in WeaponsOfOrder of order the cost of BOK is always 0, which makes the efficiency of it to be very large. Therefore, there may exist properer efficiency calculation.
The profile was completely re-written for 9.2. If any problems persist, please open a new issue.
Maybe the efficiency can be defined as:
damage it's going to deal / (time it need to cast(normally 1gcd) + time needed to generate those resources)
because our aim is to improve the dps. So lines like below can be ajusted from:
local sck_efficiency = chi_values[S.SpinningCraneKick] / (chi_costs[S.SpinningCraneKick] + 0.0001)
to
local sck_efficiency = chi_values[S.SpinningCraneKick] / (chi_costs[S.SpinningCraneKick] + 2)
because we usally use tiger palm to generate 2 chi and use 1 gcd, casting the spell itself uses 1gcd. However, I haven't tested yet and more accurate method should be found.
Also, the following lines conflict with efficiency calculation:
local best_free_spell = nil
local best_free_spell_value = 0
for spell, cost in pairs(chi_costs) do
if cost == 0 then
local value = chi_values[spell]
if value > best_free_spell_value and spell:IsReady() and ComboStrike(spell) then
best_free_spell = spell
best_free_spell_value = value
end
end
end
if best_free_spell ~= nil then
return OptimallyTargetedCast(best_free_spell, "Free cast of " .. best_free_spell.SpellName)
end
I quoted these and obtained huge dps improvement when in weapons of order.
I haven't taken a look at your implementation yet @jo32 but I have pushed a small fix you're welcome to use that simply takes the existing WOO APL and uses it directly here. I'd love to unify the two approaches if possible in the long run, though.
3da5102 should add this functionality.