> For the complete documentation index, see [llms.txt](https://paradoxmodding-ru.gitbook.io/modding/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://paradoxmodding-ru.gitbook.io/modding/skripting./idei/national_spirits.md).

# Национальные духи

## Содержание:

1. Структура национальных духов
2. Условия и модификаторы
3. Иллюстрирование национальных духов
4. Локализация национальных духов
5. Привязка национальных духов к стране

{% hint style="info" %}
Национальные духи - один из тип идей, отображающийся в соответствующей панели в меню страны. Национальные духи являются одной из важнейших вещей, которую необходимо знать мододелу. В этом гайде рассмотрится их создание на примерах
{% endhint %}

## Структура национальных духов

Первое что необходимо знать - файлы, в которых содержатся национальные духи. Это папка `ВАШ_МОД\common\ideas` или `Hearts of Iron IV\common\ideas` в оригинальной игре. Обычно национальные духи записываются в разных файлах. Вы можете разделять их в зависимости от страны или их функции - как вам удобно.

Так выглядит максимальный шаблон национального духа. Не факт, что вам понадобятся все эти параметры:

```
ideas = { #Показывает, что начинается блок идей
    country = { #слот
        test_idea = { #id идеи
            allowed = { } #При каких условиях данный дух будет появляться, а если они не выполнены - исчезать

            allowed_civil_war = { } #Какой стороне будет уходить дух при начале гражданской войны

            cancel = { } #При каких условиях идея будет исчезать

            modifier = { } #Модификаторы во время выполнения духа
            targeted_modifier = {
                tag = ENG
            } #Модификаторы во время выполнения духа, направленные на конкретную страну
            equipment_bonus = { } #Модификаторы на определённое снаряжение
            research_bonus = {
                infantry_tech = 0.1
            } #Модификаторы на исследования

            on_add = { } #Мгновенные эффекты после добавления духа

            cost = 0 #Стоимость идеи; необязательно
            removal_cost = -1 #Стоимость удаления идеи; необязательно
        }
    }    
}
```

Разберём основные блоки данного кода:

`ideas` - основной блок, показывающий что в этом файле будут идеи. Необходим в начале каждого файла. \
&#x20;`country` - слот данных идей. У национальных духов - это всегда `country`. Подробнее о слотах в гайде о категориях идей. \
&#x20;`test_idea` - идентификатор нашей идеи. Именно он объявляет новую идею и используется при локализации. <br>

Также нельзя не упомянуть о том, что наиональные духи могут быть скрытыми, то есть невидимыми для игроков. Для того чтобы объявить блок с скрытыми идеями, вы должны использовать слот `hidden_ideas` вместо `country`.

## Условия и модификаторы

Теперь разберём каждый параметр внутри самой идеи.

`allowed` - условие, при котором идея всё ещё будет выполняться. Допустим, при `allowed = { has_war = no }` национальный дух будет существовать, пока страна не находится в войне. В случае объявления войны данный дух убирается.

`allowed_civil_war` - используется для того, чтобы задать поведение духа во время начала гражданской войны. По умолчанию значение `allowed_civil_war` равно `always = no`, что означает исчезание национального духа во время гражданской войны. Если вы хотите давать дух обоим странам, то пишите `allowed_civil_war = { always = yes }`, а если только одной стороне, то условие, которое данная страна выполняет, допустим - определённая идеология правительства.

`cancel` - условия при котором национальный дух отменяется. Отличие от `allowed` состоит в том, что при выполнении противоположного условия, идея не появляется вновь.

`modifier` - модификаторы, которые даются стране при данном национальном фокусе. Допустим, мы хотим, чтобы у страны был бонус в 10% к атаке. Тогда мы пишем `modifier = { offence = 0.1}`

`targeted_modifier` - то же самое, что `modifier` однако даёт бонус не стране с данным духом, а другой, которую вы выберете. Данная страна задаётся с помощью `tag`. Пример:

```
targeted_modifier = {
    tag = ENG 
    offence = -0.1 #Даёт Великобритании дебафф к атаке -10%.
}
```

`equipment_bonus` - то же самое, что `modifier`, однако используется для снаряжения. Пример:

```
equipment_bonus = {
    submarine = { #id снаряжения
        attack = 0.25 #Даёт бонус к атаке подводным лодкам 25%.
        instant = yes #Означает, что бонус применяется ко всему снаряжению. Если instant = no (оно же по умолчанию) - то бонус даётся только к последующей изучённой технике данного типа снаряжения
    }
}
```

`research_bonus` - то же самое, что `modifier`, однако используется для исследований. Пример: `research_bonus = { land_doctrine = 0.1 } #Даёт бонус 10% для исследования сухопутных доктрин`

`on_add` - мгновенный эффект для страны во время добавления идеи. Пример: `on_add = { set_country_flag = my_idea } #Стране выдаётся определённый флаг, который затем можно использовать`

`cost`, `removal_cost` - необязательные поля для национальных духов, обозначающие стоимость и стоимость удаления идеи соответственно. У национальных духов всегда равны 0 и -1, поэтому их можно не указывать.

## Иллюстрирование национальных духов

Размер иконки для национальных духов - 60 x 68 пикселей. Для того, чтобы задать её национальному духу используёте параметр `picture`, например `picture = my_picture`. О том, как задать id вашей иконке см. раздел Графика.

## Локализация национальных духов

Локализация духов оригинальной игры находится в файле `ideas_l_language.yml`, где `language` - ваш язык. Идеи локализируются следующим образом: \`

```
id_идеи:0 "Название идеи"
id_идеи_desc:0 "Описание идеи"
```

Подробнее о локализации см. соответсвующий раздел.

## Привязка национальных духов к стране

Если вы напишите национальный дух по всем инструкциям выше, он не появится в игре. Причина в том, что его надо привязать к необходимой стране. Сделать это можно в фокусах, ивентах, файлах истории стран и других местах. Команда для привязки и отвязки идей: `add_ideas = my_idea`. Добавляет идею. Также можно добавить несколько идей одной командой, в таком случае `add_ideas` должен быть блоком.

```
add_timed_idea = {
    idea = my_idea
    days = 90
}
```

Отличие от add\_ideas заключается в том, что данный национальный дух строго обозначен по времени. Также таким образом можно добавить только один дух.

`remove_ideas = my_idea`. Аналогично `add_ideas`, однако не добавляет, а удаляет дух.

```
swap_ideas = {
     remove_idea = my_idea
     add_idea = my_idea1
}
```

Позволяет заменить одну идею на другую.
