8,290
edits
(Support ID Aliases in inventory) |
(support population links) |
||
Line 10: | Line 10: | ||
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 ispop = frame.args[5] or 'no' | |||
local weaponhtml | local weaponhtml | ||
Line 16: | Line 17: | ||
local objname | local objname | ||
local name | local name | ||
local favilinked | |||
local favilinkhtml | |||
if frame.args[1] ~= nil and frame.args[1] ~= '' then | |||
objname = mw.text.trim(frame.args[1]) | objname = mw.text.trim(frame.args[1]) | ||
--return name | --return name | ||
else | |||
error "There is no argument specified! [[Category:pages with inventory errors]]" | |||
end | end | ||
if | if ispop ~= 'yes' then | ||
--[logic for basic objects]-- | |||
local result = cargo.query('ItemsTable=IT,GeneralData=GD,MissileWeaponData=MWD', | |||
'PlainName,Vibro,MaxPV,BasePV,Damage,PenetratingAmmo,GD.JoinKey=Page', | |||
{ where='(GD._pageNamespace="0" OR GD._pageNamespace="10002") AND (GD.ObjectID="' .. objname .. '" OR GD.IDAliases HOLDS "' .. objname .. '")', | |||
default='0', | |||
limit='1', | |||
join='GD.JoinKey=IT.JoinKey,GD.JoinKey=MWD.JoinKey'} ) | |||
if not next(result) then | |||
return '[[' .. objname.. ']][[Category:pages with inventory errors]]' | |||
else | |||
name = result[1]['PlainName'] | |||
end | |||
favilinked = frame:expandTemplate{title='Favilink id', args={objname,'displayname-tooltip-override'}} | |||
--[If damage, return weapon html that specifies damage, PV and max PV]-- | |||
local damage = result[1]['Damage'] | |||
local piercingTemplate = '' | |||
if result[1]['PenetratingAmmo'] ~= nil and result[1]['PenetratingAmmo'] == '1' then | |||
piercingTemplate = frame:expandTemplate{title='PV', args={'pierce'}} | |||
else | |||
piercingTemplate = frame:expandTemplate{title='PV'} | |||
end | end | ||
local pvstr = '' | if damage ~= nil and 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 and maxpv ~= '' then | |||
pvstr = '<span style="color:#155352;">/' .. maxpv.. '</span>' | |||
end | |||
--[Define weaponhtml] | |||
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> '.. piercingTemplate .. | |||
'<span class="qud-inline-pv">' .. pv ..'</span>' .. pvstr) ) | |||
end | |||
--[Define html...]-- | |||
favilinkhtml = mw.html.create('div') | |||
:addClass('qud-inv-favilink-wrapper') | |||
:wikitext(favilinked) | |||
if weaponhtml ~= nil then | |||
favilinkhtml:node(weaponhtml) | |||
end | end | ||
--[ | else | ||
--[logic for population tables]-- | |||
favilinkhtml = mw.html.create('div') | |||
:addClass('qud-inv-favilink-wrapper') | |||
:node('div') | |||
:addClass('qud-inv-poptable-icon') | |||
:node('span') | |||
:wikitext('Item from [[Population:' .. objname .. '|' .. objname .. ']]') | |||
end | end | ||