606
edits
Tag: Undo |
m |
||
| (52 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
-- adapted from Levrin's iteration to Sakaratte's original -- | -- adapted by Olessan from Levrin's iteration to Sakaratte's original -- | ||
-- Layout changed and all labels, etc, updated to pull from Module:BuildingINdex -- | |||
-- I may expand later to have functions for other infobox types (but this game doesn't really need any other?? 22/04/2025 -- | |||
local com = require('Module:Common') | local com = require('Module:Common') | ||
local a = require('Module:Arguments') | local a = require('Module:Arguments') | ||
| Line 45: | Line 47: | ||
end | end | ||
local function createDataRow(label, value, defaultValue) | |||
if not | local actualValue = value or defaultValue | ||
if not actualValue or actualValue == '' then | |||
return nil | return nil | ||
end | end | ||
| Line 60: | Line 64: | ||
:tag('span') | :tag('span') | ||
:addClass('infobox-data') | :addClass('infobox-data') | ||
:wikitext( | :wikitext(actualValue) | ||
else | else | ||
dataRow:tag('span') | dataRow:tag('span') | ||
:addClass('infobox-data') | :addClass('infobox-data') | ||
:wikitext( | :wikitext(actualValue) | ||
end | end | ||
| Line 232: | Line 236: | ||
--/ | --/ | ||
--SECTION-RUNNING-COSTS | --SECTION-RUNNING-COSTS | ||
local costData = {} | |||
local goldCoinsFound = false | |||
if buildingData.costs or buildingData.influence['bsplendour'] then | |||
for resource, amount in pairs(buildingData.costs) do | |||
if resource == 'gold coins' then | |||
local resourceIcon = i.icon('gold coins', nil, nil, 'gold coins', 'en') | |||
table.insert(costData, {label = '[[File:Gold Coins.png|frameless|20x20px]] ' .. '[[Gold Coins|Build Cost]]', value = amount}) | |||
goldCoinsFound = true | |||
elseif resource ~= 'maintenance' then | |||
local resourceIcon = i.icon(resource, nil, nil, com.firstUpper({resource}), 'en') | local resourceIcon = i.icon(resource, nil, nil, com.firstUpper({resource}), 'en') | ||
table.insert(costData, {label = resourceIcon, value = amount}) | table.insert(costData, {label = resourceIcon, value = amount}) | ||
end | end | ||
if resource ~= 'maintenance' then | |||
local displayAmount = amount | |||
if second and buildingData.costs.maintenance then | |||
displayAmount = displayAmount .. ' ' .. buildingData.costs.maintenance | |||
second = false | |||
end | |||
end | |||
end | |||
if buildingData.costs and buildingData.costs['maintenance'] then | |||
local resourceIcon = i.icon('maintenance', nil, nil, 'maintenance', 'en') | |||
table.insert(costData, {label = resourceIcon, value = '[[File:Gold Coins.png|frameless|20x20px]] ' .. buildingData.costs['maintenance'] .. ' monthly'}) | |||
end | |||
if buildingData.influence['bsplendour'] then | |||
local resourceIcon = i.icon('bsplendour', nil, nil, 'splendor', 'en') | local resourceIcon = i.icon('bsplendour', nil, nil, 'splendor', 'en') | ||
table.insert(costData, {label = '[[File:Splendor.png|frameless|20x20px]] ' .. '[[Splendour|Splendour]]', value = '+ ' .. buildingData.influence['bsplendour'] .. ' ea'}) | |||
end | |||
if #costData > 0 then | |||
addSection(infobox, costData, 'Economic Impact', 2) | |||
end | |||
end | end | ||
end | end | ||
--/ | --/ | ||
edits