Модуль:HeroData/getter: различия между версиями

(MrGorun изменил модель содержимого страницы Модуль:HeroData/getter с «обычный текст» на «Scribunto»)
Метки: изменение модели содержимого ручная отмена
(нет различий)

Версия от 15:37, 21 декабря 2021

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

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

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


local p = {}
local data = require('Module:HeroData/data')
local rarity = require('Module:HeroData/rarities')
local race = require('Module:HeroData/races')
local class = require('Module:HeroData/classes')
local alliance = require('Module:HeroData/alliances')
local type = require('Module:HeroData/types')
local skills = require('Module:HeroData/skills')
local ability = require('Module:HeroData/abilities')
local equips = require('Module:HeroData/equip')
local category = require('Module:HeroData/categories')

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

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

function p.icon_shard(hero)
	return data[hero].icon_shard
end

function p.shard_count(hero)
	return data[hero].shard_count
end

function p.quote(hero)
	return data[hero].quote
end

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

function p.race(hero)
    return race[data[hero].race]
end

function p.class(hero)
    return class[data[hero].class]
end

function p.alliance(hero)
	local str
	if data[hero].alliance == nil then
		str = ""
	else
		str = alliance[data[hero].alliance]
	end
    return str
end

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

-- Table: [stats]
function p.stats(hero)
    return data[hero].stats
end

function p.total_stats(hero)
    return data[hero].stats.total
end

function p.hp_base(hero)
    return data[hero].stats.hp_base
end

function p.def_base(hero)
    return data[hero].stats.def_base
end

function p.atk_base(hero)
    return data[hero].stats.atk_base
end

function p.wis_base(hero)
    return data[hero].stats.wis_base
end

function p.agi_base(hero)
    return data[hero].stats.agi_base
end

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

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

function p.dislike(hero)
	return data[hero].dislike
end

function p.feature(hero)
	return data[hero].feature
end

-- Table: [elita]
function p.elita(hero)
	local tbl = {}
	for k, v in pairs(data[hero].elita) do
		table.insert(tbl, "элита" .. k .. "_" .. v)
	end
	return tbl
end

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

function p.skill(skill, lvl)
	if lvl == nil then
		lvl = "-"
	end
	if skills[skill][5] == nil then
		skills[skill][5] = ""
	end
	if skills[skill][6] == nil then
		skills[skill][6] = ""
	end
	table.insert(skills[skill], 3, lvl)
	skills[skill][4] = "эффект=" .. skills[skill][4]
	skills[skill][5] = skills[skill][5]
	skills[skill][6] = skills[skill][6]
	return skills[skill]
end

function p.base_cost(hero)
	if data[hero].base_cost == "" then
		data[hero].base_cost = "N/A"
	end
    return data[hero].base_cost
end

function p.base_dps(hero)
	if data[hero].base_dps == "" then
		data[hero].base_dps = "N/A"
	end
    return data[hero].base_dps
end

function p.info(hero)
    return data[hero].info
end

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

function p.equips(equip)
	return equips[equip]
end

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

return p