Fortnite Esports Wiki

Power Rankings of Brazil and Oceania are not yet fully updated. Currently all our efforts are on the C2S8 competitive season. We will aim to have all regions updated before the end of the year.

READ MORE

Fortnite Esports Wiki
Advertisement
Fortnite Esports Wiki

To edit the documentation or categories for this module, click here.


local util_cargo = require('Module:CargoUtil')
local util_esports = require('Module:EsportsUtil')

local p = {}

function p.getGroups(page, fields)
	if not fields then
		fields = { 'Team', 'GroupName', 'GroupDisplay', 'GroupN' }
	end
	local query = {
		tables = 'TournamentGroups',
		fields = fields,
		where = ('OverviewPage="%s"'):format(page),
		orderBy = 'GroupN ASC, Team ASC',
		types = { GroupN = 'number' }
	}
	return util_cargo.queryAndCast(query)
end

function p.getGroupTeamList(page, group)
	local result = p.getGroups(page)
	local grouplist = {}
	for _, row in ipairs(result) do
		if row.GroupName == group then
			grouplist[#grouplist+1] = row.Team
		end
	end
	return grouplist
end


---------------- SORTING STANDINGS BY CRITERIA ----------------------
function p.getSortMethod(sortmethod)
	if sortmethod == 'points' then
		return p.sortByPoints
	elseif sortmethod == 'bo2points' then
		return p.sortByPointsBO2
	elseif sortmethod == 'record' then
		return p.sortByRecord
	elseif sortmethod == 'recordwithpoints' then
		return p.sortByRecordWithPoints
	elseif sortmethod == 'recordgames' or sortmethod == 'bo2nopoints' then
		return p.sortByRecordGames
	elseif sortmethod == 'recordwithgames' then
		return p.sortByRecordThenGames
	elseif sortmethod == 'recordwithgamesnotb' then
		return p.sortByRecordThenGamesDontBreakTies
	else
		error('Invalid or missing sort method')
	end
end

function p.sortByPoints(row)
	row.sort = row.p
end

function p.sortByPointsBO2(row)
	row.sort = row.p - row.l / 10000
end

function p.sortByRecord(row)
	row.sort = util_esports.winrateRanked(row.w, row.l)
end

function p.sortByRecordThenGames(row)
	row.sort = util_esports.winrateRanked(row.w, row.l) + util_esports.winrateRanked(row.wg, row.lg) / 10000
end

function p.sortByRecordWithPoints(row)
	row.sort = util_esports.winrateRanked(row.w, row.l) + row.tb / 10000
end

function p.sortByRecordGames(row)
	row.sort = util_esports.winrateRanked(row.wg, row.lg)
end

function p.sortByRecordThenGamesDontBreakTies(row)
	row.sortdisplay = util_esports.winrateRanked(row.w, row.l)
	row.sort = row.sortdisplay + util_esports.winrateRanked(row.wg, row.lg) / 10000
end

return p
Advertisement