Модуль:HeroData/getter: различия между версиями
MrGorun (обсуждение | вклад) (MrGorun изменил модель содержимого страницы Модуль:HeroData/getter с «обычный текст» на «Scribunto») Метки: изменение модели содержимого ручная отмена |
Нет описания правки |
||
(не показано 8 промежуточных версий этого же участника) | |||
Строка 10: | Строка 10: | ||
local equips = require('Module:HeroData/equip') | local equips = require('Module:HeroData/equip') | ||
local category = require('Module:HeroData/categories') | local category = require('Module:HeroData/categories') | ||
function p.exists(hero) | |||
return data[hero] ~= nil | |||
end | |||
function p.name(hero) | function p.name(hero) | ||
Строка 89: | Строка 93: | ||
function p.abilities(hero) | function p.abilities(hero) | ||
local tbl = {} | local tbl = {} | ||
for _, v in | for _, v in pairs(data[hero].abilities) do | ||
table.insert(tbl, p.ability(v)) | table.insert(tbl, p.ability(v)) | ||
end | end | ||
Строка 110: | Строка 114: | ||
function p.elita(hero) | function p.elita(hero) | ||
local tbl = {} | local tbl = {} | ||
for k, v in | for k, v in ipairs(data[hero].elita) do | ||
table.insert(tbl, "элита" .. k .. "_" .. v) | if v ~= 0 then | ||
table.insert(tbl, "элита" .. k .. "_" .. v) | |||
end | |||
end | |||
return tbl | |||
end | |||
-- Table: [jadogar] | |||
function p.jadogar(hero) | |||
local tbl = {} | |||
for k, v in ipairs(data[hero].jadogar) do | |||
if v ~= 0 then | |||
table.insert(tbl, "ядогар" .. k .. "_" .. v) | |||
end | |||
end | end | ||
return tbl | return tbl |
Текущая версия от 22:38, 30 декабря 2023
Данная группа модулей хранит информацию обо всех героях из Крушителей подземелий. Перечень модулей:
- Модуль:HeroData - основные функции
- Модуль:HeroData/data - массив данных о героях
- Модуль:HeroData/getter - сборщик данных о героях
- Модуль:HeroData/rarities - массив данных c редкостями героев
- Модуль:HeroData/races - массив данных с расами героев
- Модуль:HeroData/classes - массив данных с классами героев
- Модуль:HeroData/alliances - массив данных с альянсами героев
- Модуль:HeroData/types - массив данных c типами атак героев
- Модуль:HeroData/skills - массив данных с пассивными способностями героев
- Модуль:HeroData/abilities - массив данных с активными способностями героев
- Модуль:HeroData/equip - массив данных с комплектами экипировок героев
- Модуль:HeroData/categories - массив данных с категориями героев
Информация из Модуль: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.exists(hero) return data[hero] ~= nil end 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 pairs(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 ipairs(data[hero].elita) do if v ~= 0 then table.insert(tbl, "элита" .. k .. "_" .. v) end end return tbl end -- Table: [jadogar] function p.jadogar(hero) local tbl = {} for k, v in ipairs(data[hero].jadogar) do if v ~= 0 then table.insert(tbl, "ядогар" .. k .. "_" .. v) end 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