# Юниты

Данные для настройки юнитов хранятся в файле `unitTemplate.json` или в папке `unitTemplate\*.json`. Эти данные используются для описания юнитов в интерфейсе игры, а также для различных расчетов, связанных с игровыми механиками.

Таблица содержит параметры, определяющие характеристики юнитов, их стоимость, условия открытия, принадлежность к нациям, а также информацию, используемую в матчмейкинге и дереве прокачки. Некоторые параметры являются обязательными, другие – опциональными и могут отсутствовать в зависимости от конкретного юнита.

Если требуется изменить свойства юнита в рамках отдельной кампании, можно переопределить часть параметров в соответствующем разделе `campaign`.

<table><thead><tr><th width="283.6484375" valign="top">Параметр</th><th width="98.48828125" valign="top">Тип</th><th valign="top">Описание</th></tr></thead><tbody><tr><td valign="top"><code>_id</code></td><td valign="top">string</td><td valign="top">ID юнита.</td></tr><tr><td valign="top"><code>army</code></td><td valign="top">string</td><td valign="top"><p>Нация юнита.</p><p>Возможные значения:</p><ul><li><code>rus</code></li><li><code>ger</code></li><li><code>usa</code></li></ul></td></tr><tr><td valign="top"><code>type</code></td><td valign="top">string</td><td valign="top"><p>Тип юнита – к какому командиру относится.</p><p>Возможные значения:</p><ul><li><code>art</code></li><li><code>inf</code></li><li><code>tnk</code></li></ul></td></tr><tr><td valign="top"><code>subtype</code></td><td valign="top">string</td><td valign="top">Подтип юнита.</td></tr><tr><td valign="top"><code>battle_rank</code></td><td valign="top">number</td><td valign="top">Боевой рейтинг юнита (BR).</td></tr><tr><td valign="top"><code>silver_cost</code></td><td valign="top">number</td><td valign="top">Количество валюты для покупки отряда.</td></tr><tr><td valign="top"><code>xp_open</code></td><td valign="top">number</td><td valign="top">Количество опыта, необходимого для открытия юнита.</td></tr><tr><td valign="top"><code>open</code></td><td valign="top">boolean</td><td valign="top">Открыт ли этот юнит сразу для использования.</td></tr><tr><td valign="top"><code>open_up</code></td><td valign="top">array</td><td valign="top">Массив ID юнитов, которые можно открыть из этого юнита (опционально).</td></tr><tr><td valign="top"><code>opened_by</code></td><td valign="top">array</td><td valign="top"><p>Массив ID юнитов, которые открывают этот юнит (опционально).</p><p>Если есть связь из <code>open_up</code>, то обязательно должна быть прописана обратная связь через <code>opened_by</code>.</p></td></tr><tr><td valign="top"><code>premium</code></td><td valign="top">boolean</td><td valign="top">Можно ли купить этот юнит за снабжение?</td></tr><tr><td valign="top"><code>premium_gold</code></td><td valign="top">number</td><td valign="top">Количество очков снабжения для покупки отряда (опционально).</td></tr><tr><td valign="top"><code>elite</code></td><td valign="top">boolean</td><td valign="top">Можно ли конвертировать XP с этого юнита сразу в свободный XP.</td></tr><tr><td valign="top"><code>level</code></td><td valign="top">number</td><td valign="top">Технический уровень юнита.</td></tr><tr><td valign="top"><code>amount_slot</code></td><td valign="top">number</td><td valign="top">Количество юнитов этого типа по умолчанию в слоте.</td></tr><tr><td valign="top"><code>amount_spawn</code></td><td valign="top">number</td><td valign="top">Сколько юнитов этого типа появляется на игровом поле за один вызов.</td></tr><tr><td valign="top"><code>amount_display_multiplier</code></td><td valign="top">number</td><td valign="top">Множитель для отображения количества юнитов (опционально).</td></tr><tr><td valign="top"><code>tree_x</code></td><td valign="top">number</td><td valign="top">Позиция X юнита в дереве прокачки (для визуализации).</td></tr><tr><td valign="top"><code>tree_y</code></td><td valign="top">number</td><td valign="top">Позиция Y юнита в дереве прокачки (для визуализации).</td></tr><tr><td valign="top"><code>hidden</code></td><td valign="top">boolean</td><td valign="top">Юнит не отображается в дереве.</td></tr><tr><td valign="top"><code>in_progress</code></td><td valign="top">boolean</td><td valign="top">Юнит находится в разработке и должен отображаться только игрокам с флагом <code>features_in_progress</code>.</td></tr><tr><td valign="top"><code>freemium</code></td><td valign="top">boolean</td><td valign="top">Для MoW2 должно быть выставлено в <code>true</code>.</td></tr><tr><td valign="top"><code>collectible</code></td><td valign="top">boolean</td><td valign="top">Признак коллекционного юнита (опционально).</td></tr><tr><td valign="top"><code>slot_tags</code></td><td valign="top">array of string</td><td valign="top">Слот-теги юнита для проверок слота, если там проставлен <code>slot_tag</code> (опционально).</td></tr><tr><td valign="top"><code>fact_tags</code></td><td valign="top">array of string</td><td valign="top">Теги для вычисления условий в задачах (опционально).</td></tr><tr><td valign="top"><code>mm_type</code></td><td valign="top">string</td><td valign="top">Тип юнита для матчмейкера.</td></tr><tr><td valign="top"><code>unit_for_preview</code></td><td valign="top">string</td><td valign="top">Отображать прописанную иконку вместо <code>_id</code> (опционально).</td></tr><tr><td valign="top"><code>campaign</code></td><td valign="top">object</td><td valign="top"><p>Список кампаний, в которых участвует этот юнит (опционально).</p><p>Каждая кампания представлена в виде объекта с ID кампании (<code>&#x3C;campaign_id></code>). <br>Если запись <code>campaign</code> отсутствует, считается, что юнит не входит в дерево кампании.</p><p>Поля, которые можно перекрыть для этой кампании (все поля опциональны):</p><ul><li><code>elite</code> </li><li><code>open</code></li><li><code>tree_x</code> </li><li><code>tree_y</code> </li><li><code>hidden</code> </li><li><code>xp_open</code> </li><li><code>silver_cost</code></li></ul><p>Назначение всех полей соответствует описаниям выше в таблице.</p></td></tr></tbody></table>

<details>

<summary>Пример настройки юнита</summary>

```json
{
        "_id": "203_m1_trailer(usa)",
        "amount_slot": 2,
        "amount_spawn": 1,
        "army": "usa",
        "battle_rank": 70,
        "campaign": {
            "<campaign_id>": {
                "elite": true,
                "hidden": false,
                "open": false,
                "open_up": [],
                "opened_by": [
                    "m114_trailer(usa)"
                ],
                "silver_cost": 5603,
                "tree_x": 6,
                "tree_y": 2,
                "xp_open": 1763
            }
        },
        "collectible": false,
        "elite": true,
        "fact_tags": [
            "howitzer",
            "howitzer_usa",
            "stormtroopers_usa_m26e4_203_m1_trailer_usa",
            "203_m1"
        ],
        "freemium": true,
        "hidden": false,
        "in_progress": false,
        "level": 5,
        "mm_type": "cannon_he",
        "open": true,
        "premium": false,
        "silver_base": 164,
        "silver_cost": 5603,
        "silver_rate": 1,
        "subtype": "art",
        "tree_x": 4,
        "tree_y": 2,
        "type": "art",
        "xp_base": 144,
        "xp_open": 1763
    },
```

Юнит `203_m1_trailer(usa)`  представляет собой **артиллерийскую установку** армии США (`army: usa`) и относится к категории **артиллерии** (`type: art`, `subtype: art`). \
Юнит имеет **боевой рейтинг 70** (`battle_rank: 70`) и **технический уровень 5** (`level: 5`). \
Юнит доступен в общем дереве прокачки, но требующая разблокировки в рамках отдельной кампаний. \
Юнит изначально открыт, доступен всем игрокам и может быть куплен за внутриигровую валюту.

**Настройки доступности и экономики:**

* Юнит изначально открыт (`open: true`).
* Не является премиумным (`premium: false`), но отмечен как freemium (`freemium: true`), что означает его доступность для всех игроков.
* Стоимость в серебр&#x435;**:** 5603 (`silver_cost: 5603`).
* Базовое начисление серебр&#x430;**:** 164 (`silver_base: 164`).
* Коэффициент начисления серебра: 1 (`silver_rate: 1`).
* Требуемый опыт для открытия: 1763 (`xp_open: 1763`).
* Базовое начисление XP: 144 (`xp_base: 144`).
* Юнит может конвертировать XP в свободный опыт (`elite: true`).

**Боевые характеристики и размещение:**

* В слотах доступно **2 единицы** (`amount_slot: 2`).
* За один вызов на поле боя появляется **1 единица** (`amount_spawn: 1`).
* Юнит классифицируется как **"cannon\_he"** (`mm_type: cannon_he`), что означает, что он относится к классу тяжелых артиллерийских орудий с фугасными снарядами.

**Другие параметры:**

* Юнит не является коллекционным (`collectible: false`).
* Не скрыт в общем дереве прокачки (`hidden: false`).
* Позиция юнита в дереве: **X = 4, Y = 2** (`tree_x: 4`, `tree_y: 2`)&#x20;
* Не находится в разработке (`in_progress: false`).
* Фактические теги для идентификации и условий зада&#x447;**:**
  * `"howitzer"` (гаубица).
  * `"howitzer_usa"` (гаубица армии США).
  * `"stormtroopers_usa_m26e4_203_m1_trailer_usa"` (привязка к определенным боевым единицам).
  * `"203_m1"` (идентификатор модели).

**Перекрытие значений параметров юнита в кампании** (`<campaign_id>`)**:**

* Юнит в кампании изначально закрыт (`open: false`).
* Не скрыт в дереве кампании (`hidden: false`).
* Можно разблокировать через юнит `"m114_trailer(usa)"` (`opened_by: ["m114_trailer(usa)"]`).
* Позиция в дереве кампании: X = 6, Y = 2 (`tree_x: 6`, `tree_y: 2`).
* Стоимость в серебре в рамках кампании: 5603 (`silver_cost: 5603`).
* XP, необходимый для открытия в кампании: 1763 (`xp_open: 1763`).

</details>
