12,721
edits
Falterfire (talk | contribs) (Changed sorting for modifier tables) |
(_getModifierTable: Fix hard-coded sort value of 15 for Astrology) |
||
(One intermediate revision by the same user not shown) | |||
Line 197: | Line 197: | ||
end | end | ||
function p._getModifierTable(modifiers, skill, columnName, getOpposites, displayOtherMods, maxOtherMods) | function p._getModifierTable(modifiers, skill, columnName, getOpposites, displayOtherMods, maxOtherMods, forceMagnitudeSort) | ||
local modifierNames = {} | local modifierNames = {} | ||
if type(modifiers) == 'string' then | if type(modifiers) == 'string' then | ||
Line 423: | Line 423: | ||
local constellationList = p.getConstellationsWithModifier(modifiers, skill, getOpposites) | local constellationList = p.getConstellationsWithModifier(modifiers, skill, getOpposites) | ||
for i, cons in ipairs(constellationList) do | for i, cons in ipairs(constellationList) do | ||
local modList = Skills._buildAstrologyModifierArray(cons, nil, true, true, true, true) | |||
local row = {} | local row = {} | ||
row.name = cons.name | row.name = cons.name | ||
Line 429: | Line 430: | ||
row.type = '[[Astrology#Constellations|Constellation]]' | row.type = '[[Astrology#Constellations|Constellation]]' | ||
row.typeText = 'Constellation' | row.typeText = 'Constellation' | ||
row.modifierText, row.otherModifiers = getModText(modList) | row.modifierText, row.otherModifiers = getModText(modList) | ||
local totalVal = 0 | |||
for i, mod in pairs(modifiers) do | |||
totalVal = totalVal + p.getModifierValue(modList, mod, skill, getOpposites) | |||
end | |||
row.val = totalVal | |||
if not hasOtherModifiers and string.len(row.otherModifiers) > 0 then | if not hasOtherModifiers and string.len(row.otherModifiers) > 0 then | ||
Line 449: | Line 453: | ||
--Otherwise sort alphabetically by type, then name | --Otherwise sort alphabetically by type, then name | ||
table.sort(tableArray, function(a, b) | table.sort(tableArray, function(a, b) | ||
if modifierCount == 1 and a.val ~= b.val then | if (modifierCount == 1 or forceMagnitudeSort) and a.val ~= b.val then | ||
return a.val > b.val | return a.val > b.val | ||
elseif a.typeText ~= b.typeText then | elseif a.typeText ~= b.typeText then | ||
Line 477: | Line 481: | ||
local displayOtherMods = frame.args ~= nil and frame.args.displayOtherMods or frame.displayOtherMods | local displayOtherMods = frame.args ~= nil and frame.args.displayOtherMods or frame.displayOtherMods | ||
local maxOtherMods = frame.args ~= nil and tonumber(frame.args.maxOtherMods) or 5 | local maxOtherMods = frame.args ~= nil and tonumber(frame.args.maxOtherMods) or 5 | ||
local forceMagnitudeSort = frame.args ~= nil and string.upper(tostring(frame.args.forceMagnitudeSort)) == 'TRUE' or false | |||
if Shared.contains(modifier, ',') then | if Shared.contains(modifier, ',') then | ||
Line 494: | Line 499: | ||
end | end | ||
return p._getModifierTable(modifier, skill, columnName, getOpposites, displayOtherMods, maxOtherMods) | return p._getModifierTable(modifier, skill, columnName, getOpposites, displayOtherMods, maxOtherMods, forceMagnitudeSort) | ||
end | end | ||