HonorSpy

HonorSpy

2M Downloads

Bracket 14 In-Bracket Estimates not functional

abitlegacy opened this issue ยท 2 comments

commented

Root cause of the issue is this block of code:

for i = 2,14 do
		if (standing > brk[i]) then
			inside_br_progress = (brk[i-1] - standing)/(brk[i-1] - brk[i])
			break
		end;
		bracket = i;
	end
	if (bracket == 14 and standing == 1) then inside_br_progress = 1 end;
	for i = 3,14 do
		RP[i] = (i-2) * 1000;
		Ranks[i] = (i-2) * 5000;
	end

When you're in bracket 14, the if statement never passes true - which results in inside_br_progress being 0, causing the in bracket estimate to default to top of BR13 RP Reward (12,000).

commented

Also - this formula (based off of standing) is incorrect entirely and doesn't account for bracket stacking. You should be looking at the honor at the cutoffs and your % of honor between those two and determining the inside_br_progress based off of that.

IE: If Bracket 14 has 6 players @ 750k honor, and 1 player @ 650k honor, the 6 will all get 13,000 RP and the 1 will get 12,001 RP. With your formula, this isn't accounted for at all.

commented
        local bracket = 1;
	local top_bracket = 14;
	local inside_br_progress = 0;
	local brk = self:GetBrackets(pool_size)
	
	for i = 2,14 do
		if (standing > brk[i]) then
			break
		end
		bracket = i;
	end
	
	for i = 2,14 do
		if (brk[i] == 0) then
			top_bracket = i
		end
	end

	local btm_break_point_honor = t[brk[bracket]][3]
	local top_break_point_honor = 0
	
	if bracket ~= top_bracket then
		top_break_point_honor = t[brk[bracket + 1]][3]
	else
		top_break_point_honor = t[1][3]
	end

	inside_br_progress = (curHonor - btm_break_point_honor)/(top_break_point_honor - btm_break_point_honor)

This fixes the issue for me and seems bug free. Starting @ Line 300 in honorspy.lua