Module:FisherPassiveList: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
(starting copy of miner, needs a lot of data checking) |
(cost of bait and price of fish, acts more like a recipe than a passive node) |
||
Line 22: | Line 22: | ||
'?Activity coins = coins', |
'?Activity coins = coins', |
||
'?Skill node name = product', |
'?Skill node name = product', |
||
'?Activity input #- = material', |
|||
'sort = Profession Level A', |
'sort = Profession Level A', |
||
'limit = 500' |
'limit = 500' |
||
Line 56: | Line 57: | ||
for _, item in ipairs(results) do |
for _, item in ipairs(results) do |
||
--catch badly submitted data |
|||
-- profit from selling the items |
|||
item.material = item.material or '' |
|||
⚫ | |||
⚫ | |||
⚫ | |||
-- price of bait |
|||
⚫ | |||
-- query is: there is a shop object page that has this item AND has buy price cannot be "N/A" |
|||
local query = mw.smw.ask('[[Sold item::' .. item.material .. ']][[Shop buy price::!~N/A]]|?Shop buy price=data|mainlabel=-') |
|||
if type(query)=='table' then |
|||
-- price is returned as a number |
|||
item.buy = tonumber(query[1].data)*0.005 or 0 |
|||
else |
|||
-- will return nil if the item is not in a shop, or if it is in a shop but can only be sold to the shop |
|||
item.buy = 0 |
|||
⚫ | |||
⚫ | |||
end |
end |
||
-- price of fish |
|||
-- query is: there is a shop object page that has this item AND has buy price cannot be "N/A" |
|||
local query = mw.smw.ask('[[Sold item::' .. item.product .. ']][[Shop sell price::!~N/A]]|?Shop sell price=data|mainlabel=-') |
|||
if type(query)=='table' then |
|||
-- price is returned as a number |
|||
item.sell = tonumber(query[1].data)*0.005 or 0 |
|||
else |
|||
-- will return nil if the item is not in a shop, or if it is in a shop but can only be sold to the shop |
|||
item.sell = 0 |
|||
⚫ | |||
-- profitability |
|||
item.profit = item.buy and item.sell and item.sell - item.buy |
|||
item.profitPerXP = item.profit and item.XP and item.profit / item.XP |
|||
-- no downtime for passives |
-- no downtime for passives |
||
Line 78: | Line 92: | ||
-- properties per hour |
-- properties per hour |
||
item.XPPerHour = item.XP and item.productPerHour and math.floor(item.XP * item.productPerHour) |
item.XPPerHour = item.XP and item.productPerHour and math.floor(item.XP * item.productPerHour) |
||
item. |
item.profitPerHour = item.profit and item.productPerHour and math.floor(item.profit * item.productPerHour) |
||
end |
end |
||
Line 90: | Line 104: | ||
:tag('tr') |
:tag('tr') |
||
:tag('th') |
:tag('th') |
||
:wikitext('[[File: |
:wikitext('[[File:Fisher small icon.png|15px]] Level') |
||
:done() |
:done() |
||
:tag('th') |
:tag('th') |
||
:attr{ colspan = '2' } |
:attr{ colspan = '2' } |
||
:wikitext(' |
:wikitext('Fishing node') |
||
:done() |
:done() |
||
:tag('th') |
:tag('th') |
||
:attr{ colspan = '3' } |
:attr{ colspan = '3' } |
||
:wikitext(' |
:wikitext('Bait') |
||
:done() |
:done() |
||
:tag('th') |
:tag('th') |
||
:attr{ colspan = '10' } |
|||
⚫ | |||
:wikitext('Buy Value') |
|||
⚫ | |||
⚫ | |||
:attr{ colspan = '3' } |
|||
:wikitext('Fish') |
|||
:done() |
|||
:tag('th') |
|||
:attr{ colspan = '10' } |
|||
:wikitext('Sell Value') |
|||
:done() |
|||
:tag('th') |
|||
:attr{ colspan = '10' } |
|||
:wikitext('Profit') |
|||
:done() |
:done() |
||
:tag('th') |
:tag('th') |
||
Line 112: | Line 139: | ||
:tag('th') |
:tag('th') |
||
:wikitext('XP/hr') |
:wikitext('XP/hr') |
||
:done() |
|||
:tag('th') |
|||
:attr{ colspan = '10' } |
|||
⚫ | |||
:done() |
:done() |
||
:done() |
:done() |
||
Line 133: | Line 164: | ||
:END() |
:END() |
||
-- |
-- fishing node |
||
:tag('td') |
:tag('td') |
||
:css{ ['border-right'] = '0', ['text-align'] = 'right', ['max-width'] = '100px' } |
:css{ ['border-right'] = '0', ['text-align'] = 'right', ['max-width'] = '100px' } |
||
Line 141: | Line 172: | ||
:done() |
:done() |
||
:tag('td') |
:tag('td') |
||
⚫ | |||
:wikitext('[[' .. item.name .. ']]') |
:wikitext('[[' .. item.name .. ']]') |
||
:done() |
:done() |
||
-- |
-- bait (items) |
||
:tag('td') |
:tag('td') |
||
:css{ ['border-right'] = '0', ['text-align'] = 'right' } |
:css{ ['border-right'] = '0', ['text-align'] = 'right' } |
||
:attr{ ['data-sort-value'] = item. |
:attr{ ['data-sort-value'] = item.material } |
||
:wikitext(' 0.005 × ') |
|||
:done() |
|||
:tag('td') |
|||
:css{ ['border-right'] = '0', ['border-left'] = '0', ['text-align'] = 'center', ['max-width'] = '100px' } |
|||
⚫ | |||
⚫ | |||
:done() |
|||
:tag('td') |
|||
⚫ | |||
:wikitext('[[' .. item.material .. ']]') |
|||
:done() |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
-- fish |
|||
:tag('td') |
|||
:css{ ['border-right'] = '0', ['text-align'] = 'right' } |
|||
:attr{ ['data-sort-value'] = item.product } |
|||
:wikitext('0.005 × ') |
:wikitext('0.005 × ') |
||
:done() |
:done() |
||
:tag('td') |
:tag('td') |
||
:css{ ['border-right'] = '0', ['text-align'] = 'center' } |
:css{ ['border-right'] = '0', ['border-left'] = '0', ['text-align'] = 'center', ['max-width'] = '100px' } |
||
:addClass('plinkt-link no-border') |
:addClass('plinkt-link no-border') |
||
:wikitext('[[File:' .. item.product .. '.png|link=' .. item.product .. '|30x30px]]') |
:wikitext('[[File:' .. item.product .. '.png|link=' .. item.product .. '|30x30px]]') |
||
:done() |
:done() |
||
:tag('td') |
:tag('td') |
||
:css{ ['border-left'] = '0', ['text-align'] = 'left' } |
|||
:addClass('plinkt-link no-border') |
|||
:wikitext('[[' .. item.product .. ']]') |
:wikitext('[[' .. item.product .. ']]') |
||
:done() |
:done() |
||
-- economics |
|||
-- products per hour (items) |
|||
:node(currency_cell(item.sell)) |
|||
⚫ | |||
:node(currency_cell(item.profit)) |
|||
⚫ | |||
:node(currency_cell(item.profitPerHour)) |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
-- XP |
-- XP |
||
Line 187: | Line 232: | ||
:node(unknown_value_cell) |
:node(unknown_value_cell) |
||
:END() |
:END() |
||
⚫ | |||
-- coins per xp |
|||
:node(currency_cell(item.profitPerXP)) |
|||
:done() |
:done() |