Модуль:HeroData/getter: различия между версиями
MrGorun (обсуждение | вклад) (MrGorun изменил модель содержимого страницы Модуль:HeroData/getter с «обычный текст» на «Scribunto») Метки: изменение модели содержимого ручная отмена |
Нет описания правки |
||
Строка 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) |
Версия от 16:29, 3 января 2022
Данная группа модулей хранит информацию обо всех героях из Крушителей подземелий. Перечень модулей:
- Модуль: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 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