4,951
edits
Falterfire (talk | contribs) (Added Shop table for item sources) |
Falterfire (talk | contribs) (Added getSuperheatTable) |
||
Line 7: | Line 7: | ||
local Shared = require('Module:Shared') | local Shared = require('Module:Shared') | ||
local Magic = require('Module:Magic') | |||
local Icons = require('Module:Icons') | local Icons = require('Module:Icons') | ||
Line 1,097: | Line 1,098: | ||
return p._getItemUpgradeTable(item) | return p._getItemUpgradeTable(item) | ||
end | |||
function p._getItemSuperheatTable(item) | |||
--Manually build the Superheat Item table | |||
local oreString = '' | |||
local coalString = '' | |||
for i, mat in pairs(item.smithReq) do | |||
local thisMat = p.getItemByID(mat.id) | |||
if thisMat.name == 'Coal Ore' then | |||
coalString = ', '..Icons.Icon({thisMat.name, type='item', notext='true', qty=mat.qty}) | |||
else | |||
if string.len(oreString) > 0 then oreString = oreString..', ' end | |||
oreString = oreString..Icons.Icon({thisMat.name, type='item', notext='true', qty=mat.qty}) | |||
end | |||
end | |||
--Set up the header | |||
local superheatTable = '{|class="wikitable"\r\n!colspan="2"|Spell' | |||
superheatTable = superheatTable..'!!'..Icons.Icon({'Smithing', type='skill', notext='true'})..' Level' | |||
superheatTable = superheatTable..'!!'..Icons.Icon({'Magic', type='skill', notext='true'})..' Level' | |||
superheatTable = superheatTable..'!!'..Icons.Icon({'Magic', type='skill', notext='true'})..' XP' | |||
superheatTable = superheatTable..'!!'..Icons.Icon({item.name, type='item', notext='true'})..' Bars' | |||
superheatTable = superheatTable..'!!Ore!!Runes' | |||
--Loop through all the variants | |||
local spellNames = {'Superheat I', 'Superheat II', 'Superheat III', 'Superheat IV'} | |||
for i, sName in pairs(spellNames) do | |||
local spell = Magic.getSpell(sName, 'AltMagic') | |||
local rowTxt = '\r\n|-\r\n|'..Icons.Icon({spell.name, type='spell', notext=true, size=50}) | |||
rowTxt = rowTxt..'||[['..spell.name..']]||'..item.smithingLevel | |||
rowTxt = rowTxt..'||'..spell.magicLevelRequired..'||'..spell.magicXP..'||'..spell.convertToQty | |||
rowTxt = rowTxt..'||'..oreString | |||
if spell.ignoreCoal ~= nil and not spell.ignoreCoal then rowTxt = rowTxt..coalString end | |||
rowTxt = rowTxt..'||style="text-align:center"|' | |||
for i, req in pairs(spell.runesRequired) do | |||
local rune = p.getItemByID(req.id) | |||
if i > 1 then rowTxt = rowTxt..', ' end | |||
rowTxt = rowTxt..Icons.Icon({rune.name, type='item', notext=true, qty=req.qty}) | |||
end | |||
rowTxt = rowTxt.."<br/>'''OR'''<br/>" | |||
for i, req in pairs(spell.runesRequiredAlt) do | |||
local rune = p.getItemByID(req.id) | |||
if i > 1 then rowTxt = rowTxt..', ' end | |||
rowTxt = rowTxt..Icons.Icon({rune.name, type='item', notext=true, qty=req.qty}) | |||
end | |||
superheatTable = superheatTable..rowTxt | |||
end | |||
--Add the table end and add the table to the result string | |||
superheatTable = superheatTable..'\r\n|}' | |||
return superheatTable | |||
end | |||
function p.getItemSuperheatTable(frame) | |||
local itemName = frame.args ~= nil and frame.args[1] or frame | |||
local item = p.getItem(itemName) | |||
if item == nil then | |||
return "ERROR: No item named "..itemName.." exists in the data module" | |||
end | |||
return p._getItemSuperheatTable(item) | |||
end | end | ||
Line 1,111: | Line 1,170: | ||
result = result..'===Creation===\r\n'..creationTable | result = result..'===Creation===\r\n'..creationTable | ||
end | end | ||
if item.type == 'Bar' then | |||
result = result..'\r\n'..p._getItemSuperheatTable(item) | |||
end | |||
local upgradeTable = p._getItemUpgradeTable(item) | local upgradeTable = p._getItemUpgradeTable(item) | ||
if string.len(upgradeTable) > 0 then | if string.len(upgradeTable) > 0 then |