Модификатор

**Модификатор** (англ. *Modifier*) — это положительное или отрицательное числовое значение, применяемое к определённой области (объекту) и оказывающее влияние на его параметры. Модификаторы применяются для изменения геймплея, путём добавления или уменьшения тех или иных параметров. В отличие от эффектов, которые применяются один раз, модификаторы оказывают постоянный длительный эффект.

## Описание

Модификаторы чаще всего применяются в виде эффектов от национальных духов, законов, советников или генералов. Например, национальные духи могут давать дополнительный прирост политической власти, путём добавления модификатора `political_power_gain = 0.1`

, а закон о призыве *«Всех под ружье»* снизит объем заводского производства из-за модификатора `industrial_capacity_factory = -0.4`

.

Модификаторы являются аддитивными, что означает, что их значения суммируются друг с другом. Например, немецкая пехотная дивизия в начале игры имеет организацию равную 50.9, национальный дух «Генеральный штаб» даёт дополнительные +5% к этому значению, а назначение Людвига Бека советников даст ещё +8%. Таким образом итоговая организация дивизии станет .

### Динамические модификаторы

Динамические модификаторы, в отличие от обычных, могут быть менять значения по ходу игры, в том числе складываться и вычитаться. Например, Советский Союз по фокусу «Центр» получает национальный дух «Политбюро», первоначально дающий лишь ежедневную поддержку коммунизма. Дальнейшие фокусы, такие как «Сталинская конституция» и «Социализм в отдельно взятой стране», изменяют «Политбюро», применяя всё новые и новые эффекты. В случае использования обычных модификаторов, для каждого фокуса необходимо было бы создать новую версию национального духа. Таким образом, в игре было бы минимум 8 версий «Политбюро», которые бы раз за разом сменяли друг друга. Но при использовании динамических модификаторов, достаточно заранее определить модификаторы, которые будут применены по мере прохождения фокусов, а затем лишь менять их значение с помощью фокусов.

Код динамических модификаторов расположен по пути `common\dynamic_modifiers`

в файлах игры.

