12,727
edits
Falterfire (talk | contribs) (Changed sorting for modifier tables) |
(_getModifierTable: Amend Agility pillar links to use anchors) |
||
(3 intermediate revisions by 2 users 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 333: | Line 333: | ||
local row = {} | local row = {} | ||
row.name = obst.name | row.name = obst.name | ||
row.icon = Icons.Icon({'Agility', obst.name, type='skill'}) | row.icon = Icons.Icon({'Agility%23'..string.gsub(obst.name, ' ', ''), obst.name, type='skill', img='Agility'}) | ||
row.expIcon = Icons.getExpansionIcon(obst.id) | row.expIcon = Icons.getExpansionIcon(obst.id) | ||
row.type = '[[Agility#Obstacles|Agility Obstacle '..tostring(tonumber(obst.category)+1)..']]' | row.type = '[[Agility#Obstacles|Agility Obstacle '..tostring(tonumber(obst.category)+1)..']]' | ||
Line 356: | Line 356: | ||
local row = {} | local row = {} | ||
row.name = pillar.name | row.name = pillar.name | ||
row.icon = Icons.Icon({'Agility', pillar.name, type='skill'}) | row.icon = Icons.Icon({'Agility%23'..string.gsub(pillar.name, ' ', ''), pillar.name, type='skill', img='Agility'}) | ||
row.expIcon = Icons.getExpansionIcon(pillar.id) | row.expIcon = Icons.getExpansionIcon(pillar.id) | ||
row.type = '[[Agility#Passive Pillars|Agility Pillar]]' | row.type = '[[Agility#Passive Pillars|Agility Pillar]]' | ||
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 | ||