Module:ModifierTables: Difference between revisions

_getModifierTable: Add Cartography hex mastery bonuses
No edit summary
(_getModifierTable: Add Cartography hex mastery bonuses)
Line 218: Line 218:
return POIList
return POIList
end
function p.getCartoMasteryBonusesWithModifier(modifiers, skill, getOpposites)
if type(modifiers) == 'string' then
modifiers = {modifiers}
end
local bonusList = Cartography.getMasteryBonuses(
function(bonus)
if bonus.modifiers == nil or Shared.tableIsEmpty(bonus.modifiers) then
return false
end
for i, mod in ipairs(modifiers) do
if p.getModifierValue(bonus.modifiers, mod, skill, getOpposites) ~= 0 then
return true
end
end
return false
end)
return bonusList
end
end


Line 488: Line 509:
end
end


table.insert(tableArray, row)
end
local cartoBonusList = p.getCartoMasteryBonusesWithModifier(modifiers, skill, getOpposites)
for i, bonus in ipairs(cartoBonusList) do
local row = {}
row.name = Shared.formatnum(bonus.masteredHexes) .. ' Hexes Mastered'
row.icon = Icons.Icon({'Cartography', Shared.formatnum(bonus.masteredHexes) .. ' Hexes Mastered', type='skill'})
row.expIcon = Icons.getExpansionIcon(bonus.id)
row.type = Icons.Icon({'Cartography', 'Mastery Bonus', section='Mastery Unlocks', type='skill', noicon=true})
row.typeText = 'Mastery Bonus'
local totalVal = 0
for i, mod in ipairs(modifiers) do
totalVal = totalVal + p.getModifierValue(bonus.modifiers, mod, skill, getOpposites)
end
row.val = totalVal
row.modifierText, row.otherModifiers = getModText(bonus.modifiers)
if not hasOtherModifiers and string.len(row.otherModifiers) > 0 then
hasOtherModifiers = true
end
table.insert(tableArray, row)
table.insert(tableArray, row)
end
end