Module:Inventory: Difference between revisions

From Caves of Qud Wiki
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 12: Line 12:
local quantity = frame.args[2] or '1'
local quantity = frame.args[2] or '1'
local chance = frame.args[4] or '100'
local chance = frame.args[4] or '100'
local weaponhtml


--[Getting query results...]
--[Getting query results...]
Line 27: Line 28:
local result = cargo.query('ItemsTable,GeneralData',
local result = cargo.query('ItemsTable,GeneralData',
'PlainName,Vibro,MaxPV,BasePV,Damage,GeneralData._pageName=Page',
'PlainName,Vibro,MaxPV,BasePV,Damage,GeneralData._pageName=Page',
{ where='GeneralData._pageNamespace="0" AND GeneralData._pageName="'.. name ..'" AND Damage <> ""',
{ where='GeneralData._pageNamespace="0" AND GeneralData._pageName="'.. name .. '"',
default='0',
default='0',
limit='1',
limit='1',
Line 38: Line 39:
end
end


local favilinked = frame:expandTemplate{title='Favilink page', args={name,'displayname-tooltip-override'}}
--local favilinked = 'favilink'
local damage= result[1]['Damage']
if damage ~= nil or damage ~= '' then
if result[1]['Vibro'] == '1' then
if result[1]['Vibro'] == '1' then
   pv = '≈'
   pv = '≈'
Line 44: Line 52:
   maxpv = result[1]['MaxPV']
   maxpv = result[1]['MaxPV']
end
end
local damage= result[1]['Damage']
local favilinked = frame:expandTemplate{title='Favilink page', args={name,'displayname-tooltip-override'}}
--local favilinked = 'favilink'


local pvstr = ''
local pvstr = ''
Line 55: Line 59:
end
end


local weaponhtml = mw.html.create('span')
weaponhtml = mw.html.create('span')
             :addClass('qud-inline-weap-stats')
             :addClass('qud-inline-weap-stats')
             :node(mw.html.create('span')
             :node(mw.html.create('span')
                   :addClass('qud-inline-damage')
                   :addClass('qud-inline-damage')
                   :wikitext(frame:expandTemplate{title='Heart'} .. '<span class="qud-inline-damage">' .. damage .. '</span>'..frame:expandTemplate{title='PV'} .. '<span class="qud-inline-pv">' .. pv ..'</span>' .. pvstr) )
                   :wikitext(frame:expandTemplate{title='Heart'} .. '<span class="qud-inline-damage">' .. damage .. '</span>'..frame:expandTemplate{title='PV'} .. '<span class="qud-inline-pv">' .. pv ..'</span>' .. pvstr) )
end
local favilinkhtml = mw.html.create('div')
            :addClass('qud-inv-favilink-wrapper')
            :wikitext(favilinked)
if weaponhtml ~= nil then
  favilinkhtml:node(weaponhtml)
end


local inventoryhtml = mw.html.create('div')
local inventoryhtml = mw.html.create('div')
inventoryhtml
inventoryhtml
         :addClass('qud-inventory-item')
         :addClass('qud-inventory-item')
         :node(mw.html.create('div')
         :node(favilinkhtml)
            :addClass('qud-inv-favilink-wrapper')
            :wikitext(favilinked)
            :node(weaponhtml))
         :node(mw.html.create('span')
         :node(mw.html.create('span')
             :addClass('qud-item-qty')
             :addClass('qud-item-qty')

Revision as of 16:24, 15 September 2019


local p = {}
local cargo= mw.ext.cargo
local htmlparse = require'Module:HTMLParse'
local colorparse = require'Module:ColorParse'
local favilink = require'Module:Favilink'

function p.main(frame)

local frame = mw.getCurrentFrame()
local pv = ''
local maxpv = ''
local quantity = frame.args[2] or '1'
local chance = frame.args[4] or '100'
local weaponhtml

--[Getting query results...]

local name
 
  if frame.args[1] ~= nil and frame.args[1] ~= '' then
  name = mw.text.trim(frame.args[1])
  --return name
  else
     error "There is no argument specified! [[Category:pages with inventory errors]]"
  
end

local result = cargo.query('ItemsTable,GeneralData',
'PlainName,Vibro,MaxPV,BasePV,Damage,GeneralData._pageName=Page',
{ where='GeneralData._pageNamespace="0" AND GeneralData._pageName="'.. name .. '"',
default='0',
limit='1',
join='ItemsTable._pageName=GeneralData._pageName'} )

if not next(result) then
  return '[[' .. name.. ']][[Category:pages with inventory errors]]'
else
  name = result[1]['Page']
end


local favilinked = frame:expandTemplate{title='Favilink page', args={name,'displayname-tooltip-override'}}
--local favilinked = 'favilink'

local damage= result[1]['Damage']

if damage ~= nil or damage ~= '' then
if result[1]['Vibro'] == '1' then
  pv = '≈'
elseif result[1]['BasePV'] ~= nil then
  pv = result[1]['BasePV']
  maxpv = result[1]['MaxPV']
end

local pvstr = ''

if maxpv ~= nil or maxpv ~= '' then
  pvstr = '<span style="color:#155352;">/' .. maxpv.. '</span>'
end

weaponhtml = mw.html.create('span')
             :addClass('qud-inline-weap-stats')
             :node(mw.html.create('span')
                  :addClass('qud-inline-damage')
                  :wikitext(frame:expandTemplate{title='Heart'} .. '<span class="qud-inline-damage">' .. damage .. '</span>'..frame:expandTemplate{title='PV'} .. '<span class="qud-inline-pv">' .. pv ..'</span>' .. pvstr) )
end

local favilinkhtml = mw.html.create('div') 
             :addClass('qud-inv-favilink-wrapper')
             :wikitext(favilinked)
if weaponhtml ~= nil then
  favilinkhtml:node(weaponhtml)
end

local inventoryhtml = mw.html.create('div')
inventoryhtml
        :addClass('qud-inventory-item')
        :node(favilinkhtml)
        :node(mw.html.create('span')
             :addClass('qud-item-qty')
             :wikitext('x' .. quantity)
             :node(mw.html.create('span')
                  :addClass('qud-item-chance chance-' .. chance)
                  :wikitext('(' .. chance .. '%)')))
        

return tostring(inventoryhtml)

end

return p