|
|
Line 22: |
Line 22: |
| local Constants = require('Module:Constants') | | local Constants = require('Module:Constants') |
| local Items = require('Module:Items') | | local Items = require('Module:Items') |
| local ItemSourceTables = require('Module:Items/SourceTables')
| |
| local Icons = require('Module:Icons') | | local Icons = require('Module:Icons') |
|
| |
|
Line 352: |
Line 351: |
|
| |
|
| return table.concat(returnPart, '\r\n') | | return table.concat(returnPart, '\r\n') |
| end
| |
|
| |
| function p._getFarmingTable(category)
| |
| local seedList = {}
| |
| if category == 'Allotment' or category == 'Herb' or category == 'Tree' then
| |
| seedList = Items.getItems(function(item) return item.tier == category end)
| |
| else
| |
| return 'ERROR: Invalid farming category. Please choose Allotment, Herb, or Tree'
| |
| end
| |
|
| |
| local result = '{|class="wikitable sortable stickyHeader"'
| |
| result = result..'\r\n|- class="headerRow-0"'
| |
| result = result..'\r\n!colspan=2|Seeds!!'..Icons.Icon({'Farming', type='skill', notext=true})..' Level'
| |
| result = result..'!!XP!!Growth Time!!Seed Value'
| |
| if category == 'Allotment' then
| |
| result = result..'!!colspan="2"|Crop!!Crop Healing!!Crop Value'
| |
| elseif category == 'Herb' then
| |
| result = result..'!!colspan="2"|Herb!!Herb Value'
| |
| elseif category == 'Tree' then
| |
| result = result..'!!colspan="2"|Logs!!Log Value'
| |
| end
| |
| result = result..'!!Seed Sources'
| |
|
| |
| table.sort(seedList, function(a, b) return a.farmingLevel < b.farmingLevel end)
| |
|
| |
| for i, seed in pairs(seedList) do
| |
| result = result..'\r\n|-'
| |
| result = result..'\r\n|'..Icons.Icon({seed.name, type='item', size='50', notext=true})..'||[['..seed.name..']]'
| |
| result = result..'||'..seed.farmingLevel..'||'..Shared.formatnum(seed.farmingXP)
| |
| result = result..'||data-sort-value="'..seed.timeToGrow..'"|'..Shared.timeString(seed.timeToGrow, true)
| |
| result = result..'||data-sort-value="'..seed.sellsFor..'"|'..Icons.GP(seed.sellsFor)
| |
|
| |
| local crop = Items.getItemByID(seed.grownItemID)
| |
| result = result..'||'..Icons.Icon({crop.name, type='item', size='50', notext=true})..'||[['..crop.name..']]'
| |
| if category == 'Allotment' then
| |
| result = result..'||'..Icons.Icon({'Hitpoints', type='skill', notext=true})..' '..(crop.healsFor * 10)
| |
| end
| |
| result = result..'||data-sort-value="'..crop.sellsFor..'"|'..Icons.GP(crop.sellsFor)
| |
| result = result..'||'..ItemSourceTables._getItemSources(seed)
| |
| end
| |
|
| |
| result = result..'\r\n|}'
| |
| return result
| |
| end
| |
|
| |
| function p.getFarmingTable(frame)
| |
| local category = frame.args ~= nil and frame.args[1] or frame
| |
|
| |
| return p._getFarmingTable(category)
| |
| end
| |
|
| |
| function p.getFarmingFoodTable(frame)
| |
| local result = '{| class="wikitable sortable stickyHeader"'
| |
| result = result..'\r\n|- class="headerRow-0"'
| |
| result = result..'\r\n!colspan="2"|Crop!!'..Icons.Icon({"Farming", type="skill", notext=true})..' Level'
| |
| result = result..'!!Healing!!Value'
| |
|
| |
| local itemArray = Items.getItems(function(item) return item.grownItemID ~= nil end)
| |
|
| |
| table.sort(itemArray, function(a, b) return a.farmingLevel < b.farmingLevel end)
| |
|
| |
| for i, item in Shared.skpairs(itemArray) do
| |
| local crop = Items.getItemByID(item.grownItemID)
| |
| if crop.healsFor ~= nil and crop.healsFor > 0 then
| |
| result = result..'\r\n|-'
| |
| result = result..'\r\n|'..Icons.Icon({crop.name, type='item', notext='true', size='50'})..'||[['..crop.name..']]'
| |
| result = result..'||style="text-align:right;"|'..item.farmingLevel
| |
| result = result..'||style="text-align:right" data-sort-value="'..crop.healsFor..'"|'..Icons.Icon({"Hitpoints", type="skill", notext=true})..' '..(crop.healsFor * 10)
| |
| result = result..'||style="text-align:right" data-sort-value="'..crop.sellsFor..'"|'..Icons.GP(crop.sellsFor)
| |
| end
| |
| end
| |
|
| |
| result = result..'\r\n|}'
| |
|
| |
| return result
| |
| end
| |
|
| |
| function p.getFarmingPlotTable(frame)
| |
| local areaName = frame.args ~= nil and frame.args[1] or frame
| |
| local patches = nil
| |
| for i, area in Shared.skpairs(SkillData.Farming.Patches) do
| |
| if area.areaName == areaName then
| |
| patches = area.patches
| |
| break
| |
| end
| |
| end
| |
| if patches == nil then
| |
| return "ERROR: Invalid area name.[[Category:Pages with script errors]]"
| |
| end
| |
|
| |
| local result = '{|class="wikitable"'
| |
| result = result..'\r\n!Plot!!'..Icons.Icon({'Farming', type='skill', notext=true})..' Level!!Cost'
| |
|
| |
| for i, patch in Shared.skpairs(patches) do
| |
| result = result..'\r\n|-\r\n|'..i
| |
| result = result..'||style="text-align:right;" data-sort-value="' .. patch.level .. '"|'..patch.level
| |
| if patch.cost == 0 then
| |
| result = result..'||Free'
| |
| else
| |
| result = result..'||style="text-align:right;" data-sort-value="'..patch.cost..'"|'..Icons.GP(patch.cost)
| |
| end
| |
| end
| |
|
| |
| result = result..'\r\n|}'
| |
| return result
| |
| end | | end |
|
| |
|