SOV_the_politburo_good_dynamic_modifier = { enable = { always = yes } icon = GFX_idea_POL_ideology_drift_defence #INITIAL drift_defence_factor = SOV_the_politburo_drift_defence_factor #FUTURE defensive_war_stability_factor = SOV_the_politburo_defensive_war_stability_factor communism_drift = SOV_the_politburo_communism_drift political_power_factor = SOV_the_politburo_political_power_factor economy_cost_factor = SOV_the_politburo_economy_cost_factor trade_laws_cost_factor = SOV_the_politburo_trade_laws_cost_factor mobilization_laws_cost_factor = SOV_the_politburo_mobilization_laws_cost_factor consumer_goods_factor = SOV_the_politburo_good_consumer_goods_factor production_speed_buildings_factor = SOV_the_politburo_production_speed_buildings_factor global_building_slots_factor = SOV_the_politburo_global_building_slots_factor max_surrender_limit_offset = SOV_the_politburo_max_surrender_limit_offset max_command_power = SOV_the_politburo_max_command_power mobilization_speed = SOV_the_politburo_mobilization_speed operative_slot = SOV_the_politburo_operative_slot political_advisor_cost_factor = SOV_the_politburo_political_advisor_cost_factor opinion_gain_monthly_same_ideology_factor = SOV_the_politburo_opinion_gain_monthly_same_ideology_factor }

Выше приведён код национального духа «Политбюро», реализованного через динамический модификатор. В нём имеется: уникальное название модификатора (`SOV_the_politburo_good_dynamic_modifier`

), которое используется при его добавлении и удалении, иконка (`icon = GFX_idea_POL_ideology_drift_defence`

), которая будет использована для отображения идеи в окне национальных духов (или окне региона, при использовании его в этой области), а также непосредственно список модификаторов, которые будут использованы в дальнейшем. В самом коде им не присвоены никакие значения. Каждый прописанный модификатор имеет два параметра: внутриигровой идентификатор (например `drift_defence_factor`

это «Защита от смены идеологии») и уникальный тег переменной, применяемый только для этого национального духа (`SOV_the_politburo_drift_defence_factor`

). Это сделано, дабы избежать путаницы при использовании нескольких динамических модификаторов, так как в случае наличия у нескольких из них одинаковых переменных, эффекты будут применены ко всем сразу, чего следует избегать.

Добавляется динамический модификатор через команду `add_dynamic_modifier = `

. Например, национальный дух «Политбюро» добавляется через фокус «Центр», что в коде выглядит как `add_dynamic_modifier = { modifier = SOV_the_politburo_good_dynamic_modifier }`

. Таким же образом идею можно удалить (`remove_dynamic_modifier = `

).

Изменить значения переменных модификатора можно через эффект `add_to_variable`

. Например, фокус «Социализм в отдельно взятой стране» добавляет ежедневную поддержку коммунизма, защиту от смены идеологии и уменьшает штраф от оборонительной войны. В коде фокуса это выглядит так:

completion_reward = { add_to_variable = { SOV_the_politburo_communism_drift = 0.05 } # Изменяет ежедневную поддержку коммунизма на +0.05 add_to_variable = { SOV_the_politburo_drift_defence_factor = 0.05 } # Изменяет защиту от смены идеологии на 5% add_to_variable = { SOV_the_politburo_defensive_war_stability_factor = 0.25 } # Изменяет штраф от оборонительной войны на +25% }

Эта команда принимает как положительные, так отрицательные значения. Отрицательное значение соответственно уменьшит уже имеющееся значения модификатора.

### Глобальные модификаторы

Глобальные модификаторы заранее прописаны разработчиками и не могут быть изменены или применены в другом месте, кроме определённых разработчиками, а их удаление приведёт к многочисленным ошибкам в игре. Однако можно изменить эффекты от них, путём изменения значений в файле с модификаторами. По умолчанию эта папка расположена по пути `common\modifiers\00_static_modifiers`

в файлах игры. К таким модификаторами относятся настройки сложности игры, эффекты от изменения стабильности и поддержки войны, уровни обученности войск и прочее.

### Модификаторы мнения

## Применение

Модификаторы не могут быть применены напрямую и вместо этого должны быть включены в состав объекта, например идеи (национального духа, закона, министра) или черты (для генерала, адмирала или любого персонажа).

Модификаторы добавляются путём применения эффекта `modifier`

к идее, например:

state_shintoism = { modifier = { industry_air_damage_factor = -0.1 army_morale_factor = 0.1 } }

К идее `state_shintoism`

были присвоены модификаторы `industry_air_damage_factor`

и `army_morale_factor`

, которым присвоены значения -0.1 и 0.1 соответственно. При добавлении этого национального духа стране, она получит соответствующие бонусы, а именно: Уязвимость фабрик для бомбардировок -10% и Скорость восстановления дивизии: +10%.

Для добавления модификатора персонажу (например генерала или главы государства) необходимо сначала добавить модификатор к черте, а затем присвоить эту черту нужному персонажу. Например:

dictator = { political_power_factor = 0.25 # Изменит прирост политической власти на 25% weekly_casualties_war_support = 0.001 # Изменит модификатор поддержки войны от понесённых потерь в неделю на 0.10% ai_desired_divisions_factor = 0.20 # Изменит коэффициент желаемых дивизия для ИИ на 20% }

Далее нужно присвоить черту персонажу:

GER_adolf_hitler = { name = GER_adolf_hitler portraits = { civilian = { large = GFX_portrait_GER_adolf_hitler } } country_leader = { ideology = nazism traits = { dictator } # <--- expire = "1965.1.1.1" id = -1 } }

## Список модификаторов

Название | ID | Описание | Значения |
---|---|---|---|

Прирост акклиматизации к холоду | acclimatization_cold_climate_gain_factor | Ежедневное изменения прироста акклиматизации к холоду в процентах | Процент 1 знак после запятой |

Прирост акклиматизации к жаре | acclimatization_hot_climate_gain_factor | Ежедневное изменения прироста акклиматизации к жаре в процентах | Процент 1 знак после запятой |

Время улучшения агентства | agency_upgrade_time | Сколько времени занимает завершение улучшения разведывательного агентства | Процент 2 знака после запятой |

Вероятность летных происшествий | air_accidents_factor | Изменяет вероятность возникновения летных происшествий | Процент 1 знак после запятой |

Бонусы от летчиков-асов | air_ace_bonuses_factor | Изменяет бонус от летчиков-асов на это значение | Процент 0 знаков после запятой |

Вероятность появления аса | air_ace_generation_chance_factor | Шанс появления летчика-аса | Процент 2 знака после запятой |

Затраты на советника по вопросам авиации | air_advisor_cost_factor | Стоимость назначения советника, связанного с авиацией, в политической власти | Процент 0 знаков после запятой |

Стоимость воздушной доктрины | air_doctrine_cost_factor | Стоимость изучения воздушной доктрины в очках опыта авиации | Процент 2 знака после запятой |

Стоимость оснащения авиации в опыте | air_equipment_upgrade_xp_cost | Сколько будет стоить внесение изменений в проект самолёта в конструкторе авиации | Процент 0 знаков после запятой |

Эффективность конвоев | air_escort_efficiency | Улучшает тактику истребителей, повышая их результативность в воздушных сражениях | Процент 0 знаков после запятой |

Потребление горючего авиацией | air_fuel_consumption_factor | Изменяет ежедневное значение потребления топлива в процентах | Процент 2 знака после запятой |

Фактор воздушной обороны своей территории | air_home_defence_factor | Насколько эффективно авиакрыло работает в стратегическом регионе с аэродромом базирования | Процент 0 знаков после запятой |

Эффективность перехватчиков | air_intercept_efficiency | Улучшает тактику перехватчиков, повышая их результативность в воздушных сражениях | Процент 0 знаков после запятой |

Требование к людским ресурсам авиации | air_manpower_requirement_factor | Изменяет количество необходимых людских ресурсов для размещения авиакрыла | Процент 2 знака после запятой |

Эффективность воздушных заданий | air_mission_efficiency | Изменяет эффективность воздушных заданий «Чем выше эффективность, тем больше самолетов смогут подняться в воздух и присоединиться к выполнению заданий» |
Процент 2 знака после запятой |