4,951
edits
Falterfire (talk | contribs) (Removed Slayer XP bonus from the weapon table too.) |
Falterfire (talk | contribs) (Made the Equip Requirements section more flexible. Hopefully) |
||
Line 351: | Line 351: | ||
table.insert(resultPart, '\r\n|}') | table.insert(resultPart, '\r\n|}') | ||
return table.concat(resultPart) | return table.concat(resultPart) | ||
end | |||
function p.getEquipRequirementRow(req) | |||
local result = "" | |||
if req.type == "SkillLevel" then | |||
local skillName = Constants.getSkillName(req.skillID) | |||
local skillIcon = Icons.Icon({skillName, type='skill', notext=true}) | |||
result = '\r\n!style="text-align:right;"| '..skillIcon..' Level Required' | |||
result = result..'\r\n|style="text-align:right;"| '..req.level | |||
elseif req.type == "DungeonCompletion" then | |||
local dungeonName = GameData.getEntityByID("dungeons", req.dungeonID).name | |||
local dungeonIcon = Icons.Icon({dungeonName, type="dungeon", notext=true}) | |||
result = '\r\n!style="text-align:right;"| '..dungeonIcon..' Completions' | |||
result = result..'\r\n|style="text-align:right;"| '..req.count | |||
elseif req.type == "Completion" then | |||
local compName = "" | |||
if req.namespace == "melvorBaseGame" then | |||
compName = "Base Game" | |||
elseif req.namespace == "melvorTotH" then | |||
compName = "Throne of the Herald" | |||
else | |||
return '\r\n!style="text-align:right;" colspan=2|ERROR: Invalid namespace for completion requirement "..req.namespace.."[[Category:Pages with script errors]]' | |||
end | |||
result = '\r\n!style="text-align:right;"! '..compName..' Completion' | |||
result = result..'\r\n|style="text-align:right;"| '..req.percent..'%' | |||
else | |||
return '\r\n!style="text-align:right;" colspan=2|ERROR: Invalid equip requirement type "..req.type.."[[Category:Pages with script errors]]' | |||
end | |||
return result | |||
end | end | ||
Line 369: | Line 398: | ||
["Slayer"] = Icons.Icon({'Slayer', type='skill', notext=true}) | ["Slayer"] = Icons.Icon({'Slayer', type='skill', notext=true}) | ||
} | } | ||
local reqCount = item.equipRequirements ~= nil and Shared.tableCount(item.equipRequirements) or 0 | |||
local emptyRow = '\r\n!colspan="2"|' | |||
local resultPart = {} | local resultPart = {} | ||
table.insert(resultPart, '{| class="wikitable"\r\n|-\r\n!colspan="4" style="border-bottom:solid medium black;"| Weapon Stats') | table.insert(resultPart, '{| class="wikitable"\r\n|-\r\n!colspan="4" style="border-bottom:solid medium black;"| Weapon Stats') | ||
Line 400: | Line 433: | ||
table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Combat'] .. ' Block Bonus') | table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Combat'] .. ' Block Bonus') | ||
table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'blockAttackBonus', true)) | table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'blockAttackBonus', true)) | ||
table.insert(resultPart, | if reqCount > 0 then | ||
table.insert(resultPart, '\r\n|style="text-align:right | table.insert(resultPart, p.getEquipRequirementRow(item.equipRequirements[1])) | ||
else | |||
table.insert(resultPart, '\r\n|colspan=2 style="text-align:right"|None') | |||
end | |||
table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Ranged'] .. ' Attack Bonus') | table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Ranged'] .. ' Attack Bonus') | ||
table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'rangedAttackBonus', true)) | table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'rangedAttackBonus', true)) | ||
table.insert(resultPart, | if reqCount > 1 then | ||
table.insert(resultPart, | table.insert(resultPart, p.getEquipRequirementRow(item.equipRequirements[2])) | ||
else | |||
table.insert(resultPart, emptyRow) | |||
end | |||
table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Ranged'] .. ' Strength Bonus') | table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Ranged'] .. ' Strength Bonus') | ||
table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'rangedStrengthBonus', true)) | table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'rangedStrengthBonus', true)) | ||
table.insert(resultPart, | if reqCount > 2 then | ||
table.insert(resultPart, | table.insert(resultPart, p.getEquipRequirementRow(item.equipRequirements[3])) | ||
else | |||
table.insert(resultPart, emptyRow) | |||
end | |||
table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Magic'] .. ' Attack Bonus') | table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Magic'] .. ' Attack Bonus') | ||
table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'magicAttackBonus', true)) | table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'magicAttackBonus', true)) | ||
table.insert(resultPart, | if reqCount > 3 then | ||
table.insert(resultPart, | table.insert(resultPart, p.getEquipRequirementRow(item.equipRequirements[4])) | ||
else | |||
table.insert(resultPart, emptyRow) | |||
end | |||
table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Magic'] .. ' % Damage Bonus') | table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Magic'] .. ' % Damage Bonus') | ||
table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'magicDamageBonus', true) .. '%') | table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'magicDamageBonus', true) .. '%') | ||
table.insert(resultPart, '\r\n!style="text-align:right;" | if reqCount > 4 then | ||
table.insert(resultPart, p.getEquipRequirementRow(item.equipRequirements[5])) | |||
else | |||
table.insert(resultPart, emptyRow) | |||
end | |||
table.insert(resultPart, '\r\n!style="text-align:right;"| Two Handed?') | |||
table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. (p._getItemStat(item, 'isTwoHanded') and 'Yes' or 'No')) | |||
if reqCount > 5 then | |||
table.insert(resultPart, p.getEquipRequirementRow(item.equipRequirements[6])) | |||
else | |||
table.insert(resultPart, emptyRow) | |||
end | |||
--Add extra rows at the end for items that have more than 3 different requirements | |||
if reqCount > 6 then | |||
for i = 7, reqCount, 1 do | |||
table.insert(resultPart, emptyRow) | |||
table.insert(resultPart, p.getEquipRequirementRow(item.equipRequirements[i])) | |||
end | |||
end | |||
table.insert(resultPart, '\r\n|}') | table.insert(resultPart, '\r\n|}') | ||
Line 442: | Line 507: | ||
["Slayer"] = Icons.Icon({'Slayer', type='skill', notext=true}) | ["Slayer"] = Icons.Icon({'Slayer', type='skill', notext=true}) | ||
} | } | ||
local reqCount = item.equipRequirements ~= nil and Shared.tableCount(item.equipRequirements) or 0 | |||
local emptyRow = '\r\n!colspan="2"|' | |||
local resultPart = {} | local resultPart = {} | ||
table.insert(resultPart, '{| class="wikitable"\r\n|-\r\n!colspan="4" style="border-bottom:solid medium black;"| Armour Stats') | table.insert(resultPart, '{| class="wikitable"\r\n|-\r\n!colspan="4" style="border-bottom:solid medium black;"| Armour Stats') | ||
Line 469: | Line 538: | ||
table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Ranged'] .. ' Attack Bonus') | table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Ranged'] .. ' Attack Bonus') | ||
table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'rangedAttackBonus', true)) | table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'rangedAttackBonus', true)) | ||
table.insert(resultPart, '\r\n!colspan="2" style="border-bottom:solid thin black;"| | table.insert(resultPart, '\r\n!colspan="2" style="border-bottom:solid thin black;"| Equip Requirements') | ||
table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Ranged'] .. ' Strength Bonus') | table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Ranged'] .. ' Strength Bonus') | ||
table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'rangedStrengthBonus', true)) | table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'rangedStrengthBonus', true)) | ||
table.insert(resultPart, | if reqCount > 0 then | ||
table.insert(resultPart, '\r\n|style="text-align:right | table.insert(resultPart, p.getEquipRequirementRow(item.equipRequirements[1])) | ||
else | |||
table.insert(resultPart, '\r\n|colspan=2 style="text-align:right"|None') | |||
end | |||
table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Magic'] .. ' Attack Bonus') | table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Magic'] .. ' Attack Bonus') | ||
table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'magicAttackBonus', true)) | table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'magicAttackBonus', true)) | ||
table.insert(resultPart, | if reqCount > 1 then | ||
table.insert(resultPart, | table.insert(resultPart, p.getEquipRequirementRow(item.equipRequirements[2])) | ||
else | |||
table.insert(resultPart, emptyRow) | |||
end | |||
table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Magic'] .. ' % Damage Bonus') | table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Magic'] .. ' % Damage Bonus') | ||
table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'magicDamageBonus', true) .. '%') | table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'magicDamageBonus', true) .. '%') | ||
table.insert(resultPart, | if reqCount > 2 then | ||
table.insert(resultPart, | table.insert(resultPart, p.getEquipRequirementRow(item.equipRequirements[3])) | ||
else | |||
table.insert(resultPart, emptyRow) | |||
end | |||
--Add extra rows at the end for items that have more than 3 different requirements | |||
if reqCount > 3 then | |||
for i = 4, reqCount, 1 do | |||
table.insert(resultPart, emptyRow) | |||
table.insert(resultPart, p.getEquipRequirementRow(item.equipRequirements[i])) | |||
end | |||
end | |||
table.insert(resultPart, '\r\n|}') | table.insert(resultPart, '\r\n|}') |