Module:Skills/Cartography: Difference between revisions

no edit summary
(getHexMasteryBonusTable: Added to generate table of hex mastery bonuses)
No edit summary
(2 intermediate revisions by the same user not shown)
Line 12: Line 12:
for i, POI in pairs(SkillData.Cartography.worldMaps[1].pointsOfInterest) do
for i, POI in pairs(SkillData.Cartography.worldMaps[1].pointsOfInterest) do
if POI.id == id then
if POI.id == id then
return POI
end
end
return nil
end
function p.getPointOfInterestByXY(X, Y)
local hex = p.getHexByXY(X, Y)
if hex == nil then
return nil
end
for i, POI in pairs(SkillData.Cartography.worldMaps[1].pointsOfInterest) do
if (POI.coords.q == hex.coordinates.q and
    POI.coords.r == hex.coordinates.r) then
return POI
return POI
end
end
Line 263: Line 277:
end
end


function p._getDiscoveryRewardsTable(item)
function p._getDiscoveryRewardsTable(items)
local POIs = {}
local POIs = {}
for i, POI in ipairs(SkillData.Cartography.worldMaps[1].pointsOfInterest) do
for i, POI in ipairs(SkillData.Cartography.worldMaps[1].pointsOfInterest) do
if POI.discoveryRewards ~= nil and POI.discoveryRewards.items ~= nil then
if POI.discoveryRewards ~= nil and POI.discoveryRewards.items ~= nil then
for i, reward in ipairs(POI.discoveryRewards.items) do
for i, reward in ipairs(POI.discoveryRewards.items) do
if reward.id == item.id then
for j, item in ipairs(items) do
table.insert(POIs, POI)
if reward.id == item.id then
table.insert(POIs, POI)
break
end
end
end
end
end
Line 304: Line 321:


function p.getDiscoveryRewardsTable(frame)
function p.getDiscoveryRewardsTable(frame)
local itemName = frame.args ~= nil and frame.args[1] or frame
local itemNames = frame.args ~= nil and frame.args or frame
local item = Items.getItem(itemName)
local items = {}
if item == nil then
for i, itemName in ipairs(itemNames) do
return Shared.printError('No item named "' .. itemName .. '" exists in the data module')
item = Items.getItem(itemName)
if item ~= nil then
items[i] = item
end
end
if #items == nil then
return Shared.printError('No items found for with names: "' .. itemNames .. '"')
end
end
local resultTable = p._getDiscoveryRewardsTable(item)
local resultTable = p._getDiscoveryRewardsTable(items)
if resultTable == '' then
if resultTable == '' then
return ''
return ''
Line 322: Line 345:
if POI.discoveryRewards ~= nil and POI.discoveryRewards.items ~= nil then
if POI.discoveryRewards ~= nil and POI.discoveryRewards.items ~= nil then
local item = Items.getItemByID(POI.discoveryRewards.items[1].id)
local item = Items.getItemByID(POI.discoveryRewards.items[1].id)
table.insert(testTable, p._getDiscoveryRewardsTable(item))
table.insert(testTable, p._getDiscoveryRewardsTable({item}))
end
end
end
end
432

edits