<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=76561199054722510</id>
	<title>Heroes of Might and Magic: Olden Era Official Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=76561199054722510"/>
	<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/Special:Contributions/76561199054722510"/>
	<updated>2026-10-20T04:01:52Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.5</generator>
	<entry>
		<id>https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Module:LocUnitData&amp;diff=28157</id>
		<title>Module:LocUnitData</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Module:LocUnitData&amp;diff=28157"/>
		<updated>2026-07-10T11:55:08Z</updated>

		<summary type="html">&lt;p&gt;76561199054722510: Correct typo in unit name (the game uses american &amp;#039;Armored&amp;#039; rather than british &amp;#039;Armoured&amp;#039;)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Подключаем зависимости&lt;br /&gt;
local LangStrings = require(&amp;quot;Module:LocGetString&amp;quot;)&lt;br /&gt;
local UnitModule  = require(&amp;quot;Module:Unit&amp;quot;)  -- наш новый модуль&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
-- ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
local factions = {&lt;br /&gt;
    Temple = {&lt;br /&gt;
        &amp;quot;Swordsman&amp;quot;,&lt;br /&gt;
        &amp;quot;Guard Captain&amp;quot;, &lt;br /&gt;
        &amp;quot;Sun&#039;s Aegis&amp;quot;,&lt;br /&gt;
        &amp;quot;Crossbowman&amp;quot;,&lt;br /&gt;
        &amp;quot;Austringer&amp;quot;,&lt;br /&gt;
        &amp;quot;Marksman&amp;quot;,&lt;br /&gt;
        &amp;quot;Griffin&amp;quot;,&lt;br /&gt;
        &amp;quot;Temple Griffin&amp;quot;,&lt;br /&gt;
        &amp;quot;Guardian Griffin&amp;quot;,&lt;br /&gt;
        &amp;quot;Lightweaver&amp;quot;,&lt;br /&gt;
        &amp;quot;Hierophant&amp;quot;,&lt;br /&gt;
        &amp;quot;Sun Herald&amp;quot;,&lt;br /&gt;
        &amp;quot;Cavalry&amp;quot;,&lt;br /&gt;
        &amp;quot;Noble Cavalry&amp;quot;,&lt;br /&gt;
        &amp;quot;Sunspear Cavalry&amp;quot;,&lt;br /&gt;
        &amp;quot;Inquisitor&amp;quot;,&lt;br /&gt;
        &amp;quot;Mother Superior&amp;quot;,&lt;br /&gt;
        &amp;quot;Excommunicator&amp;quot;,&lt;br /&gt;
        &amp;quot;Angel&amp;quot;,&lt;br /&gt;
        &amp;quot;Archangel&amp;quot;,&lt;br /&gt;
        &amp;quot;Apotheosis&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &lt;br /&gt;
    Necropolis = {&lt;br /&gt;
        &amp;quot;Skeleton&amp;quot;,&lt;br /&gt;
        &amp;quot;Skeleton Warrior&amp;quot;,&lt;br /&gt;
        &amp;quot;Skeleton Archer&amp;quot;,&lt;br /&gt;
        &amp;quot;Wight&amp;quot;,&lt;br /&gt;
        &amp;quot;Wraith&amp;quot;, &lt;br /&gt;
        &amp;quot;Phantasm&amp;quot;,&lt;br /&gt;
        &amp;quot;Undead Pet&amp;quot;,&lt;br /&gt;
        &amp;quot;Barghest&amp;quot;,&lt;br /&gt;
        &amp;quot;Armored Hound&amp;quot;,&lt;br /&gt;
        &amp;quot;Graverobber&amp;quot;,&lt;br /&gt;
        &amp;quot;Merchant of Death&amp;quot;,&lt;br /&gt;
        &amp;quot;Kennelmaster&amp;quot;,&lt;br /&gt;
        &amp;quot;Lich&amp;quot;,&lt;br /&gt;
        &amp;quot;Pestilent Lich&amp;quot;,&lt;br /&gt;
        &amp;quot;Sanguine Lich&amp;quot;,&lt;br /&gt;
        &amp;quot;Dread Knight&amp;quot;,&lt;br /&gt;
        &amp;quot;Avatar of War&amp;quot;,&lt;br /&gt;
        &amp;quot;Hollow Reaper&amp;quot;,&lt;br /&gt;
        &amp;quot;Vampire&amp;quot;,&lt;br /&gt;
        &amp;quot;Vampire Lord&amp;quot;,&lt;br /&gt;
        &amp;quot;Vampire Scholar&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &lt;br /&gt;
    Dungeon = {&lt;br /&gt;
        &amp;quot;Troglodyte&amp;quot;,&lt;br /&gt;
        &amp;quot;Infernal Troglodyte&amp;quot;,&lt;br /&gt;
        &amp;quot;Toxic Troglodyte&amp;quot;,&lt;br /&gt;
        &amp;quot;Infiltrator&amp;quot;,&lt;br /&gt;
        &amp;quot;Guile Infiltrator&amp;quot;,&lt;br /&gt;
        &amp;quot;Bleak Infiltrator&amp;quot;,&lt;br /&gt;
        &amp;quot;Onyx Dancer&amp;quot;,&lt;br /&gt;
        &amp;quot;Jasper Dancer&amp;quot;,&lt;br /&gt;
        &amp;quot;Aureate Dancer&amp;quot;,&lt;br /&gt;
        &amp;quot;Minotaur&amp;quot;,&lt;br /&gt;
        &amp;quot;Minotaur Lord&amp;quot;,&lt;br /&gt;
        &amp;quot;Minotaur Vanguard&amp;quot;,&lt;br /&gt;
        &amp;quot;Medusa&amp;quot;,&lt;br /&gt;
        &amp;quot;Medusa Sculptor&amp;quot;,&lt;br /&gt;
        &amp;quot;Medusa Queen&amp;quot;,&lt;br /&gt;
        &amp;quot;Hydra&amp;quot;,&lt;br /&gt;
        &amp;quot;Chthonic Hydra&amp;quot;,&lt;br /&gt;
        &amp;quot;Infernal Hydra&amp;quot;,&lt;br /&gt;
        &amp;quot;Cave Dragon&amp;quot;,&lt;br /&gt;
        &amp;quot;Black Dragon&amp;quot;,&lt;br /&gt;
        &amp;quot;Ashen Dragon&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &lt;br /&gt;
    Schism = {&lt;br /&gt;
        &amp;quot;Ra&#039;Shoth&amp;quot;,&lt;br /&gt;
        &amp;quot;Stinging Ra&#039;Shoth&amp;quot;,&lt;br /&gt;
        &amp;quot;Ferocious Ra&#039;Shoth&amp;quot;,&lt;br /&gt;
        &amp;quot;Cultist&amp;quot;,&lt;br /&gt;
        &amp;quot;Binder&amp;quot;,&lt;br /&gt;
        &amp;quot;Votary&amp;quot;,&lt;br /&gt;
        &amp;quot;Aga&#039;Shoth Rider&amp;quot;,&lt;br /&gt;
        &amp;quot;Aga&#039;Shoth Tamer&amp;quot;,&lt;br /&gt;
        &amp;quot;Aga&#039;Shoth Matha&amp;quot;,&lt;br /&gt;
        &amp;quot;Grand Shoth&amp;quot;,&lt;br /&gt;
        &amp;quot;Unspeakable Shoth&amp;quot;,&lt;br /&gt;
        &amp;quot;Unthinkable Shoth&amp;quot;,&lt;br /&gt;
        &amp;quot;Concubus&amp;quot;,&lt;br /&gt;
        &amp;quot;Mistress of Chains&amp;quot;,&lt;br /&gt;
        &amp;quot;Bewitcher&amp;quot;,&lt;br /&gt;
        &amp;quot;Arbitrator&amp;quot;,&lt;br /&gt;
        &amp;quot;Rift Arbitrator&amp;quot;,&lt;br /&gt;
        &amp;quot;Bloated Arbitrator&amp;quot;,&lt;br /&gt;
        &amp;quot;Abyssal Envoy&amp;quot;,&lt;br /&gt;
        &amp;quot;Abyssal Overseer&amp;quot;,&lt;br /&gt;
        &amp;quot;Abyssal Executor&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &lt;br /&gt;
    Sylvan = {&lt;br /&gt;
        &amp;quot;Faun&amp;quot;,&lt;br /&gt;
        &amp;quot;Faun Archer&amp;quot;,&lt;br /&gt;
        &amp;quot;Faun Warrior&amp;quot;,&lt;br /&gt;
        &amp;quot;Hoplet&amp;quot;,&lt;br /&gt;
        &amp;quot;Dawn Hoplet&amp;quot;,&lt;br /&gt;
        &amp;quot;Dusk Hoplet&amp;quot;,&lt;br /&gt;
        &amp;quot;Vine Iriyad&amp;quot;,&lt;br /&gt;
        &amp;quot;Fungal Iriyad&amp;quot;,&lt;br /&gt;
        &amp;quot;Crystal Iriyad&amp;quot;,&lt;br /&gt;
        &amp;quot;Aqualotl&amp;quot;,&lt;br /&gt;
        &amp;quot;Blooming Aqualotl&amp;quot;,&lt;br /&gt;
        &amp;quot;Polar Aqualotl&amp;quot;,&lt;br /&gt;
        &amp;quot;Herbomancer&amp;quot;,&lt;br /&gt;
        &amp;quot;Sporemancer&amp;quot;,&lt;br /&gt;
        &amp;quot;Murmurmancer&amp;quot;,&lt;br /&gt;
        &amp;quot;Qilin&amp;quot;,&lt;br /&gt;
        &amp;quot;Thunder Qilin&amp;quot;,&lt;br /&gt;
        &amp;quot;Mist Qilin&amp;quot;,&lt;br /&gt;
        &amp;quot;Phoenix&amp;quot;,&lt;br /&gt;
        &amp;quot;Flaming Phoenix&amp;quot;,&lt;br /&gt;
        &amp;quot;Energy Phoenix&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &lt;br /&gt;
    Hive = {&lt;br /&gt;
        &amp;quot;Gnat&amp;quot;,&lt;br /&gt;
        &amp;quot;Warden Gnat&amp;quot;,&lt;br /&gt;
        &amp;quot;Ravager Gnat&amp;quot;,&lt;br /&gt;
        &amp;quot;Locust&amp;quot;,&lt;br /&gt;
        &amp;quot;Overgrown Locust&amp;quot;,&lt;br /&gt;
        &amp;quot;Harvester Locust&amp;quot;,&lt;br /&gt;
        &amp;quot;Hornet&amp;quot;,&lt;br /&gt;
        &amp;quot;Chanter&amp;quot;,&lt;br /&gt;
        &amp;quot;Stinger_(unit)&amp;quot;,&lt;br /&gt;
        &amp;quot;Mantis&amp;quot;,&lt;br /&gt;
        &amp;quot;Vermilion Mantis&amp;quot;,&lt;br /&gt;
        &amp;quot;Royal Mantis&amp;quot;,&lt;br /&gt;
        &amp;quot;Reaver&amp;quot;,&lt;br /&gt;
        &amp;quot;Menacing Reaver&amp;quot;,&lt;br /&gt;
        &amp;quot;Maniacal Reaver&amp;quot;,&lt;br /&gt;
        &amp;quot;Waurms&amp;quot;,&lt;br /&gt;
        &amp;quot;Devourer&amp;quot;,&lt;br /&gt;
        &amp;quot;Pyroboros&amp;quot;,&lt;br /&gt;
        &amp;quot;Hive Queen&amp;quot;,&lt;br /&gt;
        &amp;quot;Hive Mother&amp;quot;,&lt;br /&gt;
        &amp;quot;Hive Huntress&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &lt;br /&gt;
    Neutral = {&lt;br /&gt;
        &amp;quot;Pixie&amp;quot;,&lt;br /&gt;
        &amp;quot;Peasant&amp;quot;,&lt;br /&gt;
        &amp;quot;Ghoul&amp;quot;,&lt;br /&gt;
        &amp;quot;Halfling&amp;quot;,&lt;br /&gt;
        &amp;quot;Animated Armour&amp;quot;,&lt;br /&gt;
        &amp;quot;Groll&amp;quot;,&lt;br /&gt;
        &amp;quot;Kittenhorn&amp;quot;,&lt;br /&gt;
        &amp;quot;Starchild&amp;quot;,&lt;br /&gt;
        &amp;quot;Primal Remnant&amp;quot;,&lt;br /&gt;
        &amp;quot;Unicorn&amp;quot;,&lt;br /&gt;
        &amp;quot;Giant Toad&amp;quot;,&lt;br /&gt;
        &amp;quot;Faerie Dragon&amp;quot;,&lt;br /&gt;
        &amp;quot;Couatl&amp;quot;,&lt;br /&gt;
        &amp;quot;Dragonslayer&amp;quot;,&lt;br /&gt;
        &amp;quot;Worldwatcher&amp;quot;,&lt;br /&gt;
        &amp;quot;Sentinel of Glory&amp;quot;,&lt;br /&gt;
        &amp;quot;Obsidian Dragon&amp;quot;,&lt;br /&gt;
        &amp;quot;Lich Dragon&amp;quot;,&lt;br /&gt;
        &amp;quot;Avatar&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Таблица с иконками фракций&lt;br /&gt;
local factionIcons = {&lt;br /&gt;
    Temple = &amp;quot;Human icon.png&amp;quot;,&lt;br /&gt;
    Necropolis = &amp;quot;Undead icon.png&amp;quot;, &lt;br /&gt;
    Dungeon = &amp;quot;Dungeon icon.png&amp;quot;,&lt;br /&gt;
    Schism = &amp;quot;Unfrozen icon.png&amp;quot;,&lt;br /&gt;
    Sylvan = &amp;quot;Spring icon.png&amp;quot;,&lt;br /&gt;
    Hive = &amp;quot;Hive icon.png&amp;quot;,&lt;br /&gt;
    Neutral = &amp;quot;Neutral_faction.png&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Таблица с названиями фракций&lt;br /&gt;
local factionNames = {&lt;br /&gt;
    Temple = &amp;quot;Temple&amp;quot;,&lt;br /&gt;
    Necropolis = &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
    Dungeon = &amp;quot;Dungeon&amp;quot;, &lt;br /&gt;
    Schism = &amp;quot;Schism&amp;quot;,&lt;br /&gt;
    Sylvan = &amp;quot;Sylvan&amp;quot;,&lt;br /&gt;
    Hive = &amp;quot;Hive&amp;quot;,&lt;br /&gt;
    Neutral = &amp;quot;Neutral&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Таблица с путями для фракций&lt;br /&gt;
local factionPages = {&lt;br /&gt;
    Temple = &amp;quot;Temple_Units&amp;quot;,&lt;br /&gt;
    Necropolis = &amp;quot;Necropolis_Units&amp;quot;,&lt;br /&gt;
    Dungeon = &amp;quot;Dungeon_Units&amp;quot;,&lt;br /&gt;
    Schism = &amp;quot;Schism_Units&amp;quot;, &lt;br /&gt;
    Sylvan = &amp;quot;Sylvan_Units&amp;quot;,&lt;br /&gt;
    Hive = &amp;quot;Hive_Units&amp;quot;,&lt;br /&gt;
    Neutral = &amp;quot;Neutral_Units&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------&lt;br /&gt;
-- ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ&lt;br /&gt;
-----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- Обёртка: вызвать Module:Unit get с нужными аргументами&lt;br /&gt;
local function unitGet(name, property, lang)&lt;br /&gt;
    return UnitModule.get({ args = { name, property, lang or &amp;quot;en&amp;quot; } })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getLabel(sid, lang)&lt;br /&gt;
    local text = LangStrings.getText({ args = { sid = sid, lang = lang } })&lt;br /&gt;
    return text or &amp;quot;—&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getUnitLabels(lang)&lt;br /&gt;
    return {&lt;br /&gt;
        Attack      = getLabel(&amp;quot;unit_attack&amp;quot;, lang),&lt;br /&gt;
        Defense     = getLabel(&amp;quot;unit_defence&amp;quot;, lang),&lt;br /&gt;
        Damage      = getLabel(&amp;quot;unit_damage&amp;quot;, lang),&lt;br /&gt;
        Health      = getLabel(&amp;quot;unit_health&amp;quot;, lang),&lt;br /&gt;
        Speed       = getLabel(&amp;quot;unit_speed&amp;quot;, lang),&lt;br /&gt;
        Initiative  = getLabel(&amp;quot;unit_init&amp;quot;, lang),&lt;br /&gt;
        Morale      = getLabel(&amp;quot;unit_moral&amp;quot;, lang),&lt;br /&gt;
        Luck        = getLabel(&amp;quot;unit_luck&amp;quot;, lang),&lt;br /&gt;
        Tier        = getLabel(&amp;quot;tooltipRang&amp;quot;, lang),&lt;br /&gt;
        Fraction    = getLabel(&amp;quot;faction_laws&amp;quot;, lang),&lt;br /&gt;
        Price       = &amp;quot;[[File:Skill Economy.png|24px|alt=Price]]&amp;quot;,&lt;br /&gt;
        Experience  = getLabel(&amp;quot;hero_ui_exp&amp;quot;, lang),&lt;br /&gt;
        SquadValue  = &amp;quot;SquadValue&amp;quot;,&lt;br /&gt;
        Range       = &amp;quot;[[File:Battle icon Onesword.png|24px|alt=Attack Type]]&amp;quot;,&lt;br /&gt;
        Growth      = &amp;quot;[[File:Skill Recruitment.png|24px|alt=Growth]]&amp;quot;,&lt;br /&gt;
        Movement    = &amp;quot;[[File:Icon Stats Moving.png|24px|alt=Attack Type]]&amp;quot;,&lt;br /&gt;
        AbilityRank = getLabel(&amp;quot;tooltipRang&amp;quot;, lang),&lt;br /&gt;
        EnergyCost  = getLabel(&amp;quot;unit_energy&amp;quot;, lang),&lt;br /&gt;
    }&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.printUnitData(frame)&lt;br /&gt;
    local name = frame.args[1] or frame.args.name&lt;br /&gt;
    if name then&lt;br /&gt;
        name = name:gsub(&amp;quot;&#039;&amp;quot;, &amp;quot;’&amp;quot;)&lt;br /&gt;
        name = name:gsub(&amp;quot;%_%(unit%)&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    else&lt;br /&gt;
        return &amp;quot;Ошибка: не указано имя юнита&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local lang = frame.args.lang or &amp;quot;en&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    local success, result = pcall(function()&lt;br /&gt;
        return p.getUnitData(name, lang)&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    if not success then&lt;br /&gt;
        return &amp;quot;Ошибка: &amp;quot; .. tostring(result)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Простой вывод всей таблицы&lt;br /&gt;
    local output = &amp;quot;=== ДАННЫЕ ДЛЯ ОТЛАДКИ ===\n&amp;quot;&lt;br /&gt;
    output = output .. &amp;quot;Тип результата: &amp;quot; .. type(result) .. &amp;quot;\n\n&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    if type(result) == &amp;quot;table&amp;quot; then&lt;br /&gt;
        output = output .. &amp;quot;Содержимое таблицы:\n&amp;quot;&lt;br /&gt;
        for key, value in pairs(result) do&lt;br /&gt;
            output = output .. &amp;quot;  &amp;quot; .. tostring(key) .. &amp;quot; = &amp;quot; .. tostring(value) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        output = output .. &amp;quot;Результат: &amp;quot; .. tostring(result)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return &amp;quot;&amp;lt;pre&amp;gt;&amp;quot; .. output .. &amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------&lt;br /&gt;
-- ОСНОВНАЯ ЛОГИКА: получение данных юнита&lt;br /&gt;
-----------------------------------------------------&lt;br /&gt;
function p.getUnitData(name, lang)&lt;br /&gt;
    if not name then return nil, &amp;quot;No unit name provided&amp;quot; end&lt;br /&gt;
    lang = lang or &amp;quot;en&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    -- Проверяем что юнит существует&lt;br /&gt;
    local idCheck = unitGet(name, &amp;quot;id&amp;quot;, lang)&lt;br /&gt;
    if not idCheck or idCheck == &amp;quot;&amp;quot; or idCheck:find(&amp;quot;^Unit &#039;&amp;quot;) then&lt;br /&gt;
        return nil, &amp;quot;Unit not found: &amp;quot; .. name&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Базовые поля через Module:Unit&lt;br /&gt;
    local locName    = unitGet(name, &amp;quot;name&amp;quot;,            lang)&lt;br /&gt;
    local locDesc    = unitGet(name, &amp;quot;description&amp;quot;,     lang)&lt;br /&gt;
    local fraction   = unitGet(name, &amp;quot;faction&amp;quot;,         lang)&lt;br /&gt;
    local tier       = unitGet(name, &amp;quot;tier&amp;quot;,            lang)  -- уже римские цифры&lt;br /&gt;
    local cost       = unitGet(name, &amp;quot;cost&amp;quot;,            lang)&lt;br /&gt;
    local growth     = unitGet(name, &amp;quot;weeklyIncrement&amp;quot;, lang)&lt;br /&gt;
    local expBonus   = unitGet(name, &amp;quot;expBonus&amp;quot;,        lang)&lt;br /&gt;
    local squadValue = unitGet(name, &amp;quot;squadValue&amp;quot;,      lang)&lt;br /&gt;
    local imageName  = unitGet(name, &amp;quot;imageName&amp;quot;,       &amp;quot;en&amp;quot;)  -- без пробелов/апострофов&lt;br /&gt;
&lt;br /&gt;
    -- Линейка апгрейдов (имена-ключи на en, для обхода в getUnits)&lt;br /&gt;
    local baseUnitName = unitGet(name, &amp;quot;baseName&amp;quot;,       &amp;quot;en&amp;quot;)&lt;br /&gt;
    local upgUnitName  = unitGet(name, &amp;quot;upgradeName&amp;quot;,    &amp;quot;en&amp;quot;)&lt;br /&gt;
    local altUnitName  = unitGet(name, &amp;quot;altUpgradeName&amp;quot;, &amp;quot;en&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    -- Статы (числовые поля)&lt;br /&gt;
    local statFields = {&lt;br /&gt;
        &amp;quot;hp&amp;quot;, &amp;quot;offence&amp;quot;, &amp;quot;defence&amp;quot;, &amp;quot;damageMin&amp;quot;, &amp;quot;damageMax&amp;quot;,&lt;br /&gt;
        &amp;quot;speed&amp;quot;, &amp;quot;initiative&amp;quot;, &amp;quot;moral&amp;quot;, &amp;quot;luck&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
    local stats = {}&lt;br /&gt;
    for _, f in ipairs(statFields) do&lt;br /&gt;
        stats[f] = unitGet(name, f, lang)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- moveType и тип атаки&lt;br /&gt;
    local moveType   = unitGet(name, &amp;quot;moveType&amp;quot;, lang)&lt;br /&gt;
    local attack_type = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    -- Способности&lt;br /&gt;
    local abilities = {}&lt;br /&gt;
&lt;br /&gt;
    -- BaseClass — добавляем первым&lt;br /&gt;
    local bcName = unitGet(name, &amp;quot;baseClass.name&amp;quot;, lang)&lt;br /&gt;
    if bcName and bcName ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        local bcDesc = unitGet(name, &amp;quot;baseClass.description&amp;quot;, lang)&lt;br /&gt;
        local bcIcon = unitGet(name, &amp;quot;baseClass.icon&amp;quot;, lang)&lt;br /&gt;
        table.insert(abilities, { name = bcName, description = bcDesc, icon = bcIcon, isBaseClass = true })&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Активные способности&lt;br /&gt;
    local i = 1&lt;br /&gt;
    while true do&lt;br /&gt;
        local aname = unitGet(name, &amp;quot;abilities.&amp;quot; .. i .. &amp;quot;.name&amp;quot;, lang)&lt;br /&gt;
        if not aname or aname == &amp;quot;&amp;quot; then break end&lt;br /&gt;
        local adesc        = unitGet(name, &amp;quot;abilities.&amp;quot; .. i .. &amp;quot;.description&amp;quot;,        lang)&lt;br /&gt;
        local aicon        = unitGet(name, &amp;quot;abilities.&amp;quot; .. i .. &amp;quot;.icon&amp;quot;,               lang)&lt;br /&gt;
        local atype        = unitGet(name, &amp;quot;abilities.&amp;quot; .. i .. &amp;quot;.type&amp;quot;,               lang)&lt;br /&gt;
        local ability_tier = unitGet(name, &amp;quot;abilities.&amp;quot; .. i .. &amp;quot;.ability_tier&amp;quot;,       lang)&lt;br /&gt;
        local energyLevel  = unitGet(name, &amp;quot;abilities.&amp;quot; .. i .. &amp;quot;.energyLevel&amp;quot;,        lang)&lt;br /&gt;
        local excaption    = unitGet(name, &amp;quot;abilities.&amp;quot; .. i .. &amp;quot;.excaptionInTooltip&amp;quot;, lang)&lt;br /&gt;
        table.insert(abilities, {&lt;br /&gt;
            name         = aname,&lt;br /&gt;
            description  = adesc,&lt;br /&gt;
            icon         = aicon,&lt;br /&gt;
            atype        = atype,&lt;br /&gt;
            ability_tier = ability_tier,&lt;br /&gt;
            energyLevel  = energyLevel,&lt;br /&gt;
            excaption    = excaption,&lt;br /&gt;
        })&lt;br /&gt;
        if atype == &amp;quot;attack_melee&amp;quot; or atype == &amp;quot;attack_range&amp;quot; or atype == &amp;quot;attack_shoot&amp;quot; then&lt;br /&gt;
            attack_type = aname&lt;br /&gt;
        end&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Пассивки (добавляем к способностям)&lt;br /&gt;
    i = 1&lt;br /&gt;
    while true do&lt;br /&gt;
        local aname = unitGet(name, &amp;quot;passives.&amp;quot; .. i .. &amp;quot;.name&amp;quot;, lang)&lt;br /&gt;
        if not aname or aname == &amp;quot;&amp;quot; then break end&lt;br /&gt;
        local adesc = unitGet(name, &amp;quot;passives.&amp;quot; .. i .. &amp;quot;.description&amp;quot;, lang)&lt;br /&gt;
        local aicon = unitGet(name, &amp;quot;passives.&amp;quot; .. i .. &amp;quot;.icon&amp;quot;, lang)&lt;br /&gt;
        table.insert(abilities, { name = aname, description = adesc, icon = aicon })&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Изображение: Faction_ImageName_Battlefield.png&lt;br /&gt;
    local factionRaw = unitGet(name, &amp;quot;faction&amp;quot;, &amp;quot;en&amp;quot;)  -- внутренний ключ (human, nature, ...)&lt;br /&gt;
    local factionCap = factionRaw ~= &amp;quot;&amp;quot; and (factionRaw:sub(1,1):upper() .. factionRaw:sub(2)) or &amp;quot;&amp;quot;&lt;br /&gt;
    local image = factionCap .. &amp;quot;_&amp;quot; .. imageName .. &amp;quot;_Battlefield.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    return {&lt;br /&gt;
        id          = idCheck,&lt;br /&gt;
        upgradeLine = { baseUnitName, upgUnitName, altUnitName },&lt;br /&gt;
        name        = name,&lt;br /&gt;
        locName     = locName,&lt;br /&gt;
        locDesc     = locDesc,&lt;br /&gt;
        image       = image,&lt;br /&gt;
        tier        = tier,&lt;br /&gt;
        fraction    = fraction,&lt;br /&gt;
        attack_type = attack_type,&lt;br /&gt;
        stats       = stats,&lt;br /&gt;
        cost        = cost,&lt;br /&gt;
        growth      = growth,&lt;br /&gt;
        moveType    = moveType,&lt;br /&gt;
        expBonus    = expBonus,&lt;br /&gt;
        squadValue  = squadValue,&lt;br /&gt;
        abilities   = abilities,&lt;br /&gt;
    }&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------&lt;br /&gt;
-- РИСОВАНИЕ ТАБЛИЦЫ&lt;br /&gt;
-----------------------------------------------------&lt;br /&gt;
function p.renderUnitTable(unit, lang, baseUnit)&lt;br /&gt;
    if not unit then return &amp;quot;Invalid unit data&amp;quot; end&lt;br /&gt;
    lang = lang or &amp;quot;en&amp;quot;&lt;br /&gt;
    local L = getUnitLabels(lang)&lt;br /&gt;
&lt;br /&gt;
    local function val(x)&lt;br /&gt;
        if x == nil or x == &amp;quot;&amp;quot; then return &amp;quot;—&amp;quot; end&lt;br /&gt;
        return tostring(x)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local function diffStat(stat)&lt;br /&gt;
        if not baseUnit then return val(unit.stats[stat]) end&lt;br /&gt;
&lt;br /&gt;
        local newVal = tonumber(unit.stats[stat])&lt;br /&gt;
        local oldVal = tonumber(baseUnit.stats[stat])&lt;br /&gt;
        if not newVal or not oldVal then return val(unit.stats[stat]) end&lt;br /&gt;
&lt;br /&gt;
        if newVal &amp;gt; oldVal then&lt;br /&gt;
            return string.format(&amp;quot;%s &amp;lt;span style=&#039;color:green;font-weight:bold;&#039;&amp;gt;↑&amp;lt;/span&amp;gt;&amp;quot;, val(newVal))&lt;br /&gt;
        elseif newVal &amp;lt; oldVal then&lt;br /&gt;
            return string.format(&amp;quot;%s &amp;lt;span style=&#039;color:red;font-weight:bold;&#039;&amp;gt;↓&amp;lt;/span&amp;gt;&amp;quot;, val(newVal))&lt;br /&gt;
        else&lt;br /&gt;
            return val(newVal)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stats = unit.stats or {}&lt;br /&gt;
    local cost = unit.cost or {}&lt;br /&gt;
&lt;br /&gt;
    text = &amp;quot;&amp;lt;div style=&#039;max-width:1000px;margin:0 auto;&#039;&amp;gt;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    -- заголовок юнита&lt;br /&gt;
    text = text .. &amp;quot;&amp;lt;div style=&#039;text-align:left;line-height:1.4;margin-bottom:8px;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
    text = text .. &amp;quot;&amp;lt;div style=&#039;font-size:1.5em;font-weight:bold;&#039;&amp;gt;&amp;quot; .. unit.locName .. &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
    text = text .. &amp;quot;&amp;lt;div style=&#039;font-size:0.9em;color:gray;&#039;&amp;gt;&amp;quot; .. val(unit.locDesc) .. &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
    text = text .. &amp;quot;&amp;lt;/div&amp;gt;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    -- основной блок: таблица статов + картинка&lt;br /&gt;
    text = text .. &amp;quot;&amp;lt;div style=&#039;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;&#039;&amp;gt;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    -- левая часть: таблица статов&lt;br /&gt;
    text = text .. &amp;quot;&amp;lt;div style=&#039;flex:1 1 400px;min-width:280px;&#039;&amp;gt;\n&amp;quot;&lt;br /&gt;
    text = text .. &amp;quot;{| class=&#039;wikitable&#039; style=&#039;width:100%;text-align:left;margin:0;&#039;\n&amp;quot;&lt;br /&gt;
    text = text .. &amp;quot;|-\n|&amp;quot; .. &amp;quot;[[File:Health Icon.png|24px|link=Combat#Health|alt=Health]] &amp;quot;.. L.Health .. &amp;quot; || &amp;quot; .. diffStat(&amp;quot;hp&amp;quot;) .. &amp;quot; || &amp;quot; .. L.Tier .. &amp;quot; || &amp;quot; .. val(unit.tier) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
    text = text .. &amp;quot;|-\n|&amp;quot; .. &amp;quot;[[File:Icon Stats Attack.png|24px|link=Combat#Attack|alt=Attack]] &amp;quot;.. L.Attack .. &amp;quot; || &amp;quot; .. diffStat(&amp;quot;offence&amp;quot;) .. &amp;quot; || &amp;quot; .. L.Fraction .. &amp;quot; || &amp;quot; .. val(unit.fraction) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
    text = text .. &amp;quot;|-\n|&amp;quot; .. &amp;quot;[[File:Icon Stats Defence.png|24px|link=Combat#Defence|alt=Defense]] &amp;quot;.. L.Defense .. &amp;quot; || &amp;quot; .. diffStat(&amp;quot;defence&amp;quot;) .. &amp;quot; || &amp;quot; .. L.Range .. &amp;quot; || &amp;quot; .. val(unit.attack_type) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
    text = text .. &amp;quot;|-\n|&amp;quot; .. &amp;quot;[[File:Icon Stats Damage.png|24px|link=Combat#Damage|alt=Damage]] &amp;quot;.. L.Damage .. &amp;quot; || &amp;quot; .. diffStat(&amp;quot;damageMin&amp;quot;) .. &amp;quot;–&amp;quot; .. diffStat(&amp;quot;damageMax&amp;quot;) .. &amp;quot; || &amp;quot; .. L.Movement .. &amp;quot; || &amp;quot; .. val(unit.moveType) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
    text = text .. &amp;quot;|-\n|&amp;quot; .. &amp;quot;[[File:Icon Stats Speed.png|24px|link=Combat#Speed|alt=Speed]] &amp;quot;.. L.Speed .. &amp;quot; || &amp;quot; .. diffStat(&amp;quot;speed&amp;quot;) .. &amp;quot; || &amp;quot; .. L.Price .. &amp;quot; || &amp;quot; .. cost .. &amp;quot;\n&amp;quot;&lt;br /&gt;
    text = text .. &amp;quot;|-\n|&amp;quot; .. &amp;quot;[[File:Icon Stats Initiative.png|24px|link=Combat#Initiative|alt=Initiative]] &amp;quot;.. L.Initiative .. &amp;quot; || &amp;quot; .. diffStat(&amp;quot;initiative&amp;quot;) .. &amp;quot; || &amp;quot; .. L.Growth .. &amp;quot; || &amp;quot; .. val(unit.growth) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
    text = text .. &amp;quot;|-\n|&amp;quot; .. &amp;quot;[[File:Icon Stats Morale.png|24px|link=Combat#Morale|alt=Morale]] &amp;quot;.. L.Morale .. &amp;quot; || &amp;quot; .. diffStat(&amp;quot;moral&amp;quot;) .. &amp;quot; || &amp;quot; .. L.Experience .. &amp;quot; || &amp;quot; .. val(unit.expBonus) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
    text = text .. &amp;quot;|-\n|&amp;quot; .. &amp;quot;[[File:Icon Stats Luck.png|24px|link=Combat#Luck|alt=Luck]] &amp;quot;.. L.Luck .. &amp;quot; || &amp;quot; .. diffStat(&amp;quot;luck&amp;quot;) .. &amp;quot; || &amp;quot; .. L.SquadValue .. &amp;quot; || &amp;quot; .. val(unit.squadValue) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
    text = text .. &amp;quot;|}\n&amp;quot;&lt;br /&gt;
    text = text .. &amp;quot;&amp;lt;/div&amp;gt;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    -- правая часть: картинка&lt;br /&gt;
    text = text .. &amp;quot;&amp;lt;div style=&#039;flex:1 1 300px;min-width:260px;text-align:center;&#039;&amp;gt;[[File:&amp;quot; .. (unit.image or &amp;quot;Temple_Swordsman_Battlefield.png&amp;quot;) .. &amp;quot;|400px]]&amp;lt;/div&amp;gt;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    text = text .. &amp;quot;&amp;lt;/div&amp;gt;\n&amp;quot; -- закрытие блока flex&lt;br /&gt;
&lt;br /&gt;
    -- способности&lt;br /&gt;
    text = text .. &amp;quot;&amp;lt;div style=&#039;margin-top:10px;&#039;&amp;gt;\n&amp;quot;&lt;br /&gt;
    if unit.abilities and #unit.abilities &amp;gt; 0 then&lt;br /&gt;
        text = text .. &amp;quot;{| class=&#039;wikitable&#039; style=&#039;width:100%;text-align:left;margin:0;&#039;\n&amp;quot;&lt;br /&gt;
        for _, ab in ipairs(unit.abilities) do&lt;br /&gt;
            local icon = &amp;quot;[[File:&amp;quot; .. (ab.icon ~= &amp;quot;&amp;quot; and ab.icon or &amp;quot;icon bug.png&amp;quot;) .. &amp;quot;|60px]]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
            -- Строка с именем и описанием&lt;br /&gt;
            local body = &amp;quot;&amp;lt;b&amp;gt;&amp;quot; .. ab.name .. &amp;quot;&amp;lt;/b&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
            -- Для активных способностей — ранг и стоимость&lt;br /&gt;
            if not ab.isBaseClass then&lt;br /&gt;
                local meta = {}&lt;br /&gt;
                if ab.energyLevel and ab.energyLevel ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                    local costTpl = LangStrings.getText({ args = { sid = &amp;quot;tooltipsAbilityCost&amp;quot;, lang = lang } }) or &amp;quot;Ability cost: {0}&amp;quot;&lt;br /&gt;
                    local costStr = costTpl:gsub(&amp;quot;{0}&amp;quot;, ab.energyLevel)&lt;br /&gt;
                    table.insert(meta, costStr)&lt;br /&gt;
                end&lt;br /&gt;
                if #meta &amp;gt; 0 then&lt;br /&gt;
                    body = body .. &amp;quot; &amp;lt;span style=&#039;color:gray;font-size:0.9em;&#039;&amp;gt;| &amp;quot; .. table.concat(meta, &amp;quot; | &amp;quot;) .. &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            body = body .. &amp;quot;&amp;lt;br&amp;gt;&amp;quot; .. (ab.description or &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            -- Ограничения (excaptionInTooltip)&lt;br /&gt;
            if ab.excaption and ab.excaption ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                body = body .. &amp;quot;&amp;lt;br&amp;gt;&amp;lt;span style=&#039;color:#888;font-size:0.9em;font-style:italic;&#039;&amp;gt;&amp;quot; .. ab.excaption .. &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            text = text .. &amp;quot;|-\n| style=&#039;text-align:center;width:80px;vertical-align:middle;&#039; | &amp;quot; .. icon ..&lt;br /&gt;
                        &amp;quot; || style=&#039;padding:10px;&#039; | &amp;quot; .. body .. &amp;quot;\n&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
        text = text .. &amp;quot;|}\n&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
        text = text .. &amp;quot;—\n&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    text = text .. &amp;quot;&amp;lt;/div&amp;gt;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    text = text .. &amp;quot;&amp;lt;/div&amp;gt;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------&lt;br /&gt;
-- Главная точка входа для шаблона&lt;br /&gt;
-----------------------------------------------------&lt;br /&gt;
function p.getUnit(frame)&lt;br /&gt;
    local name = frame.args[1] or frame.args.name&lt;br /&gt;
    name = name and name:gsub(&amp;quot;&#039;&amp;quot;, &amp;quot;’&amp;quot;) or name&lt;br /&gt;
    name = name:gsub(&amp;quot;%_%(unit%)&amp;quot;, &amp;quot;&amp;quot;) -- for Stinger unit and Stinger hero&lt;br /&gt;
    local lang = frame.args.lang or &amp;quot;en&amp;quot;&lt;br /&gt;
    local unit, err = p.getUnitData(name, lang)&lt;br /&gt;
    if not unit then return err end&lt;br /&gt;
    return p.renderUnitTable(unit, lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getUnits(frame)&lt;br /&gt;
    local name = frame.args[1] or frame.args.name&lt;br /&gt;
    local lang = frame.args.lang or &amp;quot;en&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    local unit, err = p.getUnitData(name, lang)&lt;br /&gt;
    if not unit then&lt;br /&gt;
        return err&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- основной юнит&lt;br /&gt;
    local text = p.renderUnitTable(unit, lang)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    -- связанные из линейки&lt;br /&gt;
    for _, unitName in ipairs(unit.upgradeLine) do&lt;br /&gt;
        if unitName and unitName ~= name then&lt;br /&gt;
             local relatedUnit = p.getUnitData(unitName, lang)&lt;br /&gt;
             text = text .. &amp;quot;\n\n&amp;quot; .. p.renderUnitTable(relatedUnit, lang, unit)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- TABS for units&lt;br /&gt;
function p.unitTabs(frame)&lt;br /&gt;
    local lang = frame.args.lang or &amp;quot;en&amp;quot;&lt;br /&gt;
    local tabberContent = {}&lt;br /&gt;
    &lt;br /&gt;
    for i = 1, math.huge do&lt;br /&gt;
        local unit = frame.args[i]&lt;br /&gt;
        if not unit then break end&lt;br /&gt;
        unit = mw.text.trim(unit)&lt;br /&gt;
        &lt;br /&gt;
        local title = LangStrings.translate{ args = { text = unit, lang = lang } }&lt;br /&gt;
        &lt;br /&gt;
        table.insert(tabberContent, &amp;quot;|-| &amp;quot; .. title .. &amp;quot; =&amp;quot;)&lt;br /&gt;
        table.insert(tabberContent, &amp;quot;&amp;lt;br&amp;gt;&amp;quot;)&lt;br /&gt;
        table.insert(tabberContent, &amp;quot;{{#invoke:LocUnitData|getUnits|&amp;quot; .. unit .. &amp;quot;|lang=&amp;quot; .. lang .. &amp;quot;}}&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #tabberContent == 0 then return &amp;quot;&amp;quot; end&lt;br /&gt;
    &lt;br /&gt;
    local fullTabber = &amp;quot;&amp;lt;tabber&amp;gt;\n&amp;quot; .. table.concat(tabberContent, &amp;quot;\n&amp;quot;) .. &amp;quot;\n&amp;lt;/tabber&amp;gt;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    -- Обрабатываем всю разметку tabber как викитекст&lt;br /&gt;
    return frame:preprocess(fullTabber)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- NavBox for fractions&lt;br /&gt;
function p.navBox(frame)&lt;br /&gt;
    local faction = frame.args.faction&lt;br /&gt;
    local lang = frame.args.lang or &amp;quot;en&amp;quot;&lt;br /&gt;
    local langSuffix = lang ~= &amp;quot;en&amp;quot; and &amp;quot;/&amp;quot; .. lang or &amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    local result = &#039;{| class=&amp;quot;wikitable mw-collapsible white-toggle-button&amp;quot; style=&amp;quot;width:100%;&amp;quot;\n&#039;&lt;br /&gt;
    result = result .. &#039;!colspan=&amp;quot;8&amp;quot;|[[Units&#039; .. langSuffix .. &#039;|Units]]\n&#039;&lt;br /&gt;
    &lt;br /&gt;
    -- Функция для получения перевода названия фракции&lt;br /&gt;
    local function getFactionName(fac)&lt;br /&gt;
        if fac == &amp;quot;Neutral&amp;quot; then&lt;br /&gt;
            return &amp;quot;Neutral&amp;quot;  -- нейтралы остаются на английском&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local sidMap = {&lt;br /&gt;
            Temple = &amp;quot;world_cheat_dropdown_fraction_human&amp;quot;,&lt;br /&gt;
            Necropolis = &amp;quot;world_cheat_dropdown_fraction_undead&amp;quot;, &lt;br /&gt;
            Dungeon = &amp;quot;world_cheat_dropdown_fraction_dungeon&amp;quot;,&lt;br /&gt;
            Sylvan = &amp;quot;world_cheat_dropdown_fraction_nature&amp;quot;,&lt;br /&gt;
            Hive = &amp;quot;world_cheat_dropdown_fraction_demon&amp;quot;,&lt;br /&gt;
            Schism = &amp;quot;world_cheat_dropdown_fraction_unfrozen&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        local sid = sidMap[fac]&lt;br /&gt;
        if sid then&lt;br /&gt;
            return LangStrings.getText({ args = { sid = sid, lang = lang } }) or fac&lt;br /&gt;
        end&lt;br /&gt;
        return fac&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Функция для создания ссылки на юнита с flex выравниванием&lt;br /&gt;
    local function getUnitLink(unitName)&lt;br /&gt;
        local locName = unitGet(unitName, &amp;quot;name&amp;quot;, lang)&lt;br /&gt;
        return &#039;&amp;lt;div style=&amp;quot;display:flex; align-items:center; margin-bottom:4px;&amp;quot;&amp;gt;[[File:&#039; .. unitName:gsub(&amp;quot; &amp;quot;, &amp;quot;_&amp;quot;) .. &#039;_icon.png|28px|link=&#039; .. unitName .. langSuffix .. &#039;]]&amp;amp;nbsp;[[&#039; .. unitName .. langSuffix .. &#039;|&#039; .. locName .. &#039;]]&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Функция для рендеринга одной фракции&lt;br /&gt;
    local function renderFaction(fac)&lt;br /&gt;
        local factionName = getFactionName(fac)&lt;br /&gt;
        local row = &#039;|-\n&#039;&lt;br /&gt;
        row = row .. &#039;|align=&amp;quot;center&amp;quot; style=&amp;quot;vertical-align:middle;&amp;quot;|[[File:&#039; .. factionIcons[fac] .. &#039;|50px|link=&#039; .. factionPages[fac] .. langSuffix .. &#039;|&#039; .. factionName .. &#039; Units]]&amp;lt;br&amp;gt;[[&#039; .. factionPages[fac] .. langSuffix .. &#039;|&#039; .. factionName .. &#039;]]\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        local units = factions[fac]&lt;br /&gt;
        if fac == &amp;quot;Neutral&amp;quot; then&lt;br /&gt;
            -- Особый формат для нейтральных юнитов&lt;br /&gt;
            row = row .. &#039;|colspan=&amp;quot;7&amp;quot; style=&amp;quot;vertical-align:middle;&amp;quot;|&#039;&lt;br /&gt;
            for i, unit in ipairs(units) do&lt;br /&gt;
                local locName = unitGet(unit, &amp;quot;name&amp;quot;, lang)&lt;br /&gt;
                row = row .. &#039;&amp;lt;div style=&amp;quot;display:inline-flex; align-items:center; margin:0 8px 4px 0;&amp;quot;&amp;gt;[[File:&#039; .. unit:gsub(&amp;quot; &amp;quot;, &amp;quot;_&amp;quot;) .. &#039;_icon.png|28px|link=&#039; .. unit .. langSuffix .. &#039;]]&amp;amp;nbsp;[[&#039; .. unit .. langSuffix .. &#039;|&#039; .. locName .. &#039;]]&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
                if i &amp;lt; #units then&lt;br /&gt;
                    row = row .. &#039; • &#039;&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            -- Обычные фракции (7 колонок по 3 юнита)&lt;br /&gt;
            row = row .. &#039;| style=&amp;quot;vertical-align:middle;&amp;quot;|&#039;&lt;br /&gt;
            for i = 1, 21, 3 do&lt;br /&gt;
                if i &amp;gt; 1 then&lt;br /&gt;
                    row = row .. &#039;\n| style=&amp;quot;vertical-align:middle;&amp;quot;|&#039;&lt;br /&gt;
                end&lt;br /&gt;
                for j = 0, 2 do&lt;br /&gt;
                    if units[i + j] then&lt;br /&gt;
                        row = row .. getUnitLink(units[i + j])&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        return row .. &#039;\n&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Основная логика отображения&lt;br /&gt;
    if faction and factions[faction] then&lt;br /&gt;
        result = result .. renderFaction(faction)&lt;br /&gt;
    else&lt;br /&gt;
        local allFactions = {&amp;quot;Temple&amp;quot;, &amp;quot;Necropolis&amp;quot;, &amp;quot;Dungeon&amp;quot;, &amp;quot;Schism&amp;quot;, &amp;quot;Sylvan&amp;quot;, &amp;quot;Hive&amp;quot;, &amp;quot;Neutral&amp;quot;}&lt;br /&gt;
        for _, fac in ipairs(allFactions) do&lt;br /&gt;
            result = result .. renderFaction(fac)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return result .. &#039;|}\n&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>76561199054722510</name></author>
	</entry>
	<entry>
		<id>https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Heroes_Overview/pl&amp;diff=28156</id>
		<title>Heroes Overview/pl</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Heroes_Overview/pl&amp;diff=28156"/>
		<updated>2026-07-10T11:40:40Z</updated>

		<summary type="html">&lt;p&gt;76561199054722510: Translate Natalida&amp;#039;s summary&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Loc}}&lt;br /&gt;
&lt;br /&gt;
{{#invoke:HeroesOverview|display|lang=pl}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-toggle&amp;quot;&amp;gt;Specialty Summaries&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:peru&amp;quot;&amp;gt;Note: These texts are necessary for the correct rendering of the above table.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Wayfarer (human_hero_1_specialization) = Więcej punktów ruchu&lt;br /&gt;
* Pathfinder (human_hero_2_specialization) = Brak kar za ruch i większy zasięg widzenia&lt;br /&gt;
* Salt of the Earth (human_hero_3_specialization) = [[Zbrojny]] premie&lt;br /&gt;
* Jaeger (human_hero_4_specialization) = [[Kusznik]] premie&lt;br /&gt;
* Rousing Presence (human_hero_5_specialization) = Bonus do Morlae&lt;br /&gt;
* Gem Seeker (human_hero_6_specialization) = Dodatkowe [[Klejnoty]]&lt;br /&gt;
* Jouster (human_hero_7_specialization) = [[Cavalry]] bonuses&lt;br /&gt;
* True Lord (human_hero_8_specialization) = Additional Attack and Defense&lt;br /&gt;
* Heroic Smite (human_hero_9_specialization) = Stronger Heroic Strike (increases incoming damage)&lt;br /&gt;
* Spiritual Vigor (human_hero_10_specialization) = Map spell uses and more Mana&lt;br /&gt;
* Wish to Learn (human_hero_11_specialization) = More [[XP]] and [[Attributes]] on level up&lt;br /&gt;
* Weaving the Light (human_hero_12_specialization) = [[Lightweaver]] bonuses&lt;br /&gt;
* Radiating Knowledge (human_hero_13_specialization) = Daylight Magic bonuses&lt;br /&gt;
* Compassionate Healer (human_hero_14_specialization) = Masterful Healing Water&lt;br /&gt;
* Blessing (human_hero_15_specialization) = Masterful Blessing&lt;br /&gt;
* Hymn to Arina (human_hero_16_specialization) = Masterful Arina&#039;s Touch&lt;br /&gt;
* Heart of Hearts (human_hero_17_specialization) = Masterful Vulnerability&lt;br /&gt;
* Wealthy (human_hero_18_specialization) = Bonus [[Gold]] income&lt;br /&gt;
&lt;br /&gt;
* Built Different (necro_hero_1_specialization) = Damage reduction&lt;br /&gt;
* Charismatic (necro_hero_2_specialization) = Diplomacy bonus, keep army when fleeing&lt;br /&gt;
* Perfect Puppets (necro_hero_3_specialization) = [[Skeleton]] bonuses&lt;br /&gt;
* Dreadful War (necro_hero_4_specialization) = [[Dread Knight]] bonuses&lt;br /&gt;
* Part of a Pack (necro_hero_5_specialization) = Premie dla [[Nieumarły brytan|Nieumarłych brytanów]]&lt;br /&gt;
* Drive &#039;em Crazy (necro_hero_6_specialization) = Masterful Berserk&lt;br /&gt;
* Languid Soil (necro_hero_7_specialization) = Masterful Web&lt;br /&gt;
* Undead Legion (necro_hero_8_specialization) = Necromancy bonus&lt;br /&gt;
* Alchemist (necro_hero_9_specialization) = Bonus [[Mercury]] income&lt;br /&gt;
* Arcane Dominion (necro_hero_10_specialization) = Arcane Magic bonuses&lt;br /&gt;
* Amnesiac (necro_hero_11_specialization) = [[Wight]] bonuses&lt;br /&gt;
* Tomb-bound Will (necro_hero_12_specialization) = [[Lich]] bonuses&lt;br /&gt;
* Bones Guild (necro_hero_13_specialization) = [[Graverobber]] bonuses&lt;br /&gt;
* Shadowmastery (necro_hero_14_specialization) = Nightshade Magic bonuses&lt;br /&gt;
* Moldering (necro_hero_15_specialization) = Masterful Despair&lt;br /&gt;
* Wistful Nostalgia (necro_hero_16_specialization) = Masterful Rewind Life&lt;br /&gt;
* Undead Legion (necro_hero_17_specialization) = Necromancy bonuses&lt;br /&gt;
* Wealthy (necro_hero_18_specialization) = Bonus [[Gold]] income&lt;br /&gt;
&lt;br /&gt;
* Pathfinder (nature_hero_1_specialization) = No move penalties and more sight radius&lt;br /&gt;
* Shooter (nature_hero_2_specialization) = Damage amplification&lt;br /&gt;
* Faunsong (nature_hero_3_specialization) = [[Faun]] bonuses&lt;br /&gt;
* Natural Selection (nature_hero_4_specialization) = Masterful Guillotine&lt;br /&gt;
* Four-Leaf Horseshoe (nature_hero_5_specialization) = Luck bonuses&lt;br /&gt;
* Charming Shine (nature_hero_6_specialization) = Bonus [[Crystals]] income&lt;br /&gt;
* Hksmilla&#039;s Step (nature_hero_7_specialization) = Masterful Fireball&lt;br /&gt;
* Charismatic (nature_hero_8_specialization) = Diplomacy bonus, keep army when fleeing&lt;br /&gt;
* Wish to Learn (nature_hero_9_specialization) = More [[XP]] and [[Attributes]] on level up&lt;br /&gt;
* Spiritual Vigor (nature_hero_10_specialization) = Map spell uses and more Mana&lt;br /&gt;
* Oldest Known Tree (nature_hero_11_specialization) = [[Herbomancer]] bonuses&lt;br /&gt;
* Tempered Embers (nature_hero_12_specialization) = Masterful Firewall&lt;br /&gt;
* Ice Bolt (nature_hero_13_specialization) = Masterful Ice Bolt&lt;br /&gt;
* Rock It up! (nature_hero_14_specialization) = Masterful Cave In&lt;br /&gt;
* Thunder and Lightning (nature_hero_15_specialization) = Masterful Chain Lightning&lt;br /&gt;
* Murmuring Copy (nature_hero_16_specialization) = Masterful Mirror Copy&lt;br /&gt;
* Murmurwood Native (nature_hero_17_specialization) = Summon stronger [[Avatar]]&lt;br /&gt;
* Wandering Musician (nature_hero_18_specialization) = Get initial [[Focus Points]]&lt;br /&gt;
&lt;br /&gt;
* Shooter (demon_hero_1_specialization) = Damage amplification&lt;br /&gt;
* Flea Bites (demon_hero_18_specialization) = Creatures has more Speed&lt;br /&gt;
* Reave Away (demon_hero_2_specialization) = [[Reaver]] bonuses&lt;br /&gt;
* Wish to Learn (demon_hero_3_specialization) = More [[XP]] and [[Attributes]] on level up&lt;br /&gt;
* Waurmification (demon_hero_4_specialization) = [[Waurms]] bonuses&lt;br /&gt;
* Intimidating Strike (demon_hero_5_specialization) = Stronger Heroic Strike (decreases Initiative)&lt;br /&gt;
* Scavenger (demon_hero_7_specialization) = [[Locust]] bonuses&lt;br /&gt;
* Rousing Presence (demon_hero_8_specialization) = Morale bonuses&lt;br /&gt;
* Chessmaster (demon_hero_9_specialization) = More tactics hexes and more Initiative&lt;br /&gt;
* Wayfarer (demon_hero_10_specialization) = More move points&lt;br /&gt;
* Resistant to Elements (demon_hero_11_specialization) = Immunity to negative map effects and magic damage resistance&lt;br /&gt;
* Charming Shine (demon_hero_12_specialization) = Bonus [[Crystals]] income&lt;br /&gt;
* Stinging (demon_hero_13_specialization) = [[Hornet]] bonuses&lt;br /&gt;
* Son of All Mothers (demon_hero_14_specialization) = [[Hive Queen]] bonuses&lt;br /&gt;
* Wingflap (demon_hero_15_specialization) = Masterful Haste&lt;br /&gt;
* Here and There (demon_hero_16_specialization) = Masterful Blink&lt;br /&gt;
* Primal Weaving (demon_hero_17_specialization) = Primal Magic bonuses&lt;br /&gt;
* Proliferation (demon_hero_6_specialization) = [[Fire Larva]] have more Health&lt;br /&gt;
&lt;br /&gt;
* Wayfarer (unfrozen_hero_1_specialization) = More move points&lt;br /&gt;
* Spellweaver (unfrozen_hero_2_specialization) = More spell damage, weakens enemy&#039;s spells&lt;br /&gt;
* Chessmaster (unfrozen_hero_3_specialization) = More tactics hexes and more Initiative&lt;br /&gt;
* Roguish (unfrozen_hero_4_specialization) = [[Cultist]] bonuses&lt;br /&gt;
* Coldblood Siblings (unfrozen_hero_5_specialization) = [[Aga&#039;Shoth Rider]] bonuses&lt;br /&gt;
* Leash of Chains (unfrozen_hero_6_specialization) = [[Concubus]] bonuses&lt;br /&gt;
* Primal Weaving (unfrozen_hero_7_specialization) = Primal Magic bonuses&lt;br /&gt;
* Everchanging Essence (unfrozen_hero_8_specialization) = Summon stronger [[Avatar]]&lt;br /&gt;
* Alchemist (unfrozen_hero_9_specialization) = Bonus [[Mercury]] income&lt;br /&gt;
* Fighter (unfrozen_hero_10_specialization) = Damage amplification&lt;br /&gt;
* Heart of Ice (unfrozen_hero_11_specialization) = Damage reduction&lt;br /&gt;
* Low Summoning (unfrozen_hero_12_specialization) = [[Ra&#039;Shoth]] bonuses&lt;br /&gt;
* Rift&#039;s Envoy (unfrozen_hero_13_specialization) = [[Grand Shoth]] bonuses&lt;br /&gt;
* Stellar Dilation (unfrozen_hero_14_specialization) = Stronger Heroic Strike (decreases Speed)&lt;br /&gt;
* Pathfinder (unfrozen_hero_15_specialization) = No move penalties and more sight radius&lt;br /&gt;
* Magic Fortress (unfrozen_hero_16_specialization) = Masterful Carapace&lt;br /&gt;
* Mask of the Moon (unfrozen_hero_17_specialization) = Masterful Umbral Grip&lt;br /&gt;
* True Believer (unfrozen_hero_18_specialization) = Generates more Communion levels&lt;br /&gt;
&lt;br /&gt;
* Slithering Menace (dungeon_hero_1_specialization) = [[Medusa]] bonuses&lt;br /&gt;
* With One Eye Open (dungeon_hero_2_specialization) = Masterful Early Start&lt;br /&gt;
* Venomous Strike (dungeon_hero_3_specialization) = Stronger Heroic Strike (poison)&lt;br /&gt;
* The Blind Folk (dungeon_hero_4_specialization) = [[Troglodyte]] bonuses&lt;br /&gt;
* Spy (dungeon_hero_5_specialization) = [[Infiltrator]] bonuses&lt;br /&gt;
* Balthazar&#039;s Lair (dungeon_hero_6_specialization) = [[Minotaur]] bonuses&lt;br /&gt;
* Gem Seeker (dungeon_hero_7_specialization) = Bonus [[Gem]] income&lt;br /&gt;
* Four-Leaf Horseshoe (dungeon_hero_8_specialization) = Luck bonuses&lt;br /&gt;
* Arcane Dominion (dungeon_hero_9_specialization) = Arcane Magic bonuses&lt;br /&gt;
* Wish to Learn (dungeon_hero_10_specialization) = More [[XP]] and [[Attributes]] on level up&lt;br /&gt;
* Spellweaver (dungeon_hero_11_specialization) = More spell damage, weakens enemy&#039;s spells&lt;br /&gt;
* Mask of the Sun (dungeon_hero_12_specialization) = Masterful Arina&#039;s Chosen&lt;br /&gt;
* Danse Macabre (dungeon_hero_13_specialization) = [[Onyx Dancer]] bonuses&lt;br /&gt;
* Charismatic (dungeon_hero_14_specialization) = Diplomacy bonus, keep army when fleeing&lt;br /&gt;
* Wealthy (dungeon_hero_15_specialization) = Bonus [[Gold]] income&lt;br /&gt;
* Alvarian Hydra (dungeon_hero_16_specialization) = [[Hydra]] bonuses&lt;br /&gt;
* Radiating Knowledge (dungeon_hero_17_specialization) = Daylight Magic bonuses&lt;br /&gt;
* Shadowmastery (dungeon_hero_18_specialization) = Nightshade Magic bonuses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>76561199054722510</name></author>
	</entry>
	<entry>
		<id>https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Nieumar%C5%82y_brytan&amp;diff=28155</id>
		<title>Nieumarły brytan</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Nieumar%C5%82y_brytan&amp;diff=28155"/>
		<updated>2026-07-10T11:38:30Z</updated>

		<summary type="html">&lt;p&gt;76561199054722510: Create PL redirect to undedad pet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Undead Pet/pl]]&lt;/div&gt;</summary>
		<author><name>76561199054722510</name></author>
	</entry>
	<entry>
		<id>https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=User:76561199054722510/Sandbox&amp;diff=28154</id>
		<title>User:76561199054722510/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=User:76561199054722510/Sandbox&amp;diff=28154"/>
		<updated>2026-07-10T11:18:52Z</updated>

		<summary type="html">&lt;p&gt;76561199054722510: Create myself a sandbox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:HeroesOverview|display|lang=pl|faction=Necropolis}}&lt;/div&gt;</summary>
		<author><name>76561199054722510</name></author>
	</entry>
	<entry>
		<id>https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=User:76561199054722510&amp;diff=28153</id>
		<title>User:76561199054722510</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=User:76561199054722510&amp;diff=28153"/>
		<updated>2026-07-10T11:17:57Z</updated>

		<summary type="html">&lt;p&gt;76561199054722510: Create user page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An Olden Era player who occasionally peeks in here.&lt;br /&gt;
I have a little bit of experience with Wikitext and lua, but I rarely have time to contribute anywhere...&lt;/div&gt;</summary>
		<author><name>76561199054722510</name></author>
	</entry>
	<entry>
		<id>https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Module:Sandbox/GreenStickInsect/HeroesOverview&amp;diff=28152</id>
		<title>Module:Sandbox/GreenStickInsect/HeroesOverview</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Module:Sandbox/GreenStickInsect/HeroesOverview&amp;diff=28152"/>
		<updated>2026-07-10T11:14:51Z</updated>

		<summary type="html">&lt;p&gt;76561199054722510: Create sandbox to test something&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Usage: {{#invoke:HeroesOverview|display|lang=en|faction=Temple}}&lt;br /&gt;
local p = {}&lt;br /&gt;
local f = mw.ustring.format&lt;br /&gt;
local SkillsOverview = require(&amp;quot;Module:SkillsOverview&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
local FACTION_ORDER = {&lt;br /&gt;
    human = 1,&lt;br /&gt;
    undead = 2,&lt;br /&gt;
    nature = 3,&lt;br /&gt;
    demon = 4,&lt;br /&gt;
    unfrozen = 5,&lt;br /&gt;
    dungeon = 6,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local MIGHT_MAGIC_ORDER = {&lt;br /&gt;
    might = 1,&lt;br /&gt;
    magic = 2,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local FACTION_MAPPING = {&lt;br /&gt;
    Temple = &#039;human&#039;,&lt;br /&gt;
    Necropolis = &#039;undead&#039;,&lt;br /&gt;
    Grove = &#039;nature&#039;,&lt;br /&gt;
    Hive = &#039;demon&#039;,&lt;br /&gt;
    Schism = &#039;unfrozen&#039;,&lt;br /&gt;
    Dungeon = &#039;dungeon&#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local TYPE_ICONS = {&lt;br /&gt;
    might = &#039;Wip_Might_Specialization_Icon&#039;,&lt;br /&gt;
    magic = &#039;Wip_Mage_Specialization_Icon&#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Note: The right side is just a fallback, it will seldom be used.&lt;br /&gt;
local TRANSLATION_IDS = {&lt;br /&gt;
    wiki_heroes_hero = &#039;Hero&#039;,&lt;br /&gt;
    wiki_heroes_type = &#039;Type&#039;,&lt;br /&gt;
    wiki_heroes_class = &#039;Class&#039;,&lt;br /&gt;
    wiki_heroes_specialty = &#039;Specialty&#039;,&lt;br /&gt;
    wiki_might = &#039;Might&#039;,&lt;br /&gt;
    wiki_magic = &#039;Magic&#039;,&lt;br /&gt;
    starting_skills = &#039;Starting Skills&#039;,&lt;br /&gt;
    starting_spells = &#039;Starting Spells&#039;,&lt;br /&gt;
    wiki_heroes_toggle = &#039;Toggle specialty&#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local SPEC_ICON_REPLACEMENTS = {&lt;br /&gt;
    Human = &#039;Temple&#039;,&lt;br /&gt;
    Necro = &#039;Necropolis&#039;,&lt;br /&gt;
    Nature = &#039;Grove&#039;,&lt;br /&gt;
    Demon = &#039;Hive&#039;,&lt;br /&gt;
    Unfrozen = &#039;Schism&#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local PATCH_NAME = {&lt;br /&gt;
    [&#039;Summon Avatar&#039;] = &#039;Summon Avatar (Skill)&#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Displays a variable&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function dump(target)&lt;br /&gt;
    return &#039;&amp;lt;pre&amp;gt;&#039; .. mw.dumpObject(target) .. &#039;&amp;lt;/pre&amp;gt;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Spawns a safe robotic url from an English name, fit for adding it before the visible name&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function getUrl(nameEn, lang)&lt;br /&gt;
    if not nameEn then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    local url = PATCH_NAME[nameEn] or nameEn&lt;br /&gt;
    if lang ~= &#039;en&#039; then&lt;br /&gt;
        url = url .. &#039;/&#039; .. lang&lt;br /&gt;
    end&lt;br /&gt;
    return url&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Parses the Specialty Summaries from the &amp;quot;Heroes Overview&amp;quot; page&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function getSpecialtySummaries(lang)&lt;br /&gt;
    local suffix = lang == &#039;en&#039; and &#039;&#039; or &#039;/&#039; .. lang&lt;br /&gt;
    local targetTitle = mw.title.new(&#039;Heroes Overview&#039; .. suffix)&lt;br /&gt;
    local content = targetTitle and targetTitle.exists and targetTitle:getContent()&lt;br /&gt;
    local dictionary = {}&lt;br /&gt;
    for line in string.gmatch(content, &amp;quot;[^\r\n]+&amp;quot;) do&lt;br /&gt;
        local key, value = string.match(line, &amp;quot;%((.-)%)%s*=%s*(.*)&amp;quot;)&lt;br /&gt;
        if key and value then&lt;br /&gt;
            dictionary[key] = value&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return dictionary&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function convertToTitleCase(str)&lt;br /&gt;
    local titleCased = str:lower():gsub(&amp;quot;%f[%a]%a&amp;quot;, string.upper)&lt;br /&gt;
    return titleCased&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function cleanHtmlWhitespace(str)&lt;br /&gt;
    local cleaned = str:gsub(&amp;quot;&amp;gt;%s+&amp;quot;, &amp;quot;&amp;gt;&amp;quot;):gsub(&amp;quot;%s+&amp;lt;&amp;quot;, &amp;quot;&amp;lt;&amp;quot;)&lt;br /&gt;
    return cleaned&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function shortenSpecId(specId)&lt;br /&gt;
    return specId:gsub(&#039;_specialization&#039;, &#039;&#039;):gsub(&#039;_hero_&#039;, &#039;&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Retrieves the text for some specific ids from Cargo Translations.&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function translateIds(ids, lang, extra)&lt;br /&gt;
    -- Key list&lt;br /&gt;
    local list = {}&lt;br /&gt;
    for key, _ in pairs(ids) do&lt;br /&gt;
        list[#list + 1] = key&lt;br /&gt;
    end&lt;br /&gt;
    local idListString = &#039;&amp;quot;&#039; .. table.concat(list, &#039;&amp;quot;, &amp;quot;&#039;) .. &#039;&amp;quot;&#039;&lt;br /&gt;
&lt;br /&gt;
    -- Cargo&lt;br /&gt;
    local where = {}&lt;br /&gt;
    table.insert(where, &#039;target_id IN (&#039; .. idListString .. &#039;)&#039;)&lt;br /&gt;
    table.insert(where, &#039;language = &amp;quot;&#039; .. lang .. &#039;&amp;quot;&#039;)&lt;br /&gt;
    if extra then&lt;br /&gt;
        table.insert(where, extra)&lt;br /&gt;
    end&lt;br /&gt;
    local results = mw.ext.cargo.query(&#039;Translation&#039;, &#039;target_id, name&#039;, {&lt;br /&gt;
        where = table.concat(where, &#039; AND &#039;),&lt;br /&gt;
        limit = 100&lt;br /&gt;
    })&lt;br /&gt;
&lt;br /&gt;
    -- Dictionary&lt;br /&gt;
    local dictionary = mw.clone(ids)&lt;br /&gt;
    for key, value in pairs(dictionary) do&lt;br /&gt;
        dictionary[key] = value .. &#039;[[Data:WikiTranslations/&#039; .. lang .. &#039;#&#039; .. key .. &#039;|💬]]&#039;&lt;br /&gt;
        --dictionary[key] = value&lt;br /&gt;
    end&lt;br /&gt;
    for _, row in ipairs(results) do&lt;br /&gt;
        local name = row[&#039;name&#039;]&lt;br /&gt;
        if name and name ~= &#039;&#039; and not name:find(&#039;💬&#039;) then&lt;br /&gt;
            dictionary[row[&#039;target_id&#039;]] = name&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return dictionary&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Converts a dictionary into a linear array&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function flatten(hub)&lt;br /&gt;
    local list = {}&lt;br /&gt;
    for _, entry in pairs(hub) do&lt;br /&gt;
        list[#list + 1] = entry&lt;br /&gt;
    end&lt;br /&gt;
    return list&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Interrogates the Hero Cargo table&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function queryHero(lang, forcedFaction, forcedClass, forcedHeroes)&lt;br /&gt;
    -- fields:&lt;br /&gt;
    local fields = {}&lt;br /&gt;
    table.insert(fields, &#039;Hero.id = id&#039;);&lt;br /&gt;
    table.insert(fields, &#039;Hero.class_id = class_id&#039;);&lt;br /&gt;
    table.insert(fields, &#039;Hero.faction = faction&#039;);&lt;br /&gt;
    table.insert(fields, &#039;Hero.class_type = class_type&#039;);&lt;br /&gt;
    table.insert(fields, &#039;Hero.icon = icon&#039;);&lt;br /&gt;
    table.insert(fields, &#039;Hero.specialization_id = specialization_id&#039;);&lt;br /&gt;
    table.insert(fields, &#039;Hero.start_skills = start_skills&#039;);&lt;br /&gt;
    table.insert(fields, &#039;Hero.start_skill_levels = start_skill_levels&#039;);&lt;br /&gt;
    table.insert(fields, &#039;Hero.start_magics = start_magics&#039;);&lt;br /&gt;
    table.insert(fields, &#039;Translation.name = name&#039;);&lt;br /&gt;
    table.insert(fields, &#039;Translation.language = language&#039;);&lt;br /&gt;
&lt;br /&gt;
    -- where:&lt;br /&gt;
    local where = {}&lt;br /&gt;
    if forcedFaction then&lt;br /&gt;
        table.insert(where, &#039;Hero.faction=&amp;quot;&#039; .. forcedFaction .. &#039;&amp;quot;&#039;)&lt;br /&gt;
    end&lt;br /&gt;
    if forcedClass then&lt;br /&gt;
        table.insert(where, &#039;Hero.class_id=&amp;quot;&#039; .. forcedClass .. &#039;&amp;quot;&#039;)&lt;br /&gt;
    end&lt;br /&gt;
    if forcedHeroes then&lt;br /&gt;
        table.insert(where, &#039;Hero.id IN (&amp;quot;&#039; .. forcedHeroes:gsub(&#039;,&#039;, &#039;&amp;quot;, &amp;quot;&#039;) .. &#039;&amp;quot;)&#039;)&lt;br /&gt;
    end&lt;br /&gt;
    table.insert(where, &#039;Hero.id not like &amp;quot;campaign%&amp;quot;&#039;)&lt;br /&gt;
    table.insert(where, &#039;Hero.id not like &amp;quot;tutorial%&amp;quot;&#039;)&lt;br /&gt;
    table.insert(where, &#039;Hero.id not like &amp;quot;%_fun_%&amp;quot;&#039;)&lt;br /&gt;
    table.insert(where, &#039;Translation.type = &amp;quot;hero&amp;quot;&#039;)&lt;br /&gt;
    table.insert(where, &#039;(Translation.language = &amp;quot;en&amp;quot; OR Translation.language = &amp;quot;&#039; .. lang .. &#039;&amp;quot;)&#039;)&lt;br /&gt;
&lt;br /&gt;
    -- query:&lt;br /&gt;
    return mw.ext.cargo.query(&#039;Hero, Translation&#039;, table.concat(fields, &#039;,&#039;), {&lt;br /&gt;
        join = &#039;Hero.id = Translation.target_id&#039;,&lt;br /&gt;
        where = table.concat(where, &#039; AND &#039;),&lt;br /&gt;
        limit = 500&lt;br /&gt;
    })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Interrogates the HeroSpecialization Cargo table&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function queryHeroSpecialization(lang)&lt;br /&gt;
    -- fields:&lt;br /&gt;
    local fields = {}&lt;br /&gt;
    table.insert(fields, &#039;HeroSpecialization.id = id&#039;);&lt;br /&gt;
    table.insert(fields, &#039;HeroSpecialization.icon = icon&#039;);&lt;br /&gt;
    table.insert(fields, &#039;Translation.name = name&#039;);&lt;br /&gt;
    table.insert(fields, &#039;Translation.description = description&#039;);&lt;br /&gt;
&lt;br /&gt;
    -- where:&lt;br /&gt;
    local where = {}&lt;br /&gt;
    table.insert(where, &#039;Translation.language = &amp;quot;&#039; .. lang .. &#039;&amp;quot;&#039;)&lt;br /&gt;
&lt;br /&gt;
    -- query:&lt;br /&gt;
    return mw.ext.cargo.query(&#039;HeroSpecialization, Translation&#039;, table.concat(fields, &#039;,&#039;), {&lt;br /&gt;
        join = &#039;HeroSpecialization.id = Translation.target_id&#039;,&lt;br /&gt;
        where = table.concat(where, &#039; AND &#039;),&lt;br /&gt;
        limit = 500&lt;br /&gt;
    })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Folds all Cargo results into a single dictionary:&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function consolidateHeroes(lang, heroesResults, specializations, summaries)&lt;br /&gt;
    -- specializations&lt;br /&gt;
    local specHub = {}&lt;br /&gt;
    for _, row in ipairs(specializations) do&lt;br /&gt;
        specHub[row.id] = {&lt;br /&gt;
            icon = row.icon or &#039;&#039;,&lt;br /&gt;
            name = row.name or &#039;&#039;,&lt;br /&gt;
            description = row.description or &#039;&#039;,&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- heroes&lt;br /&gt;
    local hub = {}&lt;br /&gt;
    for _, row in ipairs(heroesResults) do&lt;br /&gt;
        local id = row.id&lt;br /&gt;
        local entry = hub[id]&lt;br /&gt;
        if not entry then&lt;br /&gt;
            entry = {}&lt;br /&gt;
            entry.id = id or &#039;&#039;&lt;br /&gt;
            entry.class_id = row.class_id or &#039;&#039;&lt;br /&gt;
            entry.faction = row.faction or &#039;&#039;&lt;br /&gt;
            entry.class_type = row.class_type or &#039;&#039;&lt;br /&gt;
            entry.icon = row.icon or &#039;&#039;&lt;br /&gt;
            entry.start_skills = row.start_skills or &#039;&#039;&lt;br /&gt;
            entry.start_skill_levels = row.start_skill_levels or &#039;&#039;&lt;br /&gt;
            entry.start_magics = row.start_magics or &#039;&#039;&lt;br /&gt;
            local spec = specHub[row.specialization_id] or {}&lt;br /&gt;
            entry.specId = row.specialization_id or &#039;&#039;&lt;br /&gt;
            entry.specIcon = spec.icon or &#039;&#039;&lt;br /&gt;
            entry.specName = spec.name or &#039;&#039;&lt;br /&gt;
            entry.specDescription = spec.description or &#039;&#039;&lt;br /&gt;
            entry.specSummary = summaries[row.specialization_id] or &#039;&#039;&lt;br /&gt;
            hub[id] = entry&lt;br /&gt;
        end&lt;br /&gt;
        if row.language == lang then&lt;br /&gt;
            entry.name = row.name or &#039;&#039;&lt;br /&gt;
        end&lt;br /&gt;
        if row.language == &#039;en&#039; then&lt;br /&gt;
            entry.nameEn = row.name or &#039;&#039;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return hub&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function sortHeroes(a, b)&lt;br /&gt;
    local factionA = FACTION_ORDER[a.faction] or 99&lt;br /&gt;
    local factionB = FACTION_ORDER[b.faction] or 99&lt;br /&gt;
    if factionA ~= factionB then&lt;br /&gt;
        return factionA &amp;lt; factionB&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local mmA = MIGHT_MAGIC_ORDER[a.class_type] or 99&lt;br /&gt;
    local mmB = MIGHT_MAGIC_ORDER[b.class_type] or 99&lt;br /&gt;
    if mmA ~= mmB then&lt;br /&gt;
        return mmA &amp;lt; mmB&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return a.id &amp;lt; b.id&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Boilerplate for the header cells&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function addTh(tr, text)&lt;br /&gt;
    return tr:tag(&#039;th&#039;):wikitext(text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Boilerplate for the body cells&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function addTd(tr, content)&lt;br /&gt;
    if type(content) == &amp;quot;string&amp;quot; then&lt;br /&gt;
        return tr:tag(&#039;td&#039;):wikitext(content)&lt;br /&gt;
    else&lt;br /&gt;
        return tr:tag(&#039;td&#039;):node(content)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Boilerplate for the separator rows&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function addSeparator(htmlTable, className, content)&lt;br /&gt;
    htmlTable:tag(&#039;tr&#039;)&lt;br /&gt;
        :addClass(&#039;separator&#039;)&lt;br /&gt;
        :addClass(className)&lt;br /&gt;
        :tag(&#039;td&#039;):attr(&#039;data-sort-value&#039;, &#039;&#039;):attr(&#039;colspan&#039;, 100):wikitext(content):done()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function createHeader(htmlTable, words, isCompact)&lt;br /&gt;
    local tr = htmlTable:tag(&#039;tr&#039;)&lt;br /&gt;
    addTh(tr, words.wiki_heroes_hero):attr(&#039;colspan&#039;, 2)&lt;br /&gt;
    addTh(tr, words.wiki_heroes_type)&lt;br /&gt;
    addTh(tr, words.wiki_heroes_class)&lt;br /&gt;
    addTh(tr, words.wiki_heroes_specialty):attr(&#039;colspan&#039;, 2)&lt;br /&gt;
    if not isCompact then&lt;br /&gt;
        addTh(tr, words.starting_skills)&lt;br /&gt;
        addTh(tr, words.starting_spells)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function renderFaction(faction, lang, frame)&lt;br /&gt;
    return frame:preprocess(&#039;{{F|&#039; .. faction .. &#039;|&#039; .. lang .. &#039;}}&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function renderIcon(nameEn, lang)&lt;br /&gt;
    local url = getUrl(nameEn, lang)&lt;br /&gt;
    return f(&#039;[[File:%s.png|70px|link=%s]]&#039;, nameEn, url)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function renderName(name, nameEn, lang)&lt;br /&gt;
    local url = getUrl(nameEn, lang)&lt;br /&gt;
    return f(&#039;[[%s|%s]]&#039;, url, name)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function renderType(type, words, frame)&lt;br /&gt;
    local file = &#039;[[File:&#039; .. TYPE_ICONS[type] .. &#039;.png|32px|link=]]&#039;;&lt;br /&gt;
    local text = type == &#039;magic&#039; and words.wiki_magic or words.wiki_might&lt;br /&gt;
    return frame:preprocess(&#039;{{Hint|&#039; .. file .. &#039;|&#039; .. text .. &#039;}}&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function renderClass(class, lang, frame)&lt;br /&gt;
    return frame:preprocess(&#039;{{LinkIcon|type=hero_class|id=&#039; .. class .. &#039;|suffix=_icon.png|lang=&#039; .. lang .. &#039;}}&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function renderSpecialtyIcon(icon)&lt;br /&gt;
    icon = convertToTitleCase(icon)&lt;br /&gt;
    for key, value in pairs(SPEC_ICON_REPLACEMENTS) do&lt;br /&gt;
        icon = string.gsub(icon, key, value)&lt;br /&gt;
    end&lt;br /&gt;
    return f(&#039;[[File:%s.png|64px|link=]]&#039;, icon)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function renderSpecialtyText(name, summary, specId, words)&lt;br /&gt;
    local markup = [[&amp;lt;b&amp;gt;%s&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;%s &amp;lt;span class=&#039;toggle mw-customtoggle-%s&#039; role=&#039;button&#039; title=&#039;%s&#039;&amp;gt;…&amp;lt;/span&amp;gt;]]&lt;br /&gt;
    return f(markup, name, summary, shortenSpecId(specId), words.wiki_heroes_toggle)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function renderStartSkills(startSkills, skillsHub, lang)&lt;br /&gt;
    local items = {}&lt;br /&gt;
    local skillIds = mw.text.split(startSkills, &#039;,&#039;)&lt;br /&gt;
    if #skillIds &amp;gt; 1 then&lt;br /&gt;
        skillIds = { skillIds[2], skillIds[1] }&lt;br /&gt;
        for _, skillId in ipairs(skillIds) do&lt;br /&gt;
            local skill = skillsHub[skillId] or {}&lt;br /&gt;
            local ranks = skill.ranks or {}&lt;br /&gt;
            local rank = ranks[1] or { icon = &#039;&#039; }&lt;br /&gt;
            table.insert(items, {&lt;br /&gt;
                name = skill.name,&lt;br /&gt;
                nameEn = skill.nameEn,&lt;br /&gt;
                icon = rank.icon,&lt;br /&gt;
            })&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        local skill = skillsHub[skillIds[1]] or {}&lt;br /&gt;
        local ranks = skill.ranks or {}&lt;br /&gt;
        local rank = ranks[2] or { icon = &#039;&#039;, name = &#039;&#039; }&lt;br /&gt;
        table.insert(items, {&lt;br /&gt;
            name = rank.name,&lt;br /&gt;
            nameEn = skill.nameEn,&lt;br /&gt;
            icon = rank.icon,&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
    local lines = {}&lt;br /&gt;
    for _, item in ipairs(items) do&lt;br /&gt;
        local url = getUrl(item.nameEn, lang)&lt;br /&gt;
        local file = f(&#039;[[File:%s.png|32px|link=%s]]&#039;, item.icon, url);&lt;br /&gt;
        local link = &#039;[[&#039; .. url .. &#039;|&#039; .. item.name .. &#039;]]&#039;&lt;br /&gt;
        table.insert(lines, f(&#039;&amp;lt;div&amp;gt;%s %s&amp;lt;/div&amp;gt;&#039;, file, link))&lt;br /&gt;
    end&lt;br /&gt;
    return table.concat(lines, &#039;&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function renderSpell(startMagics, frame, lang)&lt;br /&gt;
    if startMagics == &#039;&#039; then return &#039;&#039; end&lt;br /&gt;
&lt;br /&gt;
    local ids = mw.text.split(startMagics, &#039;,&#039;)&lt;br /&gt;
    local texts = {}&lt;br /&gt;
    for _, id in ipairs(ids) do&lt;br /&gt;
        if id ~= &#039;change_use_necromancy&#039; and not id:find(&#039;astral_summon&#039;) then&lt;br /&gt;
            local cleanId = string.gsub(id, &#039;_special$&#039;, &#039;&#039;)&lt;br /&gt;
            local text = frame:preprocess(f(&#039;{{LinkIcon|type=spell|id=%s|lang=%s}}&#039;, cleanId, lang))&lt;br /&gt;
            --if cleanId ~= id then text = text .. &#039;+&#039; end&lt;br /&gt;
            table.insert(texts, text)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return table.concat(texts, &#039;&amp;lt;br&amp;gt;&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function getSkillSortValue(startSkills)&lt;br /&gt;
    local skillIds = mw.text.split(startSkills, &#039;,&#039;)&lt;br /&gt;
    return skillIds[2] or skillIds[1]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function addSpecDescription(htmlTable, description, specId)&lt;br /&gt;
    local markup = cleanHtmlWhitespace([[&lt;br /&gt;
        &amp;lt;tr class=&#039;expand-child mw-collapsible mw-collapsed&#039; id=&#039;mw-customcollapsible-%s&#039;&amp;gt;&lt;br /&gt;
            &amp;lt;td colspan=&#039;100&#039; class=&#039;specialty-full-td&#039;&amp;gt;&lt;br /&gt;
                %s&lt;br /&gt;
            &amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
    ]])&lt;br /&gt;
    htmlTable:node(f(markup, shortenSpecId(specId), description))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function createBody(htmlTable, heroes, lang, frame, words, skillsHub, isCompact)&lt;br /&gt;
    local currentType = #heroes &amp;gt; 0 and heroes[1].class_type&lt;br /&gt;
    local currentFaction = #heroes &amp;gt; 0 and heroes[1].faction&lt;br /&gt;
    for _, hero in ipairs(heroes) do&lt;br /&gt;
        -- separators&lt;br /&gt;
        if hero.faction ~= currentFaction then&lt;br /&gt;
            currentFaction = hero.faction&lt;br /&gt;
            currentType = hero.class_type&lt;br /&gt;
            addSeparator(htmlTable, &#039;separator-large&#039;, renderFaction(currentFaction, lang, frame))&lt;br /&gt;
        elseif hero.class_type ~= currentType then&lt;br /&gt;
            currentType = hero.class_type&lt;br /&gt;
            addSeparator(htmlTable, &#039;separator-tiny&#039;, &#039;&#039;)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local skillSortValue = getSkillSortValue(hero.start_skills)&lt;br /&gt;
&lt;br /&gt;
        local tr = htmlTable:tag(&#039;tr&#039;):addClass(&#039;hero&#039;)&lt;br /&gt;
        addTd(tr, renderIcon(hero.nameEn, lang))&lt;br /&gt;
        addTd(tr, renderName(hero.name, hero.nameEn, lang))&lt;br /&gt;
        addTd(tr, renderType(hero.class_type, words, frame))&lt;br /&gt;
        addTd(tr, renderClass(hero.class_id, lang, frame))&lt;br /&gt;
        addTd(tr, renderSpecialtyIcon(hero.specIcon))&lt;br /&gt;
        addTd(tr, renderSpecialtyText(hero.specName, hero.specSummary, hero.specId, words))&lt;br /&gt;
        if not isCompact then&lt;br /&gt;
            addTd(tr, renderStartSkills(hero.start_skills, skillsHub, lang)):attr(&#039;data-sort-value&#039;, skillSortValue)&lt;br /&gt;
            addTd(tr, renderSpell(hero.start_magics, frame, lang))&lt;br /&gt;
        end&lt;br /&gt;
        addSpecDescription(htmlTable, hero.specDescription, hero.specId)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function createToggleButton(heroes, words)&lt;br /&gt;
    local classes = {}&lt;br /&gt;
    for _, hero in ipairs(heroes) do&lt;br /&gt;
        table.insert(classes, &#039;mw-customtoggle-&#039; .. shortenSpecId(hero.specId))&lt;br /&gt;
    end&lt;br /&gt;
    local classesBlob = table.concat(classes, &#039; &#039;)&lt;br /&gt;
    local markup = cleanHtmlWhitespace([[&lt;br /&gt;
        &amp;lt;div class=&#039;toggle-container&#039;&amp;gt;&lt;br /&gt;
            &amp;lt;span role=&#039;button&#039; class=&#039;toggle %s&#039;&amp;gt;%s&amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    ]])&lt;br /&gt;
    return f(markup, classesBlob, words.wiki_heroes_toggle)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- M A I N&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
function p.display(frame)&lt;br /&gt;
    --do return dump(frame) end&lt;br /&gt;
&lt;br /&gt;
    -- Args&lt;br /&gt;
    local args = frame.args&lt;br /&gt;
    local lang = args.lang ~= &#039;&#039; and args.lang or &#039;en&#039;&lt;br /&gt;
    --lang = &#039;ja&#039;&lt;br /&gt;
    local forcedFaction = FACTION_MAPPING[args.faction] or nil&lt;br /&gt;
    --forcedFaction = &#039;human&#039;&lt;br /&gt;
    local forcedClass = args.class&lt;br /&gt;
    --forcedClass = &#039;might_human&#039;&lt;br /&gt;
    local forcedHeroes = args.heroes&lt;br /&gt;
    --forcedHeroes = &#039;human_hero_1,human_hero_4&#039;&lt;br /&gt;
&lt;br /&gt;
    -- Language&lt;br /&gt;
    local words = translateIds(TRANSLATION_IDS, lang)&lt;br /&gt;
&lt;br /&gt;
    -- Text from the &amp;quot;Heroes Overview&amp;quot; overview&lt;br /&gt;
    local summaries = getSpecialtySummaries(lang)&lt;br /&gt;
&lt;br /&gt;
    -- Cargo&lt;br /&gt;
    local heroesResults = queryHero(lang, forcedFaction, forcedClass, forcedHeroes)&lt;br /&gt;
    local specializations = queryHeroSpecialization(lang)&lt;br /&gt;
    local skillsHub = SkillsOverview.getSkillsFromCargo(lang)&lt;br /&gt;
    local heroesHub = consolidateHeroes(lang, heroesResults, specializations, summaries)&lt;br /&gt;
    local heroes = flatten(heroesHub);&lt;br /&gt;
    if #heroes == 0 then return &#039;No results&#039; end&lt;br /&gt;
&lt;br /&gt;
    -- Various manipulations&lt;br /&gt;
    table.sort(heroes, sortHeroes)&lt;br /&gt;
&lt;br /&gt;
    -- Table&lt;br /&gt;
    local htmlTable = mw.html.create(&#039;table&#039;)&lt;br /&gt;
    htmlTable:addClass(&#039;wikitable sortable&#039;)&lt;br /&gt;
    local isCompact = forcedClass or forcedHeroes&lt;br /&gt;
    if isCompact then&lt;br /&gt;
        htmlTable:addClass(&#039;is-compact&#039;)&lt;br /&gt;
    end&lt;br /&gt;
    createHeader(htmlTable, words, isCompact)&lt;br /&gt;
    createBody(htmlTable, heroes, lang, frame, words, skillsHub, isCompact)&lt;br /&gt;
&lt;br /&gt;
    -- Output&lt;br /&gt;
    local toggle = isCompact and &#039;&#039; or createToggleButton(heroes, words)&lt;br /&gt;
    local styleTag = frame:extensionTag(&#039;templatestyles&#039;, &#039;&#039;, { src = frame:getTitle() .. &#039;/styles.css&#039; })&lt;br /&gt;
    return &#039;&amp;lt;div class=&amp;quot;heroes-overview&amp;quot;&amp;gt;&#039; .. styleTag .. toggle .. tostring(htmlTable) .. &#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>76561199054722510</name></author>
	</entry>
	<entry>
		<id>https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Data:HeroData.json&amp;diff=13078</id>
		<title>Data:HeroData.json</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Data:HeroData.json&amp;diff=13078"/>
		<updated>2026-05-11T22:09:31Z</updated>

		<summary type="html">&lt;p&gt;76561199054722510: Add missing comma&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{&lt;br /&gt;
  &amp;quot;heroes&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Enatee&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Overlord&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Medusae&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Troglodyte&amp;quot;: &amp;quot;22-30&amp;quot;}, {&amp;quot;Medusa&amp;quot;: &amp;quot;2-4&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Defense&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Tellaris the Betrayed&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Overlord&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Early Start&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Troglodyte&amp;quot;: &amp;quot;22-30&amp;quot;}, {&amp;quot;Infiltrator&amp;quot;: &amp;quot;10-13&amp;quot;}, {&amp;quot;Onyx Dancer&amp;quot;: &amp;quot;6-8&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Battlecraft&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Early Start&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Stinger&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Overlord&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Heroic Strike&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Troglodyte&amp;quot;: &amp;quot;22-30&amp;quot;}, {&amp;quot;Infiltrator&amp;quot;: &amp;quot;10-13&amp;quot;}, {&amp;quot;Onyx Dancer&amp;quot;: &amp;quot;6-8&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Combat&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Kieran&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Overlord&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Troglodytes&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Troglodyte&amp;quot;: &amp;quot;18-24&amp;quot;},{&amp;quot;Troglodyte&amp;quot;: &amp;quot;18-24&amp;quot;},{&amp;quot;Troglodyte&amp;quot;: &amp;quot;18-24&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Tactics&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Mouaren&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Overlord&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Infiltrators&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Infiltrator&amp;quot;: &amp;quot;8-10&amp;quot;},{&amp;quot;Infiltrator&amp;quot;: &amp;quot;8-10&amp;quot;},{&amp;quot;Infiltrator&amp;quot;: &amp;quot;8-10&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Scouting&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Devir, son of Devir&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Overlord&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Minotaurs&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Troglodyte&amp;quot;: &amp;quot;22-30&amp;quot;}, {&amp;quot;Minotaur&amp;quot;: &amp;quot;3-5&amp;quot;}, {&amp;quot;Minotaur&amp;quot;: &amp;quot;3-5&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Leadership&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Creta, daughter of Navarr&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Overlord&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Gem&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Troglodyte&amp;quot;: &amp;quot;22-30&amp;quot;}, {&amp;quot;Infiltrator&amp;quot;: &amp;quot;10-13&amp;quot;}, {&amp;quot;Onyx Dancer&amp;quot;: &amp;quot;6-8&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Economy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Groundsight&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Rhea&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Overlord&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Luck&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Troglodyte&amp;quot;: &amp;quot;22-30&amp;quot;}, {&amp;quot;Infiltrator&amp;quot;: &amp;quot;10-13&amp;quot;}, {&amp;quot;Onyx Dancer&amp;quot;: &amp;quot;6-8&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Luck&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Gleard the Grey&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Overlord&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Arcane Magic&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Troglodyte&amp;quot;: &amp;quot;22-30&amp;quot;}, {&amp;quot;Infiltrator&amp;quot;: &amp;quot;10-13&amp;quot;}, {&amp;quot;Onyx Dancer&amp;quot;: &amp;quot;6-8&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Arcane Magic&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Shackles&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Kelarr, son of Navarr&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Warlock&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Experience&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Troglodyte&amp;quot;: &amp;quot;18-25&amp;quot;}, {&amp;quot;Infiltrator&amp;quot;: &amp;quot;8-11&amp;quot;}, {&amp;quot;Onyx Dancer&amp;quot;: &amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Insight&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;From a Bird&#039;s Eye&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Zakron the Great&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Warlock&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Sorcery&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Troglodyte&amp;quot;: &amp;quot;18-25&amp;quot;}, {&amp;quot;Infiltrator&amp;quot;: &amp;quot;8-11&amp;quot;}, {&amp;quot;Onyx Dancer&amp;quot;: &amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Sorcery&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Firewall&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Sister Deira&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Warlock&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Arina&#039;s Chosen&amp;quot;,&lt;br /&gt;
  &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Troglodyte&amp;quot;: &amp;quot;18-25&amp;quot;}, {&amp;quot;Infiltrator&amp;quot;: &amp;quot;8-11&amp;quot;}, {&amp;quot;Onyx Dancer&amp;quot;: &amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Thaumaturgy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Arina&#039;s Chosen&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Motley&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Warlock&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Onyx Dancers&amp;quot;,&lt;br /&gt;
  &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Onyx Dancer&amp;quot;: &amp;quot;4-6&amp;quot;},{&amp;quot;Onyx Dancer&amp;quot;: &amp;quot;4-6&amp;quot;},{&amp;quot;Onyx Dancer&amp;quot;: &amp;quot;4-6&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Luck&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Twilight&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Ylwari&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Warlock&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Diplomacy&amp;quot;,&lt;br /&gt;
  &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Troglodyte&amp;quot;: &amp;quot;18-25&amp;quot;}, {&amp;quot;Infiltrator&amp;quot;: &amp;quot;8-11&amp;quot;}, {&amp;quot;Onyx Dancer&amp;quot;: &amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Diplomacy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Assemble!&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Glastor&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Warlock&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Gold&amp;quot;,&lt;br /&gt;
  &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Troglodyte&amp;quot;: &amp;quot;18-25&amp;quot;}, {&amp;quot;Infiltrator&amp;quot;: &amp;quot;8-11&amp;quot;}, {&amp;quot;Onyx Dancer&amp;quot;: &amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Economy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Thick Hide&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Typhona&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Warlock&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Hydras&amp;quot;,&lt;br /&gt;
  &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Hydra&amp;quot;: &amp;quot;2&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;advanced&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Taunt&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Sunny Rauktol&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Warlock&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Daylight Magic&amp;quot;,&lt;br /&gt;
  &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Troglodyte&amp;quot;: &amp;quot;18-25&amp;quot;}, {&amp;quot;Infiltrator&amp;quot;: &amp;quot;8-11&amp;quot;}, {&amp;quot;Onyx Dancer&amp;quot;: &amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Daylight Magic&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Inner Light&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Dungeon&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Lodos&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Warlock&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Nightshade Magic&amp;quot;,&lt;br /&gt;
  &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Troglodyte&amp;quot;: &amp;quot;18-25&amp;quot;}, {&amp;quot;Infiltrator&amp;quot;: &amp;quot;8-11&amp;quot;}, {&amp;quot;Onyx Dancer&amp;quot;: &amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Triumvirate&#039;s Strength&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Nightshade Magic&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Sleep&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Ister&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Logistics&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;14-20&amp;quot;},{&amp;quot;Crossbowman&amp;quot;:&amp;quot;10-14&amp;quot;},{&amp;quot;Griffin&amp;quot;:&amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Logistics&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Leon Sticky‑Fingers&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Pathfinder&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;14-20&amp;quot;},{&amp;quot;Crossbowman&amp;quot;:&amp;quot;10-14&amp;quot;},{&amp;quot;Griffin&amp;quot;:&amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Scouting&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;John Johnson&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Swordsmen&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;11-16&amp;quot;},{&amp;quot;Swordsman&amp;quot;:&amp;quot;11-16&amp;quot;},{&amp;quot;Swordsman&amp;quot;:&amp;quot;11-16&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Defense&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Kestrel&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Crossbowmen&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Crossbowman&amp;quot;:&amp;quot;8-11&amp;quot;},{&amp;quot;Crossbowman&amp;quot;:&amp;quot;8-11&amp;quot;},{&amp;quot;Crossbowman&amp;quot;:&amp;quot;8-11&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Offense&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Aeos the Exalted&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Leadership&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;14-20&amp;quot;},{&amp;quot;Crossbowman&amp;quot;:&amp;quot;10-14&amp;quot;},{&amp;quot;Griffin&amp;quot;:&amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Leadership&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Heretic Avis&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Gem&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;14-20&amp;quot;},{&amp;quot;Crossbowman&amp;quot;:&amp;quot;10-14&amp;quot;},{&amp;quot;Griffin&amp;quot;:&amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Recruitment&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Keandra&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Cavalry&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;14-20&amp;quot;},{&amp;quot;Cavalry&amp;quot;:&amp;quot;2-3&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Battlecraft&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Lord Edgar&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Ascension&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;14-20&amp;quot;},{&amp;quot;Crossbowman&amp;quot;:&amp;quot;10-14&amp;quot;},{&amp;quot;Griffin&amp;quot;:&amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;advanced&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Old Lord Mandall&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Heroic Strike&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;14-20&amp;quot;},{&amp;quot;Crossbowman&amp;quot;:&amp;quot;10-14&amp;quot;},{&amp;quot;Griffin&amp;quot;:&amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Combat&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Merry Elias&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Cleric&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Global Map Spells&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;12-17&amp;quot;},{&amp;quot;Crossbowman&amp;quot;:&amp;quot;8-12&amp;quot;},{&amp;quot;Griffin&amp;quot;:&amp;quot;4-6&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Diplomacy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Reinforcements&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Pip&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Cleric&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Experience&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;12-17&amp;quot;},{&amp;quot;Crossbowman&amp;quot;:&amp;quot;8-12&amp;quot;},{&amp;quot;Griffin&amp;quot;:&amp;quot;4-6&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Insight&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Early Start&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Zenith&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Cleric&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Lightweavers&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;12-17&amp;quot;},{&amp;quot;Lightweaver&amp;quot;:&amp;quot;3-5&amp;quot;},{&amp;quot;Lightweaver&amp;quot;:&amp;quot;3-5&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Wisdom&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Heavenly Blades&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Lia the Untethered One&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Cleric&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Daylight Magic&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;12-17&amp;quot;},{&amp;quot;Crossbowman&amp;quot;:&amp;quot;8-12&amp;quot;},{&amp;quot;Griffin&amp;quot;:&amp;quot;4-6&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Daylight Magic&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;From a Bird&#039;s Eye&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Julius&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Cleric&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Healing Water&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;12-17&amp;quot;},{&amp;quot;Crossbowman&amp;quot;:&amp;quot;8-12&amp;quot;},{&amp;quot;Griffin&amp;quot;:&amp;quot;4-6&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Resistance&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Healing Water&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Vesper&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Cleric&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Blessing&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;12-17&amp;quot;},{&amp;quot;Crossbowman&amp;quot;:&amp;quot;8-12&amp;quot;},{&amp;quot;Griffin&amp;quot;:&amp;quot;4-6&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Daylight Magic&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Blessing&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Anastasia the Meek&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Cleric&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Arina&#039;s Touch&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;12-17&amp;quot;},{&amp;quot;Crossbowman&amp;quot;:&amp;quot;8-12&amp;quot;},{&amp;quot;Griffin&amp;quot;:&amp;quot;4-6&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Thaumaturgy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Arina&#039;s Touch&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Nadir&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Cleric&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Vulnerability&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;12-17&amp;quot;},{&amp;quot;Crossbowman&amp;quot;:&amp;quot;8-12&amp;quot;},{&amp;quot;Griffin&amp;quot;:&amp;quot;4-6&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Nightshade Magic&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Vulnerability&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Temple&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Clarissa&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Cleric&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Gold&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Swordsman&amp;quot;:&amp;quot;12-17&amp;quot;},{&amp;quot;Crossbowman&amp;quot;:&amp;quot;8-12&amp;quot;},{&amp;quot;Griffin&amp;quot;:&amp;quot;4-6&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Righteousness&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Economy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Energize&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Bulwark&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Death Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Defense&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Skeleton&amp;quot;:&amp;quot;24-33&amp;quot;},{&amp;quot;Wight&amp;quot;:&amp;quot;12-16&amp;quot;},{&amp;quot;Undead Pet&amp;quot;:&amp;quot;10-13&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Defense&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;King-of-Kings&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Death Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Diplomacy&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Skeleton&amp;quot;:&amp;quot;24-33&amp;quot;},{&amp;quot;Wight&amp;quot;:&amp;quot;12-16&amp;quot;},{&amp;quot;Undead Pet&amp;quot;:&amp;quot;10-13&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Diplomacy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Onkos&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Death Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Skeletons&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Skeleton&amp;quot;:&amp;quot;19-26&amp;quot;},{&amp;quot;Skeleton&amp;quot;:&amp;quot;19-26&amp;quot;},{&amp;quot;Skeleton&amp;quot;:&amp;quot;19-26&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Offense&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Kel&#039;Ghul&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Death Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Dread Knights&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Dread Knight&amp;quot;:&amp;quot;2-3&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Tactics&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Natalida&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Death Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Undead pets&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Undead Pet&amp;quot;:&amp;quot;8-10&amp;quot;},{&amp;quot;Undead Pet&amp;quot;:&amp;quot;8-10&amp;quot;},{&amp;quot;Undead Pet&amp;quot;:&amp;quot;8-10&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Scouting&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Artorius Veritas&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Death Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Berserk&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Skeleton&amp;quot;:&amp;quot;24-33&amp;quot;},{&amp;quot;Wight&amp;quot;:&amp;quot;12-16&amp;quot;},{&amp;quot;Undead Pet&amp;quot;:&amp;quot;10-13&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Resistance&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Berserk&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Marl&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Death Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Web&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Skeleton&amp;quot;:&amp;quot;24-33&amp;quot;},{&amp;quot;Wight&amp;quot;:&amp;quot;12-16&amp;quot;},{&amp;quot;Undead Pet&amp;quot;:&amp;quot;10-13&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Logistics&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Web&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Tarius&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Death Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Necromancy&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Skeleton&amp;quot;:&amp;quot;24-33&amp;quot;},{&amp;quot;Wight&amp;quot;:&amp;quot;12-16&amp;quot;},{&amp;quot;Undead Pet&amp;quot;:&amp;quot;10-13&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;advanced&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Zam&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Death Knight&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Mercury&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Skeleton&amp;quot;:&amp;quot;24-33&amp;quot;},{&amp;quot;Wight&amp;quot;:&amp;quot;12-16&amp;quot;},{&amp;quot;Undead Pet&amp;quot;:&amp;quot;10-13&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Battlecraft&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Mag&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Necromancer&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Arcane Magic&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Skeleton&amp;quot;:&amp;quot;20-27&amp;quot;},{&amp;quot;Wight&amp;quot;:&amp;quot;10-13&amp;quot;},{&amp;quot;Undead Pet&amp;quot;:&amp;quot;8-10&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Arcane Magic&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Impending Fate&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Adahn&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Necromancer&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Wight&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Wight&amp;quot;:&amp;quot;8-10&amp;quot;},{&amp;quot;Wight&amp;quot;:&amp;quot;8-10&amp;quot;},{&amp;quot;Wight&amp;quot;:&amp;quot;8-10&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Recruitment&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Silence&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Ethric&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Necromancer&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Liches&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Skeleton&amp;quot;:&amp;quot;20-27&amp;quot;},{&amp;quot;Wight&amp;quot;:&amp;quot;10-13&amp;quot;},{&amp;quot;Lich&amp;quot;:&amp;quot;3-4&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Wisdom&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Shade Cloak&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Guildmaster Klastor&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Necromancer&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Grave robbers&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Skeleton&amp;quot;:&amp;quot;20-27&amp;quot;},{&amp;quot;Graverobber&amp;quot;:&amp;quot;5-7&amp;quot;},{&amp;quot;Graverobber&amp;quot;:&amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Luck&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Read Minds&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Shadespinner Oona&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Necromancer&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Nightshade Magic&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Skeleton&amp;quot;:&amp;quot;20-27&amp;quot;},{&amp;quot;Wight&amp;quot;:&amp;quot;10-13&amp;quot;},{&amp;quot;Undead Pet&amp;quot;:&amp;quot;8-10&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Nightshade Magic&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Sleep&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Laura&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Necromancer&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Despair&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Skeleton&amp;quot;:&amp;quot;20-27&amp;quot;},{&amp;quot;Wight&amp;quot;:&amp;quot;10-13&amp;quot;},{&amp;quot;Undead Pet&amp;quot;:&amp;quot;8-10&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Sorcery&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Despair&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Lord Rufus&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Necromancer&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Rewind life&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Skeleton&amp;quot;:&amp;quot;20-27&amp;quot;},{&amp;quot;Wight&amp;quot;:&amp;quot;10-13&amp;quot;},{&amp;quot;Undead Pet&amp;quot;:&amp;quot;8-10&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Thaumaturgy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Rewind Life&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Funerella&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Necromancer&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Necromancy&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Skeleton&amp;quot;:&amp;quot;20-27&amp;quot;},{&amp;quot;Wight&amp;quot;:&amp;quot;10-13&amp;quot;},{&amp;quot;Undead Pet&amp;quot;:&amp;quot;8-10&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;advanced&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Shackles&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Necropolis&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Milossa The Golden&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Necromancer&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Gold&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Skeleton&amp;quot;:&amp;quot;20-27&amp;quot;},{&amp;quot;Wight&amp;quot;:&amp;quot;10-13&amp;quot;},{&amp;quot;Undead Pet&amp;quot;:&amp;quot;8-10&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Necromancy&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Battle Magic&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Fatal Decay&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Nihil&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Oathkeeper&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Logistics&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;16-22&amp;quot;},{&amp;quot;Cultist&amp;quot;:&amp;quot;9-12&amp;quot;},{&amp;quot;Aga&#039;Shoth Rider&amp;quot;:&amp;quot;6-8&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Logistics&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Blackhorn&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Oathkeeper&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Sorcery&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;16-22&amp;quot;},{&amp;quot;Cultist&amp;quot;:&amp;quot;9-12&amp;quot;},{&amp;quot;Aga&#039;Shoth Rider&amp;quot;:&amp;quot;6-8&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Sorcery&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Matastala the White&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Oathkeeper&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Tactics&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;16-22&amp;quot;},{&amp;quot;Cultist&amp;quot;:&amp;quot;9-12&amp;quot;},{&amp;quot;Aga&#039;Shoth Rider&amp;quot;:&amp;quot;6-8&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Tactics&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Jänhei&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Oathkeeper&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Cultists&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Cultist&amp;quot;:&amp;quot;7-10&amp;quot;},{&amp;quot;Cultist&amp;quot;:&amp;quot;7-10&amp;quot;},{&amp;quot;Cultist&amp;quot;:&amp;quot;7-10&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Wisdom&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Mara Mat’ha&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Oathkeeper&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Aga&#039;Shoth Riders&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Aga&#039;Shoth Rider&amp;quot;:&amp;quot;5-6&amp;quot;},{&amp;quot;Aga&#039;Shoth Rider&amp;quot;:&amp;quot;5-6&amp;quot;},{&amp;quot;Aga&#039;Shoth Rider&amp;quot;:&amp;quot;5-6&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;advanced&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;The Iron Master&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Oathkeeper&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Concubi&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;16-22&amp;quot;},{&amp;quot;Concubus&amp;quot;:&amp;quot;2-3&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Resistance&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Wal’kha&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Oathkeeper&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Primal Magic&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;16-22&amp;quot;},{&amp;quot;Cultist&amp;quot;:&amp;quot;9-12&amp;quot;},{&amp;quot;Aga&#039;Shoth Rider&amp;quot;:&amp;quot;6-8&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Primal Magic&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Lightning Bolt&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Changeling Urgo&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Oathkeeper&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Summon Avatar&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;16-22&amp;quot;},{&amp;quot;Cultist&amp;quot;:&amp;quot;9-12&amp;quot;},{&amp;quot;Aga&#039;Shoth Rider&amp;quot;:&amp;quot;6-8&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Summon Avatar (Skill) | Summon Avatar&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Martyr Tho&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Oathkeeper&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Mercury&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;16-22&amp;quot;},{&amp;quot;Cultist&amp;quot;:&amp;quot;9-12&amp;quot;},{&amp;quot;Aga&#039;Shoth Rider&amp;quot;:&amp;quot;6-8&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Daylight Magic&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: null&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Grellekh the Betrayer&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Riftspeaker&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Offense&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;13-18&amp;quot;},{&amp;quot;Cultist&amp;quot;:&amp;quot;7-10&amp;quot;},{&amp;quot;Aga&#039;Shoth Rider&amp;quot;:&amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Offense&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Blessing&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Icequeen Hel&#039;Ghat&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Riftspeaker&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Defense&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;13-18&amp;quot;},{&amp;quot;Cultist&amp;quot;:&amp;quot;7-10&amp;quot;},{&amp;quot;Aga&#039;Shoth Rider&amp;quot;:&amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Defense&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Ice Bolt&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Kwinri&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Riftspeaker&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Ra&#039;Shothes&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;10-14&amp;quot;},{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;10-14&amp;quot;},{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;10-14&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Recruitment&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Groundsight&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;The Eye Collective&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Riftspeaker&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Grand Shothes&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;13-18&amp;quot;},{&amp;quot;Grand Shoth&amp;quot;:&amp;quot;2-3&amp;quot;},{&amp;quot;Grand Shoth&amp;quot;:&amp;quot;2-3&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Summon Avatar (Skill) | Summon Avatar&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Wean&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Tölketh&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Riftspeaker&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Heroic Strike&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;13-18&amp;quot;},{&amp;quot;Cultist&amp;quot;:&amp;quot;7-10&amp;quot;},{&amp;quot;Aga&#039;Shoth Rider&amp;quot;:&amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Logistics&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Reinforcements&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Ulkuth&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Riftspeaker&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Scouting&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;13-18&amp;quot;},{&amp;quot;Cultist&amp;quot;:&amp;quot;7-10&amp;quot;},{&amp;quot;Aga&#039;Shoth Rider&amp;quot;:&amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Scouting&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Unnatural Calm&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Ra&#039;Davok&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Riftspeaker&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Carapace&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;13-18&amp;quot;},{&amp;quot;Cultist&amp;quot;:&amp;quot;7-10&amp;quot;},{&amp;quot;Aga&#039;Shoth Rider&amp;quot;:&amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Arcane Magic&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Carapace&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Sister Keiri&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Riftspeaker&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Umbral Grip&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;13-18&amp;quot;},{&amp;quot;Cultist&amp;quot;:&amp;quot;7-10&amp;quot;},{&amp;quot;Aga&#039;Shoth Rider&amp;quot;:&amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; },&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Nightshade Magic&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;basic&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Umbral Grip&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;faction&amp;quot;: &amp;quot;Schism&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Dhüvri&amp;quot;,&lt;br /&gt;
      &amp;quot;class&amp;quot;: &amp;quot;Riftspeaker&amp;quot;,&lt;br /&gt;
      &amp;quot;specialty&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;,&lt;br /&gt;
      &amp;quot;startingArmy&amp;quot;: [{&amp;quot;Ra&#039;Shoth&amp;quot;:&amp;quot;13-18&amp;quot;},{&amp;quot;Cultist&amp;quot;:&amp;quot;7-10&amp;quot;},{&amp;quot;Aga&#039;Shoth Rider&amp;quot;:&amp;quot;5-7&amp;quot;}],&lt;br /&gt;
      &amp;quot;starting_skills&amp;quot;: [&lt;br /&gt;
        { &amp;quot;name&amp;quot;: &amp;quot;Abyssal Communion&amp;quot;, &amp;quot;level&amp;quot;: &amp;quot;advanced&amp;quot; }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;spell&amp;quot;: &amp;quot;Blink&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>76561199054722510</name></author>
	</entry>
	<entry>
		<id>https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Template:Skill_table/pl&amp;diff=9631</id>
		<title>Template:Skill table/pl</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Template:Skill_table/pl&amp;diff=9631"/>
		<updated>2026-04-30T19:02:57Z</updated>

		<summary type="html">&lt;p&gt;76561199054722510: Add support for 3rd subskill on expert skill level (obsługa trzeciej podzdolności na poziomie wybitnym)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{loc}}&amp;lt;/noinclude&amp;gt;{{Skill table/base&lt;br /&gt;
|name={{{name}}}&lt;br /&gt;
|skillimage1={{{skillimage1}}}&lt;br /&gt;
|desc1={{{desc1}}}&lt;br /&gt;
|name2={{{name2}}}&lt;br /&gt;
|skillimage2={{{skillimage2}}}&lt;br /&gt;
|desc2={{{desc2}}}&lt;br /&gt;
|name3={{{name3}}}&lt;br /&gt;
|skillimage3={{{skillimage3}}}&lt;br /&gt;
|desc3={{{desc3}}}&lt;br /&gt;
&lt;br /&gt;
|subname1={{{subname1}}}&lt;br /&gt;
|subimage1={{{subimage1}}}&lt;br /&gt;
|subdesc1={{{subdesc1}}}&lt;br /&gt;
&lt;br /&gt;
|subname2={{{subname2}}}&lt;br /&gt;
|subimage2={{{subimage2}}}&lt;br /&gt;
|subdesc2={{{subdesc2}}}&lt;br /&gt;
&lt;br /&gt;
|subname3={{{subname3}}}&lt;br /&gt;
|subimage3={{{subimage3}}}&lt;br /&gt;
|subdesc3={{{subdesc3}}}&lt;br /&gt;
&lt;br /&gt;
|subname4={{{subname4}}}&lt;br /&gt;
|subimage4={{{subimage4}}}&lt;br /&gt;
|subdesc4={{{subdesc4}}}&lt;br /&gt;
&lt;br /&gt;
|subname5={{{subname5}}}&lt;br /&gt;
|subimage5={{{subimage5}}}&lt;br /&gt;
|subdesc5={{{subdesc5}}}&lt;br /&gt;
&lt;br /&gt;
|subname6={{{subname6}}}&lt;br /&gt;
|subimage6={{{subimage6}}}&lt;br /&gt;
|subdesc6={{{subdesc6}}}&lt;br /&gt;
&amp;lt;!--Template translation --&amp;gt;&lt;br /&gt;
|title1=Umiejętność&lt;br /&gt;
|title2=Podumiejętność&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
===Użycie===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Skill table&lt;br /&gt;
|name=&lt;br /&gt;
|skillimage1=&lt;br /&gt;
|desc1=&lt;br /&gt;
|name2=&lt;br /&gt;
|skillimage2=&lt;br /&gt;
|desc2=&lt;br /&gt;
|name3=&lt;br /&gt;
|skillimage3=&lt;br /&gt;
|desc3=&lt;br /&gt;
&lt;br /&gt;
|subname1=&lt;br /&gt;
|subimage1=&lt;br /&gt;
|subdesc1=&lt;br /&gt;
&lt;br /&gt;
|subname2=&lt;br /&gt;
|subimage2=&lt;br /&gt;
|subdesc2=&lt;br /&gt;
&lt;br /&gt;
|subname3=&lt;br /&gt;
|subimage3=&lt;br /&gt;
|subdesc3=&lt;br /&gt;
&lt;br /&gt;
|subname4=&lt;br /&gt;
|subimage4=&lt;br /&gt;
|subdesc4=&lt;br /&gt;
&lt;br /&gt;
|subname5=&lt;br /&gt;
|subimage5=&lt;br /&gt;
|subdesc5=&lt;br /&gt;
&lt;br /&gt;
|subname6=&lt;br /&gt;
|subimage6=&lt;br /&gt;
|subdesc6=&lt;br /&gt;
}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Table templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>76561199054722510</name></author>
	</entry>
	<entry>
		<id>https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Template:Skill_table&amp;diff=9554</id>
		<title>Template:Skill table</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Template:Skill_table&amp;diff=9554"/>
		<updated>2026-04-30T14:14:09Z</updated>

		<summary type="html">&lt;p&gt;76561199054722510: Add support for 3rd subskill on expert skill level&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{loc}}&amp;lt;/noinclude&amp;gt;{{Skill table/base&lt;br /&gt;
|name={{{name}}}&lt;br /&gt;
|skillimage1={{{skillimage1}}}&lt;br /&gt;
|desc1={{{desc1}}}&lt;br /&gt;
|skillimage2={{{skillimage2}}}&lt;br /&gt;
|desc2={{{desc2}}}&lt;br /&gt;
|skillimage3={{{skillimage3}}}&lt;br /&gt;
|desc3={{{desc3}}}&lt;br /&gt;
&lt;br /&gt;
|subname1={{{subname1}}}&lt;br /&gt;
|subimage1={{{subimage1}}}&lt;br /&gt;
|subdesc1={{{subdesc1}}}&lt;br /&gt;
&lt;br /&gt;
|subname2={{{subname2}}}&lt;br /&gt;
|subimage2={{{subimage2}}}&lt;br /&gt;
|subdesc2={{{subdesc2}}}&lt;br /&gt;
&lt;br /&gt;
|subname3={{{subname3}}}&lt;br /&gt;
|subimage3={{{subimage3}}}&lt;br /&gt;
|subdesc3={{{subdesc3}}}&lt;br /&gt;
&lt;br /&gt;
|subname4={{{subname4}}}&lt;br /&gt;
|subimage4={{{subimage4}}}&lt;br /&gt;
|subdesc4={{{subdesc4}}}&lt;br /&gt;
&lt;br /&gt;
|subname5={{{subname5}}}&lt;br /&gt;
|subimage5={{{subimage5}}}&lt;br /&gt;
|subdesc5={{{subdesc5}}}&lt;br /&gt;
&lt;br /&gt;
|subname6={{{subname6}}}&lt;br /&gt;
|subimage6={{{subimage6}}}&lt;br /&gt;
|subdesc6={{{subdesc6}}}&lt;br /&gt;
&amp;lt;!--Template translation --&amp;gt;&lt;br /&gt;
|title1=Skill&lt;br /&gt;
|title2=Subskills&lt;br /&gt;
|text1=Basic&amp;amp;nbsp;&lt;br /&gt;
|text2=Advanced&amp;amp;nbsp;&lt;br /&gt;
|text3=Expert&amp;amp;nbsp;&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
See the base template with code and styles here: [[Template:Skill table/base]].&lt;br /&gt;
===Usage===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Skill table&lt;br /&gt;
|name=&lt;br /&gt;
|skillimage1=&lt;br /&gt;
|desc1=&lt;br /&gt;
|skillimage2=&lt;br /&gt;
|desc2=&lt;br /&gt;
|skillimage3=&lt;br /&gt;
|desc3=&lt;br /&gt;
&lt;br /&gt;
|subname1=&lt;br /&gt;
|subimage1=&lt;br /&gt;
|subdesc1=&lt;br /&gt;
&lt;br /&gt;
|subname2=&lt;br /&gt;
|subimage2=&lt;br /&gt;
|subdesc2=&lt;br /&gt;
&lt;br /&gt;
|subname3=&lt;br /&gt;
|subimage3=&lt;br /&gt;
|subdesc3=&lt;br /&gt;
&lt;br /&gt;
|subname4=&lt;br /&gt;
|subimage4=&lt;br /&gt;
|subdesc4=&lt;br /&gt;
&lt;br /&gt;
|subname5=&lt;br /&gt;
|subimage5=&lt;br /&gt;
|subdesc5=&lt;br /&gt;
&lt;br /&gt;
|subname6=&lt;br /&gt;
|subimage6=&lt;br /&gt;
|subdesc6=&lt;br /&gt;
}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Table templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>76561199054722510</name></author>
	</entry>
	<entry>
		<id>https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Template:Skill_table/base&amp;diff=9553</id>
		<title>Template:Skill table/base</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Template:Skill_table/base&amp;diff=9553"/>
		<updated>2026-04-30T14:12:35Z</updated>

		<summary type="html">&lt;p&gt;76561199054722510: Add support for 3rd subskill on expert skill level&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{loc}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=2 style=&amp;quot;text-align: center; width: 25%;&amp;quot; | {{{title1}}}&lt;br /&gt;
!colspan=6 style=&amp;quot;text-align: center; width: 75%;&amp;quot; | {{{title2}}}&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:right; border-right:0px; padding:12px;&amp;quot; | [[File:{{{skillimage1}}}|70px]]&lt;br /&gt;
| style=&amp;quot;border-left:0px; width: 25%;&amp;quot; | &#039;&#039;&#039;{{{text1|}}}{{{name}}}&#039;&#039;&#039; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;color: #DDD; margin-top:4px;&amp;quot;&amp;gt;{{{desc1}}}&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:right; border-right:0px; border-left:0px; padding:12px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;border-left:0px; border-right:0px; width: 25%;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align:right; border-right:0px; border-left:0px; padding:12px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;border-left:0px; border-right:0px; width: 25%;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align:right; border-right:0px; border-left:0px; padding:12px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;border-left:0px; width: 25%;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border-right:0px; padding:12px;&amp;quot; | [[File:{{{skillimage2}}}|70px]]&lt;br /&gt;
| style=&amp;quot;border-left:0px; | &#039;&#039;&#039;{{{text2|}}}{{{name2|{{{name}}}}}}&#039;&#039;&#039; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;color: #DDD; margin-top:4px;&amp;quot;&amp;gt;{{{desc2}}}&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:right; border-right:0px; border-left:0px; padding:12px;&amp;quot; | [[File:{{{subimage1}}}|30px]]&lt;br /&gt;
| style=&amp;quot;border-left:0px; border-right:0px;&amp;quot; | &#039;&#039;&#039;{{{subname1}}}&#039;&#039;&#039; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;color: #DDD; margin-top:4px;&amp;quot;&amp;gt;{{{subdesc1}}}&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:right; border-right:0px; border-left:0px; padding:12px;&amp;quot; | [[File:{{{subimage2}}}|30px]]&lt;br /&gt;
| style=&amp;quot;border-left:0px; border-right:0px;&amp;quot; | &#039;&#039;&#039;{{{subname2}}}&#039;&#039;&#039; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;color: #DDD; margin-top:4px;&amp;quot;&amp;gt;{{{subdesc2}}}&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:right; border-right:0px; border-left:0px; padding:12px;&amp;quot; | [[File:{{{subimage3}}}|30px]]&lt;br /&gt;
| style=&amp;quot;border-left:0px;&amp;quot; | &#039;&#039;&#039;{{{subname3}}}&#039;&#039;&#039; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;color: #DDD; margin-top:4px;&amp;quot;&amp;gt;{{{subdesc3}}}&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border-right:0px; padding:12px;&amp;quot; | [[File:{{{skillimage3}}}|70px]]&lt;br /&gt;
| style=&amp;quot;border-left:0px; | &#039;&#039;&#039;{{{text3|}}}{{{name3|{{{name}}}}}}&#039;&#039;&#039; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;color: #DDD; margin-top:4px;&amp;quot;&amp;gt;{{{desc3}}}&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:right; border-right:0px; border-left:0px; padding:12px;&amp;quot; | [[File:{{{subimage4}}}|30px]]&lt;br /&gt;
| style=&amp;quot;border-left:0px; border-right:0px;&amp;quot; | &#039;&#039;&#039;{{{subname4}}}&#039;&#039;&#039; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;color: #DDD; margin-top:4px;&amp;quot;&amp;gt;{{{subdesc4}}}&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:right; border-right:0px; border-left:0px; padding:12px;&amp;quot; | [[File:{{{subimage5}}}|30px]]&lt;br /&gt;
| style=&amp;quot;border-left:0px; border-right:0px;&amp;quot; | &#039;&#039;&#039;{{{subname5}}}&#039;&#039;&#039; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;color: #DDD; margin-top:4px;&amp;quot;&amp;gt;{{{subdesc5}}}&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:right; border-right:0px; border-left:0px; padding:12px;&amp;quot; | [[File:{{{subimage6}}}|30px]]&lt;br /&gt;
| style=&amp;quot;border-left:0px;&amp;quot; | &#039;&#039;&#039;{{{subname6}}}&#039;&#039;&#039; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;color: #DDD; margin-top:4px;&amp;quot;&amp;gt;{{{subdesc6}}}&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
===Usage===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Skill table&lt;br /&gt;
|name=&lt;br /&gt;
|skillimage1=&lt;br /&gt;
|desc1=&lt;br /&gt;
|skillimage2=&lt;br /&gt;
|desc2=&lt;br /&gt;
|skillimage3=&lt;br /&gt;
|desc3=&lt;br /&gt;
&lt;br /&gt;
|subname1=&lt;br /&gt;
|subimage1=&lt;br /&gt;
|subdesc1=&lt;br /&gt;
&lt;br /&gt;
|subname2=&lt;br /&gt;
|subimage2=&lt;br /&gt;
|subdesc2=&lt;br /&gt;
&lt;br /&gt;
|subname3=&lt;br /&gt;
|subimage3=&lt;br /&gt;
|subdesc3=&lt;br /&gt;
&lt;br /&gt;
|subname4=&lt;br /&gt;
|subimage4=&lt;br /&gt;
|subdesc4=&lt;br /&gt;
&lt;br /&gt;
|subname5=&lt;br /&gt;
|subimage5=&lt;br /&gt;
|subdesc5=&lt;br /&gt;
&lt;br /&gt;
|subname6=&lt;br /&gt;
|subimage6=&lt;br /&gt;
|subdesc6=&lt;br /&gt;
}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Table templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>76561199054722510</name></author>
	</entry>
</feed>