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

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

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
}
```

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://paradoxmodding-ru.gitbook.io/modding/skripting./idei/national_spirits.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
