Module:Skills/Gathering: Difference between revisions
From Melvor Idle
(getThievingAreaTable: Initial implementation) |
(_getThievingNPCLootTables: Resolve a couple issues with displayed fractional drop chances; getThievingGeneralRareTable: Split from _getThievingNPCLootTables) |
||
Line 376: | Line 376: | ||
return p._getThievingNPCStat(npc, statName) | return p._getThievingNPCStat(npc, statName) | ||
end | |||
function p.getThievingGeneralRareTable(frame) | |||
local rareTxt = '{|class="wikitable sortable"' | |||
rareTxt = rareTxt..'\r\n!Item!!Qty' | |||
rareTxt = rareTxt..'!!Price!!colspan="2"|Chance' | |||
for i, drop in pairs(SkillData.Thieving.RareItems) do | |||
local thisItem = Items.getItemByID(drop.itemID) | |||
local odds = drop.chance | |||
rareTxt = rareTxt..'\r\n|-\r\n|'..Icons.Icon({thisItem.name, type='item'}) | |||
rareTxt = rareTxt..'||1||data-sort-value="'..thisItem.sellsFor..'"|'..Icons.GP(thisItem.sellsFor) | |||
rareTxt = rareTxt..'||style="text-align:right" data-sort-value="'..odds..'"|'..Shared.fraction(1, Shared.round2(1/(odds/100), 0)) | |||
rareTxt = rareTxt..'||style="text-align:right" data-sort-value="'..odds..'"|'..Shared.round(odds, 4, 4)..'%' | |||
end | |||
rareTxt = rareTxt..'\r\n|}' | |||
return rareTxt | |||
end | end | ||
Line 464: | Line 481: | ||
--After normal drops, add in rare drops | --After normal drops, add in rare drops | ||
local rareTxt = '===Possible Rare Drops:===\r\nAny of these can be received after a successful pickpocket' | local rareTxt = '===Possible Rare Drops:===\r\nAny of these can be received after a successful pickpocket' | ||
rareTxt = rareTxt..'\r\n | rareTxt = rareTxt..'\r\n'..p.getThievingGeneralRareTable() | ||
table.insert(sectionTxt, rareTxt) | table.insert(sectionTxt, rareTxt) | ||
Line 494: | Line 500: | ||
lineTxt = lineTxt..'\r\n|-\r\n|'..Icons.Icon({thisItem.name, type='item'}) | lineTxt = lineTxt..'\r\n|-\r\n|'..Icons.Icon({thisItem.name, type='item'}) | ||
lineTxt = lineTxt..'||'..drop.qty..'||data-sort-value="'..thisItem.sellsFor..'"|'..Icons.GP(thisItem.sellsFor) | lineTxt = lineTxt..'||'..drop.qty..'||data-sort-value="'..thisItem.sellsFor..'"|'..Icons.GP(thisItem.sellsFor) | ||
lineTxt = lineTxt..'||style="text-align:right"|'..thievingAreaLootChance | lineTxt = lineTxt..'||style="text-align:right"|'..Shared.fraction(1, 1/(thievingAreaLootChance/100)) | ||
lineTxt = lineTxt..'||'..Shared.round(thievingAreaLootChance, 2, 2)..'%' | lineTxt = lineTxt..'||'..Shared.round(thievingAreaLootChance, 2, 2)..'%' | ||
dropLines[thisItem.name] = lineTxt | dropLines[thisItem.name] = lineTxt | ||
Line 502: | Line 508: | ||
end | end | ||
areaTxt = areaTxt..'\r\n|-class="sortbottom" \r\n!colspan="3"|Total:' | areaTxt = areaTxt..'\r\n|-class="sortbottom" \r\n!colspan="3"|Total:' | ||
areaTxt = areaTxt..'\r\n|style="text-align:right"|'..Shared.fraction(thievingAreaLootChance | areaTxt = areaTxt..'\r\n|style="text-align:right"|'..Shared.fraction(1, 1/(thievingAreaLootChance/100))..'||' | ||
areaTxt = areaTxt..'style="text-align:right"|'..Shared.round(thievingAreaLootChance, 2, 2)..'%' | areaTxt = areaTxt..'style="text-align:right"|'..Shared.round(thievingAreaLootChance, 2, 2)..'%' | ||
areaTxt = areaTxt..'\r\n|}' | areaTxt = areaTxt..'\r\n|}' |