Module:Skills/Archaeology: Difference between revisions

m
Fixed shop link
(_getDigSiteArtefactValue: Amend calculation of +1 and double consumable bonus GP values)
m (Fixed shop link)
 
(3 intermediate revisions by 2 users not shown)
Line 6: Line 6:


local Shared = require('Module:Shared')
local Shared = require('Module:Shared')
local Common = require('Module:Common')
local Constants = require('Module:Constants')
local Constants = require('Module:Constants')
local GameData = require('Module:GameData')
local GameData = require('Module:GameData')
Line 33: Line 34:
end
end
return nil
return nil
end
function p._getArtefactType(item)
if item.isArtefact then
if item.isGenericArtefact then
return 'Generic'
elseif item.validSlots ~= nil then
local searchSlots = { 'Consumable', 'Gem' }
for i, slotID in ipairs(searchSlots) do
if Shared.contains(item.validSlots, slotID) then
return Common.getEquipmentSlotLink(slotID)
end
end
end
return 'Other'
end
end
end


Line 75: Line 92:
end
end
table.insert(result, '||'..thisItem.type..'')
table.insert(result, '||' .. p._getArtefactType(thisItem) .. '')
table.insert(result, '||style="text-align:right" data-sort-value="'..row.maxQuantity..'"|')
table.insert(result, '||style="text-align:right" data-sort-value="'..row.maxQuantity..'"|')
if row.maxQuantity > row.minQuantity then
if row.maxQuantity > row.minQuantity then
Line 117: Line 134:
table.insert(result, '\r\n|}')
table.insert(result, '\r\n|}')
table.insert(result, '\r\nThe average value of one action is '..Icons.GP(Shared.round(lootValue, 2, 0))..'.')
table.insert(result, '\r\nThe average value of one action is '..Icons.GP(Shared.round(lootValue, 2, 0))..', ')
table.insert(result, '\r\n\r\nThe average value of one action with the +1 Minimum Items refinement is '..Icons.GP(Shared.round(lootValue + plusOneMinimumRefinementValue, 2, 0))..'.')
table.insert(result, 'increasing to '..Icons.GP(Shared.round(lootValue + plusOneMinimumRefinementValue, 2, 0))..' when the +1 Minimum Items refinement is active.')
if doubleConsumableRefinementValue > 0 then
if doubleConsumableRefinementValue > 0 then
table.insert(result, '\r\n\r\nThe average value of one action with the x2 Consumables refinement is '..Icons.GP(Shared.round(lootValue + doubleConsumableRefinementValue, 2, 0))..'.')
table.insert(result, '\r\n\r\nThe average value of one action with the x2 Consumables refinement is '..Icons.GP(Shared.round(lootValue + doubleConsumableRefinementValue, 2, 0))..'.')
Line 190: Line 207:
return table.concat(resultArray, '')
return table.concat(resultArray, '')
end
function p._getMuseumRewards(reward)
local rewardTable = {}
local equipment = nil
if reward.gp ~= nil then
table.insert(rewardTable, Icons.GP(reward.gp))
end
if reward.items ~= nil then
for _, reward in ipairs(reward.items) do
local item = Items.getItemByID(reward.id)
table.insert(rewardTable, Icons.Icon({item.name, type='item', qty=reward.quantity}))
if item.category == 'Archaeology' then
equipment = item.name
end
end
end
if reward.modifiers ~= nil then
for modifier, value in pairs(reward.modifiers) do
table.insert(rewardTable, Constants._getModifierText(modifier, value, true))
end
end
if equipment ~= nil then
table.insert(rewardTable, 'Unlocks the ability to purchase '..equipment..' from the '..Icons.Icon({'Shop'}))
end
return rewardTable
end
function p.getMuseumRewardsTable(frame)
-- Build the table
local resultTable = mw.html.create('table')
resultTable:addClass('wikitable sortable lighttable')
resultTable:tag('tr'):addClass('headerRow-0')
:tag('th'):wikitext('Donations')
:tag('th'):wikitext('Rewards')
for _, reward in ipairs(SkillData.Archaeology.museumRewards) do
local tr = mw.html.create('tr')
tr:tag('td'):wikitext(reward.museumCount)
tr:tag('td'):wikitext(table.concat(p._getMuseumRewards(reward), '<br/>'))
resultTable:node(tr)
end
return tostring(resultTable)
end
end


return p
return p
570

edits