4,951
edits
(_getOtherItemBoxText: Add link for Consumable slot) |
Falterfire (talk | contribs) (Fixed "other" -> Equip Requirements) |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 242: | Line 242: | ||
local spAtt = GameData.getEntityByID('attacks', spAttID) | local spAtt = GameData.getEntityByID('attacks', spAttID) | ||
if spAtt ~= nil then | if spAtt ~= nil then | ||
local spAttChance = spAtt.defaultChance | |||
if type(item.overrideSpecialChances) == 'table' and item.overrideSpecialChances[i] ~= nil then | |||
spAttChance = item.overrideSpecialChances[i] | |||
end | |||
local spAttDesc = string.gsub(spAtt.description, '<Attack> ', '') | local spAttDesc = string.gsub(spAtt.description, '<Attack> ', '') | ||
table.insert(resultPart, '\r\n* ' .. | table.insert(resultPart, '\r\n* ' .. spAttChance .. '% chance for ' .. spAtt.name .. ':') | ||
table.insert(resultPart, '\r\n** ' .. spAttDesc) | table.insert(resultPart, '\r\n** ' .. spAttDesc) | ||
end | end | ||
Line 347: | 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 365: | 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 392: | Line 429: | ||
table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Combat'] .. ' Slash Bonus') | table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| ' .. ico['Combat'] .. ' Slash Bonus') | ||
table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'slashAttackBonus', true)) | table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'slashAttackBonus', 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['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;"| Two Handed?') | if reqCount > 4 then | ||
table.insert(resultPart, p.getEquipRequirementRow(item.equipRequirements[5])) | |||
else | |||
table.insert(resultPart, emptyRow) | |||
end | |||
table.insert(resultPart, '\r\n|-\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')) | 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,"\r\n|-") | |||
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 439: | Line 508: | ||
["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 466: | Line 539: | ||
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, "\r\n|-") | |||
table.insert(resultPart, emptyRow) | |||
table.insert(resultPart, p.getEquipRequirementRow(item.equipRequirements[i])) | |||
end | |||
end | |||
table.insert(resultPart, '\r\n|}') | table.insert(resultPart, '\r\n|}') |