Модуль:ItemData/getter

Версия от 16:19, 21 декабря 2021; JustPlayer (обсуждение | вклад) (JustPlayer изменил модель содержимого страницы Модуль:ItemData/getter с «JavaScript» на «Scribunto»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Данная группа модулей хранит информацию обо всех предметах из Крушителей подземелий. Перечень модулей:

Информация из Модуль:ItemData/doc

Данный модуль содержит все основные функции для получения определенных данных по предмету.


local p = {}
local data = require('Module:ItemData/data')
local rarity = require('Module:ItemData/rarities')
local type = require('Module:ItemData/types')
local subtype = require('Module:ItemData/subtypes')
local ability = require('Module:ItemData/abilities')
local loot = require('Module:ItemData/loot')
local loot_type = require('Module:ItemData/loot/types')
local key = require('Module:ItemData/keys')
local source = require('Module:ItemData/source')
local category = require('Module:ItemData/categories')

function p.name(item)
    return data[item].name or item
end

function p.icon(item)
    return data[item].icon
end

function p.rarity(item)
    return rarity[data[item].rarity]
end

function p.description(item)
    return data[item].description
end

function p.type(item)
    return type[data[item].type]
end

function p.subtype(item)
    return subtype[data[item].subtype]
end

-- Table: [abilities]
function p.abilities(item)
	local tbl = {}
	for _, v in ipairs(data[item].abilities) do
		table.insert(tbl, p.ability(v))
	end
	return tbl
end

function p.ability(ability_value)
	return ability[ability_value]
end

function p.min_cost(item)
    return data[item].min_cost
end

function p.deposit(item)
    return data[item].deposit
end

function p.min_lvl(item)
    return data[item].min_lvl
end

-- Table: [loot]
function p.loot(item)
	local tbl = {}
	for _, v in ipairs(data[item].loot) do
		table.insert(tbl, p.items(v[1], v[2], v[3]))
	end
	return tbl
end

function p.items(loot_id, count, type)
	local tbl = {}
	for _, v in ipairs(loot[loot_id]) do
		if v[2] == nil then
			v[2] = ""
		end
		table.insert(tbl, v)
	end
	return tbl
end

function p.loot_count(item)
	return table.maxn(data[item].loot)
end

function p.loot_data(item)
	local tbl = {}
	for _, v in ipairs(data[item].loot) do
		table.insert(tbl, v)
	end
	return tbl
end

function p.key(item)
    return key[data[item].key]
end

function p.source(item)
	return source[data[item].source]
end

function p.summon(item)
	return data[item].summon
end

function p.used_in_craft(item)
	return data[item].used_in_craft
end

-- Table: [categories]
function p.categories(item)
	local tbl = {}
	
	if data[item].categories ~= nil then
		for k, v in pairs(data[item].categories) do
			table.insert(tbl, category[v])
		end
	end
	
	return tbl
end

return p