Module:Loot tables: Difference between revisions

From Veloren Wiki
Content added Content deleted
No edit summary
No edit summary
Tag: Manual revert
 
(15 intermediate revisions by the same user not shown)
Line 5: Line 5:
p.getLootTable = function(frame)
p.getLootTable = function(frame)
local npc = frame.args[1]
local npc = frame.args[1]
local color = ''
local txt = frame:expandTemplate{ title = 'LootHeader' }
local txt = frame:expandTemplate{ title = 'LootHeader' }
for i=1, #lootTable, 1 do
for i=1, #lootTable, 1 do
if lootTable[i][1] == lootTable[i][npc] then
if lootTable[i][1] == npc then
if lootTable[i][2] >= 24.9999 then
txt = txt .. frame:expandTemplate{ title = 'LootRow', args = { itemname = lootTable[i][3], quantity = lootTable[i][4], rarity = lootTable[i][2] } }
color = 'green'
elseif lootTable[i][2] >= 9.9999 then
color = 'yellow'
elseif lootTable[i][2] >= 2.49999 then
color = 'orange'
elseif lootTable[i][2] <= 2.5 then
color = 'red'
end
txt = txt .. frame:expandTemplate{ title = 'LootRow', args = { itemname = lootTable[i][3], quantity = lootTable[i][4],color = color, rarity = lootTable[i][2] .. '%' } }
end
end
end
end
txt = txt .. frame:expandTemplate{ title = 'LootEnd' }
txt = txt .. frame:expandTemplate{ title = 'LootEnd' }
return lootTable[1][1]
return txt
end
end

p.getSourceTable = function(frame)
local item = frame.args[1]
local txt = frame:expandTemplate{ title = 'SourceHeader' }
for i=1, #lootTable, 1 do
if lootTable[i][3] == item then
if lootTable[i][2] >= 24.9999 then
color = 'green'
elseif lootTable[i][2] >= 9.9999 then
color = 'yellow'
elseif lootTable[i][2] >= 2.49999 then
color = 'orange'
elseif lootTable[i][2] <= 2.5 then
color = 'red'
end
txt = txt .. frame:expandTemplate{ title = 'SourceRow', args = { npcname = lootTable[i][1], color = color, quantity = lootTable[i][4], rarity = lootTable[i][2] .. '%' } }
end
end
txt = txt .. frame:expandTemplate{ title = 'LootEnd' }
return txt
end

return p
return p

Latest revision as of 12:21, 1 February 2022

This module retrieves data from the "Loot tables.json" template according to the {{PAGENAME}} (usually, an NPC name) provided as an argument value.


local lootTable = mw.text.jsonDecode(mw.getCurrentFrame():expandTemplate{title='Template:Loot tables.json'})

local p = {}

p.getLootTable = function(frame)
	local npc = frame.args[1]
	local color = ''
	local txt = frame:expandTemplate{ title = 'LootHeader' }
	for i=1, #lootTable, 1 do
		if lootTable[i][1] == npc then
			if lootTable[i][2] >= 24.9999 then
				color = 'green'
			elseif lootTable[i][2] >= 9.9999 then
				color = 'yellow'
			elseif lootTable[i][2] >= 2.49999 then
				color = 'orange'
			elseif lootTable[i][2] <= 2.5 then
				color = 'red'
			end
			txt = txt .. frame:expandTemplate{ title = 'LootRow', args = { itemname = lootTable[i][3], quantity = lootTable[i][4],color = color, rarity = lootTable[i][2] .. '%'   } }
		end
	end
	txt = txt .. frame:expandTemplate{ title = 'LootEnd' }
	return txt
end

p.getSourceTable = function(frame)
	local item = frame.args[1]
	local txt = frame:expandTemplate{ title = 'SourceHeader' }
	for i=1, #lootTable, 1 do
		if lootTable[i][3] == item then
			if lootTable[i][2] >= 24.9999 then
				color = 'green'
			elseif lootTable[i][2] >= 9.9999 then
				color = 'yellow'
			elseif lootTable[i][2] >= 2.49999 then
				color = 'orange'
			elseif lootTable[i][2] <= 2.5 then
				color = 'red'
			end
			txt = txt .. frame:expandTemplate{ title = 'SourceRow', args = { npcname = lootTable[i][1], color = color, quantity = lootTable[i][4], rarity = lootTable[i][2] .. '%'   } }
		end
	end
	txt = txt .. frame:expandTemplate{ title = 'LootEnd' }
	return txt
end

return p
Cookies help us deliver our services. By using our services, you agree to our use of cookies.