diff --git a/.github/workflows/windows_build_test_and_push.yml b/.github/workflows/windows_build_test_and_push.yml
index 1c8f61cac6..d619236f8d 100644
--- a/.github/workflows/windows_build_test_and_push.yml
+++ b/.github/workflows/windows_build_test_and_push.yml
@@ -46,12 +46,12 @@ jobs:
- name: "Prepare release"
run: |
cd "C:\Program Files\7-Zip\"
- .\7z.exe a $Env:GITHUB_WORKSPACE\Vic2ToHoI4-1.0Rommel-win-x64.zip $Env:GITHUB_WORKSPACE\build\Release\*
+ .\7z.exe a $Env:GITHUB_WORKSPACE\Vic2ToHoI4-1.1Spruance-win-x64.zip $Env:GITHUB_WORKSPACE\build\Release\*
- name: "Prepare installer"
run: |
c:\"Program Files (x86)\Inno Setup 6\iscc" Vic2ToHoI4-Installer.iss
- cp $Env:GITHUB_WORKSPACE\Output\Vic2ToHoI4-latest-win-x64.exe $Env:GITHUB_WORKSPACE\Output\Vic2ToHoI4-1.0Rommel-win-x64.exe
+ cp $Env:GITHUB_WORKSPACE\Output\Vic2ToHoI4-latest-win-x64.exe $Env:GITHUB_WORKSPACE\Output\Vic2ToHoI4-1.1Spruance-win-x64.exe
- name: "Upload binaries to release"
if: ${{ github.event_name == 'push' }}
@@ -61,7 +61,7 @@ jobs:
allowUpdates: true
omitBodyDuringUpdate: true
omitNameDuringUpdate: true
- artifacts: Vic2ToHoI4-1.0Rommel-win-x64.zip, Output\Vic2ToHoI4-1.0Rommel-win-x64.exe
+ artifacts: Vic2ToHoI4-1.1Spruance-win-x64.zip, Output\Vic2ToHoI4-1.1Spruance-win-x64.exe
token: ${{ secrets.API_TOKEN_GITHUB }}
- name: "Prepare pull request artifact"
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 19d869e28f..0d2fbb7155 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -123,6 +123,10 @@ set(HOI4WORLD_PLANE_DESIGNS_SOURCES ${HOI4WORLD_PLANE_DESIGNS_SOURCES} "${PROJEC
set(HOI4WORLD_REGIONS_SOURCES ${HOI4WORLD_REGIONS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/Regions/RegionFactory.cpp")
set(HOI4WORLD_REGIONS_SOURCES ${HOI4WORLD_REGIONS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/Regions/Regions.cpp")
set(HOI4WORLD_REGIONS_SOURCES ${HOI4WORLD_REGIONS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/Regions/RegionsFactory.cpp")
+set(HOI4WORLD_SCORERS_SOURCES ${HOI4WORLD_SCORERS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/Scorers/Scorer.cpp")
+set(HOI4WORLD_SCORERS_SOURCES ${HOI4WORLD_SCORERS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/Scorers/ScorerFactory.cpp")
+set(HOI4WORLD_SCORERS_SOURCES ${HOI4WORLD_SCORERS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/Scorers/Scorers.cpp")
+set(HOI4WORLD_SCORERS_SOURCES ${HOI4WORLD_SCORERS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/Scorers/ScorersFactory.cpp")
set(HOI4WORLD_SCRIPTED_EFFECTS_SOURCES ${HOI4WORLD_SCRIPTED_EFFECTS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/ScriptedEffects/ScriptedEffectFactory.cpp")
set(HOI4WORLD_SCRIPTED_EFFECTS_SOURCES ${HOI4WORLD_SCRIPTED_EFFECTS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/ScriptedEffects/ScriptedEffectFile.cpp")
set(HOI4WORLD_SCRIPTED_EFFECTS_SOURCES ${HOI4WORLD_SCRIPTED_EFFECTS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/ScriptedEffects/ScriptedEffects.cpp")
@@ -277,6 +281,8 @@ set(OUTHOI4_PEACECONFERENCE_SOURCES ${OUTHOI4_PEACECONFERENCE_SOURCES} "${PROJEC
set(OUTHOI4_PLANE_DESIGNS_SOURCES ${OUTHOI4_PLANE_DESIGNS_SOURCES} "${PROJECT_SOURCE_DIR}/src/OutHoi4/PlaneDesigns/OutPlaneDesign.cpp")
set(OUTHOI4_PLANE_DESIGNS_SOURCES ${OUTHOI4_PLANE_DESIGNS_SOURCES} "${PROJECT_SOURCE_DIR}/src/OutHoi4/PlaneDesigns/OutPlaneDesigns.cpp")
set(OUTHOI4_PLANE_DESIGNS_SOURCES ${OUTHOI4_PLANE_DESIGNS_SOURCES} "${PROJECT_SOURCE_DIR}/src/OutHoi4/PlaneDesigns/OutPlaneModules.cpp")
+set(OUTHOI4_SCORERS_SOURCES ${OUTHOI4_SCORERS_SOURCES} "${PROJECT_SOURCE_DIR}/src/OutHoi4/Scorers/OutScorers.cpp")
+set(OUTHOI4_SCORERS_SOURCES ${OUTHOI4_SCORERS_SOURCES} "${PROJECT_SOURCE_DIR}/src/OutHoi4/Scorers/OutScorer.cpp")
set(OUTHOI4_SCRIPTED_EFFECTS_SOURCES ${OUTHOI4_SCRIPTED_EFFECTS_SOURCES} "${PROJECT_SOURCE_DIR}/src/OutHoi4/ScriptedEffects/OutScriptedEffects.cpp")
set(OUTHOI4_SCRIPTED_EFFECTS_SOURCES ${OUTHOI4_SCRIPTED_EFFECTS_SOURCES} "${PROJECT_SOURCE_DIR}/src/OutHoi4/ScriptedEffects/OutScriptedEffect.cpp")
file(GLOB OUTHOI4_SCRIPTED_LOCALISATIONS_SOURCES "${PROJECT_SOURCE_DIR}/src/OutHoi4/ScriptedLocalisations/*.cpp")
@@ -345,6 +351,7 @@ list(APPEND ALL_HOI4_FILES
${OUTHOI4_PEACECONFERENCE_SOURCES}
${OUTHOI4_PLANE_DESIGNS_SOURCES}
${OUTHOI4_NAVIES_SOURCES}
+ ${OUTHOI4_SCORERS_SOURCES}
${OUTHOI4_SCRIPTED_EFFECTS_SOURCES}
${OUTHOI4_SCRIPTED_LOCALISATIONS_SOURCES}
${OUTHOI4_SCRIPTED_TRIGGERS_SOURCES}
@@ -423,6 +430,7 @@ list(APPEND ALL_HOI4_FILES
${HOI4WORLD_PEACECONFERENCES_SOURCES}
${HOI4WORLD_PLANE_DESIGNS_SOURCES}
${HOI4WORLD_REGIONS_SOURCES}
+ ${HOI4WORLD_SCORERS_SOURCES}
${HOI4WORLD_SCRIPTED_EFFECTS_SOURCES}
${HOI4WORLD_SCRIPTED_LOCALISATIONS_SOURCES}
${HOI4WORLD_SCRIPTED_TRIGGERS_SOURCES}
@@ -498,7 +506,6 @@ configure_file("${DATA_FILE_DIR}/configurables/ideological_ai_peace.txt" "${CONV
configure_file("${DATA_FILE_DIR}/configurables/ideological_cost_modifiers.txt" "${CONVERTER_OUTPUT_DIRECTORY}/Configurables/ideological_cost_modifiers.txt" COPYONLY)
configure_file("${DATA_FILE_DIR}/configurables/ideological_unit_medals.txt" "${CONVERTER_OUTPUT_DIRECTORY}/Configurables/ideological_unit_medals.txt" COPYONLY)
configure_file("${DATA_FILE_DIR}/configurables/ideologicalDecisions.txt" "${CONVERTER_OUTPUT_DIRECTORY}/Configurables/ideologicalDecisions.txt" COPYONLY)
-configure_file("${DATA_FILE_DIR}/configurables/ideologicalIdeas.txt" "${CONVERTER_OUTPUT_DIRECTORY}/Configurables/ideologicalIdeas.txt" COPYONLY)
configure_file("${DATA_FILE_DIR}/configurables/IdeologyMappings.txt" "${CONVERTER_OUTPUT_DIRECTORY}/Configurables/IdeologyMappings.txt" COPYONLY)
configure_file("${DATA_FILE_DIR}/configurables/ImportCharacters.txt" "${CONVERTER_OUTPUT_DIRECTORY}/Configurables/ImportCharacters.txt" COPYONLY)
configure_file("${DATA_FILE_DIR}/configurables/IntelligenceAgencyLogos.txt" "${CONVERTER_OUTPUT_DIRECTORY}/Configurables/IntelligenceAgencyLogos.txt" COPYONLY)
@@ -522,6 +529,7 @@ configure_file("${DATA_FILE_DIR}/configurables/Vic2Localisations/dominions.csv"
configure_file("${DATA_FILE_DIR}/configurables/Vic2Localisations/unrecognized_nations.csv" "${CONVERTER_OUTPUT_DIRECTORY}/Configurables/Vic2Localisations/unrecognized_nations.csv" COPYONLY)
file(COPY "${DATA_FILE_DIR}/blank_mod/" DESTINATION "${CONVERTER_OUTPUT_DIRECTORY}/blankmod/")
file(COPY "${DATA_FILE_DIR}/configurables/CustomizedFocusBranches/" DESTINATION "${CONVERTER_OUTPUT_DIRECTORY}/Configurables/CustomizedFocusBranches/")
+file(COPY "${DATA_FILE_DIR}/configurables/IdeologicalIdeas/" DESTINATION "${CONVERTER_OUTPUT_DIRECTORY}/Configurables/ideologicalIdeas/")
file(COPY "${DATA_FILE_DIR}/flags" DESTINATION "${CONVERTER_OUTPUT_DIRECTORY}")
add_custom_command(TARGET Vic2ToHoi4Converter POST_BUILD WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND git rev-parse HEAD > build/Release-Linux/commit_id.txt)
@@ -634,6 +642,10 @@ set(HOI4WORLD_PLANE_DESIGNS_TESTS_SOURCES ${HOI4WORLD_PLANE_DESIGNS_TESTS_SOURCE
set(HOI4WORLD_PLANE_DESIGNS_TESTS_SOURCES ${HOI4WORLD_PLANE_DESIGNS_TESTS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/PlaneDesigns/PossiblePlaneDesignsTests.cpp")
set(HOI4WORLD_REGIONS_TESTS_SOURCES ${HOI4WORLD_REGIONS_TESTS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/Regions/RegionTests.cpp")
set(HOI4WORLD_REGIONS_TESTS_SOURCES ${HOI4WORLD_REGIONS_TESTS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/Regions/RegionsTests.cpp")
+set(HOI4WORLD_SCORERS_TESTS_SOURCES ${HOI4WORLD_SCORERS_TESTS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/Scorers/ScorerFactoryTests.cpp")
+set(HOI4WORLD_SCORERS_TESTS_SOURCES ${HOI4WORLD_SCORERS_TESTS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/Scorers/ScorerTests.cpp")
+set(HOI4WORLD_SCORERS_TESTS_SOURCES ${HOI4WORLD_SCORERS_TESTS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/Scorers/ScorersFactoryTests.cpp")
+set(HOI4WORLD_SCORERS_TESTS_SOURCES ${HOI4WORLD_SCORERS_TESTS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/Scorers/ScorersTests.cpp")
set(HOI4WORLD_SCRIPTED_EFFECTS_TESTS_SOURCES ${HOI4WORLD_SCRIPTED_EFFECTS_TESTS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/ScriptedEffects/ScriptedEffectTests.cpp")
set(HOI4WORLD_SCRIPTED_EFFECTS_TESTS_SOURCES ${HOI4WORLD_SCRIPTED_EFFECTS_TESTS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/ScriptedEffects/ScriptedEffectFileTests.cpp")
set(HOI4WORLD_SCRIPTED_LOCALISATIONS_TESTS_SOURCES ${HOI4WORLD_SCRIPTED_LOCALISATIONS_TESTS_SOURCES} "${PROJECT_SOURCE_DIR}/src/HOI4World/ScriptedLocalisations/ScriptedLocalisationTests.cpp")
@@ -768,6 +780,7 @@ list(APPEND ALL_HOI4_TESTS_FILES
${HOI4WORLD_PEACECONFERENCES_TESTS_SOURCES}
${HOI4WORLD_PLANE_DESIGNS_TESTS_SOURCES}
${HOI4WORLD_REGIONS_TESTS_SOURCES}
+ ${HOI4WORLD_SCORERS_TESTS_SOURCES}
${HOI4WORLD_SCRIPTED_EFFECTS_TESTS_SOURCES}
${HOI4WORLD_SCRIPTED_LOCALISATIONS_TESTS_SOURCES}
${HOI4WORLD_SCRIPTED_TRIGGERS_TESTS_SOURCES}
@@ -896,6 +909,7 @@ configure_file("data/test_files/operations.txt" "${TEST_OUTPUT_DIRECTORY}/blankm
configure_file("data/test_files/regions.txt" "${TEST_OUTPUT_DIRECTORY}/Configurables/Map/regions.txt" COPYONLY)
configure_file("data/test_files/ReadMe.txt" "${TEST_OUTPUT_DIRECTORY}/Vic2Windows/ReadMe.txt" COPYONLY)
configure_file("data/test_files/ReadMe.txt" "${TEST_OUTPUT_DIRECTORY}/Vic2Linux/ReadMe.txt" COPYONLY)
+configure_file("data/test_files/Scorers.txt" "${TEST_OUTPUT_DIRECTORY}/Configurables/Scorers/generic_platonic_scorers.txt" COPYONLY)
configure_file("data/test_files/ScriptedEffects/effects_file.txt" "${TEST_OUTPUT_DIRECTORY}/ScriptedEffects/effects_file.txt" COPYONLY)
configure_file("data/test_files/ScriptedEffects/empty_effects_file.txt" "${TEST_OUTPUT_DIRECTORY}/ScriptedEffects/empty_effects_file.txt" COPYONLY)
configure_file("data/test_files/Sounds/CultureToVoiceMappings.txt" "${TEST_OUTPUT_DIRECTORY}/Configurables/Sounds/CultureToVoiceMappings.txt" COPYONLY)
@@ -1034,6 +1048,7 @@ add_library(run_clang_tidy
${HOI4WORLD_OPERATIVE_NAMES_SOURCES}
${HOI4WORLD_PEACECONFERENCES_SOURCES}
${HOI4WORLD_REGIONS_SOURCES}
+ ${HOI4WORLD_SCORERS_SOURCES}
${HOI4WORLD_SCRIPTED_EFFECTS_SOURCES}
${HOI4WORLD_SCRIPTED_LOCALISATIONS_SOURCES}
${HOI4WORLD_SCRIPTED_TRIGGERS_SOURCES}
@@ -1095,6 +1110,7 @@ add_library(run_clang_tidy
${OUTHOI4_OPERATIVE_SOURCES}
${OUTHOI4_NAVIES_SOURCES}
${OUTHOI4_PEACECONFERENCE_SOURCES}
+ ${OUTHOI4_SCORERS_SOURCES}
${OUTHOI4_SCRIPTED_EFFECTS_SOURCES}
${OUTHOI4_SCRIPTED_LOCALISATIONS_SOURCES}
${OUTHOI4_SCRIPTED_TRIGGERS_SOURCES}
@@ -1133,6 +1149,7 @@ add_library(run_clang_tidy
${HOI4WORLD_PEACECONFERENCES_TESTS_SOURCES}
${HOI4WORLD_PLANE_DESIGNS_TESTS_SOURCES}
${HOI4WORLD_REGIONS_TESTS_SOURCES}
+ ${HOI4WORLD_SCORERS_TESTS_SOURCES}
${HOI4WORLD_SCRIPTED_EFFECTS_TESTS_SOURCES}
${HOI4WORLD_SCRIPTED_LOCALISATIONS_TESTS_SOURCES}
${HOI4WORLD_SCRIPTED_TRIGGERS_TESTS_SOURCES}
diff --git a/Vic2ToHoI4-Installer.iss b/Vic2ToHoI4-Installer.iss
index 2bb670494e..ade91ddfea 100644
--- a/Vic2ToHoI4-Installer.iss
+++ b/Vic2ToHoI4-Installer.iss
@@ -2,7 +2,7 @@
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Vic2 to HoI4"
-#define MyAppVersion "1.0 Rommel"
+#define MyAppVersion "1.1 Spruance"
#define MyAppPublisher "Paradox Game Converters Group"
#define MyAppURL "https://paradoxgameconverters.com/"
#define MyAppExeName "ConverterFrontend.exe"
diff --git a/Vic2ToHoI4Tests.vcxproj b/Vic2ToHoI4Tests.vcxproj
index f488192753..de76f45af5 100644
--- a/Vic2ToHoI4Tests.vcxproj
+++ b/Vic2ToHoI4Tests.vcxproj
@@ -128,6 +128,10 @@
+
+
+
+
@@ -452,6 +456,12 @@
$(OutDir)/configurables/Localisations
+
+
+ $(OutDir)/configurables/Scorers/
+ generic_platonic_scorers%(Extension)
+
+
$(OutDir)/ScriptedEffects
diff --git a/Vic2ToHoI4Tests.vcxproj.filters b/Vic2ToHoI4Tests.vcxproj.filters
index 1d3911540c..ea548bc051 100644
--- a/Vic2ToHoI4Tests.vcxproj.filters
+++ b/Vic2ToHoI4Tests.vcxproj.filters
@@ -634,6 +634,18 @@
src\V2World\Pops
+
+ src\HOI4World\Scorers
+
+
+ src\HOI4World\Scorers
+
+
+ src\HOI4World\Scorers
+
+
+ src\HOI4World\Scorers
+
@@ -1059,6 +1071,9 @@
{0f64a54e-5b9c-47ae-89cd-58afdec9b5cc}
+
+ {c7079fbb-9df6-467f-a26e-cbfcf59b89a3}
+
@@ -1393,6 +1408,9 @@
data\test_files
+
+ data\test_files
+
data\test_files
diff --git a/Vic2ToHoI4lib.vcxproj b/Vic2ToHoI4lib.vcxproj
index 81c4624934..b3b5bfdcb4 100644
--- a/Vic2ToHoI4lib.vcxproj
+++ b/Vic2ToHoI4lib.vcxproj
@@ -144,6 +144,10 @@
+
+
+
+
@@ -300,6 +304,8 @@
+
+
@@ -548,6 +554,10 @@
+
+
+
+
@@ -735,6 +745,8 @@
+
+
diff --git a/Vic2ToHoI4lib.vcxproj.filters b/Vic2ToHoI4lib.vcxproj.filters
index d5333956fc..a1ef5d9809 100644
--- a/Vic2ToHoI4lib.vcxproj.filters
+++ b/Vic2ToHoI4lib.vcxproj.filters
@@ -313,6 +313,12 @@
{3b5bae8f-1a84-4852-b2b3-1024028d64d8}
+
+ {c7817af0-36c6-489a-b034-64638a55d80f}
+
+
+ {e4d5ceee-934a-4813-8a4f-2c6e321263b5}
+
@@ -1416,6 +1422,24 @@
src\V2World\World
+
+ src\HoI4World\Scorers
+
+
+ src\HoI4World\Scorers
+
+
+ src\HoI4World\Scorers
+
+
+ src\HoI4World\Scorers
+
+
+ src\OutHoi4\Scorers
+
+
+ src\OutHoi4\Scorers
+
@@ -2780,5 +2804,23 @@
external\bitmap
+
+ src\HoI4World\Scorers
+
+
+ src\HoI4World\Scorers
+
+
+ src\HoI4World\Scorers
+
+
+ src\HoI4World\Scorers
+
+
+ src\OutHoi4\Scorers
+
+
+ src\OutHoi4\Scorers
+
\ No newline at end of file
diff --git a/data/!provincenames_l_english.yml b/data/!provincenames_l_english.yml
index f83a953e06..1dbb20dc03 100644
--- a/data/!provincenames_l_english.yml
+++ b/data/!provincenames_l_english.yml
@@ -12490,4 +12490,24 @@
PROV13232:0 "Fuentesaúco"
PROV13233:0 "Amurrio"
PROV13234:0 "Gjirokastër"
- PROV13235:0 "Korçë"
\ No newline at end of file
+ PROV13235:0 "Korçë"
+ PROV13236:0 "Semera"
+ PROV13237:0 "Aksum"
+ PROV13238:0 "Adwa"
+ PROV13239:0 "Debre Birhan"
+ PROV13240:0 "Asayita"
+ PROV13241:0 "Debre Tabor"
+ PROV13242:0 "Debre Markos"
+ PROV13243:0 "Dembidolo"
+ PROV13244:0 "Gambela"
+ PROV13245:0 "Mizan"
+ PROV13246:0 "Awasa"
+ PROV13247:0 "Moyale"
+ PROV13248:0 "Robe"
+ PROV13249:0 "Harar"
+ PROV13250:0 "Asmara"
+ PROV13251:0 "Teseney"
+ PROV13252:0 "Crikvenica"
+ PROV13253:0 "Gode"
+ PROV13255:0 "Durrës"
+ PROV13256:0 "Siracusa"
\ No newline at end of file
diff --git a/data/blank_mod/common/abilities/SWE_abilities.txt b/data/blank_mod/common/abilities/SWE_abilities.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/abilities/generic_leader_abilities.txt b/data/blank_mod/common/abilities/generic_leader_abilities.txt
index dde43b9bb8..bce1546689 100644
--- a/data/blank_mod/common/abilities/generic_leader_abilities.txt
+++ b/data/blank_mod/common/abilities/generic_leader_abilities.txt
@@ -183,7 +183,7 @@ ability = {
}
unit_modifiers = {
- paratrooper_count_per_plane = 1.0
+ paratrooper_weight_factor = -0.10
paradrop_organization_factor = 2.0
paratrooper_aa_defense = 0.5
}
diff --git a/data/blank_mod/common/ai_equipment/SOV_planes.txt b/data/blank_mod/common/ai_equipment/SOV_planes.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/ai_equipment/generic_planes.txt b/data/blank_mod/common/ai_equipment/generic_planes.txt
index e5dbf7e35a..9d5cd3eaff 100644
--- a/data/blank_mod/common/ai_equipment/generic_planes.txt
+++ b/data/blank_mod/common/ai_equipment/generic_planes.txt
@@ -3,8 +3,6 @@
generic_fighter = {
category = air
- blocked_for = {}
-
available_for = {}
roles = {
@@ -152,8 +150,6 @@ generic_fighter = {
generic_cas = {
category = air
- blocked_for = {}
-
available_for = {}
roles = {
@@ -238,8 +234,6 @@ generic_cas = {
generic_naval_bomber = {
category = air
- blocked_for = {}
-
available_for = {}
roles = {
@@ -321,7 +315,6 @@ generic_naval_bomber = {
generic_cv_fighter = {
category = air
- #blocked_for = {}
available_for = {}
@@ -469,7 +462,6 @@ generic_cv_fighter = {
generic_cv_cas = {
category = air
- #blocked_for = {}
available_for = {}
@@ -567,7 +559,6 @@ generic_cv_cas = {
generic_cv_naval_bomber = {
category = air
- #blocked_for = {}
available_for = {}
@@ -668,8 +659,6 @@ generic_cv_naval_bomber = {
generic_tactical_bomber = {
category = air
- blocked_for = {}
-
available_for = {}
roles = {
@@ -828,8 +817,6 @@ generic_tactical_bomber = {
generic_heavy_fighter = {
category = air
- blocked_for = {}
-
available_for = {}
roles = {
@@ -1029,8 +1016,6 @@ generic_scout_plane = {
generic_strategic_bomber = {
category = air
- blocked_for = {}
-
available_for = {}
roles = {
@@ -1045,11 +1030,37 @@ generic_strategic_bomber = {
}
}
+ strat_bomber_0_default = {
+ priority = {
+ factor = 5
+ }
+
+ target_variant = {
+ match_value = 500
+ type = large_plane_airframe_0
+ modules = {
+ fixed_main_weapon_slot = large_bomb_bay
+ engine_type_slot = engine_1_4x
+ special_type_slot_1 = {
+ any_of = {
+ lmg_defense_turret
+ lmg_defense_turret_2x
+ }
+ }
+ }
+ }
+
+ allowed_modules = {
+ large_bomb_bay
+ engine_1_4x
+ lmg_defense_turret_2x
+ lmg_defense_turret
+ }
+ }
+
strat_bomber_1_default = {
priority = {
factor = 10
-
-
}
target_variant = {
@@ -1077,7 +1088,6 @@ generic_strategic_bomber = {
strat_bomber_2_default = {
priority = {
factor = 10
-
}
target_variant = {
@@ -1119,7 +1129,6 @@ generic_strategic_bomber = {
special_type_slot_2 = hmg_defense_turret_2x
special_type_slot_3 = empty
}
-
}
allowed_modules = {
@@ -1134,8 +1143,6 @@ generic_strategic_bomber = {
generic_maritime_patrol = {
category = air
- blocked_for = {}
-
available_for = {}
roles = {
diff --git a/data/blank_mod/common/ai_strategy/DEN.txt b/data/blank_mod/common/ai_strategy/DEN.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/ai_strategy/HOL.txt b/data/blank_mod/common/ai_strategy/HOL.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/ai_strategy/default.txt b/data/blank_mod/common/ai_strategy/default.txt
index da2fe60d35..7c55fb1068 100644
--- a/data/blank_mod/common/ai_strategy/default.txt
+++ b/data/blank_mod/common/ai_strategy/default.txt
@@ -1,10 +1,12 @@
# Written by Henrik "Groogy" Hansson
# Modified by Daniel "Da9L" Sjberg
-default_unit_production = { #If adding country-unique ones, bear in mind that they STACK
+default_unit_production = {
+ # If adding country-unique ones, bear in mind that they STACK unless excluding countries in the enable
enable = {
always = yes
}
+ abort_when_not_enabled = yes
ai_strategy = {
type = role_ratio
@@ -46,19 +48,19 @@ default_unit_production = { #If adding country-unique ones, bear in mind that th
ai_strategy = {
type = unit_ratio
id = cas
- value = 5
+ value = 10
}
ai_strategy = {
type = unit_ratio
id = tactical_bomber
- value = 5
+ value = 10
}
ai_strategy = {
type = unit_ratio
id = strategic_bomber
- value = 1
+ value = 5
}
ai_strategy = {
@@ -104,6 +106,12 @@ default_unit_production = { #If adding country-unique ones, bear in mind that th
value = 15
}
+ ai_strategy = {
+ type = equipment_production_min_factories
+ id = convoy
+ value = 1
+ }
+
ai_strategy = {
type = equipment_production_factor
id = fighter
@@ -129,6 +137,7 @@ default_role_ratios = {
has_dlc = "Man the Guns"
}
}
+ abort_when_not_enabled = yes
ai_strategy = {
type = role_ratio
@@ -159,6 +168,7 @@ default_role_ratios = {
enable = {
has_dlc = "Man the Guns"
}
+ abort_when_not_enabled = yes
ai_strategy = {
type = role_ratio
@@ -221,6 +231,50 @@ default_role_ratios = {
}
}
+default_surplus_management = {
+ # If we manage to get all equipment we want, keep producing more stuff according to this
+ enable = {
+ always = yes # For now, applies to everyone
+ }
+ abort_when_not_enabled = yes
+
+ ai_strategy = {
+ type = equipment_production_surplus_management
+ id = infantry_equipment
+ value = 10
+ }
+
+ ai_strategy = {
+ type = equipment_production_surplus_management
+ id = support_equipment
+ value = 5
+ }
+
+ ai_strategy = {
+ type = equipment_production_surplus_management
+ id = artillery_equipment
+ value = 5
+ }
+
+ ai_strategy = { # Potentially move into a "specialization" strategy
+ type = equipment_production_surplus_management
+ id = anti_air_equipment
+ value = 3
+ }
+
+ ai_strategy = { # Potentially move into a "specialization" strategy
+ type = equipment_production_surplus_management
+ id = anti_tank_equipment
+ value = 2
+ }
+
+ ai_strategy = {
+ type = equipment_production_surplus_management
+ id = convoy
+ value = 5
+ }
+}
+
bba_air_prod_1 = {
# TODO BFW: this was moved from germany's strats
@@ -264,7 +318,7 @@ bba_air_prod_1 = {
ai_strategy = {
type = unit_ratio
id = tactical_bomber
- value = 15
+ value = 10
}
ai_strategy = {
@@ -330,12 +384,12 @@ bba_air_prod_1 = {
}
bba_support_boosts = {
- # TODO BFW: this was moved from germany's strats
enable = {
is_historical_focus_on = yes
date < 1939.1.1
}
+ abort_when_not_enabled = yes
ai_strategy = {
type = equipment_variant_production_factor
@@ -385,7 +439,7 @@ convoy_voy_voy_voy = {
ai_strategy = {
type = unit_ratio
id = convoy
- value = 25
+ value = 50
}
}
@@ -449,6 +503,7 @@ default_pp_spend_amount = {
enable = {
always = yes
}
+ abort_when_not_enabled = yes
ai_strategy = {
type = pp_spend_amount
@@ -478,14 +533,40 @@ default_paratroopers_production = {
}
}
-build_patrol_bombers = {
+default_major_SF_para = {
+ enable = {
+ is_major = yes
+ has_tech = special_forces_paratroopers
+ }
+ abort_when_not_enabled = yes
+ ai_strategy = {
+ type = role_ratio
+ id = paratroopers
+ value = 4
+ }
+}
+
+default_major_SF_marines = {
+ enable = {
+ is_major = yes
+ has_tech = special_forces_marines
+ }
+ abort_when_not_enabled = yes
+ ai_strategy = {
+ type = role_ratio
+ id = marines
+ value = 2
+ }
+}
+build_patrol_bombers = {
enable = {
has_dlc = "By Blood Alone"
has_navy_size = {
size > 1
}
}
+ abort_when_not_enabled = yes
ai_strategy = {
type = unit_ratio
@@ -604,6 +685,7 @@ slightly_naval_focused_nation = {
enable = {
always = yes
}
+ abort_when_not_enabled = yes
ai_strategy = {
type = unit_ratio
@@ -630,11 +712,43 @@ slightly_naval_focused_nation = {
}
}
+more_naval_focused_nation = {
+ enable = {
+ date > "1941.1.1" # Delaying it by a couple of years
+ }
+ abort_when_not_enabled = yes
+
+ ai_strategy = {
+ type = unit_ratio
+ id = capital_ship
+ value = 2 #1 to 2
+ }
+
+ ai_strategy = {
+ type = unit_ratio
+ id = submarine
+ value = 1
+ }
+
+ ai_strategy = {
+ type = unit_ratio
+ id = screen_ship
+ value = 1
+ }
+
+ ai_strategy = {
+ type = unit_ratio
+ id = convoy
+ value = 1
+ }
+}
+
default_area_priority = {
enable = {
always = yes
}
+ abort_when_not_enabled = yes
ai_strategy = {
type = area_priority
@@ -702,6 +816,7 @@ default_area_priority_non_africa = {
enable = {
NOT = { capital_scope = { is_on_continent = africa } }
}
+ abort_when_not_enabled = yes
ai_strategy = {
type = area_priority
@@ -743,10 +858,136 @@ default_stockpile_management = {
ai_strategy = {
type = equipment_stockpile_surplus_ratio
- value = 35 # double base stockpile #from 25 to 35
+ value = 35 # add this to default PRODUCTION_EQUIPMENT_SURPLUS_FACTOR
}
}
+default_market_stockpile_management = {
+ enable = {
+ always = yes
+ }
+ abort_when_not_enabled = yes
+
+ # Hold your trains there, partner
+ ai_strategy = {
+ type = equipment_market_for_sale_threshold
+ id = train
+ value = 20 # only start considering selling trains if surplus more than 20
+ }
+ ai_strategy = {
+ type = equipment_market_min_for_sale
+ id = train
+ value = 5 # only put up for sale in chunks of 5
+ }
+ ai_strategy = {
+ type = equipment_market_for_sale_factor
+ id = train
+ value = -50 # put fewer trains up for sale
+ }
+
+ # Better not put all your boats up for sail
+ ai_strategy = {
+ type = equipment_market_for_sale_threshold
+ id = convoy
+ value = 100 # only start considering selling convoys if surplus more than 100
+ }
+ ai_strategy = {
+ type = equipment_market_min_for_sale
+ id = convoy
+ value = 30 # only put up for sale in chunks of 5
+ }
+
+ # Don't let all your planes just fly out the window.
+ # Only sell planes if we have more than one airwing in surplus.
+ ai_strategy = {
+ type = equipment_market_for_sale_threshold
+ id = fighter
+ value = 100
+ }
+ ai_strategy = {
+ type = equipment_market_for_sale_threshold
+ id = cas
+ value = 100
+ }
+ ai_strategy = {
+ type = equipment_market_for_sale_threshold
+ id = cv_fighter
+ value = 100
+ }
+ ai_strategy = {
+ type = equipment_market_for_sale_threshold
+ id = cv_cas
+ value = 100
+ }
+ ai_strategy = {
+ type = equipment_market_for_sale_threshold
+ id = tactical_bomber
+ value = 100
+ }
+ ai_strategy = {
+ type = equipment_market_for_sale_threshold
+ id = strategic_bomber
+ value = 100
+ }
+}
+
+default_market_stockpile_management_if_at_war = {
+ enable = {
+ has_war = yes
+ # something something preparing for war?
+ }
+ abort_when_not_enabled = yes
+
+ # Don't sell stuff that we need for the war
+ ai_strategy = {
+ type = equipment_market_for_sale_threshold
+ id = infantry
+ value = 20000
+ }
+ ai_strategy = {
+ type = equipment_market_for_sale_threshold
+ id = support
+ value = 6000
+ }
+ ai_strategy = {
+ type = equipment_market_for_sale_threshold
+ id = artillery
+ value = 1000
+ }
+ ai_strategy = {
+ type = equipment_market_for_sale_threshold
+ id = fighter
+ value = 200
+ }
+ ai_strategy = {
+ type = equipment_market_for_sale_threshold
+ id = motorized
+ value = 1000
+ }
+ ai_strategy = {
+ type = equipment_market_for_sale_threshold
+ id = train
+ value = 50
+ }
+ ai_strategy = {
+ type = equipment_market_for_sale_threshold
+ id = convoy
+ value = 50
+ }
+}
+
+default_market_convoy_purchases = {
+ enable = {
+ naval_base > 0 # not land-locked
+ }
+ abort_when_not_enabled = yes
+
+ ai_strategy = {
+ type = equipment_market_buying_threshold
+ id = convoy
+ value = 30 # Consider buying if we have too few (less than 30) convoys
+ }
+}
dont_build_capitals_if_on_treaty = {
enable = {
@@ -830,6 +1071,7 @@ DEFAULT_midlate_template_design = {
enable = {
date > 1940.1.1
}
+ abort_when_not_enabled = yes
ai_strategy = {
type = template_prio
@@ -935,6 +1177,7 @@ build_intelligence_agency_as_major = {
date > 1938.1.1
}
}
+ abort_when_not_enabled = yes
ai_strategy = {
type = intelligence_agency_usable_factories
@@ -999,10 +1242,11 @@ upgrade_intelligence_agency_as_spy_master = {
}
}
-addintelligence_agency_normal_upgrade_prio = {
+add_intelligence_agency_normal_upgrade_prio = {
enable = {
always = yes
}
+ abort_when_not_enabled = yes
ai_strategy = {
type = intelligence_agency_branch_desire_factor
@@ -1074,6 +1318,7 @@ put_garrisons_on_high_prio = {
enable = {
always = yes
}
+ abort_when_not_enabled = yes
ai_strategy = {
type = garrison_reinforcement_priority
@@ -1138,6 +1383,21 @@ minors_dont_spy = {
}
}
+default_produce_some_trucks_for_buffer = {
+ enable = {
+ num_of_military_factories > 12
+ has_tech = tech_trucks
+ has_equipment = { motorized_equipment < 3000 }
+ }
+ abort_when_not_enabled = yes
+
+ ai_strategy = {
+ type = equipment_production_min_factories
+ id = motorized
+ value = 1
+ }
+}
+
default_produce_floating_harbors = {
enable = {
is_historical_focus_on = no
@@ -1153,3 +1413,10 @@ default_produce_floating_harbors = {
value = 10
}
}
+
+we_dont_believe_in_mountain_tanks = {
+ enable = {
+ is_historical_focus_on = yes
+ }
+ abort_when_not_enabled = yes
+}
diff --git a/data/blank_mod/common/ai_strategy_plans/DEN_alternate_strategy_plan.txt b/data/blank_mod/common/ai_strategy_plans/DEN_alternate_strategy_plan.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/ai_strategy_plans/DEN_historical_strategy_plan.txt b/data/blank_mod/common/ai_strategy_plans/DEN_historical_strategy_plan.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/ai_strategy_plans/FIN_alternate_strategy_plan.txt b/data/blank_mod/common/ai_strategy_plans/FIN_alternate_strategy_plan.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/ai_strategy_plans/FIN_historical_strategy_plan.txt b/data/blank_mod/common/ai_strategy_plans/FIN_historical_strategy_plan.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/ai_strategy_plans/ICE_alternate_strategy_plan.txt b/data/blank_mod/common/ai_strategy_plans/ICE_alternate_strategy_plan.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/ai_strategy_plans/ICE_historical_strategy_plan.txt b/data/blank_mod/common/ai_strategy_plans/ICE_historical_strategy_plan.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/ai_strategy_plans/NOR_alternate_strategy_plan.txt b/data/blank_mod/common/ai_strategy_plans/NOR_alternate_strategy_plan.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/ai_strategy_plans/NOR_historical_strategy_plan.txt b/data/blank_mod/common/ai_strategy_plans/NOR_historical_strategy_plan.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/ai_strategy_plans/SWE_alternate_strategy_plan.txt b/data/blank_mod/common/ai_strategy_plans/SWE_alternate_strategy_plan.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/ai_strategy_plans/SWE_historical_strategy_plan.txt b/data/blank_mod/common/ai_strategy_plans/SWE_historical_strategy_plan.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/ai_templates/generic.txt b/data/blank_mod/common/ai_templates/generic.txt
index a1f97586c7..ae8106a1d8 100644
--- a/data/blank_mod/common/ai_templates/generic.txt
+++ b/data/blank_mod/common/ai_templates/generic.txt
@@ -3,7 +3,7 @@ armor_generic = {
roles = {
armor
}
-
+
upgrade_prio = {
factor = 2.17
@@ -14,7 +14,7 @@ armor_generic = {
has_tech = basic_medium_tank_chassis
}
}
-
+
modifier = {
factor = 2
OR = {
@@ -23,7 +23,7 @@ armor_generic = {
}
}
}
-
+
match_to_count = 0.5
light_armor_default = {
@@ -34,7 +34,7 @@ armor_generic = {
factor = 1
}
}
-
+
production_prio = {
factor = 1
@@ -43,15 +43,15 @@ armor_generic = {
num_of_military_factories > 119
}
}
-
+
can_upgrade_in_field = {
- has_equipment = { light_tank_chassis < 500 }
+ has_equipment = { light_tank_chassis < 500 }
}
-
+
target_width = 18.0
width_weight = 1.0
column_swap_factor = 0.5
-
+
stat_weights = {
0.00 #-- default_morale
1.10 #-- defense
@@ -89,24 +89,24 @@ armor_generic = {
0.00 #-- acc_cold_gain
0.00 #-- build_cost_ic
}
-
+
target_template = {
weight = 0.9
match_value = 4000.0
-
+
support = {
engineer = 1
mot_recon = 1
artillery = 1
anti_tank = 1
}
-
+
regiments = {
- light_armor = 5
- motorized = 4
+ light_armor = 6
+ motorized = 3
}
}
-
+
allowed_types = {
light_armor
motorized
@@ -117,7 +117,7 @@ armor_generic = {
artillery
anti_tank
}
-
+
replace_at_match = 0.4
replace_with = medium_armor_default
target_min_match = 0.5
@@ -132,11 +132,11 @@ armor_generic = {
factor = 1
}
}
-
+
target_width = 18.0
width_weight = 3.0
column_swap_factor = 0.1
-
+
stat_weights = {
0.00 #-- default_morale
1.10 #-- defense
@@ -178,24 +178,24 @@ armor_generic = {
target_template = {
weight = 0.5
match_value = 1000.0
-
+
support = {
engineer = 1
recon = 1
logistics_company = 1
maintenance_company = 1
}
-
+
regiments = {
heavy_armor = 6
infantry = 3
}
}
-
+
allowed_types = {
modern_armor
heavy_armor
-
+
motorized
mechanized
@@ -210,14 +210,14 @@ armor_generic = {
artillery
}
-
+
replace_at_match = 0.4
replace_with = modern_armor_default
target_min_match = 0.5
}
medium_armor_default = {
-
+
upgrade_prio = {
factor = 2
@@ -229,11 +229,11 @@ armor_generic = {
}
}
}
-
- target_width = 20.0
+
+ target_width = 17.0
width_weight = 1.5
column_swap_factor = 0.5
-
+
stat_weights = {
0.00 #-- default_morale
1.10 #-- defense
@@ -271,19 +271,19 @@ armor_generic = {
0.00 #-- acc_cold_gain
0.00 #-- build_cost_ic
}
-
+
target_template = {
weight = 0.9
match_value = 5000.0
-
+
support = {
engineer = 1
mot_recon = 1
maintenance_company = 1
logistics_company = 1
}
-
+
regiments = {
medium_armor = 6
motorized = 4
@@ -305,14 +305,14 @@ armor_generic = {
anti_tank
artillery
}
-
+
replace_at_match = 0.8
replace_with = medium_armor_2_default
target_min_match = 0.5
}
medium_armor_2_default = { #2 armored 2 default
-
+
upgrade_prio = {
factor = 2
@@ -321,11 +321,11 @@ armor_generic = {
has_tech = armored_car1
}
}
-
- target_width = 20.0
+
+ target_width = 17.0
width_weight = 1.5
column_swap_factor = 0.5
-
+
stat_weights = {
0.00 #-- default_morale
1.10 #-- defense
@@ -363,19 +363,19 @@ armor_generic = {
0.00 #-- acc_cold_gain
0.00 #-- build_cost_ic
}
-
+
target_template = {
weight = 0.9
match_value = 7000.0
-
+
support = {
engineer = 1
armored_car_recon = 1
maintenance_company = 1
logistics_company = 1
}
-
+
regiments = {
medium_armor = 6
motorized = 4
@@ -397,7 +397,7 @@ armor_generic = {
anti_tank
artillery
}
-
+
replace_at_match = 0.8
replace_with = modern_armor_default
target_min_match = 0.5
@@ -405,7 +405,7 @@ armor_generic = {
modern_armor_default = {
-
+
upgrade_prio = {
factor = 2
@@ -413,11 +413,11 @@ armor_generic = {
factor = 1
}
}
-
+
target_width = 18.0
width_weight = 2.0
column_swap_factor = 0.1
-
+
stat_weights = {
0.00 #-- default_morale
1.10 #-- defense
@@ -459,21 +459,22 @@ armor_generic = {
target_template = {
weight = 0.9
match_value = 5000.0
-
+
support = {
engineer = 1
- recon = 1
+ light_tank_recon = 1
maintenance_company = 1
logistics_company = 1
+ signal_company = 1
}
-
+
regiments = {
modern_armor = 6
- mechanized = 3
+ mechanized = 4
+ modern_sp_artillery_brigade = 1
}
}
-
-
+
allowed_types = {
modern_armor
motorized
@@ -484,9 +485,11 @@ armor_generic = {
logistics_company
anti_tank
artillery
+ modern_sp_artillery_brigade
+ light_tank_recon
+ signal_company
}
}
-
}
garrison_generic = {
@@ -494,7 +497,7 @@ garrison_generic = {
roles = {
garrison
}
-
+
upgrade_prio = {
factor = 80
@@ -503,14 +506,14 @@ garrison_generic = {
ai_has_role_template = garrison
}
}
-
+
match_to_count = 0.60
garrison_generic = {
-
+
reinforce_prio = 0
custom_icon = 7
-
+
upgrade_prio = {
factor = 2
@@ -518,11 +521,11 @@ garrison_generic = {
factor = 1
}
}
-
+
target_width = 6.0
width_weight = 1.0
column_swap_factor = 0.5
-
+
stat_weights = {
0.00 #-- default_morale
0.00 #-- defense
@@ -560,20 +563,20 @@ garrison_generic = {
0.00 #-- acc_cold_gain
0.00 #-- build_cost_ic
}
-
+
target_template = {
weight = 0.9
match_value = 3000.0
-
- support = {
+
+ support = {
engineer = 1
}
-
+
regiments = {
infantry = 4
}
}
-
+
allowed_types = {
infantry
engineer
@@ -582,11 +585,11 @@ garrison_generic = {
}
suppression_generic = {
-
+
roles = {
suppression
}
-
+
upgrade_prio = {
factor = 1
@@ -595,23 +598,23 @@ suppression_generic = {
has_war = yes
}
}
-
+
match_to_count = 0.60
suppression_generic = {
-
+
reinforce_prio = 0
custom_icon = 13
-
+
upgrade_prio = {
factor = 2
}
-
- target_width = 12.0
+
+ target_width = 8.0
width_weight = 1.0
column_swap_factor = 0.5
-
+
stat_weights = {
0.00 #-- default_morale
0.00 #-- defense
@@ -649,20 +652,20 @@ suppression_generic = {
0.00 #-- acc_cold_gain
0.00 #-- build_cost_ic
}
-
+
target_template = {
weight = 0.9
match_value = 3000.0
-
- support = {
+
+ support = {
military_police = 1
}
-
+
regiments = {
- cavalry = 6
+ cavalry = 4
}
}
-
+
allowed_types = {
cavalry
military_police
@@ -675,7 +678,7 @@ infantry_generic = {
roles = {
infantry
}
-
+
upgrade_prio = {
factor = 2
@@ -685,9 +688,9 @@ infantry_generic = {
}
match_to_count = 0.10
-
+
infantry_default = {
-
+
upgrade_prio = {
factor = 2
@@ -695,11 +698,11 @@ infantry_generic = {
factor = 1
}
}
-
+
target_width = 20.0
width_weight = 1.0
column_swap_factor = 0.5
-
+
stat_weights = {
0.00 #-- default_morale
0.00 #-- defense
@@ -737,85 +740,57 @@ infantry_generic = {
0.00 #-- acc_cold_gain
0.00 #-- build_cost_ic
}
-
+
target_template = {
weight = 0.9
match_value = 3000.0
-
+
support = {
engineer = 1
recon = 1
- field_hospital = 1
- anti_tank = 1
+ logistics_company = 1
+ anti_air = 1
artillery = 1
}
-
+
regiments = {
- infantry = 7
- artillery_brigade = 2
+ infantry = 9
+ artillery_brigade = 1
}
}
-
+
allowed_types = {
- infantry
+ infantry
engineer
recon
field_hospital
logistics_company
+ anti_air
anti_tank
artillery
rocket_artillery
artillery_brigade
}
- }
-}
-
-infantry_big_generic = {
-
- roles = {
- infantry
- }
-
- upgrade_prio = {
- factor = 20
-
- modifier = {
- factor = 0
- OR = {
- date < 1938.1.1
- stockpile_ratio = {
- archetype = infantry_equipment
- ratio < 4
- }
- }
- }
+ replace_at_match = 0.9
+ replace_with = infantry_improved
+ target_min_match = 0.9
}
- match_to_count = 0.10
-
- infantry_default = {
-
+ infantry_improved = {
+
upgrade_prio = {
- factor = 20
+ factor = 2
modifier = {
- factor = 0
-
- OR = {
- date < 1938.1.1
- stockpile_ratio = {
- archetype = infantry_equipment
- ratio < 4
- }
- }
+ factor = 1
}
}
-
- target_width = 40.0
- width_weight = 1.5
+
+ target_width = 20.0
+ width_weight = 1.0
column_swap_factor = 0.5
-
+
stat_weights = {
0.00 #-- default_morale
0.00 #-- defense
@@ -853,36 +828,36 @@ infantry_big_generic = {
0.00 #-- acc_cold_gain
0.00 #-- build_cost_ic
}
-
+
target_template = {
weight = 0.9
- match_value = 5000.0
-
+ match_value = 4000.0
+
support = {
engineer = 1
- anti_tank = 1
recon = 1
- signal_company = 1
logistics_company = 1
+ anti_air = 1
+ anti_tank = 1
}
-
+
regiments = {
- infantry = 14
- artillery_brigade = 4
+ infantry = 9
+ artillery_brigade = 2
}
}
-
+
allowed_types = {
- infantry
+ infantry
engineer
recon
field_hospital
logistics_company
+ anti_air
anti_tank
artillery
rocket_artillery
artillery_brigade
- signal_company
}
}
}
@@ -892,7 +867,7 @@ mountaineers_generic = {
roles = {
mountaineers
}
-
+
upgrade_prio = {
factor = 2
@@ -903,11 +878,11 @@ mountaineers_generic = {
}
}
}
-
+
match_to_count = 0.45
mountaineers_default = {
-
+
upgrade_prio = {
factor = 2
@@ -915,11 +890,11 @@ mountaineers_generic = {
factor = 1
}
}
-
+
target_width = 20.0
width_weight = 2.0
column_swap_factor = 0.2
-
+
stat_weights = {
0 #-- default_morale
1 #-- defense
@@ -961,20 +936,20 @@ mountaineers_generic = {
target_template = {
weight = 0.5
match_value = 3000.0
-
+
support = {
engineer = 1
artillery = 1
anti_tank = 1
logistics_company = 1
}
-
+
regiments = {
mountaineers = 8
artillery_brigade = 2
}
}
-
+
allowed_types = {
mountaineers
artillery
@@ -983,6 +958,8 @@ mountaineers_generic = {
field_hospital
logistics_company
anti_tank
+ artillery_brigade
+ engineer
}
}
}
@@ -992,7 +969,7 @@ marines_generic = {
roles = {
marines
}
-
+
upgrade_prio = {
factor = 2
@@ -1003,11 +980,11 @@ marines_generic = {
}
}
}
-
+
match_to_count = 0.45
marine_default = {
-
+
upgrade_prio = {
factor = 2
@@ -1015,11 +992,11 @@ marines_generic = {
factor = 1
}
}
-
+
target_width = 18.0
width_weight = 1.0
column_swap_factor = 0.1
-
+
stat_weights = {
0.00 #-- default_morale
0.00 #-- defense
@@ -1061,26 +1038,27 @@ marines_generic = {
target_template = {
weight = 0.9
match_value = 2000.0
-
+
support = {
recon = 1
logistics_company = 1
}
-
+
regiments = {
marine = 9
}
}
-
+
allowed_types = {
marine
engineer
logistics_company
+ recon
}
}
marine_armored = {
-
+
upgrade_prio = {
factor = 2
@@ -1099,11 +1077,11 @@ marines_generic = {
factor = 0
}
}
-
+
target_width = 20.0
width_weight = 1.0
column_swap_factor = 0.1
-
+
stat_weights = {
0.00 #-- default_morale
0.00 #-- defense
@@ -1145,20 +1123,20 @@ marines_generic = {
target_template = {
weight = 0.9
match_value = 2000.0
-
+
support = {
recon = 1
logistics_company = 1
engineer = 1
}
-
+
regiments = {
amphibious_armor = 4
amphibious_mechanized = 6
}
}
-
+
allowed_types = {
marine
amphibious_mechanized
@@ -1176,7 +1154,7 @@ paratrooper_generic = {
roles = {
paratrooper
}
-
+
upgrade_prio = {
factor = 2
@@ -1187,11 +1165,11 @@ paratrooper_generic = {
}
}
}
-
+
match_to_count = 0.45
-
+
paratrooper_default = {
-
+
upgrade_prio = {
factor = 2
@@ -1199,11 +1177,11 @@ paratrooper_generic = {
factor = 1
}
}
-
+
target_width = 18.0
width_weight = 3.0
column_swap_factor = 0.1
-
+
stat_weights = {
0.20 #-- default_morale
1.00 #-- defense
@@ -1245,18 +1223,18 @@ paratrooper_generic = {
target_template = {
weight = 0.9
match_value = 2000.0
-
+
support = {
engineer = 1
artillery = 1
anti_tank = 1
}
-
+
regiments = {
paratrooper= 9
}
}
-
+
allowed_types = {
paratrooper
engineer
diff --git a/data/blank_mod/common/autonomous_states/aat_defense_council_member.txt b/data/blank_mod/common/autonomous_states/aat_defense_council_member.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/autonomous_states/colony.txt b/data/blank_mod/common/autonomous_states/colony.txt
index 57bd7e64ce..8188afe73d 100644
--- a/data/blank_mod/common/autonomous_states/colony.txt
+++ b/data/blank_mod/common/autonomous_states/colony.txt
@@ -24,6 +24,7 @@ autonomy_state = {
overlord_trade_cost_factor = -0.5
can_master_build_for_us = 1
peace_score_ratio_transferred_to_overlord = 0.1
+ lend_lease_tension_with_overlord = -0.30
research_sharing_per_country_bonus_factor = -0.5
}
@@ -43,7 +44,7 @@ autonomy_state = {
allowed = {
has_dlc = "Together for Victory"
}
-
+
can_take_level = {
#trigger here
}
diff --git a/data/blank_mod/common/autonomous_states/dominion.txt b/data/blank_mod/common/autonomous_states/dominion.txt
index 79f002d00e..429240572f 100644
--- a/data/blank_mod/common/autonomous_states/dominion.txt
+++ b/data/blank_mod/common/autonomous_states/dominion.txt
@@ -18,6 +18,7 @@ autonomy_state = {
extra_trade_to_overlord_factor = 0.25
overlord_trade_cost_factor = -0.25
peace_score_ratio_transferred_to_overlord = 0.05
+ lend_lease_tension_with_overlord = -0.1
}
ai_subject_wants_higher = {
diff --git a/data/blank_mod/common/autonomous_states/integrated_puppet.txt b/data/blank_mod/common/autonomous_states/integrated_puppet.txt
index b69626861e..6000743188 100644
--- a/data/blank_mod/common/autonomous_states/integrated_puppet.txt
+++ b/data/blank_mod/common/autonomous_states/integrated_puppet.txt
@@ -26,6 +26,7 @@ autonomy_state = {
cic_to_overlord_factor = 0.25
mic_to_overlord_factor = 0.75
peace_score_ratio_transferred_to_overlord = 0.2
+ lend_lease_tension_with_overlord = -0.40
research_sharing_per_country_bonus_factor = -0.5
}
diff --git a/data/blank_mod/common/autonomous_states/puppet.txt b/data/blank_mod/common/autonomous_states/puppet.txt
index 44f5934480..f10a9a3a26 100644
--- a/data/blank_mod/common/autonomous_states/puppet.txt
+++ b/data/blank_mod/common/autonomous_states/puppet.txt
@@ -24,6 +24,7 @@ autonomy_state = {
extra_trade_to_overlord_factor = 1.0
overlord_trade_cost_factor = -0.9
peace_score_ratio_transferred_to_overlord = 0.1
+ lend_lease_tension_with_overlord = -0.40
research_sharing_per_country_bonus_factor = -0.5
}
diff --git a/data/blank_mod/common/autonomous_states/supervised_state.txt b/data/blank_mod/common/autonomous_states/supervised_state.txt
index 2eb1a81127..03f2d2b9dd 100644
--- a/data/blank_mod/common/autonomous_states/supervised_state.txt
+++ b/data/blank_mod/common/autonomous_states/supervised_state.txt
@@ -23,6 +23,7 @@ autonomy_state = {
autonomy_gain = 2
master_ideology_drift = 0.3
peace_score_ratio_transferred_to_overlord = 0.15
+ lend_lease_tension_with_overlord = -0.20
}
ai_subject_wants_higher = {
diff --git a/data/blank_mod/common/bop/DEN.txt b/data/blank_mod/common/bop/DEN.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/bop/FIN.txt b/data/blank_mod/common/bop/FIN.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/bop/SWE.txt b/data/blank_mod/common/bop/SWE.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/characters/ICE.txt b/data/blank_mod/common/characters/ICE.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/characters/JAN.txt b/data/blank_mod/common/characters/JAN.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/country_leader/00_traits.txt b/data/blank_mod/common/country_leader/00_traits.txt
index 0225695056..ab7a292e59 100644
--- a/data/blank_mod/common/country_leader/00_traits.txt
+++ b/data/blank_mod/common/country_leader/00_traits.txt
@@ -217,7 +217,7 @@ leader_traits = {
political_power_factor = -0.1
stability_factor = 0.05
neutrality_drift = 0.05
- consumer_goods_factor = -0.05
+ consumer_goods_factor = -0.15
ai_will_do = {
factor = 1
@@ -248,7 +248,7 @@ leader_traits = {
humble = {
random = no
neutrality_drift = 0.05
- consumer_goods_factor = -0.05
+ consumer_goods_factor = -0.15
ai_will_do = {
factor = 1
@@ -610,6 +610,7 @@ leader_traits = {
}
conservative_nationalist = { #Antonio de Oliveira Salazar - Vanilla
+ sprite = 13 #Needed since Iceland uses this traits in an advisor.
random = no
stability_factor = 0.1
production_speed_infrastructure_factor = 0.2
@@ -642,6 +643,7 @@ leader_traits = {
staunch_stalinist = { #Dionisio Encina
random = no
+ sprite = 13
industrial_capacity_factory = 0.1
drift_defence_factor = 0.15
@@ -784,6 +786,15 @@ leader_traits = {
factor = 1
}
}
+
+ popular_figurehead3 = {
+ sprite = 13
+ stability_factor = 0.1
+
+ ai_will_do = {
+ factor = 1
+ }
+ }
american_caesar = {
random = no
high_command_cost_factor = -0.25
@@ -870,14 +881,14 @@ leader_traits = {
random = no
trade_laws_cost_factor = -0.33
economy_cost_factor = -0.33
- consumer_goods_factor = -0.05
+ consumer_goods_factor = -0.15
}
strict_austerity_adherent = {
random = no
stability_factor = -0.15
economy_cost_factor = 0.5
- consumer_goods_factor = -0.1
+ consumer_goods_factor = -0.30
}
defeatist = {
@@ -989,7 +1000,7 @@ leader_traits = {
disgraced_monarch = {
random = no
- consumer_goods_factor = -0.05
+ consumer_goods_factor = -0.15
stability_factor = -0.1
}
@@ -1206,7 +1217,7 @@ leader_traits = {
mobilization_speed = 0.25
}
- sultana = { #Dürrüsehvar
+ sultana = { #Dürrüşehvar
random = no
stability_factor = 0.15
war_support_factor = 0.1
@@ -1258,7 +1269,7 @@ leader_traits = {
the_statist = { #Peker
random = no
- consumer_goods_factor = -0.03
+ consumer_goods_factor = -0.10
political_power_factor = 0.1
production_speed_arms_factory_factor = 0.05
production_speed_industrial_complex_factor = 0.05
@@ -1266,7 +1277,7 @@ leader_traits = {
the_academic = { #Aydemir
random = no
- consumer_goods_factor = -0.03
+ consumer_goods_factor = -0.10
political_power_factor = 0.1
industrial_capacity_factory = 0.05
production_factory_efficiency_gain_factor = 0.05
@@ -1488,20 +1499,10 @@ leader_traits = {
political_advisor_cost_factor = -0.1
}
- elected_regency_council_pro_allies = { #Regency Council (pro allies)
- name = elected_regency_council
-
- random = no
- political_power_factor = 0.05
- stability_factor = 0.1
- political_advisor_cost_factor = -0.1
- democratic_acceptance = 50
- }
-
the_bloody_professor_regency_council = { #Regency Council (led by Aleksandar Tsankov)
random = no
master_ideology_drift = 0.1
- war_support_weekly = 0.005
+ war_support_factor = 0.05
mobilization_speed = 0.1
foreign_subversive_activites = -0.5
stability_weekly = -0.002
@@ -1646,7 +1647,7 @@ leader_traits = {
tainted_ras = {
random = no
production_factory_efficiency_gain_factor = -0.1
- consumer_goods_factor = 0.05
+ consumer_goods_factor = 0.10
equipment_capture_factor = 0.25
neutrality_acceptance = 30
@@ -1654,7 +1655,7 @@ leader_traits = {
tainted_ras_2 = {
random = no
production_factory_efficiency_gain_factor = -0.1
- consumer_goods_factor = 0.05
+ consumer_goods_factor = 0.10
equipment_capture_factor = 0.25
neutrality_acceptance = 30
stability_factor = 0.05
@@ -1714,7 +1715,7 @@ leader_traits = {
liberator_of_eth_haymanot = {
random = no
production_factory_efficiency_gain_factor = 0
- consumer_goods_factor = 0.1
+ consumer_goods_factor = 0.20
equipment_capture_factor = 0.25
neutrality_acceptance = 30
stability_factor = 0.1
@@ -1796,7 +1797,7 @@ leader_traits = {
anti_unionist_pure_anarchist = {
random = no
sprite = 13
- consumer_goods_factor = -0.02
+ consumer_goods_factor = -0.05
production_speed_buildings_factor = 0.1
industry_free_repair_factor = 0.15
}
@@ -1815,12 +1816,6 @@ leader_traits = {
stability_factor = 0.10
}
- democratic_firebrand = {
- random = no
- democratic_drift = 0.10
- conscription_factor = 0.1
- }
-
commander_of_the_fetno_derash = {
random = no
sprite = 15
@@ -1851,7 +1846,7 @@ leader_traits = {
minister_of_finance_deressa = {
random = no
sprite = 10
- consumer_goods_factor = -0.03
+ consumer_goods_factor = -0.10
min_export = -0.05
industrial_capacity_factory = 0.1
production_lack_of_resource_penalty_factor = -0.05
@@ -1885,7 +1880,7 @@ leader_traits = {
rich_sultan = {
random = no
industrial_capacity_factory = 0.05
- consumer_goods_factor = 0.05
+ consumer_goods_factor = 0.10
political_power_factor = 0.1
}
@@ -2039,7 +2034,7 @@ leader_traits = {
random = no
party_popularity_stability_factor = 0.15
political_power_factor = 0.1
- consumer_goods_factor = -0.02
+ consumer_goods_factor = -0.05
}
#FERRUCIO PARRI
@@ -2061,7 +2056,7 @@ leader_traits = {
political_advisor_cost_factor = -0.25
stability_factor = 0.1
- consumer_goods_factor = -0.03
+ consumer_goods_factor = -0.10
}
### CLN ###
@@ -2160,7 +2155,7 @@ leader_traits = {
random = no
political_power_gain = 0.25
- consumer_goods_factor = -0.02
+ consumer_goods_factor = -0.10
puppet_cost_factor = -0.4
ai_will_do = {
@@ -2317,14 +2312,776 @@ leader_traits = {
research_speed_factor = 0.1
}
- SWI_brandy_the_st_bernard_trait = {
+ SWI_brandy_the_st_bernard_trait = {
+ random = no
+ sprite = 13
+ political_power_factor = -0.3
+ stability_factor = -0.1
+ war_support_factor = -0.1
+ }
+
+ #########################
+ ###### DENMARK ######
+ #########################
+
+ #ADVISOR TRAITS
+ udenrigsminister = { #Foreign Minister
+ random = no
+ sprite = 13
+ improve_relations_maintain_cost_factor = -0.25
+ opinion_gain_monthly_factor = 0.15
+ trade_opinion_factor = 0.15
+ }
+
+ forsvarsminister = { #Defense Minister
+ random = no
+ sprite = 5
+ production_speed_arms_factory_factor = 0.1
+ production_speed_dockyard_factor = 0.1
+ production_speed_air_base_factor = 0.1
+ production_speed_naval_base_factor = 0.1
+ }
+
+ undervisningsminister = { #Education minister
+ random = no
+ sprite = 13
+ research_speed_factor = 0.05
+ }
+
+ finansminister = { #Finance Minister
+ random = no
+ sprite = 13
+ consumer_goods_factor = -0.15
+ economy_cost_factor = -0.15
+ stability_factor = 0.05
+ }
+
+ welfare_architect = {
+ random = no
+ sprite = 13
+ stability_factor = 0.1
+ political_power_factor = 0.05
+ consumer_goods_factor = -0.15
+ }
+
+ disarmament_proponent = {
+ random = no
+ sprite = 13
+ stability_factor = 0.05
+ war_support_factor = -0.05
+ consumer_goods_factor = -0.1
+ trade_laws_cost_factor = -0.15
+ }
+
+ rearmament_proponent = {
+ random = no
+ sprite = 5
+ war_support_factor = 0.1
+ conscription = 0.015
+ mobilization_laws_cost_factor = -0.15
+ conversion_cost_civ_to_mil_factor = -0.1
+ }
+
+ industry_magnate = {
+ random = no
+ sprite = 10
+ production_speed_industrial_complex_factor = 0.1
+ industrial_capacity_factory = 0.1
+ industrial_capacity_dockyard = 0.1
+ }
+
+ #########################
+ ###### FINLAND ######
+ #########################
+
+ ### COUNTRY LEADER TRAITS ###
+
+ #SVINHUFVUD & PAASIKIVI
+ kokoomus_policies = {
+ random = no
+ consumer_goods_factor = -0.1
+ }
+
+ #SVINHUFVUD
+ member_of_the_suojeluskunta = {
+ random = no
+ max_surrender_limit_offset = 0.15
+ stability_factor = -0.05
+ drift_defence_factor = 0.15
+ }
+
+ member_of_the_suojeluskunta_improved = {
+ random = no
+ max_surrender_limit_offset = 0.3
+ stability_factor = -0.05
+ drift_defence_factor = 0.25
+ justify_war_goal_when_in_major_war_time = -0.35
+ max_command_power_mult = 0.25
+ }
+
+ #KALLIO
+ backed_by_political_coalition = {
+ random = no
+ political_power_factor = 0.1
+ political_advisor_cost_factor = -0.25
+ trade_laws_cost_factor = -0.25
+ economy_cost_factor = -0.25
+ }
+
+ #RYTI
+ white_liberal_leader = {
+ random = no
+ political_power_factor = 0.05
+ production_factory_max_efficiency_factor = 0.05
+ neutrality_drift = 0.05
+ }
+
+ white_liberal_leader_improved = {
+ random = no
+ political_power_factor = 0.1
+ production_factory_max_efficiency_factor = 0.1
+ neutrality_drift = 0.1
+ }
+
+ expansionist_policies = {
+ random = no
+ generate_wargoal_tension = -0.25
+ justify_war_goal_time = -0.25
+ custom_modifier_tooltip = FIN_expansionist_policies_take_states_tt
+ }
+
+ #MANNERHEIM
+ sotamarsalkka = {
+ random = no
+ conscription = 0.01
+ war_support_factor = 0.05
+ stability_factor = -0.05
+ defensive_war_stability_factor = 0.1
+ }
+
+ sotamarsalkka_improved = {
+ random = no
+ conscription = 0.02
+ war_support_factor = 0.1
+ stability_factor = -0.05
+ defensive_war_stability_factor = 0.2
+ }
+
+ #ANNALA
+ architect_of_finnish_coporatism = {
+ random = no
+ trade_laws_cost_factor = -0.33
+ economy_cost_factor = -0.33
+ consumer_goods_factor = -0.15
+ global_building_slots = 1
+ production_speed_buildings_factor = 0.15
+ }
+
+ #AALTONEN
+ committed_anti_fascist = {
+ random = no
+ opinion_gain_monthly_same_ideology_factor = 0.25
+ send_volunteer_size = 2
+ agency_upgrade_time = -0.15
+ drift_defence_factor = 0.5
+ }
+ unbreakable_anti_fascist = {
+ random = no
+ opinion_gain_monthly_same_ideology_factor = 0.25
+ send_volunteer_size = 4
+ agency_upgrade_time = -0.3
+ drift_defence_factor = 0.5
+ root_out_resistance_effectiveness_factor = 0.2
+ war_support_factor = 0.1
+ }
+
+ committed_anti_fascist_no_lar = {
+ random = no
+ opinion_gain_monthly_same_ideology_factor = 0.25
+ send_volunteer_size = 2
+ foreign_subversive_activites = -0.15
+ drift_defence_factor = 0.5
+ }
+ unbreakable_anti_fascist_no_lar = {
+ random = no
+ opinion_gain_monthly_same_ideology_factor = 0.25
+ send_volunteer_size = 4
+ foreign_subversive_activites = -0.3
+ drift_defence_factor = 0.5
+ subversive_activites_upkeep = -0.2
+ war_support_factor = 0.1
+ }
+
+ #LEINO
+ devoted_communist = {
+ random = no
+ industrial_capacity_factory = 0.1
+ resistance_activity = -0.1
+ compliance_gain = 0.05
+ }
+
+ international_communist = {
+ random = no
+ opinion_gain_monthly_same_ideology_factor = 1
+ subversive_activites_upkeep = -0.5
+ conscription = 0.02
+ war_support_factor = 0.05
+ }
+
+ ### KARELIAN LEADER TRAITS ###
+
+ grandpa_vainamoinen = {
+ random = no
+ consumer_goods_factor = -0.15
+ required_garrison_factor = -0.3
+ }
+
+ tribal_warrior = {
+ random = no
+ army_speed_factor = 0.05
+ org_loss_when_moving = -0.15
+ initiative_factor = 0.04
+ }
+
+ veteran_guerrilla_fighter = {
+ random = no
+ war_support_factor = 0.1
+ conscription_factor = 0.15
+ army_core_defence_factor = 0.1
+ }
+
+ white_liberal = {
+ random = no
+ sprite = 13
+ neutrality_drift = 0.05
+ production_factory_max_efficiency_factor = 0.05
+ political_power_factor = 0.05
+ }
+
+ model_cajander = {
+ random = no
+ sprite = 13
+ stability_factor = 0.1
+ war_support_factor = -0.05
+ consumer_goods_factor = -0.15
+ mobilization_speed = -0.1
+ mobilization_laws_cost_factor = 0.15
+ }
+
+ maan_turva_headman = {
+ random = no
+ sprite = 13
+ intelligence_agency_defense = 0.05
+ civilian_intel_to_others = -10
+ resistance_damage_to_garrison = 0.1
+ drift_defence_factor = 0.2
+ }
+
+ white_chaplain = {
+ random = no
+ sprite = 13
+ war_support_factor = 0.05
+ army_morale_factor = 0.05
+ army_core_defence_factor = 0.05
+ drift_defence_factor = 0.1
+ }
+
+ agrarian_nationalist = {
+ random = no
+ sprite = 13
+ political_power_factor = 0.05
+ global_building_slots_factor = 0.1
+ consumer_goods_factor = -0.10
+ }
+
+ veteran_trade_unionist = {
+ random = no
+ sprite = 13
+ industrial_capacity_factory = 0.05
+ production_speed_buildings_factor = 0.05
+ stability_factor = 0.05
+ political_power_factor = -0.1
+ }
+
+ former_leader_of_red_finland = {
+ random = no
+ sprite = 13
+ production_speed_industrial_complex_factor = 0.1
+ production_speed_dockyard_factor = 0.1
+ war_support_factor = 0.05
+ }
+
+ master_armorer = {
+ random = no
+ sprite = 13
+ equipment_conversion_speed = 0.15
+ equipment_upgrade_xp_cost = -0.1
+ industrial_capacity_factory = 0.05
+ production_lack_of_resource_penalty_factor = -0.1
+ }
+
+ ################################
+ ## Sweden TRAITS ##
+ ################################
+
+ SWE_committee_against_the_finnish_white_terror_idea = {
+ random = no
+ army_breakthrough_against_minor_factor = 0.06
+ }
+
+ SWE_support_party_in_power = {
+ random = no
+ political_advisor_cost_factor = 0.25
+ economy_cost_factor = 0.25
+ trade_laws_cost_factor = 0.25
+ mobilization_laws_cost_factor = 0.25
+ }
+
+ SWE_minor_opposition_party_in_power = {
+ random = no
+ stability_factor = -0.05
+ }
+
+ SWE_rearnament_proponent = {
+ equipment_bonus = {
+ infantry_equipment = {
+ build_cost_ic = -0.05
+ instant = yes
+ }
+ }
+ war_support_factor = 0.05
+ }
+
+ SWE_rearnament_proponent_upgraded = {
+ equipment_bonus = {
+ infantry_equipment = {
+ build_cost_ic = -0.1
+ instant = yes
+ }
+ }
+ war_support_factor = 0.1
+ }
+
+ SWE_fallen_riksdag_trait = {
+ political_power_factor = -0.25
+ }
+
+ SWE_solidified_mandate = {
+ political_power_factor = 0.05
+ trade_laws_cost_factor = -0.1
+ economy_cost_factor = -0.15
+ stability_factor = 0.025
+ }
+
+ SWE_solidified_mandate_upgraded = {
+ political_power_factor = 0.1
+ trade_laws_cost_factor = -0.2
+ economy_cost_factor = -0.3
+ stability_factor = 0.05
+ }
+
+ SWE_admiral_of_industry = {
+ sprite = 10
+ random = no
+ production_speed_industrial_complex_factor = 0.17
+ production_speed_infrastructure_factor = 0.17
+ production_speed_rail_way_factor = 0.17
+ production_speed_synthetic_refinery_factor = 0.17
+ }
+
+ SWE_close_ties_to_the_military = {
+ sprite = 10
+ random = NO
+ max_command_power = 30
+ training_time_factor = -0.1
+
+ }
+
+ SWE_landsfader = {
+ sprite = 10
+ random = no
+ army_core_defence_factor = 0.06
+ army_core_attack_factor = 0.06
+ supply_combat_penalties_on_core_factor = -0.08
+ }
+
+ SWE_respectful_occupier = {
+ sprite = 10
+ random = no
+ resistance_target = -0.1
+ resistance_growth = -0.15
+ resistance_activity = -0.2
+ }
+
+
+
+ SWE_education_for_all = {
+ sprite = 10
+ random = no
+ research_speed_factor = 0.06
+
+ }
+
+ SWE_every_barrel_counts = {
+ random = no
+ supply_consumption_factor = -0.05
+ air_fuel_consumption_factor = -0.05
+ navy_fuel_consumption_factor = -0.05
+ }
+
+
+ SWE_reluctant_towards_rearmament = {
+ mobilization_laws_cost_factor = 0.15
+ war_support_factor = -0.05
+ }
+
+ SWE_minister_of_trade = {
+ random = no
+ sprite = 13
+ trade_laws_cost_factor = -0.5
+ trade_opinion_factor = 0.35
+ }
+
+ SWE_minister_of_supply = {
+ supply_factor = 0.1
+ production_lack_of_resource_penalty_factor = -0.2
+ }
+
+ SWE_minister_of_justice = {
+ random = no
+ sprite = 13
+ resistance_target = -0.05
+ }
+
+ SWE_minister_of_state = {
+ random = no
+ sprite = 13
+ political_power_factor = 0.1
+ }
+
+ SWE_suffragette = {
+ random = no
+ sprite = 13
+ stability_factor = -0.05
+ production_speed_buildings_factor = 0.05
+
+ }
+
+ SWE_suffragette_research = {
+ random = no
+ sprite = 13
+ research_speed_factor = 0.04
+ stability_factor = -0.04
+ }
+
+ SWE_suffragette_production = {
+ random = no
+ sprite = 13
+ industrial_capacity_factory = 0.04
+ industrial_capacity_dockyard = 0.04
+ stability_factor = -0.04
+ }
+
+ SWE_suffragette_clout = {
+ random = no
+ sprite = 13
+ stability_factor = -0.05
+ economy_cost_factor = -0.33
+ mobilization_laws_cost_factor = -0.33
+ trade_laws_cost_factor = -0.33
+ political_advisor_cost_factor = -0.2
+
+
+ }
+
+ SWE_foreign_minister = {
+ random = no
+ sprite = 13
+ enemy_justify_war_goal_time = 0.3
+ request_lease_tension = -0.5
+ lend_lease_tension = -0.5
+ embargo_threshold_factor = -0.5
+ embargo_cost_factor = -0.5
+ military_industrial_organization_funds_gain = 0.15
+ }
+
+ SWE_foreign_minister_no_bba = {
+ random = no
+ sprite = 13
+ enemy_justify_war_goal_time = 0.3
+ request_lease_tension = -0.5
+ lend_lease_tension = -0.5
+ military_industrial_organization_funds_gain = 0.25
+ }
+
+ SWE_minister_of_agriculture = {
+ random = no
+ sprite = 13
+ production_speed_infrastructure_factor = 0.2
+ production_speed_rail_way_factor = 0.1
+ }
+
+ SWE_interventionist_firebrand = {
+ random = no
+ sprite = 13
+ send_volunteers_tension = -0.7
+ send_volunteer_divisions_required = -0.5
+ send_volunteer_size = 3
+ army_attack_against_major_factor = 0.08
+ army_defence_against_major_factor = 0.08
+ }
+
+ SWE_minister_of_defense= {
+ random = no
+ sprite = 13
+ production_speed_bunker_factor = 0.1
+ production_speed_synthetic_refinery_factor = 0.1
+ production_speed_coastal_bunker_factor = 0.1
+ production_speed_anti_air_building_factor = 0.1
+ production_speed_arms_factory_factor = 0.1
+ }
+
+ SWE_partners_in_a_dangerous_time_gunnar = {
+ production_speed_industrial_complex_factor = 0.03
+ }
+
+ SWE_partners_in_a_dangerous_time_alva = {
+ stability_factor = 0.02
+ }
+
+ SWE_minister_of_transport = {
+ sprite = 10
+ random = no
+ production_speed_industrial_complex_factor = 0.1
+ production_speed_infrastructure_factor = 0.1
+ production_speed_rail_way_factor = 0.1
+ production_speed_supply_node_factor = 0.1
+ }
+
+ SWE_exiled_revolutionaries = {
+ sprite = 3
+ command_cap = @tier2
+ army_attack_factor = 0.16
+ stability_factor = -0.08
+ army_org_factor = -0.06
+ }
+
+ SWE_ardent_conservative = {
+ political_power_factor = -0.1
+ grant_medal_cost_factor = -0.15
+ dig_in_speed_factor = 0.20
+ max_dig_in_factor = 0.1
+ conscription = 0.02
+ }
+
+ SWE_the_great = {
+ max_training = 0.15
+ experience_gain_army_unit_factor = 0.15
+ experience_loss_factor = -0.25
+ }
+
+ the_spider = {
+ land_night_attack = 0.1
+ air_night_penalty = -0.1
+ naval_night_attack = 0.1
+ }
+
+ untethered = {
+ army_speed_factor = 0.1
+ org_loss_when_moving = -0.1
+ }
+
+ mild_mannered_no_lar = {
+ trade_opinion_factor = 0.2
+ improve_relations_maintain_cost_factor = -0.25
+ subversive_activites_upkeep = -0.25
+ }
+
+ mild_mannered = {
+ trade_opinion_factor = 0.2
+ improve_relations_maintain_cost_factor = -0.25
+ own_operative_detection_chance_factor = -0.05
+ }
+
+ unbreakable = {
+ dont_lose_dig_in_on_attack = 1.0
+ offence = -0.05
+ defence = 0.15
+ }
+
+ hyena = {
+ equipment_capture_factor = 0.1
+ }
+
+ lucky = {
+ land_reinforce_rate = 0.02
+ naval_critical_score_chance_factor = 0.1
+ critical_receive_chance = -0.1
+ }
+
+ amnesiac = { #You dont always remember everything, but seeing rockets explode will forever be a wonder as a result
+ rocket_attack_factor = 0.15
+ political_power_factor = -0.1
+ planning_speed = -0.2
+ coordination_bonus = -0.2
+ }
+
+ trusty_no_lar = {
+ trade_opinion_factor = 0.2
+ opinion_gain_monthly = 0.25
+ foreign_subversive_activites = 0.3
+ }
+
+ trusty = {
+ trade_opinion_factor = 0.2
+ opinion_gain_monthly = 0.25
+ operation_coup_government_outcome = 0.25
+ operation_infiltrate_outcome = 0.25
+ operation_boost_resistance_outcome = 0.35
+ operation_targeted_sabotage_industry_outcome = 0.35
+ operation_targeted_sabotage_resources_outcome = 0.35
+ operation_targeted_sabotage_infrastructure_outcome = 0.35
+ }
+
+ ##############
+ ### ICEMAN ###
+ ##############
+
+ ICE_national_romanticist = {
+ justify_war_goal_time = -0.1
+ drift_defence_factor = 0.25
+ }
+ ICE_revolutionary_educator = {
+ random = no
+ party_popularity_stability_factor = 0.15
+ research_speed_factor = 0.1
+ }
+
+ ICE_the_strict_regent = {
+ random = no
+ political_power_factor = -0.15
+ stability_factor = 0.1
+ industrial_capacity_factory = 0.05
+ }
+ ICE_independence_advocate = {
+ random = no
+ autonomy_gain = 0.1
+ autonomy_gain_global_factor = 0.2
+ party_popularity_stability_factor = 0.15
+ }
+ ICE_the_navy_king = {
+ random = no
+ naval_doctrine_cost_factor = -0.1
+ experience_gain_navy_factor = 0.2
+ }
+
+ ICE_transportation_enthusiast = {
+ equipment_bonus = {
+ train_equipment = {
+ instant = yes
+ build_cost_ic = -0.15
+ }
+ }
+ equipment_bonus = {
+ motorized_equipment = {
+ instant = yes
+ build_cost_ic = -0.15
+ }
+ }
+
+ }
+
+ # Advisor traits
+ ICE_minister_of_healthcare_and_finance = {
+ random = no
+ sprite = 13
+ stability_factor = 0.1
+ production_speed_industrial_complex_factor = 0.1
+ }
+
+ ICE_internationalist_guardian = {
+ random = no
+ sprite = 13
+ join_faction_tension = -0.05
+ send_volunteers_tension = -0.15
+ send_volunteer_divisions_required = -0.75
+ }
+ ICE_minister_of_finance_moller = {
+ random = no
+ sprite = 10
+ consumer_goods_factor = -0.05
+ industrial_capacity_factory = 0.1
+ production_lack_of_resource_penalty_factor = -0.05
+ }
+ ICE_judge_and_editor = {
+ random = no
+ sprite = 13
+ political_power_factor = 0.05
+ non_core_manpower = 0.2
+ stability_factor = 0.05
+ }
+ ICE_travel_enthusiast = {
+ random = no
+ sprite = 13
+ custom_modifier_tooltip = ICE_travel_enthusiast_tt
+ send_volunteers_tension = -0.05
+ send_volunteer_divisions_required = -0.05
+ }
+
+ ICE_progressive_doctor = {
+ random = no
+ sprite = 13
+ drift_defence_factor = 0.20
+ weekly_manpower = 100
+ conscription_factor = 0.1
+ }
+ # Company traits
+ ICE_shipping_concern = {
+ random = no
+ ai_will_do = {
+ factor = 1
+ }
+ }
+
+ # End Iceland
+
+ minister_of_ecclesiastical_affairs = { #Education
+ random = no
+ sprite = 13
+ research_speed_factor = 0.06
+ }
+
+ special_envoy = {
+ random = no
+ sprite = 15
+ operative_slot = 1
+ agency_upgrade_time = -0.2
+ civilian_intel_factor = 0.2
+ stability_factor = 0.05
+ }
+
+ minister_of_ecclesiastical_affairs_upgraded = { #Education
+ random = no
+ sprite = 13
+ research_speed_factor = 0.1
+ political_power_factor = 0.05
+ }
+
+ national_socialist_veterinarian = {
random = no
sprite = 13
- political_power_factor = -0.3
stability_factor = -0.1
- war_support_factor = -0.1
+ justify_war_goal_time = -0.1
+ conscription = 0.02
}
+ humanist = {
+ random = no
+ sprite = 13
+ war_support_factor = -0.1
+ civilian_intel_factor = 0.15
+ political_power_factor = 0.15
+ }
################################
## SOVIET UNION LEADER TRAITS ##
@@ -2487,7 +3244,7 @@ leader_traits = {
labor_defense_organizer = {
random = no
sprite = 13
- consumer_goods_factor = -0.05
+ consumer_goods_factor = -0.15
army_core_defence_factor = 0.05
experience_gain_army_factor = 0.05
research_speed_factor = -0.03
@@ -2542,7 +3299,7 @@ leader_traits = {
emigre_connections = {
random = no
weekly_manpower = 2000
- consumer_goods_factor = -0.03
+ consumer_goods_factor = -0.10
}
desperate_gambit = {
@@ -2695,7 +3452,7 @@ leader_traits = {
soviet_economist = {
random = no
sprite = 13
- consumer_goods_factor = -0.02
+ consumer_goods_factor = -0.10
war_support_factor = 0.05
production_speed_synthetic_refinery_factor = 0.15
subversive_activites_upkeep = -0.05
@@ -2860,7 +3617,7 @@ leader_traits = {
driver_of_the_faithful = {
random = no
sprite = 13
- consumer_goods_factor = -0.03
+ consumer_goods_factor = -0.10
industrial_capacity_factory = 0.05
}
@@ -3021,7 +3778,7 @@ leader_traits = {
financial_expert = {
sprite = 10
random = yes
- consumer_goods_factor = -0.05
+ consumer_goods_factor = -0.15
ai_will_do = {
factor = 2
@@ -3214,7 +3971,7 @@ leader_traits = {
finance_graduate = {
sprite = 10
random = no
- consumer_goods_factor = -0.02
+ consumer_goods_factor = -0.10
ai_will_do = {
factor = 2
@@ -3325,7 +4082,7 @@ leader_traits = {
sprite = 10
stability_factor = 0.05
- consumer_goods_factor = -0.05
+ consumer_goods_factor = -0.15
ai_will_do = {
factor = 1
@@ -3360,7 +4117,7 @@ leader_traits = {
random = no
sprite = 10
- consumer_goods_factor = -0.1
+ consumer_goods_factor = -0.30
resistance_growth_on_our_occupied_states = 0.1
ai_will_do = {
@@ -3416,7 +4173,7 @@ leader_traits = {
random = no
sprite = 13
- consumer_goods_factor = -0.02
+ consumer_goods_factor = -0.10
stability_factor = 0.05
conscription = 0.005
@@ -3519,7 +4276,7 @@ leader_traits = {
agricultural_capitalist = {
random = no
sprite = 13
- consumer_goods_factor = -0.05
+ consumer_goods_factor = -0.15
neutrality_drift = 0.05
}
@@ -3650,7 +4407,7 @@ leader_traits = {
staunch_aristocrat = {
random = no
sprite = 13
- consumer_goods_factor = -0.05
+ consumer_goods_factor = -0.20
drift_defence_factor = 0.15
}
@@ -4517,6 +5274,26 @@ leader_traits = {
}
}
+ telephone_company = {
+ random= No
+ land_reinforce_rate = 0.02
+ coordination_bonus = 0.04
+ ai_will_do = {
+ factor = 1
+ }
+ }
+
+ mining_company = {
+ random = no
+
+ local_resources_factor = 0.1
+ production_lack_of_resource_penalty_factor = -0.15
+
+ ai_will_do = {
+ factor = 1
+ }
+ }
+
electronics_developer = {
random = no
@@ -4551,7 +5328,7 @@ leader_traits = {
min_export = 0.3
opinion_gain_monthly_factor = -0.05
- consumer_goods_factor = 0.05
+ consumer_goods_factor = 0.10
political_power_gain = -0.15
ai_will_do = {
@@ -4606,6 +5383,203 @@ leader_traits = {
}
}
+ ################################
+ ## NORWAY TRAITS ##
+ ################################
+
+ NOR_royal_chamberlain = { # For Peder Anker Wedel-Jarlsberg as Advisor
+ random = no
+ sprite = 13
+ neutrality_drift = 0.1
+ stability_factor = 0.15
+
+ ai_will_do = {
+ factor = 1
+ }
+ }
+
+ NOR_shrewd_regent = { # For Peder Anker Wedel Jarlsberg as a country leader
+ random = no
+
+ stability_factor = 0.2
+ political_power_cost = 0.15
+ }
+
+
+
+ NOR_aristocratic_industrialist = { # For Axel Aubert
+ random = no
+ sprite = 10
+
+ neutrality_drift = 0.03
+ production_speed_buildings_factor = 0.1
+ production_speed_bunker_factor = 0.25
+ production_speed_coastal_bunker_factor = 0.25
+ }
+
+ NOR_pacifist_diplomat = { #For Halvdan Koht
+ random = no
+ sprite = 13
+
+ war_support_factor = -0.1
+ political_power_gain = 0.15
+ opinion_gain_monthly_factor = 0.25
+ }
+
+ NOR_shipping_capitalist = { #For Johan Ludwig Mowinckel
+ random = no
+ sprite = 10
+
+ production_speed_dockyard_factor = 0.17
+ }
+
+ NOR_fascist_judiciary = {
+ random = no
+ sprite = 13
+
+ compliance_growth = 0.05
+ resistance_growth = -0.1
+ }
+
+ NOR_callous_engineer = {
+ random = no
+ sprite = 14
+
+ research_speed_factor = 0.09
+ }
+
+ NOR_tobacco_industrialist = {
+ random = no
+ sprite = 10
+
+ war_support_factor = -0.15
+ production_speed_infrastructure_factor = 0.25
+ production_speed_industrial_complex_factor = 0.2
+ }
+
+ NOR_compliant_politician = {
+ random = no
+ sprite = 13
+
+ stability_factor = 0.10
+ political_power_factor = 0.1
+ }
+
+ NOR_clueless_defense_minister = { # For Ljundberg
+ random = no
+ sprite = 14
+
+ land_doctrine_cost_factor = -0.1
+ mobilization_laws_cost_factor = 0.75
+ }
+
+ NOR_minister_of_agriculture = {
+ random = no
+ sprite = 14
+
+ weekly_manpower = 300
+ war_support_factor = -0.05
+ }
+
+ ###### OFFICER CORPS TRAITS ######
+
+ NOR_defeatist_commander_in_chief = {
+ sprite = 5
+
+ experience_gain_army = @chief_experience_gain_low
+
+ command_cap = @tier1
+
+ max_dig_in_factor = 0.1
+ dig_in_speed_factor = 0.25
+ surrender_limit = -0.2
+ ai_will_do = {
+ factor = 1
+ modifier = {
+ factor = 0
+ command_power < @tier1
+ }
+ }
+ }
+
+ NOR_hydroelectric_company_trait = {
+
+ country_resource_aluminium = 10
+ production_speed_industrial_complex_factor = 0.15
+
+
+ ai_will_do = {
+ factor = 1
+ }
+ }
+
+ NOR_nationalized_hydroelectric_company_trait = {
+
+ country_resource_aluminium = 20
+ production_speed_industrial_complex_factor = 0.2
+ production_speed_infrastructure_factor = 0.1
+
+ ai_will_do = {
+ factor = 1
+ }
+ }
+
+ NOR_oppportunistic_officer = { # For Sundlo
+ sprite = 14
+ land_doctrine_cost_factor = -0.1
+ experience_gain_army_factor = 0.07
+
+ ai_will_do = {
+ factor = 1
+ }
+ }
+
+ NOR_pragmatic_defense_minister = { # For Torp
+ sprite = 14
+ land_doctrine_cost_factor = -0.1
+ production_speed_industrial_complex_factor = 0.1
+
+ ai_will_do = {
+ factor = 1
+ }
+ }
+
+ NOR_vigilant_fort_commander = { # For Birger Eriksen (Military High Command)
+ random = no
+ sprite = 5
+
+ coastal_bunker_effectiveness_factor = 0.05
+ land_bunker_effectiveness_factor = 0.1
+ initiative_factor = 0.02
+
+ #experience_gain_army = @experience_gain_low
+
+ command_cap = @tier1
+
+ ai_will_do = {
+ factor = 2
+ modifier = {
+ factor = 0
+ command_power < @tier1
+ }
+ }
+ }
+
+
+
+############
+
+ inventive_genius = {
+ random = no
+
+ political_power_gain = 0.05
+ opinion_gain_monthly_factor = 0.05
+
+ ai_will_do = {
+ factor = 1
+ }
+ }
+
### Military Minister Traits
# 1 is worst, 3 is best
@@ -4972,7 +5946,7 @@ leader_traits = {
command_cap = @tier1
ai_will_do = {
- factor = 1
+ factor = 0.5
modifier = {
factor = 0
command_power < @tier1
@@ -4988,7 +5962,7 @@ leader_traits = {
command_cap = @tier2
ai_will_do = {
- factor = 2
+ factor = 1
modifier = {
factor = 0
command_power < @tier2
@@ -5004,7 +5978,7 @@ leader_traits = {
command_cap = @tier3
ai_will_do = {
- factor = 3
+ factor = 1.5
modifier = {
factor = 0
command_power < @tier3
@@ -5271,8 +6245,8 @@ leader_traits = {
army_commando_1 = { # +4 paratrooper/marine/mountain efficiency
sprite = 5
- special_forces_attack_factor = 0.1
- special_forces_defence_factor = 0.1
+ special_forces_attack_factor = 0.05
+ special_forces_cap_flat = 3
#experience_gain_army = @experience_gain_low
command_cap = @tier1
@@ -5288,8 +6262,8 @@ leader_traits = {
army_commando_2 = { # +8 paratrooper/marine/mountain efficiency
sprite = 5
- special_forces_attack_factor = 0.15
- special_forces_defence_factor = 0.15
+ special_forces_attack_factor = 0.10
+ special_forces_cap_flat = 6
#experience_gain_army = @experience_gain_medium
command_cap = @tier2
@@ -5305,8 +6279,8 @@ leader_traits = {
army_commando_3 = { # +12 paratrooper/marine/mountain efficiency
sprite = 5
- special_forces_attack_factor = 0.2
- special_forces_defence_factor = 0.2
+ special_forces_attack_factor = 0.15
+ special_forces_cap_flat = 10
#experience_gain_army = @experience_gain_high
command_cap = @tier3
@@ -5577,6 +6551,93 @@ leader_traits = {
}
+ army_radio_intelligence_1 = {
+ random = no
+ sprite = 15
+ civilian_intel_factor = 0.03
+ army_intel_factor = 0.03
+ navy_intel_factor = 0.03
+ airforce_intel_factor = 0.03
+ initiative_factor = 0.02
+
+ #experience_gain_army = @experience_gain_low
+
+ command_cap = @tier1
+
+ ai_will_do = {
+ factor = 2
+ modifier = {
+ factor = 0
+ command_power < @tier1
+ }
+ }
+ }
+
+ army_radio_intelligence_2 = {
+ random = no
+ sprite = 15
+ civilian_intel_factor = 0.06
+ army_intel_factor = 0.06
+ navy_intel_factor = 0.06
+ airforce_intel_factor = 0.06
+ initiative_factor = 0.04
+
+ #experience_gain_army = @experience_gain_medium
+
+ command_cap = @tier2
+
+ ai_will_do = {
+ factor = 4
+ modifier = {
+ factor = 0
+ command_power < @tier2
+ }
+ }
+ }
+
+ army_radio_intelligence_3 = {
+ random = no
+ sprite = 15
+ civilian_intel_factor = 0.09
+ army_intel_factor = 0.09
+ navy_intel_factor = 0.09
+ airforce_intel_factor = 0.09
+ initiative_factor = 0.06
+
+ #experience_gain_army = @experience_gain_high
+
+ command_cap = @tier3
+
+ ai_will_do = {
+ factor = 6
+ modifier = {
+ factor = 0
+ command_power < @tier3
+ }
+ }
+ }
+
+ army_german_ground_commander = { #FIN-specific, considered Genius (tier 3)
+ sprite = 5
+ amphibious_invasion = 0.1
+ paradrop_organization_factor = 0.1
+ army_infantry_attack_factor = 0.05
+ max_command_power = 60
+
+ #experience_gain_army = @experience_gain_high
+
+ command_cap = @tier3
+
+ ai_will_do = {
+ factor = 3
+ modifier = {
+ factor = 0
+ command_power < @tier3
+ }
+ }
+ }
+
+
air_chief_reform_1 = { # Rate at which air experience is gained increases by 5%
sprite = 1
experience_gain_air = @chief_experience_gain_low
diff --git a/data/blank_mod/common/decisions/DEN.txt b/data/blank_mod/common/decisions/DEN.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/decisions/FIN.txt b/data/blank_mod/common/decisions/FIN.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/decisions/ICE.txt b/data/blank_mod/common/decisions/ICE.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/decisions/NOR.txt b/data/blank_mod/common/decisions/NOR.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/decisions/NORDIC.txt b/data/blank_mod/common/decisions/NORDIC.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/decisions/SWE.txt b/data/blank_mod/common/decisions/SWE.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/decisions/_debug_decisions.txt b/data/blank_mod/common/decisions/_debug_decisions.txt
index b288319ea9..232dd6751a 100644
--- a/data/blank_mod/common/decisions/_debug_decisions.txt
+++ b/data/blank_mod/common/decisions/_debug_decisions.txt
@@ -1,11 +1,44 @@
debug_decisions = {
+ debug_show_decisions = {
+ priority = 100
+ allowed = {
+ always = yes
+ }
+
+ visible = {
+ is_ai = no
+ is_debug = yes
+ NOT = { has_global_flag = show_debug_decisions_flag }
+ }
+ complete_effect = {
+ set_global_flag = show_debug_decisions_flag
+ }
+ }
+
+ debug_hide_decisions = {
+ priority = -1
+ allowed = {
+ always = yes
+ }
+
+ visible = {
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
+ }
+ complete_effect = {
+ clr_global_flag = show_debug_decisions_flag
+ }
+ }
+
research_all_tank_techs_nsb = {
icon = generic_tank
visible = {
is_ai = no
is_debug = yes
+ has_global_flag = show_debug_decisions_flag
}
complete_effect = {
@@ -213,7 +246,9 @@ debug_decisions = {
}
visible = {
- always = yes
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
}
fire_only_once = no
@@ -233,7 +268,9 @@ debug_decisions = {
}
visible = {
- always = yes
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
}
fire_only_once = no
@@ -264,7 +301,9 @@ debug_decisions = {
}
visible = {
- always = yes
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
}
fire_only_once = no
@@ -284,11 +323,13 @@ debug_decisions = {
icon = generic_research
available = {
- always = yes
+ is_ai = no
}
visible = {
- always = yes
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
}
fire_only_once = no
@@ -311,16 +352,19 @@ debug_decisions = {
}
}
+
create_operative_debug = {
icon = generic_research
available = {
- always = yes
+ is_ai = no
}
visible = {
- always = yes
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
}
fire_only_once = no
@@ -344,11 +388,13 @@ debug_decisions = {
icon = generic_research
available = {
- always = yes
+ is_ai = no
}
visible = {
- always = yes
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
}
fire_only_once = no
@@ -370,11 +416,13 @@ debug_decisions = {
icon = generic_research
available = {
- always = yes
+ is_ai = no
}
visible = {
- always = yes
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
}
fire_only_once = no
@@ -397,21 +445,20 @@ debug_decisions = {
harm_operative_debug = {
available = {
- num_of_operatives > 0
+ #num_of_operatives > 0
}
visible = {
- always = yes
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
}
fire_only_once = no
cost = 0
complete_effect = {
- random_operative = {
- harm_operative_leader = 1
- #Some easter egg from Vanilla HoI4 - can be removed safely
- }
+ add_political_power = 1000
}
ai_will_do = {
@@ -426,7 +473,9 @@ debug_decisions = {
}
visible = {
- always = yes
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
}
fire_only_once = no
@@ -453,11 +502,13 @@ debug_decisions = {
slot_machine = { # we pegi 18 now
available = {
- always = yes
+ is_ai = no
}
visible = {
- always = yes
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
}
days_remove = 777
@@ -468,6 +519,15 @@ debug_decisions = {
}
decryption_tech_1 = {
+ available = {
+ is_ai = no
+ }
+
+ visible = {
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
+ }
days_remove = 100
modifier = {
decryption = 1
@@ -475,6 +535,15 @@ debug_decisions = {
}
decryption_tech_2 = {
+ available = {
+ is_ai = no
+ }
+
+ visible = {
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
+ }
days_remove = 100
modifier = {
decryption = 1
@@ -482,6 +551,15 @@ debug_decisions = {
}
decryption_tech_3 = {
+ available = {
+ is_ai = no
+ }
+
+ visible = {
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
+ }
days_remove = 100
modifier = {
decryption = 1
@@ -489,6 +567,15 @@ debug_decisions = {
}
encryption_tech_1 = {
+ available = {
+ is_ai = no
+ }
+
+ visible = {
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
+ }
days_remove = 100
modifier = {
encryption = 1
@@ -496,6 +583,15 @@ debug_decisions = {
}
encryption_tech_2 = {
+ available = {
+ is_ai = no
+ }
+
+ visible = {
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
+ }
days_remove = 100
modifier = {
encryption = 1
@@ -503,6 +599,15 @@ debug_decisions = {
}
encryption_tech_3 = {
+ available = {
+ is_ai = no
+ }
+
+ visible = {
+ is_ai = no
+ is_debug = yes
+ has_global_flag = show_debug_decisions_flag
+ }
days_remove = 100
modifier = {
encryption = 1
diff --git a/data/blank_mod/common/decisions/_generic_decisions.txt b/data/blank_mod/common/decisions/_generic_decisions.txt
index 98f5ce2f94..898479438a 100644
--- a/data/blank_mod/common/decisions/_generic_decisions.txt
+++ b/data/blank_mod/common/decisions/_generic_decisions.txt
@@ -78,7 +78,7 @@ political_actions = {
modifier = {
stability_weekly = 0.005
- consumer_goods_factor = 0.05
+ consumer_goods_factor = 0.10
industrial_capacity_factory = -0.1
}
@@ -1428,7 +1428,8 @@ war_measures = {
visible = {
has_defensive_war = yes
- has_offensive_war = no
+ has_offensive_war = no
+ num_of_controlled_states > 0
}
fire_only_once = no
@@ -1595,7 +1596,7 @@ war_measures = {
cost = GER_war_bonds_var?50
modifier = {
- consumer_goods_factor = -0.05
+ consumer_goods_factor = -0.20
}
ai_will_do = {
@@ -1661,7 +1662,36 @@ war_measures = {
add_war_support = GER_war_bonds_war_support_var
}
}
+ }
+
+ diversify_special_forces = {
+
+ icon = GFX_decision_generic_military
+
+ available = {
+ date > 1940.1.1
+ }
+
+ visible = {
+ has_dlc = "Arms Against Tyranny"
+ }
+
+ fire_only_once = yes
+
+ cost = 50
+
+ complete_effect = {
+ add_potential_special_forces_tree = yes
+ }
+ ai_will_do = {
+ factor = 201
+ modifier = {
+ factor = 0
+ is_major = no
+ }
+ }
}
+
}
foreign_politics = {
diff --git a/data/blank_mod/common/decisions/aat_mio_decisions.txt b/data/blank_mod/common/decisions/aat_mio_decisions.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/decisions/categories/00_decision_categories.txt b/data/blank_mod/common/decisions/categories/00_decision_categories.txt
index e36c2a4a30..135fd5614a 100644
--- a/data/blank_mod/common/decisions/categories/00_decision_categories.txt
+++ b/data/blank_mod/common/decisions/categories/00_decision_categories.txt
@@ -149,3 +149,11 @@ lar_local_recruitment = {
visibility_type = map_and_decisions_view
}
+foreign_mio_decisions_category = {
+ picture = generic_economy
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ }
+ priority = 5
+}
+
diff --git a/data/blank_mod/common/decisions/categories/DEN_decision_categories.txt b/data/blank_mod/common/decisions/categories/DEN_decision_categories.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/decisions/categories/FIN_decision_categories.txt b/data/blank_mod/common/decisions/categories/FIN_decision_categories.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/decisions/categories/ICE_decision_categories.txt b/data/blank_mod/common/decisions/categories/ICE_decision_categories.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/decisions/categories/NORDIC_decision_categories.txt b/data/blank_mod/common/decisions/categories/NORDIC_decision_categories.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/decisions/categories/NOR_decision_categories.txt b/data/blank_mod/common/decisions/categories/NOR_decision_categories.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/decisions/categories/SWE_decision_categories.txt b/data/blank_mod/common/decisions/categories/SWE_decision_categories.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/decisions/resource_prospecting.txt b/data/blank_mod/common/decisions/resource_prospecting.txt
index 5628cf26f2..952b461725 100644
--- a/data/blank_mod/common/decisions/resource_prospecting.txt
+++ b/data/blank_mod/common/decisions/resource_prospecting.txt
@@ -7068,5 +7068,173 @@ prospect_for_resources = {
}
}
}
+
+ deeper_swedish_mines = { #76
+
+ icon = steel
+
+ allowed = {
+
+ }
+ highlight_states = {
+ highlight_state_targets = {
+ state = 666
+ }
+ }
+ available = {
+ has_tech = excavation4
+ num_of_civilian_factories_available_for_projects > 5
+ controls_state = 666
+ owns_state = 666
+ }
+
+ visible = {
+ owns_state = 666
+ controls_state = 666
+ 666 = {
+ NOT = {
+ has_state_flag = has_expanded_mines
+ }
+ }
+ }
+
+ fire_only_once = yes
+
+ cost = 50
+ days_remove = 60
+
+ modifier = {
+ civilian_factory_use = 5
+ }
+
+ ai_will_do = {
+ base = 1
+ }
+
+ remove_effect = {
+ 666 = { set_state_flag = has_expanded_mines }
+ 666 = {
+ add_resource = {
+ type = steel
+ amount = 24
+ }
+ }
+
+ 666 = {
+ add_resource = {
+ type = tungsten
+ amount = 12
+ }
+ }
+
+ 666 = {
+ add_resource = {
+ type = chromium
+ amount = 5
+ }
+ }
+ }
+ }
+
+ expand_greenlands_mines = { #101
+
+ icon = steel
+
+ allowed = {
+
+ }
+ available = {
+ has_tech = excavation3
+ num_of_civilian_factories_available_for_projects > 2
+ has_full_control_of_state = 101
+ }
+
+ highlight_states = {
+ highlight_state_targets = {
+ state = 101
+ }
+ }
+
+ visible = {
+ 101 = {
+ NOT = {
+ has_state_flag = {
+ flag = expand_greenlands_mines_flag
+ value = 3
+ }
+ }
+ }
+ }
+
+ cost = 50
+ days_remove = 60
+
+ modifier = {
+ civilian_factory_use = 3
+ }
+
+ ai_will_do = {
+ base = 0.5
+ modifier = {
+ factor = 0.5
+ has_political_power < 80
+ }
+ modifier = {
+ factor = 3
+ has_political_power > 200
+ has_resources_in_country = {
+ resource = chromium
+ amount < 1
+ }
+ has_resources_in_country = {
+ resource = tungsten
+ amount < 1
+ }
+ }
+ modifier = {
+ factor = 5
+ has_resources_in_country = {
+ resource = steel
+ amount < 1
+ }
+ }
+ }
+ remove_effect = {
+ custom_effect_tooltip = repeatable_decision_tt
+ 101 = {
+ if = {
+ limit = {
+ NOT = {
+ has_state_flag = expand_greenlands_mines_flag
+ }
+ }
+ set_state_flag = {
+ flag = expand_greenlands_mines_flag
+ value = 1
+ }
+ }
+ else = {
+ modify_state_flag = {
+ flag = expand_greenlands_mines_flag
+ value = 1
+ }
+ }
+ }
+ 101 = {
+ add_resource = {
+ type = steel
+ amount = 8
+ }
+ add_resource = {
+ type = chromium
+ amount = 4
+ }
+ add_resource = {
+ type = tungsten
+ amount = 4
+ }
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/data/blank_mod/common/dynamic_modifiers/aat_dynamic_modifiers.txt b/data/blank_mod/common/dynamic_modifiers/aat_dynamic_modifiers.txt
new file mode 100644
index 0000000000..269cc8df43
--- /dev/null
+++ b/data/blank_mod/common/dynamic_modifiers/aat_dynamic_modifiers.txt
@@ -0,0 +1,903 @@
+# Example:
+#
+# example_dynamic_modifier = {
+# icon = "GFX_idea_unknown" # optional, will show up in guis if icon is specified
+# enable = { always = yes } #optional, the modifier won't apply if not enabled
+# remove_trigger = { always = no } #optional, will remove the modifier if true
+# attacker_modifier = no # if yes this modifier will also be read in combat for
+# # people engaging in the combat even if not in the state
+#
+# # list of modifiers
+# fuel_cost = 321
+# max_fuel = var_max_fuel # will be taken from a variable
+# }
+#
+#
+# In a script file:
+#
+# effect = {
+# add_dynamic_modifier = {
+# modifier = example_dynamic_modifier
+# scope = GER # optional, if you specify this your dynamic modifier scoped to this scope (root is the effect scope)
+# days = 14 # optional, will be removed after this many days passes
+# }
+# }
+#
+# can be added to countries, states or unit leaders
+# will only updated daily, unless forced by force_update_dynamic_modifier effect
+
+###################################
+
+GER_poor_iron_quality = {
+ enable = { always = yes }
+ icon = GFX_modifiers_SOV_civilian_labor_in_defense
+
+ state_resource_steel = iron_ore_scale
+}
+
+################################
+
+### ## ### # ## # # ###
+ # # # # # # # ## # # #
+ # # ## # #### # ## # #
+ # # # # # # # # # # #
+### ## ### ### # # # # ###
+
+################################
+
+ICE_the_icelandic_economy_modifier = {
+ enable = { always = yes }
+ icon = GFX_idea_tur_balkan_central_bank_wealthy_greece
+
+ research_speed_factor = ICE_economy_research_speed_factor
+ production_factory_max_efficiency_factor = ICE_economy_production_factory_max_efficiency_factor
+ production_speed_buildings_factor = ICE_economy_production_speed_buildings_factor
+ consumer_goods_factor = ICE_economy_consumer_goods_factor
+ industrial_capacity_dockyard = ICE_economy_industrial_capacity_dockyard
+ industrial_capacity_factory = ICE_economy_industrial_capacity_factory
+}
+
+ICE_transformation_of_nature_state_modifier = {
+ enable = { always = yes }
+ icon = GFX_modifiers_ETH_state_development #GFX_decision_generic_electricity
+
+ state_production_speed_buildings_factor = 0.15
+ state_resources_factor = 0.1
+ local_factories = 0.15
+}
+
+
+
+##################################################################
+##################################################################
+##################################################################
+
+ ## ## ####### ######## ## ## ### ## ##
+ ### ## ## ## ## ## ## ## ## ## ## ## ##
+ #### ## ## ## ## ## ## ## ## ## ## ####
+ ## ## ## ## ## ######## ## ## ## ## ## ##
+ ## #### ## ## ## ## ## ## ## ######### ##
+ ## ### ## ## ## ## ## ## ## ## ## ##
+ ## ## ####### ## ## ### ### ## ## ##
+
+##################################################################
+##################################################################
+##################################################################
+
+#### State Modifiers ####
+ ### Historical Democratic ###
+NOR_prep_resistance_dmod = {
+ enable = { always = yes }
+ icon = GFX_modifiers_generic_resistance
+ resistance_activity = 0.2
+ resistance_growth = 0.15
+ resistance_decay = -0.2
+}
+
+### Country Modifiers ###
+
+SF_PARA_dispersed_drop = {
+ enable = { always = yes }
+ icon = GFX_idea_generic_air_bonus
+}
+
+SF_PARA_combat_drop = {
+ enable = { always = yes }
+ icon = GFX_idea_air_support_focus
+}
+
+SWE_folkhemmet = {
+ enable = { always = yes }
+ icon = GFX_idea_SWE_folkhemmet
+
+ stability_factor = folkhemmet_stability
+ production_speed_industrial_complex_factor = folkhemmet_civ
+ production_speed_infrastructure_factor = folkhemmet_infra
+ war_support_factor = folkhemmet_war_support
+ production_speed_arms_factory_factor = folkhemmet_mil
+ production_speed_dockyard_factor = folkhemmet_dockyard
+}
+
+SWE_folkhemmet_communism = {
+ enable = { always = yes }
+ icon = GFX_idea_SWE_folkhemmet
+
+ stability_factor = folkhemmet_stability
+ production_speed_industrial_complex_factor = folkhemmet_civ
+ war_support_factor = folkhemmet_war_support
+ production_speed_arms_factory_factor = folkhemmet_mil
+ production_speed_dockyard_factor = folkhemmet_dockyard
+ production_factory_max_efficiency_factor = folkhemmet_max_cap
+ research_speed_factor = folkhemmet_research_speed
+}
+
+SWE_hygenic_housing_output_bonus = {
+ enable = { always = yes }
+ icon = GFX_modifiers_SWE_hygienic_housing
+ state_production_speed_industrial_complex_factor = 0.1
+}
+
+SWE_blown_up_mines = {
+ enable = { always = yes }
+ icon = GFX_modifiers_sabotaged_resource
+
+ state_resources_factor = -1
+}
+
+
+SWE_hygenic_housing_resource_bonus = {
+ enable = { always = yes }
+ icon = GFX_modifiers_SWE_hygienic_housing
+ local_resources_factor = 0.12
+
+}
+
+SWE_bus = { #The bus
+ icon = GFX_peace_conf_icons
+ army_defence_factor = 0.05
+}
+
+SWE_rationing_policies = { #
+ icon = GFX_idea_raj_risk_of_famine
+ base_fuel_gain_factor = SWE_rationing_fuel_gain
+ war_stability_factor = SWE_rationing_war_stability_factor
+ weekly_bombing_war_support = SWE_rationing_bombing_war_support
+ consumer_goods_factor = SWE_rationing_consumer_goods
+}
+
+SWE_ball_bearing_food_exchange = {
+ icon = GFX_idea_generic_agrarian_society
+ stability_factor = SWE_ball_bearing_food_exchange_stab_factor
+ weekly_manpower = SWE_ball_bearing_food_exchange_weekly_manpower
+}
+
+SWE_nordic_defense_council_military_overhead = {
+ icon = GFX_idea_chi_incompetent_officers
+ political_power_factor = SWE_nordic_defense_council_military_overhead_pp
+ command_abilities_cost_factor = SWE_nordic_defense_council_military_overhead_cp_ability_cost
+ command_power_gain_mult = SWE_nordic_defense_council_military_overhead_cp_gain
+ planning_speed = SWE_nordic_defense_council_military_overhead_planning_speed
+}
+
+SWE_neither_death_nor_dishonor = {
+ icon = GFX_idea_SWE_neither_death_nor_dishonor
+
+ army_core_defence_factor = SWE_nordic_defense_council_military_core_defense_factor
+ army_core_attack_factor = SWE_nordic_defense_council_military_core_attack_factor
+ industrial_capacity_factory = SWE_nordic_defense_council_factory_capacity_factor
+ industrial_capacity_dockyard = SWE_nordic_defense_council_dockyard_capacity_factor
+}
+
+SWE_the_cross_we_bear_idea = {
+ icon = GFX_focus_generic_scandinavian_alliance
+
+ org_loss_at_low_org_factor = SWE_cross_we_bear_org_loss_at_low_org_factor
+ org_loss_when_moving = SWE_cross_we_bear_org_loss_when_moving
+ special_forces_cap = SWE_cross_we_bear_org_special_forces_cap
+ coordination_bonus = SWE_cross_we_bear_coordination_bonus
+ army_morale_factor = SWE_cross_we_bear_army_morale_factor
+ conscription = SWE_cross_we_bear_conscription
+}
+
+SWE_royal_visit_modifier = { #From neutrality path
+ icon = GFX_modifiers_NOR_monarchism #Borrowing
+ local_manpower = 0.25
+}
+
+
+
+#################
+#################
+#### DENMARK ####
+#################
+#################
+
+#NATIONAL SPIRITS
+DEN_neglected_military_dynamic_modifier = {
+ enable = { always = yes }
+ icon = GFX_idea_generic_neglected_military
+
+ remove_trigger = {
+ check_variable = { DEN.DEN_neglected_military_mobilization_speed = 0 }
+ check_variable = { DEN.DEN_neglected_military_surrender_limit = 0 }
+ check_variable = { DEN.DEN_neglected_military_planning_speed = 0 }
+ }
+
+ mobilization_speed = DEN_neglected_military_mobilization_speed #-0.2
+ surrender_limit = DEN_neglected_military_surrender_limit #-0.2
+ planning_speed = DEN_neglected_military_planning_speed # -0.1
+}
+
+DEN_economic_crisis_dynamic_modifier = {
+ enable = { always = yes }
+ icon = GFX_idea_generic_economic_crisis
+
+ remove_trigger = {
+ check_variable = { DEN.DEN_economic_crisis_monthly_population = 0 }
+ check_variable = { DEN.DEN_economic_crisis_stability_weekly = 0 }
+ check_variable = { DEN.DEN_economic_crisis_neutrality_drift = 0 }
+ check_variable = { DEN.DEN_economic_crisis_democratic_drift = 0 }
+ }
+
+ monthly_population = DEN_economic_crisis_monthly_population #-0.1
+ stability_weekly = DEN_economic_crisis_stability_weekly #-0.001
+ neutrality_drift = DEN_economic_crisis_neutrality_drift #0.02
+ democratic_drift = DEN_economic_crisis_democratic_drift #-0.05
+}
+
+DEN_industrial_capability_dynamic_modifier = {
+ enable = { always = yes }
+ icon = GFX_idea_SOV_second_five_year_plan
+
+ local_resources_factor = DEN_industrial_capability_local_resources #0
+ consumer_goods_factor = DEN_industrial_capabilities_consumer_goods #0.3
+ global_building_slots_factor = DEN_industrial_capabilities_global_building_slots #0
+ line_change_production_efficiency_factor = DEN_industrial_capabilities_retention_efficiency #0
+ industrial_capacity_factory = DEN_industrial_capabilities_factory_output #-0.1
+ industrial_capacity_dockyard = DEN_industrial_capabilities_dockyard_output #-0.1
+ industry_repair_factor = DEN_industrial_capabilities_industry_repair #0
+ equipment_conversion_speed = DEN_industrial_capabilities_equipment_conversion #0
+ license_production_speed = DEN_industrial_capabilities_license_production #0
+ refit_speed = DEN_industrial_capabilities_refit_speed #0
+ repair_speed_factor = DEN_industrial_capabilities_ship_repair #0
+ min_export = DEN_industrial_capability_resources_to_market #0
+}
+
+DEN_industrial_capability_dynamic_modifier_improved = {
+ enable = { always = yes }
+ icon = GFX_idea_SOV_third_five_year_plan
+
+ local_resources_factor = DEN_industrial_capability_local_resources #0
+ consumer_goods_factor = DEN_industrial_capabilities_consumer_goods #0.3
+ global_building_slots_factor = DEN_industrial_capabilities_global_building_slots #0
+ line_change_production_efficiency_factor = DEN_industrial_capabilities_retention_efficiency #0
+ industrial_capacity_factory = DEN_industrial_capabilities_factory_output #-0.1
+ industrial_capacity_dockyard = DEN_industrial_capabilities_dockyard_output #-0.1
+ industry_repair_factor = DEN_industrial_capabilities_industry_repair #0
+ equipment_conversion_speed = DEN_industrial_capabilities_equipment_conversion #0
+ license_production_speed = DEN_industrial_capabilities_license_production #0
+ refit_speed = DEN_industrial_capabilities_refit_speed #0
+ repair_speed_factor = DEN_industrial_capabilities_ship_repair #0
+ min_export = DEN_industrial_capability_resources_to_market #0
+}
+
+DEN_industrial_capability_dynamic_modifier_max_improved = {
+ enable = { always = yes }
+ icon = GFX_idea_generic_improved_industries
+
+ local_resources_factor = DEN_industrial_capability_local_resources #0
+ consumer_goods_factor = DEN_industrial_capabilities_consumer_goods #0.3
+ global_building_slots_factor = DEN_industrial_capabilities_global_building_slots #0
+ line_change_production_efficiency_factor = DEN_industrial_capabilities_retention_efficiency #0
+ industrial_capacity_factory = DEN_industrial_capabilities_factory_output #-0.1
+ industrial_capacity_dockyard = DEN_industrial_capabilities_dockyard_output #-0.1
+ industry_repair_factor = DEN_industrial_capabilities_industry_repair #0
+ equipment_conversion_speed = DEN_industrial_capabilities_equipment_conversion #0
+ license_production_speed = DEN_industrial_capabilities_license_production #0
+ refit_speed = DEN_industrial_capabilities_refit_speed #0
+ repair_speed_factor = DEN_industrial_capabilities_ship_repair #0
+ min_export = DEN_industrial_capability_resources_to_market #0
+}
+
+DEN_industrial_capability_dynamic_modifier_light_regulation = {
+ enable = { always = yes }
+ icon = GFX_idea_SOV_second_five_year_plan
+
+ custom_modifier_tooltip = DEN_industrial_research_bonus_tt
+ local_resources_factor = DEN_industrial_capability_local_resources #0
+ consumer_goods_factor = DEN_industrial_capabilities_consumer_goods #0.3
+ global_building_slots_factor = DEN_industrial_capabilities_global_building_slots #0
+ line_change_production_efficiency_factor = DEN_industrial_capabilities_retention_efficiency #0
+ industrial_capacity_factory = DEN_industrial_capabilities_factory_output #-0.1
+ industrial_capacity_dockyard = DEN_industrial_capabilities_dockyard_output #-0.1
+ industry_repair_factor = DEN_industrial_capabilities_industry_repair #0
+ equipment_conversion_speed = DEN_industrial_capabilities_equipment_conversion #0
+ license_production_speed = DEN_industrial_capabilities_license_production #0
+ refit_speed = DEN_industrial_capabilities_refit_speed #0
+ repair_speed_factor = DEN_industrial_capabilities_ship_repair #0
+ min_export = DEN_industrial_capability_resources_to_market #0
+}
+
+DEN_industrial_capability_dynamic_modifier_light_regulation_improved = {
+ enable = { always = yes }
+ icon = GFX_idea_SOV_third_five_year_plan
+
+ custom_modifier_tooltip = DEN_industrial_research_bonus_tt
+ local_resources_factor = DEN_industrial_capability_local_resources #0
+ consumer_goods_factor = DEN_industrial_capabilities_consumer_goods #0.3
+ global_building_slots_factor = DEN_industrial_capabilities_global_building_slots #0
+ line_change_production_efficiency_factor = DEN_industrial_capabilities_retention_efficiency #0
+ industrial_capacity_factory = DEN_industrial_capabilities_factory_output #-0.1
+ industrial_capacity_dockyard = DEN_industrial_capabilities_dockyard_output #-0.1
+ industry_repair_factor = DEN_industrial_capabilities_industry_repair #0
+ equipment_conversion_speed = DEN_industrial_capabilities_equipment_conversion #0
+ license_production_speed = DEN_industrial_capabilities_license_production #0
+ refit_speed = DEN_industrial_capabilities_refit_speed #0
+ repair_speed_factor = DEN_industrial_capabilities_ship_repair #0
+ min_export = DEN_industrial_capability_resources_to_market #0
+}
+
+DEN_industrial_capability_dynamic_modifier_light_regulation_max_improved = {
+ enable = { always = yes }
+ icon = GFX_idea_generic_improved_industries
+
+ custom_modifier_tooltip = DEN_industrial_research_bonus_tt
+ local_resources_factor = DEN_industrial_capability_local_resources #0
+ consumer_goods_factor = DEN_industrial_capabilities_consumer_goods #0.3
+ global_building_slots_factor = DEN_industrial_capabilities_global_building_slots #0
+ line_change_production_efficiency_factor = DEN_industrial_capabilities_retention_efficiency #0
+ industrial_capacity_factory = DEN_industrial_capabilities_factory_output #-0.1
+ industrial_capacity_dockyard = DEN_industrial_capabilities_dockyard_output #-0.1
+ industry_repair_factor = DEN_industrial_capabilities_industry_repair #0
+ equipment_conversion_speed = DEN_industrial_capabilities_equipment_conversion #0
+ license_production_speed = DEN_industrial_capabilities_license_production #0
+ refit_speed = DEN_industrial_capabilities_refit_speed #0
+ repair_speed_factor = DEN_industrial_capabilities_ship_repair #0
+ min_export = DEN_industrial_capability_resources_to_market #0
+}
+
+DEN_war_preparations_dynamic_modifier = {
+ enable = { always = yes }
+ icon = GFX_idea_generic_stockpile_preparation
+
+ production_lack_of_resource_penalty_factor = DEN_war_preparations_lack_of_resource_penalty #0
+ defensive_war_stability_factor = DEN_war_preparations_defensive_war_stability
+ fuel_gain_factor = DEN_war_preparations_fuel_gain #0
+ max_fuel_factor = DEN_war_preparations_max_fuel #0
+ civilian_intel_to_others = DEN_war_preparations_civilian_intel_to_others
+ army_intel_to_others = DEN_war_preparations_army_intel_to_others
+ navy_intel_to_others = DEN_war_preparations_navy_intel_to_others
+ weekly_casualties_war_support = DEN_war_preparations_weekly_casualties_war_support
+ weekly_convoys_war_support = DEN_war_preparations_weekly_convoys_war_support
+ weekly_bombing_war_support = DEN_war_preparations_weekly_bombing_war_support
+ production_speed_fuel_silo_factor = DEN_war_preparations_fuel_silo_speed #0
+ offensive_war_stability_factor = DEN_war_preparations_offensive_war_stability
+}
+
+DEN_political_edicts_dynamic_modifier = {
+ enable = { always = yes }
+ icon = GFX_idea_generic_constitutional_guarantees
+
+ remove_trigger = {
+ check_variable = { DEN_political_edicts_drift_defence_factor = 0 }
+ check_variable = { DEN_political_edicts_conscription_factor = 0 }
+ check_variable = { DEN_political_edicts_operative_slot = 0 }
+ }
+
+ drift_defence_factor = DEN_political_edicts_drift_defence_factor #0
+ conscription_factor = DEN_political_edicts_conscription_factor #0
+ operative_slot = DEN_political_edicts_operative_slot #0
+}
+
+DEN_occupation_laws_dynamic_modifier = {
+ enable = { always = yes }
+ icon = GFX_idea_DEN_occupation_laws
+
+ remove_trigger = {
+ is_subject = no
+ }
+
+ cic_to_overlord_factor = DEN_occupation_laws_cic_to_overlord
+ mic_to_overlord_factor = DEN_occupation_laws_mic_to_overlord
+ autonomy_manpower_share = DEN_occupation_laws_autonomy_manpower_share
+ master_ideology_drift = DEN_occupation_laws_master_ideology_drift
+ autonomy_gain = DEN_occupation_laws_autonomy_gain
+}
+
+DEN_resistance_dynamic_modifier = { #Make sure to change all effects for both versions
+ enable = { always = yes }
+ icon = GFX_idea_DEN_resistance
+
+ air_mission_efficiency = DEN_resistance_air_mission_efficiency
+ weekly_manpower = DEN_resistance_weekly_manpower
+ mobilization_speed = DEN_resistance_mobilization_speed
+ air_attack_factor = DEN_resistance_air_attack_factor
+ air_agility_factor = DEN_resistance_air_agility_factor
+ air_home_defence_factor = DEN_resistance_air_home_defence
+ power_balance_weekly = DEN_resistance_power_balance_weekly
+ naval_damage_factor = DEN_resistance_naval_damage
+ naval_defense_factor = DEN_resistance_naval_defense
+ naval_enemy_fleet_size_ratio_penalty_factor = DEN_resistance_enemy_fleet_size_ratio_penalty
+ resistance_target_on_our_occupied_states = DEN_resistance_target_on_our_occupied_states
+ compliance_growth_on_our_occupied_states = DEN_resistance_compliance_growth_on_our_occupied_states
+ resistance_damage_to_garrison_on_our_occupied_states = DEN_resistance_damage_to_garrison_on_our_occupied_states
+}
+
+DEN_resistance_dynamic_modifier_improved = { #Make sure to change all effects for both versions
+ enable = { always = yes }
+ icon = GFX_idea_DEN_resistance
+
+ custom_modifier_tooltip = DEN_targeted_attack_and_defense_tt #for targeted_modifier when it works
+
+ air_mission_efficiency = DEN_resistance_air_mission_efficiency
+ weekly_manpower = DEN_resistance_weekly_manpower
+ mobilization_speed = DEN_resistance_mobilization_speed
+ air_attack_factor = DEN_resistance_air_attack_factor
+ air_agility_factor = DEN_resistance_air_agility_factor
+ air_home_defence_factor = DEN_resistance_air_home_defence
+ power_balance_weekly = DEN_resistance_power_balance_weekly
+ naval_damage_factor = DEN_resistance_naval_damage
+ naval_defense_factor = DEN_resistance_naval_defense
+ naval_enemy_fleet_size_ratio_penalty_factor = DEN_resistance_enemy_fleet_size_ratio_penalty
+ resistance_target_on_our_occupied_states = DEN_resistance_target_on_our_occupied_states
+ compliance_growth_on_our_occupied_states = DEN_resistance_compliance_growth_on_our_occupied_states
+ resistance_damage_to_garrison_on_our_occupied_states = DEN_resistance_damage_to_garrison_on_our_occupied_states
+}
+
+DEN_haeren_dynamic_modifier = { #Make sure to change all effects for all 3 versions
+ enable = { always = yes }
+ icon = GFX_idea_DEN_haeren_1
+
+ army_attack_against_minor_factor = DEN_haeren_army_attack_against_minor
+ army_speed_factor = DEN_haeren_army_speed
+ army_org_factor = DEN_haeren_army_org
+ org_loss_when_moving = DEN_haeren_org_loss_when_moving
+ army_attack_factor = DEN_haeren_army_attack
+ army_defence_factor = DEN_haeren_army_defence
+ army_core_attack_factor = DEN_haeren_army_core_attack
+ army_core_defence_factor = DEN_haeren_army_core_defence
+ army_armor_attack_factor = DEN_haeren_army_armor_attack
+ army_armor_defence_factor = DEN_haeren_army_armor_defence
+ army_artillery_defence_factor = DEN_haeren_army_artillery_defence
+ army_artillery_attack_factor = DEN_haeren_army_artillery_attack
+ army_attack_against_major_factor = DEN_haeren_army_attack_against_major
+ army_defence_against_major_factor = DEN_haeren_army_defence_against_major
+}
+DEN_haeren_dynamic_modifier_improved = { #Make sure to change all effects for all 3 versions
+ enable = { always = yes }
+ icon = GFX_idea_DEN_haeren_2
+
+ army_attack_against_minor_factor = DEN_haeren_army_attack_against_minor
+ army_speed_factor = DEN_haeren_army_speed
+ army_org_factor = DEN_haeren_army_org
+ org_loss_when_moving = DEN_haeren_org_loss_when_moving
+ army_attack_factor = DEN_haeren_army_attack
+ army_defence_factor = DEN_haeren_army_defence
+ army_core_attack_factor = DEN_haeren_army_core_attack
+ army_core_defence_factor = DEN_haeren_army_core_defence
+ army_armor_attack_factor = DEN_haeren_army_armor_attack
+ army_armor_defence_factor = DEN_haeren_army_armor_defence
+ army_artillery_defence_factor = DEN_haeren_army_artillery_defence
+ army_artillery_attack_factor = DEN_haeren_army_artillery_attack
+ army_attack_against_major_factor = DEN_haeren_army_attack_against_major
+ army_defence_against_major_factor = DEN_haeren_army_defence_against_major
+}
+DEN_haeren_dynamic_modifier_max_improved = { #Make sure to change all effects for all 3 versions
+ enable = { always = yes }
+ icon = GFX_idea_DEN_haeren_3
+
+ army_attack_against_minor_factor = DEN_haeren_army_attack_against_minor
+ army_speed_factor = DEN_haeren_army_speed
+ army_org_factor = DEN_haeren_army_org
+ org_loss_when_moving = DEN_haeren_org_loss_when_moving
+ army_attack_factor = DEN_haeren_army_attack
+ army_defence_factor = DEN_haeren_army_defence
+ army_core_attack_factor = DEN_haeren_army_core_attack
+ army_core_defence_factor = DEN_haeren_army_core_defence
+ army_armor_attack_factor = DEN_haeren_army_armor_attack
+ army_armor_defence_factor = DEN_haeren_army_armor_defence
+ army_artillery_defence_factor = DEN_haeren_army_artillery_defence
+ army_artillery_attack_factor = DEN_haeren_army_artillery_attack
+ army_attack_against_major_factor = DEN_haeren_army_attack_against_major
+ army_defence_against_major_factor = DEN_haeren_army_defence_against_major
+}
+
+DEN_sovaernet_dynamic_modifier = { #Make sure to change all effects for all 3 versions
+ enable = { always = yes }
+ icon = GFX_idea_DEN_sovaernet_1
+
+ naval_coordination = DEN_sovaernet_naval_coordination
+ naval_detection = DEN_sovaernet_naval_detection
+ navy_org_factor = DEN_sovaernet_navy_org
+ naval_morale_factor = DEN_sovaernet_naval_morale
+ navy_anti_air_attack_factor = DEN_sovaernet_navy_anti_air
+ navy_capital_ship_defence_factor = DEN_sovaernet_capital_ship_defence
+ navy_screen_attack_factor = DEN_sovaernet_navy_screen_attack
+ navy_screen_defence_factor = DEN_sovaernet_navy_screen_defence
+ naval_accidents_chance = DEN_sovaernet_naval_accidents
+ screening_efficiency = DEN_sovaernet_screening_efficiency
+ positioning = DEN_sovaernet_positioning
+ naval_critical_score_chance_factor = DEN_sovaernet_naval_critical_score_chance
+}
+DEN_sovaernet_dynamic_modifier_improved = { #Make sure to change all effects for all 3 versions
+ enable = { always = yes }
+ icon = GFX_idea_DEN_sovaernet_2
+
+ naval_coordination = DEN_sovaernet_naval_coordination
+ naval_detection = DEN_sovaernet_naval_detection
+ navy_org_factor = DEN_sovaernet_navy_org
+ naval_morale_factor = DEN_sovaernet_naval_morale
+ navy_anti_air_attack_factor = DEN_sovaernet_navy_anti_air
+ navy_capital_ship_defence_factor = DEN_sovaernet_capital_ship_defence
+ navy_screen_attack_factor = DEN_sovaernet_navy_screen_attack
+ navy_screen_defence_factor = DEN_sovaernet_navy_screen_defence
+ naval_accidents_chance = DEN_sovaernet_naval_accidents
+ screening_efficiency = DEN_sovaernet_screening_efficiency
+ positioning = DEN_sovaernet_positioning
+ naval_critical_score_chance_factor = DEN_sovaernet_naval_critical_score_chance
+}
+DEN_sovaernet_dynamic_modifier_max_improved = { #Make sure to change all effects for all 3 versions
+ enable = { always = yes }
+ icon = GFX_idea_DEN_sovaernet_3
+
+ naval_coordination = DEN_sovaernet_naval_coordination
+ naval_detection = DEN_sovaernet_naval_detection
+ navy_org_factor = DEN_sovaernet_navy_org
+ naval_morale_factor = DEN_sovaernet_naval_morale
+ navy_anti_air_attack_factor = DEN_sovaernet_navy_anti_air
+ navy_capital_ship_defence_factor = DEN_sovaernet_capital_ship_defence
+ navy_screen_attack_factor = DEN_sovaernet_navy_screen_attack
+ navy_screen_defence_factor = DEN_sovaernet_navy_screen_defence
+ naval_accidents_chance = DEN_sovaernet_naval_accidents
+ screening_efficiency = DEN_sovaernet_screening_efficiency
+ positioning = DEN_sovaernet_positioning
+ naval_critical_score_chance_factor = DEN_sovaernet_naval_critical_score_chance
+}
+
+DEN_flyvevabnet_dynamic_modifier = { #Make sure to change all effects for all 3 versions
+ enable = { always = yes }
+ icon = GFX_idea_DEN_flyvevabnet_1
+
+ air_bombing_targetting = DEN_flyvevabnet_air_bombing_targetting #bombers
+ air_ace_generation_chance_factor = DEN_flyvevabnet_ace_generation_chance #skolen
+ air_strategic_bomber_bombing_factor = DEN_flyvevabnet_strategic_bomber #bombers
+ air_escort_efficiency = DEN_flyvevabnet_escort_efficiency #fighter
+ air_intercept_efficiency = DEN_flyvevabnet_intercept_efficiency #fighter
+ air_cas_efficiency = DEN_flyvevabnet_cas_efficiency #cas
+ air_mission_efficiency = DEN_flyvevabnet_mission_efficiency #skolen
+ naval_strike_targetting_factor = DEN_flyvevabnet_naval_strike_targetting #naval
+ air_accidents_factor = DEN_flyvevabnet_air_accidents #kommando
+ air_agility_factor = DEN_flyvevabnet_air_agility #skolen
+ ground_attack_factor = DEN_flyvevabnet_ground_attack #cas
+ air_night_penalty = DEN_flyvevabnet_air_night_penalty #kommando
+ air_weather_penalty = DEN_flyvevabnet_air_weather_penalty #kommando
+}
+DEN_flyvevabnet_dynamic_modifier_improved = { #Make sure to change all effects for all 3 versions
+ enable = { always = yes }
+ icon = GFX_idea_DEN_flyvevabnet_2
+
+ air_bombing_targetting = DEN_flyvevabnet_air_bombing_targetting #bombers
+ air_ace_generation_chance_factor = DEN_flyvevabnet_ace_generation_chance #skolen
+ air_strategic_bomber_bombing_factor = DEN_flyvevabnet_strategic_bomber #bombers
+ air_escort_efficiency = DEN_flyvevabnet_escort_efficiency #fighter
+ air_intercept_efficiency = DEN_flyvevabnet_intercept_efficiency #fighter
+ air_cas_efficiency = DEN_flyvevabnet_cas_efficiency #cas
+ air_mission_efficiency = DEN_flyvevabnet_mission_efficiency #skolen
+ naval_strike_targetting_factor = DEN_flyvevabnet_naval_strike_targetting #naval
+ air_accidents_factor = DEN_flyvevabnet_air_accidents #kommando
+ air_agility_factor = DEN_flyvevabnet_air_agility #skolen
+ ground_attack_factor = DEN_flyvevabnet_ground_attack #cas
+ air_night_penalty = DEN_flyvevabnet_air_night_penalty #kommando
+ air_weather_penalty = DEN_flyvevabnet_air_weather_penalty #kommando
+}
+DEN_flyvevabnet_dynamic_modifier_max_improved = { #Make sure to change all effects for all 3 versions
+ enable = { always = yes }
+ icon = GFX_idea_DEN_flyvevabnet_3
+
+ air_bombing_targetting = DEN_flyvevabnet_air_bombing_targetting #bombers
+ air_ace_generation_chance_factor = DEN_flyvevabnet_ace_generation_chance #skolen
+ air_strategic_bomber_bombing_factor = DEN_flyvevabnet_strategic_bomber #bombers
+ air_escort_efficiency = DEN_flyvevabnet_escort_efficiency #fighter
+ air_intercept_efficiency = DEN_flyvevabnet_intercept_efficiency #fighter
+ air_cas_efficiency = DEN_flyvevabnet_cas_efficiency #cas
+ air_mission_efficiency = DEN_flyvevabnet_mission_efficiency #skolen
+ naval_strike_targetting_factor = DEN_flyvevabnet_naval_strike_targetting #naval
+ air_accidents_factor = DEN_flyvevabnet_air_accidents #kommando
+ air_agility_factor = DEN_flyvevabnet_air_agility #skolen
+ ground_attack_factor = DEN_flyvevabnet_ground_attack #cas
+ air_night_penalty = DEN_flyvevabnet_air_night_penalty #kommando
+ air_weather_penalty = DEN_flyvevabnet_air_weather_penalty #kommando
+}
+#### STATE MODIFIERS ####
+DEN_development_projects_state_modifier = {
+ enable = { always = yes }
+ icon = GFX_modifiers_ETH_state_development
+
+ remove_trigger = {
+ ROOT = { NOT = { is_core_of = ROOT.controller } } # ROOT refers to the state on which the modifier is added
+ }
+
+ state_production_speed_industrial_complex_factor = 0.15
+ state_production_speed_synthetic_refinery_factor = 0.15
+ state_production_speed_infrastructure_factor = 0.15
+ state_production_speed_rail_way_factor = 0.15
+ local_building_slots = 2
+}
+
+DEN_development_projects_mainland_state_modifier = {
+ enable = { always = yes }
+ icon = GFX_modifiers_ETH_state_development
+
+ remove_trigger = {
+ ROOT = { NOT = { is_core_of = ROOT.controller } } # ROOT refers to the state on which the modifier is added
+ }
+
+ state_production_speed_industrial_complex_factor = 0.1
+ state_production_speed_synthetic_refinery_factor = 0.1
+ state_production_speed_infrastructure_factor = 0.1
+ state_production_speed_rail_way_factor = 0.1
+ local_building_slots = 2
+}
+
+DEN_military_projects_state_modifier = {
+ enable = { always = yes }
+ icon = GFX_modifiers_generic_military_industry
+
+ remove_trigger = {
+ ROOT = { NOT = { is_core_of = ROOT.controller } } # ROOT refers to the state on which the modifier is added
+ }
+
+ state_production_speed_arms_factory_factor = 0.1
+ state_production_speed_dockyard_factor = 0.1
+ state_production_speed_air_base_factor = 0.1
+ state_production_speed_naval_base_factor = 0.1
+ state_production_speed_supply_node_factor = 0.1
+}
+
+DEN_home_guard_state_modifier = {
+ enable = { always = yes }
+ icon = GFX_modifiers_generic_military_plans #TODO_DANNE CHANGE!
+
+ remove_trigger = {
+ ROOT = { NOT = { is_core_of = ROOT.controller } } # ROOT refers to the state on which the modifier is added
+ }
+
+ army_core_attack_factor = 0.05
+ army_core_defence_factor = 0.1
+ dig_in_speed_factor = 0.2
+ max_dig_in_factor = 0.1
+ recon_factor = 0.1
+ enemy_army_speed_factor = -0.1
+ enemy_local_supplies = -0.1
+ enemy_attrition = 0.1
+}
+
+
+
+
+
+###################################################################################################
+###################################################################################################
+###################################################################################################
+
+######## #### ## ## ## ### ## ## ########
+## ## ### ## ## ## ## ### ## ## ##
+## ## #### ## ## ## ## #### ## ## ##
+###### ## ## ## ## ## ## ## ## ## ## ## ##
+## ## ## #### ## ######### ## #### ## ##
+## ## ## ### ## ## ## ## ### ## ##
+## #### ## ## ######## ## ## ## ## ########
+
+###################################################################################################
+###################################################################################################
+###################################################################################################
+
+
+#############################
+##### NATIONAL SPIRITS ######
+#############################
+
+
+FIN_finnish_army = {
+ enable = { always = yes }
+
+ icon = GFX_idea_FIN_finnish_army
+
+ experience_gain_army_factor = FIN_finnish_army_experience_gain_army_factor #0.05
+ land_reinforce_rate = FIN_finnish_army_land_reinforce_rate #0.05
+ acclimatization_cold_climate_gain_factor = FIN_finnish_army_acclimatization_cold_climate_gain_factor #0.05
+ army_spirit_category_type_cost_factor = FIN_finnish_army_army_spirit_category_type_cost_factor #-0.1
+
+ #LATER MODIFIERS
+ custom_modifier_tooltip = FIN_finnish_army_dynamic_modifier_tt #Bonuses applied via hidden NS or tech (molotov_cocktails_tech)
+ dig_in_speed_factor = FIN_finnish_army_dig_in_speed_factor #0.05
+ max_dig_in_factor = FIN_finnish_army_max_dig_in_factor #0.1
+ training_time_factor = FIN_finnish_army_training_time_factor #-0.1
+ mobilization_speed = FIN_finnish_army_mobilization_speed #0.1
+ conscription_factor = FIN_finnish_army_conscription_factor #0.1
+ cas_damage_reduction = FIN_finnish_army_cas_damage_reduction #0.15
+ winter_attrition_factor = FIN_finnish_army_winter_attrition_factor #-0.15
+ army_org_factor = FIN_finnish_army_army_org_factor #0.1
+ special_forces_cap = FIN_finnish_army_special_forces_cap #0.15
+ breakthrough_factor = FIN_finnish_army_breakthrough_factor #0.05
+ special_forces_out_of_supply_factor = FIN_finnish_army_special_forces_out_of_supply_factor #-0.1
+ equipment_capture_factor = FIN_finnish_army_equipment_capture_factor #0.3
+ equipment_conversion_speed = FIN_finnish_army_equipment_conversion_speed #0.3
+ production_lack_of_resource_penalty_factor = FIN_finnish_army_production_lack_of_resource_penalty_factor #-0.15
+ supply_combat_penalties_on_core_factor = FIN_finnish_army_supply_combat_penalties_on_core_factor #-0.15
+ org_loss_when_moving = FIN_finnish_army_org_loss_when_moving #-0.15
+ recon_factor_while_entrenched = FIN_finnish_army_recon_factor_while_entrenched #0.1
+ army_attack_speed_factor = FIN_finnish_army_army_attack_speed_factor #0.1
+ intel_from_combat_factor = FIN_finnish_army_intel_from_combat_factor #0.1
+ initiative_factor = FIN_finnish_army_initiative_factor #0.02
+ modifier_army_sub_unit_long_range_patrol_support_attack_factor = FIN_finnish_army_modifier_army_sub_unit_long_range_patrol_support_attack_factor
+ modifier_army_sub_unit_long_range_patrol_support_defence_factor = FIN_finnish_army_modifier_army_sub_unit_long_range_patrol_support_defence_factor
+}
+
+FIN_finnish_airforce = {
+ enable = { always = yes }
+
+ icon = GFX_idea_FIN_finnish_airforce #Needs to match any hidden NS associated to this, such as FIN_hidden_cas_production_ns, FIN_hidden_fighter_production_ns and FIN_hidden_naval_bomber_production_ns
+
+ experience_gain_air_factor = FIN_finnish_airforce_experience_gain_air_factor #0.05
+ air_weather_penalty = FIN_finnish_airforce_air_weather_penalty #-0.05
+ air_untrained_pilots_penalty_factor = FIN_finnish_airforce_air_untrained_pilots_penalty_factor #-0.2
+ air_spirit_category_type_cost_factor = FIN_finnish_airforce_air_spirit_category_type_cost_factor #-0.1
+
+ #LATER MODIFIERS
+ custom_modifier_tooltip = FIN_finnish_airforce_dynamic_modifier_tt #Bonuses applied via hidden NS (FIN_hidden_cas_production_ns, FIN_hidden_fighter_production_ns, FIN_hidden_naval_bomber_production_ns)
+ air_ace_generation_chance_factor = FIN_finnish_airforce_air_ace_generation_chance_factor #0.1
+ air_home_defence_factor = FIN_finnish_airforce_air_home_defence_factor #0.1
+ ace_effectiveness_factor = FIN_finnish_airforce_ace_effectiveness_factor #0.1
+ air_mission_efficiency = FIN_finnish_airforce_air_mission_efficiency #0.05
+ naval_strike_targetting_factor = FIN_finnish_airforce_naval_strike_targetting_factor #0.1
+ air_cas_efficiency = FIN_finnish_airforce_air_cas_efficiency #0.1
+ air_superiority_efficiency = FIN_finnish_airforce_air_superiority_efficiency #0.1
+}
+
+FIN_finnish_navy = {
+ enable = { always = yes }
+
+ icon = GFX_idea_FIN_finnish_navy #Needs to match any hidden NS associated to this, such as FIN_hidden_dd_and_coastal_defense_production_ns and FIN_hidden_dd_and_coastal_defense_production_ns_no_mtg
+
+ experience_gain_navy_factor = FIN_finnish_navy_experience_gain_navy_factor #0.05
+ mines_planting_by_fleets_factor = FIN_finnish_navy_mines_planting_by_fleets_factor #0.05
+ navy_anti_air_attack_factor = FIN_finnish_navy_navy_anti_air_attack_factor #0.05
+ navy_spirit_category_type_cost_factor = FIN_finnish_navy_navy_spirit_category_type_cost_factor #-0.1
+
+ #LATER MODIFIERS
+ custom_modifier_tooltip = FIN_finnish_navy_dynamic_modifier_tt #Bonuses applied via hidden NS (FIN_hidden_cas_production_ns, FIN_hidden_fighter_production_ns, FIN_hidden_naval_bomber_production_ns)
+ convoy_retreat_speed = FIN_finnish_navy_convoy_retreat_speed #0.1
+ refit_speed = FIN_finnish_navy_refit_speed #0.1
+ spotting_chance = FIN_finnish_navy_spotting_chance #0.05
+ repair_speed_factor = FIN_finnish_navy_repair_speed_factor #0.1
+ production_speed_dockyard_factor = FIN_finnish_navy_production_speed_dockyard_factor #0.1
+ industrial_capacity_dockyard = FIN_finnish_navy_industrial_capacity_dockyard #0.1
+ extra_marine_supply_grace = FIN_finnish_navy_extra_marine_supply_grace #48
+ naval_invasion_capacity = FIN_finnish_navy_naval_invasion_capacity #15
+ naval_mines_effect_reduction = FIN_finnish_navy_naval_mines_effect_reduction #0.15
+ experience_gain_navy_unit_factor = FIN_finnish_navy_experience_gain_navy_unit_factor #0.1
+ naval_coordination = FIN_finnish_navy_naval_coordination #0.05
+ naval_equipment_upgrade_xp_cost = FIN_finnish_navy_naval_equipment_upgrade_xp_cost #-0.1
+}
+
+FIN_fascist_regime = {
+ enable = { always = yes }
+
+ icon = GFX_idea_FIN_a_fascist_regime
+
+ war_support_factor = FIN_fascist_regime_war_support_factor #0.05
+ send_volunteer_size = FIN_fascist_regime_send_volunteer_size #3
+
+ #LATER MODIFIERS
+ army_org_factor = FIN_fascist_regime_army_org_factor #0.05
+ max_command_power = FIN_fascist_regime_max_command_power #25
+ special_forces_cap = FIN_fascist_regime_special_forces_cap #0.3
+ special_forces_no_supply_grace = FIN_fascist_regime_special_forces_no_supply_grace #24
+ special_forces_out_of_supply_factor = FIN_fascist_regime_special_forces_out_of_supply_factor #-0.15
+ special_forces_attack_factor = FIN_fascist_regime_special_forces_attack_factor #0.10
+ special_forces_training_time_factor = FIN_fascist_regime_special_forces_training_time_factor #0.2
+ justify_war_goal_time = FIN_fascist_regime_justify_war_goal_time # -0.35
+ military_industrial_organization_research_bonus = FIN_fascist_regime_military_industrial_organization_research_bonus #0.1
+ consumer_goods_factor = FIN_fasicst_regime_consumer_goods_factor #-0.1
+}
+
+
+############################
+##### STATE MODIFIERS ######
+############################
+
+FIN_mannerheim_line_expansion_modifier = {
+ enable = { always = yes }
+ icon = GFX_modifiers_SOV_civilian_labor_in_defense
+
+ remove_trigger = {
+ ROOT = { NOT = { is_core_of = ROOT.controller } } # ROOT refers to the state on which the modifier is added
+ }
+
+ army_core_defence_factor = 0.05
+ production_speed_bunker_factor = 0.1
+ production_speed_coastal_bunker_factor = 0.1
+ local_supplies = 0.1
+}
+
+FIN_motti_tactics_modifier = { #Gets removed via on_action
+ enable = { always = yes }
+ icon = GFX_modifiers_FIN_motti_tactics_modifier
+
+ army_speed_factor_for_controller = 0.15
+ attrition_for_controller = -0.1
+ local_supplies_for_controller = 0.15
+
+ equipment_capture_for_controller = 0.5
+ #equipment_capture_factor_for_controller = 0.1 #TODO_Manu: Potentially not necessary
+ enemy_army_speed_factor = -0.15
+ enemy_local_supplies = -0.15
+ enemy_attrition = 0.15
+ enemy_truck_attrition_factor = 0.15
+}
+
+FIN_weapon_caches_modifier = { #Gets removed via on_action
+ enable = { always = yes }
+ icon = GFX_modifiers_FIN_weapon_caches
+
+ starting_compliance = -0.5
+ resistance_decay = -0.5
+ resistance_target = 0.15
+ resistance_damage_to_garrison = 0.35
+ resistance_garrison_penetration_chance = 0.25
+ local_non_core_supply_impact_factor = 0.25
+}
+
+FIN_anti_soviet_sentiment = {
+ enable = { always = yes }
+ icon = GFX_modifiers_generic_fascist_corporatism
+
+ local_factory_sabotage = 0.1
+ local_manpower = -0.2
+ local_supplies = -0.2
+ state_resources_factor = -0.2
+}
+
+
+
+###########################################################
+###########################################################
+###########################################################
+
+ ## ## ####### ######## ######## #### ######
+ ### ## ## ## ## ## ## ## ## ## ##
+ #### ## ## ## ## ## ## ## ## ##
+ ## ## ## ## ## ######## ## ## ## ##
+ ## #### ## ## ## ## ## ## ## ##
+ ## ### ## ## ## ## ## ## ## ## ##
+ ## ## ####### ## ## ######## #### ######
+
+###########################################################
+###########################################################
+###########################################################
+
+############################
+##### STATE MODIFIERS ######
+############################
+
+NORDIC_efficient_resource_extraction = {
+ enable = { always = yes }
+ icon = GFX_modifiers_generic_construction
+
+ state_resources_factor = 0.1
+}
+
+NORDIC_military_industry_hub_leader_dmod = {
+ enable = { always = yes }
+ icon = GFX_modifiers_generic_military_industry
+
+ production_speed_arms_factory_factor = 0.3
+}
+
+NORDIC_military_industry_hub_member_dmod = {
+ enable = { always = yes }
+ icon = GFX_modifiers_generic_military_industry
+
+ production_speed_arms_factory_factor = 0.2
+}
\ No newline at end of file
diff --git a/data/blank_mod/common/dynamic_modifiers/bba_dynamic_modifiers.txt b/data/blank_mod/common/dynamic_modifiers/bba_dynamic_modifiers.txt
index d69d70b52d..3c189aae23 100644
--- a/data/blank_mod/common/dynamic_modifiers/bba_dynamic_modifiers.txt
+++ b/data/blank_mod/common/dynamic_modifiers/bba_dynamic_modifiers.txt
@@ -1258,12 +1258,12 @@ ITA_anti_colonialism_sentiment = {
ITA_novus_ordo_modifier = {
enable = { always = yes }
- icon = modifiers_generic_military_industry
+ icon = GFX_modifiers_generic_military_industry
local_non_core_manpower = 0.25
local_resources_factor = 0.15
compliance_growth = 0.1
resistance_decay = 0.05
- production_speed_arms_factory_factor = 0.2
+ state_production_speed_arms_factory_factor = 0.2
local_factories = 0.5
}
diff --git a/data/blank_mod/common/ideas/_economic.txt b/data/blank_mod/common/ideas/_economic.txt
index 7430299c59..70b1c43677 100644
--- a/data/blank_mod/common/ideas/_economic.txt
+++ b/data/blank_mod/common/ideas/_economic.txt
@@ -13,7 +13,7 @@ ideas = {
removal_cost = -1
modifier = {
- consumer_goods_factor = 0.50
+ consumer_goods_expected_value = 0.50
production_speed_industrial_complex_factor = -0.5
production_speed_arms_factory_factor = -0.5
production_speed_dockyard_factor = -0.5
@@ -47,7 +47,7 @@ ideas = {
removal_cost = -1
modifier = {
- consumer_goods_factor = 0.4
+ consumer_goods_expected_value = 0.4
production_speed_industrial_complex_factor = -0.4
production_speed_arms_factory_factor = -0.4
production_speed_dockyard_factor = -0.4
@@ -55,6 +55,7 @@ ideas = {
conversion_cost_mil_to_civ_factor = 0.4
generate_wargoal_tension = 1.00
join_faction_tension = 0.20
+ lend_lease_tension = 0.10
send_volunteers_tension = 0.20
guarantee_tension = 0.5
max_fuel_factor = -0.35
@@ -78,7 +79,7 @@ ideas = {
removal_cost = -1
modifier = {
- consumer_goods_factor = 0.35
+ consumer_goods_expected_value = 0.35
production_speed_industrial_complex_factor = -0.3
production_speed_arms_factory_factor = -0.3
conversion_cost_civ_to_mil_factor= 0.3
@@ -104,7 +105,7 @@ ideas = {
removal_cost = -1
modifier = {
- consumer_goods_factor = 0.3
+ consumer_goods_expected_value = 0.3
production_speed_industrial_complex_factor = -0.1
production_speed_arms_factory_factor = -0.1
fuel_gain_factor = -0.25
@@ -137,7 +138,7 @@ ideas = {
removal_cost = -1
modifier = {
- consumer_goods_factor = 0.25
+ consumer_goods_expected_value = 0.25
production_speed_arms_factory_factor = 0.1
conversion_cost_civ_to_mil_factor= -0.1
conversion_cost_mil_to_civ_factor = -0.1
@@ -182,7 +183,7 @@ ideas = {
removal_cost = -1
modifier = {
- consumer_goods_factor = 0.2
+ consumer_goods_expected_value = 0.2
production_speed_arms_factory_factor = 0.2
conversion_cost_civ_to_mil_factor= -0.2
conversion_cost_mil_to_civ_factor = -0.2
@@ -270,7 +271,7 @@ ideas = {
removal_cost = -1
modifier = {
- consumer_goods_factor = 0.10
+ consumer_goods_expected_value = 0.10
conscription = -0.03
production_speed_arms_factory_factor = 0.3
conversion_cost_civ_to_mil_factor= -0.3
@@ -298,6 +299,7 @@ ideas = {
research_speed_factor = 0.10
civilian_intel_to_others = 40.0
navy_intel_to_others = 20.0
+ cic_construction_boost_factor = 0.05
}
cancel_if_invalid = no
@@ -324,6 +326,7 @@ ideas = {
research_speed_factor = 0.05
civilian_intel_to_others = 20.0
navy_intel_to_others = 10.0
+ cic_construction_boost_factor = 0.1
}
default = yes
@@ -359,36 +362,14 @@ ideas = {
research_speed_factor = 0.01
civilian_intel_to_others = 10.0
navy_intel_to_others = 5
+ lend_lease_tension = 0.20
+ cic_construction_boost = -0.05
}
cancel_if_invalid = no
ai_will_do = {
- factor = 1
-
- modifier = {
- add = -1
-
- is_major = no
- is_in_faction = yes
- has_war = yes
- }
-
- # minors not at war should want to get the bonuses from free trade
- modifier = {
- add = -1
-
- is_major = no
- has_war = no
- }
-
- modifier = {
- add = 1500
-
- # revert from closed_economy if we have large allies
- has_idea = closed_economy
- has_large_ally_not_pick_closed_economy = yes
- }
+ # set in code
}
}
@@ -404,16 +385,19 @@ ideas = {
}
}
+ rule = {
+ can_access_market = no
+ desc = can_not_access_market_closed_economy
+ }
+
cost = 150
removal_cost = -1
modifier = {
min_export = 0
#civilian_intel_to_others = 0.0
- }
-
- on_add = {
- custom_effect_tooltip = closed_economy_TT
+ lend_lease_tension = 0.40
+ cic_construction_boost = -0.1
}
cancel_if_invalid = no
diff --git a/data/blank_mod/common/ideas/_event.txt b/data/blank_mod/common/ideas/_event.txt
index 963318eae7..ef5bdbb8e3 100644
--- a/data/blank_mod/common/ideas/_event.txt
+++ b/data/blank_mod/common/ideas/_event.txt
@@ -1,5 +1,20 @@
ideas = {
-
+ hidden_ideas = {
+ GEN_cheaper_amphib = {
+ allowed = {
+ always = no # Triggered via tech
+ }
+ picture = generic_fascism_drift_bonus
+ equipment_bonus = {
+ amphibious_mechanized_equipment = {
+ build_cost_ic = -0.15 instant = yes
+ }
+ }
+ ai_will_do = {
+ factor = 0
+ }
+ }
+ }
country = {
fascist_revolutionaries = {
diff --git a/data/blank_mod/common/ideas/_manpower.txt b/data/blank_mod/common/ideas/_manpower.txt
index dfbb29b3ca..1f77f39780 100644
--- a/data/blank_mod/common/ideas/_manpower.txt
+++ b/data/blank_mod/common/ideas/_manpower.txt
@@ -78,7 +78,7 @@ ideas = {
modifier = {
#Prio if low on manpower
factor = 20
- manpower_per_military_factory < 1000
+ manpower_per_military_factory < 2000
}
modifier = {
factor = 0
diff --git a/data/blank_mod/common/ideas/air_spirits.txt b/data/blank_mod/common/ideas/air_spirits.txt
index cc4677c10e..ace0f87d1c 100644
--- a/data/blank_mod/common/ideas/air_spirits.txt
+++ b/data/blank_mod/common/ideas/air_spirits.txt
@@ -2,7 +2,6 @@ ideas = {
air_force_spirit = {
independent_air_force_spirit = {
ledger = air
- available = { has_air_academy = yes }
modifier = {
air_advisor_cost_factor = -0.75
}
@@ -17,7 +16,6 @@ ideas = {
industrial_destruction_spirit = {
ledger = air
visible = { has_tech = air_superiority }
- available = { has_air_academy = yes }
research_bonus = {
heavy_air = 0.05
}
@@ -37,7 +35,6 @@ ideas = {
dive_bombing_spirit = {
ledger = air
visible = { has_tech = formation_flying }
- available = { has_air_academy = yes }
research_bonus = {
cas_bomber = 0.05
}
@@ -58,7 +55,6 @@ ideas = {
material_destruction_spirit = {
ledger = air
visible = { has_tech = force_rotation }
- available = { has_air_academy = yes }
research_bonus = {
tactical_bomber = 0.05
}
@@ -77,12 +73,10 @@ ideas = {
}
industry_liasons_spirit = {
ledger = air
- available = { has_air_academy = yes }
research_bonus = {
light_air = 0.15
medium_air = 0.15
heavy_air = 0.15
- naval_air = 0.15
}
ai_will_do = {
factor = 1
@@ -95,7 +89,6 @@ ideas = {
effective_training_programs_spirit = {
ledger = air
- available = { has_air_academy = yes }
modifier = {
air_training_xp_gain_factor = 0.25
}
@@ -109,7 +102,6 @@ ideas = {
}
branch_independence_spirit = {
ledger = air
- available = { has_air_academy = yes }
modifier = {
experience_gain_air = 0.1
airforce_intel_to_others = -5
@@ -124,7 +116,6 @@ ideas = {
}
air_crew_surveys_spirit = {
ledger = air
- available = { has_air_academy = yes }
modifier = {
air_doctrine_cost_factor = -0.15
air_accidents_factor = -0.25
@@ -142,7 +133,6 @@ ideas = {
air_force_command_spirit = {
battlefield_air_interdiction_spirit = {
ledger = air
- available = { has_air_force_command = yes }
modifier = {
ground_attack_factor = 0.05
air_escort_efficiency = 0.05
@@ -171,7 +161,6 @@ ideas = {
}
veteran_air_instructors_spirit = {
ledger = air
- available = { has_air_force_command = yes }
modifier = {
air_wing_xp_loss_when_killed_factor = -0.25
}
@@ -185,7 +174,6 @@ ideas = {
}
centralized_control_spirit = {
ledger = air
- available = { has_air_force_command = yes }
modifier = {
air_superiority_detect_factor = 0.1
air_mission_efficiency = 0.1
@@ -198,24 +186,8 @@ ideas = {
}
}
}
- steel_wings_steel_hearts_spirit = {
- ledger = air
- visible = { has_government = communism }
- available = { has_air_force_command = yes }
- modifier = {
- air_untrained_pilots_penalty_factor = -0.33
- }
- ai_will_do = {
- factor = 1
- modifier = {
- factor = 0
- NOT = { has_dlc = "No Step Back" }
- }
- }
- }
home_defence_spirit = {
ledger = air
- available = { has_air_force_command = yes }
modifier = {
ace_effectiveness_factor = 0.5
}
@@ -229,7 +201,6 @@ ideas = {
}
air_power_projection_spirit = {
ledger = air
- available = { has_air_force_command = yes }
modifier = {
air_power_projection_factor = 0.1
}
@@ -243,7 +214,6 @@ ideas = {
}
massed_strike_spirit = {
ledger = air
- available = { has_air_force_command = yes }
visible = { has_tech = force_rotation }
modifier = {
army_bonus_air_superiority_factor = 0.05
@@ -258,7 +228,6 @@ ideas = {
}
continuous_strike_spirit = {
ledger = air
- available = { has_air_force_command = yes }
visible = { has_tech = formation_flying }
modifier = {
air_cas_efficiency = 0.25
@@ -273,7 +242,6 @@ ideas = {
}
strategic_strike_spirit = {
ledger = air
- available = { has_air_force_command = yes }
visible = { has_tech = air_superiority }
modifier = {
air_strategic_bomber_bombing_factor = 0.1
diff --git a/data/blank_mod/common/ideas/army_spirits.txt b/data/blank_mod/common/ideas/army_spirits.txt
index 17c675ca49..e035e60f7f 100644
--- a/data/blank_mod/common/ideas/army_spirits.txt
+++ b/data/blank_mod/common/ideas/army_spirits.txt
@@ -3,7 +3,6 @@ ideas = {
bold_attack_spirit = {
ledger = army
- available = { has_military_academy = yes }
modifier = {
custom_modifier_tooltip = bold_attack_spirit_tt
}
@@ -17,7 +16,6 @@ ideas = {
}
tenacious_defense_spirit = {
ledger = army
- available = { has_military_academy = yes }
modifier = {
custom_modifier_tooltip = tenacious_defense_spirit_tt
}
@@ -31,7 +29,6 @@ ideas = {
}
meticulous_preparation_spirit = {
ledger = army
- available = { has_military_academy = yes }
modifier = {
custom_modifier_tooltip = meticulous_preparation_spirit_tt
}
@@ -43,92 +40,8 @@ ideas = {
}
}
}
- best_of_the_best_spirit = {
- ledger = army
- available = { has_military_academy = yes }
- visible = {
- has_government = democratic
- }
- modifier = {
- army_leader_start_level = 2
- army_intel_to_others = -5.0
- custom_modifier_tooltip = best_of_the_best_spirit_tt
- }
- ai_will_do = {
- base = 1
-
- modifier = {
- factor = 0
- NOT = { has_dlc = "No Step Back" }
- }
-
- modifier = {
- factor = 2
- has_government = democratic
- }
- }
-
- }
- academy_scholarships_spirit = {
- ledger = army
- available = { has_military_academy = yes }
- visible = {
- has_government = communism
- }
- modifier = {
- army_leader_start_level = 1
- army_leader_cost_factor = -0.3
- unit_leader_as_advisor_cp_cost_factor = -0.75
- custom_modifier_tooltip = academy_scholarships_spirit_tt
- }
- ai_will_do = {
- base = 1
-
- modifier = {
- factor = 0
- NOT = { has_dlc = "No Step Back" }
- }
-
- modifier = {
- factor = 2
- has_government = communism
- }
- }
- }
- political_loyalty_spirit = {
- ledger = army
- available = { has_military_academy = yes }
- visible = {
- OR = {
- has_government = fascism
- has_government = neutrality
- }
- }
- modifier = {
- military_leader_cost_factor = -0.5
- party_popularity_stability_factor = 0.15
- custom_modifier_tooltip = political_loyalty_spirit_tt
- }
- ai_will_do = {
- base = 1
-
- modifier = {
- factor = 0
- NOT = { has_dlc = "No Step Back" }
- }
-
- modifier = {
- factor = 2
- OR = {
- has_government = fascism
- has_government = neutrality
- }
- }
- }
- }
inventive_leadership_spirit = {
ledger = army
- available = { has_military_academy = yes }
modifier = {
custom_modifier_tooltip = inventive_leadership_spirit_tt
trait_naval_invader_xp_gain_factor = 0.2
@@ -145,7 +58,6 @@ ideas = {
}
mobile_warfare_academy_spirit = {
ledger = army
- available = { has_military_academy = yes }
visible = { has_tech = mobile_warfare }
modifier = {
custom_modifier_tooltip = mobile_warfare_academy_spirit_tt
@@ -167,7 +79,6 @@ ideas = {
}
superior_firepower_academy_spirit = {
ledger = army
- available = { has_military_academy = yes }
visible = { has_tech = superior_firepower }
modifier = {
custom_modifier_tooltip = superior_firepower_academy_spirit_tt
@@ -190,7 +101,6 @@ ideas = {
}
theatre_training_spirit = {
ledger = army
- available = { has_military_academy = yes }
visible = { has_tech = trench_warfare }
modifier = {
custom_modifier_tooltip = theatre_training_academy_spirit_tt
@@ -212,7 +122,6 @@ ideas = {
}
mass_assault_academy_spirit = {
ledger = army
- available = { has_military_academy = yes }
visible = { has_tech = mass_assault }
modifier = {
custom_modifier_tooltip = mass_assault_academy_spirit_tt
@@ -414,13 +323,12 @@ ideas = {
visible = { has_tech = trench_warfare }
ledger = army
modifier = {
- unit_marine_design_cost_factor = -1
- unit_mountaineers_design_cost_factor = -1
- unit_paratrooper_design_cost_factor = -1
- naval_invasion_capacity = 10
+ unit_marine_design_cost_factor = -0.5
+ unit_mountaineers_design_cost_factor = -0.5
+ unit_paratrooper_design_cost_factor = -0.5
+ special_forces_cap_flat = 24
extra_paratrooper_supply_grace = 24
extra_marine_supply_grace = 24
- naval_invasion_planning_bonus_speed = 0.2
}
ai_will_do = {
base = 1
diff --git a/data/blank_mod/common/ideas/iceland.txt b/data/blank_mod/common/ideas/iceland.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/ideas/navy_spirits.txt b/data/blank_mod/common/ideas/navy_spirits.txt
index e5d092ec32..3ec5fd8d2f 100644
--- a/data/blank_mod/common/ideas/navy_spirits.txt
+++ b/data/blank_mod/common/ideas/navy_spirits.txt
@@ -2,7 +2,6 @@ ideas = {
naval_academy_spirit = {
instilled_aggression_spirit = {
ledger = navy
- available = { has_naval_academy = yes }
modifier = {
custom_modifier_tooltip = instilled_aggression_spirit_tt
}
@@ -16,7 +15,6 @@ ideas = {
}
calculated_restraint_spirit = {
ledger = navy
- available = { has_naval_academy = yes }
modifier = {
custom_modifier_tooltip = calculated_restraint_spirit_tt
}
@@ -30,7 +28,6 @@ ideas = {
}
signals_training_spirit = {
ledger = navy
- available = { has_naval_academy = yes }
modifier = {
custom_modifier_tooltip = signals_training_spirit_tt
}
@@ -44,7 +41,6 @@ ideas = {
}
fleet_in_being_academy_spirit = {
ledger = navy
- available = { has_naval_academy = yes }
visible = { has_tech = fleet_in_being }
modifier = {
custom_modifier_tooltip = fleet_in_being_academy_spirit_tt
@@ -61,7 +57,6 @@ ideas = {
}
trade_interdiction_academy_spirit = {
ledger = navy
- available = { has_naval_academy = yes }
visible = { has_tech = trade_interdiction }
modifier = {
custom_modifier_tooltip = trade_interdiction_academy_spirit_tt
@@ -78,7 +73,6 @@ ideas = {
}
base_strike_academy_spirit = {
ledger = navy
- available = { has_naval_academy = yes }
visible = { has_tech = base_strike }
modifier = {
custom_modifier_tooltip = base_strike_academy_spirit_tt
@@ -95,7 +89,6 @@ ideas = {
}
best_of_the_best_naval_academy_spirit = {
ledger = navy
- available = { has_naval_academy = yes }
modifier = {
navy_leader_start_level = 2
navy_intel_to_others = -5.0
@@ -111,7 +104,6 @@ ideas = {
}
naval_academy_scholarships_spirit = {
ledger = navy
- available = { has_naval_academy = yes }
modifier = {
navy_leader_start_level = 1
navy_leader_cost_factor = -0.4
diff --git a/data/blank_mod/common/ideas/nordic_shared.txt b/data/blank_mod/common/ideas/nordic_shared.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/military_industrial_organization/organizations/00_DEBUG_organization.txt b/data/blank_mod/common/military_industrial_organization/organizations/00_DEBUG_organization.txt
new file mode 100644
index 0000000000..324138b80d
--- /dev/null
+++ b/data/blank_mod/common/military_industrial_organization/organizations/00_DEBUG_organization.txt
@@ -0,0 +1,352 @@
+
+######## ### ## ## ## ## ######
+ ## ## ## ### ## ## ## ## ##
+ ## ## ## #### ## ## ## ##
+ ## ## ## ## ## ## ##### ######
+ ## ######### ## #### ## ## ##
+ ## ## ## ## ### ## ## ## ##
+ ## ## ## ## ## ## ## ######
+
+DEBUG_generic_tank_organization = {
+ include = generic_tank_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_infantry_tank_organization = {
+ include = generic_infantry_tank_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_mobile_tank_organization = {
+ include = generic_mobile_tank_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_medium_tank_organization = {
+ include = generic_medium_tank_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_heavy_tank_organization = {
+ include = generic_heavy_tank_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_tank_refurbishment_plant_organization = {
+ include = generic_tank_refurbishment_plant_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+
+ ###### ## ## #### ######## ######
+## ## ## ## ## ## ## ## ##
+## ## ## ## ## ## ##
+ ###### ######### ## ######## ######
+ ## ## ## ## ## ##
+## ## ## ## ## ## ## ##
+ ###### ## ## #### ## ######
+
+
+DEBUG_generic_task_force_ship_organization = {
+ include = generic_task_force_ship_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_battle_line_ship_organization = {
+ include = generic_battle_line_ship_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_escort_ship_organization = {
+ include = generic_escort_ship_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_raider_ship_organization = {
+ include = generic_raider_ship_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_submarine_organization = {
+ include = generic_submarine_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_black_sea_fleet_organization = {
+ include = generic_black_sea_fleet_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+
+
+######## ## ### ## ## ######## ######
+## ## ## ## ## ### ## ## ## ##
+## ## ## ## ## #### ## ## ##
+######## ## ## ## ## ## ## ###### ######
+## ## ######### ## #### ## ##
+## ## ## ## ## ### ## ## ##
+## ######## ## ## ## ## ######## ######
+
+
+DEBUG_generic_general_aircraft_organization = {
+ include = generic_general_aircraft_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_light_aircraft_organization = {
+ include = generic_light_aircraft_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_medium_aircraft_organization = {
+ include = generic_medium_aircraft_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_heavy_aircraft_organization = {
+ include = generic_heavy_aircraft_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_cas_aircraft_organization = {
+ include = generic_cas_aircraft_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_naval_aircraft_organization = {
+ include = generic_naval_aircraft_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_multi_role_aircraft_organization = {
+ include = generic_multi_role_aircraft_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_high_agility_fighter_aircraft_organization = {
+ include = generic_high_agility_fighter_aircraft_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_range_focused_aircraft_organization = {
+ include = generic_range_focused_aircraft_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+
+
+## ## ### ######## ######## ######## #### ######## ##
+### ### ## ## ## ## ## ## ## ## ##
+#### #### ## ## ## ## ## ## ## ## ##
+## ### ## ## ## ## ###### ######## ## ###### ##
+## ## ######### ## ## ## ## ## ## ##
+## ## ## ## ## ## ## ## ## ## ##
+## ## ## ## ## ######## ## ## #### ######## ########
+
+
+DEBUG_generic_artillery_organization = {
+ include = generic_artillery_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_infantry_equipment_organization = {
+ include = generic_infantry_equipment_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_support_equipment_organization = {
+ include = generic_support_equipment_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_motorized_mechanized_organization = {
+ include = generic_motorized_mechanized_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
+
+DEBUG_generic_armored_car_organization = {
+ include = generic_armored_car_organization
+ allowed = {
+ has_dlc = "Arms Against Tyranny"
+ is_debug = yes
+ }
+
+ visible = { #TODO_Manu: All this needs to be removed later on
+ owner = { has_country_flag = mio_show_all_archetypes_flag }
+ }
+}
\ No newline at end of file
diff --git a/data/blank_mod/common/military_industrial_organization/organizations/00_generic_organization.txt b/data/blank_mod/common/military_industrial_organization/organizations/00_generic_organization.txt
new file mode 100644
index 0000000000..bfe913c16f
--- /dev/null
+++ b/data/blank_mod/common/military_industrial_organization/organizations/00_generic_organization.txt
@@ -0,0 +1,7866 @@
+
+
+######## ### ## ## ## ## ######
+ ## ## ## ### ## ## ## ## ##
+ ## ## ## #### ## ## ## ##
+ ## ## ## ## ## ## ##### ######
+ ## ######### ## #### ## ## ##
+ ## ## ## ## ### ## ## ## ##
+ ## ## ## ## ## ## ## ######
+
+
+
+# GENERIC TANK MANUFACTURER - Based on Daimler Benz
+generic_tank_organization = {
+ icon = GFX_idea_generic_tank_manufacturer_1
+
+ allowed = {
+ always = yes
+ }
+
+ equipment_type = { mio_cat_eq_all_light_tank mio_cat_eq_all_medium_tank }
+ research_categories = { mio_cat_tech_light_armor_and_modules mio_cat_tech_medium_armor_and_modules }
+
+ tree_header_text = {
+ text = mio_header_tank_construction
+ x = 3
+ }
+
+ tree_header_text = {
+ text = mio_header_equipment_and_specialization
+ x = 7
+ }
+
+
+ initial_trait = {
+ name = generic_mio_initial_trait_standardized_production
+
+ equipment_bonus = {
+ armor_value = -0.05
+ defense =-0.05
+ build_cost_ic = -0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_simplified_suspension
+ name = generic_mio_trait_simplified_suspension
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=1 y=0 }
+
+ equipment_bonus = {
+ reliability = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_crew_ergonomics
+ name = generic_mio_trait_crew_ergonomics
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=4 y=0 }
+ relative_position_id = generic_mio_trait_simplified_suspension
+
+ equipment_bonus = {
+ maximum_speed = 0.02
+ defense = 0.02
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_tracks
+ name = generic_mio_trait_improved_tracks
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_simplified_suspension
+
+ any_parent = { generic_mio_trait_simplified_suspension }
+
+ equipment_bonus = {
+ reliability = 0.05
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_command_upgrades
+ name = generic_mio_trait_command_upgrades
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_crew_ergonomics
+
+ any_parent = { generic_mio_trait_crew_ergonomics }
+
+ equipment_bonus = {
+ breakthrough = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_standardized_components
+ name = generic_mio_trait_standardized_components
+ icon = GFX_generic_mio_department_icon_tank_general_line_efficiency
+
+ position = { x=2 y=1 }
+ relative_position_id = generic_mio_trait_simplified_suspension
+
+ all_parents = { generic_mio_trait_simplified_suspension generic_mio_trait_crew_ergonomics }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.15
+ production_resource_need_factor = -0.15
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_tooling
+ name = generic_mio_trait_improved_tooling
+ icon = GFX_generic_mio_department_icon_tank_general_technology
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_standardized_components
+
+ all_parents = { generic_mio_trait_improved_tracks generic_mio_trait_standardized_components generic_mio_trait_command_upgrades }
+
+ production_bonus = {
+ production_efficiency_cap_factor = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_mass_production
+ name = generic_mio_trait_mass_production
+ icon = GFX_generic_mio_department_icon_tank_general_production
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_improved_tooling
+
+ any_parent = { generic_mio_trait_improved_tooling }
+
+ mutually_exclusive = { generic_mio_trait_quality_improvements }
+
+ production_bonus = {
+ production_cost_factor = -0.05
+ production_efficiency_gain_factor = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_quality_improvements
+ name = generic_mio_trait_quality_improvements
+ icon = GFX_generic_mio_department_icon_tank_general_armor
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_improved_tooling
+
+ any_parent = { generic_mio_trait_improved_tooling }
+
+ mutually_exclusive = { generic_mio_trait_mass_production}
+
+ equipment_bonus = {
+ armor_value = 0.1
+ defense = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_defensive_equipment
+ name = generic_mio_trait_defensive_equipment
+ icon = GFX_generic_mio_trait_icon_soft_attack
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_crew_ergonomics
+
+ equipment_bonus = {
+ soft_attack = 0.02
+ defense = 0.02
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_long_barreled_guns
+ name = generic_mio_trait_long_barreled_guns
+ icon = GFX_generic_mio_trait_icon_ap_attack
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_defensive_equipment
+
+ all_parents = { generic_mio_trait_crew_ergonomics generic_mio_trait_defensive_equipment }
+
+ equipment_bonus = {
+ ap_attack = 0.05
+ hard_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_anti_tank_specialization
+ name = generic_mio_trait_anti_tank_specialization
+ icon = GFX_generic_mio_trait_icon_hard_attack
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_long_barreled_guns
+
+ any_parent = { generic_mio_trait_long_barreled_guns }
+
+ mutually_exclusive = { generic_mio_trait_infantry_support_tanks }
+
+ equipment_bonus = {
+ armor_value = 0.05
+ hard_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_infantry_support_tanks
+ name = generic_mio_trait_infantry_support_tanks
+ icon = GFX_generic_mio_trait_icon_soft_attack
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_long_barreled_guns
+
+ any_parent = { generic_mio_trait_long_barreled_guns }
+
+ mutually_exclusive = { generic_mio_trait_anti_tank_specialization }
+
+ equipment_bonus = {
+ soft_attack = 0.05
+ }
+
+ production_bonus = {
+ production_cost_factor = -0.02
+ }
+ }
+}
+
+
+# INFANTRY TANK DESIGNER - Based on Renault (FRA)
+generic_infantry_tank_organization = {
+ icon = GFX_idea_generic_tank_manufacturer_3
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = { armor }
+ research_categories = { mio_cat_tech_all_armor_and_modules }
+
+ tree_header_text = {
+ text = mio_header_light_tank_department
+ x = 0.1
+ }
+
+ tree_header_text = {
+ text = mio_header_medium_tank_department
+ x = 4
+ }
+
+ tree_header_text = {
+ text = mio_header_heavy_tank_department
+ x = 8
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_infantry_tanks_designer
+
+ limit_to_equipment_type = {
+ armor
+ }
+
+ equipment_bonus = {
+ armor_value = 0.05
+ maximum_speed =-0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_light_tank_improvements
+ name = generic_mio_trait_light_tank_improvements
+ icon = GFX_generic_mio_department_icon_tank_light_tank_weapons
+
+ position = { x=0 y=0 }
+
+ limit_to_equipment_type = { mio_cat_eq_all_light_tank }
+
+ equipment_bonus = {
+ soft_attack = 0.05
+ hard_attack = 0.05
+ armor_value = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_medium_tank_improvements
+ name = generic_mio_trait_medium_tank_improvements
+ icon = GFX_generic_mio_department_icon_tank_medium_tank_weapons
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_tank }
+
+ position = { x=4 y=0 }
+ relative_position_id = generic_mio_trait_light_tank_improvements
+
+ equipment_bonus = {
+ soft_attack = 0.05
+ hard_attack = 0.05
+ armor_value = 0.05
+ }
+
+
+ }
+ trait = {
+ token = generic_mio_trait_heavy_tank_improvements
+ name = generic_mio_trait_heavy_tank_improvements
+ icon = GFX_generic_mio_department_icon_tank_heavy_tank_weapons
+
+ position = { x=4 y=0 }
+ relative_position_id = generic_mio_trait_medium_tank_improvements
+
+ limit_to_equipment_type = { mio_cat_eq_all_heavy_tank }
+
+ equipment_bonus = {
+ soft_attack = 0.02
+ hard_attack = 0.05
+ armor_value = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_production_division
+ name = generic_mio_trait_production_division
+ icon = GFX_generic_mio_department_icon_tank_general_line_efficiency
+
+ position = { x=2 y=1 }
+ relative_position_id = generic_mio_trait_light_tank_improvements
+
+ all_parents = { generic_mio_trait_light_tank_improvements generic_mio_trait_medium_tank_improvements }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.15
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_standardized_turrets
+ name = generic_mio_trait_standardized_turrets
+ icon = GFX_generic_mio_department_icon_tank_general_quality
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_production_division
+
+ any_parent = { generic_mio_trait_production_division }
+
+ equipment_bonus = {
+ soft_attack = 0.05
+ defense = 0.05
+ }
+
+ production_bonus = {
+ production_cost_factor = -0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_wheel_protection
+ name = generic_mio_trait_improved_wheel_protection
+ icon = GFX_generic_mio_department_icon_tank_light_tank_armor
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_light_tank_improvements
+
+ any_parent = { generic_mio_trait_light_tank_improvements }
+
+ limit_to_equipment_type = { mio_cat_eq_all_light_tank }
+
+ equipment_bonus = {
+ reliability = 0.05
+ defense = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_gun_improvements
+ name = generic_mio_trait_gun_improvements
+ icon = GFX_generic_mio_trait_icon_ap_attack
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_medium_tank_improvements
+
+ any_parent = { generic_mio_trait_medium_tank_improvements }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_tank mio_cat_eq_all_heavy_tank }
+
+ equipment_bonus = {
+ hard_attack = 0.05
+ ap_attack = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_speed_improvements
+ name = generic_mio_trait_speed_improvements
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_improved_wheel_protection
+
+ any_parent = { generic_mio_trait_improved_wheel_protection generic_mio_trait_gun_improvements }
+
+ mutually_exclusive = { generic_mio_trait_improved_protection }
+
+ equipment_bonus = {
+ maximum_speed = 0.1
+ breakthrough = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_protection
+ name = generic_mio_trait_improved_protection
+ icon = GFX_generic_mio_department_icon_tank_general_armor
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_speed_improvements
+
+ any_parent = { generic_mio_trait_improved_wheel_protection generic_mio_trait_gun_improvements }
+
+ mutually_exclusive= { generic_mio_trait_speed_improvements }
+
+ equipment_bonus = {
+ armor_value = 0.1
+ defense = 0.1
+ }
+ }
+ trait = {
+ token = generic_mio_trait_modular_construction
+ name = generic_mio_trait_modular_construction
+ icon = GFX_generic_mio_department_icon_tank_general_technology
+
+ position = { x=2 y=2 }
+ relative_position_id = generic_mio_trait_medium_tank_improvements
+
+ any_parent = { generic_mio_trait_medium_tank_improvements }
+
+ production_bonus = {
+ production_efficiency_cap_factor = 0.1
+ production_efficiency_gain_factor = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_light_tank_specialization
+ name = generic_mio_trait_light_tank_specialization
+ icon = GFX_generic_mio_department_icon_tank_light_tank_production
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_modular_construction
+
+ any_parent = { generic_mio_trait_modular_construction }
+
+ mutually_exclusive= { generic_mio_trait_medium_tank_specialization generic_mio_trait_heavy_tank_specialization }
+
+ limit_to_equipment_type = { mio_cat_eq_all_light_tank }
+
+ production_bonus = {
+ production_cost_factor = -0.05
+ }
+ }
+ trait = {
+ token = generic_mio_trait_medium_tank_specialization
+ name = generic_mio_trait_medium_tank_specialization
+ icon = GFX_generic_mio_department_icon_tank_medium_tank_production
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_modular_construction
+
+ any_parent = { generic_mio_trait_modular_construction }
+
+ mutually_exclusive= { generic_mio_trait_light_tank_specialization generic_mio_trait_heavy_tank_specialization }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_tank }
+
+ production_bonus = {
+ production_cost_factor = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_heavy_tank_specialization
+ name = generic_mio_trait_heavy_tank_specialization
+ icon = GFX_generic_mio_department_icon_tank_heavy_tank_production
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_modular_construction
+
+ any_parent = { generic_mio_trait_modular_construction }
+
+ mutually_exclusive= { generic_mio_trait_light_tank_specialization generic_mio_trait_medium_tank_specialization }
+
+ limit_to_equipment_type = { mio_cat_eq_all_heavy_tank }
+
+ production_bonus = {
+ production_cost_factor = -0.05
+ }
+ }
+}
+
+
+# MOBILE TANK DESIGNER / FAST TANK DESIGNER - Based on Hotchkiss (FRA)
+generic_mobile_tank_organization = {
+ icon = GFX_idea_generic_tank_manufacturer_3
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = { armor }
+ research_categories = { mio_cat_tech_all_armor_and_modules }
+
+ tree_header_text = {
+ text = mio_header_engine_and_suspension
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_armor_and_armaments
+ x = 7
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_fast_tanks_designer
+
+ equipment_bonus = {
+ armor_value = -0.05
+ reliability = -0.05
+ maximum_speed = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_boogies
+ name = generic_mio_trait_improved_boogies
+ icon = GFX_generic_mio_department_icon_tank_general_engine
+
+ position = { x=1 y=0 }
+
+ equipment_bonus = {
+ maximum_speed = 0.02
+ reliability = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_engine_optimization
+ name = generic_mio_engine_optimization
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_improved_boogies
+
+ all_parents = { generic_mio_trait_improved_boogies }
+
+ mutually_exclusive = { generic_mio_reduced_fuel_usage }
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_reduced_fuel_usage
+ name = generic_mio_reduced_fuel_usage
+ icon = GFX_generic_mio_trait_icon_fuel_consumption
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_improved_boogies
+
+ all_parents = { generic_mio_trait_improved_boogies }
+
+ mutually_exclusive = { generic_mio_engine_optimization }
+
+ equipment_bonus = {
+ fuel_consumption = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_improved_ventilation
+ name = generic_mio_improved_ventilation
+ icon = GFX_generic_mio_trait_icon_defense
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_engine_optimization
+
+ any_parent = { generic_mio_engine_optimization generic_mio_reduced_fuel_usage }
+
+ equipment_bonus = {
+ defense = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_improved_tracks_and_suspension
+ name = generic_mio_improved_tracks_and_suspension
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_improved_ventilation
+
+ all_parents = { generic_mio_improved_ventilation }
+
+ equipment_bonus = {
+ breakthrough = 0.05
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_sloping_armor
+ name = generic_mio_sloping_armor
+ icon = GFX_generic_mio_trait_icon_defense
+
+ position = { x=6 y=0 }
+ relative_position_id = generic_mio_trait_improved_boogies
+
+ equipment_bonus = {
+ defense = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_lighter_materials
+ name = generic_mio_lighter_materials
+ icon = GFX_generic_mio_trait_icon_resources
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_sloping_armor
+
+ all_parents = { generic_mio_sloping_armor }
+
+ mutually_exclusive = { generic_mio_armor_hardening_process }
+
+ production_bonus = {
+ production_resource_penalty_factor = -0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_armor_hardening_process
+ name = generic_mio_armor_hardening_process
+ icon = GFX_generic_mio_trait_icon_armor_value
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_sloping_armor
+
+ all_parents = { generic_mio_sloping_armor }
+
+ mutually_exclusive = { generic_mio_lighter_materials }
+
+ equipment_bonus = {
+ armor_value = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_enlarged_breech
+ name = generic_mio_enlarged_breech
+ icon = GFX_generic_mio_trait_icon_soft_attack
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_lighter_materials
+
+ any_parent = { generic_mio_lighter_materials generic_mio_armor_hardening_process }
+
+ equipment_bonus = {
+ soft_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_gunner_sight_improvements
+ name = generic_mio_gunner_sight_improvements
+ icon = GFX_generic_mio_department_icon_tank_general_quality
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_enlarged_breech
+
+ all_parents = { generic_mio_enlarged_breech }
+
+ equipment_bonus = {
+ breakthrough = 0.05
+ defense = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_quality_assurance_routines
+ name = generic_mio_quality_assurance_routines
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=3 y=1 }
+ relative_position_id = generic_mio_trait_improved_boogies
+
+ all_parents = { generic_mio_trait_improved_boogies generic_mio_sloping_armor }
+
+ equipment_bonus = {
+ reliability = 0.05
+ build_cost_ic = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_streamlined_production
+ name = generic_mio_streamlined_production
+ icon = GFX_generic_mio_department_icon_tank_general_technology
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_quality_assurance_routines
+
+ all_parents = { generic_mio_quality_assurance_routines generic_mio_improved_ventilation generic_mio_enlarged_breech }
+
+
+ production_bonus = {
+ production_efficiency_cap_factor = 0.05
+ }
+ }
+}
+
+
+# MEDIUM TANK DESIGNER - Based on Army Ordnance Department (USA)
+generic_medium_tank_organization = {
+ icon = GFX_idea_generic_tank_manufacturer_2
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = { mio_cat_eq_all_medium_tank }
+ research_categories = { mio_cat_tech_medium_armor_and_modules }
+
+ tree_header_text = {
+ text = mio_header_design
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_armor
+ x = 5
+ }
+
+ tree_header_text = {
+ text = mio_header_engines
+ x = 8
+ }
+
+
+ initial_trait = {
+ name = generic_mio_initial_trait_medium_tank_designer
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+
+ production_bonus = {
+ production_capacity_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_power_traverse
+ name = generic_mio_trait_power_traverse
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=1 y=0 }
+
+ equipment_bonus = {
+ breakthrough = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_all_round_cupola
+ name = generic_mio_trait_all_round_cupola
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_power_traverse
+
+ all_parents = { generic_mio_trait_power_traverse }
+
+ equipment_bonus = {
+ breakthrough = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_simplified_turret_design
+ name = generic_mio_trait_simplified_turret_design
+ icon = GFX_generic_mio_trait_icon_production_capacity
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_all_round_cupola
+
+ all_parents = { generic_mio_trait_all_round_cupola }
+
+ production_bonus = {
+ production_capacity_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_specialist_shells
+ name = generic_mio_trait_specialist_shells
+ icon = GFX_generic_mio_trait_icon_hard_attack
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_simplified_turret_design
+
+ all_parents = { generic_mio_trait_simplified_turret_design }
+
+ equipment_bonus = {
+ hard_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_gun_metallurgy
+ name = generic_mio_trait_improved_gun_metallurgy
+ icon = GFX_generic_mio_trait_icon_ap_attack
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_simplified_turret_design
+
+ all_parents = { generic_mio_trait_simplified_turret_design }
+
+ equipment_bonus = {
+ ap_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_shells
+ name = generic_mio_trait_advanced_shells
+ icon = GFX_generic_mio_trait_icon_ap_attack
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_specialist_shells
+
+ any_parent = { generic_mio_trait_specialist_shells generic_mio_trait_improved_gun_metallurgy }
+
+ equipment_bonus = {
+ ap_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_armor_steel_working
+ name = generic_mio_trait_armor_steel_working
+ icon = GFX_generic_mio_trait_icon_production_capacity
+
+ position = { x=4 y=0 }
+ relative_position_id = generic_mio_trait_power_traverse
+
+ production_bonus = {
+ production_capacity_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_spaced_armor
+ name = generic_mio_trait_spaced_armor
+ icon = GFX_generic_mio_trait_icon_armor_value
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_armor_steel_working
+
+ all_parents = { generic_mio_trait_armor_steel_working }
+
+ mutually_exclusive = { generic_mio_trait_crew_survival_layout generic_mio_trait_sloped_side_armor }
+
+ equipment_bonus = {
+ armor_value = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_crew_survival_layout
+ name = generic_mio_trait_crew_survival_layout
+ icon = GFX_generic_mio_trait_icon_defense
+
+ position = { x=1 y=0 }
+ relative_position_id = generic_mio_trait_spaced_armor
+
+ all_parents = { generic_mio_trait_armor_steel_working }
+
+ mutually_exclusive = { generic_mio_trait_spaced_armor generic_mio_trait_sloped_side_armor }
+
+ equipment_bonus = {
+ defense = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_sloped_side_armor
+ name = generic_mio_trait_sloped_side_armor
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_spaced_armor
+
+ all_parents = { generic_mio_trait_armor_steel_working }
+
+ mutually_exclusive = { generic_mio_trait_spaced_armor generic_mio_trait_crew_survival_layout }
+
+ equipment_bonus = {
+ breakthrough = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_truck_engines
+ name = generic_mio_trait_truck_engines
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_armor_steel_working
+
+ mutually_exclusive = { generic_mio_trait_aircraft_engines }
+
+ equipment_bonus = {
+ reliability = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_aircraft_engines
+ name = generic_mio_trait_aircraft_engines
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_truck_engines
+
+ mutually_exclusive = { generic_mio_trait_truck_engines }
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_suspension
+ name = generic_mio_trait_improved_suspension
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_truck_engines
+
+ any_parent = { generic_mio_trait_truck_engines generic_mio_trait_aircraft_engines }
+
+ equipment_bonus = {
+ reliability = 0.05
+ }
+ }
+}
+
+
+# HEAVY TANK DESIGNER - Based on KV (SOV)
+generic_heavy_tank_organization = {
+ icon = GFX_idea_generic_tank_manufacturer_3
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = { mio_cat_eq_all_heavy_tank }
+ research_categories = { mio_cat_tech_heavy_armor_and_modules }
+
+ tree_header_text = {
+ text = mio_header_engine_and_drive_system
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_chassis
+ x = 5
+ }
+
+ tree_header_text = {
+ text = mio_header_guns_and_turret
+ x = 8
+ }
+
+
+ initial_trait = {
+ name = generic_mio_initial_trait_heavy_tank_designer
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+
+ equipment_bonus = {
+ armor_value = 0.05
+ reliability = -0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_wide_tracks
+ name = generic_mio_trait_wide_tracks
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=1 y=0 }
+
+ equipment_bonus = {
+ reliability = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_fire_extinguishers
+ name = generic_mio_trait_fire_extinguishers
+ icon = GFX_generic_mio_department_icon_tank_heavy_tank_quality
+
+ position = { x=0 y=4 }
+ relative_position_id = generic_mio_trait_wide_tracks
+
+ all_parents = { generic_mio_trait_wide_tracks }
+
+ equipment_bonus = {
+ reliability = 0.05
+ breakthrough = 0.02
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_one_piece_hull_side_coverings
+ name = generic_mio_trait_one_piece_hull_side_coverings
+ icon = GFX_generic_mio_department_icon_tank_heavy_tank_technology
+
+ position = { x=4 y=0 }
+ relative_position_id = generic_mio_trait_wide_tracks
+
+ production_bonus = {
+ production_efficiency_cap_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_simplified_transmission_system
+ name = generic_mio_trait_simplified_transmission_system
+ icon = GFX_generic_mio_department_icon_tank_heavy_tank_line_efficiency
+
+ position = { x=2 y=2 }
+ relative_position_id = generic_mio_trait_wide_tracks
+
+ all_parents = { generic_mio_trait_wide_tracks generic_mio_trait_one_piece_hull_side_coverings }
+
+ production_bonus = {
+ production_efficiency_cap_factor = 0.05
+ production_efficiency_gain_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_engine_output
+ name = generic_mio_trait_improved_engine_output
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_simplified_transmission_system
+
+ all_parents = { generic_mio_trait_simplified_transmission_system }
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ fuel_consumption = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_sloping_armor
+ name = generic_mio_trait_sloping_armor
+ icon = GFX_generic_mio_department_icon_tank_general_armor
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_one_piece_hull_side_coverings
+
+ all_parents = { generic_mio_trait_one_piece_hull_side_coverings }
+
+ equipment_bonus = {
+ armor_value = 0.05
+ defense = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_crew_ergonomics
+ name = generic_mio_trait_improved_crew_ergonomics
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_sloping_armor
+
+ all_parents = { generic_mio_trait_sloping_armor }
+
+ mutually_exclusive = { generic_mio_trait_reinforced_construction }
+
+ equipment_bonus = {
+ breakthrough = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_reinforced_construction
+ name = generic_mio_trait_reinforced_construction
+ icon = GFX_generic_mio_trait_icon_armor_value
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_sloping_armor
+
+ all_parents = { generic_mio_trait_sloping_armor }
+
+ mutually_exclusive = { generic_mio_trait_improved_crew_ergonomics }
+
+ equipment_bonus = {
+ armor_value = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_fully_cast_turret
+ name = generic_mio_trait_fully_cast_turret
+ icon = GFX_generic_mio_department_icon_tank_general_armor
+
+ position = { x=3 y=0 }
+ relative_position_id = generic_mio_trait_one_piece_hull_side_coverings
+
+ equipment_bonus = {
+ armor_value = 0.05
+ defense = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_commander_cupola
+ name = generic_mio_trait_commander_cupola
+ icon = GFX_generic_mio_department_icon_tank_general_armor
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_fully_cast_turret
+
+ all_parents = { generic_mio_trait_fully_cast_turret }
+
+ mutually_exclusive = { generic_mio_trait_simplified_layout }
+
+ equipment_bonus = {
+ armor_value = 0.05
+ defense = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_simplified_layout
+ name = generic_mio_trait_simplified_layout
+ icon = GFX_generic_mio_department_icon_tank_heavy_tank_line_efficiency
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_fully_cast_turret
+
+ all_parents = { generic_mio_trait_fully_cast_turret }
+
+ mutually_exclusive = { generic_mio_trait_commander_cupola }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.05
+ production_resource_penalty_factor = -0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_explosive_shells
+ name = generic_mio_trait_high_explosive_shells
+ icon = GFX_generic_mio_department_icon_tank_general_weapons
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_commander_cupola
+
+ any_parent = { generic_mio_trait_commander_cupola generic_mio_trait_simplified_layout }
+
+ mutually_exclusive = { generic_mio_trait_apcr_hvap_shells }
+
+ equipment_bonus = {
+ soft_attack = 0.05
+ hard_attack = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_apcr_hvap_shells
+ name = generic_mio_trait_apcr_hvap_shells
+ icon = GFX_generic_mio_trait_icon_ap_attack
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_simplified_layout
+
+ any_parent = { generic_mio_trait_commander_cupola generic_mio_trait_simplified_layout }
+
+ mutually_exclusive = { generic_mio_trait_high_explosive_shells }
+
+ equipment_bonus = {
+ ap_attack = 0.05
+ hard_attack = 0.05
+ }
+ }
+}
+
+
+### TANK REFURBISHMENT PLANT - Based on Mytishchi
+generic_tank_refurbishment_plant_organization = {
+ icon = GFX_idea_generic_tank_manufacturer_3
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = {
+ armor
+ support_equipment
+ train_equipment
+ railway_gun_equipment
+ }
+
+ research_categories = {
+ armor
+ support_tech
+ train_tech
+ }
+
+ tree_header_text = {
+ text = mio_header_armor
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_weapons
+ x = 5
+ }
+
+ tree_header_text = {
+ text = mio_header_trains
+ x = 8
+ }
+
+ initial_trait = {
+ token = generic_mio_initial_trait_tank_refurbishment_plant
+ name = generic_mio_initial_trait_tank_refurbishment_plant
+
+ limit_to_equipment_type = { armor }
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+
+ production_bonus = {
+ production_conversion_speed_factor = 0.15
+ production_cost_factor = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_enemy_tank_refitting
+ name = generic_mio_trait_enemy_tank_refitting
+ icon = GFX_generic_mio_department_icon_tank_general_conversion
+
+ position = { x=1 y=0 }
+
+ limit_to_equipment_type = { armor }
+
+ production_bonus = {
+ production_conversion_speed_factor = 0.15
+ production_cost_factor = -0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_efficient_scrap_recycling
+ name = generic_mio_trait_efficient_scrap_recycling
+ icon = GFX_generic_mio_trait_icon_hardness
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_enemy_tank_refitting
+
+ any_parent = { generic_mio_trait_enemy_tank_refitting }
+
+ limit_to_equipment_type = { armor }
+
+ equipment_bonus = {
+ hardness = -0.06
+ }
+
+ production_bonus = {
+ production_resource_need_factor = -0.2
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_volume_smelter
+ name = generic_mio_trait_high_volume_smelter
+ icon = GFX_generic_mio_department_icon_tank_general_production
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_efficient_scrap_recycling
+
+ any_parent = { generic_mio_trait_efficient_scrap_recycling }
+
+ limit_to_equipment_type = { armor }
+
+ production_bonus = {
+ production_capacity_factor = 0.06
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_powered_engine_production
+ name = generic_mio_trait_high_powered_engine_production
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_enemy_tank_refitting
+
+ any_parent = { generic_mio_trait_enemy_tank_refitting }
+
+ limit_to_equipment_type = { armor }
+
+ equipment_bonus = {
+ maximum_speed = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_heavy_duty_machine_tools
+ name = generic_mio_trait_heavy_duty_machine_tools
+ icon = GFX_generic_mio_department_icon_tank_general_production
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_high_volume_smelter
+
+ all_parents = { generic_mio_trait_high_powered_engine_production generic_mio_trait_high_volume_smelter }
+
+ limit_to_equipment_type = { armor }
+
+ equipment_bonus = {
+ maximum_speed = 0.1
+ }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.05
+ production_efficiency_cap_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_multi_plant_cooperation
+ name = generic_mio_trait_multi_plant_cooperation
+ icon = GFX_generic_mio_department_icon_tank_general_line_efficiency
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_heavy_duty_machine_tools
+
+ any_parent = { generic_mio_trait_heavy_duty_machine_tools }
+
+ limit_to_equipment_type = { armor }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.08
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_standardized_secondary_armament
+ name = generic_mio_trait_standardized_secondary_armament
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=3 y=0 }
+ relative_position_id = generic_mio_trait_enemy_tank_refitting
+
+ limit_to_equipment_type = { armor }
+
+ equipment_bonus = {
+ breakthrough = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_mass_small_arms_ammunition_production
+ name = generic_mio_trait_mass_small_arms_ammunition_production
+ icon = GFX_generic_mio_trait_icon_build_cost_ic
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_standardized_secondary_armament
+
+ any_parent = { generic_mio_trait_standardized_secondary_armament }
+
+ limit_to_equipment_type = { armor support_equipment }
+
+ production_bonus = {
+ production_cost_factor = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_plant_tech_exchange
+ name = generic_mio_trait_plant_tech_exchange
+ icon = GFX_generic_mio_department_icon_facilities
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_standardized_secondary_armament
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.06
+ }
+ }
+
+
+ trait = {
+ token = generic_mio_trait_24h_rotation_shifts
+ name = generic_mio_trait_24h_rotation_shifts
+ icon = GFX_generic_mio_trait_icon_production_capacity
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_plant_tech_exchange
+
+ any_parent = { generic_mio_trait_plant_tech_exchange }
+
+ production_bonus = {
+ production_capacity_factor = 0.06
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_dual_plant_main_armament_production
+ name = generic_mio_trait_dual_plant_main_armament_production
+ icon = GFX_generic_mio_trait_icon_soft_attack
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_mass_small_arms_ammunition_production
+
+ all_parents = { generic_mio_trait_mass_small_arms_ammunition_production generic_mio_trait_24h_rotation_shifts }
+
+ limit_to_equipment_type = { armor }
+
+ equipment_bonus = {
+ soft_attack = 0.05
+ reliability = -0.05
+ }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_long_distance_escort
+ name = generic_mio_trait_long_distance_escort
+ icon = GFX_generic_mio_trait_icon_anti_air_attack
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_plant_tech_exchange
+
+ limit_to_equipment_type = { train_equipment }
+
+ equipment_bonus = {
+ armor_value = 0.06
+ air_attack = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_barrels_of_hell
+ name = generic_mio_trait_barrels_of_hell
+ icon = GFX_generic_mio_trait_icon_production_capacity
+
+ position = { x=0 y=4 }
+ relative_position_id = generic_mio_trait_long_distance_escort
+
+ limit_to_equipment_type = { railway_gun_equipment }
+
+ all_parents = { generic_mio_trait_24h_rotation_shifts generic_mio_trait_long_distance_escort }
+ production_bonus = {
+ production_capacity_factor = 0.1
+ }
+ }
+}
+
+
+
+
+ ###### ## ## #### ######## ######
+## ## ## ## ## ## ## ## ##
+## ## ## ## ## ## ##
+ ###### ######### ## ######## ######
+ ## ## ## ## ## ##
+## ## ## ## ## ## ## ##
+ ###### ## ## #### ## ######
+
+
+
+# GENERIC TANK MANUFACTURERS
+
+#TASK FORCE MANUFACTURER - Based on Harland & Wolff (ENG)
+generic_task_force_ship_organization = {
+ icon = GFX_idea_generic_naval_manufacturer_1
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = {
+ mio_cat_eq_all_carrier
+ mio_cat_eq_all_cruiser
+ mio_cat_eq_all_destroyer
+ }
+ research_categories = {
+ mio_cat_tech_all_carrier_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
+ }
+
+
+
+ tree_header_text = {
+ text = mio_header_systems
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_weapons
+ x = 5
+ }
+
+
+ initial_trait = {
+ name = generic_mio_initial_trait_task_force_ship_builders
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+ equipment_bonus = {
+ max_strength = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_long_range_cruising
+ name = generic_mio_trait_long_range_cruising
+ icon = GFX_generic_mio_trait_icon_naval_range
+
+ position = { x=0 y=0 }
+
+ mutually_exclusive = { generic_mio_trait_high_speed_cruising }
+
+ equipment_bonus = {
+ naval_range = 0.05
+ fuel_consumption = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_speed_cruising
+ name = generic_mio_trait_high_speed_cruising
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_long_range_cruising
+
+ mutually_exclusive = { generic_mio_trait_long_range_cruising }
+
+ equipment_bonus = {
+ naval_speed = 0.05
+ fuel_consumption = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_splinter_protection
+ name = generic_mio_trait_splinter_protection
+ icon = GFX_generic_mio_trait_icon_armor_value
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_long_range_cruising
+
+ any_parent = { generic_mio_trait_long_range_cruising generic_mio_trait_high_speed_cruising }
+
+ limit_to_equipment_type = { mio_cat_eq_all_carrier mio_cat_eq_all_cruiser }
+
+ equipment_bonus = {
+ armor_value = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_transom_stern
+ name = generic_mio_trait_transom_stern
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_splinter_protection
+
+ any_parent = { generic_mio_trait_splinter_protection }
+
+ mutually_exclusive = { generic_mio_trait_underway_replenishment_equipment }
+
+ equipment_bonus = {
+ naval_speed = 0.05
+ fuel_consumption = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_underway_replenishment_equipment
+ name = generic_mio_trait_underway_replenishment_equipment
+ icon = GFX_generic_mio_trait_icon_fuel_consumption
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_splinter_protection
+
+ any_parent = { generic_mio_trait_splinter_protection }
+
+ mutually_exclusive = { generic_mio_trait_transom_stern }
+
+ equipment_bonus = {
+ naval_range = 0.05
+ fuel_consumption = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_secondary_fire_director_control
+ name = generic_mio_trait_secondary_fire_director_control
+ icon = GFX_generic_mio_trait_icon_anti_air_attack
+
+ position = { x=5 y=0 }
+ relative_position_id = generic_mio_trait_long_range_cruising
+
+ limit_to_equipment_type = { screen_ship carrier }
+
+ equipment_bonus = {
+ anti_air_attack = 0.05
+ naval_light_gun_hit_chance_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_flight_deck_edge_aa_mounts
+ name = generic_mio_trait_flight_deck_edge_aa_mounts
+ icon = GFX_generic_mio_department_icon_ship_carrier_offense
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_secondary_fire_director_control
+
+ any_parent = { generic_mio_trait_secondary_fire_director_control }
+
+ limit_to_equipment_type = { mio_cat_eq_all_carrier }
+
+ equipment_bonus = {
+ anti_air_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_gyro_stabilized_mounts
+ name = generic_mio_trait_gyro_stabilized_mounts
+ icon = GFX_generic_mio_trait_icon_lg_attack
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_flight_deck_edge_aa_mounts
+
+ any_parent = { generic_mio_trait_flight_deck_edge_aa_mounts }
+
+ equipment_bonus = {
+ anti_air_attack = 0.05
+ lg_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_rapid_fire_guns
+ name = generic_mio_trait_rapid_fire_guns
+ icon = GFX_generic_mio_department_icon_ship_general_offense
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_secondary_fire_director_control
+
+ any_parent = { generic_mio_trait_secondary_fire_director_control }
+
+ mutually_exclusive = { generic_mio_trait_high_velocity_guns }
+
+ equipment_bonus = {
+ anti_air_attack = 0.05
+ lg_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_fitting_works
+ name = generic_mio_trait_advanced_fitting_works
+ icon = GFX_generic_mio_department_icon_ship_general_production
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_rapid_fire_guns
+
+ any_parent = { generic_mio_trait_rapid_fire_guns generic_mio_trait_high_velocity_guns }
+
+ production_bonus = {
+ production_capacity_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_carrier_flight_operations_center
+ name = generic_mio_trait_carrier_flight_operations_center
+ icon = GFX_generic_mio_trait_icon_max_strength
+
+ position = { x=1 y=2 } #MM: This one could be moved up (4th row) so that it is visually clear which traits are the parents
+ relative_position_id = generic_mio_trait_gyro_stabilized_mounts
+
+ all_parents = { generic_mio_trait_gyro_stabilized_mounts generic_mio_trait_advanced_fitting_works generic_mio_trait_splinter_protection }
+
+ equipment_bonus = {
+ max_strength = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_primary_fire_director_control
+ name = generic_mio_trait_primary_fire_director_control
+ icon = GFX_generic_mio_trait_icon_hg_attack
+
+ position = { x=3 y=0 }
+ relative_position_id = generic_mio_trait_secondary_fire_director_control
+
+ limit_to_equipment_type = { mio_cat_eq_all_cruiser }
+
+ equipment_bonus = {
+ hg_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_velocity_guns
+ name = generic_mio_trait_high_velocity_guns
+ icon = GFX_generic_mio_trait_icon_ap_attack
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_primary_fire_director_control
+
+ any_parent = { generic_mio_trait_primary_fire_director_control }
+
+ mutually_exclusive = { generic_mio_trait_rapid_fire_guns }
+
+ limit_to_equipment_type = { mio_cat_eq_all_cruiser }
+
+ equipment_bonus = {
+ hg_armor_piercing = 0.05
+ }
+ }
+}
+
+
+#BATTLE LINE SHIP MANUFACTURER - Based on Cammell Laird (ENG)
+generic_battle_line_ship_organization = {
+ icon = GFX_idea_generic_naval_manufacturer_2
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = {
+ mio_cat_eq_all_battleship
+ mio_cat_eq_all_cruiser
+ }
+ research_categories = {
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ }
+
+ tree_header_text = {
+ text = mio_header_systems
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_weapons
+ x = 5
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_battle_line_ship_builders
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+ production_bonus = {
+ production_capacity_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_external_armor_belt
+ name = generic_mio_trait_external_armor_belt
+ icon = GFX_generic_mio_trait_icon_armor_value
+
+ position = { x=0 y=0 }
+
+ mutually_exclusive = { generic_mio_trait_internal_armor_belt }
+
+ equipment_bonus = {
+ armor_value = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_internal_armor_belt
+ name = generic_mio_trait_internal_armor_belt
+ icon = GFX_generic_mio_department_icon_ship_capital_ship_armor
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_external_armor_belt
+
+ mutually_exclusive = { generic_mio_trait_external_armor_belt }
+
+ equipment_bonus = {
+ armor_value = 0.15
+ build_cost_ic = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_hardened_critical_components
+ name = generic_mio_trait_hardened_critical_components
+ icon = GFX_generic_mio_trait_icon_naval_torpedo_damage_reduction_factor
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_external_armor_belt
+
+ any_parent = { generic_mio_trait_internal_armor_belt generic_mio_trait_external_armor_belt }
+
+ equipment_bonus = {
+ naval_torpedo_enemy_critical_chance_factor = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_hydrodynamic_design
+ name = generic_mio_trait_advanced_hydrodynamic_design
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_hardened_critical_components
+
+ any_parent = { generic_mio_trait_hardened_critical_components }
+
+ mutually_exclusive = { generic_mio_trait_advanced_armor_design }
+
+ equipment_bonus = {
+ naval_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_armor_design
+ name = generic_mio_trait_advanced_armor_design
+ icon = GFX_generic_mio_trait_icon_armor_value
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_hardened_critical_components
+
+ any_parent = { generic_mio_trait_hardened_critical_components }
+
+ mutually_exclusive = { generic_mio_trait_advanced_hydrodynamic_design }
+
+ equipment_bonus = {
+ armor_value = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_anti_air_layout
+ name = generic_mio_trait_anti_air_layout
+ icon = GFX_generic_mio_trait_icon_anti_air_attack
+
+ position = { x=4 y=0 }
+ relative_position_id = generic_mio_trait_external_armor_belt
+
+ equipment_bonus = {
+ anti_air_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_secondary_battery_layout
+ name = generic_mio_trait_secondary_battery_layout
+ icon = GFX_generic_mio_trait_icon_lg_attack
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_anti_air_layout
+
+ equipment_bonus = {
+ lg_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_gyro_stabilized_mounts
+ name = generic_mio_trait_gyro_stabilized_mounts
+ icon = GFX_generic_mio_department_icon_ship_capital_ship_offense
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_anti_air_layout
+
+ all_parents = { generic_mio_trait_anti_air_layout generic_mio_trait_secondary_battery_layout }
+
+ equipment_bonus = {
+ anti_air_attack = 0.05
+ lg_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_secondary_fire_director_control
+ name = generic_mio_trait_secondary_fire_director_control
+ icon = GFX_generic_mio_department_icon_ship_capital_ship_offense
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_gyro_stabilized_mounts
+
+ any_parent = { generic_mio_trait_gyro_stabilized_mounts }
+
+ equipment_bonus = {
+ anti_air_attack = 0.05
+ naval_light_gun_hit_chance_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_combat_information_center
+ name = generic_mio_trait_combat_information_center
+ icon = GFX_generic_mio_trait_icon_max_strength
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_secondary_fire_director_control
+
+ all_parents = { generic_mio_trait_hardened_critical_components generic_mio_trait_secondary_fire_director_control }
+ any_parent = { generic_mio_trait_super_heavy_shells generic_mio_trait_semi_armor_piercing_shells generic_mio_trait_high_velocity_guns }
+
+ equipment_bonus = {
+ max_strength = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_primary_battery_layout
+ name = generic_mio_trait_primary_battery_layout
+ icon = GFX_generic_mio_trait_icon_hg_attack
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_secondary_battery_layout
+
+ limit_to_equipment_type = { capital_ship }
+
+ equipment_bonus = {
+ hg_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_super_heavy_shells
+ name = generic_mio_trait_super_heavy_shells
+ icon = GFX_generic_mio_trait_icon_hg_attack
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_primary_battery_layout
+
+ any_parent = { generic_mio_trait_primary_battery_layout }
+
+ mutually_exclusive = { generic_mio_trait_semi_armor_piercing_shells generic_mio_trait_high_velocity_guns }
+
+ equipment_bonus = {
+ hg_attack = 0.05
+ hg_armor_piercing = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_semi_armor_piercing_shells
+ name = generic_mio_trait_semi_armor_piercing_shells
+ icon = GFX_generic_mio_trait_icon_lg_attack
+
+ position = { x=1 y=0 }
+ relative_position_id = generic_mio_trait_super_heavy_shells
+
+ any_parent = { generic_mio_trait_primary_battery_layout }
+
+ mutually_exclusive = { generic_mio_trait_super_heavy_shells generic_mio_trait_high_velocity_guns }
+
+ equipment_bonus = {
+ lg_attack = 0.05
+ lg_armor_piercing = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_velocity_guns
+ name = generic_mio_trait_high_velocity_guns
+ icon = GFX_generic_mio_trait_icon_ap_attack
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_super_heavy_shells
+
+ any_parent = { generic_mio_trait_primary_battery_layout }
+
+ mutually_exclusive = { generic_mio_trait_super_heavy_shells generic_mio_trait_semi_armor_piercing_shells }
+
+ equipment_bonus = {
+ lg_armor_piercing = 0.1
+ hg_armor_piercing = 0.1
+ build_cost_ic = 0.05
+ }
+ }
+}
+
+
+#ESCORT FLEET MANUFACTURER - Based on Yarrow Shipbuilders (ENG)
+generic_escort_ship_organization = {
+ icon = GFX_idea_generic_naval_manufacturer_1
+
+ allowed = {
+ always = yes
+ }
+
+ equipment_type = {
+ screen_ship
+ }
+ research_categories = {
+ mio_cat_tech_all_screen_ship_and_modules
+ }
+
+ tree_header_text = {
+ text = mio_header_systems
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_weapons
+ x = 5
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_escort_fleet
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+ production_bonus = {
+ production_capacity_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_submarine_hunters
+ name = generic_mio_trait_submarine_hunters
+ icon = GFX_generic_mio_trait_icon_sub_attack
+
+ position = { x=1 y=0 }
+
+ equipment_bonus = {
+ sub_detection = 0.05
+ sub_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_speed_mine_hunting_equipment
+ name = generic_mio_trait_high_speed_mine_hunting_equipment
+ icon = GFX_generic_mio_trait_icon_sub_visibility
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_submarine_hunters
+
+ any_parent = { generic_mio_trait_submarine_hunters }
+
+ equipment_bonus = {
+ sub_detection = 0.05
+ mines_sweeping = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_hydrodynamic_design
+ name = generic_mio_trait_advanced_hydrodynamic_design
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_high_speed_mine_hunting_equipment
+
+ any_parent = { generic_mio_trait_high_speed_mine_hunting_equipment }
+
+ equipment_bonus = {
+ naval_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_fleet_escorts
+ name = generic_mio_trait_fleet_escorts
+ icon = GFX_generic_mio_department_icon_ship_screen_ship_offense
+
+ position = { x=5 y=0 }
+ relative_position_id = generic_mio_trait_submarine_hunters
+
+ equipment_bonus = {
+ anti_air_attack = 0.05
+ lg_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_anti_air_ships
+ name = generic_mio_trait_anti_air_ships
+ icon = GFX_generic_mio_trait_icon_anti_air_attack
+
+ position = { x=-3 y=2 }
+ relative_position_id = generic_mio_trait_fleet_escorts
+
+ any_parent = { generic_mio_trait_fleet_escorts }
+
+ mutually_exclusive = { generic_mio_trait_escort_in_force }
+
+ equipment_bonus = {
+ anti_air_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_escort_in_force
+ name = generic_mio_trait_escort_in_force
+ icon = GFX_generic_mio_trait_icon_lg_attack
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_anti_air_ships
+
+ any_parent = { generic_mio_trait_fleet_escorts }
+
+ mutually_exclusive = { generic_mio_trait_anti_air_ships }
+
+ equipment_bonus = {
+ lg_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_anti_air_layout
+ name = generic_mio_trait_anti_air_layout
+ icon = GFX_generic_mio_trait_icon_anti_air_attack
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_escort_in_force
+
+ any_parent = { generic_mio_trait_fleet_escorts }
+
+ equipment_bonus = {
+ anti_air_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_gyro_stabilized_mounts
+ name = generic_mio_trait_gyro_stabilized_mounts
+ icon = GFX_generic_mio_department_icon_ship_screen_ship_offense
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_anti_air_layout
+
+ any_parent = { generic_mio_trait_anti_air_layout }
+
+ equipment_bonus = {
+ anti_air_attack = 0.05
+ lg_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_anti_air_gun_mounting
+ name = generic_mio_trait_improved_anti_air_gun_mounting
+ icon = GFX_generic_mio_trait_icon_anti_air_attack
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_anti_air_ships
+
+ any_parent = { generic_mio_trait_anti_air_ships generic_mio_trait_escort_in_force }
+
+ equipment_bonus = {
+ anti_air_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_mass_production
+ name = generic_mio_trait_mass_production
+ icon = GFX_generic_mio_department_icon_ship_screen_ship_production
+
+ position = { x=1 y=0 }
+ relative_position_id = generic_mio_trait_improved_anti_air_gun_mounting
+
+ any_parent = { generic_mio_trait_anti_air_ships generic_mio_trait_escort_in_force }
+
+ production_bonus = {
+ production_capacity_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_light_gun_mounting
+ name = generic_mio_trait_improved_light_gun_mounting
+ icon = GFX_generic_mio_department_icon_ship_screen_ship_offense
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_mass_production
+
+ any_parent = { generic_mio_trait_anti_air_ships generic_mio_trait_escort_in_force }
+ any_parent = { generic_mio_trait_gyro_stabilized_mounts }
+
+ equipment_bonus = {
+ anti_air_attack = 0.05
+ lg_attack = 0.05
+ }
+ }
+}
+
+
+#RAIDING FLEET MANUFACTURER - Based on John Brown (ENG)
+generic_raider_ship_organization = {
+ icon = GFX_idea_generic_naval_manufacturer_3
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own versions
+ }
+
+ equipment_type = {
+ capital_ship
+ screen_ship
+ submarine
+ }
+ research_categories = {
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_submarine_and_modules
+ }
+
+ tree_header_text = {
+ text = mio_header_long_range_focus
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_high_speed_focus
+ x = 7
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_raiding_fleet
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+ equipment_bonus = {
+ surface_visibility = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_long_range_raiding
+ name = generic_mio_trait_long_range_raiding
+ icon = GFX_generic_mio_department_icon_ship_general_engine
+
+ position = { x=1 y=0 }
+
+ mutually_exclusive = { generic_mio_trait_high_speed_raiding }
+
+ equipment_bonus = {
+ naval_range = 0.05
+ fuel_consumption = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_speed_raiding
+ name = generic_mio_trait_high_speed_raiding
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=6 y=0 }
+ relative_position_id = generic_mio_trait_long_range_raiding
+
+ mutually_exclusive = { generic_mio_trait_long_range_raiding }
+
+ equipment_bonus = {
+ naval_speed = 0.05
+ fuel_consumption = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_diesel_powerplants
+ name = generic_mio_trait_diesel_powerplants
+ icon = GFX_generic_mio_trait_icon_fuel_consumption
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_long_range_raiding
+
+ any_parent = { generic_mio_trait_long_range_raiding }
+
+ equipment_bonus = {
+ fuel_consumption = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_speed_operation_stores
+ name = generic_mio_trait_high_speed_operation_stores
+ icon = GFX_generic_mio_trait_icon_mines
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_high_speed_raiding
+
+ any_parent = { generic_mio_trait_high_speed_raiding }
+
+ visible = {
+ has_dlc = "Man the Guns"
+ }
+
+ equipment_bonus = {
+ naval_speed = 0.05
+ mines_planting = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_speed_operation_stores_no_mtg
+ name = generic_mio_trait_high_speed_operation_stores
+ icon = GFX_generic_mio_trait_icon_mines
+
+ position = { x=0 y=0 }
+ relative_position_id = generic_mio_trait_high_speed_operation_stores
+
+ any_parent = { generic_mio_trait_high_speed_raiding }
+
+ visible = {
+ NOT = { has_dlc = "Man the Guns" }
+ }
+
+ equipment_bonus = {
+ naval_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_raiding_capital_ships
+ name = generic_mio_trait_raiding_capital_ships
+ icon = GFX_generic_mio_department_icon_ship_capital_ship_weapons
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_long_range_raiding
+
+ any_parent = { generic_mio_trait_long_range_raiding generic_mio_trait_high_speed_raiding }
+
+ limit_to_equipment_type = { capital_ship }
+
+ equipment_bonus = {
+ surface_visibility = -0.05
+ hg_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_long_range_engagement_ethos
+ name = generic_mio_trait_long_range_engagement_ethos
+ icon = GFX_generic_mio_department_icon_ship_capital_ship_weapons
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_raiding_capital_ships
+
+ any_parent = { generic_mio_trait_raiding_capital_ships }
+
+ limit_to_equipment_type = { capital_ship }
+
+ equipment_bonus = {
+ surface_visibility = -0.05
+ hg_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_quality_optics
+ name = generic_mio_trait_high_quality_optics
+ icon = GFX_generic_mio_trait_icon_surface_detection
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_raiding_capital_ships
+
+ any_parent = { generic_mio_trait_raiding_capital_ships }
+
+ mutually_exclusive = { generic_mio_trait_spotting_tops }
+
+ equipment_bonus = {
+ surface_detection = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_raider_escort_requirements
+ name = generic_mio_trait_raider_escort_requirements
+ icon = GFX_generic_mio_department_icon_ship_screen_ship_engine
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_long_range_engagement_ethos
+
+ any_parent = { generic_mio_trait_long_range_engagement_ethos }
+
+ limit_to_equipment_type = { screen_ship }
+
+ equipment_bonus = {
+ naval_range = 0.05
+ naval_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_unescorted_raider_requirements
+ name = generic_mio_trait_unescorted_raider_requirements
+ icon = GFX_generic_mio_trait_icon_lg_attack
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_long_range_engagement_ethos
+
+ all_parents = { generic_mio_trait_long_range_engagement_ethos generic_mio_trait_high_quality_optics }
+
+ limit_to_equipment_type = { capital_ship }
+
+ equipment_bonus = {
+ lg_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_raiding_cruisers
+ name = generic_mio_trait_raiding_cruisers
+ icon = GFX_generic_mio_trait_icon_surface_visibility
+
+ position = { x=-3 y=2 }
+ relative_position_id = generic_mio_trait_high_speed_raiding
+
+ any_parent = { generic_mio_trait_long_range_raiding generic_mio_trait_high_speed_raiding }
+
+ limit_to_equipment_type = { ship_hull_cruiser }
+
+ equipment_bonus = {
+ surface_visibility = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_raiding_submarines
+ name = generic_mio_trait_raiding_submarines
+ icon = GFX_generic_mio_department_icon_ship_submarine_survivability
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_raiding_cruisers
+
+ any_parent = { generic_mio_trait_high_speed_raiding generic_mio_trait_long_range_raiding }
+
+ limit_to_equipment_type = { submarine }
+
+ equipment_bonus = {
+ surface_visibility = -0.05
+ sub_visibility = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_spotting_tops
+ name = generic_mio_trait_spotting_tops
+ icon = GFX_generic_mio_trait_icon_surface_visibility
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_raiding_cruisers
+
+ all_parents = { generic_mio_trait_raiding_cruisers generic_mio_trait_raiding_submarines }
+
+ mutually_exclusive = { generic_mio_trait_high_quality_optics }
+
+ limit_to_equipment_type = { capital_ship screen_ship }
+
+ equipment_bonus = {
+ surface_visibility = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_large_torpedo_banks
+ name = generic_mio_trait_large_torpedo_banks
+ icon = GFX_generic_mio_trait_icon_torpedo_attack
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_raiding_submarines
+
+ any_parent = { generic_mio_trait_raiding_submarines }
+
+ equipment_bonus = {
+ torpedo_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_mass_produced_raiders
+ name = generic_mio_trait_mass_produced_raiders
+ icon = GFX_generic_mio_department_icon_ship_general_production
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_spotting_tops
+
+ all_parents = { generic_mio_trait_spotting_tops generic_mio_trait_large_torpedo_banks }
+
+ production_bonus = {
+ production_capacity_factor = 0.05
+ }
+ }
+}
+
+
+#SUBMARINE MANUFACTURER - Based on Canteri Navali Tosi (ITA)
+generic_submarine_organization = {
+ icon = GFX_idea_generic_naval_manufacturer_1
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = {
+ ship_hull_submarine
+ }
+ research_categories = {
+ mio_cat_tech_all_submarine_and_modules
+ }
+
+ tree_header_text = {
+ text = mio_header_stealth_focus
+ x = 2
+ }
+
+ tree_header_text = {
+ text = mio_header_supremacy_focus
+ x = 5
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_submarine_designer
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+ equipment_bonus = {
+ sub_visibility = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_long_range_raiding
+ name = generic_mio_trait_long_range_raiding
+ icon = GFX_generic_mio_trait_icon_sub_visibility
+
+ position = { x=2 y=0 }
+
+ mutually_exclusive = { generic_mio_trait_decalin_fueled_torpedo }
+
+ equipment_bonus = {
+ sub_visibility = -0.03
+ naval_speed = -0.01
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_decalin_fueled_torpedo
+ name = generic_mio_trait_decalin_fueled_torpedo
+ icon = GFX_generic_mio_trait_icon_torpedo_attack
+
+ position = { x=3 y=0 }
+ relative_position_id = generic_mio_trait_long_range_raiding
+
+ mutually_exclusive = { generic_mio_trait_long_range_raiding }
+
+ equipment_bonus = {
+ torpedo_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_efficient_fuel_engines
+ name = generic_mio_trait_efficient_fuel_engines
+ icon = GFX_generic_mio_trait_icon_naval_range
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_long_range_raiding
+
+ all_parents = { generic_mio_trait_long_range_raiding }
+
+ equipment_bonus = {
+ naval_range = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_highly_efficient_diesel_electric_propulsion_systems
+ name = generic_mio_trait_highly_efficient_diesel_electric_propulsion_systems
+ icon = GFX_generic_mio_trait_icon_naval_range
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_efficient_fuel_engines
+
+ any_parent = { generic_mio_trait_high_powered_engines generic_mio_trait_efficient_fuel_engines }
+ mutually_exclusive = { generic_mio_trait_open_cycle_propulsion }
+
+ equipment_bonus = {
+ naval_range = 0.06
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_powered_engines
+ name = generic_mio_trait_high_powered_engines
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_decalin_fueled_torpedo
+
+ all_parents = { generic_mio_trait_decalin_fueled_torpedo }
+
+ equipment_bonus = {
+ sub_visibility = 0.02
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_open_cycle_propulsion
+ name = generic_mio_trait_open_cycle_propulsion
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_high_powered_engines
+
+ any_parent = { generic_mio_trait_high_powered_engines generic_mio_trait_efficient_fuel_engines }
+ mutually_exclusive = { generic_mio_trait_highly_efficient_diesel_electric_propulsion_systems }
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_experimental_anechoic_tiles
+ name = generic_mio_trait_experimental_anechoic_tiles
+ icon = GFX_generic_mio_department_icon_ship_submarine_survivability
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_highly_efficient_diesel_electric_propulsion_systems
+
+ any_parent = { generic_mio_trait_highly_efficient_diesel_electric_propulsion_systems generic_mio_trait_open_cycle_propulsion }
+
+ equipment_bonus = {
+ surface_visibility = -0.05
+ sub_visibility = -0.05
+ build_cost_ic = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_torpedo_detonators
+ name = generic_mio_trait_improved_torpedo_detonators
+ icon = GFX_generic_mio_trait_icon_torpedo_attack
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_open_cycle_propulsion
+
+ any_parent = { generic_mio_trait_highly_efficient_diesel_electric_propulsion_systems generic_mio_trait_open_cycle_propulsion }
+
+ equipment_bonus = {
+ torpedo_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_simplified_pressure_hull_design
+ name = generic_mio_trait_simplified_pressure_hull_design
+ icon = GFX_generic_mio_department_icon_ship_submarine_production
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_experimental_anechoic_tiles
+
+ all_parents = { generic_mio_trait_experimental_anechoic_tiles generic_mio_trait_improved_torpedo_detonators }
+
+ production_bonus = {
+ production_capacity_factor = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_periscope
+ name = generic_mio_trait_advanced_periscope
+ icon = GFX_generic_mio_trait_icon_surface_detection
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_long_range_raiding
+
+ all_parents = { generic_mio_trait_long_range_raiding }
+
+
+ equipment_bonus = {
+ surface_detection = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_emergency_main_ballast_tank_blow
+ name = generic_mio_trait_emergency_main_ballast_tank_blow
+ icon = GFX_generic_mio_trait_icon_max_strength
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_advanced_periscope
+
+ all_parents = { generic_mio_trait_advanced_periscope }
+
+ equipment_bonus = {
+ max_strength = 0.06
+ maximum_speed = 0.01
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_radar_warning_receiver
+ name = generic_mio_trait_radar_warning_receiver
+ icon = GFX_generic_mio_trait_icon_sub_visibility
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_advanced_periscope
+
+ all_parents = { generic_mio_trait_advanced_periscope }
+
+
+ equipment_bonus = {
+ surface_detection = -0.03
+ sub_visibility = -0.05
+ }
+ }
+
+
+ trait = {
+ token = generic_mio_trait_crash_dive_flood_tanks
+ name = generic_mio_trait_crash_dive_flood_tanks
+ icon = GFX_generic_mio_trait_icon_max_strength
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_emergency_main_ballast_tank_blow
+
+ all_parents = { generic_mio_trait_emergency_main_ballast_tank_blow generic_mio_trait_radar_warning_receiver }
+
+ equipment_bonus = {
+ max_strength = 0.08
+ sub_visibility = -0.01
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_submarine_mass_production
+ name = generic_mio_trait_submarine_mass_production
+ icon = GFX_generic_mio_department_icon_ship_submarine_production
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_decalin_fueled_torpedo
+
+ all_parents = { generic_mio_trait_decalin_fueled_torpedo }
+
+
+ production_bonus = {
+ production_capacity_factor = 0.07
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_sonar
+ name = generic_mio_trait_advanced_sonar
+ icon = GFX_generic_mio_trait_icon_surface_detection
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_submarine_mass_production
+
+ all_parents = { generic_mio_trait_decalin_fueled_torpedo }
+
+ limit_to_equipment_type = { ship_hull_submarine }
+
+ equipment_bonus = {
+ surface_detection = 0.06
+ sub_visibility = 0.02
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_deck_guns
+ name = generic_mio_trait_deck_guns
+ icon = GFX_generic_mio_trait_icon_max_strength
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_submarine_mass_production
+
+ all_parents = { generic_mio_trait_submarine_mass_production generic_mio_trait_advanced_sonar }
+
+ equipment_bonus = {
+ max_strength = 0.08
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_large_torpedo_banks
+ name = generic_mio_trait_large_torpedo_banks
+ icon = GFX_generic_mio_trait_icon_torpedo_attack
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_advanced_sonar
+
+ all_parents = { generic_mio_trait_advanced_sonar }
+
+ equipment_bonus = {
+ torpedo_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_capacity_mine_storage
+ name = generic_mio_trait_high_capacity_mine_storage
+ icon = GFX_generic_mio_trait_icon_mines
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_deck_guns
+
+ any_parent = { generic_mio_trait_deck_guns generic_mio_trait_large_torpedo_banks }
+
+ visible = {
+ has_dlc = "Man the Guns"
+ }
+
+ equipment_bonus = {
+ mines_planting = 0.2
+ }
+ }
+}
+
+#BLACK SEA MANUFACTURER - Based on Black Sea Shipyard (SOV)
+generic_black_sea_fleet_organization = {
+ icon = GFX_idea_generic_naval_manufacturer_2
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = {
+ capital_ship
+ screen_ship
+ ship_hull_submarine
+ }
+
+ research_categories = {
+ naval_equipment
+ }
+
+ tree_header_text = {
+ text = mio_header_systems
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_weapons
+ x = 4
+ }
+
+ tree_header_text = {
+ text = mio_header_production
+ x = 8
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_black_sea_fleet_designer
+ limit_to_equipment_type = { capital_ship screen_ship ship_hull_submarine }
+ equipment_bonus = {
+ anti_air_attack = 0.02
+ armor_value = 0.02
+ max_strength = 0.02
+ naval_range = -0.15
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_submarine_hunters_black_sea
+ name = generic_mio_trait_submarine_hunters_black_sea
+ icon = GFX_generic_mio_trait_icon_sub_detection
+
+ position = { x=1 y=0 }
+
+ equipment_bonus = {
+ sub_detection = 0.05
+ patrol_coordination = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_efficient_patrolling_scheme
+ name = generic_mio_trait_efficient_patrolling_scheme
+ icon = GFX_generic_mio_department_icon_ship_capital_screen_utility
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_submarine_hunters_black_sea
+
+ all_parents = { generic_mio_trait_submarine_hunters_black_sea }
+
+ equipment_bonus = {
+ patrol_coordination = 0.1
+ naval_range = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_sub_scanners
+ name = generic_mio_trait_advanced_sub_scanners
+ icon = GFX_generic_mio_trait_icon_sub_detection
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_submarine_hunters_black_sea
+
+ all_parents = { generic_mio_trait_submarine_hunters_black_sea }
+
+ limit_to_equipment_type = { capital_ship screen_ship }
+
+ equipment_bonus = {
+ sub_detection = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_altitute_catapult
+ name = generic_mio_trait_high_altitute_catapult
+ icon = GFX_generic_mio_trait_icon_detection
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_advanced_sub_scanners
+
+ all_parents = { generic_mio_trait_advanced_sub_scanners }
+
+ equipment_bonus = {
+ surface_detection = 0.04
+ sub_detection = 0.04
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_light_armor_piercing_guns
+ name = generic_mio_trait_light_armor_piercing_guns
+ icon = GFX_generic_mio_trait_icon_lg_attack
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_high_altitute_catapult
+
+ all_parents = { generic_mio_trait_advanced_sub_scanners }
+
+ limit_to_equipment_type = { capital_ship screen_ship }
+
+ equipment_bonus = {
+ lg_armor_piercing = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_brass_case_reloader
+ name = generic_mio_trait_brass_case_reloader
+ icon = GFX_generic_mio_department_icon_ship_capital_screen_weapons
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_light_armor_piercing_guns
+
+ all_parents = { generic_mio_trait_light_armor_piercing_guns generic_mio_trait_piercing_rounds }
+
+ limit_to_equipment_type = { capital_ship screen_ship }
+
+ equipment_bonus = {
+ lg_attack = 0.06
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_anti_air_defense
+ name = generic_mio_trait_anti_air_defense
+ icon = GFX_generic_mio_trait_icon_anti_air_attack
+
+ position = { x=4 y=0 }
+
+ limit_to_equipment_type = { capital_ship screen_ship }
+
+ equipment_bonus = {
+ anti_air_attack = 0.06
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_heavy_guns
+ name = generic_mio_trait_heavy_guns
+ icon = GFX_generic_mio_trait_icon_hg_attack
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_anti_air_defense
+
+ all_parents = { generic_mio_trait_anti_air_defense }
+
+ limit_to_equipment_type = { capital_ship screen_ship }
+
+ equipment_bonus = {
+ hg_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_advanced_periscope
+ name = generic_mio_advanced_periscope
+ icon = GFX_generic_mio_trait_icon_sub_visibility
+
+ position = { x=2 y=1 }
+ relative_position_id = generic_mio_trait_anti_air_defense
+
+ all_parents = { generic_mio_trait_anti_air_defense }
+
+ limit_to_equipment_type = { ship_hull_submarine }
+
+ equipment_bonus = {
+ sub_visibility = -0.03
+ surface_detection = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_piercing_rounds
+ name = generic_mio_trait_piercing_rounds
+ icon = GFX_generic_mio_department_icon_ship_capital_ship_weapons
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_heavy_guns
+
+ all_parents = { generic_mio_trait_heavy_guns }
+
+ limit_to_equipment_type = { capital_ship }
+
+ equipment_bonus = {
+ hg_armor_piercing = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_base_defense
+ name = generic_mio_trait_base_defense
+ icon = GFX_generic_mio_department_icon_ship_capital_screen_armor
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_heavy_guns
+
+ all_parents = { generic_mio_trait_heavy_guns }
+
+ limit_to_equipment_type = { capital_ship screen_ship }
+
+ equipment_bonus = {
+ anti_air_attack = 0.06
+ naval_range = -0.1
+ armor_value = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_state_sponsored_growth
+ name = generic_mio_trait_state_sponsored_growth
+ icon = GFX_generic_mio_department_icon_facilities
+
+ position = { x=4 y=0 }
+ relative_position_id = generic_mio_trait_anti_air_defense
+
+ organization_modifier = {
+ military_industrial_organization_funds_gain = 0.1
+ }
+
+ }
+
+ trait = {
+ token = generic_mio_trait_state_sponsored_research
+ name = generic_mio_trait_state_sponsored_research
+ icon = GFX_generic_mio_department_icon_facilities
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_state_sponsored_growth
+
+ all_parents = { generic_mio_trait_state_sponsored_growth }
+
+ mutually_exclusive = { generic_mio_trait_24h_shifts }
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_24h_shifts
+ name = generic_mio_trait_24h_shifts
+ icon = GFX_generic_mio_department_icon_ship_general_production
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_state_sponsored_research
+
+ all_parents = { generic_mio_trait_state_sponsored_growth }
+
+ mutually_exclusive = { generic_mio_trait_state_sponsored_research }
+
+ production_bonus = {
+ production_capacity_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_state_subsidizing
+ name = generic_mio_trait_state_subsidizing
+ icon = GFX_generic_mio_department_icon_facilities
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_state_sponsored_research
+
+ any_parent = { generic_mio_trait_state_sponsored_research generic_mio_trait_24h_shifts }
+
+ organization_modifier = {
+ military_industrial_organization_size_up_requirement = -0.25
+ military_industrial_organization_design_team_assign_cost = 0.15
+ }
+
+ }
+
+ trait = {
+ token = generic_mio_trait_deck_guns_black_sea
+ name = generic_mio_trait_deck_guns_black_sea
+ icon = GFX_generic_mio_trait_icon_anti_air_attack
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_base_defense
+
+ any_parent = { generic_mio_trait_base_defense generic_mio_trait_piercing_rounds }
+
+ limit_to_equipment_type = { capital_ship }
+
+ equipment_bonus = {
+ anti_air_attack = 0.06
+ }
+ }
+}
+
+
+
+generic_refurbishment_repair_organization = {
+ icon = GFX_idea_generic_naval_manufacturer_1
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = {
+ mio_cat_eq_all_battleship
+ mio_cat_eq_all_cruiser
+ }
+ research_categories = {
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ }
+
+ tree_header_text = {
+ text = mio_header_protection
+ x = 3
+ }
+
+ tree_header_text = {
+ text = mio_header_weapons
+ x = 8
+ }
+
+
+ initial_trait = {
+ name = generic_mio_refurbishment_repair_organization
+ limit_to_equipment_type = { capital_ship screen_ship ship_hull_submarine }
+ equipment_bonus = {
+ max_strength = 0.03
+ }
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.01
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_heavy_armored_hull
+ name = generic_mio_trait_heavy_armored_hull
+ icon = GFX_generic_mio_trait_icon_armor_value
+
+ position = { x=1 y=0 }
+
+ equipment_bonus = {
+ armor_value = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_isolated_firemains
+ name = generic_mio_trait_isolated_firemains
+ icon = GFX_generic_mio_trait_icon_naval_torpedo_damage_reduction_factor
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_heavy_armored_hull
+
+ all_parents = { generic_mio_trait_heavy_armored_hull }
+
+ equipment_bonus = {
+ naval_torpedo_damage_reduction_factor = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_counter_flooding_system
+ name = generic_mio_trait_counter_flooding_system
+ icon = GFX_generic_mio_trait_icon_naval_torpedo_hit_chance_factor
+
+ position = { x=3 y=0 }
+ relative_position_id = generic_mio_trait_isolated_firemains
+
+ all_parents = { generic_mio_trait_heavy_armored_hull }
+
+ equipment_bonus = {
+ naval_torpedo_enemy_critical_chance_factor = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_anti_torpedo_bulge
+ name = generic_mio_trait_anti_torpedo_bulge
+ icon = GFX_generic_mio_trait_icon_naval_torpedo_damage_reduction_factor
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_isolated_firemains
+
+ all_parents = { generic_mio_trait_counter_flooding_system generic_mio_trait_isolated_firemains generic_mio_trait_high_powered_steering }
+
+ equipment_bonus = {
+ naval_torpedo_enemy_critical_chance_factor = -0.05
+ naval_torpedo_damage_reduction_factor = 0.08
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_foam_fire_extinguishers
+ name = generic_mio_trait_foam_fire_extinguishers
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=5 y=0 }
+ relative_position_id = generic_mio_trait_heavy_armored_hull
+
+ equipment_bonus = {
+ reliability = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_bulkhead_shoring_procedure
+ name = generic_mio_trait_bulkhead_shoring_procedure
+ icon = GFX_generic_mio_department_icon_ship_capital_screen_armor
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_foam_fire_extinguishers
+
+ all_parents = { generic_mio_trait_foam_fire_extinguishers }
+
+ equipment_bonus = {
+ reliability = 0.01
+ armor_value = 0.02
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_powered_steering
+ name = generic_mio_trait_high_powered_steering
+ icon = GFX_generic_mio_department_icon_ship_capital_screen_armor
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_bulkhead_shoring_procedure
+
+ all_parents = { generic_mio_trait_bulkhead_shoring_procedure }
+
+ equipment_bonus = {
+ reliability = 0.01
+ armor_value = 0.02
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_flooding_boundries
+ name = generic_mio_trait_flooding_boundries
+ icon = GFX_generic_mio_trait_icon_max_strength
+
+ position = { x=1 y=0 }
+ relative_position_id = generic_mio_trait_high_powered_steering
+
+ all_parents = { generic_mio_trait_bulkhead_shoring_procedure }
+
+ equipment_bonus = {
+ max_strength = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_protected_pumps
+ name = generic_mio_trait_protected_pumps
+ icon = GFX_generic_mio_trait_icon_max_strength
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_flooding_boundries
+
+ all_parents = { generic_mio_trait_flooding_boundries }
+
+ equipment_bonus = {
+ max_strength = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_scanners
+ name = generic_mio_trait_advanced_scanners
+ icon = GFX_generic_mio_trait_icon_detection
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_foam_fire_extinguishers
+
+ all_parents = { generic_mio_trait_foam_fire_extinguishers }
+
+ equipment_bonus = {
+ sub_detection = 0.05
+ surface_detection = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_velocity_guns
+ name = generic_mio_trait_high_velocity_guns
+ icon = GFX_generic_mio_department_icon_ship_capital_ship_weapons
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_advanced_scanners
+
+ all_parents = { generic_mio_trait_advanced_scanners }
+
+ limit_to_equipment_type = { capital_ship }
+
+ equipment_bonus = {
+ hg_armor_piercing = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_capital_destroyer_shells
+ name = generic_mio_trait_capital_destroyer_shells
+ icon = GFX_generic_mio_department_icon_ship_capital_ship_weapons
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_high_velocity_guns
+
+ all_parents = { generic_mio_trait_high_velocity_guns }
+
+ mutually_exclusive = { generic_mio_trait_deck_guns generic_mio_trait_naval_all_purpose_defense_systems }
+
+ limit_to_equipment_type = { capital_ship }
+
+ equipment_bonus = {
+ hg_armor_piercing = 0.05
+ hg_attack = 0.1
+ naval_range = -0.15
+ maximum_speed = -0.08
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_deck_guns
+ name = generic_mio_trait_deck_guns
+ icon = GFX_generic_mio_trait_icon_anti_air_attack
+
+ position = { x=1 y=0 }
+ relative_position_id = generic_mio_trait_capital_destroyer_shells
+
+ all_parents = { generic_mio_trait_high_velocity_guns }
+
+ mutually_exclusive = { generic_mio_trait_capital_destroyer_shells generic_mio_trait_naval_all_purpose_defense_systems }
+
+ equipment_bonus = {
+ anti_air_attack = 0.06
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_naval_all_purpose_defense_systems
+ name = generic_mio_trait_naval_all_purpose_defense_systems
+ icon = GFX_generic_mio_department_icon_ship_capital_ship_armor
+
+ position = { x=1 y=0 }
+ relative_position_id = generic_mio_trait_deck_guns
+
+ all_parents = { generic_mio_trait_high_velocity_guns }
+
+ mutually_exclusive = { generic_mio_trait_capital_destroyer_shells generic_mio_trait_deck_guns }
+
+ limit_to_equipment_type = { capital_ship }
+
+ equipment_bonus = {
+ anti_air_attack = 0.03
+ armor_value = 0.03
+ lg_attack = 0.03
+ naval_range = -0.05
+ maximum_speed = -0.04
+ }
+ }
+}
+
+
+
+
+######## ## ### ## ## ######## ######
+## ## ## ## ## ### ## ## ## ##
+## ## ## ## ## #### ## ## ##
+######## ## ## ## ## ## ## ###### ######
+## ## ######### ## #### ## ##
+## ## ## ## ## ### ## ## ##
+## ######## ## ## ## ## ######## ######
+
+
+
+#GENERAL AIRCRAFT MANUFACTURER - Based on Focker (HOL)
+generic_general_aircraft_organization = {
+ icon = GFX_idea_generic_air_manufacturer_1
+
+ allowed = {
+ always = yes
+ }
+
+ equipment_type = {
+ mio_cat_eq_all_small_plane
+ mio_cat_eq_all_medium_plane
+ mio_cat_eq_all_large_plane
+ }
+
+ research_categories = { air_equipment }
+
+ tree_header_text = {
+ text = mio_header_fighter_aircraft
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_bomber_aircraft
+ x = 4
+ }
+
+ tree_header_text = {
+ text = mio_header_naval_aircraft
+ x = 7
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_general_aircraft_designer
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+ production_bonus = {
+ production_capacity_factor = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_conservative_designs
+ name = generic_mio_trait_conservative_designs
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=4 y=0 }
+
+ equipment_bonus = {
+ reliability = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_fighter_aircraft_specialists
+ name = generic_mio_trait_fighter_aircraft_specialists
+ icon = GFX_generic_mio_department_icon_plane_fighter_engine
+
+ position = { x=-3 y=1 }
+ relative_position_id = generic_mio_trait_conservative_designs
+
+ all_parents = { generic_mio_trait_conservative_designs }
+
+ limit_to_equipment_type = { mio_cat_eq_only_light_fighter_no_cv medium_plane_fighter_airframe medium_plane_scout_plane_airframe }
+
+ equipment_bonus = {
+ air_range = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_speed_design
+ name = generic_mio_trait_high_speed_design
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_fighter_aircraft_specialists
+
+ all_parents = { generic_mio_trait_fighter_aircraft_specialists }
+
+ mutually_exclusive = { generic_mio_trait_agility_wing_design }
+
+ limit_to_equipment_type = { mio_cat_eq_only_light_fighter_no_cv medium_plane_fighter_airframe medium_plane_scout_plane_airframe }
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_agility_wing_design
+ name = generic_mio_trait_agility_wing_design
+ icon = GFX_generic_mio_trait_icon_air_agility
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_fighter_aircraft_specialists
+
+ all_parents = { generic_mio_trait_fighter_aircraft_specialists }
+
+ mutually_exclusive = { generic_mio_trait_high_speed_design }
+
+ limit_to_equipment_type = { mio_cat_eq_only_light_fighter_no_cv medium_plane_fighter_airframe medium_plane_scout_plane_airframe }
+
+ equipment_bonus = {
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_fighter_aircraft_production
+ name = generic_mio_trait_fighter_aircraft_production
+ icon = GFX_generic_mio_department_icon_plane_fighter_production
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_high_speed_design
+
+ any_parent = { generic_mio_trait_high_speed_design generic_mio_trait_agility_wing_design }
+
+ limit_to_equipment_type = { mio_cat_eq_only_light_fighter_no_cv medium_plane_fighter_airframe medium_plane_scout_plane_airframe }
+
+ production_bonus = {
+ production_capacity_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_bomber_aircraft_specialists
+ name = generic_mio_trait_bomber_aircraft_specialists
+ icon = GFX_generic_mio_department_icon_plane_strategic_bomber_engine
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_conservative_designs
+
+ all_parents = { generic_mio_trait_conservative_designs }
+
+ limit_to_equipment_type = { small_plane_cas_airframe mio_cat_eq_only_tactical_bomber mio_cat_eq_only_strategic_bomber }
+ equipment_bonus = {
+ air_range = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_bomb_trucks
+ name = generic_mio_trait_bomb_trucks
+ icon = GFX_generic_mio_trait_icon_defense
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_bomber_aircraft_specialists
+
+ all_parents = { generic_mio_trait_bomber_aircraft_specialists }
+
+ mutually_exclusive = { generic_mio_trait_fast_bombers }
+
+ limit_to_equipment_type = { small_plane_cas_airframe mio_cat_eq_only_tactical_bomber mio_cat_eq_only_strategic_bomber }
+
+ equipment_bonus = {
+ air_defence = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_fast_bombers
+ name = generic_mio_trait_fast_bombers
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_bomber_aircraft_specialists
+
+ all_parents = { generic_mio_trait_bomber_aircraft_specialists }
+
+ mutually_exclusive = { generic_mio_trait_bomb_trucks }
+
+ limit_to_equipment_type = { small_plane_cas_airframe mio_cat_eq_only_tactical_bomber mio_cat_eq_only_strategic_bomber }
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_bomber_aircraft_production
+ name = generic_mio_trait_bomber_aircraft_production
+ icon = GFX_generic_mio_department_icon_plane_strategic_bomber_production
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_bomb_trucks
+
+ any_parent = { generic_mio_trait_bomb_trucks generic_mio_trait_fast_bombers }
+
+ limit_to_equipment_type = { small_plane_cas_airframe mio_cat_eq_only_tactical_bomber mio_cat_eq_only_strategic_bomber }
+
+ production_bonus = {
+ production_capacity_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_naval_aircraft_specialists
+ name = generic_mio_trait_naval_aircraft_specialists
+ icon = GFX_generic_mio_department_icon_plane_cv_naval_bomber_engine
+
+ position = { x=3 y=1 }
+ relative_position_id = generic_mio_trait_conservative_designs
+
+ all_parents = { generic_mio_trait_conservative_designs }
+
+ limit_to_equipment_type = { small_plane_naval_bomber_airframe mio_cat_eq_all_cv_aircraft large_plane_maritime_patrol_plane_airframe }
+
+ equipment_bonus = {
+ air_range = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_naval_strike
+ name = generic_mio_trait_naval_strike
+ icon = GFX_generic_mio_trait_icon_torpedo_attack
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_naval_aircraft_specialists
+
+ all_parents = { generic_mio_trait_naval_aircraft_specialists }
+
+ mutually_exclusive = { generic_mio_trait_naval_air_patrol }
+
+ limit_to_equipment_type = { small_plane_naval_bomber_airframe mio_cat_eq_all_cv_aircraft large_plane_maritime_patrol_plane_airframe }
+
+ equipment_bonus = {
+ naval_strike_targetting = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_naval_air_patrol
+ name = generic_mio_trait_naval_air_patrol
+ icon = GFX_generic_mio_trait_icon_surface_detection
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_naval_aircraft_specialists
+
+ all_parents = { generic_mio_trait_naval_aircraft_specialists }
+
+ mutually_exclusive = { generic_mio_trait_naval_strike }
+
+ limit_to_equipment_type = { small_plane_naval_bomber_airframe mio_cat_eq_all_cv_aircraft large_plane_maritime_patrol_plane_airframe }
+
+ equipment_bonus = {
+ surface_detection = 0.05
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_naval_aircraft_production
+ name = generic_mio_trait_naval_aircraft_production
+ icon = GFX_generic_mio_department_icon_plane_cv_naval_bomber_production
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_naval_strike
+
+ any_parent = { generic_mio_trait_naval_strike generic_mio_trait_naval_air_patrol }
+
+ limit_to_equipment_type = { small_plane_naval_bomber_airframe mio_cat_eq_all_cv_aircraft large_plane_maritime_patrol_plane_airframe }
+
+ production_bonus = {
+ production_capacity_factor = 0.05
+ }
+ }
+}
+
+#LIGHT AIRCRAFT MANUFACTURER - Based on MESSERSCHMIDT (GER)
+generic_light_aircraft_organization = {
+ icon = GFX_idea_generic_air_manufacturer_1
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = {
+ mio_cat_eq_only_light_fighter
+ }
+
+ research_categories = { mio_cat_all_light_fighter_and_modules }
+
+ tree_header_text = {
+ text = mio_header_production
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_engines
+ x = 3
+ }
+
+ tree_header_text = {
+ text = mio_header_wings
+ x = 5
+ }
+
+ tree_header_text = {
+ text = mio_header_weapons
+ x = 7
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_light_aircraft_designer
+
+ equipment_bonus = {
+ air_agility = 0.05
+ maximum_speed = 0.05
+ air_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_expanded_production_facilities
+ name = generic_mio_trait_expanded_production_facilities
+ icon = GFX_generic_mio_department_icon_plane_fighter_line_efficiency
+
+ position = { x=2 y=0 }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_fixed_tailwheels
+ name = generic_mio_trait_fixed_tailwheels
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_expanded_production_facilities
+
+ all_parents = { generic_mio_trait_expanded_production_facilities }
+
+ equipment_bonus = {
+ reliability = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_removable_wings
+ name = generic_mio_trait_removable_wings
+ icon = GFX_generic_mio_department_icon_plane_fighter_line_efficiency
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_fixed_tailwheels
+
+ all_parents = { generic_mio_trait_fixed_tailwheels }
+
+ equipment_bonus = {
+ reliability = 0.05
+ }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_liquid_cooled_engines
+ name = generic_mio_trait_liquid_cooled_engines
+ icon = GFX_generic_mio_trait_icon_air_agility
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_expanded_production_facilities
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_maritime_duties
+ name = generic_mio_trait_maritime_duties
+ icon = GFX_generic_mio_trait_icon_torpedo_attack
+
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_liquid_cooled_engines
+
+ all_parents = { generic_mio_trait_liquid_cooled_engines }
+
+ equipment_bonus = {
+ air_range = 0.05
+ naval_strike_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_aerodynamics
+ name = generic_mio_trait_advanced_aerodynamics
+ icon = GFX_generic_mio_trait_icon_air_agility
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_liquid_cooled_engines
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_fuselage_ordinance_rack
+ name = generic_mio_trait_fuselage_ordinance_rack
+ icon = GFX_generic_mio_trait_icon_air_agility
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_advanced_aerodynamics
+
+ all_parents = { generic_mio_trait_advanced_aerodynamics }
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_ongoing_developmental_upgrades
+ name = generic_mio_trait_ongoing_developmental_upgrades
+ icon = GFX_generic_mio_department_icon_facilities
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_liquid_cooled_engines
+
+ all_parents = { generic_mio_trait_liquid_cooled_engines generic_mio_trait_advanced_aerodynamics }
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_heavier_airframe
+ name = generic_mio_trait_heavier_airframe
+ icon = GFX_generic_mio_department_icon_plane_fighter_combat
+
+ position = { x=-2 y=1 }
+ relative_position_id = generic_mio_trait_ongoing_developmental_upgrades
+
+ all_parents = { generic_mio_trait_ongoing_developmental_upgrades }
+
+ mutually_exclusive = { generic_mio_trait_maximum_wing_loads generic_mio_trait_gun_pods }
+
+ equipment_bonus = {
+ air_attack = 0.05
+ air_ground_attack = 0.05
+ naval_strike_attack = 0.05
+ air_defence = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_maximum_wing_loads
+ name = generic_mio_trait_maximum_wing_loads
+ icon = GFX_generic_mio_trait_icon_air_agility
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_ongoing_developmental_upgrades
+
+ all_parents = { generic_mio_trait_ongoing_developmental_upgrades }
+
+ mutually_exclusive = { generic_mio_trait_heavier_airframe generic_mio_trait_gun_pods }
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_gun_pods
+ name = generic_mio_trait_gun_pods
+ icon = GFX_generic_mio_trait_icon_air_ground_attack
+
+ position = { x=2 y=1 }
+ relative_position_id = generic_mio_trait_ongoing_developmental_upgrades
+
+ all_parents = { generic_mio_trait_ongoing_developmental_upgrades }
+
+ mutually_exclusive = { generic_mio_trait_heavier_airframe generic_mio_trait_maximum_wing_loads }
+
+ equipment_bonus = {
+ air_ground_attack = 0.1
+ air_agility = -0.03
+ air_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_multi_purpose_aircraft
+ name = generic_mio_trait_multi_purpose_aircraft
+ icon = GFX_generic_mio_department_icon_plane_fighter_combat
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_heavier_airframe
+
+ any_parent = { generic_mio_trait_heavier_airframe generic_mio_trait_maximum_wing_loads generic_mio_trait_gun_pods }
+
+ mutually_exclusive = { generic_mio_trait_fighter_specialization generic_mio_trait_close_air_support_specialization }
+
+ equipment_bonus = {
+ air_attack = 0.05
+ air_ground_attack = 0.05
+ naval_strike_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_fighter_specialization
+ name = generic_mio_trait_fighter_specialization
+ icon = GFX_generic_mio_department_icon_plane_fighter_engine
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_maximum_wing_loads
+
+ any_parent = { generic_mio_trait_heavier_airframe generic_mio_trait_maximum_wing_loads generic_mio_trait_gun_pods }
+
+ mutually_exclusive = { generic_mio_trait_multi_purpose_aircraft generic_mio_trait_close_air_support_specialization }
+
+ equipment_bonus = {
+ air_attack = 0.05
+ air_agility = 0.03
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_close_air_support_specialization
+ name = generic_mio_trait_close_air_support_specialization
+ icon = GFX_generic_mio_trait_icon_air_ground_attack
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_gun_pods
+
+ any_parent = { generic_mio_trait_heavier_airframe generic_mio_trait_maximum_wing_loads generic_mio_trait_gun_pods }
+
+ mutually_exclusive = { generic_mio_trait_multi_purpose_aircraft generic_mio_trait_fighter_specialization }
+
+ equipment_bonus = {
+ air_ground_attack = 0.05
+ air_defence = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_flexible_design
+ name = generic_mio_trait_flexible_design
+ icon = GFX_generic_mio_trait_icon_defense
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_multi_purpose_aircraft
+
+ all_parents = { generic_mio_trait_multi_purpose_aircraft }
+
+ equipment_bonus = {
+ air_range = 0.05
+ air_defence = 0.05
+ air_attack = 0.02
+ air_ground_attack = 0.02
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_fighter_expertise
+ name = generic_mio_trait_fighter_expertise
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_fighter_specialization
+
+ all_parents = { generic_mio_trait_fighter_specialization }
+
+ equipment_bonus = {
+ air_range = 0.05
+ maximum_speed = 0.05
+ air_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_close_air_support_expertise
+ name = generic_mio_trait_close_air_support_expertise
+ icon = GFX_generic_mio_trait_icon_naval_range
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_close_air_support_specialization
+
+ all_parents = { generic_mio_trait_close_air_support_specialization }
+
+ equipment_bonus = {
+ air_ground_attack = 0.05
+ air_range = 0.05
+ air_defence = 0.05
+ }
+ }
+}
+
+
+#MEDIUM AIRCRAFT MANUFACTURER - Based on Dornier / Caproni / de Havilland
+generic_medium_aircraft_organization = {
+ icon = GFX_idea_generic_air_manufacturer_3
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = {
+ mio_cat_eq_all_medium_plane
+ transport_plane_equipment
+ }
+
+ research_categories = { mio_cat_all_medium_aircraft_and_modules }
+
+ tree_header_text = {
+ text = mio_header_production
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_engines
+ x = 3
+ }
+
+ tree_header_text = {
+ text = mio_header_wings
+ x = 5
+ }
+
+ tree_header_text = {
+ text = mio_header_weapons
+ x = 7
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_multi_role_tactical_aircraft
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ surface_detection = 0.05
+ air_ground_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_narrow_build
+ name = generic_mio_trait_narrow_build
+ icon = GFX_generic_mio_department_icon_plane_medium_line_efficiency
+
+ position = { x=1 y=0 }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_defence = 0.05
+ }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_mixed_material_construction
+ name = generic_mio_trait_mixed_material_construction
+ icon = GFX_generic_mio_department_icon_plane_medium_line_efficiency
+
+ position = { x=1 y=0 }
+ relative_position_id = generic_mio_trait_narrow_build
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_multi_role_transport
+ name = generic_mio_trait_multi_role_transport
+ icon = GFX_generic_mio_department_icon_air_transport_technology
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_mixed_material_construction
+
+ all_parents = { generic_mio_trait_mixed_material_construction }
+
+ limit_to_equipment_type = { transport_plane_equipment }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.05
+ production_efficiency_cap_factor = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_refined_engines
+ name = generic_mio_trait_refined_engines
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_mixed_material_construction
+
+ all_parents = { generic_mio_trait_mixed_material_construction }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_twin_tail
+ name = generic_mio_trait_twin_tail
+ icon = GFX_generic_mio_trait_icon_air_agility
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_mixed_material_construction
+
+ mutually_exclusive = { generic_mio_trait_reinforced_wing_braces }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_reinforced_wing_braces
+ name = generic_mio_trait_reinforced_wing_braces
+ icon = GFX_generic_mio_trait_icon_air_ground_attack
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_twin_tail
+
+ mutually_exclusive = { generic_mio_trait_twin_tail }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_ground_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_expanded_cockpit
+ name = generic_mio_trait_expanded_cockpit
+ icon = GFX_generic_mio_department_icon_plane_medium_combat
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_twin_tail
+
+ any_parent = { generic_mio_trait_twin_tail generic_mio_trait_reinforced_wing_braces }
+
+ mutually_exclusive = { generic_mio_trait_metal_nose_replacement }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_ground_attack = 0.05
+ air_bombing = 0.05 #TODO_Manu: Not working
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_metal_nose_replacement
+ name = generic_mio_trait_metal_nose_replacement
+ icon = GFX_generic_mio_trait_icon_defense
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_reinforced_wing_braces
+
+ any_parent = { generic_mio_trait_twin_tail generic_mio_trait_reinforced_wing_braces }
+
+ mutually_exclusive = { generic_mio_trait_expanded_cockpit }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_defence = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_extra_machine_guns
+ name = generic_mio_trait_extra_machine_guns
+ icon = GFX_generic_mio_department_icon_plane_medium_combat
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_reinforced_wing_braces
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_ground_attack = 0.1
+ build_cost_ic = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_streamlined_fuselage
+ name = generic_mio_trait_streamlined_fuselage
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_expanded_cockpit
+
+ all_parents = { generic_mio_trait_refined_engines }
+ all_parents = { generic_mio_trait_extra_machine_guns }
+ any_parent = { generic_mio_trait_expanded_cockpit generic_mio_trait_metal_nose_replacement }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_defence = 0.05
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_adaptable_build
+ name = generic_mio_trait_adaptable_build
+ icon = GFX_generic_mio_department_icon_plane_medium_engine
+
+ position = { x=-2 y=1 }
+ relative_position_id = generic_mio_trait_streamlined_fuselage
+
+ all_parents = { generic_mio_trait_streamlined_fuselage }
+
+ mutually_exclusive = { generic_mio_trait_heavy_fighter_specialization generic_mio_trait_tactical_bomber_specialization }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_range = 0.05
+ }
+
+ production_bonus = {
+ production_capacity_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_heavy_fighter_specialization
+ name = generic_mio_trait_heavy_fighter_specialization
+ icon = GFX_generic_mio_department_icon_plane_medium_quality
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_streamlined_fuselage
+
+ all_parents = { generic_mio_trait_streamlined_fuselage }
+
+ mutually_exclusive = { generic_mio_trait_adaptable_build generic_mio_trait_tactical_bomber_specialization }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_range = 0.05
+ air_attack = 0.05
+ air_defence = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_tactical_bomber_specialization
+ name = generic_mio_trait_tactical_bomber_specialization
+ icon = GFX_generic_mio_department_icon_plane_medium_combat
+
+ position = { x=2 y=1 }
+ relative_position_id = generic_mio_trait_streamlined_fuselage
+
+ all_parents = { generic_mio_trait_streamlined_fuselage }
+
+ mutually_exclusive = { generic_mio_trait_adaptable_build generic_mio_trait_heavy_fighter_specialization }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_range = 0.05
+ air_ground_attack = 0.05
+ air_defence = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_skip_bombing
+ name = generic_mio_trait_skip_bombing
+ icon = GFX_generic_mio_trait_icon_torpedo_attack
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_reinforced_wing_braces
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ naval_strike_attack = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_frequency_direction_finding
+ name = generic_mio_trait_high_frequency_direction_finding
+ icon = GFX_generic_mio_trait_icon_sub_detection
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_skip_bombing
+
+ all_parents = { generic_mio_trait_skip_bombing }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ sub_detection = 0.05
+ naval_strike_attack = 0.03
+ }
+ }
+}
+
+
+#HEAVY AIRCRAFT MANUFACTURER - Based on John Brown (ENG)
+generic_heavy_aircraft_organization = {
+ icon = GFX_idea_generic_air_manufacturer_2
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = {
+ large_plane_airframe
+ large_plane_maritime_patrol_plane_airframe
+ transport_plane_equipment
+ }
+
+ research_categories = { mio_cat_all_heavy_aircraft_and_modules }
+
+ tree_header_text = {
+ text = mio_header_design_department
+ x = 2
+ }
+
+ tree_header_text = {
+ text = mio_header_operational_department
+ x = 8
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_heavy_aircraft_designer
+
+ limit_to_equipment_type = { large_plane_airframe large_plane_maritime_patrol_plane_airframe }
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+ equipment_bonus = {
+ air_bombing = 0.05
+ air_agility = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_reinforced_frames
+ name = generic_mio_trait_reinforced_frames
+ icon = GFX_generic_mio_trait_icon_defense
+
+ position = { x=2 y=0 }
+
+ limit_to_equipment_type = { large_plane_airframe large_plane_maritime_patrol_plane_airframe }
+
+ equipment_bonus = {
+ air_defence = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_standardized_alloys
+ name = generic_mio_trait_standardized_alloys
+ icon = GFX_generic_mio_trait_icon_resources
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_reinforced_frames
+
+ any_parent = { generic_mio_trait_reinforced_frames }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.05
+ production_resource_penalty_factor = -0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_transport_conversions
+ name = generic_mio_trait_transport_conversions
+ icon = GFX_generic_mio_department_icon_air_transport_production
+
+ position = { x=-2 y=1 }
+ relative_position_id = generic_mio_trait_standardized_alloys
+
+ any_parent = { generic_mio_trait_standardized_alloys }
+
+ limit_to_equipment_type = { transport_plane_equipment }
+
+ production_bonus = {
+ production_capacity_factor = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_drop_hammer_alloy_straining
+ name = generic_mio_trait_drop_hammer_alloy_straining
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_standardized_alloys
+
+ any_parent = { generic_mio_trait_standardized_alloys }
+
+ limit_to_equipment_type = { large_plane_airframe large_plane_maritime_patrol_plane_airframe }
+
+ equipment_bonus = {
+ air_defence = 0.05
+ reliability = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_refined_secondary_aluminium
+ name = generic_mio_trait_refined_secondary_aluminium
+ icon = GFX_generic_mio_trait_icon_resources
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_drop_hammer_alloy_straining
+
+ any_parent = { generic_mio_trait_drop_hammer_alloy_straining }
+
+ mutually_exclusive = { generic_mio_trait_high_quality_aluminium_alloys }
+
+ limit_to_equipment_type = { large_plane_airframe large_plane_maritime_patrol_plane_airframe }
+
+ production_bonus = {
+ production_capacity_factor = 0.05
+ production_resource_need_factor = -0.15
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_quality_aluminium_alloys
+ name = generic_mio_trait_high_quality_aluminium_alloys
+ icon = GFX_generic_mio_trait_icon_air_agility
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_drop_hammer_alloy_straining
+
+ any_parent = { generic_mio_trait_drop_hammer_alloy_straining }
+
+ mutually_exclusive = { generic_mio_trait_refined_secondary_aluminium }
+
+ limit_to_equipment_type = { large_plane_airframe large_plane_maritime_patrol_plane_airframe }
+
+ equipment_bonus = {
+ air_agility = 0.05
+ reliability = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_pressurized_cockpit
+ name = generic_mio_trait_pressurized_cockpit
+ icon = GFX_generic_mio_trait_icon_naval_range
+
+ position = { x=3 y=1 }
+ relative_position_id = generic_mio_trait_reinforced_frames
+
+ any_parent = { generic_mio_trait_reinforced_frames generic_mio_trait_extended_rear_fuselage }
+
+ limit_to_equipment_type = { large_plane_airframe large_plane_maritime_patrol_plane_airframe }
+
+ equipment_bonus = {
+ air_range = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_turbochargers
+ name = generic_mio_trait_advanced_turbochargers
+ icon = GFX_generic_mio_trait_icon_air_agility
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_pressurized_cockpit
+
+ any_parent = { generic_mio_trait_pressurized_cockpit }
+
+ limit_to_equipment_type = { large_plane_airframe large_plane_maritime_patrol_plane_airframe }
+
+ equipment_bonus = {
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_extended_rear_fuselage
+ name = generic_mio_trait_extended_rear_fuselage
+ icon = GFX_generic_mio_trait_icon_strategic_attack
+
+ position = { x=6 y=0 }
+ relative_position_id = generic_mio_trait_reinforced_frames
+
+ limit_to_equipment_type = { large_plane_airframe large_plane_maritime_patrol_plane_airframe }
+
+ equipment_bonus = {
+ air_bombing = 0.05
+ naval_strike_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_auto_levelled_bombsights
+ name = generic_mio_trait_auto_levelled_bombsights
+ icon = GFX_generic_mio_trait_icon_strategic_attack
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_extended_rear_fuselage
+
+ any_parent = { generic_mio_trait_extended_rear_fuselage }
+
+ mutually_exclusive = { generic_mio_trait_air_deployed_sonobuoys }
+
+ limit_to_equipment_type = { large_plane_airframe large_plane_maritime_patrol_plane_airframe }
+
+ equipment_bonus = {
+ air_bombing = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_air_deployed_sonobuoys
+ name = generic_mio_trait_air_deployed_sonobuoys
+ icon = GFX_generic_mio_trait_icon_detection
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_extended_rear_fuselage
+
+ any_parent = { generic_mio_trait_extended_rear_fuselage }
+
+ mutually_exclusive = { generic_mio_trait_auto_levelled_bombsights }
+
+ limit_to_equipment_type = { large_plane_airframe large_plane_maritime_patrol_plane_airframe }
+
+ equipment_bonus = {
+ sub_detection = 0.05
+ surface_detection = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_cockpit_controlled_remote_gun_turrets
+ name = generic_mio_trait_cockpit_controlled_remote_gun_turrets
+ icon = GFX_generic_mio_trait_icon_anti_air_attack
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_auto_levelled_bombsights
+
+ any_parent = { generic_mio_trait_auto_levelled_bombsights generic_mio_trait_air_deployed_sonobuoys }
+
+ limit_to_equipment_type = { large_plane_airframe large_plane_maritime_patrol_plane_airframe }
+
+ equipment_bonus = {
+ air_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_flying_fortress
+ name = generic_mio_trait_flying_fortress
+ icon = GFX_generic_mio_department_icon_plane_general_engine
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_cockpit_controlled_remote_gun_turrets
+
+ any_parent = { generic_mio_trait_cockpit_controlled_remote_gun_turrets }
+
+ mutually_exclusive = { generic_mio_trait_advanced_instruments }
+
+ limit_to_equipment_type = { large_plane_airframe large_plane_maritime_patrol_plane_airframe }
+
+ equipment_bonus = {
+ air_defence = 0.15
+ air_range = 0.15
+ air_agility = -0.05
+ fuel_consumption = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_instruments
+ name = generic_mio_trait_advanced_instruments
+ icon = GFX_generic_mio_trait_icon_strategic_attack
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_cockpit_controlled_remote_gun_turrets
+
+ any_parent = { generic_mio_trait_cockpit_controlled_remote_gun_turrets }
+
+ mutually_exclusive = { generic_mio_trait_flying_fortress }
+
+ limit_to_equipment_type = { large_plane_airframe large_plane_maritime_patrol_plane_airframe }
+
+ equipment_bonus = {
+ air_bombing = 0.05
+ naval_strike_targetting = 0.05
+ }
+ }
+}
+
+
+#CAS AIRCRAFT MANUFACTURER - Based on Junkers / Ilyushin
+generic_cas_aircraft_organization = {
+ icon = GFX_idea_generic_air_manufacturer_1
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = {
+ small_plane_cas_airframe
+ cv_small_plane_cas_airframe
+ }
+
+ research_categories = { mio_cat_all_cas_and_modules }
+
+ tree_header_text = {
+ text = mio_header_production
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_engines
+ x = 3
+ }
+
+ tree_header_text = {
+ text = mio_header_wings
+ x = 5
+ }
+
+ tree_header_text = {
+ text = mio_header_weapons
+ x = 7
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_cas_aircraft_designer
+
+ equipment_bonus = {
+ air_ground_attack = 0.05
+ maximum_speed = -0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_selectional_construction
+ name = generic_mio_trait_selectional_construction
+ icon = GFX_generic_mio_department_icon_plane_cas_line_efficiency
+
+ position = { x=0 y=0 }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_low_altitude_attacks
+ name = generic_mio_trait_low_altitude_attacks
+ icon = GFX_generic_mio_trait_icon_defense
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_selectional_construction
+
+ equipment_bonus = {
+ air_defence = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_canopies_and_firewalls
+ name = generic_mio_trait_canopies_and_firewalls
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=1 y=0 }
+ relative_position_id = generic_mio_trait_selectional_construction
+
+ equipment_bonus = {
+ air_defence = 0.05
+ reliability = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_automatic_pull_out
+ name = generic_mio_trait_automatic_pull_out
+ icon = GFX_generic_mio_trait_icon_air_ground_attack
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_canopies_and_firewalls
+
+ all_parents = { generic_mio_trait_canopies_and_firewalls }
+
+ equipment_bonus = {
+ air_ground_attack = 0.05
+ reliability = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_integrated_armor_designs
+ name = generic_mio_trait_integrated_armor_designs
+ icon = GFX_generic_mio_trait_icon_defense
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_canopies_and_firewalls
+
+ all_parents = { generic_mio_trait_canopies_and_firewalls }
+
+ equipment_bonus = {
+ air_defence = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_gull_wings
+ name = generic_mio_trait_gull_wings
+ icon = GFX_generic_mio_trait_icon_air_ground_attack
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_low_altitude_attacks
+
+ mutually_exclusive = { generic_mio_trait_reinforced_wings }
+
+ equipment_bonus = {
+ air_ground_attack = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_reinforced_wings
+ name = generic_mio_trait_reinforced_wings
+ icon = GFX_generic_mio_department_icon_plane_cas_combat
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_gull_wings
+
+ mutually_exclusive = { generic_mio_trait_gull_wings }
+
+ equipment_bonus = {
+ air_ground_attack = 0.03
+ air_attack = 0.03
+ air_defence = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_heavily_armed_aircraft
+ name = generic_mio_trait_heavily_armed_aircraft
+ icon = GFX_generic_mio_department_icon_plane_cas_combat
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_gull_wings
+
+ any_parent = { generic_mio_trait_gull_wings generic_mio_trait_reinforced_wings }
+
+ equipment_bonus = {
+ air_attack = 0.05
+ air_ground_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_air_brakes
+ name = generic_mio_trait_air_brakes
+ icon = GFX_generic_mio_trait_icon_air_ground_attack
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_gull_wings
+
+ all_parents = { generic_mio_trait_gull_wings }
+
+ equipment_bonus = {
+ air_ground_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_wingborne_fuel_tanks
+ name = generic_mio_trait_wingborne_fuel_tanks
+ icon = GFX_generic_mio_trait_icon_naval_range
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_reinforced_wings
+
+ all_parents = { generic_mio_trait_reinforced_wings }
+
+ equipment_bonus = {
+ air_range = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_bombs
+ name = generic_mio_trait_bombs
+ icon = GFX_generic_mio_trait_icon_air_ground_attack
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_air_brakes
+
+ all_parents = { generic_mio_trait_air_brakes }
+
+ mutually_exclusive = { generic_mio_trait_rockets }
+
+ equipment_bonus = {
+ air_ground_attack = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_rockets
+ name = generic_mio_trait_rockets
+ icon = GFX_generic_mio_department_icon_plane_cas_combat
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_wingborne_fuel_tanks
+
+ all_parents = { generic_mio_trait_wingborne_fuel_tanks }
+
+ mutually_exclusive = { generic_mio_trait_bombs }
+
+ equipment_bonus = {
+ air_ground_attack = 0.05
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_heat_bombs
+ name = generic_mio_heat_bombs
+ icon = GFX_generic_mio_trait_icon_air_ground_attack
+
+ position = { x=1 y=0 }
+ relative_position_id = generic_mio_trait_reinforced_wings
+
+ equipment_bonus = {
+ air_ground_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_cluster_bombs
+ name = generic_mio_cluster_bombs
+ icon = GFX_generic_mio_trait_icon_air_ground_attack
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_heat_bombs
+
+ all_parents = { generic_mio_heat_bombs }
+
+ equipment_bonus = {
+ air_ground_attack = 0.05
+ }
+ }
+}
+
+
+#NAVAL AIRCRAFT MANUFACTURER - Based on Junkers / Ilyushin
+generic_naval_aircraft_organization = {
+ icon = GFX_idea_generic_air_manufacturer_1
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = {
+ small_plane_naval_bomber_airframe
+ cv_small_plane_airframe
+ cv_small_plane_cas_airframe
+ cv_small_plane_naval_bomber_airframe
+ }
+
+ research_categories = { mio_cat_all_naval_bomber_and_modules }
+
+ tree_header_text = {
+ text = mio_header_operational_department
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_design_department
+ x = 4
+ }
+
+ tree_header_text = {
+ text = mio_header_engines_department
+ x = 7
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_naval_aircraft_designer
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+
+ production_bonus = {
+ production_capacity_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_navigation_equipment
+ name = generic_mio_trait_navigation_equipment
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=4 y=0 }
+
+ equipment_bonus = {
+ reliability = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_patrol_fuel_tanks
+ name = generic_mio_trait_patrol_fuel_tanks
+ icon = GFX_generic_mio_trait_icon_naval_range
+
+ position = { x=-4 y=1 }
+ relative_position_id = generic_mio_trait_navigation_equipment
+
+ all_parents = { generic_mio_trait_navigation_equipment }
+
+ mutually_exclusive = { generic_mio_trait_internal_torpedo_mountings }
+
+ limit_to_equipment_type = { small_plane_naval_bomber_airframe cv_small_plane_naval_bomber_airframe }
+
+ equipment_bonus = {
+ air_range = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_internal_torpedo_mountings
+ name = generic_mio_trait_internal_torpedo_mountings
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_patrol_fuel_tanks
+
+ all_parents = { generic_mio_trait_navigation_equipment }
+
+ mutually_exclusive = { generic_mio_trait_patrol_fuel_tanks }
+
+ limit_to_equipment_type = { small_plane_naval_bomber_airframe cv_small_plane_naval_bomber_airframe }
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_speed_torpedo_release
+ name = generic_mio_trait_high_speed_torpedo_release
+ icon = GFX_generic_mio_trait_icon_surface_detection
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_patrol_fuel_tanks
+
+ any_parent = { generic_mio_trait_patrol_fuel_tanks generic_mio_trait_internal_torpedo_mountings }
+
+ limit_to_equipment_type = { small_plane_naval_bomber_airframe cv_small_plane_naval_bomber_airframe }
+
+ equipment_bonus = {
+ surface_detection = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_reinforced_fuselage
+ name = generic_mio_trait_reinforced_fuselage
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_navigation_equipment
+
+ all_parents = { generic_mio_trait_navigation_equipment }
+
+ equipment_bonus = {
+ reliability = 0.05
+ air_defence = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_agility_wing_design
+ name = generic_mio_agility_wing_design
+ icon = GFX_generic_mio_trait_icon_air_agility
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_reinforced_fuselage
+
+ all_parents = { generic_mio_trait_reinforced_fuselage }
+
+ mutually_exclusive = { generic_mio_strength_wing_design }
+
+ equipment_bonus = {
+ air_range = 0.05
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_strength_wing_design
+ name = generic_mio_strength_wing_design
+ icon = GFX_generic_mio_trait_icon_defense
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_reinforced_fuselage
+
+ all_parents = { generic_mio_trait_reinforced_fuselage }
+
+ mutually_exclusive = { generic_mio_agility_wing_design }
+
+ equipment_bonus = {
+ air_range = 0.05
+ air_defence = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_high_capacity_ammunition_stores
+ name = generic_mio_high_capacity_ammunition_stores
+ icon = GFX_generic_mio_trait_icon_anti_air_attack
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_agility_wing_design
+
+ all_parents = { generic_mio_agility_wing_design }
+
+ equipment_bonus = {
+ air_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_larger_bomb_loads
+ name = generic_mio_larger_bomb_loads
+ icon = GFX_generic_mio_trait_icon_air_ground_attack
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_strength_wing_design
+
+ all_parents = { generic_mio_strength_wing_design }
+
+ equipment_bonus = {
+ air_ground_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_air_cooled_engines
+ name = generic_mio_air_cooled_engines
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=3 y=1 }
+ relative_position_id = generic_mio_trait_navigation_equipment
+
+ all_parents = { generic_mio_trait_navigation_equipment }
+
+ limit_to_equipment_type = {
+ cv_small_plane_airframe
+ cv_small_plane_cas_airframe
+ cv_small_plane_naval_bomber_airframe
+ }
+
+ equipment_bonus = {
+ reliability = 0.05
+ air_defence = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_multi_stage_super_charger
+ name = generic_mio_multi_stage_super_charger
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_air_cooled_engines
+
+ all_parents = { generic_mio_air_cooled_engines }
+
+ limit_to_equipment_type = {
+ cv_small_plane_airframe
+ }
+
+ equipment_bonus = {
+ air_agility = 0.05
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_water_injection
+ name = generic_mio_water_injection
+ icon = GFX_generic_mio_trait_icon_fuel_consumption
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_multi_stage_super_charger
+
+ all_parents = { generic_mio_multi_stage_super_charger }
+
+ limit_to_equipment_type = {
+ cv_small_plane_airframe
+ }
+
+ equipment_bonus = {
+ fuel_consumption = -0.05
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_advanced_materials
+ name = generic_mio_advanced_materials
+ icon = GFX_generic_mio_trait_icon_build_cost_ic
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_water_injection
+
+ all_parents = { generic_mio_water_injection }
+
+ production_bonus = {
+ production_cost_factor = -0.1
+ production_resource_need_factor = 0.1
+ }
+ }
+}
+
+
+
+#MULTI-ROLE AIRCRAFT MANUFACTURER - Based on Savoia Marchetti (ITA) & Republic
+generic_multi_role_aircraft_organization = {
+ icon = GFX_idea_generic_air_manufacturer_3
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = {
+ mio_cat_eq_all_small_plane
+ mio_cat_eq_all_medium_plane
+ transport_plane_equipment
+ }
+
+ research_categories = { mio_cat_all_light_aircraft_and_modules mio_cat_all_medium_aircraft_and_modules }
+
+ tree_header_text = {
+ text = mio_header_light_aircraft
+ x = 3
+ }
+
+ tree_header_text = {
+ text = mio_header_medium_aircraft
+ x = 6
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_multi_role_aircraft_designer
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_ground_attack = 0.02
+ naval_strike_attack = 0.02
+ air_attack = 0.02
+ air_defence = 0.02
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_armored_cockpit
+ name = generic_mio_trait_armored_cockpit
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=3 y=0 }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_defence = 0.05
+ reliability = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_escort_designs
+ name = generic_mio_trait_escort_designs
+ icon = GFX_generic_mio_trait_icon_naval_range
+
+ position = { x=3 y=0 }
+ relative_position_id = generic_mio_trait_armored_cockpit
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_range = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_light_airframe
+ name = generic_mio_trait_light_airframe
+ icon = GFX_generic_mio_department_icon_plane_light_line_efficiency
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_armored_cockpit
+
+ all_parents = { generic_mio_trait_armored_cockpit generic_mio_trait_escort_designs }
+
+ mutually_exclusive = { generic_mio_trait_medium_airframe }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane }
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_medium_airframe
+ name = generic_mio_trait_medium_airframe
+ icon = GFX_generic_mio_department_icon_plane_medium_line_efficiency
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_escort_designs
+
+ all_parents = { generic_mio_trait_armored_cockpit generic_mio_trait_escort_designs }
+
+ mutually_exclusive = { generic_mio_trait_light_airframe }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_hardened_frames
+ name = generic_mio_trait_hardened_frames
+ icon = GFX_generic_mio_trait_icon_defense
+
+ position = { x=-2 y=1 }
+ relative_position_id = generic_mio_trait_light_airframe
+
+ all_parents = { generic_mio_trait_light_airframe }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane }
+
+ equipment_bonus = {
+ air_defence = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_belly_shackles
+ name = generic_mio_trait_belly_shackles
+ icon = GFX_generic_mio_department_icon_plane_light_combat
+
+ position = { x=1 y=0 }
+ relative_position_id = generic_mio_trait_hardened_frames
+
+ all_parents = { generic_mio_trait_light_airframe }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane }
+
+ equipment_bonus = {
+ air_ground_attack = 0.05
+ naval_strike_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_oversized_propeller
+ name = generic_mio_trait_oversized_propeller
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_light_airframe
+
+ all_parents = { generic_mio_trait_light_airframe }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane }
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_variable_pitch_propellers
+ name = generic_mio_trait_variable_pitch_propellers
+ icon = GFX_generic_mio_trait_icon_air_agility
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_medium_airframe
+
+ all_parents = { generic_mio_trait_medium_airframe }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_upgraded_air_air_weapons
+ name = generic_mio_trait_upgraded_air_air_weapons
+ icon = GFX_generic_mio_trait_icon_anti_air_attack
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_medium_airframe
+
+ all_parents = { generic_mio_trait_medium_airframe }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_reinforced_wing_hardpoints
+ name = generic_mio_trait_reinforced_wing_hardpoints
+ icon = GFX_generic_mio_department_icon_plane_medium_combat
+
+ position = { x=1 y=0 }
+ relative_position_id = generic_mio_trait_upgraded_air_air_weapons
+
+ all_parents = { generic_mio_trait_medium_airframe }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_ground_attack = 0.05
+ naval_strike_attack = 0.05
+ air_bombing = 0.05 #TODO_Manu: NOT WORKING
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_transport_duties
+ name = generic_mio_trait_transport_duties
+ icon = GFX_generic_mio_department_icon_plane_general_production
+
+ position = { x=1 y=0 }
+ relative_position_id = generic_mio_trait_reinforced_wing_hardpoints
+
+ all_parents = { generic_mio_trait_medium_airframe }
+
+ limit_to_equipment_type = { transport_plane_equipment }
+
+ production_bonus = {
+ production_capacity_factor = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_upgraded_engines
+ name = generic_mio_trait_upgraded_engines
+ icon = GFX_generic_mio_department_icon_plane_general_engine
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_light_airframe
+
+ any_parent = { generic_mio_trait_light_airframe generic_mio_trait_medium_airframe }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_not_enough_guns_never_enough_guns
+ name = generic_mio_trait_not_enough_guns_never_enough_guns
+ icon = GFX_generic_mio_department_icon_plane_general_combat
+
+ position = { x=1 y=0 }
+ relative_position_id = generic_mio_trait_upgraded_engines
+
+ any_parent = { generic_mio_trait_light_airframe generic_mio_trait_medium_airframe }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_attack = 0.05
+ air_ground_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_lengthened_wings
+ name = generic_mio_trait_lengthened_wings
+ icon = GFX_generic_mio_trait_icon_naval_range
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_upgraded_engines
+
+ all_parents = { generic_mio_trait_upgraded_engines }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_range = 0.05
+ air_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_bubble_canopy
+ name = generic_mio_trait_bubble_canopy
+ icon = GFX_generic_mio_trait_icon_defense
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_not_enough_guns_never_enough_guns
+
+ all_parents = { generic_mio_trait_not_enough_guns_never_enough_guns }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_defence = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_fighter_specialization
+ name = generic_mio_trait_fighter_specialization
+ icon = GFX_generic_mio_department_icon_plane_general_engine
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_lengthened_wings
+
+ all_parents = { generic_mio_trait_lengthened_wings generic_mio_trait_bubble_canopy }
+
+ mutually_exclusive = { generic_mio_trait_bomber_specialization }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_attack = 0.05
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_bomber_specialization
+ name = generic_mio_trait_bomber_specialization
+ icon = GFX_generic_mio_department_icon_plane_general_combat
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_bubble_canopy
+
+ all_parents = { generic_mio_trait_lengthened_wings generic_mio_trait_bubble_canopy }
+
+ mutually_exclusive = { generic_mio_trait_fighter_specialization }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_ground_attack = 0.03
+ naval_strike_attack = 0.03
+ naval_strike_targetting = 0.03
+ }
+ }
+}
+
+
+#HIGH AGILITY FIGHTER AIRCRAFT MANUFACTURER - Based on Supermarine (ENG)
+generic_high_agility_fighter_aircraft_organization = {
+ icon = GFX_idea_generic_air_manufacturer_1
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = {
+ mio_cat_eq_only_light_fighter
+ }
+
+ research_categories = { mio_cat_all_light_fighter_and_modules }
+
+ tree_header_text = {
+ text = mio_header_production
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_engines
+ x = 3
+ }
+
+ tree_header_text = {
+ text = mio_header_wings
+ x = 5
+ }
+
+ tree_header_text = {
+ text = mio_header_weapons
+ x = 7
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_high_agility_fighters_designer
+
+ equipment_bonus = {
+ air_agility = 0.10
+ air_range = -0.10
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_fabric_skin
+ name = generic_mio_trait_fabric_skin
+ icon = GFX_generic_mio_department_icon_plane_general_production
+
+ position = { x=0 y=0 }
+
+ mutually_exclusive = { generic_mio_trait_metal_skin }
+
+ production_bonus = {
+ production_resource_penalty_factor = 0.05
+ production_capacity_factor = 0.05
+ }
+
+ equipment_bonus = {
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_metal_skin
+ name = generic_mio_trait_metal_skin
+ icon = GFX_generic_mio_trait_icon_defense
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_fabric_skin
+
+ mutually_exclusive = { generic_mio_trait_fabric_skin }
+
+ equipment_bonus = {
+ air_defence = 0.10
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_bigger_engines
+ name = generic_mio_trait_bigger_engines
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=3 y=0 }
+ relative_position_id = generic_mio_trait_fabric_skin
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_octane_fuels
+ name = generic_mio_trait_high_octane_fuels
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_bigger_engines
+
+ all_parents = {
+ generic_mio_trait_bigger_engines
+ }
+
+ equipment_bonus = {
+ maximum_speed = 0.15
+ fuel_consumption_factor = 0.10
+ }
+
+ }
+
+ trait = {
+ token = generic_mio_trait_fuel_injection_engines
+ name = generic_mio_trait_fuel_injection_engines
+ icon = GFX_generic_mio_trait_icon_air_agility
+
+ position = { x=0 y=3 }
+ relative_position_id = generic_mio_trait_bigger_engines
+
+ all_parents = {
+ generic_mio_trait_bigger_engines
+ }
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_subsidiary_suppliers
+ name = generic_mio_trait_subsidiary_suppliers
+ icon = GFX_generic_mio_department_icon_plane_fighter_technology
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_fuel_injection_engines
+
+ all_parents = {
+ generic_mio_trait_fuel_injection_engines
+ }
+
+ mutually_exclusive = { generic_mio_trait_fighter_interceptors }
+
+ production_bonus = {
+ production_efficiency_cap_factor = 0.10
+ production_efficiency_gain_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_cantilever_wing_structure
+ name = generic_mio_trait_cantilever_wing_structure
+ icon = GFX_generic_mio_trait_icon_air_agility
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_bigger_engines
+
+ equipment_bonus = {
+ air_defence = 0.05
+ }
+
+ equipment_bonus = {
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_minimum_weapon_requirements
+ name = generic_mio_trait_minimum_weapon_requirements
+ icon = GFX_generic_mio_trait_icon_anti_air_attack
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_cantilever_wing_structure
+
+ equipment_bonus = {
+ air_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_shortened_wings
+ name = generic_mio_trait_shortened_wings
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_cantilever_wing_structure
+
+ all_parents = {
+ generic_mio_trait_cantilever_wing_structure
+ generic_mio_trait_minimum_weapon_requirements
+ }
+
+ equipment_bonus = {
+ reliability_factor = 0.05
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_interceptor
+ name = generic_mio_trait_interceptor
+ icon = GFX_generic_mio_trait_icon_anti_air_attack
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_shortened_wings
+
+ all_parents = {
+ generic_mio_trait_shortened_wings
+ }
+
+ mutually_exclusive = { generic_mio_trait_gunboat }
+
+ equipment_bonus = {
+ air_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_gunboat
+ name = generic_mio_trait_gunboat
+ icon = GFX_generic_mio_trait_icon_air_ground_attack
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_shortened_wings
+
+ all_parents = {
+ generic_mio_trait_shortened_wings
+ }
+
+ mutually_exclusive = { generic_mio_trait_interceptor }
+
+ equipment_bonus = {
+ air_ground_attack = 0.10
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_stiffened_wings
+ name = generic_mio_trait_stiffened_wings
+ icon = GFX_generic_mio_trait_icon_air_agility
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_interceptor
+
+ any_parent = {
+ generic_mio_trait_interceptor
+ generic_mio_trait_gunboat
+ }
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_fighter_interceptors
+ name = generic_mio_trait_fighter_interceptors
+ icon = GFX_generic_mio_department_icon_plane_fighter_combat
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_stiffened_wings
+
+ all_parents = {
+ generic_mio_trait_stiffened_wings
+ }
+
+ mutually_exclusive = { generic_mio_trait_subsidiary_suppliers }
+
+ equipment_bonus = {
+ air_range = 0.10
+ air_attack = 0.05
+ }
+ }
+}
+
+
+#RANGE FOCUSED AIRCRAFT MANUFACTURER - Based on North American, Lockheed, Fiat Aviazione
+generic_range_focused_aircraft_organization = {
+ icon = GFX_idea_generic_air_manufacturer_1
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = {
+ mio_cat_eq_all_small_plane
+ mio_cat_eq_all_medium_plane
+ transport_plane_equipment
+ }
+
+ research_categories = { mio_cat_all_light_aircraft_and_modules mio_cat_all_medium_aircraft_and_modules }
+
+ tree_header_text = {
+ text = mio_header_production
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_engines
+ x = 3
+ }
+
+ tree_header_text = {
+ text = mio_header_wings
+ x = 5
+ }
+
+ tree_header_text = {
+ text = mio_header_weapons
+ x = 7
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_range_focused_aircraft_designer
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_range = 0.10
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_large_rudders_and_flaps
+ name = generic_mio_trait_large_rudders_and_flaps
+ icon = GFX_generic_mio_trait_icon_air_agility
+
+ position = { x=3 y=0 }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_agility = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_variable_dihedral
+ name = generic_mio_trait_variable_dihedral
+ icon = GFX_generic_mio_department_icon_plane_medium_engine
+
+ position = { x=5 y=0 }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_range = 0.10
+ reliability_factor = 0.10
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_capacity_ammunition
+ name = generic_mio_trait_high_capacity_ammunition
+ icon = GFX_generic_mio_trait_icon_anti_air_attack
+
+ position = { x=7 y=0 }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane mio_cat_eq_all_medium_plane }
+
+ equipment_bonus = {
+ air_attack = 0.10
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_extra_cargo_doors
+ name = generic_mio_trait_extra_cargo_doors
+ icon = GFX_generic_mio_department_icon_air_transport_production
+
+ position = { x=9 y=0 }
+
+ limit_to_equipment_type = { transport_plane_equipment }
+
+ production_bonus = {
+ production_capacity_factor = 0.10
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_air_frame_strength
+ name = generic_mio_trait_improved_air_frame_strength
+ icon = GFX_generic_mio_trait_icon_naval_range
+
+ position = { x=6 y=1 }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ all_parents = {
+ generic_mio_trait_variable_dihedral
+ }
+
+ equipment_bonus = {
+ air_range = 0.10
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_glider_hook_modifications
+ name = generic_mio_trait_glider_hook_modifications
+ icon = GFX_generic_mio_trait_icon_naval_range
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_extra_cargo_doors
+
+ limit_to_equipment_type = { transport_plane_equipment }
+
+ all_parents = {
+ generic_mio_trait_extra_cargo_doors
+ }
+
+ equipment_bonus = {
+ air_range = 0.10
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_production_techniques
+ name = generic_mio_trait_advanced_production_techniques
+ icon = GFX_generic_mio_department_icon_plane_general_production
+
+ position = { x=1 y=2 }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane mio_cat_eq_all_medium_plane }
+
+ available = {
+ owner ={
+ has_tech = advanced_machine_tools
+ }
+ }
+
+ equipment_bonus = {
+ reliability_factor = 0.10
+ }
+
+ production_bonus = {
+ production_capacity_factor = 0.10
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_low_drag_wings
+ name = generic_mio_trait_low_drag_wings
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=5 y=2 }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane mio_cat_eq_all_medium_plane }
+
+ all_parents = {
+ generic_mio_trait_variable_dihedral
+ }
+
+ equipment_bonus = {
+ air_range = 0.10
+ maximum_speed = 0.10
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_strafing_techniques
+ name = generic_mio_trait_strafing_techniques
+ icon = GFX_generic_mio_trait_icon_air_ground_attack
+
+ position = { x=7 y=2 }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane mio_cat_eq_all_medium_plane }
+
+ all_parents = {
+ generic_mio_trait_improved_air_frame_strength
+ generic_mio_trait_high_capacity_ammunition
+ }
+
+ equipment_bonus = {
+ air_ground_attack = 0.10
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_long_range_modifications
+ name = generic_mio_trait_long_range_modifications
+ icon = GFX_generic_mio_trait_icon_naval_range
+
+ position = { x=4 y=3 }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane mio_cat_eq_all_medium_plane }
+
+ all_parents = {
+ generic_mio_trait_large_rudders_and_flaps
+ }
+
+ equipment_bonus = {
+ air_range = 0.10
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_anti_interception_tactics
+ name = generic_mio_trait_anti_interception_tactics
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=6 y=3 }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ all_parents = {
+ generic_mio_trait_low_drag_wings
+ }
+
+ equipment_bonus = {
+ maximum_speed = 0.10
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_explosive_payload
+ name = generic_mio_trait_high_explosive_payload
+ icon = GFX_generic_mio_department_icon_plane_medium_combat
+
+ position = { x=8 y=3 }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ all_parents = {
+ generic_mio_trait_strafing_techniques
+ }
+
+ equipment_bonus = {
+ air_ground_attack = 0.10
+ air_bombing = 0.15
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_long_range_fighters
+ name = generic_mio_trait_long_range_fighters
+ icon = GFX_generic_mio_department_icon_plane_light_engine
+
+ position = { x=3 y=4 }
+
+ limit_to_equipment_type = { mio_cat_eq_all_small_plane }
+
+ all_parents = {
+ generic_mio_trait_advanced_production_techniques
+ generic_mio_trait_long_range_modifications
+ }
+
+ equipment_bonus = {
+ air_range = 0.15
+ air_agility = 0.15
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_heavy_fighters
+ name = generic_mio_trait_heavy_fighters
+ icon = GFX_generic_mio_trait_icon_anti_air_attack
+
+ position = { x=5 y=4 }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ all_parents = {
+ generic_mio_trait_anti_interception_tactics
+ generic_mio_trait_long_range_modifications
+ }
+
+ equipment_bonus = {
+ air_attack = 0.15
+ air_range = 0.10
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_tactical_bombers
+ name = generic_mio_trait_tactical_bombers
+ icon = GFX_generic_mio_trait_icon_strategic_attack
+
+ position = { x=7 y=4 }
+
+ limit_to_equipment_type = { mio_cat_eq_all_medium_plane }
+
+ all_parents = {
+ generic_mio_trait_anti_interception_tactics
+ generic_mio_trait_high_explosive_payload
+ }
+
+ equipment_bonus = {
+ air_bombing = 0.15
+ air_range = 0.10
+ }
+ }
+}
+
+
+
+
+
+## ## ### ######## ######## ######## #### ######## ##
+### ### ## ## ## ## ## ## ## ## ##
+#### #### ## ## ## ## ## ## ## ## ##
+## ### ## ## ## ## ###### ######## ## ###### ##
+## ## ######### ## ## ## ## ## ## ##
+## ## ## ## ## ## ## ## ## ## ##
+## ## ## ## ## ######## ## ## #### ######## ########
+
+
+###########################
+######## Artillery ########
+###########################
+
+generic_artillery_organization = {
+ icon = GFX_idea_generic_artillery_manufacturer_2
+
+ allowed = {
+ always = yes
+ }
+
+ equipment_type = {
+ artillery_equipment
+ anti_tank_equipment
+ anti_air_equipment
+ rocket_artillery_equipment
+ }
+
+ research_categories = {
+ mio_cat_all_artillery_equipment
+ }
+
+ tree_header_text = {
+ text = mio_header_mechanical_design
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_armament_and_ammunition
+ x = 6
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_artillery_manufacturer
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+ production_bonus = {
+ production_cost_factor = -0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_mobile_limbers
+ name = generic_mio_trait_mobile_limbers
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=0 y=0 }
+ mutually_exclusive = { generic_mio_trait_stable_platforms }
+
+ equipment_bonus = {
+ breakthrough = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_stable_platforms
+ name = generic_mio_trait_stable_platforms
+ icon = GFX_generic_mio_trait_icon_defense
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_mobile_limbers
+
+ mutually_exclusive = { generic_mio_trait_mobile_limbers }
+
+ equipment_bonus = {
+ defense = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_hydraulic_recoil_system
+ name = generic_mio_trait_improved_hydraulic_recoil_system
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_mobile_limbers
+
+ any_parent = {
+ generic_mio_trait_stable_platforms
+ generic_mio_trait_mobile_limbers
+ }
+
+ equipment_bonus = {
+ reliability = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_direct_fire_targeting
+ name = generic_mio_trait_improved_direct_fire_targeting
+ icon = GFX_generic_mio_department_icon_anti_tank
+
+ position = { x=-1 y=3 }
+ relative_position_id = generic_mio_trait_improved_hydraulic_recoil_system
+
+ all_parents = {
+ generic_mio_trait_improved_hydraulic_recoil_system
+ }
+
+ mutually_exclusive = { generic_mio_trait_advanced_anti_air_targeting generic_mio_trait_advanced_trajectory_calculations }
+
+ limit_to_equipment_type = {
+ anti_tank_equipment
+ }
+
+ equipment_bonus = {
+ ap_attack = 0.05
+ hard_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_anti_air_targeting
+ name = generic_mio_trait_advanced_anti_air_targeting
+ icon = GFX_generic_mio_department_icon_anti_air
+
+ position = { x=1 y=0 }
+ relative_position_id = generic_mio_trait_improved_direct_fire_targeting
+
+ all_parents = {
+ generic_mio_trait_improved_hydraulic_recoil_system
+ }
+
+ mutually_exclusive = {
+ generic_mio_trait_improved_direct_fire_targeting
+ generic_mio_trait_advanced_trajectory_calculations
+ }
+
+ limit_to_equipment_type = {
+ anti_air_equipment
+ }
+
+ equipment_bonus = {
+ air_attack = 0.07
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_trajectory_calculations
+ name = generic_mio_trait_advanced_trajectory_calculations
+ icon = GFX_generic_mio_department_icon_artillery
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_improved_direct_fire_targeting
+
+ all_parents = {
+ generic_mio_trait_improved_hydraulic_recoil_system
+ }
+
+ mutually_exclusive = {
+ generic_mio_trait_improved_direct_fire_targeting
+ generic_mio_trait_advanced_anti_air_targeting
+ }
+
+ limit_to_equipment_type = {
+ artillery_equipment
+ rocket_artillery_equipment
+ }
+
+ equipment_bonus = {
+ hard_attack = 1
+ breakthrough = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_sliding_breech_block
+ name = generic_mio_trait_sliding_breech_block
+ icon = GFX_generic_mio_trait_icon_soft_attack
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_rapid_fire
+
+ all_parents = {
+ generic_mio_trait_improved_hydraulic_recoil_system
+ generic_mio_trait_rapid_fire
+ }
+
+ equipment_bonus = {
+ soft_attack = 0.03
+ breakthrough = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_rapid_fire
+ name = generic_mio_trait_rapid_fire
+ icon = GFX_generic_mio_department_icon_tank_general_weapons
+
+ position = { x=4 y=0 }
+ relative_position_id = generic_mio_trait_mobile_limbers
+
+ limit_to_equipment_type = {
+ anti_tank_equipment
+ anti_air_equipment
+ }
+
+ equipment_bonus = {
+ soft_attack = 0.1
+ hard_attack = 0.04
+ air_attack = 0.04
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_barrel_forging
+ name = generic_mio_trait_advanced_barrel_forging
+ icon = GFX_generic_mio_trait_icon_efficiency_gain
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_rapid_fire
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_big_guns
+ name = generic_mio_trait_big_guns
+ icon = GFX_generic_mio_trait_icon_soft_attack
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_advanced_barrel_forging
+
+ limit_to_equipment_type = {
+ artillery_equipment
+ rocket_artillery_equipment
+ }
+
+ equipment_bonus = {
+ soft_attack = 0.02
+ build_cost_ic = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_gun_mass_production
+ name = generic_mio_trait_gun_mass_production
+ icon = GFX_generic_mio_department_icon_facilities
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_advanced_barrel_forging
+
+ all_parents = { generic_mio_trait_advanced_barrel_forging }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.03
+ production_efficiency_cap_factor = 0.03
+ }
+
+ organization_modifier = {
+ military_industrial_organization_design_team_assign_cost = -0.15
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_super_charges
+ name = generic_mio_trait_super_charges
+ icon = GFX_generic_mio_department_icon_facilities
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_big_guns
+
+ all_parents = { generic_mio_trait_big_guns }
+
+ limit_to_equipment_type = {
+ artillery_equipment
+ rocket_artillery_equipment
+ }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.03
+ production_efficiency_cap_factor = 0.03
+ }
+
+ organization_modifier = {
+ military_industrial_organization_design_team_assign_cost = -0.15
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_light_weight_barrels
+ name = generic_mio_trait_light_weight_barrels
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_gun_mass_production
+
+ all_parents = {
+ generic_mio_trait_super_charges
+ generic_mio_trait_gun_mass_production
+ generic_mio_trait_sliding_breech_block
+
+ }
+
+ production_bonus = {
+ production_cost_factor = -0.03
+ }
+
+ equipment_bonus = {
+ breakthrough = 0.06
+ defense = 0.1
+ }
+ }
+
+}
+
+
+############################
+###### Infantry Weapons ####
+############################
+
+generic_infantry_equipment_organization = {
+ icon = GFX_idea_generic_infantry_equipment_manufacturer_2
+
+ allowed = {
+ always = yes
+ }
+
+ equipment_type = {
+ infantry_equipment
+ }
+ research_categories = { infantry_weapons }
+
+
+
+ tree_header_text = {
+ text = mio_header_design_and_production
+ x = 3
+ }
+
+ tree_header_text = {
+ text = mio_header_anti_tank
+ x = 8
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_infantry_manufacturer
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+
+ production_bonus = {
+ production_efficiency_cap_factor = 0.03
+ }
+
+ equipment_bonus = {
+ soft_attack = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_drum_pattern_sights
+ name = generic_mio_trait_drum_pattern_sights
+ icon = GFX_generic_mio_trait_icon_defense
+
+ position = { x=1 y=0 }
+
+ equipment_bonus = {
+ defense = 0.035
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_reinforced_stocks
+ name = generic_mio_trait_reinforced_stocks
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=4 y=0 }
+ relative_position_id = generic_mio_trait_drum_pattern_sights
+
+ equipment_bonus = {
+ soft_attack = 0.025
+ reliability = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_bolt_action
+ name = generic_mio_trait_bolt_action
+ icon = GFX_generic_mio_department_icon_infantry_line_efficiency
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_reinforced_stocks
+
+ all_parents = { generic_mio_trait_reinforced_stocks }
+
+ mutually_exclusive = { generic_mio_trait_semi_auto }
+
+ equipment_bonus = {
+ soft_attack = -0.03
+ }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_semi_auto
+ name = generic_mio_trait_semi_auto
+ icon = GFX_generic_mio_trait_icon_soft_attack
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_reinforced_stocks
+
+ all_parents = { generic_mio_trait_reinforced_stocks }
+
+ mutually_exclusive = { generic_mio_trait_bolt_action }
+
+ equipment_bonus = {
+ soft_attack = 0.03
+ breakthrough = 0.03
+ }
+
+ production_bonus = {
+ production_efficiency_gain_factor = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_medium_machineguns
+ name = generic_mio_trait_medium_machineguns
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_bolt_action
+
+ any_parent = { generic_mio_trait_semi_auto generic_mio_trait_bolt_action }
+
+ equipment_bonus = {
+ breakthrough = 0.06
+ build_cost_ic = 0.08
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_barrel_forging
+ name = generic_mio_trait_advanced_barrel_forging
+ icon = GFX_generic_mio_trait_icon_efficiency_gain
+
+ position = { x=2 y=2 }
+ relative_position_id = generic_mio_trait_drum_pattern_sights
+
+ any_parent = { generic_mio_trait_reinforced_stocks generic_mio_trait_drum_pattern_sights }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_mass_rifle_production
+ name = generic_mio_trait_mass_rifle_production
+ icon = GFX_generic_mio_department_icon_facilities
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_advanced_barrel_forging
+
+ all_parents = { generic_mio_trait_advanced_barrel_forging }
+
+ production_bonus = {
+ production_efficiency_cap_factor = 0.03
+ production_cost_factor = -0.03
+ }
+
+ organization_modifier = {
+ military_industrial_organization_design_team_assign_cost = -0.3
+ }
+ }
+
+
+ trait = {
+ token = generic_mio_trait_quality_materials
+ name = generic_mio_trait_quality_materials
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_drum_pattern_sights
+
+ all_parents = { generic_mio_trait_drum_pattern_sights }
+
+ equipment_bonus = {
+ reliability = 0.05
+ }
+
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_small_arms_bullet_design
+ name = generic_mio_trait_improved_small_arms_bullet_design
+ icon = GFX_generic_mio_trait_icon_soft_attack
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_quality_materials
+
+ all_parents = { generic_mio_trait_quality_materials }
+
+ mutually_exclusive = { generic_mio_trait_armor_piercing_rounds }
+
+ equipment_bonus = {
+ soft_attack = 0.05
+ breakthrough = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_armor_piercing_rounds
+ name = generic_mio_trait_armor_piercing_rounds
+ icon = GFX_generic_mio_trait_icon_ap_attack
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_quality_materials
+
+ all_parents = { generic_mio_trait_quality_materials }
+
+ mutually_exclusive = { generic_mio_trait_improved_small_arms_bullet_design }
+
+ equipment_bonus = {
+ ap_attack = 0.25
+ hard_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_heavy_anti_armor_ammunition
+ name = generic_mio_trait_heavy_anti_armor_ammunition
+ icon = GFX_generic_mio_trait_icon_ap_attack
+
+ position = { x=3 y=0 }
+ relative_position_id = generic_mio_trait_reinforced_stocks
+
+ equipment_bonus = {
+ hard_attack = 0.1
+ ap_attack = 0.25
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_vehicle_mounted_capabilities
+ name = generic_mio_trait_vehicle_mounted_capabilities
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_heavy_anti_armor_ammunition
+
+ all_parents = { generic_mio_trait_heavy_anti_armor_ammunition }
+
+ mutually_exclusive = { generic_mio_trait_rubber_cushioned_buttpad }
+
+ equipment_bonus = {
+ breakthrough = 0.06
+ build_cost_ic = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_rubber_cushioned_buttpad
+ name = generic_mio_trait_rubber_cushioned_buttpad
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_heavy_anti_armor_ammunition
+
+ all_parents = { generic_mio_trait_heavy_anti_armor_ammunition }
+
+ mutually_exclusive = { generic_mio_trait_vehicle_mounted_capabilities }
+
+ equipment_bonus = {
+ breakthrough = 0.02
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_anti_vechicle_land_mines
+ name = generic_mio_trait_anti_vechicle_land_mines
+ icon = GFX_generic_mio_department_icon_infantry_quality
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_vehicle_mounted_capabilities
+
+ any_parent = { generic_mio_trait_rubber_cushioned_buttpad generic_mio_trait_vehicle_mounted_capabilities }
+
+ equipment_bonus = {
+ defense = 0.04
+ hard_attack = 0.03
+ build_cost_ic = 0.05
+
+ }
+ }
+
+}
+
+
+###################################
+######## Support Equipment ########
+###################################
+
+generic_support_equipment_organization = {
+ icon = GFX_idea_generic_infantry_equipment_manufacturer_1
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ }
+
+ equipment_type = { infantry_equipment support_equipment }
+ research_categories = { infantry_weapons support_tech }
+
+
+
+ tree_header_text = {
+ text = mio_header_support
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_weapons
+ x = 6.5
+ }
+
+
+ initial_trait = {
+ name = generic_mio_initial_trait_support_equipment_manufacturer
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_material_recycling
+ name = generic_mio_trait_material_recycling
+ icon = GFX_generic_mio_department_icon_support_materials
+
+ position = { x=1 y=0 }
+
+ limit_to_equipment_type = { support_equipment }
+
+ production_bonus = {
+ production_resource_need_factor = -0.15
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_scrap_melting
+ name = generic_mio_trait_scrap_melting
+ icon = GFX_generic_mio_trait_icon_resources
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_material_recycling
+
+ all_parents = { generic_mio_trait_material_recycling }
+
+ mutually_exclusive = { generic_mio_trait_high_quality_material_blend }
+
+ limit_to_equipment_type = { support_equipment }
+
+ equipment_bonus = {
+ reliability = -0.1
+ }
+
+ production_bonus = {
+ production_resource_need_factor = -0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_quality_material_blend
+ name = generic_mio_trait_high_quality_material_blend
+ icon = GFX_generic_mio_trait_icon_efficiency_cap
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_material_recycling
+
+ all_parents = { generic_mio_trait_material_recycling }
+
+ mutually_exclusive = { generic_mio_trait_scrap_melting }
+
+ limit_to_equipment_type = { support_equipment }
+
+ production_bonus = {
+ production_efficiency_cap_factor = 0.05
+ production_resource_need_factor = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_mass_production
+ name = generic_mio_trait_mass_production
+ icon = GFX_generic_mio_trait_icon_efficiency_gain
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_high_quality_material_blend
+
+ any_parent = { generic_mio_trait_high_quality_material_blend generic_mio_trait_scrap_melting }
+
+ limit_to_equipment_type = { support_equipment }
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_research_program
+ name = generic_mio_trait_research_program
+ icon = GFX_generic_mio_department_icon_facilities
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_mass_production
+
+ all_parents = { generic_mio_trait_mass_production }
+
+ mutually_exclusive = { generic_mio_trait_efficient_scale_up }
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.06
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_efficient_scale_up
+ name = generic_mio_trait_efficient_scale_up
+ icon = GFX_generic_mio_department_icon_support_production
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_research_program
+
+ all_parents = { generic_mio_trait_mass_production }
+
+ mutually_exclusive = { generic_mio_trait_research_program }
+
+ limit_to_equipment_type = { support_equipment }
+
+ production_bonus = {
+ production_capacity_factor = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_private_scientists_program
+ name = generic_mio_trait_private_scientists_program
+ icon = GFX_generic_mio_department_icon_facilities
+
+ position = { x=4 y=0 }
+ relative_position_id = generic_mio_trait_material_recycling
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+ }
+
+
+ trait = {
+ token = generic_mio_trait_private_tenders
+ name = generic_mio_trait_private_tenders
+ icon = GFX_generic_mio_department_icon_facilities
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_private_scientists_program
+
+ all_parents = { generic_mio_trait_private_scientists_program }
+
+ organization_modifier = {
+ military_industrial_organization_funds_gain = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_anti_tank_rifle #elephant gun
+ name = generic_mio_trait_anti_tank_rifle
+ icon = GFX_generic_mio_trait_icon_ap_attack
+
+ position = { x=3 y=0 }
+ relative_position_id = generic_mio_trait_private_scientists_program
+
+ limit_to_equipment_type = { infantry_equipment }
+
+ equipment_bonus = {
+ ap_attack = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_single_shot_man_portable_anti_tank_system #Bazooka boom tank ded
+ name = generic_mio_trait_single_shot_man_portable_anti_tank_system
+ icon = GFX_generic_mio_trait_icon_soft_attack
+
+ position = { x=0 y=4 }
+ relative_position_id = generic_mio_trait_anti_tank_rifle
+
+ all_parents = { generic_mio_trait_anti_tank_rifle }
+
+ mutually_exclusive = { generic_mio_trait_light_mortar }
+
+ limit_to_equipment_type = { infantry_equipment }
+
+ equipment_bonus = {
+ hard_attack = 0.1
+ build_cost_ic = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_small_sidearms
+ name = generic_mio_trait_small_sidearms
+ icon = GFX_generic_mio_trait_icon_defense
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_private_tenders
+
+ all_parents = { generic_mio_trait_private_tenders }
+
+ limit_to_equipment_type = { infantry_equipment }
+
+ equipment_bonus = {
+ defense = 0.02
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_light_mortar
+ name = generic_mio_trait_light_mortar
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=0 y=1 }
+ relative_position_id = generic_mio_trait_small_sidearms
+
+ all_parents = { generic_mio_trait_small_sidearms }
+
+ mutually_exclusive = { generic_mio_trait_single_shot_man_portable_anti_tank_system }
+
+ limit_to_equipment_type = { infantry_equipment }
+
+ equipment_bonus = {
+ breakthrough = 0.05
+ soft_attack = 0.02
+ build_cost_ic = 0.06
+ }
+ }
+
+
+ trait = {
+ token = generic_mio_trait_pontoons
+ name = generic_mio_trait_pontoons
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_private_tenders
+
+ all_parents = { generic_mio_trait_private_tenders }
+
+ limit_to_equipment_type = { infantry_equipment }
+
+ equipment_bonus = {
+ maximum_speed = 0.05
+ build_cost_ic = 0.035
+ }
+ }
+}
+
+
+###########################
+######## Motorized ########
+###########################
+
+generic_motorized_mechanized_organization = {
+ icon = GFX_idea_generic_motorized_equipment_manufacturer_3
+
+ allowed = {
+ always = yes
+ }
+
+ equipment_type = {
+ motorized_equipment
+ mechanized_equipment
+ motorized_rocket_equipment
+ }
+
+ research_categories = {
+ mio_cat_tech_all_motorized_mechanized
+ }
+
+
+
+ tree_header_text = {
+ text = mio_header_motorized
+ x = 1
+ }
+
+ tree_header_text = {
+ text = mio_header_mechanized
+ x = 7
+ }
+
+ initial_trait = {
+ name = generic_mio_initial_trait_motorized_mechanized_manufacturer
+
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_composite_cargo_bed
+ name = generic_mio_trait_composite_cargo_bed
+ icon = GFX_generic_mio_department_icon_motorized_production
+
+ position = { x=0 y=0 }
+
+ mutually_exclusive = { generic_mio_trait_steel_cargo_bed }
+
+ limit_to_equipment_type = { motorized_equipment motorized_rocket_equipment }
+
+ equipment_bonus = {
+ reliability = -0.07
+ build_cost_ic = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_steel_cargo_bed
+ name = generic_mio_trait_steel_cargo_bed
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_composite_cargo_bed
+
+ mutually_exclusive = { generic_mio_trait_composite_cargo_bed }
+
+ limit_to_equipment_type = { motorized_equipment motorized_rocket_equipment }
+
+ equipment_bonus = {
+ reliability = 0.05
+ }
+ production_bonus = {
+ production_resource_need_factor = 0.02
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_all_wheel_drive
+ name = generic_mio_trait_all_wheel_drive
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_composite_cargo_bed
+
+ any_parent = { generic_mio_trait_composite_cargo_bed generic_mio_trait_steel_cargo_bed }
+
+ limit_to_equipment_type = { motorized_equipment motorized_rocket_equipment }
+
+ equipment_bonus = {
+ breakthrough = 0.035
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_attached_wood_gas_generator
+ name = generic_mio_trait_attached_wood_gas_generator
+ icon = GFX_generic_mio_trait_icon_fuel_consumption
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_all_wheel_drive
+
+ all_parents = { generic_mio_trait_all_wheel_drive }
+
+ mutually_exclusive = { generic_mio_trait_high_powered_engine }
+
+ limit_to_equipment_type = { motorized_equipment motorized_rocket_equipment }
+
+ equipment_bonus = {
+ fuel_consumption = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_high_powered_engine
+ name = generic_mio_trait_high_powered_engine
+ icon = GFX_generic_mio_trait_icon_maximum_speed
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_attached_wood_gas_generator
+
+ all_parents = { generic_mio_trait_all_wheel_drive }
+
+ mutually_exclusive = { generic_mio_trait_attached_wood_gas_generator }
+
+ limit_to_equipment_type = { motorized_equipment motorized_rocket_equipment }
+
+ equipment_bonus = {
+ fuel_consumption = 0.05
+ maximum_speed = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_medium_machinegun_mounts
+ name = generic_mio_trait_medium_machinegun_mounts
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_steel_cargo_bed
+
+ equipment_bonus = {
+ breakthrough = 0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_armored_pulpit_mount
+ name = generic_mio_trait_armored_pulpit_mount
+ icon = GFX_generic_mio_trait_icon_hardness
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_medium_machinegun_mounts
+
+ all_parents = { generic_mio_trait_medium_machinegun_mounts }
+
+ equipment_bonus = {
+ hardness = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_advanced_artillery_racks
+ name = generic_mio_trait_advanced_artillery_racks
+ icon = GFX_generic_mio_trait_icon_soft_attack
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_armored_pulpit_mount
+
+ all_parents = { generic_mio_trait_armored_pulpit_mount }
+
+ mutually_exclusive = { generic_mio_trait_heavy_machinegun_mount generic_mio_trait_mounted_light_anti_tank_gun }
+
+ limit_to_equipment_type = { motorized_rocket_equipment }
+
+ equipment_bonus = {
+ soft_attack = 0.035
+ build_cost_ic = 0.06
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_heavy_machinegun_mount
+ name = generic_mio_trait_heavy_machinegun_mount
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_advanced_artillery_racks
+
+ all_parents = { generic_mio_trait_armored_pulpit_mount }
+
+ mutually_exclusive = { generic_mio_trait_advanced_artillery_racks generic_mio_trait_mounted_light_anti_tank_gun }
+
+ limit_to_equipment_type = { mechanized_equipment motorized_equipment }
+
+ equipment_bonus = {
+ breakthrough = 0.04
+ build_cost_ic = 0.01
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_mounted_light_anti_tank_gun #elephant gun
+ name = generic_mio_trait_mounted_light_anti_tank_gun
+ icon = GFX_generic_mio_trait_icon_ap_attack
+
+ position = { x=1 y=0 }
+ relative_position_id = generic_mio_trait_heavy_machinegun_mount
+
+ mutually_exclusive = { generic_mio_trait_advanced_artillery_racks generic_mio_trait_heavy_machinegun_mount }
+
+ all_parents = { generic_mio_trait_bulletproof_panels }
+
+ limit_to_equipment_type = { mechanized_equipment }
+
+ equipment_bonus = {
+ ap_attack = 0.1
+ hard_attack = 0.02
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_open_chassi
+ name = generic_mio_trait_open_chassi
+ icon = GFX_generic_mio_department_icon_mechanized_production
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_medium_machinegun_mounts
+
+ limit_to_equipment_type = { mechanized_equipment }
+
+ mutually_exclusive = { generic_mio_trait_closed_chassi }
+
+ equipment_bonus = {
+ defense = -0.02
+ build_cost_ic = -0.03
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_closed_chassi
+ name = generic_mio_trait_closed_chassi
+ icon = GFX_generic_mio_department_icon_mechanized_hull
+
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_open_chassi
+
+ limit_to_equipment_type = { mechanized_equipment }
+
+ mutually_exclusive = { generic_mio_trait_open_chassi }
+
+ equipment_bonus = {
+ armor_value = 0.05
+ }
+ }
+
+
+ trait = {
+ token = generic_mio_trait_bulletproof_panels
+ name = generic_mio_trait_bulletproof_panels
+ icon = GFX_generic_mio_trait_icon_hardness
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_closed_chassi
+
+ limit_to_equipment_type = { mechanized_equipment }
+
+ any_parent = { generic_mio_trait_closed_chassi generic_mio_trait_open_chassi }
+
+ equipment_bonus = {
+ hardness = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_light_flame_projectors
+ name = generic_mio_trait_light_flame_projectors
+ icon = GFX_generic_mio_trait_icon_breakthrough
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_bulletproof_panels
+
+ limit_to_equipment_type = { mechanized_equipment }
+
+ all_parents = { generic_mio_trait_bulletproof_panels }
+
+ equipment_bonus = {
+ breakthrough = 0.035
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_land_mine_racks
+ name = generic_mio_trait_land_mine_racks
+ icon = GFX_generic_mio_department_icon_mechanized_hull
+
+ position = { x=1 y=0 }
+ relative_position_id = generic_mio_trait_light_flame_projectors
+
+ limit_to_equipment_type = { mechanized_equipment }
+
+ all_parents = { generic_mio_trait_bulletproof_panels }
+
+ equipment_bonus = {
+ defense = 0.06
+ maximum_speed = -0.02
+ }
+ }
+}
+
+
+
+######################
+#### Armored Car ####
+######################
+
+
+generic_armored_car_organization = {
+ icon = GFX_idea_generic_tank_manufacturer_1
+
+ allowed = {
+ always = no # Archetype only - countries using it have their own verisons
+ has_dlc = "La Resistance"
+ }
+
+ equipment_type = { armored_car_equipment }
+ research_categories = { cat_armored_cars }
+
+ tree_header_text = {
+ text = mio_header_design_and_production
+ x = 3
+ }
+
+ tree_header_text = {
+ text = mio_header_equipment_and_specialization
+ x = 7
+ }
+
+
+ initial_trait = {
+ name = generic_mio_initial_trait_standardized_production
+ equipment_bonus = {
+ armor_value = 0.05
+ defense =0.05
+ build_cost_ic = -0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_simplified_suspension
+ name = generic_mio_trait_simplified_suspension
+ icon = GFX_generic_mio_trait_icon_reliability
+
+ equipment_bonus = {
+ reliability = 0.05
+ }
+ position = { x=1 y=0 }
+ }
+
+ trait = {
+ token = generic_mio_trait_crew_ergonomics
+ name = generic_mio_trait_crew_ergonomics
+ icon = GFX_generic_mio_trait_icon_defense
+
+
+ equipment_bonus = {
+ maximum_speed = 0.02
+ defense = 0.02
+ }
+ position = { x=4 y=0 }
+ relative_position_id = generic_mio_trait_simplified_suspension
+ }
+
+ trait = {
+ token = generic_mio_trait_reinforced_wheels
+ name = generic_mio_trait_reinforced_wheels
+ icon = GFX_generic_mio_department_icon_armored_car_engine
+ any_parent = { generic_mio_trait_simplified_suspension }
+
+ equipment_bonus = {
+ reliability = 0.05
+ maximum_speed = 0.05
+ }
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_simplified_suspension
+ }
+
+ trait = {
+ token = generic_mio_trait_command_upgrades
+ name = generic_mio_trait_command_upgrades
+ icon = GFX_generic_mio_trait_icon_breakthrough
+ any_parent = { generic_mio_trait_crew_ergonomics }
+
+
+ equipment_bonus = {
+ breakthrough = 0.05
+ }
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_crew_ergonomics
+ }
+
+ trait = {
+ token = generic_mio_trait_standardized_components
+ name = generic_mio_trait_standardized_components
+ icon = GFX_generic_mio_department_icon_armored_car_line_efficiency
+ all_parents = { generic_mio_trait_simplified_suspension generic_mio_trait_crew_ergonomics }
+
+
+ position = { x=2 y=1 }
+ relative_position_id = generic_mio_trait_simplified_suspension
+
+ production_bonus = {
+ production_efficiency_gain_factor = 0.15
+ production_resource_need_factor = -0.15
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_improved_tooling
+ name = generic_mio_trait_improved_tooling
+ icon = GFX_generic_mio_department_icon_armored_car_technology
+
+ all_parents = { generic_mio_trait_reinforced_wheels generic_mio_trait_standardized_components generic_mio_trait_command_upgrades }
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_standardized_components
+
+ production_bonus = {
+ production_efficiency_cap_factor = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_mass_production
+ name = generic_mio_trait_mass_production
+ icon = GFX_generic_mio_department_icon_armored_car_production
+ any_parent = { generic_mio_trait_improved_tooling }
+ mutually_exclusive = { generic_mio_trait_quality_improvements }
+
+ position = { x=-1 y=1 }
+ relative_position_id = generic_mio_trait_improved_tooling
+
+ production_bonus = {
+ production_cost_factor = -0.05
+ production_efficiency_gain_factor = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_quality_improvements
+ name = generic_mio_trait_quality_improvements
+ icon = GFX_generic_mio_department_icon_tank_general_armor
+ any_parent = { generic_mio_trait_improved_tooling }
+ mutually_exclusive = { generic_mio_trait_mass_production}
+
+ position = { x=1 y=1 }
+ relative_position_id = generic_mio_trait_improved_tooling
+
+ equipment_bonus = {
+ armor_value = 0.1
+ defense = 0.1
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_defensive_equipment
+ name = generic_mio_trait_defensive_equipment
+ icon = GFX_generic_mio_trait_icon_soft_attack
+
+ equipment_bonus = {
+ soft_attack = 0.02
+ defense = 0.02
+ }
+ position = { x=2 y=0 }
+ relative_position_id = generic_mio_trait_crew_ergonomics
+ }
+
+ trait = {
+ token = generic_mio_trait_long_barreled_guns
+ name = generic_mio_trait_long_barreled_guns
+ icon = GFX_generic_mio_department_icon_armored_car_offense
+
+ all_parents = { generic_mio_trait_crew_ergonomics generic_mio_trait_defensive_equipment }
+
+ position = { x=0 y=2 }
+ relative_position_id = generic_mio_trait_defensive_equipment
+
+ equipment_bonus = {
+ ap_attack = 0.05
+ hard_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_heavy_anti_tank_gun
+ name = generic_mio_trait_heavy_anti_tank_gun
+ icon = GFX_generic_mio_trait_icon_hard_attack
+ any_parent = { generic_mio_trait_long_barreled_guns }
+ mutually_exclusive = { generic_mio_trait_officer_support_car }
+
+ position = { x=-1 y=2 }
+ relative_position_id = generic_mio_trait_long_barreled_guns
+
+ equipment_bonus = {
+ armor_value = 0.05
+ hard_attack = 0.05
+ }
+ }
+
+ trait = {
+ token = generic_mio_trait_officer_support_car
+ name = generic_mio_trait_officer_support_car
+ icon = GFX_generic_mio_trait_icon_soft_attack
+ any_parent = { generic_mio_trait_long_barreled_guns }
+ mutually_exclusive = { generic_mio_trait_heavy_anti_tank_gun }
+
+ position = { x=1 y=2 }
+ relative_position_id = generic_mio_trait_long_barreled_guns
+
+ equipment_bonus = {
+ soft_attack = 0.05
+ build_cost_ic = -0.03
+ }
+ }
+}
+
+
+
+
+
+
+
+## #### ###### ######## ####### ######## ###### ######## ### ######## ######
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+## ## ## ## ## ## ## ## ## ## ## ## ##
+## ## ###### ## ## ## ###### ###### ## ## ## ## ######
+## ## ## ## ## ## ## ## ## ######### ## ##
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+######## #### ###### ## ####### ## ###### ## ## ## ## ######
+
+
+### EQUIPMENT STATS ###
+
+
+### ## # # # # ##
+ # # # ## # # # #
+ # #### # ## ## #
+ # # # # # # # #
+ # # # # # # # ##
+
+#maximum_speed
+#reliability
+#defense
+#breakthrough
+#armor_value
+#soft_attack
+#hard_attack
+#ap_attack
+#air_attack
+#build_cost_ic
+#fuel_consumption
+#hardness
+#armor_value
+#build_cost_ic
+#entrenchment - only if you have DLC NSB and module dozer_blade
+#fuel_capacity - only if you have DLC NSB and module expanded_fuel_tank
+
+
+
+ ## # # ### ### ##
+# # # # # # #
+ # #### # ### #
+ # # # # # #
+## # # ### # ##
+
+#lg_armor_piercing (requires modules)
+#lg_attack (requires modules)
+#hg_armor_piercing (requires modules)
+#hg_attack (requires modules)
+#torpedo_attack (requires modules)
+#sub_attack (requires modules)
+#anti_air_attack (requires modules)
+#armor_value (requires modules)
+#surface_detection
+#sub_detection (requires modules)
+#sub_visibility (sub only)
+#surface_visibility (surface only)
+#naval_speed
+#reliability
+#naval_range
+#max_strength
+#fuel_consumption
+#build_cost_ic
+#manpower
+#naval_supremacy_factor
+#naval_torpedo_enemy_critical_chance_factor (if you have modules adding it)
+#naval_torpedo_damage_reduction_factor (if you have modules adding it)
+#carrier_size (this will get very bad for you I promise, equipment modifiers are a mistake)
+#mines_sweeping (only MTG and with modules)
+#mines_planting (only with MTG and modules)
+#naval_torpedo_hit_chance_factor (requires modules)
+#naval_light_gun_hit_chance_factor (requires modules)
+#naval_heavy_gun_hit_chance_factor (requires modules)
+
+
+
+### # ## # # ### ##
+# # # # # ## # # #
+### # #### # ## ## #
+# # # # # # # #
+# ### # # # # ### ##
+
+#air_superiority
+#reliability
+#naval_strike_attack
+#naval_strike_targetting
+#manpower
+#fuel_consumption
+#build_cost_ic
+#resources
+#thrust - only if you have BBA DLC
+#weight - only if you have BBA DLC
+#maximum_speed
+#air_range
+#air_agility
+#air_attack
+#air_defence
+#surface_detection
+#sub_detection
+#air_ground_attack
+#air_bombing
+#mines_planting - if you have MtG and BBA
+#mines_sweeping - if you have MtG and BBA
+#night_penalty - only if you have BBA DLC (you need to have module because base value is 0 - radio navigatio
+
+
+
+# # ## ### ### ### ### ### #
+## ## # # # # # # # # #
+# # # #### # ## ### # ## #
+# # # # # # # # # # #
+# # # # # ### # # ### ### ###
+
+##############################
+##### INFANTRY EQUIPMENT #####
+##############################
+#reliability
+#maximum_speed
+#defense
+#breakthrough
+#hardness - it is in the script, but the value is set to 0 (in the game, the UI doesn't show this value)
+#armor_value - it is in the script, but the value is set to 0 (in the game, the UI doesn't show this value)
+#soft_attack
+#hard_attack
+#ap_attack
+#air_attack - it is in the script but the value is set to 0 (in the game, the UI doesn't show this value)
+#build_cost_ic
+
+##############################
+##### SUPPORT EQUIPMENT ######
+##############################
+#reliability
+#build_cost_ic
+
+
+#############################
+#### ARTILLERY EQUIPMENT ####
+#############################
+#reliability
+#defense
+#breakthrough
+#hardness
+#armor_value
+#soft_attack
+#hard_attack
+#ap_attack
+#air_attack
+#build_cost_ic
+
+############################
+#### ANTI-AIR EQUIPMENT ####
+############################
+#reliability
+#defense
+#breakthrough
+#hardness
+#armor_value
+#soft_attack
+#hard_attack
+#ap_attack
+#air_attack
+#build_cost_ic
+
+#############################
+#### ANTI-TANK EQUIPMENT ####
+#############################
+#reliability
+#defense
+#breakthrough
+#hardness
+#armor_value
+#soft_attack
+#hard_attack
+#ap_attack
+#air_attack
+#build_cost_ic
+
+####################################
+#### ROCKET ARTILLERY EQUIPMENT ####
+####################################
+#reliability
+#defense
+#breakthrough
+#hardness
+#armor_value
+#soft_attack
+#hard_attack
+#ap_attack
+#air_attack
+#build_cost_ic
+
+
+##############################
+#### MOTORIZED EQUIPMENT #####
+##############################
+#maximum_speed
+#reliability
+#hardness
+#breakthrough
+#build_cost_ic
+#fuel_consumption
+
+####################################
+#### MOTORIZED ROCKET EQUIPMENT ####
+####################################
+#reliability
+#defense
+#breakthrough
+#hardness
+#armor_value
+#soft_attack
+#hard_attack
+#ap_attack
+#air_attack
+#build_cost_ic (edited)
+
+###############################
+#### MECHANIZED EQUIPMENT #####
+###############################
+#maximum_speed
+#reliability
+#defense
+#breakthrough
+#hardness
+#armor_value
+#ap_attack
+#air_attack
+#build_cost_ic
+#fuel_consumption
+
+#########################################
+#### AMPHIBIOUS MECHANIZED EQUIPMENT ####
+#########################################
+#maximum_speed
+#reliability
+#defense
+#breakthrough
+#hardness
+#armor_value
+#ap_attack
+#air_attack
+#build_cost_ic
+#fuel_consumption
+
+
+################################
+#### ARMORED CAR EQUIPMENT #####
+################################
+#maximum_speed
+#reliability
+#defense
+#breakthrough
+#hardness
+#armor_value
+#soft_attack
+#hard_attack
+#ap_attack
+#air_attack
+#build_cost_ic
+#fuel_consumption
+
+
+##########################
+#### TRAIN EQUIPMENT #####
+##########################
+#armor_value
+#build_cost_ic
+#air_attack
+
+################################
+#### RAILWAY GUN EQUIPMENT #####
+################################
+#reliability
+#maximum_speed
+#railway_gun_attack
+#build_cost_ic
+
+
+### PRODUCTION MODIFIERS ###
+#production_cost_factor
+#production_capacity_factor
+#production_efficiency_cap_factor
+#production_efficiency_gain_factor
+#production_resource_need_factor
+#production_resource_penalty_factor
+#production_conversion_speed_factor
+
+### ORGANIZATION MODIFIERS ###
+#military_industrial_organization_research_bonus
+#military_industrial_organization_design_team_assign_cost
+#military_industrial_organization_design_team_change_cost
+#military_industrial_organization_industrial_manufacturer_assign_cost
+#military_industrial_organization_task_capacity
+#military_industrial_organization_size_up_requirement
+#military_industrial_organization_funds_gain
\ No newline at end of file
diff --git a/data/blank_mod/common/military_industrial_organization/policies/_general_policies.txt b/data/blank_mod/common/military_industrial_organization/policies/_general_policies.txt
new file mode 100644
index 0000000000..a59a0d4033
--- /dev/null
+++ b/data/blank_mod/common/military_industrial_organization/policies/_general_policies.txt
@@ -0,0 +1,75 @@
+mio_policy_general_ruthless_contracts = {
+ icon = GFX_mio_policy_ruthless_contracts
+ allowed = { always = yes }
+ available = { has_mio_size > 5}
+ organization_modifier = {
+ military_industrial_organization_funds_gain = 0.1
+ }
+}
+
+mio_policy_general_assembly_line_optimisers = {
+ icon = GFX_mio_policy_assembly_line_optimisers
+ allowed = {
+ OR = {
+ has_mio_equipment_type = small_plane_airframe
+ has_mio_equipment_type = medium_plane_airframe
+ has_mio_equipment_type = large_plane_airframe
+ has_mio_equipment_type = small_plane_cas_airframe
+ has_mio_equipment_type = small_plane_naval_bomber_airframe
+ has_mio_equipment_type = medium_plane_fighter_airframe
+ has_mio_equipment_type = medium_plane_scout_plane_airframe
+ has_mio_equipment_type = large_plane_maritime_patrol_plane_airframe
+ has_mio_equipment_type = armor
+ has_mio_equipment_type = motorized
+ has_mio_equipment_type = mechanized
+ has_mio_equipment_type = anti_tank
+ has_mio_equipment_type = flame
+ has_mio_equipment_type = anti_air
+ has_mio_equipment_type = artillery
+ has_mio_equipment_type = rocket
+ has_mio_equipment_type = infantry
+ has_mio_equipment_type = railway_gun
+ has_mio_equipment_type = train
+ }
+ }
+ available = { has_mio_size > 5}
+ production_bonus = {
+ same_as_mio = {
+ production_efficiency_cap_factor = 0.05
+ production_efficiency_gain_factor = 0.05
+ }
+ }
+}
+
+mio_policy_general_vertical_integration = {
+ icon = GFX_mio_policy_vertical_integration
+ allowed = { always = yes }
+ available = { has_mio_size > 5}
+ production_bonus = {
+ same_as_mio = {
+ production_resource_need_factor = -0.1
+ production_resource_penalty_factor = 0.1
+ }
+ }
+}
+
+mio_policy_general_mechanical_genius = {
+ icon = GFX_mio_policy_mechanical_genius
+ allowed = { always = yes }
+ available = { has_mio_size > 5}
+ equipment_bonus = {
+ same_as_mio = {
+ reliability = 0.1
+ }
+ }
+}
+
+mio_policy_general_experimental_development_teams = {
+ icon = GFX_mio_policy_experimental_development_teams
+ allowed = { always = yes }
+ available = { has_mio_size > 5}
+ organization_modifier = {
+ military_industrial_organization_research_bonus = 0.2
+ }
+}
+
diff --git a/data/blank_mod/common/modifiers/00_static_modifiers.txt b/data/blank_mod/common/modifiers/00_static_modifiers.txt
index 895ab1e5df..f46893241b 100644
--- a/data/blank_mod/common/modifiers/00_static_modifiers.txt
+++ b/data/blank_mod/common/modifiers/00_static_modifiers.txt
@@ -191,7 +191,7 @@ compliance_effect_base = {
compliance_effect = {
local_factories = 0.65
local_non_core_manpower = 0.18
- local_resources = 0.60
+ local_resources = 0.65 #was 0.6
}
# On States that are owned by a non-core country
@@ -312,7 +312,7 @@ free_license = {
stability_good_modifier = {
industrial_capacity_factory = 0.20
industrial_capacity_dockyard = 0.20
- consumer_goods_factor = -0.05
+ consumer_goods_factor = -0.20
political_power_factor = 0.1
}
@@ -458,8 +458,8 @@ diff_strong_ai_generic = {
}
naval_mines_effect = {
- naval_accidents_chance = 0.15
- naval_speed_factor = -0.8
+ naval_accidents_chance = 0.05
+ naval_speed_factor = 0
naval_invasion_penalty = 0.5
}
diff --git a/data/blank_mod/common/modifiers/AAT_power_balance_modifiers.txt b/data/blank_mod/common/modifiers/AAT_power_balance_modifiers.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/occupation_laws/occupation_laws.txt b/data/blank_mod/common/occupation_laws/occupation_laws.txt
index cfc6ac708b..49bf82619a 100644
--- a/data/blank_mod/common/occupation_laws/occupation_laws.txt
+++ b/data/blank_mod/common/occupation_laws/occupation_laws.txt
@@ -271,6 +271,20 @@ military_governor_occupation = {
check_variable = { resistance_target_without_law > 0.24}
add = 400
}
+
+ modifier = {
+ check_variable = { resistance_target_without_law > 0.34}
+
+ set_temp_variable = { requirement_limit = 0.25 }
+ if = {
+ limit = { occupation_law = military_governor_occupation }
+ set_temp_variable = { requirement_limit = 0.45 }
+ }
+ check_variable = { garrison_min_support_ratio < requirement_limit }
+
+ add = 400
+ }
+
}
}
diff --git a/data/blank_mod/common/on_actions/00_on_actions.txt b/data/blank_mod/common/on_actions/00_on_actions.txt
index c14f62784c..ccabcf75e2 100644
--- a/data/blank_mod/common/on_actions/00_on_actions.txt
+++ b/data/blank_mod/common/on_actions/00_on_actions.txt
@@ -486,10 +486,25 @@ on_actions = {
# root country that invades
# scope state that is invaded
# from scope state that the invasion started
- # on_naval_invasion = {
- # effect = {
- # }
- # }
+ on_naval_invasion = {
+ effect = {
+ if = {
+ limit = {
+ ROOT = {
+ divisions_in_state = {
+ unit = marine_commando
+ size > 0
+ state = PREV
+ }
+ has_tech = marines_commandos_demolition
+ }
+ NOT = { has_state_flag = marines_commando_effect }
+ OWNER = { NOT = { tag = ROOT } }
+ }
+ SF_marine_demoliton_effect = yes # Note that the state flag condition is not preventing it from doing 1 damage per division
+ }
+ }
+ }
# root country that paradrops
@@ -497,7 +512,7 @@ on_actions = {
# from scope state that the paradrop started
on_paradrop = {
effect = {
- set_country_flag = has_paradropped_flag
+ ROOT = { set_country_flag = has_paradropped_flag }
}
}
on_ruling_party_change = {
@@ -538,5 +553,28 @@ on_actions = {
#} #This would add a unit medal to the history entry you just received
}
}
+
+ # root is the state that was dropped into
+ # from is the dropping country
+ # this differs from on_paradrop in that it is run once per paradrop, not once per unit dropped
+ on_units_paradropped_in_state = {
+ effect = {
+ if = {
+ limit = {
+ FROM = { has_tech = paras_dispersed_drop }
+ NOT = { has_state_flag = para_drop_effect }
+ CONTROLLER = { NOT = { tag = FROM } }
+ }
+ SF_PARA_sabotage_effect = yes
+ }
+ if = {
+ limit = {
+ FROM = { has_tech = paras_combat_drop }
+ NOT = { has_state_flag = para_drop_effect }
+ }
+ SF_PARA_combat_effect = yes
+ }
+ }
+ }
}
diff --git a/data/blank_mod/common/on_actions/04_mtg_on_actions.txt b/data/blank_mod/common/on_actions/04_mtg_on_actions.txt
index 48a5adae56..f8db05a0fd 100644
--- a/data/blank_mod/common/on_actions/04_mtg_on_actions.txt
+++ b/data/blank_mod/common/on_actions/04_mtg_on_actions.txt
@@ -145,7 +145,7 @@ on_actions = {
effect = {
}
}
-
+ # FROM is the faction Leader, ROOT is the country leaving the faction
on_leave_faction = {
effect = {
}
diff --git a/data/blank_mod/common/on_actions/07_nsb_on_actions.txt b/data/blank_mod/common/on_actions/07_nsb_on_actions.txt
index 505cfb9562..5af89e7770 100644
--- a/data/blank_mod/common/on_actions/07_nsb_on_actions.txt
+++ b/data/blank_mod/common/on_actions/07_nsb_on_actions.txt
@@ -251,5 +251,10 @@ on_actions = {
}
}
+ on_peace = {
+ effect = {
+ log = "PEACE - ROOT is [ROOT.GetName] and FROM is [FROM.GetName]"
+ }
+ }
}
diff --git a/data/blank_mod/common/on_actions/09_aat_on_actions.txt b/data/blank_mod/common/on_actions/09_aat_on_actions.txt
new file mode 100644
index 0000000000..175e0d59a4
--- /dev/null
+++ b/data/blank_mod/common/on_actions/09_aat_on_actions.txt
@@ -0,0 +1,128 @@
+
+on_actions = {
+
+ #### MIO on actions
+ # ROOT is MIO
+ on_mio_size_increased = {}
+ # NB : all the following also exist at MIO level
+ # use on-action here if the purpose is to execute for any MIO
+ # use on-action at MIO level to execute just for one precise MIO
+ # i.e. don't use this here : if = { limit = { is_military_industrial_organisation = ... } } }
+ on_mio_design_team_assigned_to_tech = {}
+ on_mio_design_team_assigned_to_variant = {}
+ on_mio_industrial_manufacturer_assigned = {}
+ on_mio_tech_research_cancelled = {}
+ on_mio_tech_research_completed = {}
+ on_mio_industrial_manufacturer_unassigned = {}
+
+
+ #Not run on a specific country.
+ on_startup = {
+ #SET UP MIO SIZE IN 1939 BOOKMARK
+ effect = {
+ if = {
+ limit = {
+ has_dlc = "Arms Against Tyranny"
+ date > 1939.01.01 #1939 Bookmark
+ }
+ every_country = {
+ limit = {
+ is_major = yes
+ }
+ every_military_industrial_organization = {
+ add_mio_size = 4
+ }
+ }
+ every_country = {
+ limit = {
+ is_major = no
+ }
+ every_military_industrial_organization = {
+ add_mio_size = 3
+ }
+ }
+ }
+ }
+ }
+
+ on_new_term_election = {
+ random_events = {
+ }
+ }
+
+ #ROOT is capitulated country, FROM is winner.
+ on_capitulation_immediate = {
+ }
+
+ # ROOT is capitulated country, FROM is winner
+ on_capitulation = {
+ }
+
+ ##ROOT is affected country
+ on_uncapitulation = {
+ }
+
+ # FROM is the country that is hosting the government in exile.
+ # ROOT is the government in exile
+ on_government_exiled = {
+ }
+
+ #Root is exile
+ #From is old host
+ on_exile_government_reinstated = {
+ }
+
+ on_create_faction = {
+ }
+
+ on_liberate = {
+ }
+ #ROOT is the nation being released, FROM is the overlord
+ on_release_as_free = {
+ }
+
+ #ROOT is winner #FROM gets annexed - This fires just before FROM gets annexed, meaning the country and everything it owns still exists. It will also fire on_annex and on_civil_war_end
+ on_civil_war_end_before_annexation = {
+ }
+
+ #ROOT = attacking side
+ #FROM = defending side
+ #fired when two countries end up at war with each other (on_war is fired when a country goes to war against anyone and is not fired again when it enters war against another country unless it went to peace first)
+ on_war_relation_added = { # ---> Fires in 2nd place (1st is on_declare_war) -> This one is triggered ALWAYS
+ }
+
+ on_peaceconference_ended = {
+ }
+
+ on_peace = {
+ }
+
+ # ROOT is new controller, FROM is old controller, FROM.FROM is state ID.
+ on_state_control_changed = {
+ }
+
+ on_puppet = { #ROOT = nation being puppeted, FROM = overlord
+ }
+
+ #ROOT is winner, FROM gets annexed. For civil wars on_civil_war_end is also fired.
+ on_annex = {
+ }
+
+ #ROOT is subject FROM is previous overlord
+ on_subject_free = {
+ }
+
+ on_ruling_party_change = {
+ }
+
+ #FROM is faction leader on join faction requests. THIS DOES NOT FIRE ON ADD_TO_FACTION EFFECT! USE ON_OFFER_JOIN_FACTION!
+ on_join_faction = {
+ }
+
+ #FROM is country getting invited. THIS GETS TRIGGERED WHEN THE COUNTRY BEING OFFERED ACTUALLY JOINS THE FACTION (AND ALSO TRIGGERED ON ADD_TO_ACTION EFFECT TACK SÅ MYCKET)
+ on_offer_join_faction = {
+ }
+ # FROM is the faction Leader, ROOT is the country leaving the faction
+ on_leave_faction = {
+ }
+}
\ No newline at end of file
diff --git a/data/blank_mod/common/operations/00_operations.txt b/data/blank_mod/common/operations/00_operations.txt
index 5bbb1b377b..d7196e0c7b 100644
--- a/data/blank_mod/common/operations/00_operations.txt
+++ b/data/blank_mod/common/operations/00_operations.txt
@@ -2888,15 +2888,33 @@ operation_steal_tech_airforce = { ### 18 3/55
cost_modifiers = { operation_cost }
outcome_execute = {
ROOT = {
- steal_random_tech_bonus = {
- folder = air_techs_folder
- bonus = 3.0
- dynamic = yes
- instant = yes
- name = operation_steal_tech_airforce
- target = FROM
- uses = 1
+ if = {
+ limit = {
+ has_dlc = "By Blood Alone"
+ }
+ steal_random_tech_bonus = {
+ folder = bba_air_techs_folder
+ bonus = 3.0
+ dynamic = yes
+ instant = yes
+ name = operation_steal_tech_airforce
+ target = FROM
+ uses = 1
+ }
+
+ }
+ else = {
+ steal_random_tech_bonus = {
+ folder = air_techs_folder
+ bonus = 3.0
+ dynamic = yes
+ instant = yes
+ name = operation_steal_tech_airforce
+ target = FROM
+ uses = 1
+ }
}
+
remove_operation_token = {
tag = FROM
token = token_airforce
@@ -2907,29 +2925,68 @@ operation_steal_tech_airforce = { ### 18 3/55
random_list = {
33 = {
ROOT = {
- steal_random_tech_bonus = {
- folder = air_techs_folder
- bonus = 3.0
- ahead_reduction = 2
- dynamic = yes
- instant = yes
- name = operation_steal_tech_airforce
- target = FROM
- uses = 1
+ if = {
+ limit = {
+ has_dlc = "By Blood Alone"
+ }
+ steal_random_tech_bonus = {
+ folder = bba_air_techs_folder
+ bonus = 3.0
+ ahead_reduction = 2
+ dynamic = yes
+ instant = yes
+ name = operation_steal_tech_airforce
+ target = FROM
+ uses = 1
+ }
+ }
+ else = {
+ steal_random_tech_bonus = {
+ folder = air_techs_folder
+ bonus = 3.0
+ ahead_reduction = 2
+ dynamic = yes
+ instant = yes
+ name = operation_steal_tech_airforce
+ target = FROM
+ uses = 1
+ }
}
+
}
}
67 = {
- ROOT = {
- steal_random_tech_bonus = {
- folder = air_techs_folder
- bonus = 3.0
- ahead_reduction = 1
- dynamic = yes
- instant = yes
- name = operation_steal_tech_airforce
- target = FROM
- uses = 1
+ if = {
+ limit = {
+ has_dlc = "By Blood Alone"
+ }
+
+ ROOT = {
+ steal_random_tech_bonus = {
+ folder = bba_air_techs_folder
+ bonus = 3.0
+ ahead_reduction = 1
+ dynamic = yes
+ instant = yes
+ name = operation_steal_tech_airforce
+ target = FROM
+ uses = 1
+ }
+ }
+
+ }
+ else = {
+ ROOT = {
+ steal_random_tech_bonus = {
+ folder = air_techs_folder
+ bonus = 3.0
+ ahead_reduction = 1
+ dynamic = yes
+ instant = yes
+ name = operation_steal_tech_airforce
+ target = FROM
+ uses = 1
+ }
}
}
}
@@ -2938,14 +2995,30 @@ operation_steal_tech_airforce = { ### 18 3/55
outcome_potential = {
ROOT = {
- steal_random_tech_bonus = {
- folder = air_techs_folder
- bonus = 3.0
- dynamic = yes
- instant = yes
- name = operation_steal_tech_airforce
- target = FROM
- uses = 1
+ if = {
+ limit = {
+ has_dlc = "By Blood Alone"
+ }
+ steal_random_tech_bonus = {
+ folder = bba_air_techs_folder
+ bonus = 3.0
+ dynamic = yes
+ instant = yes
+ name = operation_steal_tech_airforce
+ target = FROM
+ uses = 1
+ }
+ }
+ else = {
+ steal_random_tech_bonus = {
+ folder = air_techs_folder
+ bonus = 3.0
+ dynamic = yes
+ instant = yes
+ name = operation_steal_tech_airforce
+ target = FROM
+ uses = 1
+ }
}
}
custom_effect_tooltip = operation_outcome_consumes_token_tt
diff --git a/data/blank_mod/common/scripted_effects/00_scripted_effects.txt b/data/blank_mod/common/scripted_effects/00_scripted_effects.txt
index c7b1ff5098..bce29e1131 100644
--- a/data/blank_mod/common/scripted_effects/00_scripted_effects.txt
+++ b/data/blank_mod/common/scripted_effects/00_scripted_effects.txt
@@ -646,3 +646,193 @@ remove_any_country_role_from_character = { #Expected to be used inside the chara
remove_advisor_role = { slot = political_advisor }
}
}
+
+### Paratroopers
+SF_PARA_sabotage_effect = { #When changing this, update the research tooltip
+ damage_building = {
+ type = infrastructure
+ damage = 2
+ }
+ damage_building = {
+ type = industrial_complex
+ damage = 1
+ }
+ damage_building = {
+ type = arms_factory
+ damage = 1
+ }
+ set_state_flag = {
+ flag = para_drop_effect
+ days = 30
+ }
+}
+
+SF_PARA_combat_effect = { #When changing this, update the research tooltip
+ every_state_division = {
+ limit = {
+ OWNER = { has_war_with = FROM }
+ }
+ set_unit_organization = 0.50
+ }
+ set_state_flag = {
+ flag = para_drop_effect
+ days = 30
+ }
+}
+
+### Muuuurrrriiinnnnneeeeessssss
+SF_marine_demoliton_effect = { #When changing this, update the research tooltip
+ damage_building = {
+ type = radar_station
+ damage = 1
+ }
+ damage_building = {
+ type = naval_base
+ damage = 1
+ }
+ damage_building = {
+ type = dockyard
+ damage = 1
+ }
+ damage_building = {
+ type = nuclear_reactor
+ damage = 1
+ }
+ damage_building = {
+ type = rocket_site
+ damage = 1
+ }
+ damage_building = {
+ type = fuel_silo
+ damage = 1
+ }
+ set_state_flag = {
+ flag = marines_commando_effect
+ days = 30
+ }
+}
+
+# The idea is that you can use these effects to store the party popularities (and, if desired, the ruling party) when puppeting or possibly when starting civil wars, and then use the "restore" effects to reset it after the puppeting has happened, so that you don't have to use the overlord's ideology if you don't want to.
+get_current_ruling_party = {
+ set_variable = { ROOT.ruling_ideology_before_change = ROOT.current_party_ideology_group }
+}
+restore_ruling_party = {
+ ROOT = {
+ set_politics = {
+ ruling_party = var:ROOT.ruling_ideology_before_change
+ }
+ }
+}
+
+#Upgrades state cat to the next valid level. Called from state scope
+increase_state_category = {
+ if = {
+ limit = {
+ has_state_category = tiny_island
+ }
+ set_state_category = small_island
+ effect_tooltip = {
+ add_extra_state_shared_building_slots = 1
+ }
+ }
+
+ if = {
+ limit = {
+ OR = {
+ has_state_category = wasteland
+ has_state_category = enclave
+ }
+ }
+ set_state_category = pastoral
+ effect_tooltip = {
+ add_extra_state_shared_building_slots = 1
+ }
+ }
+ else_if = {
+ limit = {
+ has_state_category = pastoral
+ }
+ set_state_category = rural
+ effect_tooltip = {
+ add_extra_state_shared_building_slots = 1
+ }
+ }
+ else_if = {
+ limit = {
+ has_state_category = rural
+ }
+ set_state_category = town
+ effect_tooltip = {
+ add_extra_state_shared_building_slots = 2
+ }
+ }
+ else_if = {
+ limit = {
+ has_state_category = town
+ }
+ set_state_category = large_town
+ effect_tooltip = {
+ add_extra_state_shared_building_slots = 1
+ }
+ }
+ else_if = {
+ limit = {
+ has_state_category = large_town
+ }
+ set_state_category = city
+ effect_tooltip = {
+ add_extra_state_shared_building_slots = 1
+ }
+ }
+ else_if = {
+ limit = {
+ has_state_category = city
+ }
+ set_state_category = metropolis
+ effect_tooltip = {
+ add_extra_state_shared_building_slots = 4
+ }
+ }
+
+ else_if = {
+ limit = {
+ has_state_category = metropolis
+ }
+ set_state_category = megalopolis
+ effect_tooltip = {
+ add_extra_state_shared_building_slots = 2
+ }
+ }
+}
+
+add_potential_special_forces_tree = {
+ custom_effect_tooltip = add_potential_special_forces_tree_tt
+ if = {
+ limit = { NOT = { has_variable = sf_trees } }
+ set_variable = { sf_trees = 2 }
+ }
+ else = {
+ add_to_variable = { sf_trees = 1 }
+ }
+}
+
+remove_potential_special_forces_tree = {
+ if = {
+ limit = { NOT = { has_variable = sf_trees } }
+ set_variable = { sf_trees = 0 }
+ }
+ else = {
+ subtract_from_variable = { sf_trees = 1 }
+ }
+}
+
+store_core_states_on_game_start = { #Should be called from history file
+ every_core_state = {
+ ROOT = {
+ add_to_array = {
+ array = core_states_at_game_start
+ value = PREV
+ }
+ }
+ }
+}
diff --git a/data/blank_mod/common/scripted_effects/DEN_scripted_effects.txt b/data/blank_mod/common/scripted_effects/DEN_scripted_effects.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_effects/FIN_scripted_effects.txt b/data/blank_mod/common/scripted_effects/FIN_scripted_effects.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_effects/GER_scripted_effects.txt b/data/blank_mod/common/scripted_effects/GER_scripted_effects.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_effects/NORDIC_scripted_effects.txt b/data/blank_mod/common/scripted_effects/NORDIC_scripted_effects.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_effects/NOR_scripted_effects.txt b/data/blank_mod/common/scripted_effects/NOR_scripted_effects.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_effects/SWE_scripted_effects.txt b/data/blank_mod/common/scripted_effects/SWE_scripted_effects.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_localisation/AAT_Denmark_scripted_loc.txt b/data/blank_mod/common/scripted_localisation/AAT_Denmark_scripted_loc.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_localisation/AAT_Iceland_scripted_loc.txt b/data/blank_mod/common/scripted_localisation/AAT_Iceland_scripted_loc.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_localisation/AAT_Nordics_scripted_loc.txt b/data/blank_mod/common/scripted_localisation/AAT_Nordics_scripted_loc.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_localisation/AAT_Norway_scripted_loc.txt b/data/blank_mod/common/scripted_localisation/AAT_Norway_scripted_loc.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_localisation/AAT_Sweden_scripted_loc.txt b/data/blank_mod/common/scripted_localisation/AAT_Sweden_scripted_loc.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_localisation/AAT_finland_scripted_loc.txt b/data/blank_mod/common/scripted_localisation/AAT_finland_scripted_loc.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_triggers/00_scripted_triggers.txt b/data/blank_mod/common/scripted_triggers/00_scripted_triggers.txt
index aef8e29380..7a41c1a455 100644
--- a/data/blank_mod/common/scripted_triggers/00_scripted_triggers.txt
+++ b/data/blank_mod/common/scripted_triggers/00_scripted_triggers.txt
@@ -407,4 +407,195 @@ country_can_be_reasonable_target_of_wargoal = { #Expected scopes: Target country
has_non_aggression_pact_with = PREV
is_subject_of = PREV
}
+}
+
+has_lar = {
+ has_dlc = "La Resistance"
+}
+
+has_mtg = {
+ has_dlc = "Man the Guns"
+}
+
+has_hide_rule = {
+ has_game_rule = {
+ rule = obsolete_focus_branches_visibility
+ option = HIDE
+ }
+}
+
+has_aat = {
+ has_dlc = "Arms Against Tyranny"
+}
+
+has_any_tank_tech = {
+ if = {
+ limit = {
+ has_dlc = "No Step Back"
+ }
+ OR = {
+ has_tech = basic_light_tank_chassis
+ has_tech = basic_medium_tank_chassis
+ has_tech = basic_heavy_tank_chassis
+ }
+ }
+ else = {
+ has_tech = gwtank
+ }
+}
+
+has_any_tanks = {
+ if = {
+ limit = {
+ has_dlc = "No Step Back"
+ }
+ OR = {
+ has_equipment = { light_tank_chassis_0 > 0}
+ has_equipment = { medium_tank_chassis > 0 }
+ has_equipment = { light_tank_chassis > 0 }
+ has_equipment = { heavy_tank_chassis > 0 }
+ }
+ }
+ else = {
+ OR = {
+ has_equipment = { gw_tank_equipment > 0 }
+ has_equipment = { light_tank_equipment_1 > 0 }
+ has_equipment = { light_tank_equipment_2 > 0 }
+ has_equipment = { light_tank_equipment_3 > 0 }
+ has_equipment = { medium_tank_equipment_1 > 0 }
+ has_equipment = { medium_tank_equipment_2 > 0 }
+ has_equipment = { medium_tank_equipment_3 > 0 }
+ has_equipment = { modern_tank_equipment_1 > 0 }
+ has_equipment = { heavy_tank_equipment_1 > 0 }
+ has_equipment = { heavy_tank_equipment_2 > 0 }
+ has_equipment = { heavy_tank_equipment_3 > 0 }
+ has_equipment = { super_heavy_tank_equipment_1 > 0 }
+ }
+ }
+}
+
+mio_original_country_exists_and_not_at_war_with_ROOT = { #Used for MIO decisions visibility - THIS is original country
+ exists = yes
+ has_capitulated = no
+ NOT = { has_war_with = ROOT }
+}
+
+mio_original_country_available_with_opinion_subject_and_war_requirements_fulfilled = { #Used for MIO decisions availability - THIS is original country
+ has_opinion = {
+ target = ROOT
+ value > 49
+ }
+ OR = {
+ is_subject = no
+ is_subject_of = ROOT
+ }
+ has_capitulated = no
+ NOT = { has_war_with = ROOT }
+}
+
+
+can_unlock_new_special_forces_tree = {
+ if = {
+ limit = { NOT = { has_variable = sf_trees } }
+ custom_trigger_tooltip = {
+ tooltip = can_unlock_new_special_forces_tree_none
+ NOT = { has_variable = sf_trees }
+ }
+ }
+ else_if = {
+ limit = { check_variable = { sf_trees > 0 } }
+ custom_trigger_tooltip = {
+ tooltip = can_unlock_new_special_forces_tree_more_yes
+ check_variable = { sf_trees > 0 }
+ }
+ }
+ else = {
+ custom_trigger_tooltip = {
+ tooltip = can_unlock_new_special_forces_tree_more_no
+ always = no
+ }
+ }
+}
+# These are to make strength comparisons easier
+
+FROM_is_stronger = {
+ strength_ratio = {
+ tag = FROM
+ ratio < 1
+ }
+}
+
+FROM_is_twice_as_strong = {
+ strength_ratio = {
+ tag = FROM
+ ratio < 0.5
+ }
+}
+
+FROM_is_weaker = {
+ strength_ratio = {
+ tag = FROM
+ ratio > 1
+ }
+}
+
+FROM_is_twice_as_weak = {
+ strength_ratio = {
+ tag = FROM
+ ratio > 2
+ }
+}
+
+ai_has_completed_army_doctrine = {
+ is_ai = yes
+ OR = {
+ has_tech = werwolf_guerillas
+ has_tech = modern_blitzkrieg
+ has_tech = air_land_battle
+ has_tech = shock_and_awe
+ has_tech = c3i_theory
+ has_tech = infiltration_in_depth
+ has_tech = continuous_offensive
+ has_tech = guerilla_warfare
+ }
+}
+
+ai_has_completed_air_doctrine = {
+ is_ai = yes
+ OR = {
+ has_tech = offensive_formations
+ has_tech = mass_destruction
+ has_tech = forward_interception
+ has_tech = high_level_bombing
+ }
+}
+
+ai_has_completed_naval_doctrine = {
+ is_ai = yes
+ OR = {
+ has_tech = grand_battlefleet
+ has_tech = submarine_offensive
+ has_tech = floating_airfield
+ has_tech = combined_operations_raiding
+ has_tech = integrated_convoy_defence
+ has_tech = submarine_offensive_bs
+ has_tech = carrier_battlegroups
+ }
+}
+
+### Neutrality Act - only trade with countries at peace
+trade_partner_not_at_war = {
+ custom_trigger_tooltip = {
+ tooltip = trade_partner_not_at_war_tt
+ FROM = {
+ has_war = yes
+ }
+ }
+}
+
+is_allied_seller_trigger = {
+ custom_trigger_tooltip = {
+ tooltip = subsidy_allied_nation_tt
+ FROM = { is_in_faction_with = ROOT }
+ }
}
\ No newline at end of file
diff --git a/data/blank_mod/common/scripted_triggers/DEN_scripted_triggers.txt b/data/blank_mod/common/scripted_triggers/DEN_scripted_triggers.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_triggers/FIN_scripted_triggers.txt b/data/blank_mod/common/scripted_triggers/FIN_scripted_triggers.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_triggers/ICE_scripted_triggers.txt b/data/blank_mod/common/scripted_triggers/ICE_scripted_triggers.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_triggers/NORDIC_scripted_triggers.txt b/data/blank_mod/common/scripted_triggers/NORDIC_scripted_triggers.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_triggers/NOR_scripted_triggers.txt b/data/blank_mod/common/scripted_triggers/NOR_scripted_triggers.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/scripted_triggers/SWE_scripted_triggers.txt b/data/blank_mod/common/scripted_triggers/SWE_scripted_triggers.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/technologies/MTG_naval.txt b/data/blank_mod/common/technologies/MTG_naval.txt
index dc7cfc482b..be066b4684 100644
--- a/data/blank_mod/common/technologies/MTG_naval.txt
+++ b/data/blank_mod/common/technologies/MTG_naval.txt
@@ -60,6 +60,8 @@ technologies = {
categories = {
naval_equipment
dd_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -97,6 +99,8 @@ technologies = {
categories = {
naval_equipment
dd_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -130,6 +134,8 @@ technologies = {
categories = {
naval_equipment
dd_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -158,6 +164,8 @@ technologies = {
categories = {
naval_equipment
dd_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -182,6 +190,8 @@ technologies = {
naval_equipment
dd_tech
ship_modules_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -233,6 +243,8 @@ technologies = {
dd_tech
asw_tech
ship_modules_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
improved_depth_charges = {
@@ -274,6 +286,8 @@ technologies = {
dd_tech
asw_tech
ship_modules_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
advanced_depth_charges = {
@@ -314,6 +328,8 @@ technologies = {
dd_tech
asw_tech
ship_modules_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
modern_depth_charges = {
@@ -351,6 +367,8 @@ technologies = {
dd_tech
asw_tech
ship_modules_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
sonar = {
@@ -387,6 +405,8 @@ technologies = {
dd_tech
asw_tech
ship_modules_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -420,6 +440,8 @@ technologies = {
dd_tech
asw_tech
ship_modules_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -438,6 +460,7 @@ technologies = {
enable_equipment_modules = {
ship_airplane_launcher_1
cruiser_ship_engine_1
+ ship_armor_cruiser_1
}
path = {
leads_to_tech = basic_ship_hull_cruiser
@@ -470,6 +493,9 @@ technologies = {
naval_equipment
cl_tech
ca_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -505,6 +531,9 @@ technologies = {
naval_equipment
cl_tech
ca_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -538,6 +567,9 @@ technologies = {
naval_equipment
cl_tech
ca_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -566,6 +598,9 @@ technologies = {
naval_equipment
cl_tech
ca_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -598,6 +633,9 @@ technologies = {
cl_tech
ca_tech
ship_modules_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
basic_cruiser_armor_scheme = {
@@ -639,6 +677,9 @@ technologies = {
cl_tech
ca_tech
ship_modules_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_carrier_and_modules
}
}
@@ -694,6 +735,7 @@ technologies = {
naval_equipment
bb_tech
bc_tech
+ mio_cat_tech_all_capital_ship_and_modules
}
}
@@ -744,6 +786,7 @@ technologies = {
naval_equipment
bb_tech
bc_tech
+ mio_cat_tech_all_capital_ship_and_modules
}
}
ship_hull_super_heavy = {
@@ -768,6 +811,7 @@ technologies = {
naval_equipment
bb_tech
bc_tech
+ mio_cat_tech_all_capital_ship_and_modules
}
}
@@ -806,6 +850,7 @@ technologies = {
naval_equipment
bb_tech
bc_tech
+ mio_cat_tech_all_capital_ship_and_modules
}
}
@@ -839,8 +884,10 @@ technologies = {
naval_equipment
bb_tech
bc_tech
+ mio_cat_tech_all_capital_ship_and_modules
}
}
+
basic_heavy_armor_scheme = {
enable_equipment_modules = {
@@ -880,6 +927,7 @@ technologies = {
bb_tech
bc_tech
ship_modules_tech
+ mio_cat_tech_all_capital_ship_and_modules
}
}
@@ -920,6 +968,7 @@ technologies = {
bb_tech
bc_tech
ship_modules_tech
+ mio_cat_tech_all_capital_ship_and_modules
}
}
@@ -963,6 +1012,7 @@ early_ship_hull_carrier = {
categories = {
naval_equipment
cv_tech
+ mio_cat_tech_all_carrier_and_modules
}
}
@@ -996,6 +1046,7 @@ early_ship_hull_carrier = {
categories = {
naval_equipment
cv_tech
+ mio_cat_tech_all_carrier_and_modules
}
}
@@ -1029,6 +1080,7 @@ early_ship_hull_carrier = {
categories = {
naval_equipment
cv_tech
+ mio_cat_tech_all_carrier_and_modules
}
}
@@ -1057,6 +1109,7 @@ early_ship_hull_carrier = {
categories = {
naval_equipment
cv_tech
+ mio_cat_tech_all_carrier_and_modules
}
}
@@ -1099,6 +1152,7 @@ early_ship_hull_carrier = {
categories = {
naval_equipment
ss_tech
+ mio_cat_tech_all_submarine_and_modules
}
}
@@ -1133,6 +1187,7 @@ early_ship_hull_carrier = {
categories = {
naval_equipment
ss_tech
+ mio_cat_tech_all_submarine_and_modules
}
}
@@ -1173,6 +1228,7 @@ early_ship_hull_carrier = {
categories = {
naval_equipment
ss_tech
+ mio_cat_tech_all_submarine_and_modules
}
}
@@ -1203,6 +1259,7 @@ early_ship_hull_carrier = {
categories = {
naval_equipment
ss_tech
+ mio_cat_tech_all_submarine_and_modules
}
}
@@ -1236,6 +1293,7 @@ early_ship_hull_carrier = {
naval_equipment
ss_tech
ship_modules_tech
+ mio_cat_tech_all_submarine_and_modules
}
}
@@ -1277,6 +1335,7 @@ early_ship_hull_carrier = {
naval_equipment
ss_tech
ship_modules_tech
+ mio_cat_tech_all_submarine_and_modules
}
}
###Special snowflake hulls for special snowflake nations
diff --git a/data/blank_mod/common/technologies/MTG_naval_Support.txt b/data/blank_mod/common/technologies/MTG_naval_Support.txt
index aaa9cfc052..35e3225b12 100644
--- a/data/blank_mod/common/technologies/MTG_naval_Support.txt
+++ b/data/blank_mod/common/technologies/MTG_naval_Support.txt
@@ -67,6 +67,11 @@ technologies = {
cat_ship_light_battery
cat_ship_medium_battery
cat_ship_heavy_battery
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_carrier_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -107,6 +112,9 @@ technologies = {
naval_equipment
ship_modules_tech
cat_ship_light_battery
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -163,6 +171,9 @@ technologies = {
categories = {
naval_equipment
ship_modules_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -209,6 +220,9 @@ technologies = {
naval_equipment
ship_modules_tech
cat_ship_light_battery
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -264,6 +278,9 @@ technologies = {
categories = {
naval_equipment
ship_modules_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -299,6 +316,9 @@ technologies = {
naval_equipment
ship_modules_tech
cat_ship_light_battery
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -344,6 +364,9 @@ technologies = {
naval_equipment
ship_modules_tech
cat_ship_medium_battery
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -382,6 +405,9 @@ technologies = {
categories = {
naval_equipment
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -423,6 +449,9 @@ technologies = {
naval_equipment
ship_modules_tech
cat_ship_medium_battery
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -467,6 +496,9 @@ technologies = {
categories = {
naval_equipment
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -498,6 +530,9 @@ technologies = {
naval_equipment
ship_modules_tech
cat_ship_medium_battery
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -539,8 +574,10 @@ technologies = {
naval_equipment
ship_modules_tech
cat_ship_heavy_battery
+ mio_cat_tech_all_capital_ship_and_modules
}
}
+
improved_heavy_battery = {
research_cost = 1
@@ -577,8 +614,10 @@ technologies = {
naval_equipment
ship_modules_tech
cat_ship_heavy_battery
+ mio_cat_tech_all_capital_ship_and_modules
}
}
+
advanced_heavy_battery = {
research_cost = 1
@@ -610,8 +649,10 @@ technologies = {
naval_equipment
ship_modules_tech
cat_ship_heavy_battery
+ mio_cat_tech_all_capital_ship_and_modules
}
}
+
basic_heavy_shell = {
research_cost = 0.5
@@ -649,8 +690,10 @@ technologies = {
categories = {
naval_equipment
+ mio_cat_tech_all_capital_ship_and_modules
}
}
+
improved_heavy_shell = {
research_cost = 0.5
@@ -687,6 +730,7 @@ technologies = {
categories = {
naval_equipment
+ mio_cat_tech_all_capital_ship_and_modules
}
}
@@ -724,6 +768,11 @@ technologies = {
categories = {
naval_equipment
ship_modules_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_carrier_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -759,6 +808,11 @@ technologies = {
categories = {
naval_equipment
ship_modules_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_carrier_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -789,6 +843,11 @@ technologies = {
categories = {
naval_equipment
ship_modules_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_carrier_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -818,6 +877,9 @@ technologies = {
categories = {
naval_equipment
ship_modules_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -869,6 +931,10 @@ technologies = {
naval_equipment
ship_modules_tech
cat_torpedoes
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
+ mio_cat_tech_all_submarine_and_modules #Not really Sub but unlocks tech improving Subs torpedo stuff later
}
}
@@ -923,6 +989,10 @@ technologies = {
naval_equipment
ship_modules_tech
cat_torpedoes
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
+ mio_cat_tech_all_submarine_and_modules
}
}
@@ -963,6 +1033,10 @@ technologies = {
naval_equipment
ship_modules_tech
cat_torpedoes
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
+ mio_cat_tech_all_submarine_and_modules
}
}
@@ -992,6 +1066,10 @@ technologies = {
naval_equipment
ship_modules_tech
cat_torpedoes
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
+ mio_cat_tech_all_submarine_and_modules
}
}
improved_ship_torpedo_launcher = {
@@ -1011,7 +1089,6 @@ technologies = {
enable_equipment_modules = {
ship_torpedo_2
- ship_modules_tech
}
@@ -1025,6 +1102,9 @@ technologies = {
naval_equipment
ship_modules_tech
cat_torpedoes
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
advanced_ship_torpedo_launcher = {
@@ -1057,6 +1137,9 @@ technologies = {
naval_equipment
ship_modules_tech
cat_torpedoes
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
modern_ship_torpedo_launcher = {
@@ -1083,6 +1166,9 @@ technologies = {
naval_equipment
ship_modules_tech
cat_torpedoes
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -1121,6 +1207,12 @@ technologies = {
categories = {
naval_equipment
ship_modules_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_submarine_and_modules
+ mio_cat_tech_all_carrier_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -1152,6 +1244,12 @@ technologies = {
categories = {
naval_equipment
ship_modules_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_submarine_and_modules
+ mio_cat_tech_all_carrier_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -1179,6 +1277,12 @@ technologies = {
categories = {
naval_equipment
ship_modules_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_submarine_and_modules
+ mio_cat_tech_all_carrier_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -1224,6 +1328,10 @@ technologies = {
categories = {
naval_equipment
ship_modules_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules #Not really but for further tech
+ mio_cat_tech_all_cruiser_and_modules #Not really but for further tech
+ mio_cat_tech_all_destroyer_and_modules #Not really but for further tech
}
}
@@ -1265,6 +1373,10 @@ technologies = {
categories = {
naval_equipment
ship_modules_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules #Not really but for further tech
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules #Not really but for further tech
}
}
@@ -1310,6 +1422,10 @@ technologies = {
categories = {
naval_equipment
ship_modules_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -1365,6 +1481,9 @@ technologies = {
naval_mines
naval_minelaying
naval_equipment
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -1397,6 +1516,7 @@ technologies = {
naval_minelaying
naval_equipment
ship_modules_tech
+ mio_cat_tech_all_submarine_and_modules
}
}
@@ -1424,6 +1544,7 @@ technologies = {
naval_minelaying
naval_equipment
ship_modules_tech
+ mio_cat_tech_all_submarine_and_modules
}
}
@@ -1467,6 +1588,9 @@ technologies = {
naval_mines
naval_minelaying
naval_equipment
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -1491,6 +1615,12 @@ technologies = {
naval_mines
naval_minesweeping
naval_equipment
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_submarine_and_modules
+ mio_cat_tech_all_carrier_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -1528,6 +1658,9 @@ technologies = {
naval_mines
naval_minelaying
naval_equipment
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -1620,6 +1753,9 @@ technologies = {
naval_mines
naval_minelaying
naval_equipment
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -1687,7 +1823,7 @@ technologies = {
mtg_transport = { #WHEN BALANCING - ALSO FIX REGULAR NAVAL TREE
- transport_capacity = -0.5
+ transport_capacity = -0.33
naval_invasion_capacity = 10
path = {
@@ -1720,9 +1856,9 @@ technologies = {
mtg_landing_craft = {
- invasion_preparation = -0.5
+ invasion_preparation = -0.25
amphibious_invasion_defence = 0.15
- naval_invasion_capacity = 40
+ naval_invasion_capacity = 20
path = {
leads_to_tech = mtg_tank_landing_craft
diff --git a/data/blank_mod/common/technologies/NSB_armor.txt b/data/blank_mod/common/technologies/NSB_armor.txt
index 7314b83bc0..a0e4c0b104 100644
--- a/data/blank_mod/common/technologies/NSB_armor.txt
+++ b/data/blank_mod/common/technologies/NSB_armor.txt
@@ -19,6 +19,8 @@ technologies = {
### GERMAN TANK NAMES IN COMMENTS SO YOU CAN FIND STUFF MORE EASILY
gwtank_chassis = { #Leichttraktor
+ show_equipment_icon = yes
+
enable_equipments = {
light_tank_chassis_0
medium_tank_chassis_0
@@ -142,7 +144,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_light_armor
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -222,7 +226,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_light_armor
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -284,7 +290,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_light_armor
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -336,7 +344,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
tp_tech
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -389,7 +399,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
tp_tech
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -414,7 +426,7 @@ technologies = {
factor = 0.5
modifier = {
is_major = no
- factor = 2
+ factor = 2 # Minors prefer light tanks
}
modifier = {
@@ -435,7 +447,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_light_armor
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -499,6 +513,12 @@ technologies = {
is_major = yes
date > "1938.1.1"
}
+
+ modifier = {
+ factor = 1.1
+ date > "1939.1.1"
+ }
+
modifier = {
factor = 1.1
date > "1940.1.1"
@@ -517,7 +537,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_medium_armor
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -575,7 +597,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_medium_armor
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -622,7 +646,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_medium_armor
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -667,7 +693,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_medium_armor
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -745,7 +773,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_heavy_armor
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -796,7 +826,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_heavy_armor
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -844,7 +876,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_heavy_armor
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -878,7 +912,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_heavy_armor
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -934,6 +970,10 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -989,6 +1029,10 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1042,6 +1086,10 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1089,6 +1137,10 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1140,6 +1192,10 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1193,6 +1249,10 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1244,6 +1304,10 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1287,8 +1351,40 @@ technologies = {
}
}
+ categories = {
+ armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
+ }
+ }
+
+ NOR_rikstanken_tech = {
+
+ allow = { always = no } #Only obtained through Rikstanken Event
+
+ enable_equipment_modules = {
+ NOR_rikstanken_turret
+ NOR_tank_rikstanken_armor
+ }
+
+ path = {
+ }
+
+ on_research_complete = {
+
+ }
+
+ show_effect_as_desc = no
+
+ research_cost = 1
+ start_year = 1936
+
+
categories = {
armor
}
}
+
}
diff --git a/data/blank_mod/common/technologies/air_techs.txt b/data/blank_mod/common/technologies/air_techs.txt
index 44a5649b6f..736bfd7912 100644
--- a/data/blank_mod/common/technologies/air_techs.txt
+++ b/data/blank_mod/common/technologies/air_techs.txt
@@ -30,6 +30,9 @@ technologies = {
light_air
light_fighter
air_equipment
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_light_aircraft_and_modules
+
}
sub_technologies = {
@@ -58,6 +61,7 @@ technologies = {
categories = {
naval_air
air_equipment
+ mio_cat_all_light_fighter_and_modules
}
ai_will_do = {
@@ -103,6 +107,8 @@ technologies = {
light_air
light_fighter
air_equipment
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
sub_technologies = {
@@ -151,6 +157,7 @@ technologies = {
categories = {
naval_air
air_equipment
+ mio_cat_all_light_fighter_and_modules
}
ai_will_do = {
@@ -202,6 +209,8 @@ technologies = {
light_air
light_fighter
air_equipment
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
sub_technologies = {
@@ -250,6 +259,7 @@ technologies = {
categories = {
naval_air
air_equipment
+ mio_cat_all_light_fighter_and_modules
}
ai_will_do = {
@@ -300,6 +310,8 @@ technologies = {
light_air
light_fighter
air_equipment
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
sub_technologies = {
@@ -348,6 +360,7 @@ technologies = {
categories = {
naval_air
air_equipment
+ mio_cat_all_light_fighter_and_modules
}
ai_will_do = {
@@ -393,6 +406,8 @@ technologies = {
categories = {
light_air
jet_technology
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -421,6 +436,8 @@ technologies = {
categories = {
light_air
jet_technology
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -456,6 +473,8 @@ technologies = {
light_air
cas_bomber
air_equipment
+ mio_cat_all_cas_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -476,6 +495,7 @@ technologies = {
naval_air
air_equipment
cas_bomber
+ mio_cat_all_cas_and_modules
}
ai_will_do = {
@@ -525,6 +545,8 @@ technologies = {
light_air
cas_bomber
air_equipment
+ mio_cat_all_cas_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -553,6 +575,7 @@ technologies = {
naval_air
air_equipment
cas_bomber
+ mio_cat_all_cas_and_modules
}
ai_will_do = {
@@ -601,6 +624,8 @@ technologies = {
light_air
cas_bomber
air_equipment
+ mio_cat_all_cas_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -629,6 +654,7 @@ technologies = {
naval_air
air_equipment
cas_bomber
+ mio_cat_all_cas_and_modules
}
ai_will_do = {
@@ -670,6 +696,8 @@ technologies = {
naval_air
naval_bomber
air_equipment
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -689,6 +717,7 @@ technologies = {
categories = {
naval_air
air_equipment
+ mio_cat_all_naval_bomber_and_modules
}
ai_will_do = {
@@ -738,6 +767,8 @@ technologies = {
naval_air
air_equipment
naval_bomber
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -764,6 +795,7 @@ technologies = {
categories = {
naval_air
air_equipment
+ mio_cat_all_naval_bomber_and_modules
}
ai_will_do = {
@@ -813,6 +845,8 @@ technologies = {
naval_air
naval_bomber
air_equipment
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -839,6 +873,7 @@ technologies = {
categories = {
naval_air
air_equipment
+ mio_cat_all_naval_bomber_and_modules
}
ai_will_do = {
@@ -885,6 +920,7 @@ technologies = {
medium_air
tactical_bomber
air_equipment
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -914,6 +950,7 @@ technologies = {
medium_air
air_equipment
cat_heavy_fighter
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -943,6 +980,7 @@ technologies = {
medium_air
air_equipment
cat_heavy_fighter
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -972,6 +1010,7 @@ technologies = {
medium_air
air_equipment
cat_heavy_fighter
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -1001,6 +1040,7 @@ technologies = {
medium_air
air_equipment
cat_scout_plane
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -1039,6 +1079,7 @@ technologies = {
medium_air
air_equipment
cat_scout_plane
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -1083,6 +1124,7 @@ technologies = {
medium_air
tactical_bomber
air_equipment
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -1136,6 +1178,7 @@ technologies = {
medium_air
tactical_bomber
air_equipment
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -1189,6 +1232,7 @@ technologies = {
medium_air
tactical_bomber
air_equipment
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -1241,6 +1285,7 @@ technologies = {
medium_air
jet_technology
tactical_bomber
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -1269,6 +1314,7 @@ technologies = {
medium_air
jet_technology
tactical_bomber
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -1299,6 +1345,7 @@ technologies = {
heavy_air
air_equipment
cat_strategic_bomber
+ mio_cat_all_heavy_aircraft_and_modules
}
ai_will_do = {
@@ -1328,6 +1375,7 @@ technologies = {
heavy_air
air_equipment
cat_strategic_bomber
+ mio_cat_all_heavy_aircraft_and_modules
}
ai_will_do = {
@@ -1357,6 +1405,7 @@ technologies = {
heavy_air
air_equipment
cat_strategic_bomber
+ mio_cat_all_heavy_aircraft_and_modules
}
ai_will_do = {
@@ -1386,6 +1435,7 @@ technologies = {
heavy_air
jet_technology
cat_strategic_bomber
+ mio_cat_all_heavy_aircraft_and_modules
}
ai_will_do = {
diff --git a/data/blank_mod/common/technologies/armor.txt b/data/blank_mod/common/technologies/armor.txt
index fa1724202b..4d7510029c 100644
--- a/data/blank_mod/common/technologies/armor.txt
+++ b/data/blank_mod/common/technologies/armor.txt
@@ -79,7 +79,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_light_armor
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -162,7 +164,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_light_armor
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -203,6 +207,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -236,6 +242,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -269,6 +277,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -333,7 +343,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_light_armor
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -365,6 +377,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -397,6 +411,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -424,6 +440,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -473,7 +491,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
tp_tech
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -510,7 +530,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
tp_tech
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -559,7 +581,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_light_armor
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -578,6 +602,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -596,6 +622,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -614,6 +642,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_light_armor_and_modules
}
}
@@ -672,7 +702,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_medium_armor
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -721,6 +753,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -767,6 +801,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -798,6 +834,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -860,7 +898,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_medium_armor
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -908,6 +948,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -953,6 +995,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -980,6 +1024,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -1034,7 +1080,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_medium_armor
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -1081,6 +1129,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -1127,6 +1177,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -1154,6 +1206,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -1201,7 +1255,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_medium_armor
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -1239,6 +1295,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -1276,6 +1334,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -1298,6 +1358,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_medium_armor_and_modules
}
}
@@ -1384,7 +1446,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_heavy_armor
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1416,6 +1480,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1447,6 +1513,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1478,6 +1546,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1542,7 +1612,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_heavy_armor
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1570,6 +1642,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1597,6 +1671,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1625,6 +1701,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1678,7 +1756,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_heavy_armor
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1706,6 +1786,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1733,6 +1815,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1760,6 +1844,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1792,7 +1878,9 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
cat_heavy_armor
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1815,6 +1903,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1837,6 +1927,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
@@ -1858,6 +1950,8 @@ technologies = {
categories = {
armor
+ mio_cat_tech_all_armor_and_modules
+ mio_cat_tech_heavy_armor_and_modules
}
}
diff --git a/data/blank_mod/common/technologies/artillery.txt b/data/blank_mod/common/technologies/artillery.txt
index 48528d6d6f..e7625e3706 100644
--- a/data/blank_mod/common/technologies/artillery.txt
+++ b/data/blank_mod/common/technologies/artillery.txt
@@ -35,6 +35,7 @@ technologies = {
categories = {
artillery
+ mio_cat_all_artillery_equipment
}
ai_will_do = {
@@ -106,6 +107,7 @@ technologies = {
categories = {
artillery
+ mio_cat_all_artillery_equipment
}
ai_will_do = {
@@ -155,6 +157,7 @@ technologies = {
categories = {
artillery
+ mio_cat_all_artillery_equipment
}
ai_will_do = {
@@ -225,6 +228,7 @@ technologies = {
categories = {
artillery
+ mio_cat_all_artillery_equipment
}
ai_will_do = {
@@ -293,6 +297,7 @@ technologies = {
categories = {
artillery
+ mio_cat_all_artillery_equipment
}
ai_will_do = {
@@ -335,6 +340,7 @@ technologies = {
categories = {
artillery
+ mio_cat_all_artillery_equipment
}
ai_will_do = {
@@ -400,6 +406,7 @@ technologies = {
categories = {
artillery
+ mio_cat_all_artillery_equipment
}
ai_will_do = {
@@ -478,6 +485,7 @@ technologies = {
categories = {
rocketry
+ mio_cat_all_artillery_equipment
}
}
@@ -516,6 +524,7 @@ technologies = {
categories = {
rocketry
+ mio_cat_all_artillery_equipment
}
}
@@ -554,6 +563,7 @@ technologies = {
categories = {
rocketry
+ mio_cat_all_artillery_equipment
}
}
@@ -583,6 +593,7 @@ technologies = {
categories = {
rocketry
+ mio_cat_all_artillery_equipment
}
}
@@ -640,6 +651,7 @@ technologies = {
categories = {
artillery
cat_anti_air
+ mio_cat_all_artillery_equipment
}
}
@@ -678,6 +690,7 @@ technologies = {
categories = {
artillery
cat_anti_air
+ mio_cat_all_artillery_equipment
}
}
@@ -716,6 +729,7 @@ technologies = {
categories = {
artillery
cat_anti_air
+ mio_cat_all_artillery_equipment
}
}
@@ -758,6 +772,7 @@ technologies = {
categories = {
artillery
cat_anti_air
+ mio_cat_all_artillery_equipment
}
}
@@ -796,6 +811,7 @@ technologies = {
categories = {
artillery
cat_anti_air
+ mio_cat_all_artillery_equipment
}
}
@@ -830,6 +846,7 @@ technologies = {
categories = {
artillery
cat_anti_air
+ mio_cat_all_artillery_equipment
}
}
@@ -890,6 +907,7 @@ technologies = {
categories = {
artillery
cat_anti_tank
+ mio_cat_all_artillery_equipment
}
}
@@ -973,6 +991,7 @@ technologies = {
categories = {
artillery
cat_anti_tank
+ mio_cat_all_artillery_equipment
}
}
@@ -1035,6 +1054,7 @@ technologies = {
categories = {
artillery
cat_anti_tank
+ mio_cat_all_artillery_equipment
}
}
@@ -1121,6 +1141,7 @@ technologies = {
categories = {
artillery
cat_anti_tank
+ mio_cat_all_artillery_equipment
}
}
@@ -1202,6 +1223,7 @@ technologies = {
categories = {
artillery
cat_anti_tank
+ mio_cat_all_artillery_equipment
}
}
@@ -1256,6 +1278,56 @@ technologies = {
categories = {
artillery
cat_anti_tank
+ mio_cat_all_artillery_equipment
+ }
+ }
+
+ SWE_bofors_antitank_gun = {
+
+ research_cost = 1
+
+ # only from focus!!! Bofors anti tank gun #####
+ allow = {
+ always = no
+ }
+
+ anti_tank = {
+ hard_attack = 0.1
+ ap_attack = 0.1
+ }
+ anti_tank_brigade = {
+ hard_attack = 0.1
+ ap_attack = 0.1
+ }
+ mot_anti_tank_brigade = {
+ hard_attack = 0.1
+ ap_attack = 0.1
+ }
+ light_tank_destroyer_brigade = {
+ hard_attack = 0.1
+ ap_attack = 0.1
+ }
+ medium_tank_destroyer_brigade = {
+ hard_attack = 0.1
+ ap_attack = 0.1
+ }
+ heavy_tank_destroyer_brigade = {
+ hard_attack = 0.1
+ ap_attack = 0.1
+ }
+ super_heavy_tank_destroyer_brigade = {
+ hard_attack = 0.1
+ ap_attack = 0.1
+ }
+ modern_tank_destroyer_brigade = {
+ hard_attack = 0.1
+ ap_attack = 0.1
+ }
+
+ categories = {
+ cat_anti_tank
+ artillery
+ mio_cat_all_artillery_equipment
}
}
diff --git a/data/blank_mod/common/technologies/bba_air_techs.txt b/data/blank_mod/common/technologies/bba_air_techs.txt
index 78fb2602ce..fb28e207dc 100644
--- a/data/blank_mod/common/technologies/bba_air_techs.txt
+++ b/data/blank_mod/common/technologies/bba_air_techs.txt
@@ -34,6 +34,10 @@ technologies = {
naval_air
naval_bomber
air_equipment
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_cas_and_modules
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
@@ -82,6 +86,10 @@ technologies = {
naval_air
naval_bomber
air_equipment
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_cas_and_modules
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
@@ -155,6 +163,10 @@ technologies = {
naval_air
naval_bomber
air_equipment
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_cas_and_modules
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -220,6 +232,10 @@ technologies = {
naval_air
naval_bomber
air_equipment
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_cas_and_modules
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -285,6 +301,10 @@ technologies = {
naval_air
naval_bomber
jet_technology
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_cas_and_modules
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -321,6 +341,7 @@ technologies = {
tactical_bomber
cat_heavy_fighter
air_equipment
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -354,6 +375,7 @@ technologies = {
tactical_bomber
cat_heavy_fighter
air_equipment
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -410,6 +432,7 @@ technologies = {
tactical_bomber
cat_heavy_fighter
air_equipment
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -466,6 +489,7 @@ technologies = {
tactical_bomber
cat_heavy_fighter
air_equipment
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -516,6 +540,7 @@ technologies = {
jet_technology
cat_heavy_fighter
tactical_bomber
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -550,6 +575,7 @@ technologies = {
heavy_air
air_equipment
cat_strategic_bomber
+ mio_cat_all_heavy_aircraft_and_modules
}
ai_will_do = {
@@ -580,6 +606,7 @@ technologies = {
heavy_air
air_equipment
cat_strategic_bomber
+ mio_cat_all_heavy_aircraft_and_modules
}
ai_will_do = {
@@ -610,6 +637,7 @@ technologies = {
heavy_air
air_equipment
cat_strategic_bomber
+ mio_cat_all_heavy_aircraft_and_modules
}
ai_will_do = {
@@ -640,6 +668,7 @@ technologies = {
heavy_air
air_equipment
cat_strategic_bomber
+ mio_cat_all_heavy_aircraft_and_modules
}
ai_will_do = {
@@ -670,6 +699,7 @@ technologies = {
heavy_air
jet_technology
cat_strategic_bomber
+ mio_cat_all_heavy_aircraft_and_modules
}
ai_will_do = {
@@ -690,7 +720,6 @@ technologies = {
small_bomb_bay
medium_bomb_bay
large_bomb_bay
- torpedo_mounting
}
research_cost = 1
@@ -702,14 +731,94 @@ technologies = {
}
path = {
- leads_to_tech = photo_reconnaisance
+ leads_to_tech = armor_piercing_bombs
research_cost_coeff = 1
}
+
+ path = {
+ leads_to_tech = heavy_bombs
+ research_cost_coeff = 1
+ }
+
+ categories = {
+ air_equipment
+ plane_modules_tech
+ cat_air_bombs
+ mio_cat_all_cas_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_heavy_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
+ }
+
+ ai_will_do = {
+ factor = 1
+ modifier = {
+ OR = {
+ has_tech = iw_small_airframe
+ has_tech = iw_medium_airframe
+ has_tech = iw_large_airframe
+ }
+ factor = 5
+ }
+ }
+ }
+
+ heavy_bombs = {
+ enable_equipment_modules = {
+ heavy_bomb_locks
+ }
+
+ research_cost = 1
+ start_year = 1940
+
+ folder = {
+ name = bba_air_techs_folder
+ position = { x = 0 y = 6 }
+ }
+
+ categories = {
+ air_equipment
+ plane_modules_tech
+ cat_air_bombs
+ mio_cat_all_cas_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
+ }
+
+ ai_will_do = {
+ factor = 1
+ modifier = {
+ OR = {
+ has_tech = iw_small_airframe
+ has_tech = iw_medium_airframe
+ has_tech = iw_large_airframe
+ }
+ factor = 5
+ }
+ }
+ }
+
+
+ armor_piercing_bombs = {
+ enable_equipment_modules = {
+ armor_piercing_bomb_locks
+ }
+
+ research_cost = 1
+ start_year = 1936
+
+ folder = {
+ name = bba_air_techs_folder
+ position = { x = 2 y = 2 }
+ }
categories = {
air_equipment
plane_modules_tech
cat_air_bombs
+ mio_cat_all_cas_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -735,7 +844,7 @@ technologies = {
folder = {
name = bba_air_techs_folder
- position = { x = 0 y = 4 }
+ position = { x = 0 y = 2 }
}
allow_branch = { has_dlc = "La Resistance" }
@@ -743,6 +852,7 @@ technologies = {
categories = {
air_equipment
plane_modules_tech
+ mio_cat_all_medium_aircraft_and_modules
}
ai_will_do = {
@@ -756,6 +866,124 @@ technologies = {
}
}
+ air_torpedoe_1 = {
+ enable_equipment_modules = {
+ torpedo_mounting
+ }
+
+ research_cost = 1
+ start_year = 1936
+
+ folder = {
+ name = bba_air_techs_folder
+ position = { x = 0 y = 2 }
+ }
+
+ path = {
+ leads_to_tech = air_torpedoe_2
+ research_cost_coeff = 1
+ }
+
+ categories = {
+ air_equipment
+ plane_modules_tech
+ cat_air_bombs
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_heavy_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
+ }
+
+ ai_will_do = {
+ factor = 2
+ modifier = {
+ OR = {
+ has_tech = iw_small_airframe
+ has_tech = iw_medium_airframe
+ has_tech = iw_large_airframe
+ }
+ factor = 5
+ }
+ }
+ }
+
+ air_torpedoe_2 = {
+ enable_equipment_modules = {
+ torpedo_mounting_2
+ }
+
+ research_cost = 1
+ start_year = 1940
+
+ folder = {
+ name = bba_air_techs_folder
+ position = { x = 0 y = 6 }
+ }
+
+ path = {
+ leads_to_tech = air_torpedoe_3
+ research_cost_coeff = 1
+ }
+
+ categories = {
+ air_equipment
+ plane_modules_tech
+ cat_air_bombs
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_heavy_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
+ }
+
+ ai_will_do = {
+ factor = 1
+ modifier = {
+ OR = {
+ has_tech = iw_small_airframe
+ has_tech = iw_medium_airframe
+ has_tech = iw_large_airframe
+ }
+ factor = 5
+ }
+ }
+ }
+
+ air_torpedoe_3 = {
+ enable_equipment_modules = {
+ torpedo_mounting_3
+ }
+
+ research_cost = 1
+ start_year = 1944
+
+ folder = {
+ name = bba_air_techs_folder
+ position = { x = 0 y = 10 }
+ }
+
+ categories = {
+ air_equipment
+ plane_modules_tech
+ cat_air_bombs
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_heavy_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
+ }
+
+ ai_will_do = {
+ factor = 1
+ modifier = {
+ OR = {
+ has_tech = iw_small_airframe
+ has_tech = iw_medium_airframe
+ has_tech = iw_large_airframe
+ }
+ factor = 5
+ }
+ }
+ }
+
aa_lmg = {
enable_equipment_modules = {
@@ -792,6 +1020,10 @@ technologies = {
air_equipment
plane_modules_tech
cat_air_guns
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_heavy_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -819,16 +1051,20 @@ technologies = {
}
research_cost = 1
- start_year = 1936
+ start_year = 1939
folder = {
name = bba_air_techs_folder
- position = { x = -2 y = 4 }
+ position = { x = -2 y = 5 }
}
categories = {
air_equipment
plane_modules_tech
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_heavy_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -873,6 +1109,10 @@ technologies = {
air_equipment
plane_modules_tech
cat_air_guns
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_heavy_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -906,10 +1146,20 @@ technologies = {
leads_to_tech = aa_cannon_2
research_cost_coeff = 1
}
+
+ path = {
+ leads_to_tech = aa_cannon_3
+ research_cost_coeff = 1
+ }
+
categories = {
air_equipment
plane_modules_tech
cat_air_guns
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_heavy_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -928,8 +1178,8 @@ technologies = {
aa_cannon_2 = {
enable_equipment_modules = {
- aircraft_cannon_2_1x
- aircraft_cannon_2_2x
+ large_aircraft_cannon_1x
+ large_aircraft_cannon_2x
cannon_defense_turret
cannon_defense_turret_2x
}
@@ -939,13 +1189,57 @@ technologies = {
folder = {
name = bba_air_techs_folder
- position = { x = 2 y = 7 }
+ position = { x = 0 y = 7 }
}
categories = {
air_equipment
plane_modules_tech
cat_air_guns
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_heavy_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
+ }
+
+ ai_will_do = {
+ factor = 1
+ modifier = {
+ OR = {
+ has_tech = improved_small_airframe
+ has_tech = improved_medium_airframe
+ has_tech = improved_large_airframe
+ }
+ factor = 5
+ }
+ }
+ }
+
+ aa_cannon_3 = {
+
+ enable_equipment_modules = {
+ aircraft_cannon_2_1x
+ aircraft_cannon_2_2x
+ cannon_defense_turret
+ cannon_defense_turret_2x
+ }
+
+ research_cost = 2
+ start_year = 1945
+
+ folder = {
+ name = bba_air_techs_folder
+ position = { x = 2 y = 12 }
+ }
+
+ categories = {
+ air_equipment
+ plane_modules_tech
+ cat_air_guns
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_heavy_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -998,6 +1292,12 @@ technologies = {
air_equipment
plane_modules_tech
cat_air_engine
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_cas_and_modules
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_heavy_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -1060,6 +1360,12 @@ technologies = {
air_equipment
plane_modules_tech
cat_air_engine
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_cas_and_modules
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_heavy_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -1073,15 +1379,15 @@ technologies = {
factor = 0
}
modifier = {
- date > "1938.1.1"
+ date > "1937.1.1"
factor = 1.5
}
modifier = {
- date > "1939.1.1"
+ date > "1938.1.1"
factor = 1.5
}
modifier = {
- date > "1940.1.1"
+ date > "1939.1.1"
factor = 3
}
}
@@ -1114,13 +1420,19 @@ technologies = {
air_equipment
plane_modules_tech
cat_air_engine
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_cas_and_modules
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_heavy_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
factor = 5
modifier = {
is_major = yes
- factor = 2
+ factor = 5
}
modifier = {
num_of_military_factories < 10
@@ -1163,6 +1475,12 @@ technologies = {
air_equipment
plane_modules_tech
cat_air_engine
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_cas_and_modules
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_heavy_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -1204,12 +1522,18 @@ technologies = {
folder = {
name = bba_air_techs_folder
- position = { x = 2 y = 4 }
+ position = { x = -2 y = 4 }
}
categories = {
air_equipment
plane_modules_tech
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_cas_and_modules
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_heavy_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
@@ -1254,12 +1578,18 @@ technologies = {
folder = {
name = bba_air_techs_folder
- position = { x = -2 y = 4 }
+ position = { x = -2 y = 2 }
}
categories = {
air_equipment
plane_modules_tech
+ mio_cat_all_light_fighter_and_modules
+ mio_cat_all_cas_and_modules
+ mio_cat_all_naval_bomber_and_modules
+ mio_cat_all_medium_aircraft_and_modules
+ mio_cat_all_heavy_aircraft_and_modules
+ mio_cat_all_light_aircraft_and_modules
}
ai_will_do = {
diff --git a/data/blank_mod/common/technologies/infantry.txt b/data/blank_mod/common/technologies/infantry.txt
index 521228346c..4ba944ae7a 100644
--- a/data/blank_mod/common/technologies/infantry.txt
+++ b/data/blank_mod/common/technologies/infantry.txt
@@ -1,6 +1,7 @@
technologies = {
@1918 = 0
+ @1924 = 1
@1936 = 2
@1938 = 4
@1939 = 6
@@ -445,7 +446,7 @@ technologies = {
leads_to_tech = paratroopers3
research_cost_coeff = 1
}
-
+
research_cost = 1.5
start_year = 1939
folder = {
@@ -537,7 +538,6 @@ technologies = {
leads_to_tech = marines3
research_cost_coeff = 1
}
-
research_cost = 1.5
start_year = 1939
@@ -631,7 +631,6 @@ technologies = {
research_cost_coeff = 1
}
-
research_cost = 1.5
start_year = 1939
folder = {
@@ -679,6 +678,8 @@ technologies = {
acclimatization_cold_climate_gain_factor = 0.05
}
+ allow_branch = { not = { has_dlc = "Arms Against Tyranny" } }
+
#dependencies = {
# OR = {
# marines = 1
@@ -758,7 +759,7 @@ technologies = {
advanced_special_forces
}
- special_forces_cap = 0.05
+ special_forces_cap = 0.10
special_forces_training_time_factor = -0.1
path = {
@@ -789,11 +790,11 @@ technologies = {
extreme_environment_training = {
category_special_forces = {
- acclimatization_hot_climate_gain_factor = 0.50
- acclimatization_cold_climate_gain_factor = 0.50
+ acclimatization_hot_climate_gain_factor = 0.20
+ acclimatization_cold_climate_gain_factor = 0.20
}
- special_forces_no_supply_grace = 48
+ special_forces_no_supply_grace = 24
special_forces_training_time_factor = 0.1
path = {
@@ -824,8 +825,8 @@ technologies = {
survival_training = {
category_special_forces = {
- acclimatization_hot_climate_gain_factor = 0.20
- acclimatization_cold_climate_gain_factor = 0.20
+ acclimatization_hot_climate_gain_factor = 0.10
+ acclimatization_cold_climate_gain_factor = 0.10
}
special_forces_out_of_supply_factor = -0.1
@@ -857,13 +858,11 @@ technologies = {
elite_forces = {
category_special_forces = {
- acclimatization_hot_climate_gain_factor = 0.20
- acclimatization_cold_climate_gain_factor = 0.20
max_organisation = 5
soft_attack = 0.05
}
- special_forces_no_supply_grace = 48
+ special_forces_no_supply_grace = 24
research_cost = 2
start_year = 1944
@@ -1414,6 +1413,70 @@ technologies = {
}
}
}
+
+ tech_trucks = {
+
+ enable_subunits = {
+ mot_anti_tank_brigade
+ mot_artillery_brigade
+ mot_anti_air_brigade
+ }
+
+ enable_equipments = {
+ motorized_equipment_0
+ }
+
+ enable_equipment_modules = {
+ tank_wheeled_suspension
+ }
+
+
+ path = {
+ leads_to_tech = motorised_infantry
+ research_cost_coeff = 1
+ }
+
+ path = {
+ leads_to_tech = armored_car1
+ research_cost_coeff = 1
+ }
+
+ research_cost = 1.5
+ start_year = 1936
+ folder = {
+ name = infantry_folder
+ position = { x = 0 y = -1 }
+ }
+
+ categories = {
+ motorized_equipment
+ mio_cat_tech_all_motorized_mechanized
+ infantry_tech
+ }
+
+ ai_will_do = {
+ factor = 1
+
+ modifier = {
+ factor = 2
+ date > "1937.1.1"
+ }
+
+ modifier = {
+ factor = 2
+ date > "1938.1.1"
+ }
+
+ modifier = {
+ factor = 2
+ date > "1939.1.1"
+ }
+ modifier = {
+ is_major = no
+ factor = 0.75
+ }
+ }
+ }
motorised_infantry = {
@@ -1425,9 +1488,9 @@ technologies = {
motorized_equipment_1
}
- enable_equipment_modules = {
- tank_wheeled_suspension
- }
+ #enable_equipment_modules = {
+ # tank_wheeled_suspension
+ #}
on_research_complete_limit = {
NOT = {
@@ -1447,8 +1510,7 @@ technologies = {
}
path = {
- leads_to_tech = armored_car1
- research_cost_coeff = 1
+
}
research_cost = 2
@@ -1469,6 +1531,7 @@ technologies = {
categories = {
motorized_equipment
+ mio_cat_tech_all_motorized_mechanized
infantry_tech
}
@@ -1503,6 +1566,9 @@ technologies = {
enable_equipments = {
motorized_rocket_equipment_1
}
+ dependencies = {
+ rocket_artillery = 1
+ }
research_cost = 1.5
start_year = 1939
@@ -1513,6 +1579,7 @@ technologies = {
categories = {
mot_rockets
+ mio_cat_tech_all_motorized_mechanized
}
}
@@ -1535,7 +1602,7 @@ technologies = {
start_year = 1914
folder = {
name = infantry_folder
- position = { x = 4 y = @1936 }
+ position = { x = 4 y = @1924 }
}
categories = {
@@ -1703,8 +1770,69 @@ technologies = {
}
}
+ SWE_lynx_armored_car = {
+ allow = { always = no }
+ enable_equipments = {
+ #armored_car_at_equipment
+ }
+
+ research_cost = 1
+ start_year = 1942
+ sub_tech_index = 1
+
+ categories = {
+ motorized_equipment
+ armor
+ cat_armored_cars
+ }
+
+ armored_car = {
+ max_organisation = 5
+ ap_attack = 0.1
+ hard_attack = 0.1
+ #hardness = 1
+ forest = {
+ attack = 0.2
+ movement = 0.55
+ }
+ desert = {
+ attack = -0.2
+ movement = -0.55
+ }
+
+ snow = {
+ attack = 0.2
+ movement = 0.35
+ }
+ }
+
+ armored_car_recon = {
+ max_organisation = 3
+ ap_attack = 0.1
+ hard_attack = 0.1
+ #hardness = 1
+ forest = {
+ attack = 0.05
+ movement = 0.05
+ }
+ desert = {
+ attack = -0.15
+ movement = -0.15
+ }
+
+ snow = {
+ attack = 0.05
+ movement = 0.08
+ }
+ }
+ }
+
mechanised_infantry = {
+ enable_subunits = {
+ mechanized
+ }
+
enable_equipments = {
mechanized_equipment_1
}
@@ -1748,6 +1876,7 @@ technologies = {
categories = {
motorized_equipment
+ mio_cat_tech_all_motorized_mechanized
infantry_tech
cat_mechanized_equipment
}
@@ -1757,6 +1886,13 @@ technologies = {
}
}
+ militia_tech = {
+ allow = { always = no }
+ enable_subunits = {
+ militia
+ }
+ }
+
amphibious_mechanized_infantry = {
enable_equipments = {
@@ -1785,6 +1921,7 @@ technologies = {
categories = {
motorized_equipment
+ mio_cat_tech_all_motorized_mechanized
infantry_tech
cat_mechanized_equipment
tp_tech
@@ -1812,6 +1949,7 @@ technologies = {
categories = {
motorized_equipment
+ mio_cat_tech_all_motorized_mechanized
infantry_tech
cat_mechanized_equipment
tp_tech
@@ -1842,6 +1980,7 @@ technologies = {
categories = {
motorized_equipment
+ mio_cat_tech_all_motorized_mechanized
infantry_tech
cat_mechanized_equipment
}
@@ -1871,6 +2010,7 @@ technologies = {
categories = {
motorized_equipment
+ mio_cat_tech_all_motorized_mechanized
infantry_tech
cat_mechanized_equipment
}
@@ -1909,7 +2049,7 @@ technologies = {
}
}
- ######### FROM SOVIET FOCUS ##########
+ ######### FROM SOVIET FOCUS ########## (And Finnish)
penal_infantry = {
allow = {
@@ -1970,7 +2110,130 @@ technologies = {
}
irregular_infantry = {
max_organisation = 10
- maximum_speed = 1.25 #TODO_TA for testing only, remove
}
}
-}
\ No newline at end of file
+
+
+ ######### FROM FINNISH FOCUS ##########
+ molotov_cocktails_tech = {
+
+ allow = {
+ always = no
+ }
+
+ research_cost = 1
+ start_year = 1936
+
+ category_all_infantry = {
+ hard_attack = 0.25
+ ap_attack = 1
+ }
+ }
+
+ winter_logistics_support_tech = {
+
+ allow = {
+ always = no
+ }
+
+ research_cost = 1
+ start_year = 1936
+
+ enable_subunits = {
+ winter_logistics_support
+ }
+ }
+
+ long_range_patrol_support_tech = {
+
+ allow = {
+ always = no
+ }
+
+ research_cost = 1
+ start_year = 1936
+
+ enable_subunits = {
+ long_range_patrol_support
+ }
+ }
+
+ sami_pathfinders_tech = { #Hidden tech showed as part of FIN_sami_pathfinders national spirit
+
+ allow = {
+ always = no
+ }
+
+ research_cost = 1
+ start_year = 1936
+
+ category_recon = {
+ recon = 1
+
+ snow = {
+ movement = 0.1
+ }
+ forest = {
+ movement = 0.05
+ }
+ hills = {
+ movement = 0.05
+ }
+ mountain = {
+ movement = 0.05
+ }
+ marsh = {
+ movement = 0.05
+ }
+ plains = {
+ movement = 0.05
+ }
+ river = {
+ movement = 0.05
+ }
+ }
+ }
+
+ lotta_svard_tech = { #Hidden tech showed as part of FIN_lotta_svard national spirit
+
+ allow = {
+ always = no
+ }
+
+ research_cost = 1
+ start_year = 1936
+
+ category_support_battalions = { #Any changes in the values below need to be applied in FIN_lotta_svard_support_battalions_bonus_tt too
+ max_strength = 5
+ max_organisation = 10
+ }
+ }
+
+ SWE_sami_support_tech = { #Hidden tech for Sami reconcilliation for Sweden
+
+ allow = {
+ always = no
+ }
+
+ research_cost = 1
+ start_year = 1936
+
+ category_recon = {
+ recon = 1
+
+ snow = {
+ movement = 0.1
+ }
+ forest = {
+ movement = 0.1
+ }
+ hills = {
+ movement = 0.05
+ }
+ mountain = {
+ movement = 0.05
+ }
+ }
+ }
+
+}
diff --git a/data/blank_mod/common/technologies/land_doctrine.txt b/data/blank_mod/common/technologies/land_doctrine.txt
index 581da2803a..3ec18c7b83 100644
--- a/data/blank_mod/common/technologies/land_doctrine.txt
+++ b/data/blank_mod/common/technologies/land_doctrine.txt
@@ -246,7 +246,6 @@ technologies = {
max_organisation = 10
}
-
path = {
leads_to_tech = mechanised_offensive
research_cost_coeff = 1
@@ -312,7 +311,13 @@ technologies = {
category_tanks = {
max_organisation = 3
}
-
+
+ armored_car_recon = {
+ battalion_mult = {
+ category = category_all_armor
+ breakthrough = 0.10
+ }
+ }
enable_tactic = tactic_blitz
@@ -560,6 +565,7 @@ technologies = {
}
# faster planning
planning_speed = 0.2
+ additional_brigade_column_size = 1
enable_tactic = tactic_overwhelming_fire
@@ -1161,6 +1167,13 @@ technologies = {
default_morale = 0.2
}
+ signal_company = {
+ battalion_mult = {
+ category = category_artillery
+ defense = 0.10
+ }
+ }
+
path = {
leads_to_tech = overwhelming_firepower
research_cost_coeff = 1
@@ -1211,6 +1224,7 @@ technologies = {
soft_attack = 0.10
}
coordination_bonus = 0.05
+
enable_tactic = tactic_overwhelming_fire
path = {
@@ -1426,6 +1440,8 @@ technologies = {
xp_research_type = army
xp_unlock_cost = 100
land_reinforce_rate = 0.02
+
+ additional_brigade_column_size = 1
enable_tactic = tactic_tactical_withdrawal
@@ -1480,7 +1496,21 @@ technologies = {
}
#combat advantage when air superior
- army_bonus_air_superiority_factor = 0.20
+ army_bonus_air_superiority_factor = 0.15
+
+ recon = {
+ battalion_mult = {
+ category = category_anti_air
+ air_attack = 0.10
+ }
+ }
+
+ mot_recon = {
+ battalion_mult = {
+ category = category_anti_air
+ air_attack = 0.10
+ }
+ }
doctrine = yes
research_cost = 4.5
@@ -1646,6 +1676,8 @@ technologies = {
max_organisation = 2
default_morale = 0.05
}
+
+ additional_brigade_column_size = 1
enable_tactic = tactic_tactical_withdrawal
@@ -1960,6 +1992,8 @@ technologies = {
max_organisation = 5
}
+ additional_brigade_column_size = 1
+
enable_tactic = tactic_blitz
enable_tactic = tactic_elastic_defense
@@ -2176,6 +2210,13 @@ technologies = {
max_planning = 0.1
max_command_power = 30
+ logistics_company = {
+ battalion_mult = {
+ category = category_all_infantry
+ defense = 0.05
+ }
+ }
+
path = {
leads_to_tech = c3i_theory
research_cost_coeff = 1
@@ -2281,6 +2322,8 @@ technologies = {
max_organisation = 5
breakthrough = 0.1
}
+
+ additional_brigade_column_size = 1
enable_tactic = tactic_infantry_charge
@@ -2395,11 +2438,18 @@ technologies = {
supply_consumption_factor = -0.10
command_power_gain_mult = 0.15
+ recon = {
+ battalion_mult = {
+ category = category_light_infantry
+ soft_attack = 0.05
+ }
+ }
+
path = {
leads_to_tech = night_assault_tactics
research_cost_coeff = 1
}
-
+
doctrine = yes
research_cost = 4.5
@@ -2735,10 +2785,10 @@ technologies = {
peoples_army
}
-
-
supply_consumption_factor = -0.10
+ additional_brigade_column_size = 1
+
enable_tactic = tactic_relentless_assault
path = {
@@ -2894,7 +2944,7 @@ technologies = {
supply_consumption_factor = -0.10
infantry = {
- combat_width = -0.4
+ combat_width = -0.3
}
@@ -3029,6 +3079,14 @@ technologies = {
default_morale = 0.1
}
+ armored_car_recon = {
+ battalion_mult = {
+ category = category_light_infantry
+ max_organisation = 1
+ add = yes
+ }
+ }
+
path = {
leads_to_tech = continuous_offensive
research_cost_coeff = 1
@@ -3130,6 +3188,8 @@ technologies = {
resistance_damage_to_garrison_on_our_occupied_states = 0.1 #10% more partisan effects
#Land Units take less attrition
attrition = -0.1 #take 10% less attrition losses
+
+ additional_brigade_column_size = 1
enable_tactic = tactic_human_wave_tactics
@@ -3147,6 +3207,13 @@ technologies = {
cat_mass_assault
}
+ military_police = {
+ battalion_mult = {
+ category = category_cavalry
+ suppression = 0.50
+ add = yes
+ }
+ }
folder = {
name = land_doctrine_folder
diff --git a/data/blank_mod/common/technologies/naval.txt b/data/blank_mod/common/technologies/naval.txt
index 041e966069..df4548b39d 100644
--- a/data/blank_mod/common/technologies/naval.txt
+++ b/data/blank_mod/common/technologies/naval.txt
@@ -27,6 +27,8 @@ technologies = {
categories = {
naval_equipment
dd_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -58,6 +60,8 @@ technologies = {
categories = {
naval_equipment
dd_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -88,6 +92,8 @@ technologies = {
categories = {
naval_equipment
dd_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -113,6 +119,8 @@ technologies = {
categories = {
naval_equipment
dd_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_destroyer_and_modules
}
}
@@ -148,6 +156,8 @@ technologies = {
categories = {
naval_equipment
cl_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -183,6 +193,8 @@ technologies = {
categories = {
naval_equipment
cl_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -217,6 +229,8 @@ technologies = {
categories = {
naval_equipment
cl_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -247,6 +261,8 @@ technologies = {
categories = {
naval_equipment
cl_tech
+ mio_cat_tech_all_screen_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -283,6 +299,8 @@ technologies = {
categories = {
naval_equipment
ca_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -318,6 +336,8 @@ technologies = {
categories = {
naval_equipment
ca_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -352,6 +372,8 @@ technologies = {
categories = {
naval_equipment
ca_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -382,6 +404,8 @@ technologies = {
categories = {
naval_equipment
ca_tech
+ mio_cat_tech_all_capital_ship_and_modules
+ mio_cat_tech_all_cruiser_and_modules
}
}
@@ -414,6 +438,7 @@ technologies = {
categories = {
naval_equipment
bc_tech
+ mio_cat_tech_all_capital_ship_and_modules
}
}
@@ -444,6 +469,7 @@ technologies = {
categories = {
naval_equipment
bc_tech
+ mio_cat_tech_all_capital_ship_and_modules
}
}
@@ -474,6 +500,7 @@ technologies = {
categories = {
naval_equipment
bb_tech
+ mio_cat_tech_all_capital_ship_and_modules
}
}
@@ -508,6 +535,7 @@ technologies = {
categories = {
naval_equipment
bb_tech
+ mio_cat_tech_all_capital_ship_and_modules
}
}
@@ -541,6 +569,7 @@ technologies = {
categories = {
naval_equipment
bb_tech
+ mio_cat_tech_all_capital_ship_and_modules
}
}
@@ -570,6 +599,7 @@ technologies = {
categories = {
naval_equipment
bb_tech
+ mio_cat_tech_all_capital_ship_and_modules
}
}
@@ -600,6 +630,7 @@ technologies = {
categories = {
naval_equipment
shbb_tech
+ mio_cat_tech_all_capital_ship_and_modules
}
}
@@ -625,12 +656,13 @@ technologies = {
categories = {
naval_equipment
shbb_tech
+ mio_cat_tech_all_capital_ship_and_modules
}
}
transport = {
- transport_capacity = -0.5
+ transport_capacity = -0.33
naval_invasion_capacity = 10
path = {
@@ -663,9 +695,9 @@ technologies = {
landing_craft = {
- invasion_preparation = -0.5
+ invasion_preparation = -0.25
amphibious_invasion_defence = 0.15
- naval_invasion_capacity = 40
+ naval_invasion_capacity = 20
path = {
leads_to_tech = tank_landing_craft
@@ -757,6 +789,7 @@ technologies = {
categories = {
naval_equipment
cv_tech
+ mio_cat_tech_all_carrier_and_modules
}
}
@@ -786,6 +819,7 @@ technologies = {
categories = {
naval_equipment
cv_tech
+ mio_cat_tech_all_carrier_and_modules
}
}
@@ -816,6 +850,7 @@ technologies = {
categories = {
naval_equipment
cv_tech
+ mio_cat_tech_all_carrier_and_modules
}
}
@@ -842,6 +877,7 @@ technologies = {
categories = {
naval_equipment
cv_tech
+ mio_cat_tech_all_carrier_and_modules
}
}
@@ -872,6 +908,7 @@ technologies = {
categories = {
naval_equipment
ss_tech
+ mio_cat_tech_all_submarine_and_modules
}
}
@@ -901,6 +938,7 @@ technologies = {
categories = {
naval_equipment
ss_tech
+ mio_cat_tech_all_submarine_and_modules
}
}
@@ -931,6 +969,7 @@ technologies = {
categories = {
naval_equipment
ss_tech
+ mio_cat_tech_all_submarine_and_modules
}
}
@@ -956,6 +995,7 @@ technologies = {
categories = {
naval_equipment
ss_tech
+ mio_cat_tech_all_submarine_and_modules
}
}
diff --git a/data/blank_mod/common/technologies/special_forces_doctrine.txt b/data/blank_mod/common/technologies/special_forces_doctrine.txt
new file mode 100644
index 0000000000..4acb7ccdeb
--- /dev/null
+++ b/data/blank_mod/common/technologies/special_forces_doctrine.txt
@@ -0,0 +1,1422 @@
+technologies = {
+
+ ###Mountaineers
+
+ special_forces_mountaineers = {
+ doctrine_name = "TITLE_SPECIAL_FORCES"
+
+ # EFFECT ########
+ mountaineers_special_forces_contribution_factor = -0.25
+ category_mountaineers = {
+ supply_consumption = -0.02
+ }
+ category_special_forces = {
+ max_organisation = 5
+ soft_attack = 0.05
+ }
+ enable_subunits = {
+ rangers_support
+ }
+ ###########
+
+ force_use_small_tech_layout = yes
+
+ xp_research_type = army
+ xp_unlock_cost = 60
+
+ #xor = { special_forces_marines special_forces_paratroopers }
+
+ path = {
+ leads_to_tech = ski_troops
+ research_cost_coeff = 1
+ }
+
+ path = {
+ leads_to_tech = rangers
+ research_cost_coeff = 1
+ }
+
+ doctrine = yes
+ research_cost = 2.25
+
+ allow = {
+ AND = {
+ has_tech = tech_mountaineers
+ can_unlock_new_special_forces_tree = yes
+ }
+ }
+
+ on_research_complete = {
+ remove_potential_special_forces_tree = yes
+ }
+
+ categories = {
+ special_forces_doctrine
+ mountaineers_tech
+ cat_mountaineers_doctrine
+ }
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 0 y = 0 }
+ }
+
+ ai_will_do = {
+ factor = 10
+ modifier = {
+ factor = 0
+ NOT = { ai_has_completed_army_doctrine = yes }
+ }
+ }
+
+ ai_research_weights = {
+ #air_doctrine = -1.0
+ #light_air = -2.0
+ }
+ }
+
+ ski_troops = {
+
+ xp_research_type = army
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ path = {
+ leads_to_tech = special_forces_recon
+ research_cost_coeff = 1
+ }
+
+ xor = { rangers }
+
+ rangers_support = {
+ acclimatization_cold_climate_gain_factor = 0.25
+ snow = {
+ attack = 0.15
+ defence = 0.20
+ movement = 0.15
+ }
+ }
+
+ doctrine = yes
+ research_cost = 4.5
+
+ categories = {
+ special_forces_doctrine
+ mountaineers_tech
+ cat_mountaineers_doctrine
+ }
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = -1 y = 2 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #armor = 3.0
+ }
+ }
+
+ rangers = {
+
+ xp_research_type = army
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ path = {
+ leads_to_tech = special_forces_recon
+ research_cost_coeff = 1
+ }
+
+ xor = { ski_troops }
+
+ rangers_support = {
+ mountain = {
+ attack = 0.20
+ defence = 0.10
+ movement = 0.10
+ }
+ }
+
+ doctrine = yes
+ research_cost = 4.5
+
+ categories = {
+ special_forces_doctrine
+ mountaineers_tech
+ cat_mountaineers_doctrine
+ }
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 1 y = 2 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #armor = 3.0
+ }
+ }
+
+ special_forces_recon = {
+
+ xp_research_type = army
+ xp_unlock_cost = 60
+
+ category_mountaineers = {
+ initiative = 0.01
+ }
+ unit_mountaineers_design_cost_factor = -0.50
+ unit_rangers_support_design_cost_factor = -0.50
+
+ force_use_small_tech_layout = yes
+
+ path = {
+ leads_to_tech = mountaineers_combat_1
+ research_cost_coeff = 1
+ }
+
+ path = {
+ leads_to_tech = mountaineers_combat_2
+ research_cost_coeff = 1
+ }
+
+ doctrine = yes
+ research_cost = 4.5
+
+ categories = {
+ special_forces_doctrine
+ mountaineers_tech
+ cat_mountaineers_doctrine
+ }
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 0 y = 4 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #armor = 3.0
+ }
+ }
+
+ mountaineers_combat_1 = {
+
+ xp_research_type = army
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ category_mountaineers = {
+ defense = 0.10
+ }
+ mountaineers = {
+ combat_width = -0.2
+ }
+
+ path = {
+ leads_to_tech = mountaineers_combat_3
+ research_cost_coeff = 1
+ }
+
+ xor = { mountaineers_combat_2 }
+
+ doctrine = yes
+ research_cost = 4.5
+
+ categories = {
+ special_forces_doctrine
+ mountaineers_tech
+ cat_mountaineers_doctrine
+ }
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = -1 y = 6 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #armor = 3.0
+ }
+ }
+
+ mountaineers_combat_2 = {
+
+ xp_research_type = army
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ path = {
+ leads_to_tech = mountaineers_combat_3
+ research_cost_coeff = 1
+ }
+
+ artillery = {
+ battalion_mult = {
+ category = category_mountaineers
+ breakthrough = 0.15
+ }
+ }
+
+ rangers_support = {
+ battalion_mult = {
+ category = category_line_artillery
+ soft_attack = 0.20
+ }
+ }
+
+ xor = { mountaineers_combat_1 }
+
+ doctrine = yes
+ research_cost = 4.5
+
+ categories = {
+ special_forces_doctrine
+ mountaineers_tech
+ cat_mountaineers_doctrine
+ }
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 1 y = 6 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #armor = 3.0
+ }
+ }
+
+ mountaineers_combat_3 = {
+
+ xp_research_type = army
+ xp_unlock_cost = 60
+
+ category_mountaineers = {
+ max_organisation = 10
+ }
+
+ force_use_small_tech_layout = yes
+
+ path = {
+ leads_to_tech = mountaineers_keystone_1
+ research_cost_coeff = 1
+ }
+
+ path = {
+ leads_to_tech = mountaineers_keystone_2
+ research_cost_coeff = 1
+ }
+
+ doctrine = yes
+ research_cost = 4.5
+
+ categories = {
+ special_forces_doctrine
+ mountaineers_tech
+ cat_mountaineers_doctrine
+ }
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 0 y = 8 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #armor = 3.0
+ }
+ }
+
+ mountaineers_keystone_1 = {
+
+ xp_research_type = army
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ category_mountaineers = {
+ soft_attack = 0.10
+ }
+
+ mountaineers_special_forces_contribution_factor = -0.25
+ special_forces_training_time_factor = -0.20
+
+ xor = { mountaineers_keystone_2 }
+
+ doctrine = yes
+ research_cost = 4.5
+
+ categories = {
+ special_forces_doctrine
+ mountaineers_tech
+ cat_mountaineers_doctrine
+ }
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = -1 y = 10 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #armor = 3.0
+ }
+ }
+
+ mountaineers_keystone_2 = {
+
+ xp_research_type = army
+ xp_unlock_cost = 60
+
+ special_forces_cap = 0.20
+ special_forces_out_of_supply_factor = -0.1
+ special_forces_attack_factor = 0.10
+ acclimatization_hot_climate_gain_factor = 0.10
+ acclimatization_cold_climate_gain_factor = 0.10
+
+ force_use_small_tech_layout = yes
+
+ xor = { mountaineers_keystone_1 }
+
+ doctrine = yes
+ research_cost = 4.5
+
+ categories = {
+ special_forces_doctrine
+ mountaineers_tech
+ cat_mountaineers_doctrine
+ }
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 1 y = 10 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #armor = 3.0
+ }
+ }
+
+ ###Marines
+
+ special_forces_marines = {
+ doctrine_name = "MARINES_DOCTRINE"
+
+ xp_research_type = navy
+ xp_unlock_cost = 60
+
+ #xor = { special_forces_mountaineers special_forces_paratroopers }
+
+ force_use_small_tech_layout = yes
+
+ allow = {
+ AND = {
+ has_tech = marines
+ can_unlock_new_special_forces_tree = yes
+ }
+ }
+
+ on_research_complete = {
+ remove_potential_special_forces_tree = yes
+ }
+
+ path = {
+ leads_to_tech = marines_jungle_troops
+ research_cost_coeff = 1
+ }
+
+ path = {
+ leads_to_tech = marines_shore_parties
+ research_cost_coeff = 1
+ }
+
+ marines_special_forces_contribution_factor = -0.25
+ naval_invasion_capacity = 5
+ category_special_forces = {
+ max_organisation = 5
+ soft_attack = 0.05
+ }
+
+ enable_subunits = {
+ pioneer_support
+ }
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ marine_tech
+ cat_marines_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 0 y = 0 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ modifier = {
+ factor = 0
+ NOT = { ai_has_completed_naval_doctrine = yes }
+ }
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+ marines_jungle_troops = {
+
+ xp_research_type = navy
+ xp_unlock_cost = 60
+
+ xor = { marines_shore_parties }
+
+ force_use_small_tech_layout = yes
+
+ pioneer_support = {
+ jungle = {
+ attack = 0.15
+ defence = 0.10
+ movement = 0.10
+ }
+ }
+
+ path = {
+ leads_to_tech = marines_recon
+ research_cost_coeff = 1
+ }
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ marine_tech
+ cat_marines_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = -1 y = 2 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+ marines_shore_parties = {
+
+ xp_research_type = navy
+ xp_unlock_cost = 60
+
+ xor = { marines_jungle_troops }
+
+ force_use_small_tech_layout = yes
+
+ path = {
+ leads_to_tech = marines_recon
+ research_cost_coeff = 1
+ }
+
+ pioneer_support = {
+ amphibious = {
+ attack = 0.25
+ defence = 0.15
+ movement = 0.20
+ }
+ }
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ marine_tech
+ cat_marines_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 1 y = 2 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+ marines_recon = {
+
+ xp_research_type = navy
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ path = {
+ leads_to_tech = marines_commandoes
+ research_cost_coeff = 1
+ }
+
+ path = {
+ leads_to_tech = marines_expeditionary
+ research_cost_coeff = 1
+ }
+
+ unit_marine_design_cost_factor = -0.50
+
+ marine = {
+ max_organisation = 5
+ }
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ marine_tech
+ cat_marines_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 0 y = 4 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+ marines_commandoes = {
+
+ xp_research_type = navy
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ path = {
+ leads_to_tech = marines_commandos_demolition
+ research_cost_coeff = 1
+ }
+
+ xor = { marines_expeditionary }
+
+ enable_subunits = {
+ marine_commando
+ }
+
+ on_research_complete = {
+ custom_effect_tooltip = SF_MARINES_exfiltration_effect_tt
+ }
+
+ acclimatization_cold_climate_gain_factor = 0.1
+ acclimatization_hot_climate_gain_factor = 0.1
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ marine_tech
+ cat_marines_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = -1 y = 6 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+ marines_expeditionary = {
+
+ xp_research_type = navy
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ path = {
+ leads_to_tech = marines_expeditionary_blowtorch
+ research_cost_coeff = 1
+ }
+
+ xor = { marines_commandoes }
+
+ special_forces_cap = 0.10
+ naval_invasion_planning_bonus_speed = 0.2
+
+ army_bonus_air_superiority_factor = 0.10
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ marine_tech
+ cat_marines_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 1 y = 6 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+ marines_commandos_demolition = {
+
+ xp_research_type = navy
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ path = {
+ leads_to_tech = marines_commandoes_mechanised
+ research_cost_coeff = 1
+ }
+
+ path = {
+ leads_to_tech = marines_commandoes_mechanised_non_mtg
+ research_cost_coeff = 1
+ }
+
+ marine_commando = {
+ breakthrough = 0.15
+ }
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ marine_tech
+ cat_marines_doctrine
+ }
+
+ on_research_complete = {
+ custom_effect_tooltip = SF_marine_demoliton_effect_TT
+ }
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = -1 y = 8 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+ marines_expeditionary_blowtorch = {
+
+ xp_research_type = navy
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+
+ path = {
+ leads_to_tech = marines_expeditionary_support
+ research_cost_coeff = 1
+ }
+
+
+ pioneer_support = {
+ battalion_mult = {
+ category = category_line_artillery
+ max_organisation = 2
+ add = yes
+ }
+ }
+
+ shore_bombardment_bonus = 0.15
+ special_forces_attack_factor = 0.10
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ marine_tech
+ cat_marines_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 1 y = 8 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+ marines_commandoes_mechanised = {
+
+ xp_research_type = navy
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+ allow_branch = { has_dlc = "Man the Guns" }
+
+ amphibious_mechanized = {
+ soft_attack = 0.1
+ breakthrough = 0.1
+ max_organisation = 5
+ }
+
+ pioneer_support = {
+ battalion_mult = {
+ category = category_amphibious_tanks
+ armor = 0.15
+ breakthrough = 0.15
+ }
+ }
+
+
+ on_research_complete = {
+ add_ideas = GEN_cheaper_amphib
+ }
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ marine_tech
+ cat_marines_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = -1 y = 10 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+ marines_commandoes_mechanised_non_mtg = {
+
+ xp_research_type = navy
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+ allow_branch = { not = { has_dlc = "Man the Guns" } }
+
+ special_forces_attack_factor = 0.15
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ marine_tech
+ cat_marines_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = -1 y = 10 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+ marines_expeditionary_support = {
+
+ xp_research_type = navy
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ artillery = {
+ battalion_mult = {
+ category = category_marines
+ defense = 0.05
+ }
+ }
+
+ anti_air = {
+ battalion_mult = {
+ category = category_marines
+ defense = 0.05
+ }
+ }
+
+ anti_tank = {
+ battalion_mult = {
+ category = category_marines
+ defense = 0.05
+ }
+ }
+
+ extra_marine_supply_grace = 24
+ naval_invasion_capacity = 10
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ marine_tech
+ cat_marines_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 1 y = 10 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+ ###Paratroopers
+
+ special_forces_paratroopers = {
+ doctrine_name = "PARATROOPERS_DOCTRINE"
+
+ xp_research_type = air
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ #xor = { special_forces_mountaineers special_forces_marines }
+
+ paratroopers_special_forces_contribution_factor = -0.10
+ transport_plane = {
+ air_defence = 0.20
+ }
+ category_special_forces = {
+ max_organisation = 5
+ soft_attack = 0.05
+ }
+
+ allow = {
+ AND = {
+ has_tech = paratroopers
+ can_unlock_new_special_forces_tree = yes
+ }
+ }
+
+ on_research_complete = {
+ remove_potential_special_forces_tree = yes
+ }
+
+ path = {
+ leads_to_tech = paras_dispersed_drop
+ research_cost_coeff = 1
+ }
+
+ path = {
+ leads_to_tech = paras_combat_drop
+ research_cost_coeff = 1
+ }
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ para_tech
+ cat_paratroopers_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 0 y = 0 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ modifier = {
+ factor = 0
+ NOT = { ai_has_completed_air_doctrine = yes }
+ }
+ }
+
+ ai_research_weights = {
+ #infantry_weapons = 1.5
+ #motorized_equipment = 1.0
+ }
+ }
+
+ paras_dispersed_drop = {
+
+ xp_research_type = air
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ path = {
+ leads_to_tech = paras_airborne_light_armor
+ research_cost_coeff = 1
+ }
+
+ xor = { paras_combat_drop }
+
+ doctrine = yes
+ research_cost = 4.5
+
+ paratroopers_special_forces_contribution_factor = -0.10
+
+ on_research_complete = {
+ custom_effect_tooltip = SF_PARAS_sabotage_effect_tt
+ }
+
+ categories = {
+ special_forces_doctrine
+ para_tech
+ cat_paratroopers_doctrine
+ }
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = -1 y = 2 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #armor = 3.0
+ }
+ }
+
+ paras_combat_drop = {
+
+ xp_research_type = air
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ xor = { paras_dispersed_drop }
+
+ path = {
+ leads_to_tech = paras_airborne_light_armor
+ research_cost_coeff = 1
+ }
+
+ doctrine = yes
+ research_cost = 4.5
+
+ paratroopers_special_forces_contribution_factor = -0.10
+
+ on_research_complete = {
+ custom_effect_tooltip = SF_PARAS_combat_effect_tt
+ }
+
+ categories = {
+ special_forces_doctrine
+ para_tech
+ cat_paratroopers_doctrine
+ }
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 1 y = 2 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #armor = 3.0
+ }
+ }
+
+ paras_airborne_light_armor = {
+
+ xp_research_type = air
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ #category_all_infantry = {
+ # max_organisation = 15
+ #}
+
+ path = {
+ leads_to_tech = paras_combat_1
+ research_cost_coeff = 1
+ }
+
+ path = {
+ leads_to_tech = paras_combat_2
+ research_cost_coeff = 1
+ }
+
+ doctrine = yes
+ research_cost = 4.5
+
+ enable_subunits = {
+ airborne_light_armor
+ }
+
+ categories = {
+ special_forces_doctrine
+ para_tech
+ cat_paratroopers_doctrine
+ }
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 0 y = 4 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #armor = 3.0
+ }
+ }
+
+ paras_combat_1 = {
+
+ xp_research_type = air
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ path = {
+ leads_to_tech = paras_bonus_1
+ research_cost_coeff = 1
+ }
+
+ xor = { paras_combat_2 }
+
+ signal_company = {
+ battalion_mult = {
+ category = category_paratroopers
+ defense = 0.15
+ }
+ }
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ para_tech
+ cat_paratroopers_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = -1 y = 6 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+ paras_combat_2 = {
+
+ xp_research_type = air
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ path = {
+ leads_to_tech = paras_bonus_2
+ research_cost_coeff = 1
+ }
+
+ field_hospital = {
+ battalion_mult = {
+ category = category_paratroopers
+ default_morale = 0.15
+ }
+ }
+
+ xor = { paras_combat_1 }
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ para_tech
+ cat_paratroopers_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 1 y = 6 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+ paras_bonus_1 = {
+
+ xp_research_type = air
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ path = {
+ leads_to_tech = paras_keystone_1
+ research_cost_coeff = 1
+ }
+
+ category_paratroopers = {
+ max_organisation = 5
+ supply_consumption = -0.02
+ }
+
+ acclimatization_hot_climate_gain_factor = 0.10
+ acclimatization_cold_climate_gain_factor = 0.10
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ para_tech
+ cat_paratroopers_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = -1 y = 8 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+ paras_bonus_2 = {
+
+ xp_research_type = air
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ path = {
+ leads_to_tech = paras_keystone_2
+ research_cost_coeff = 1
+ }
+
+ paratrooper_weight_factor = -0.5
+ special_forces_no_supply_grace = 24
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ para_tech
+ cat_paratroopers_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 1 y = 8 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+ paras_keystone_1 = {
+
+ xp_research_type = air
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ category_paratroopers = {
+ soft_attack = 0.15
+ breakthrough = 0.15
+ }
+
+ special_forces_training_time_factor = 0.20
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ para_tech
+ cat_paratroopers_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = -1 y = 10 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+ paras_keystone_2 = {
+
+ xp_research_type = air
+ xp_unlock_cost = 60
+
+ force_use_small_tech_layout = yes
+
+ paratroopers_special_forces_contribution_factor = -0.20
+ special_forces_training_time_factor = -0.10
+ special_forces_attack_factor = 0.10
+
+ doctrine = yes
+ research_cost = 2.25
+
+ categories = {
+ special_forces_doctrine
+ para_tech
+ cat_paratroopers_doctrine
+ }
+
+
+ folder = {
+ name = special_forces_doctrine_folder
+ position = { x = 1 y = 10 }
+ }
+
+ ai_will_do = {
+ factor = 20
+ }
+
+ ai_research_weights = {
+ #artillery = 4.0
+ }
+ }
+
+}
diff --git a/data/blank_mod/common/technologies/support.txt b/data/blank_mod/common/technologies/support.txt
index d7bffc2585..bf272e7831 100644
--- a/data/blank_mod/common/technologies/support.txt
+++ b/data/blank_mod/common/technologies/support.txt
@@ -93,7 +93,7 @@ technologies = {
research_cost_coeff = 1
}
- research_cost = 2
+ research_cost = 1.25
start_year = 1936
folder = {
name = support_folder
@@ -136,9 +136,8 @@ technologies = {
tech_engineers2 = {
- engineer = {
- entrenchment = 2
-
+ engineer = {
+ entrenchment = 0.50
fort = {
defence = 0.10
attack = 0.10
@@ -197,7 +196,7 @@ technologies = {
tech_engineers3 = {
engineer = {
- entrenchment = 2
+ entrenchment = 0.50
river = {
attack = 0.1
defence = 0.10
@@ -233,7 +232,7 @@ technologies = {
research_cost_coeff = 1
}
- research_cost = 1.5
+ research_cost = 2.0
start_year = 1942
folder = {
name = support_folder
@@ -268,7 +267,7 @@ technologies = {
tech_engineers4 = {
engineer = {
- entrenchment = 2
+ entrenchment = 0.50
urban = {
attack = 0.1
defence = 0.1
@@ -298,7 +297,7 @@ technologies = {
attack = 0.10
}
}
- research_cost = 1.5
+ research_cost = 2.0
start_year = 1945
folder = {
name = support_folder
@@ -344,7 +343,7 @@ technologies = {
research_cost_coeff = 1
}
- research_cost = 2
+ research_cost = 1.25
start_year = 1936
folder = {
name = support_folder
@@ -438,7 +437,7 @@ technologies = {
research_cost_coeff = 1
}
- research_cost = 1.5
+ research_cost = 2.0
start_year = 1942
folder = {
name = support_folder
@@ -475,7 +474,7 @@ technologies = {
recon = 2
}
- research_cost = 1.5
+ research_cost = 2.0
start_year = 1945
folder = {
name = support_folder
@@ -518,7 +517,7 @@ technologies = {
research_cost_coeff = 1
}
- research_cost = 2
+ research_cost = 1.25
start_year = 1936
folder = {
name = support_folder
@@ -584,7 +583,7 @@ technologies = {
research_cost_coeff = 1
}
- research_cost = 1.5
+ research_cost = 2.0
start_year = 1942
folder = {
name = support_folder
@@ -611,7 +610,7 @@ technologies = {
suppression_factor = 0.1
}
- research_cost = 1.5
+ research_cost = 2.0
start_year = 1945
folder = {
name = support_folder
@@ -658,7 +657,7 @@ technologies = {
research_cost_coeff = 1
}
- research_cost = 2
+ research_cost = 1.25
start_year = 1936
folder = {
name = support_folder
@@ -742,14 +741,20 @@ technologies = {
maintenance_company = {
reliability_factor = 0.05
- equipment_capture_factor = 0.05
+
+ battalion_mult = {
+ category = category_all_armor
+ equipment_capture_factor = 0.01
+ add = yes
+ }
+
}
path = {
leads_to_tech = tech_maintenance_company4
research_cost_coeff = 1
}
- research_cost = 1.5
+ research_cost = 2.0
start_year = 1942
folder = {
name = support_folder
@@ -787,7 +792,7 @@ technologies = {
equipment_capture_factor = 0.05
}
- research_cost = 1.5
+ research_cost = 2.0
start_year = 1945
folder = {
name = support_folder
@@ -834,7 +839,7 @@ technologies = {
motorised_infantry = 1
}
- research_cost = 2
+ research_cost = 1.25
start_year = 1936
folder = {
name = support_folder
@@ -845,6 +850,7 @@ technologies = {
support_tech
hospital_tech
motorized_equipment
+ mio_cat_tech_all_motorized_mechanized
}
ai_will_do = {
@@ -890,6 +896,7 @@ technologies = {
support_tech
hospital_tech
motorized_equipment
+ mio_cat_tech_all_motorized_mechanized
}
ai_will_do = {
@@ -923,7 +930,7 @@ technologies = {
research_cost_coeff = 1
}
- research_cost = 1.5
+ research_cost = 2.0
start_year = 1942
folder = {
name = support_folder
@@ -934,6 +941,7 @@ technologies = {
support_tech
hospital_tech
motorized_equipment
+ mio_cat_tech_all_motorized_mechanized
}
ai_will_do = {
@@ -962,7 +970,7 @@ technologies = {
experience_loss_factor = -0.10
}
- research_cost = 1.5
+ research_cost = 2.0
start_year = 1945
folder = {
name = support_folder
@@ -973,6 +981,7 @@ technologies = {
support_tech
hospital_tech
motorized_equipment
+ mio_cat_tech_all_motorized_mechanized
}
ai_will_do = {
@@ -1004,6 +1013,15 @@ technologies = {
}
}
+ NORDIC_supportCollaboration_tech = { # For the Army Capston in the Nordic JFT
+ allow = { always = no } #Only obtained through Focus
+ category_support_battalions = {
+ max_organisation = 10
+ soft_attack = 0.25
+ experience_loss_factor = 0.05
+ }
+ }
+
tech_logistics_company = {
enable_subunits = {
@@ -1019,7 +1037,7 @@ technologies = {
motorised_infantry = 1
}
- research_cost = 2
+ research_cost = 1.25
start_year = 1936
folder = {
name = support_folder
@@ -1030,6 +1048,7 @@ technologies = {
support_tech
logistics_tech
motorized_equipment
+ mio_cat_tech_all_motorized_mechanized
}
ai_will_do = {
@@ -1080,6 +1099,7 @@ technologies = {
support_tech
logistics_tech
motorized_equipment
+ mio_cat_tech_all_motorized_mechanized
}
ai_will_do = {
@@ -1113,7 +1133,7 @@ technologies = {
research_cost_coeff = 1
}
- research_cost = 1.5
+ research_cost = 2.0
start_year = 1942
folder = {
name = support_folder
@@ -1124,6 +1144,7 @@ technologies = {
support_tech
logistics_tech
motorized_equipment
+ mio_cat_tech_all_motorized_mechanized
}
ai_will_do = {
@@ -1152,7 +1173,7 @@ technologies = {
fuel_consumption_factor = -0.05
}
- research_cost = 1.5
+ research_cost = 2.0
start_year = 1945
folder = {
name = support_folder
@@ -1163,6 +1184,7 @@ technologies = {
support_tech
logistics_tech
motorized_equipment
+ mio_cat_tech_all_motorized_mechanized
}
ai_will_do = {
@@ -1202,7 +1224,7 @@ technologies = {
motorised_infantry = 1
}
- research_cost = 2
+ research_cost = 1.25
start_year = 1936
folder = {
name = support_folder
@@ -1281,7 +1303,7 @@ technologies = {
research_cost_coeff = 1
}
- research_cost = 1.5
+ research_cost = 2.0
start_year = 1942
folder = {
name = support_folder
@@ -1319,7 +1341,7 @@ technologies = {
initiative = 0.12
}
- research_cost = 1.5
+ research_cost = 2.0
start_year = 1945
folder = {
name = support_folder
@@ -1419,11 +1441,11 @@ technologies = {
}
ai_will_do = {
- factor = 1
+ factor = 0.5
modifier = {
is_major = yes
- factor = 2
+ factor = 1
}
}
}
diff --git a/data/blank_mod/common/technology_sharing/09_aat_tech_sharing_groups.txt b/data/blank_mod/common/technology_sharing/09_aat_tech_sharing_groups.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/common/unit_leader/00_traits.txt b/data/blank_mod/common/unit_leader/00_traits.txt
index 7d841ea35e..f0eb4b1001 100644
--- a/data/blank_mod/common/unit_leader/00_traits.txt
+++ b/data/blank_mod/common/unit_leader/00_traits.txt
@@ -20,10 +20,14 @@
# custom_prerequisite_tooltip = "" # loc key
# custom_gain_xp_trigger_tooltip = "" # loc key
# mutually_exclusive = other_trait # trait key
-# parent = other_trait # trait key
-# num_parents_needed = -1 # integer, -1 means "all"
-# gui_row = -1 # integer, starts at 0, -1 means auto
-# gui_column = -1 # integer, starts at 0, -1 means auto
+# parent = { # Can be added multiple times
+# traits = {XXX YYY ZZZ} # A list of other traits that
+# num_parents_needed = 1 # The number of the above traits that must be true
+# }
+# any_parent = { XXX YYY ZZZ } # shorthand for parent when num_parents_needed are defaulted to 1
+# all_parents = { XXX YYY ZZZ } # shorthand for parent when num_parents_needed are the same as the number of parents
+# gui_row = 0 # integer, starts at 0, unset or -1 means the trait does not appear in unlockable trait tree.
+# gui_column = 0 # integer, starts at 0, unset or -1 means auto
# allowed = trigger # scope is a unit leader
# prerequisites = trigger # scope is an unit leader
# gain_xp = trigger # scope is a combatant
@@ -325,7 +329,7 @@ leader_traits = {
logistics_skill_factor = 1
}
- bearer_of_artillery = {
+ bearer_of_artillery = { # Reserved for Wojtek
type = corps_commander
trait_type = personality_trait
@@ -636,7 +640,7 @@ leader_traits = {
}
gui_row = 0
trait_type = assignable_trait
- parent = organizer
+ any_parent = {organizer}
}
offensive_doctrine = {
@@ -705,7 +709,7 @@ leader_traits = {
factor = 1
}
gui_row = 1
- parent = organizer
+ any_parent = { organizer }
mutually_exclusive = thorough_planner
trait_type = assignable_trait
}
@@ -730,7 +734,7 @@ leader_traits = {
factor = 1
}
gui_row = 2
- parent = organizer
+ any_parent = { organizer }
mutually_exclusive = fast_planner
trait_type = assignable_trait
}
@@ -860,7 +864,7 @@ leader_traits = {
factor = 1
}
trait_type = assignable_trait
- parent = skilled_staffer
+ any_parent = { skilled_staffer }
gui_row = 15
}
@@ -1040,16 +1044,19 @@ leader_traits = {
trait_type = assignable_terrain_trait
gui_row = 3
- parent = desert_fox
- parent = swamp_fox
- parent = trait_mountaineer
- parent = hill_fighter
- parent = jungle_rat
- parent = ranger
- parent = urban_assault_specialist
- parent = winter_specialist
-
- num_parents_needed = 2
+ parent = {
+ traits = {
+ desert_fox
+ swamp_fox
+ trait_mountaineer
+ hill_fighter
+ jungle_rat
+ ranger
+ urban_assault_specialist
+ winter_specialist
+ }
+ num_parents_needed = 2
+ }
}
winter_expert = {
@@ -1067,7 +1074,7 @@ leader_traits = {
factor = 1
}
- parent = winter_specialist
+ any_parent = { winter_specialist }
trait_type = assignable_terrain_trait
gui_row = 7
@@ -1358,7 +1365,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = panzer_leader
+ any_parent = { panzer_leader }
mutually_exclusive = combined_arms_expert
mutually_exclusive = cavalry_expert
@@ -1389,13 +1396,12 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = cavalry_leader
- parent = panzer_leader
+ any_parent = { cavalry_leader panzer_leader }
mutually_exclusive = panzer_expert
mutually_exclusive = cavalry_expert
- num_parents_needed = 1
+
gui_row = 2
}
@@ -1415,7 +1421,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = cavalry_leader
+ any_parent = { cavalry_leader }
mutually_exclusive = panzer_expert
mutually_exclusive = combined_arms_expert
@@ -1451,7 +1457,7 @@ leader_traits = {
gui_row = 4
trait_type = assignable_trait
- parent = trait_engineer
+ any_parent = { trait_engineer }
mutually_exclusive = scavenger
}
@@ -1472,7 +1478,7 @@ leader_traits = {
trait_type = assignable_trait
gui_row = 5
- parent = trait_engineer
+ any_parent = { trait_engineer }
mutually_exclusive = fortress_buster
}
@@ -1493,7 +1499,7 @@ leader_traits = {
mutually_exclusive = ambusher
trait_type = assignable_trait
- parent = infantry_leader
+ any_parent = { infantry_leader }
gui_row = 6
}
@@ -1515,7 +1521,7 @@ leader_traits = {
mutually_exclusive = infantry_expert
trait_type = assignable_trait
- parent = infantry_leader
+ any_parent = { infantry_leader }
gui_row = 7
}
@@ -1536,7 +1542,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = naval_invader
+ any_parent = { naval_invader }
gui_row = 8
}
@@ -1555,7 +1561,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = naval_invader
+ any_parent = { naval_invader }
gui_row = 9
}
@@ -1576,7 +1582,7 @@ leader_traits = {
enable_ability = probing_attack
trait_type = assignable_trait
- parent = commando
+ any_parent = { commando }
gui_row = 10
}
@@ -1598,7 +1604,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = commando
+ any_parent = { commando }
gui_row = 11
}
@@ -1625,7 +1631,7 @@ leader_traits = {
genius_advisor_trait = army_concealment_3
trait_type = assignable_trait
- parent = commando
+ any_parent = { commando }
gui_row = 12
}
@@ -1672,7 +1678,7 @@ leader_traits = {
enable_ability = makeshift_bridges
trait_type = assignable_trait
- parent = trickster
+ any_parent = { trickster }
prerequisites = {
check_variable = { num_terrain_traits > 0 }
}
@@ -1696,7 +1702,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = trickster
+ any_parent = { trickster }
gui_row = 14
}
@@ -1900,7 +1906,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = seawolf
+ any_parent = { seawolf }
mutually_exclusive = lancer
gui_row = 1
gui_column = 1
@@ -1922,7 +1928,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = silent_hunter
+ any_parent = { silent_hunter }
gui_row = 1
gui_column = 2
}
@@ -1938,10 +1944,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = seawolf
- parent = fleet_protector
-
- num_parents_needed = 1
+ any_parent = { seawolf fleet_protector }
mutually_exclusive = silent_hunter
@@ -1971,7 +1974,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = fleet_protector
+ any_parent = { fleet_protector }
gui_row = 3
gui_column = 1
@@ -1987,10 +1990,11 @@ leader_traits = {
}
trait_type = assignable_trait
- num_parents_needed = 1
- parent = silent_hunter
- parent = lancer
- parent = destroyer_leader
+ any_parent = {
+ silent_hunter
+ lancer
+ destroyer_leader
+ }
gui_row = 2
gui_column = 2
@@ -2007,7 +2011,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = destroyer_leader
+ any_parent = { destroyer_leader }
gui_row = 3
gui_column = 2
@@ -2033,7 +2037,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = fly_swatter
+ any_parent = { fly_swatter }
gui_row = 4
gui_column = 1
@@ -2050,7 +2054,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = cruiser_captain
+ any_parent = { cruiser_captain }
gui_row = 4
gui_column = 2
@@ -2067,7 +2071,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = superior_tactician
+ any_parent = { superior_tactician }
mutually_exclusive = concealment_expert
gui_row = 5
gui_column = 1
@@ -2089,10 +2093,11 @@ leader_traits = {
genius_advisor_trait = navy_chief_commerce_raiding_3
trait_type = assignable_trait
- parent = superior_tactician
- parent = spotter
- parent = blockade_runner
- num_parents_needed = 1
+ any_parent = {
+ superior_tactician
+ spotter
+ blockade_runner
+ }
mutually_exclusive = lone_wolf
gui_row = 6
gui_column = 1
@@ -2109,9 +2114,10 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = spotter
- parent = blockade_runner
- num_parents_needed = 1
+ any_parent = {
+ spotter
+ blockade_runner
+ }
mutually_exclusive = mine_layer
gui_row = 7
gui_column = 1
@@ -2127,9 +2133,10 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = spotter
- parent = blockade_runner
- num_parents_needed = 1
+ any_parent = {
+ spotter
+ blockade_runner
+ }
mutually_exclusive = mine_sweeper
gui_row = 8
gui_column = 1
@@ -2146,9 +2153,10 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = lone_wolf
- parent = concealment_expert
- num_parents_needed = 1
+ any_parent = {
+ lone_wolf
+ concealment_expert
+ }
gui_row = 5
gui_column = 2
}
@@ -2169,7 +2177,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = ironside
+ any_parent = { ironside }
gui_row = 12
gui_column = 1
@@ -2185,7 +2193,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = ironside
+ any_parent = { ironside }
gui_row = 14
gui_column = 1
@@ -2206,7 +2214,7 @@ leader_traits = {
}
trait_type = assignable_trait
- parent = ironside
+ any_parent = { ironside }
gui_row = 13
gui_column = 1
@@ -2228,7 +2236,7 @@ leader_traits = {
trait_type = assignable_trait
mutually_exclusive = crisis_magician
- parent = big_guns_expert
+ any_parent = { big_guns_expert }
gui_row = 12
gui_column = 2
@@ -2245,7 +2253,7 @@ leader_traits = {
trait_type = assignable_trait
mutually_exclusive = marksman
- parent = safety_first
+ any_parent = { safety_first }
gui_row = 13
gui_column = 2
@@ -2267,7 +2275,7 @@ leader_traits = {
trait_type = assignable_trait
- parent = air_controller
+ any_parent = { air_controller }
gui_row = 10
gui_column = 1
@@ -2285,7 +2293,7 @@ leader_traits = {
trait_type = assignable_trait
mutually_exclusive = dive_bomber
mutually_exclusive = torpedo_bomber
- parent = flight_deck_manager
+ any_parent = { flight_deck_manager }
gui_row = 9
gui_column = 2
@@ -2310,7 +2318,7 @@ leader_traits = {
trait_type = assignable_trait
mutually_exclusive = fighter_director
mutually_exclusive = torpedo_bomber
- parent = flight_deck_manager
+ any_parent = { flight_deck_manager }
gui_row = 10
gui_column = 2
@@ -2336,7 +2344,7 @@ leader_traits = {
trait_type = assignable_trait
mutually_exclusive = fighter_director
mutually_exclusive = dive_bomber
- parent = flight_deck_manager
+ any_parent = { flight_deck_manager }
gui_row = 11
gui_column = 2
diff --git a/data/blank_mod/common/units/equipment/guided_missiles.txt b/data/blank_mod/common/units/equipment/guided_missiles.txt
index 0602034379..c47d08327a 100644
--- a/data/blank_mod/common/units/equipment/guided_missiles.txt
+++ b/data/blank_mod/common/units/equipment/guided_missiles.txt
@@ -82,4 +82,4 @@ equipments = {
# build_cost_ic = 44
}
-}
\ No newline at end of file
+}
diff --git a/data/blank_mod/common/units/equipment/plane_airframes.txt b/data/blank_mod/common/units/equipment/plane_airframes.txt
index 30938d3720..45cb9fd4f3 100644
--- a/data/blank_mod/common/units/equipment/plane_airframes.txt
+++ b/data/blank_mod/common/units/equipment/plane_airframes.txt
@@ -31,12 +31,14 @@ equipments = {
lend_lease_cost = 8
manpower = 20
fuel_consumption = 0.05
- build_cost_ic = 6
+ build_cost_ic = 4
resources = {
aluminium = 2
rubber = 1
}
+ lend_lease_cost = 8
+
module_slots = {
fixed_main_weapon_slot = {
required = yes
@@ -199,9 +201,9 @@ equipments = {
module_slots = inherit
priority = 5
- air_range = 500
- maximum_speed = 0
- air_agility = 45
+ air_range = 400
+ maximum_speed = 400
+ air_agility = 35
air_defence = 7
weight = 3
naval_strike_attack = 1
@@ -217,14 +219,14 @@ equipments = {
parent = small_plane_airframe_0
priority = 5
- air_range = 650
- maximum_speed = 0
- air_agility = 50
+ air_range = 550
+ maximum_speed = 425
+ air_agility = 40
air_defence = 9
weight = 4
naval_strike_attack = 1
naval_strike_targetting = 1
- build_cost_ic = 7
+ build_cost_ic = 5
resources = {
aluminium = 3
rubber = 1
@@ -294,14 +296,14 @@ equipments = {
parent = small_plane_airframe_1
priority = 5
- air_range = 900
- maximum_speed = 0
- air_agility = 65
+ air_range = 650
+ maximum_speed = 450
+ air_agility = 45
air_defence = 11
weight = 5
naval_strike_attack = 1
naval_strike_targetting = 1
- build_cost_ic = 8
+ build_cost_ic = 6
resources = {
aluminium = 3
rubber = 1
@@ -398,14 +400,14 @@ equipments = {
parent = small_plane_airframe_2
priority = 5
- air_range = 1100
- maximum_speed = 0
- air_agility = 80
+ air_range = 750
+ maximum_speed = 475
+ air_agility = 50
air_defence = 12
weight = 6
naval_strike_attack = 1
naval_strike_targetting = 1
- build_cost_ic = 9
+ build_cost_ic = 7
resources = {
aluminium = 4
rubber = 1
@@ -497,6 +499,18 @@ equipments = {
plane_special_module_defense_turret
}
}
+
+ special_type_slot_4 = {
+ required = no
+ allowed_module_categories = {
+ plane_special_module_small
+ plane_special_module_bomb_sights
+ plane_special_module_radio_navigation
+ plane_special_module_air_ground_radar
+ plane_special_module_air_air_radar
+ plane_special_module_defense_turret
+ }
+ }
}
}
@@ -509,14 +523,14 @@ equipments = {
parent = small_plane_airframe_3
priority = 5
- air_range = 2000
- maximum_speed = 0
- air_agility = 85
+ air_range = 900
+ maximum_speed = 500
+ air_agility = 55
air_defence = 18
- weight = 7
+ weight = 6
naval_strike_attack = 1
naval_strike_targetting = 1
- build_cost_ic = 12
+ build_cost_ic = 10
resources = {
aluminium = 4
rubber = 1
@@ -611,6 +625,18 @@ equipments = {
plane_special_module_defense_turret
}
}
+
+ special_type_slot_4 = {
+ required = no
+ allowed_module_categories = {
+ plane_special_module_small
+ plane_special_module_bomb_sights
+ plane_special_module_radio_navigation
+ plane_special_module_air_ground_radar
+ plane_special_module_air_air_radar
+ plane_special_module_defense_turret
+ }
+ }
}
}
@@ -647,7 +673,7 @@ equipments = {
lend_lease_cost = 8
manpower = 20
fuel_consumption = 0.05
- build_cost_ic = 8
+ build_cost_ic = 6
resources = {
aluminium = 2
rubber = 1
@@ -816,13 +842,15 @@ equipments = {
module_slots = inherit
priority = 5
- air_range = 450
- maximum_speed = 0
- air_agility = 40
+ air_range = 400
+ maximum_speed = 400
+ air_agility = 30
air_defence = 7
- weight = 5
+ weight = 4
naval_strike_attack = 1
naval_strike_targetting = 1
+
+ lend_lease_cost = 8
}
cv_small_plane_airframe_1 = { #Basic
@@ -834,14 +862,14 @@ equipments = {
parent = cv_small_plane_airframe_0
priority = 5
- air_range = 570
- maximum_speed = 0
- air_agility = 45
+ air_range = 550
+ maximum_speed = 425
+ air_agility = 35
air_defence = 9
- weight = 6
+ weight = 5
naval_strike_attack = 1
naval_strike_targetting = 1
- build_cost_ic = 10.5
+ build_cost_ic = 8.5
resources = {
aluminium = 3
rubber = 1
@@ -910,14 +938,14 @@ equipments = {
parent = cv_small_plane_airframe_1
priority = 5
- air_range = 750
- maximum_speed = 0
- air_agility = 60
+ air_range = 650
+ maximum_speed = 450
+ air_agility = 40
air_defence = 11
- weight = 7
+ weight = 6
naval_strike_attack = 1
naval_strike_targetting = 1
- build_cost_ic = 11.5
+ build_cost_ic = 9.5
resources = {
aluminium = 3
rubber = 1
@@ -1013,14 +1041,14 @@ equipments = {
parent = cv_small_plane_airframe_2
priority = 5
- air_range = 900
- maximum_speed = 0
- air_agility = 75
+ air_range = 750
+ maximum_speed = 475
+ air_agility = 45
air_defence = 12
- weight = 8
+ weight = 6
naval_strike_attack = 1
naval_strike_targetting = 1
- build_cost_ic = 13
+ build_cost_ic = 11
resources = {
aluminium = 4
rubber = 1
@@ -1122,14 +1150,14 @@ equipments = {
parent = cv_small_plane_airframe_3
priority = 5
- air_range = 1700
- maximum_speed = 0
- air_agility = 80
+ air_range = 900
+ maximum_speed = 500
+ air_agility = 50
air_defence = 18
- weight = 9
+ weight = 6
naval_strike_attack = 1
naval_strike_targetting = 1
- build_cost_ic = 16.5
+ build_cost_ic = 14.5
resources = {
aluminium = 4
rubber = 1
@@ -1237,7 +1265,7 @@ equipments = {
type_override = fixed_main_weapon_slot
allowed_types = {
tactical_bomber
- fighter
+ heavy_fighter
scout_plane
}
allow_mission_type = training
@@ -1254,7 +1282,7 @@ equipments = {
lend_lease_cost = 10
manpower = 40
fuel_consumption = 0
- build_cost_ic = 8
+ build_cost_ic = 6
resources = {
aluminium = 2
rubber = 1
@@ -1323,6 +1351,7 @@ equipments = {
plane_special_module_air_air_radar
plane_special_module_medium
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
}
}
@@ -1331,6 +1360,7 @@ equipments = {
allowed_module_categories = {
mine_warfare_defense
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1344,6 +1374,7 @@ equipments = {
allowed_module_categories = {
mine_warfare_defense
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1357,6 +1388,7 @@ equipments = {
allowed_module_categories = {
mine_warfare_defense
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1469,13 +1501,15 @@ equipments = {
module_slots = inherit
priority = 5
- air_range = 1200
- maximum_speed = 0
- air_agility = 15
+ air_range = 750
+ maximum_speed = 200
+ air_agility = 25
air_defence = 15
weight = 8
naval_strike_attack = 1
naval_strike_targetting = 1
+
+ lend_lease_cost = 10
}
medium_plane_airframe_1 = { #Basic
@@ -1487,14 +1521,14 @@ equipments = {
parent = medium_plane_airframe_0
priority = 5
- air_range = 2200
- maximum_speed = 0
+ air_range = 900
+ maximum_speed = 325
air_agility = 30
air_defence = 18
- weight = 10
+ weight = 8
naval_strike_attack = 1
naval_strike_targetting = 1
- build_cost_ic = 10
+ build_cost_ic = 8
resources = {
aluminium = 3
rubber = 1
@@ -1557,6 +1591,7 @@ equipments = {
allowed_module_categories = {
plane_special_module_medium
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1570,6 +1605,7 @@ equipments = {
allowed_module_categories = {
plane_special_module_medium
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1582,6 +1618,7 @@ equipments = {
allowed_module_categories = {
plane_special_module_medium
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1595,6 +1632,7 @@ equipments = {
allowed_module_categories = {
plane_special_module_medium
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1614,14 +1652,14 @@ equipments = {
parent = medium_plane_airframe_1
priority = 5
- air_range = 2400
- maximum_speed = 0
+ air_range = 1100
+ maximum_speed = 375
air_agility = 35
air_defence = 20
weight = 12
naval_strike_attack = 1
naval_strike_targetting = 1
- build_cost_ic = 12
+ build_cost_ic = 10
resources = {
aluminium = 4
rubber = 1
@@ -1686,6 +1724,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1699,6 +1738,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1711,6 +1751,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1724,6 +1765,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1737,6 +1779,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1757,14 +1800,14 @@ equipments = {
parent = medium_plane_airframe_2
priority = 5
- air_range = 2800
- maximum_speed = 0
+ air_range = 1300
+ maximum_speed = 425
air_agility = 40
air_defence = 24
weight = 14
naval_strike_attack = 1
naval_strike_targetting = 1
- build_cost_ic = 15
+ build_cost_ic = 13
resources = {
aluminium = 5
rubber = 1
@@ -1841,6 +1884,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1854,6 +1898,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1866,6 +1911,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1879,6 +1925,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1892,6 +1939,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -1912,14 +1960,14 @@ equipments = {
parent = medium_plane_airframe_3
priority = 5
- air_range = 3000
- maximum_speed = 0
- air_agility = 50
+ air_range = 1500
+ maximum_speed = 500
+ air_agility = 45
air_defence = 24
weight = 16
naval_strike_attack = 1
naval_strike_targetting = 1
- build_cost_ic = 16
+ build_cost_ic = 14
resources = {
aluminium = 5
rubber = 1
@@ -2000,6 +2048,7 @@ equipments = {
plane_special_module_air_ground_radar
plane_special_module_air_air_radar
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_medium
mine_warfare_defense
}
@@ -2013,6 +2062,7 @@ equipments = {
plane_special_module_air_ground_radar
plane_special_module_air_air_radar
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_medium
mine_warfare_defense
}
@@ -2025,6 +2075,7 @@ equipments = {
plane_special_module_air_ground_radar
plane_special_module_air_air_radar
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_medium
mine_warfare_defense
}
@@ -2038,6 +2089,7 @@ equipments = {
plane_special_module_air_ground_radar
plane_special_module_air_air_radar
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_medium
mine_warfare_defense
}
@@ -2051,6 +2103,7 @@ equipments = {
plane_special_module_air_ground_radar
plane_special_module_air_air_radar
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_medium
mine_warfare_defense
}
@@ -2085,12 +2138,14 @@ equipments = {
lend_lease_cost = 10
manpower = 80
fuel_consumption = 0.16
- build_cost_ic = 18
+ build_cost_ic = 16
resources = {
aluminium = 3
rubber = 2
}
+ lend_lease_cost = 12
+
module_slots = {
fixed_main_weapon_slot = {
required = yes
@@ -2141,6 +2196,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -2154,6 +2210,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -2167,6 +2224,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -2180,6 +2238,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -2193,6 +2252,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -2273,6 +2333,11 @@ equipments = {
count < 2
}
+ module_count_limit = {
+ category = plane_special_module_defense_turret
+ count < 7
+ }
+
default_modules = {
fixed_main_weapon_slot = empty
fixed_auxiliary_weapon_slot_1 = empty
@@ -2290,11 +2355,11 @@ equipments = {
module_slots = inherit
priority = 5
- air_range = 2000
- maximum_speed = 0
- air_agility = 25
+ air_range = 1000
+ maximum_speed = 200
+ air_agility = 20
air_defence = 20
- weight = 20
+ weight = 16
naval_strike_attack = 1
naval_strike_targetting = 1
}
@@ -2308,14 +2373,14 @@ equipments = {
parent = large_plane_airframe_0
priority = 5
- air_range = 2500
- maximum_speed = 0
- air_agility = 30
+ air_range = 1500
+ maximum_speed = 225
+ air_agility = 25
air_defence = 25
- weight = 25
+ weight = 18
naval_strike_attack = 1
naval_strike_targetting = 1
- build_cost_ic = 20
+ build_cost_ic = 18
resources = {
aluminium = 3
rubber = 2
@@ -2373,6 +2438,7 @@ equipments = {
allowed_module_categories = {
plane_special_module_large
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -2386,6 +2452,7 @@ equipments = {
allowed_module_categories = {
plane_special_module_large
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -2398,6 +2465,7 @@ equipments = {
allowed_module_categories = {
plane_special_module_large
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -2411,6 +2479,7 @@ equipments = {
allowed_module_categories = {
plane_special_module_large
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -2424,6 +2493,7 @@ equipments = {
allowed_module_categories = {
plane_special_module_large
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -2443,14 +2513,14 @@ equipments = {
parent = large_plane_airframe_1
priority = 5
- air_range = 3500
- maximum_speed = 0
- air_agility = 35
+ air_range = 2000
+ maximum_speed = 300
+ air_agility = 30
air_defence = 35
- weight = 30
+ weight = 20
naval_strike_attack = 1
naval_strike_targetting = 1
- build_cost_ic = 22
+ build_cost_ic = 20
resources = {
aluminium = 4
rubber = 2
@@ -2520,6 +2590,7 @@ equipments = {
allowed_module_categories = {
plane_special_module_large
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -2533,6 +2604,7 @@ equipments = {
allowed_module_categories = {
plane_special_module_large
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -2545,6 +2617,7 @@ equipments = {
allowed_module_categories = {
plane_special_module_large
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -2558,6 +2631,7 @@ equipments = {
allowed_module_categories = {
plane_special_module_large
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -2571,6 +2645,7 @@ equipments = {
allowed_module_categories = {
plane_special_module_large
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -2584,6 +2659,7 @@ equipments = {
allowed_module_categories = {
plane_special_module_large
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_bomb_sights
plane_special_module_radio_navigation
plane_special_module_air_ground_radar
@@ -2603,14 +2679,14 @@ equipments = {
parent = large_plane_airframe_2
priority = 5
- air_range = 5000
- maximum_speed = 0
- air_agility = 45
+ air_range = 3000
+ maximum_speed = 350
+ air_agility = 35
air_defence = 50
- weight = 35
+ weight = 22
naval_strike_attack = 1
naval_strike_targetting = 1
- build_cost_ic = 24
+ build_cost_ic = 22
resources = {
aluminium = 5
rubber = 2
@@ -2679,6 +2755,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_large
plane_special_module_bomb_sights
plane_special_module_radio_navigation
@@ -2692,6 +2769,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_large
plane_special_module_bomb_sights
plane_special_module_radio_navigation
@@ -2704,6 +2782,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_large
plane_special_module_bomb_sights
plane_special_module_radio_navigation
@@ -2717,6 +2796,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_large
plane_special_module_bomb_sights
plane_special_module_radio_navigation
@@ -2730,6 +2810,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_large
plane_special_module_bomb_sights
plane_special_module_radio_navigation
@@ -2743,6 +2824,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_large
plane_special_module_bomb_sights
plane_special_module_radio_navigation
@@ -2763,14 +2845,14 @@ equipments = {
parent = large_plane_airframe_3
priority = 5
- air_range = 7000
- maximum_speed = 0
- air_agility = 55
+ air_range = 3600
+ maximum_speed = 400
+ air_agility = 40
air_defence = 54
- weight = 42
+ weight = 24
naval_strike_attack = 1
naval_strike_targetting = 1
- build_cost_ic = 25
+ build_cost_ic = 23
resources = {
aluminium = 6
rubber = 2
@@ -2839,6 +2921,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_large
plane_special_module_bomb_sights
plane_special_module_radio_navigation
@@ -2852,6 +2935,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_large
plane_special_module_bomb_sights
plane_special_module_radio_navigation
@@ -2864,6 +2948,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_large
plane_special_module_bomb_sights
plane_special_module_radio_navigation
@@ -2877,6 +2962,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_large
plane_special_module_bomb_sights
plane_special_module_radio_navigation
@@ -2890,6 +2976,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_large
plane_special_module_bomb_sights
plane_special_module_radio_navigation
@@ -2903,6 +2990,7 @@ equipments = {
required = no
allowed_module_categories = {
plane_special_module_defense_turret
+ plane_special_module_defense_turret_x2
plane_special_module_large
plane_special_module_bomb_sights
plane_special_module_radio_navigation
diff --git a/data/blank_mod/common/units/equipment/quad_engine_airframe.txt b/data/blank_mod/common/units/equipment/quad_engine_airframe.txt
index 699fd804fb..ac6e6d719a 100644
--- a/data/blank_mod/common/units/equipment/quad_engine_airframe.txt
+++ b/data/blank_mod/common/units/equipment/quad_engine_airframe.txt
@@ -200,7 +200,7 @@ equipments = {
naval_strike_attack = 0.0
naval_strike_targetting = 0.0
- build_cost_ic = 20
+ build_cost_ic = 38
resources = {
#oil = 1
aluminium = 3
@@ -222,7 +222,7 @@ equipments = {
air_superiority = 0
air_range = 1000
- maximum_speed = 300
+ maximum_speed = 400
air_agility = 10
air_defence = 20
}
diff --git a/data/blank_mod/common/units/equipment/ship_hull_carrier.txt b/data/blank_mod/common/units/equipment/ship_hull_carrier.txt
index f8c5517354..2b24ae2a34 100644
--- a/data/blank_mod/common/units/equipment/ship_hull_carrier.txt
+++ b/data/blank_mod/common/units/equipment/ship_hull_carrier.txt
@@ -46,14 +46,25 @@ equipments = {
required = no
allowed_module_categories = { ship_secondaries ship_dp_secondaries}
}
-
+ fixed_ship_armor_slot = {
+ required = no
+ allowed_module_categories = { ship_cruiser_armor }
+ }
front_1_custom_slot = {
required = no
allowed_module_categories = {
+ ship_anti_air
ship_deck_space
ship_carrier_armor
+ }
+ }
+ mid_1_custom_slot = {
+ required = no
+ allowed_module_categories = {
ship_secondaries
ship_dp_secondaries
+ ship_deck_space
+ ship_carrier_armor
}
}
}
@@ -63,6 +74,11 @@ equipments = {
count < 2
}
+ module_count_limit = {
+ category = ship_carrier_armor
+ count < 2
+ }
+
default_modules = {
fixed_ship_deck_slot_1 = empty
fixed_ship_deck_slot_2 = empty
@@ -103,7 +119,7 @@ equipments = {
# (Describes combat behaviour - hidden stat)
offensive_weapons = no
- build_cost_ic = 2450
+ build_cost_ic = 2094
resources = {
steel = 3
chromium = 1
@@ -112,6 +128,9 @@ equipments = {
manpower = 4500
naval_supremacy_factor = 2.4
+ naval_weather_penalty_factor = 1 #this value gets -1 before its used so 1.5 will increase the effects of weather penalties by 0.5. this is base value is required for MIO stat modifiers
+ #MIO stat modifers will factory by the unmodified stat value so here a 0.5 mio stat modifier would make this ships naval_weather_penalty_factor stat 1.5.
+ # change this from 1 at your own risk
}
ship_hull_carrier_1 = {
@@ -143,6 +162,7 @@ equipments = {
fixed_ship_radar_slot = inherit
fixed_ship_engine_slot = inherit
fixed_ship_secondaries_slot = inherit
+ fixed_ship_armor_slot = inherit
front_1_custom_slot = {
required = no
allowed_module_categories = {
@@ -160,6 +180,15 @@ equipments = {
ship_carrier_armor
}
}
+ mid_2_custom_slot = {
+ required = no
+ allowed_module_categories = {
+ ship_secondaries
+ ship_dp_secondaries
+ ship_deck_space
+ ship_carrier_armor
+ }
+ }
}
default_modules = {
@@ -195,6 +224,7 @@ equipments = {
fixed_ship_radar_slot = inherit
fixed_ship_engine_slot = inherit
fixed_ship_secondaries_slot = inherit
+ fixed_ship_armor_slot = inherit
front_1_custom_slot = {
required = no
allowed_module_categories = {
@@ -221,6 +251,15 @@ equipments = {
ship_carrier_armor
}
}
+ rear_1_custom_slot = {
+ required = no
+ allowed_module_categories = {
+ ship_secondaries
+ ship_dp_secondaries
+ ship_deck_space
+ ship_carrier_armor
+ }
+ }
}
default_modules = {
front_1_custom_slot = empty
@@ -259,6 +298,7 @@ equipments = {
allowed_module_categories = { heavy_ship_engine carrier_ship_engine }
}
fixed_ship_secondaries_slot = inherit
+ fixed_ship_armor_slot = inherit
mid_1_custom_slot = {
required = no
allowed_module_categories = {
@@ -277,7 +317,7 @@ equipments = {
naval_range = 4000
reliability = 0.65
max_strength = 325
- naval_speed = 24
+ naval_speed = 25
build_cost_ic = 2700
@@ -305,6 +345,7 @@ equipments = {
allowed_module_categories = { cruiser_ship_engine carrier_ship_engine }
}
fixed_ship_secondaries_slot = inherit
+ fixed_ship_armor_slot = inherit
}
default_modules = {
@@ -320,7 +361,7 @@ equipments = {
max_strength = 125
reliability = 0.65
- naval_speed = 22
+ naval_speed = 22.5
build_cost_ic = 2700
resources = {
steel = 3
@@ -362,6 +403,10 @@ equipments = {
required = no
allowed_module_categories = { ship_secondaries ship_dp_secondaries}
}
+ fixed_ship_armor_slot = {
+ required = no
+ allowed_module_categories = { ship_cruiser_armor }
+ }
front_1_custom_slot = {
required = no
@@ -397,12 +442,12 @@ equipments = {
surface_detection = 10
sub_detection = 5
surface_visibility = 30
- naval_speed = 22
+ naval_speed = 25.5
reliability = 0.70
naval_range = 3000
- max_strength = 250
+ max_strength = 250§
fuel_consumption = 87
@@ -453,6 +498,10 @@ equipments = {
required = no
allowed_module_categories = { ship_secondaries ship_dp_secondaries }
}
+ fixed_ship_armor_slot = {
+ required = no
+ allowed_module_categories = { ship_cruiser_armor }
+ }
front_1_custom_slot = {
required = no
@@ -534,7 +583,7 @@ equipments = {
surface_detection = 20
sub_detection = 5
surface_visibility = 30
- naval_speed = 26
+ naval_speed = 27
reliability = 0.85
naval_range = 5000
@@ -581,7 +630,7 @@ equipments = {
surface_detection = 30
sub_detection = 5
surface_visibility = 30
- naval_speed = 26
+ naval_speed = 28.5
reliability = 0.90
naval_range = 6000
diff --git a/data/blank_mod/common/units/equipment/ship_hull_cruiser.txt b/data/blank_mod/common/units/equipment/ship_hull_cruiser.txt
index f294257119..189cfa528e 100644
--- a/data/blank_mod/common/units/equipment/ship_hull_cruiser.txt
+++ b/data/blank_mod/common/units/equipment/ship_hull_cruiser.txt
@@ -126,6 +126,9 @@ equipments = {
manpower = 600
naval_supremacy_factor = 2.3
+ naval_weather_penalty_factor = 1 #this value gets -1 before its used so 1.5 will increase the effects of weather penalties by 0.5. this is base value is required for MIO stat modifiers
+ #MIO stat modifers will factory by the unmodified stat value so here a 0.5 mio stat modifier would make this ships naval_weather_penalty_factor stat 1.5.
+ # change this from 1 at your own risk
}
ship_hull_cruiser_1 = {
@@ -410,7 +413,7 @@ equipments = {
surface_detection = 15
sub_detection = 5
surface_visibility = 15
- naval_speed = 27
+ naval_speed = 29
reliability = 0.8
resources = {
#oil = 1
@@ -498,7 +501,7 @@ equipments = {
surface_detection = 30
sub_detection = 10
- naval_speed = 30
+ naval_speed = 29
reliability = 0.90
naval_range = 4000
@@ -550,7 +553,7 @@ equipments = {
surface_detection = 40
sub_detection = 10
- naval_speed = 33
+ naval_speed = 30
reliability = 0.92
naval_range = 4500
diff --git a/data/blank_mod/common/units/equipment/ship_hull_heavy.txt b/data/blank_mod/common/units/equipment/ship_hull_heavy.txt
index 3841fa03a7..abc730e1fc 100644
--- a/data/blank_mod/common/units/equipment/ship_hull_heavy.txt
+++ b/data/blank_mod/common/units/equipment/ship_hull_heavy.txt
@@ -109,7 +109,7 @@ equipments = {
surface_detection = 20
sub_detection = 1
surface_visibility = 20
- naval_speed = 30
+ naval_speed = 20
reliability = 0.80
naval_range = 3000
@@ -118,7 +118,7 @@ equipments = {
fuel_consumption = 67
- build_cost_ic = 3300
+ build_cost_ic = 3500
resources = {
steel = 1
chromium = 1
@@ -127,6 +127,9 @@ equipments = {
manpower = 4000
naval_supremacy_factor = 2.6
+ naval_weather_penalty_factor = 1 #this value gets -1 before its used so 1.5 will increase the effects of weather penalties by 0.5. this is base value is required for MIO stat modifiers
+ #MIO stat modifers will factory by the unmodified stat value so here a 0.5 mio stat modifier would make this ships naval_weather_penalty_factor stat 1.5.
+ # change this from 1 at your own risk
}
###Special snowflake hull
@@ -337,7 +340,7 @@ equipments = {
max_strength = 370
reliability = 0.85
fuel_consumption = 67
- naval_speed = 30
+ naval_speed = 24
build_cost_ic = 3000
resources = {
#oil = 1
@@ -399,7 +402,7 @@ equipments = {
}
naval_range = 4000
- naval_speed = 30
+ naval_speed = 25
max_strength = 400
reliability = 0.9
fuel_consumption = 67
@@ -468,7 +471,7 @@ equipments = {
naval_range = 4500
max_strength = 450
- naval_speed = 30
+ naval_speed = 26
fuel_consumption = 67
reliability = 0.95
build_cost_ic = 3400
@@ -516,7 +519,7 @@ equipments = {
}
fixed_ship_armor_slot = {
required = yes
- allowed_module_categories = { ship_super_heavy_armor }
+ allowed_module_categories = { ship_heavy_armor }
}
front_1_custom_slot = {
required = no
@@ -566,7 +569,7 @@ equipments = {
rear_1_custom_slot = empty
}
naval_range = 4500
- naval_speed = 32
+ naval_speed = 24
max_strength = 700
fuel_consumption = 75
reliability = 0.80
@@ -667,7 +670,7 @@ equipments = {
surface_detection = 12
sub_detection = 5
surface_visibility = 30
- naval_speed = 30
+ naval_speed = 21
reliability = 0.80
naval_range = 3000
@@ -722,7 +725,7 @@ equipments = {
surface_detection = 15
sub_detection = 5
surface_visibility = 30
- naval_speed = 30
+ naval_speed = 24
reliability = 0.85
naval_range = 4000
@@ -776,7 +779,7 @@ equipments = {
surface_detection = 25
sub_detection = 5
surface_visibility = 30
- naval_speed = 30
+ naval_speed = 25
reliability = 0.90
naval_range = 5000
@@ -831,7 +834,7 @@ equipments = {
surface_detection = 40
sub_detection = 5
surface_visibility = 30
- naval_speed = 30
+ naval_speed = 26
reliability = 0.92
naval_range = 6000
@@ -953,7 +956,7 @@ equipments = {
surface_detection = 15
sub_detection = 5
surface_visibility = 30
- naval_speed = 32
+ naval_speed = 24
reliability = 0.85
naval_range = 4000
@@ -1076,7 +1079,7 @@ equipments = {
surface_detection = 25
sub_detection = 5
surface_visibility = 30
- naval_speed = 28
+ naval_speed = 24
reliability = 0.90
naval_range = 4500
@@ -1130,7 +1133,7 @@ equipments = {
surface_detection = 12
sub_detection = 5
surface_visibility = 25
- naval_speed = 30
+ naval_speed = 27.5
reliability = 0.80
naval_range = 3000
@@ -1186,7 +1189,7 @@ equipments = {
surface_detection = 25
sub_detection = 5
surface_visibility = 25
- naval_speed = 30
+ naval_speed = 31
reliability = 0.90
naval_range = 5000
diff --git a/data/blank_mod/common/units/equipment/ship_hull_light.txt b/data/blank_mod/common/units/equipment/ship_hull_light.txt
index 15ada1bdde..8c572cc122 100644
--- a/data/blank_mod/common/units/equipment/ship_hull_light.txt
+++ b/data/blank_mod/common/units/equipment/ship_hull_light.txt
@@ -94,7 +94,7 @@ equipments = {
surface_detection = 20
sub_detection = 1
surface_visibility = 10
- naval_speed = 30
+ naval_speed = 32
reliability = 0.80
naval_range = 1500
diff --git a/data/blank_mod/common/units/equipment/ship_hull_submarine.txt b/data/blank_mod/common/units/equipment/ship_hull_submarine.txt
index 34a3565952..00e32520de 100644
--- a/data/blank_mod/common/units/equipment/ship_hull_submarine.txt
+++ b/data/blank_mod/common/units/equipment/ship_hull_submarine.txt
@@ -75,7 +75,7 @@ equipments = {
fuel_consumption = 1
- build_cost_ic = 220
+ build_cost_ic = 320
resources = {
#oil = 1
steel = 1
@@ -84,6 +84,9 @@ equipments = {
manpower = 200
naval_supremacy_factor = 0.8
+ naval_weather_penalty_factor = 1 #this value gets -1 before its used so 1.5 will increase the effects of weather penalties by 0.5. this is base value is required for MIO stat modifiers
+ #MIO stat modifers will factory by the unmodified stat value so here a 0.5 mio stat modifier would make this ships naval_weather_penalty_factor stat 1.5.
+ # change this from 1 at your own risk
}
ship_hull_submarine_1 = {
@@ -130,7 +133,7 @@ equipments = {
- build_cost_ic = 250
+ build_cost_ic = 350
resources = {
#oil = 1
steel = 2
@@ -180,7 +183,7 @@ equipments = {
- build_cost_ic = 320
+ build_cost_ic = 420
resources = {
steel = 2
}
@@ -228,7 +231,7 @@ equipments = {
- build_cost_ic = 450
+ build_cost_ic = 550
resources = {
steel = 3
chromium = 1
@@ -287,7 +290,7 @@ equipments = {
- build_cost_ic = 390
+ build_cost_ic = 490
resources = {
steel = 2
}
@@ -327,7 +330,7 @@ equipments = {
manpower = 100
- build_cost_ic = 100
+ build_cost_ic = 150
resources = {
steel = 1
}
diff --git a/data/blank_mod/common/units/equipment/tank_chassis.txt b/data/blank_mod/common/units/equipment/tank_chassis.txt
index 525dcde305..23d674d753 100644
--- a/data/blank_mod/common/units/equipment/tank_chassis.txt
+++ b/data/blank_mod/common/units/equipment/tank_chassis.txt
@@ -1,5 +1,9 @@
equipments = {
-
+
+ ### Helpful handy information: modules that depend on other modules (ie, big guns require fixed turrets)
+ ### require that the module slots for their equipment archetype are defined in operational order for AI + historical templates.
+ ### tldr; If your gun requires a specific turret: define the turret slot first.
+
light_tank_chassis = {
year = 1922
is_archetype = yes
@@ -13,21 +17,23 @@ equipments = {
- module_slots = {
- main_armament_slot = {
+ module_slots = {
+
+ turret_type_slot = { #Turrets must go at the top
required = yes
allowed_module_categories = {
- tank_small_main_armament
- tank_flamethrower
+ tank_light_turret_type
}
}
-
- turret_type_slot = {
+
+ main_armament_slot = {
required = yes
allowed_module_categories = {
- tank_light_turret_type
+ tank_small_main_armament
+ tank_flamethrower
}
}
+
suspension_type_slot = {
required = yes
allowed_module_categories = {
@@ -149,11 +155,13 @@ equipments = {
build_cost_ic = 1
reliability = 0.8
hardness = 0.8
- armor_value = 5
+ armor_value = 10
resources = {
steel = 1
}
+ lend_lease_cost = 10
+
manpower = 2
}
@@ -182,10 +190,10 @@ equipments = {
parent = light_tank_chassis_0
priority = 2000
module_slots = inherit
- maximum_speed = 4
+ maximum_speed = 5
build_cost_ic = 1.25
reliability = 0.95
- armor_value = 10
+ armor_value = 15
}
light_tank_chassis_2 = {
@@ -198,9 +206,9 @@ equipments = {
priority = 2000
module_slots = inherit
build_cost_ic = 1.6
- maximum_speed = 4.5
+ maximum_speed = 6
reliability = 1.1
- armor_value = 15
+ armor_value = 20
resources = {
steel = 1
}
@@ -216,9 +224,9 @@ equipments = {
priority = 2000
module_slots = inherit
build_cost_ic = 2
- maximum_speed = 5
+ maximum_speed = 7
reliability = 1.3
- armor_value = 20
+ armor_value = 25
resources = {
steel = 2
}
@@ -230,7 +238,6 @@ equipments = {
year = 1922
is_archetype = yes
is_buildable = no
-
picture = archetype_medium_tank_equipment
type = armor
group_by = archetype
@@ -238,13 +245,6 @@ equipments = {
priority = 2000
module_slots = {
- main_armament_slot = {
- required = yes
- allowed_module_categories = {
- tank_small_main_armament
- tank_flamethrower
- }
- }
turret_type_slot = {
required = yes
@@ -253,6 +253,14 @@ equipments = {
tank_medium_turret_type
}
}
+
+ main_armament_slot = {
+ required = yes
+ allowed_module_categories = {
+ tank_small_main_armament
+ tank_flamethrower
+ }
+ }
suspension_type_slot = {
required = yes
@@ -371,13 +379,15 @@ equipments = {
fuel_consumption = 0
maximum_speed = 4
build_cost_ic = 2
- reliability = 1
- armor_value = 15
+ reliability = 0.5
+ armor_value = 20
hardness = 0.85
resources = {
steel = 1
}
+ lend_lease_cost = 12
+
manpower = 2
}
@@ -396,7 +406,7 @@ equipments = {
maximum_speed = 4
build_cost_ic = 2.5
reliability = 0.75
- armor_value = 25
+ armor_value = 20
resources = {
steel = 1
}
@@ -411,8 +421,10 @@ equipments = {
parent = medium_tank_chassis_0
priority = 2000
module_slots = inherit
- armor_value = 35
+ armor_value = 30
build_cost_ic = 2.5
+ reliability = 0.8
+ maximum_speed = 5
}
medium_tank_chassis_2 = {
abbreviation = "mt2"
@@ -423,10 +435,10 @@ equipments = {
archetype = medium_tank_chassis
priority = 2000
module_slots = inherit
- maximum_speed = 4
+ maximum_speed = 6
build_cost_ic = 3.2
- reliability = 1.3
- armor_value = 45
+ reliability = 1
+ armor_value = 40
resources = {
steel = 1
}
@@ -440,9 +452,9 @@ equipments = {
archetype = medium_tank_chassis
priority = 2000
module_slots = inherit
- maximum_speed = 4.5
+ maximum_speed = 6
build_cost_ic = 4
- reliability = 1.6
+ reliability = 1.2
armor_value = 50
resources = {
steel = 2
@@ -453,7 +465,6 @@ equipments = {
year = 1922
is_archetype = yes
is_buildable = no
-
picture = archetype_heavy_tank_equipment
type = armor
group_by = archetype
@@ -461,13 +472,6 @@ equipments = {
priority = 2000
module_slots = {
- main_armament_slot = {
- required = yes
- allowed_module_categories = {
- tank_small_main_armament
- tank_flamethrower
- }
- }
turret_type_slot = {
required = yes
@@ -477,6 +481,14 @@ equipments = {
tank_heavy_turret_type
}
}
+
+ main_armament_slot = {
+ required = yes
+ allowed_module_categories = {
+ tank_small_main_armament
+ tank_flamethrower
+ }
+ }
suspension_type_slot = {
required = yes
@@ -590,15 +602,17 @@ equipments = {
}
fuel_consumption = 0
- maximum_speed = 3.5
+ maximum_speed = 3
build_cost_ic = 10
- reliability = 1
- armor_value = 25
+ reliability = 0.75
+ armor_value = 30
hardness = 0.95
resources = {
steel = 1
}
+ lend_lease_cost = 14
+
manpower = 2
}
@@ -615,22 +629,24 @@ equipments = {
tank_nsb_engine_upgrade
tank_nsb_armor_upgrade
}
- maximum_speed = 4
+ maximum_speed = 3
build_cost_ic = 10
- reliability = 1
- armor_value = 30
+ reliability = 0.75
+ armor_value = 35
}
heavy_tank_chassis_1 = {
abbreviation = "hv1"
derived_variant_name = heavy_tank_equipment_1
visual_level = 0
- year = 1936
+ year = 1934
archetype = heavy_tank_chassis
parent = heavy_tank_chassis_0
priority = 2000
module_slots = inherit
- armor_value = 35
+ armor_value = 55
+ maximum_speed = 5
+ reliability = 0.8
}
heavy_tank_chassis_2 = {
@@ -643,9 +659,9 @@ equipments = {
priority = 2000
module_slots = inherit
build_cost_ic = 10
- maximum_speed = 4
- reliability = 1.15
- armor_value = 55
+ maximum_speed = 5
+ reliability = 1.1
+ armor_value = 60
resources = {
steel = 1
chromium = 1
@@ -662,8 +678,8 @@ equipments = {
priority = 2000
module_slots = inherit
build_cost_ic = 12
- maximum_speed = 4
- reliability = 1.3
+ maximum_speed = 5
+ reliability = 1.2
armor_value = 75
resources = {
steel = 2
@@ -675,7 +691,6 @@ equipments = {
year = 1948
is_archetype = yes
is_buildable = no
-
picture = archetype_modern_tank_equipment
type = armor
group_by = archetype
@@ -683,12 +698,6 @@ equipments = {
priority = 2000
module_slots = {
- main_armament_slot = {
- required = yes
- allowed_module_categories = {
- tank_small_main_armament
- }
- }
turret_type_slot = {
required = yes
@@ -699,6 +708,13 @@ equipments = {
tank_modern_turret_type
}
}
+
+ main_armament_slot = {
+ required = yes
+ allowed_module_categories = {
+ tank_small_main_armament
+ }
+ }
suspension_type_slot = {
required = yes
@@ -810,16 +826,18 @@ equipments = {
}
fuel_consumption = 0
- maximum_speed = 4.5
+ maximum_speed = 7
build_cost_ic = 6
- reliability = 1.6
- armor_value = 75
+ reliability = 1.2
+ armor_value = 65
hardness = 0.95
resources = {
steel = 2
chromium = 1
}
+ lend_lease_cost = 13
+
manpower = 2
}
@@ -843,7 +861,6 @@ equipments = {
year = 1948
is_archetype = yes
is_buildable = no
-
picture = archetype_super_heavy_tank_equipment
type = armor
group_by = archetype
@@ -851,20 +868,17 @@ equipments = {
priority = 2000
module_slots = {
- main_armament_slot = {
+ turret_type_slot = {
required = yes
allowed_module_categories = {
- tank_small_main_armament
+ tank_super_heavy_turret_type
}
}
-
- turret_type_slot = {
+
+ main_armament_slot = {
required = yes
allowed_module_categories = {
- tank_light_turret_type
- tank_medium_turret_type
- tank_heavy_turret_type
- tank_super_heavy_turret_type
+ tank_small_main_armament
}
}
@@ -979,16 +993,19 @@ equipments = {
}
fuel_consumption = 0
- maximum_speed = 2.5
- build_cost_ic = 24
- reliability = 1.3
- armor_value = 85
+ maximum_speed = 4
+ build_cost_ic = 28
+ reliability = 1
+ armor_value = 90
hardness = 1
+
resources = {
steel = 3
chromium = 2
}
+ lend_lease_cost = 20
+
manpower = 2
}
@@ -1011,7 +1028,6 @@ equipments = {
year = 1936
is_archetype = yes
is_buildable = no
-
picture = archetype_amphibious_tank_equipment
type = armor
group_by = archetype
@@ -1019,17 +1035,18 @@ equipments = {
priority = 2000
module_slots = {
- main_armament_slot = {
+
+ turret_type_slot = {
required = yes
allowed_module_categories = {
- tank_small_main_armament
+ tank_light_turret_type
}
}
-
- turret_type_slot = {
+
+ main_armament_slot = {
required = yes
allowed_module_categories = {
- tank_light_turret_type
+ tank_small_main_armament
}
}
@@ -1143,7 +1160,7 @@ equipments = {
}
fuel_consumption = 0
- maximum_speed = 4
+ maximum_speed = 5
build_cost_ic = 4.5
reliability = 1.1
armor_value = 15
@@ -1152,6 +1169,8 @@ equipments = {
steel = 1
}
+ lend_lease_cost = 10
+
manpower = 2
}
diff --git a/data/blank_mod/common/units/names_railway_guns/SWE_railway_gun_names.txt b/data/blank_mod/common/units/names_railway_guns/SWE_railway_gun_names.txt
new file mode 100644
index 0000000000..5f282702bb
--- /dev/null
+++ b/data/blank_mod/common/units/names_railway_guns/SWE_railway_gun_names.txt
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/data/blank_mod/common/units/names_ships/ICE_ship_names.txt b/data/blank_mod/common/units/names_ships/ICE_ship_names.txt
new file mode 100644
index 0000000000..5f282702bb
--- /dev/null
+++ b/data/blank_mod/common/units/names_ships/ICE_ship_names.txt
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/data/blank_mod/gfx/interface/equipmentdesigner/graphic_db/00_plane_icons.txt b/data/blank_mod/gfx/interface/equipmentdesigner/graphic_db/00_plane_icons.txt
index b2c64b3621..4cc992a951 100644
--- a/data/blank_mod/gfx/interface/equipmentdesigner/graphic_db/00_plane_icons.txt
+++ b/data/blank_mod/gfx/interface/equipmentdesigner/graphic_db/00_plane_icons.txt
@@ -11,6 +11,13 @@ default = {
GFX_light_plane_4_medium
}
}
+
+ pool = {
+ models = {
+ light_plane_entity
+ }
+ }
+
}
cv_small_plane_airframe = {
pool = {
@@ -24,6 +31,11 @@ default = {
GFX_light_plane_6_medium
}
}
+ pool = {
+ models = {
+ light_plane_entity
+ }
+ }
}
medium_plane_airframe = {
pool = {
@@ -38,6 +50,11 @@ default = {
GFX_medium_plane_1_medium
}
}
+ pool = {
+ models = {
+ medium_plane_entity
+ }
+ }
}
large_plane_airframe = {
pool = {
@@ -49,5 +66,10 @@ default = {
GFX_iw_large_airframe_medium
}
}
+ pool = {
+ models = {
+ heavy_plane_entity
+ }
+ }
}
}
diff --git a/data/blank_mod/gfx/interface/equipmentdesigner/graphic_db/06_british_tank_icons.txt b/data/blank_mod/gfx/interface/equipmentdesigner/graphic_db/06_british_tank_icons.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/data/blank_mod/interface/countrypoliticsview.gfx b/data/blank_mod/interface/countrypoliticsview.gfx
index 7123eea592..2a8735eea0 100644
--- a/data/blank_mod/interface/countrypoliticsview.gfx
+++ b/data/blank_mod/interface/countrypoliticsview.gfx
@@ -173,6 +173,11 @@ spriteTypes = {
name = "GFX_autonomy_personal_union_icon"
textureFile = "gfx/interface/autonomy/autonomy_personal_union_puppet.dds"
}
+
+ spriteType = {
+ name = "GFX_autonomy_aat_defense_council_member_icon"
+ textureFile = "gfx/interface/autonomy/autonomy_colony_icon.dds"
+ }
#-------------
@@ -424,6 +429,11 @@ spriteTypes = {
noOfFrames = 2
}
+ spriteType = {
+ name = "GFX_idea_entry_bg_4"
+ texturefile = "gfx/interface/idea_entry_bg_4.dds"
+ }
+
spriteType = {
name = "GFX_pol_factions_strip"
texturefile = "gfx\\interface\\pol_factions_strip.tga"
diff --git a/data/blank_mod/interface/countrypoliticsview.gui b/data/blank_mod/interface/countrypoliticsview.gui
index f8fa33572f..0c96c103ea 100644
--- a/data/blank_mod/interface/countrypoliticsview.gui
+++ b/data/blank_mod/interface/countrypoliticsview.gui
@@ -813,6 +813,20 @@ guiTypes = {
frame = 1
}
}
+
+ containerWindowType = {
+ name = "industrial_org_entry"
+ size = { width = 53 height = 53 }
+ clipping = no
+
+ buttonType = {
+ name = "open_roster_button"
+ position = { x = 31 y = 31 }
+ spriteType = "GFX_add_pol_idea_button"
+ centerposition = yes
+ clicksound = click_default
+ }
+ }
containerWindowType = {
name = "political_selectable_idea_entry_grid"
diff --git a/data/blank_mod/localisation/braz_por/ideas2_l_braz_por.yml b/data/blank_mod/localisation/braz_por/ideas2_l_braz_por.yml
index 27f0570b84..801ff92955 100644
--- a/data/blank_mod/localisation/braz_por/ideas2_l_braz_por.yml
+++ b/data/blank_mod/localisation/braz_por/ideas2_l_braz_por.yml
@@ -98,4 +98,7 @@
generic_war_of_national_liberation:0 "Guerra de Libertação Nacional"
generic_war_of_national_liberation_desc:0 "Com a recusa do Ultimatum, devemos partir para a ofensiva e libertar todo o nosso território."
generic_national_unification:0 "Unificação Nacional"
- generic_national_unification_desc:0 "Os sucessos de nossas Campanhas de Libertação só aumentaram o interesse dos [Root.GetHabitants] em se inscrever para o serviço militar."
\ No newline at end of file
+ generic_national_unification_desc:0 "Os sucessos de nossas Campanhas de Libertação só aumentaram o interesse dos [Root.GetHabitants] em se inscrever para o serviço militar."
+ political_loyalty_spirit_fasc: "Lealdade política"
+ political_loyalty_spirit_fasc_desc: "Um exército duvidoso é uma ameaça ao estado que deve proteger.\n\n§GEsse espírito está disponível devido às sua ideologia.§!"
+ political_loyalty_spirit_fasc_tt: "Novos oficiais: começam com as características §Y\"conexões políticas\"§! ou §Y\"personalidade da mídia\"§!."
diff --git a/data/blank_mod/localisation/english/ideas2_l_english.yml b/data/blank_mod/localisation/english/ideas2_l_english.yml
index c5d8636690..7b7244fca6 100644
--- a/data/blank_mod/localisation/english/ideas2_l_english.yml
+++ b/data/blank_mod/localisation/english/ideas2_l_english.yml
@@ -99,3 +99,6 @@
generic_war_of_national_liberation_desc:0 "With the Ultimatum refused, we must go on the offensive and liberate all of our territory."
generic_national_unification:0 "National Unification"
generic_national_unification_desc:0 "Successes in our Liberation Campaigns have only increased the interest among the [Root.GetAdjective] men to sign up for duty."
+ political_loyalty_spirit_fasc:0 "Political Loyalty"
+ political_loyalty_spirit_fasc_desc:1 "An unreliable military is a threat to the state it is meant to protect.\n\n§GThis spirit is available due to our ideology.§!"
+ political_loyalty_spirit_fasc_tt:1 "New Officers: begin with either §Y"Politically Connected"§! or §Y"Media Personality"§! traits."
diff --git a/data/blank_mod/localisation/french/ideas2_l_french.yml b/data/blank_mod/localisation/french/ideas2_l_french.yml
index 13e4cb3879..5c4730ad86 100644
--- a/data/blank_mod/localisation/french/ideas2_l_french.yml
+++ b/data/blank_mod/localisation/french/ideas2_l_french.yml
@@ -98,4 +98,7 @@
generic_war_of_national_liberation:0 "Guerre de Libération Nationale"
generic_war_of_national_liberation_desc:0 "Avec le refus de l'Ultimatum, nous devons passer à l'offensive et libérer tout notre territoire."
generic_national_unification:0 "Unification nationale"
- generic_national_unification_desc:0 "Les succès de nos campagnes de libération n'ont fait qu'augmenter l'intérêt des [Root.GetHabitants] à s'engager."
\ No newline at end of file
+ generic_national_unification_desc:0 "Les succès de nos campagnes de libération n'ont fait qu'augmenter l'intérêt des [Root.GetHabitants] à s'engager."
+ political_loyalty_spirit_fasc: "Loyauté politique"
+ political_loyalty_spirit_fasc_desc: "Une armée peu fiable est une menace pour l'État qu'elle est censée protéger.\n\n§GCet esprit est permis par notre idéologie.§!"
+ political_loyalty_spirit_fasc_tt: "Nouveaux officiers : apparaissent avec les traits §Y$politically_connected$§! ou §Y$media_personality$§!."
diff --git a/data/blank_mod/localisation/german/ideas2_l_german.yml b/data/blank_mod/localisation/german/ideas2_l_german.yml
index 3355721e97..1862b34503 100644
--- a/data/blank_mod/localisation/german/ideas2_l_german.yml
+++ b/data/blank_mod/localisation/german/ideas2_l_german.yml
@@ -98,4 +98,7 @@
generic_war_of_national_liberation:0 "Krieg der nationalen Befreiung"
generic_war_of_national_liberation_desc:0 "Nachdem das Ultimatum abgelehnt wurde, müssen wir in die Offensive gehen und unser gesamtes Territorium befreien."
generic_national_unification:0 "Nationale Vereinigung"
- generic_national_unification_desc:0 "Erfolge in unseren Befreiungskampagnen haben nur das Interesse der [Root.GetAdjective]en Männer erhöht, sich für den Dienst anzumelden."
\ No newline at end of file
+ generic_national_unification_desc:0 "Erfolge in unseren Befreiungskampagnen haben nur das Interesse der [Root.GetAdjective]en Männer erhöht, sich für den Dienst anzumelden."
+ political_loyalty_spirit_fasc: "Politische Loyalität"
+ political_loyalty_spirit_fasc_desc: "Ein unzuverlässiges Militär ist eine Gefahr für den Staat, den es eigentlich beschützen sollte.\n\n§GDieser Nationalgeist ist aufgrund unserer Ideologie verfügbar.§!"
+ political_loyalty_spirit_fasc_tt: "Neue Offiziere: Beginnen mit der Eigenschaft §Y\"Politisch vernetzt\"§! oder §Y\"Medienpersönlichkeit\"§!."
diff --git a/data/blank_mod/localisation/japanese/ideas2_l_japanese.yml b/data/blank_mod/localisation/japanese/ideas2_l_japanese.yml
new file mode 100644
index 0000000000..0147cc6d57
--- /dev/null
+++ b/data/blank_mod/localisation/japanese/ideas2_l_japanese.yml
@@ -0,0 +1,4 @@
+l_japanese:
+ political_loyalty_spirit_fasc: "政治的忠誠"
+ political_loyalty_spirit_fasc_desc: "信頼できない軍隊は、無益どころか国家にとって有害だ。\n\n§G特定のイデオロギーを採用したことにより、この軍事精神が解放されている。§!"
+ political_loyalty_spirit_fasc_tt: "新しい将軍: §Y「政治的縁故」§!または§Y「メディアの有名人」§!を持った状態で開始する。"
diff --git a/data/blank_mod/localisation/polish/ideas2_l_polish.yml b/data/blank_mod/localisation/polish/ideas2_l_polish.yml
index 8112e9b578..6440cbbc6d 100644
--- a/data/blank_mod/localisation/polish/ideas2_l_polish.yml
+++ b/data/blank_mod/localisation/polish/ideas2_l_polish.yml
@@ -98,4 +98,7 @@
generic_war_of_national_liberation:0 "Wojna o wyzwolenie narodowe"
generic_war_of_national_liberation_desc:0 "Po odrzuceniu Ultimatum musimy przejść do ofensywy i wyzwolić całe nasze terytorium."
generic_national_unification:0 "Zjednoczenie narodowe"
- generic_national_unification_desc:0 "Sukcesy w naszych kampaniach wyzwoleńczych tylko zwiększyły zainteresowanie [Root.GetHabitants] przyjęciem do służby."
\ No newline at end of file
+ generic_national_unification_desc:0 "Sukcesy w naszych kampaniach wyzwoleńczych tylko zwiększyły zainteresowanie [Root.GetHabitants] przyjęciem do służby."
+ political_loyalty_spirit_fasc: "Lojalność polityczna"
+ political_loyalty_spirit_fasc_desc: "Niesolidne wojsko stanowi zagrożenie dla kraju, którego ma bronić.\n\n§GTen duch narodowy jest dostępny dzięki naszej ideologii.§!"
+ political_loyalty_spirit_fasc_tt: "Nowi oficerowie: otrzymują specjalizację §YKoneksje polityczne§! lub §YOsoba medialna§!."
diff --git a/data/blank_mod/localisation/russian/ideas2_l_russian.yml b/data/blank_mod/localisation/russian/ideas2_l_russian.yml
index aa79c096bb..67ab49ce5f 100644
--- a/data/blank_mod/localisation/russian/ideas2_l_russian.yml
+++ b/data/blank_mod/localisation/russian/ideas2_l_russian.yml
@@ -125,4 +125,7 @@
generic_war_of_national_liberation:0 "Национально-освободительная война"
generic_war_of_national_liberation_desc:0 "Отказавшись от ультиматума, мы должны перейти в наступление и освободить всю нашу территорию".
generic_national_unification:0 "Национальное объединение"
- generic_national_unification_desc:0 "Успехи в наших Освободительных кампаниях только увеличили интерес [Root.GetAdjective] мужчин к вступлению в должность".
\ No newline at end of file
+ generic_national_unification_desc:0 "Успехи в наших Освободительных кампаниях только увеличили интерес [Root.GetAdjective] мужчин к вступлению в должность".
+ political_loyalty_spirit_fasc: "Политическая лояльность"
+ political_loyalty_spirit_fasc_desc: "Ненадежная армия опасна для государства, которое она должна защищать.\n\n§GЭтот национальный дух доступен благодаря нашей идеологии.§!"
+ political_loyalty_spirit_fasc_tt: "Новые офицеры: начинают с чертой §Y«Политические связ軧! или §Y«Медийная знаменитость»§!."
diff --git a/data/blank_mod/localisation/simp_chinese/ideas2_l_simp_chinese.yml b/data/blank_mod/localisation/simp_chinese/ideas2_l_simp_chinese.yml
new file mode 100644
index 0000000000..3c944cef83
--- /dev/null
+++ b/data/blank_mod/localisation/simp_chinese/ideas2_l_simp_chinese.yml
@@ -0,0 +1,4 @@
+l_simp_chinese:
+ political_loyalty_spirit_fasc: "政治忠诚"
+ political_loyalty_spirit_fasc_desc: "一支不可靠的军队将威胁到它本应保护的国家。\n\n§G由于我们的意识形态,该精神可用。§!"
+ political_loyalty_spirit_fasc_tt: "新征陆军将领:获得§Y“政治关联者”§!或§Y“媒体人物”§!特质。"
diff --git a/data/blank_mod/localisation/spanish/ideas2_l_spanish.yml b/data/blank_mod/localisation/spanish/ideas2_l_spanish.yml
index e37a7a66d8..88afead426 100644
--- a/data/blank_mod/localisation/spanish/ideas2_l_spanish.yml
+++ b/data/blank_mod/localisation/spanish/ideas2_l_spanish.yml
@@ -98,4 +98,7 @@
generic_war_of_national_liberation:0 "Guerra de Liberación Nacional"
generic_war_of_national_liberation_desc:0 "Con el Ultimátum rechazado, debemos pasar a la ofensiva y liberar todo nuestro territorio".
generic_national_unification:0 "Unificación nacional"
- generic_national_unification_desc:0 "Los éxitos en nuestras Campañas de Liberación solo han aumentado el interés entre los hombres [Root.GetAdjMP] para inscribirse en el servicio".
\ No newline at end of file
+ generic_national_unification_desc:0 "Los éxitos en nuestras Campañas de Liberación solo han aumentado el interés entre los hombres [Root.GetAdjMP] para inscribirse en el servicio".
+ political_loyalty_spirit_fasc: "Lealtad política"
+ political_loyalty_spirit_fasc_desc: "La desconfianza militar es una amenaza para el Estado al que se supone que debe proteger.\n\n§GEste espíritu está disponible gracias a nuestra ideología.§!"
+ political_loyalty_spirit_fasc_tt: "Nuevos oficiales: empiezan con el rasgo §YCon conexiones políticas§! o §YEstrella mediática§!."
diff --git a/data/blank_mod/map/adjacency_rules.txt b/data/blank_mod/map/adjacency_rules.txt
index 2f71a22d05..deed4769a6 100644
--- a/data/blank_mod/map/adjacency_rules.txt
+++ b/data/blank_mod/map/adjacency_rules.txt
@@ -1,15 +1,15 @@
-# Adjacency rules determine if an army, navy or trade can pass through the adjacency (e.g. a canal or strait).
+# Adjacency rules determine if an army, navy or trade can pass through the adjacency (e.g. a canal or strait).
#
-# If two countries at war control provinces in the adjacency it is considered contested.
-# The optional triggers is_enemy, is_friend and is_neutral are evaluated in order and if one evaluates to true the corresponding rule is used.
-# If is_enemy and is_friend evaluates to false the neutral rule is used. In this case the is_neutral trigger will not be evaluated at all.
-# If is_friend and is_neutral evaluates to false the enemy rule is used.
-# If is_enemy and is_neutral evaluates to false the friend rule is used.
-# If any adjacency province controller is at war with the country the enemy rule is used, unless is_enemy evaluates to false, then the neutral rule is used.
-# If any adjacency province controller is an ally of is giving military access to the country the friend rule is used, unless is_friend evaluates to false, then the neutral rule is used.
-# Otherwise the neutral rule is used, unless is_neutral evaluates to false, then the enemy rule is used.
+# If two countries at war control provinces in the adjacency it is considered contested.
+# The optional triggers is_enemy, is_friend and is_neutral are evaluated in order and if one evaluates to true the corresponding rule is used.
+# If is_enemy and is_friend evaluates to false the neutral rule is used. In this case the is_neutral trigger will not be evaluated at all.
+# If is_friend and is_neutral evaluates to false the enemy rule is used.
+# If is_enemy and is_neutral evaluates to false the friend rule is used.
+# If any adjacency province controller is at war with the country the enemy rule is used, unless is_enemy evaluates to false, then the neutral rule is used.
+# If any adjacency province controller is an ally of is giving military access to the country the friend rule is used, unless is_friend evaluates to false, then the neutral rule is used.
+# Otherwise the neutral rule is used, unless is_neutral evaluates to false, then the enemy rule is used.
#
-# The 'name' property is how you refer to the rule in adjacencies.csv
+# The 'name' property is how you refer to the rule in adjacencies.csv
#Suez Canal
adjacency_rule =
@@ -137,8 +137,8 @@ adjacency_rule =
required_provinces = { 6287 3277 3325 3260 394 }
- icon = 2455
- offset = { -26 0 -13 }
+ icon = 2431
+ offset = { -2 0 -7 }
}
#Panama Canal
@@ -314,15 +314,15 @@ adjacency_rule =
trade = yes
}
- required_provinces = { 11366 317 3231 }
+ required_provinces = { 317 3231 3368 6257 6389 }
is_disabled = {
has_global_flag = KIEL_CANAL_UNBUILT
tooltip = canal_unbuilt_tt
}
- icon = 11366
- offset = { 5 0 -6 }
+ icon = 6389
+ offset = { -9 0 2 }
}
#Strait of Hormuz
adjacency_rule =
@@ -402,4 +402,4 @@ adjacency_rule =
icon = 6979
offset = { 9 0 6 }
-}
\ No newline at end of file
+}
diff --git a/data/configurables/Greater Flavor Mod_province_mappings.txt b/data/configurables/Greater Flavor Mod_province_mappings.txt
index dd437e5b88..b3b7d31a80 100644
--- a/data/configurables/Greater Flavor Mod_province_mappings.txt
+++ b/data/configurables/Greater Flavor Mod_province_mappings.txt
@@ -1096,10 +1096,10 @@
link = { vic2 = 2129 vic2 = 2132 vic2 = 2130 hoi4 = 13016 hoi4 = 13013 } # MANY-TO-MANY: Saint Helena, Tristan da Cunha, Ascension -> land, land
link = { vic2 = 251 hoi4 = 12512 hoi4 = 13066 } # Godthb -> land, land
link = { vic2 = 2636 hoi4 = 13058 hoi4 = 10636 hoi4 = 10245 } # South Greenland Ice Shelf -> land, land, land
- link = { vic2 = 252 vic2 = 3246 hoi4 = 12674 hoi4 = 4861 hoi4 = 12689 } # MANY-TO-MANY: Island, Saint Barths -> land, land, land
+ link = { vic2 = 3246 vic2 = 252 hoi4 = 12674 hoi4 = 4861 hoi4 = 12689 hoi4 = 13271 hoi4 = 13268 hoi4 = 13266 hoi4 = 13267 hoi4 = 13272 } # MANY-TO-MANY: Island, Saint Barths -> land, land, land, land, land, land, land, land
link = { vic2 = 253 hoi4 = 13003 } # Frerne -> land
link = { vic2 = 1724 hoi4 = 6196 } # Shetland -> land
- link = { vic2 = 267 vic2 = 3478 vic2 = 3479 vic2 = 3477 hoi4 = 6104 hoi4 = 3159 hoi4 = 11064 hoi4 = 131 hoi4 = 9090 hoi4 = 6205 hoi4 = 6062 hoi4 = 3178 hoi4 = 6046 hoi4 = 11266 hoi4 = 11161 hoi4 = 9075 } # MANY-TO-MANY: Inverness, Highlands, Hebrides, Orkney Islands -> land, land, land, land, land, land, land, land, land, land, land, land
+ link = { vic2 = 267 vic2 = 3478 vic2 = 3479 vic2 = 3477 hoi4 = 6104 hoi4 = 3159 hoi4 = 11064 hoi4 = 131 hoi4 = 9090 hoi4 = 6205 hoi4 = 6062 hoi4 = 3178 hoi4 = 6046 hoi4 = 11266 hoi4 = 11161 hoi4 = 9075 hoi4 = 13270 hoi4 = 13269 } # MANY-TO-MANY: Inverness, Highlands, Hebrides, Orkney Islands -> land, land, land, land, land, land, land, land, land, land, land, land, land, land
link = { vic2 = 266 hoi4 = 11055 hoi4 = 11207 hoi4 = 200 hoi4 = 11136 hoi4 = 9161 } # Aberdeen -> land, land, land, land, land
link = { vic2 = 268 hoi4 = 159 hoi4 = 11306 hoi4 = 3150 hoi4 = 6300 } # Dundee -> land, land, land, land
link = { vic2 = 270 hoi4 = 284 hoi4 = 3373 hoi4 = 6385 } # Stirling -> land, land, land
@@ -1386,7 +1386,8 @@
link = { vic2 = 529 hoi4 = 9320 } # Lauenburg -> land
link = { vic2 = 528 vic2 = 2640 hoi4 = 9347 } # Hamburg, Gwadar -> land
link = { vic2 = 544 hoi4 = 11305 hoi4 = 9294 hoi4 = 11276 hoi4 = 268 hoi4 = 321 hoi4 = 293 } # Schwerin -> land, land, land, land, land, land
- link = { vic2 = 548 vic2 = 3561 hoi4 = 9388 } # Stralsund, Rgen -> land
+ link = { vic2 = 3561 hoi4 = 13257 } # Rgen -> land
+ link = { vic2 = 548 hoi4 = 9388 } # Stralsund -> land
link = { vic2 = 547 hoi4 = 3340 hoi4 = 349 } # Greifswald -> land, land
link = { vic2 = 545 hoi4 = 3258 } # Neustrelitz -> land
link = { vic2 = 550 hoi4 = 3207 hoi4 = 11444 hoi4 = 3312 hoi4 = 11505 } # Prenzlau -> land, land, land, land
@@ -1695,13 +1696,14 @@
link = { vic2 = 3617 hoi4 = 6201 } # Dag -> land
link = { vic2 = 353 hoi4 = 185 } # sel -> land
link = { vic2 = 2713 hoi4 = 13127 } # Peipsi Jrv -> lake
- link = { vic2 = 370 hoi4 = 11366 hoi4 = 317 } # Flensburg -> land, land
+ link = { vic2 = 370 hoi4 = 11366 hoi4 = 317 hoi4 = 13258 } # Flensburg -> land, land, land
link = { vic2 = 371 vic2 = 368 hoi4 = 11251 hoi4 = 332 } # MANY-TO-MANY: Apenrade, Queen Charlotte Islands -> land, land
- link = { vic2 = 2557 hoi4 = 399 hoi4 = 3277 } # Ribe -> land, land
- link = { vic2 = 366 hoi4 = 6364 } # Arhus -> land
- link = { vic2 = 367 hoi4 = 3206 hoi4 = 3341 hoi4 = 6235 hoi4 = 394 hoi4 = 316 } # Alborg -> land, land, land, land, land
- link = { vic2 = 373 hoi4 = 3325 hoi4 = 3374 } # Odense -> land, land
- link = { vic2 = 372 vic2 = 3667 hoi4 = 6287 hoi4 = 6393 hoi4 = 3260 hoi4 = 3305 } # MANY-TO-MANY: Kbenhavn, Lolland -> land, land, land, land
+ link = { vic2 = 2557 hoi4 = 399 hoi4 = 3277 hoi4 = 13263 } # Ribe -> land, land, land
+ link = { vic2 = 366 hoi4 = 6364 hoi4 = 13259 } # Arhus -> land, land
+ link = { vic2 = 367 hoi4 = 3206 hoi4 = 3341 hoi4 = 6235 hoi4 = 394 hoi4 = 316 hoi4 = 13262 } # Alborg -> land, land, land, land, land, land
+ link = { vic2 = 373 hoi4 = 3325 hoi4 = 3374 hoi4 = 13260 } # Odense -> land, land, land
+ link = { vic2 = 372 hoi4 = 6287 hoi4 = 6393 hoi4 = 3260 hoi4 = 3305 } # Kbenhavn -> land, land, land, land
+ link = { vic2 = 3667 hoi4 = 13261 } # Lolland -> land
link = { vic2 = 374 hoi4 = 6361 } # Bornholm -> land
link = { vic2 = 313 hoi4 = 6115 hoi4 = 3171 hoi4 = 11184 hoi4 = 11078 } # Christiania -> land, land, land, land
link = { vic2 = 314 hoi4 = 3021 hoi4 = 6160 hoi4 = 179 hoi4 = 133 hoi4 = 10 hoi4 = 3136 hoi4 = 3105 hoi4 = 111 hoi4 = 11113 hoi4 = 9227 hoi4 = 6042 hoi4 = 11028 } # Hamar -> land, land, land, land, land, land, land, land, land, land, land, land
@@ -1728,10 +1730,10 @@
link = { vic2 = 330 hoi4 = 3386 hoi4 = 6406 hoi4 = 6331 hoi4 = 295 hoi4 = 3286 hoi4 = 3375 hoi4 = 3063 } # Bors -> land, land, land, land, land, land, land
link = { vic2 = 334 hoi4 = 9279 hoi4 = 9362 hoi4 = 6412 hoi4 = 3307 hoi4 = 6345 hoi4 = 11376 } # Malm -> land, land, land, land, land, land
link = { vic2 = 335 hoi4 = 11215 hoi4 = 11327 hoi4 = 11160 hoi4 = 9300 hoi4 = 6120 } # Karlskrona -> land, land, land, land, land
- link = { vic2 = 332 vic2 = 3562 hoi4 = 6148 hoi4 = 299 hoi4 = 329 hoi4 = 3229 hoi4 = 11390 hoi4 = 211 } # MANY-TO-MANY: Kalmar, land -> land, land, land, land, land, land
+ link = { vic2 = 332 vic2 = 3562 hoi4 = 6148 hoi4 = 299 hoi4 = 329 hoi4 = 3229 hoi4 = 11390 hoi4 = 211 hoi4 = 13264 } # MANY-TO-MANY: Kalmar, land -> land, land, land, land, land, land, land
link = { vic2 = 333 hoi4 = 9251 hoi4 = 11231 hoi4 = 9410 hoi4 = 11280 hoi4 = 363 hoi4 = 242 hoi4 = 11311 hoi4 = 9329 hoi4 = 9406 } # Vxj -> land, land, land, land, land, land, land, land, land
link = { vic2 = 331 hoi4 = 6258 hoi4 = 408 } # Gotland -> land, land
- link = { vic2 = 325 hoi4 = 11380 hoi4 = 6311 hoi4 = 6397 hoi4 = 11289 hoi4 = 9393 hoi4 = 9308 } # Norrkping -> land, land, land, land, land, land
+ link = { vic2 = 325 hoi4 = 11380 hoi4 = 6311 hoi4 = 6397 hoi4 = 11289 hoi4 = 9393 hoi4 = 9308 hoi4 = 13265 } # Norrkping -> land, land, land, land, land, land, land
link = { vic2 = 327 hoi4 = 6164 hoi4 = 6188 hoi4 = 9209 hoi4 = 6084 } # rebro -> land, land, land, land
link = { vic2 = 326 hoi4 = 11188 hoi4 = 9109 hoi4 = 11082 hoi4 = 9185 hoi4 = 35 hoi4 = 3106 hoi4 = 6127 } # Vsters -> land, land, land, land, land, land, land
link = { vic2 = 322 hoi4 = 6050 hoi4 = 6209 hoi4 = 161 } # Stockholm -> land, land, land
diff --git a/data/configurables/Historical Project Mod 0.4.6_province_mappings.txt b/data/configurables/Historical Project Mod 0.4.6_province_mappings.txt
index c11a33a375..28a90c7b28 100644
--- a/data/configurables/Historical Project Mod 0.4.6_province_mappings.txt
+++ b/data/configurables/Historical Project Mod 0.4.6_province_mappings.txt
@@ -1143,11 +1143,11 @@
link = { comment = "* Danish Iceland" }
link = { vic2 = 251 hoi4 = 12512 hoi4 = 13066 } # Nuuk -> Julianehb, land
link = { vic2 = 2636 hoi4 = 13058 hoi4 = 10636 hoi4 = 10245 } # Aasiaat -> land, Ammassalik, Godthb
- link = { vic2 = 252 hoi4 = 12674 hoi4 = 4861 hoi4 = 12689 } # Iceland -> Reykjavk, Akureyri, Reyarfjrur
+ link = { vic2 = 252 hoi4 = 12674 hoi4 = 4861 hoi4 = 12689 hoi4 = 13267 hoi4 = 13266 hoi4 = 13268 hoi4 = 13271 hoi4 = 13272 } # Iceland -> Reykjavk, Akureyri, Reyarfjrur, land, land, land, land, land
link = { vic2 = 253 hoi4 = 13003 } # Faroe Islands -> Trshavn
link = { comment = "* Great Britain" }
link = { vic2 = 1724 hoi4 = 6196 } # Orkney & Shetland -> Lerwick
- link = { vic2 = 267 hoi4 = 6104 hoi4 = 3159 hoi4 = 11064 hoi4 = 131 hoi4 = 9090 hoi4 = 6205 hoi4 = 6062 hoi4 = 3178 hoi4 = 6046 hoi4 = 11266 hoi4 = 11161 hoi4 = 9075 } # Inverness -> Lairg, Alness, Kirkwall, Tongue, Ullapool, Gairloch, Stornoway, Portree, Fort Augustus, Tobermory, Fort William, Kingussie
+ link = { vic2 = 267 hoi4 = 6104 hoi4 = 3159 hoi4 = 11064 hoi4 = 131 hoi4 = 9090 hoi4 = 6205 hoi4 = 6062 hoi4 = 3178 hoi4 = 6046 hoi4 = 11266 hoi4 = 11161 hoi4 = 9075 hoi4 = 13270 hoi4 = 13269 } # Inverness -> Lairg, Alness, Kirkwall, Tongue, Ullapool, Gairloch, Stornoway, Portree, Fort Augustus, Tobermory, Fort William, Kingussie, land, land
link = { vic2 = 266 hoi4 = 11055 hoi4 = 11207 hoi4 = 200 hoi4 = 11136 hoi4 = 9161 } # Aberdeen -> Aboyne, Elgin, Peterhead, Aberdeen, Inverness
link = { vic2 = 268 hoi4 = 159 hoi4 = 11306 hoi4 = 3150 hoi4 = 6300 } # Dundee -> Perth, Pitlochry, Dundee, Dunfermline
link = { vic2 = 270 hoi4 = 284 hoi4 = 3373 hoi4 = 6385 } # Stirling -> Oban, Campbeltown, Callander
@@ -1271,7 +1271,7 @@
link = { vic2 = 765 hoi4 = 11773 hoi4 = 11874 hoi4 = 902 } # Cagliari -> Cagliari, Iglesias, Muravera
link = { vic2 = 766 hoi4 = 9772 hoi4 = 11824 hoi4 = 11755 hoi4 = 9863 hoi4 = 6891 } # Sassari -> Sassari, Oristano, Nuoro, Olbia, Tempio Pausania
link = { vic2 = 762 hoi4 = 10074 hoi4 = 3857 hoi4 = 7147 hoi4 = 7059 } # Palermo -> Palermo, Caltanissetta, Sciacca, Marsala
- link = { vic2 = 764 hoi4 = 4014 hoi4 = 1009 hoi4 = 12047 hoi4 = 13256 } # Catania -> Catania, Gela, Patern, land
+ link = { vic2 = 764 hoi4 = 4014 hoi4 = 1009 hoi4 = 12047 hoi4 = 13256 } # Catania -> Catania, Gela, Patern, Siracusa
link = { vic2 = 763 hoi4 = 4159 hoi4 = 1156 } # Messina -> Messina, Barcellona Pozzo di Gotto
link = { vic2 = 759 hoi4 = 9990 } # Reggio di Calabria -> Reggio Calabria
link = { vic2 = 760 hoi4 = 3901 hoi4 = 12066 hoi4 = 12098 hoi4 = 10027 } # Catanzaro -> Cosenza, Catanzaro, Crotone, Castrovillari
@@ -1441,7 +1441,7 @@
link = { vic2 = 529 hoi4 = 9320 } # Lauenburg -> Ahrensburg
link = { vic2 = 528 hoi4 = 9347 } # Hamburg -> Hamburg
link = { vic2 = 544 hoi4 = 321 hoi4 = 11305 hoi4 = 9294 hoi4 = 11276 hoi4 = 268 hoi4 = 293 } # Schwerin -> Rostock, Wismar, Schwerin, Gstrow, Neustrelitz, Teterow
- link = { vic2 = 548 hoi4 = 9388 } # Stralsund -> Stralsund
+ link = { vic2 = 548 hoi4 = 9388 hoi4 = 13257 } # Stralsund -> Stralsund, land
link = { vic2 = 547 hoi4 = 3340 hoi4 = 349 } # Greifswald -> Greifswald, Anklam
link = { vic2 = 545 hoi4 = 3258 } # Neustrelitz -> Neubrandenburg
link = { vic2 = 550 hoi4 = 3207 hoi4 = 11444 hoi4 = 3312 hoi4 = 11505 } # Prenzlau -> Schwedt, Eberswalde, Pasewalk, Strausberg
@@ -1577,7 +1577,7 @@
link = { vic2 = 768 hoi4 = 9627 hoi4 = 3631 hoi4 = 9596 hoi4 = 6650 } # Ljubljana -> Ljubljana, Kranj, Kamnik, Novo mesto
link = { vic2 = 767 hoi4 = 596 hoi4 = 3654 hoi4 = 665 hoi4 = 6672 } # Maribor -> Velenje, Celje, Maribor, Murksa Sobota
link = { vic2 = 774 hoi4 = 11901 hoi4 = 591 hoi4 = 6611 hoi4 = 984 } # Senj -> Gospic, Senj, Plitvicka Jezera, Korenica
- link = { vic2 = 773 hoi4 = 3601 hoi4 = 13252 } # Karlovac -> Ogulin, land
+ link = { vic2 = 773 hoi4 = 3601 hoi4 = 13252 } # Karlovac -> Ogulin, Crikvenica
link = { vic2 = 780 hoi4 = 3924 hoi4 = 3974 hoi4 = 11816 } # Split -> Split, Knin, Metkovic
link = { vic2 = 782 hoi4 = 6889 hoi4 = 3868 } # Dubrovnik -> Dubrovnik, Hvar
link = { vic2 = 771 hoi4 = 11581 hoi4 = 3592 } # Zagreb -> Zagreb, Karlovac
@@ -1615,7 +1615,7 @@
link = { vic2 = 806 hoi4 = 3882 hoi4 = 3833 hoi4 = 907 hoi4 = 6886 } # Skopje -> Skopje, Kavadarci, Kocani, Strumica
link = { comment = "* Albania" }
link = { vic2 = 849 hoi4 = 9914 hoi4 = 9875 hoi4 = 6900 } # Tirana -> Tirana, Elbasan, Pogradec
- link = { vic2 = 851 hoi4 = 13255 } # Durres -> land
+ link = { vic2 = 851 hoi4 = 13255 } # Durres -> Durrs
link = { vic2 = 850 hoi4 = 9780 hoi4 = 3896 hoi4 = 11762 } # Shkoder -> Shkodr, Kuks, Peshkopi
link = { vic2 = 852 hoi4 = 11767 hoi4 = 3884 } # Vlore -> Vlor, Fier
link = { vic2 = 853 hoi4 = 914 hoi4 = 13234 hoi4 = 3448 hoi4 = 13235 } # Gjirokaster -> Sarand, Gjirokastr, Berat, Kor
@@ -1750,12 +1750,12 @@
link = { vic2 = 2713 hoi4 = 13127 } # Peipsi Jrv -> (Lake)
link = { comment = "* Denmark" }
link = { vic2 = 370 vic2 = 533 hoi4 = 11366 hoi4 = 317 } # MANY-TO-MANY: Flensburg, Heligoland -> Sylt, Flensburg
- link = { vic2 = 371 hoi4 = 11251 hoi4 = 332 } # Abenra -> Kolding, Ribe
- link = { vic2 = 2557 vic2 = 368 hoi4 = 399 hoi4 = 3277 } # MANY-TO-MANY: Esbjerg, Ribe -> Esbjerg, Horsens
- link = { vic2 = 366 hoi4 = 6364 } # Aarhus -> Aarhus
- link = { vic2 = 367 hoi4 = 3206 hoi4 = 3341 hoi4 = 6235 hoi4 = 394 hoi4 = 316 } # Aalborg -> Viborg, Herning, Aalborg, Hjrring, Thisted
- link = { vic2 = 373 hoi4 = 3325 hoi4 = 3374 } # Odense -> Odense, Svendborg
- link = { vic2 = 372 hoi4 = 6287 hoi4 = 6393 hoi4 = 3260 hoi4 = 3305 } # Copenhagen -> Kbenhavn, Roskilde, Slagelse, Nstved
+ link = { vic2 = 371 hoi4 = 11251 hoi4 = 332 hoi4 = 13258 } # Abenra -> Kolding, Ribe, land
+ link = { vic2 = 2557 vic2 = 368 hoi4 = 399 hoi4 = 3277 hoi4 = 13263 } # MANY-TO-MANY: Esbjerg, Ribe -> Esbjerg, Horsens, land
+ link = { vic2 = 366 hoi4 = 6364 hoi4 = 13259 } # Aarhus -> Aarhus, land
+ link = { vic2 = 367 hoi4 = 3206 hoi4 = 3341 hoi4 = 6235 hoi4 = 394 hoi4 = 316 hoi4 = 13262 } # Aalborg -> Viborg, Herning, Aalborg, Hjrring, Thisted, land
+ link = { vic2 = 373 hoi4 = 3325 hoi4 = 3374 hoi4 = 13260 } # Odense -> Odense, Svendborg, land
+ link = { vic2 = 372 hoi4 = 6287 hoi4 = 6393 hoi4 = 3260 hoi4 = 3305 hoi4 = 13261 } # Copenhagen -> Kbenhavn, Roskilde, Slagelse, Nstved, land
link = { vic2 = 374 hoi4 = 6361 } # Bornholm -> Rnne
link = { comment = "* Norway" }
link = { vic2 = 313 hoi4 = 6115 hoi4 = 3171 hoi4 = 11184 hoi4 = 11078 } # Christiania -> Oslo, Fredrikstad, Lillestrm, Ullensaker
@@ -1783,8 +1783,8 @@
link = { vic2 = 330 hoi4 = 3386 hoi4 = 6406 hoi4 = 6331 hoi4 = 295 hoi4 = 3286 hoi4 = 3375 hoi4 = 3063 } # Boras -> Kinna, Ulricehamn, Bors, Trollhttan, Falkping, Skvde, Mariestad
link = { vic2 = 334 hoi4 = 9279 hoi4 = 9362 hoi4 = 6412 hoi4 = 3307 hoi4 = 6345 hoi4 = 11376 } # Malmo -> Malm, ngelholm, Halmstad, Varberg, Helsingborg, Ystad
link = { vic2 = 335 hoi4 = 11215 hoi4 = 11327 hoi4 = 11160 hoi4 = 9300 hoi4 = 6120 } # Karlskrona -> Karlskrona, Karlshamn, Kristianstad, Hssleholm, hus
- link = { vic2 = 332 hoi4 = 6148 hoi4 = 299 hoi4 = 329 hoi4 = 3229 hoi4 = 11390 hoi4 = 211 } # Kalmar -> Vimmerby, Kalmar, Torss, Oskarshamn, Vstervik, Borgholm
- link = { vic2 = 333 hoi4 = 9251 hoi4 = 11231 hoi4 = 9410 hoi4 = 11280 hoi4 = 363 hoi4 = 242 hoi4 = 11311 hoi4 = 9329 hoi4 = 9406 } # Vaxjo -> Gislaved, Vrnamo, Ljungby, Tingsryd, Emmaboda, Vxj, Eksj, Jnkping, Trans
+ link = { vic2 = 332 hoi4 = 6148 hoi4 = 299 hoi4 = 329 hoi4 = 3229 hoi4 = 11390 hoi4 = 211 hoi4 = 13264 } # Kalmar -> Vimmerby, Kalmar, Torss, Oskarshamn, Vstervik, Borgholm, land
+ link = { vic2 = 333 hoi4 = 9251 hoi4 = 11231 hoi4 = 9410 hoi4 = 11280 hoi4 = 363 hoi4 = 242 hoi4 = 11311 hoi4 = 9329 hoi4 = 9406 hoi4 = 13265 } # Vaxjo -> Gislaved, Vrnamo, Ljungby, Tingsryd, Emmaboda, Vxj, Eksj, Jnkping, Trans, land
link = { vic2 = 331 hoi4 = 6258 hoi4 = 408 } # Gotland -> Hemse, Visby
link = { vic2 = 325 hoi4 = 11380 hoi4 = 6311 hoi4 = 6397 hoi4 = 11289 hoi4 = 9393 hoi4 = 9308 } # Norrkoping -> Norrkping, Motala, Mjlby, Kisa, Linkping, Finspng
link = { vic2 = 327 hoi4 = 6164 hoi4 = 6188 hoi4 = 9209 hoi4 = 6084 } # Orebro -> Karlskoga, Askersund, rebro, Lindesberg
@@ -2432,9 +2432,9 @@
link = { vic2 = 1952 hoi4 = 5028 } # Nguru -> Gombe
link = { vic2 = 1953 vic2 = 1951 hoi4 = 4997 } # Dikoa, Kuka -> Maiduguri
link = { comment = "* Abyssinia" }
- link = { vic2 = 1850 hoi4 = 12723 hoi4 = 5017 hoi4 = 13251 } # Keren -> Agordat, Cheren, land
+ link = { vic2 = 1850 hoi4 = 12723 hoi4 = 5017 hoi4 = 13251 } # Keren -> Agordat, Cheren, Teseney
link = { vic2 = 1849 hoi4 = 5091 hoi4 = 5047 } # Massawa -> Massaua, Nacfa
- link = { vic2 = 1848 hoi4 = 12766 hoi4 = 13250 } # Asmara -> Asmara, land
+ link = { vic2 = 1848 hoi4 = 12766 hoi4 = 13250 } # Asmara -> Asmara, Asmara
link = { vic2 = 1851 hoi4 = 8043 } # Assab -> Assab
link = { vic2 = 1875 hoi4 = 4985 hoi4 = 8124 } # Djibuti -> Tadjourah, Djibouti
link = { vic2 = 1874 hoi4 = 10777 } # Zeyla -> Borama
@@ -2444,22 +2444,22 @@
link = { vic2 = 1868 vic2 = 1869 hoi4 = 10928 hoi4 = 8164 hoi4 = 2063 } # MANY-TO-MANY: Mogadishu, Baidoa -> Merca, Gelib, Baidoa
link = { vic2 = 1870 hoi4 = 12941 hoi4 = 11014 } # Kismayo -> Chisimaio, Bardera
link = { vic2 = 3224 hoi4 = 13137 } # Lake Tana -> (Lake)
- link = { vic2 = 1867 hoi4 = 12757 hoi4 = 12812 hoi4 = 13253 } # Ogaden -> Degeh Bur, Gode, land
- link = { vic2 = 1866 hoi4 = 4995 hoi4 = 10775 hoi4 = 13248 } # Bale -> Dolo, Robe, land
- link = { vic2 = 1864 hoi4 = 8019 hoi4 = 8062 hoi4 = 13246 hoi4 = 13247 } # Sidamo -> Sawla, Negele Arsi, land, land
- link = { vic2 = 1862 hoi4 = 7912 hoi4 = 13243 hoi4 = 13244 hoi4 = 13245 hoi4 = 2009 } # Bonga -> Gambela, land, land, land, Asosa
+ link = { vic2 = 1867 hoi4 = 12757 hoi4 = 12812 hoi4 = 13253 } # Ogaden -> Degeh Bur, Gode, Gode
+ link = { vic2 = 1866 hoi4 = 4995 hoi4 = 10775 hoi4 = 13248 } # Bale -> Dolo, Robe, Robe
+ link = { vic2 = 1864 hoi4 = 8019 hoi4 = 8062 hoi4 = 13246 hoi4 = 13247 } # Sidamo -> Sawla, Negele Arsi, Awasa, Moyale
+ link = { vic2 = 1862 hoi4 = 7912 hoi4 = 13243 hoi4 = 13244 hoi4 = 13245 hoi4 = 2009 } # Bonga -> Gambela, Dembidolo, Gambela, Mizan, Asosa
link = { vic2 = 1860 hoi4 = 10734 } # Hawassa -> Awasa
link = { vic2 = 1861 hoi4 = 8036 } # Aselia -> Adaamaa
- link = { vic2 = 1865 hoi4 = 7980 hoi4 = 12714 hoi4 = 13249 } # Harer -> Harar, Jijiga, land
- link = { vic2 = 1859 hoi4 = 5010 hoi4 = 13239 } # Ankober -> Adis Abeba, land
+ link = { vic2 = 1865 hoi4 = 7980 hoi4 = 12714 hoi4 = 13249 } # Harer -> Harar, Jijiga, Harar
+ link = { vic2 = 1859 hoi4 = 5010 hoi4 = 13239 } # Ankober -> Adis Abeba, Debre Birhan
link = { vic2 = 1863 hoi4 = 12856 } # Jimma -> Nekemte
- link = { vic2 = 1855 hoi4 = 4954 hoi4 = 13242 } # Debre Markos -> Bahir Dar, land
+ link = { vic2 = 1855 hoi4 = 4954 hoi4 = 13242 } # Debre Markos -> Bahir Dar, Debre Markos
link = { vic2 = 1854 hoi4 = 2040 } # Matamma -> Metema
link = { vic2 = 1852 hoi4 = 1984 } # Gonder -> Gonder
- link = { vic2 = 1853 hoi4 = 5097 hoi4 = 13241 } # Debre Tabor -> Dese, land
- link = { vic2 = 1858 hoi4 = 5041 hoi4 = 13236 hoi4 = 13240 } # Asaita -> Asayita, land, land
+ link = { vic2 = 1853 hoi4 = 5097 hoi4 = 13241 } # Debre Tabor -> Dese, Debre Tabor
+ link = { vic2 = 1858 hoi4 = 5041 hoi4 = 13236 hoi4 = 13240 } # Asaita -> Asayita, Semera, Asayita
link = { vic2 = 1857 hoi4 = 7944 } # Antalo -> Sok'ot'a
- link = { vic2 = 1856 hoi4 = 2072 hoi4 = 13237 hoi4 = 13238 } # Aksum -> Mek'ele, land, land
+ link = { vic2 = 1856 hoi4 = 2072 hoi4 = 13237 hoi4 = 13238 } # Aksum -> Mek'ele, Aksum, Adwa
link = { comment = "* British East Africa" }
link = { vic2 = 3236 vic2 = 3103 vic2 = 3102 vic2 = 3294 vic2 = 3293 hoi4 = 13135 hoi4 = 2308 hoi4 = 13176 hoi4 = 13177 hoi4 = 4201 hoi4 = 2281 hoi4 = 13173 } # MANY-TO-MANY: Anam a Cheper, Lake Tangayika, Ukerewe, Lake Mweru, Lake Rukwa -> (Lake), (Lake), (Lake), (Lake), (Lake), (Lake), (Lake)
link = { vic2 = 2029 vic2 = 2033 hoi4 = 5210 } # Mombasa, Voi -> Mombasa
diff --git a/data/configurables/IdeologicalIdeas/absolutist.txt b/data/configurables/IdeologicalIdeas/absolutist.txt
new file mode 100644
index 0000000000..13a675f3f1
--- /dev/null
+++ b/data/configurables/IdeologicalIdeas/absolutist.txt
@@ -0,0 +1,160 @@
+ country = {
+ royal_dictatorship_focus = {
+
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = absolutist
+ }
+
+ removal_cost = -1
+
+ picture = generic_intel_bonus
+
+ modifier = {
+ drift_defence_factor = 0.2
+ }
+ }
+
+ historical_claims_focus = {
+
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = absolutist
+ }
+
+ removal_cost = -1
+
+ picture = Generic_constitutional_guarantee
+
+ modifier = {
+ justify_war_goal_time = -0.5
+ }
+ }
+ absolutist_defeated = {
+ removal_cost = -1
+
+ allowed = {
+ always = no # Triggered via event
+ }
+
+ picture = generic_democratic_drift_bonus
+
+ modifier = {
+ stability_factor = 0.1
+ }
+ }
+
+ absolutist_influence = {
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = absolutist
+ }
+
+ removal_cost = -1
+
+ picture = generic_democratic_drift_bonus
+
+ modifier = {
+ absolutist_drift = 0.1
+ absolutist_acceptance = 85
+ }
+ }
+
+ absolutism = {
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = absolutist
+ }
+
+ removal_cost = -1
+
+ picture = generic_infantry_bonus
+
+
+ modifier = {
+ absolutist_drift = 0.1
+ }
+ }
+
+ absolutist_revolutionaries = {
+
+ removal_cost = -1
+
+ allowed = {
+ always = no # Triggered via event
+ }
+
+ picture = generic_fascism_drift_bonus
+
+ modifier = {
+ stability_factor = -0.1
+ }
+ }
+
+ absolutist_partisans_recruiting = {
+
+ allowed = {
+ always = no # Triggered via event
+ }
+
+ picture = generic_communism_drift_bonus
+
+ modifier = {
+ conscription = -0.002
+ absolutist_drift = 0.05
+ }
+
+ ai_will_do = {
+ factor = 0
+ }
+ }
+
+ militarism_focus_absolutist = {
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = absolutist
+ }
+
+ removal_cost = -1
+
+ picture = generic_manpower_bonus
+
+ modifier = {
+ conscription = 0.05
+ resistance_damage_to_garrison = -0.1
+ }
+ }
+
+ absolutist_military_parade = {
+ allowed = {
+ always = no
+ }
+ allowed_civil_war = {
+ has_government = absolutist
+ }
+ removal_cost = -1
+ picture = generic_pp_unity_bonus
+ modifier = {
+ absolutist_drift = 0.1
+ mobilization_speed = 0.15
+ }
+ }
+ }
diff --git a/data/configurables/IdeologicalIdeas/communism.txt b/data/configurables/IdeologicalIdeas/communism.txt
new file mode 100644
index 0000000000..a9bf321d12
--- /dev/null
+++ b/data/configurables/IdeologicalIdeas/communism.txt
@@ -0,0 +1,212 @@
+ country = {
+ communism_banned = {
+ picture = anti_soviet_pact
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ NOT = {
+ has_government = communism
+ }
+ }
+
+ modifier = {
+ communism_drift = -0.05
+ }
+ }
+
+ communist_pressure = {
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = communism
+ }
+
+ removal_cost = -1
+
+ picture = generic_communism_drift_bonus
+
+ modifier = {
+ communism_drift = 0.1
+ }
+ }
+
+ communist_influence = {
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = communism
+ }
+
+ removal_cost = -1
+
+ picture = generic_communism_drift_bonus
+
+ modifier = {
+ communism_drift = 0.1
+ communism_acceptance = 85
+ }
+ }
+
+ communist_influence_weak = {
+ name = communist_influence
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = communism
+ }
+
+ removal_cost = -1
+
+ picture = generic_communism_drift_bonus
+
+ modifier = {
+ communism_drift = 0.1
+ communism_acceptance = 35
+ }
+ }
+
+ internationalism = {
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = communism
+ }
+
+ removal_cost = -1
+
+ picture = generic_intel_bonus
+
+ modifier = {
+ #justify_war_goal_time = -0.25
+ communism_drift = 0.1
+ }
+ }
+
+ communism_partisans_recruiting = {
+
+ allowed = {
+ always = no # Triggered via event
+ }
+
+ picture = generic_communism_drift_bonus
+
+ modifier = {
+ conscription = -0.002
+ communism_drift = 0.05
+ }
+
+ ai_will_do = {
+ factor = 0
+ }
+ }
+
+ communism_revolutionaries = {
+
+ removal_cost = -1
+
+ allowed = {
+ always = no # Triggered via event
+ }
+
+ picture = generic_fascism_drift_bonus
+
+ modifier = {
+ stability_factor = -0.1
+ }
+ }
+
+ political_commissars_focus = {
+
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = communism
+ }
+
+ removal_cost = -1
+
+ picture = generic_morale_bonus
+
+ modifier = {
+ army_morale_factor = 0.1
+ }
+ }
+
+ socialist_education = {
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = communism
+ }
+
+ removal_cost = -1
+
+ picture = generic_communism_drift_bonus
+
+ modifier = {
+ communism_drift = 0.1
+ research_speed_factor = 0.035
+ }
+ }
+ }
+
+ academy_spirit = {
+ academy_scholarships_spirit = {
+ ledger = army
+ visible = {
+ has_government = communism
+ }
+ modifier = {
+ army_leader_start_level = 1
+ army_leader_cost_factor = -0.3
+ unit_leader_as_advisor_cp_cost_factor = -0.75
+ custom_modifier_tooltip = academy_scholarships_spirit_tt
+ }
+ ai_will_do = {
+ base = 1
+
+ modifier = {
+ factor = 0
+ NOT = { has_dlc = "No Step Back" }
+ }
+
+ modifier = {
+ factor = 2
+ has_government = communism
+ }
+ }
+ }
+ }
+
+ air_force_command_spirit = {
+ steel_wings_steel_hearts_spirit = {
+ ledger = air
+ visible = { has_government = communism }
+ modifier = {
+ air_untrained_pilots_penalty_factor = -0.33
+ }
+ ai_will_do = {
+ factor = 1
+ modifier = {
+ factor = 0
+ NOT = { has_dlc = "No Step Back" }
+ }
+ }
+ }
+ }
diff --git a/data/configurables/IdeologicalIdeas/democratic.txt b/data/configurables/IdeologicalIdeas/democratic.txt
new file mode 100644
index 0000000000..39033cb85f
--- /dev/null
+++ b/data/configurables/IdeologicalIdeas/democratic.txt
@@ -0,0 +1,147 @@
+ country = {
+ collectivist_ethos_focus_democratic = {
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ AND = {
+ NOT = { has_government = democratic }
+ NOT = { has_government = neutrality }
+ }
+ }
+
+ removal_cost = -1
+
+ picture = generic_pp_unity_bonus
+
+ modifier = {
+ democratic_drift = -0.02
+ }
+ }
+
+ democratic_influence = {
+
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = democratic
+ }
+
+ removal_cost = -1
+
+ picture = generic_democratic_drift_bonus
+
+ modifier = {
+ democratic_drift = 0.1
+ democratic_acceptance = 85
+ }
+ }
+
+ democratic_influence_weak = {
+ name = democratic_influence
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = democratic
+ }
+
+ removal_cost = -1
+
+ picture = generic_democratic_drift_bonus
+
+ modifier = {
+ democratic_drift = 0.1
+ democratic_acceptance = 35
+ }
+ }
+
+ democratic_opposition_voicing_protests = {
+
+ allowed = {
+ always = no # Triggered via event
+ }
+
+ picture = generic_democratic_drift_bonus
+
+ modifier = {
+ political_power_factor = -0.2
+ democratic_drift = 0.05
+ }
+
+ ai_will_do = {
+ factor = 0
+ }
+ }
+
+ liberty_ethos_focus = {
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = democratic
+ }
+
+ removal_cost = -1
+
+ picture = generic_democratic_drift_bonus
+
+ modifier = {
+ trade_opinion_factor = 0.2
+ }
+ }
+
+ nation_building = {
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = democratic
+ }
+
+ removal_cost = -1
+
+ picture = generic_democratic_drift_bonus
+
+ modifier = {
+ democratic_drift = 0.1
+ stability_factor = 0.1
+ }
+ }
+ }
+
+ academy_spirit = {
+ best_of_the_best_spirit = {
+ ledger = army
+ visible = {
+ has_government = democratic
+ }
+ modifier = {
+ army_leader_start_level = 2
+ army_intel_to_others = -5.0
+ custom_modifier_tooltip = best_of_the_best_spirit_tt
+ }
+ ai_will_do = {
+ base = 1
+
+ modifier = {
+ factor = 0
+ NOT = { has_dlc = "No Step Back" }
+ }
+
+ modifier = {
+ factor = 2
+ has_government = democratic
+ }
+ }
+ }
+ }
diff --git a/data/configurables/IdeologicalIdeas/fascism.txt b/data/configurables/IdeologicalIdeas/fascism.txt
new file mode 100644
index 0000000000..197debbefb
--- /dev/null
+++ b/data/configurables/IdeologicalIdeas/fascism.txt
@@ -0,0 +1,201 @@
+ country = {
+ fascism_banned = {
+
+ picture = generic_fascism_banned
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ NOT = {
+ has_government = fascism
+ }
+ }
+
+ modifier = {
+ fascism_drift = -0.05
+ }
+ }
+
+ fascist_influence = {
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = fascism
+ }
+
+ removal_cost = -1
+
+ picture = generic_fascism_drift_bonus
+
+ modifier = {
+ fascism_drift = 0.1
+ fascism_acceptance = 85
+ }
+ }
+
+ #Weaker version
+ fascist_influence_weak = {
+ name = fascist_influence
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = fascism
+ }
+
+ removal_cost = -1
+
+ picture = generic_fascism_drift_bonus
+
+ modifier = {
+ fascism_drift = 0.1
+ fascism_acceptance = 35
+ }
+ }
+
+ nationalism = {
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = fascism
+ }
+
+ removal_cost = -1
+
+ picture = generic_infantry_bonus
+
+
+ modifier = {
+ fascism_drift = 0.1
+ }
+ }
+
+ fascist_assault_divisions = {
+
+ allowed = {
+ always = no # Triggered via event
+ }
+
+ picture = generic_fascism_drift_bonus
+
+ modifier = {
+ stability_factor = -0.05
+ conscription = 0.002
+ fascism_drift = 0.05
+ }
+
+ ai_will_do = {
+ factor = 0
+ }
+ }
+
+ fascism_revolutionaries = {
+
+ removal_cost = -1
+
+ allowed = {
+ always = no # Triggered via event
+ }
+
+ picture = generic_fascism_drift_bonus
+
+ modifier = {
+ stability_factor = -0.1
+ }
+ }
+
+ fascism_partisans_recruiting = {
+
+ allowed = {
+ always = no # Triggered via event
+ }
+
+ picture = generic_communism_drift_bonus
+
+ modifier = {
+ conscription = -0.002
+ fascism_drift = 0.05
+ }
+
+ ai_will_do = {
+ factor = 0
+ }
+ }
+
+ militarism_focus = {
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = fascism
+ }
+
+ removal_cost = -1
+
+ picture = generic_manpower_bonus
+
+ modifier = {
+ conscription = 0.05
+ resistance_damage_to_garrison = -0.1
+ }
+ }
+
+ paramilitary_training = {
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = fascism
+ }
+
+ removal_cost = -1
+
+ picture = generic_fascism_drift_bonus
+
+ modifier = {
+ fascism_drift = 0.1
+ experience_gain_army = 0.1
+ }
+ }
+ }
+
+ academy_spirit = {
+ political_loyalty_spirit_fasc = {
+ ledger = army
+ picture = political_loyalty_spirit
+ visible = {
+ has_government = fascism
+ }
+ modifier = {
+ military_leader_cost_factor = -0.5
+ party_popularity_stability_factor = 0.15
+ custom_modifier_tooltip = political_loyalty_spirit_tt
+ }
+ ai_will_do = {
+ base = 1
+
+ modifier = {
+ factor = 0
+ NOT = { has_dlc = "No Step Back" }
+ }
+
+ modifier = {
+ factor = 2
+ has_government = fascism
+ }
+ }
+ }
+ }
diff --git a/data/configurables/IdeologicalIdeas/neutrality.txt b/data/configurables/IdeologicalIdeas/neutrality.txt
new file mode 100644
index 0000000000..9c09ad0967
--- /dev/null
+++ b/data/configurables/IdeologicalIdeas/neutrality.txt
@@ -0,0 +1,68 @@
+ country = {
+ collectivist_ethos_focus_neutral = {
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ AND = {
+ NOT = { has_government = democratic }
+ NOT = { has_government = neutrality }
+ }
+ }
+
+ removal_cost = -1
+
+ picture = generic_pp_unity_bonus
+
+ modifier = {
+ neutrality_drift = -0.02
+ }
+ }
+
+ liberty_ethos_focus_neutral = {
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = democratic
+ }
+
+ removal_cost = -1
+
+ picture = generic_democratic_drift_bonus
+
+ modifier = {
+ trade_opinion_factor = 0.2
+ }
+ }
+ }
+
+ academy_spirit = {
+ political_loyalty_spirit = {
+ ledger = army
+ visible = {
+ has_government = neutrality
+ }
+ modifier = {
+ military_leader_cost_factor = -0.5
+ party_popularity_stability_factor = 0.15
+ custom_modifier_tooltip = political_loyalty_spirit_tt
+ }
+ ai_will_do = {
+ base = 1
+
+ modifier = {
+ factor = 0
+ NOT = { has_dlc = "No Step Back" }
+ }
+
+ modifier = {
+ factor = 2
+ has_government = neutrality
+ }
+ }
+ }
+ }
diff --git a/data/configurables/IdeologicalIdeas/radical.txt b/data/configurables/IdeologicalIdeas/radical.txt
new file mode 100644
index 0000000000..8b73575844
--- /dev/null
+++ b/data/configurables/IdeologicalIdeas/radical.txt
@@ -0,0 +1,160 @@
+ country = {
+ radical_defeated = {
+ removal_cost = -1
+
+ allowed = {
+ always = no # Triggered via event
+ }
+
+ picture = generic_democratic_drift_bonus
+
+ modifier = {
+ stability_factor = 0.1
+ }
+ }
+
+ radical_influence = {
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = radical
+ }
+
+ removal_cost = -1
+
+ picture = generic_democratic_drift_bonus
+
+ modifier = {
+ radical_drift = 0.1
+ radical_acceptance = 85
+ }
+ }
+
+ radicalism = {
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = radical
+ }
+
+ removal_cost = -1
+
+ picture = generic_infantry_bonus
+
+ modifier = {
+ radical_drift = 0.1
+ }
+ }
+
+ radical_revolutionaries = {
+
+ removal_cost = -1
+
+ allowed = {
+ always = no # Triggered via event
+ }
+
+ picture = generic_fascism_drift_bonus
+
+ modifier = {
+ stability_factor = -0.1
+ }
+ }
+
+ radical_partisans_recruiting = {
+
+ allowed = {
+ always = no # Triggered via event
+ }
+
+ picture = generic_communism_drift_bonus
+
+ modifier = {
+ conscription = -0.002
+ radical_drift = 0.05
+ }
+
+ ai_will_do = {
+ factor = 0
+ }
+ }
+
+ private_channels_focus = {
+
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = radical
+ }
+
+ removal_cost = -1
+
+ picture = can_wartime_prices_and_trade_board
+
+ modifier = {
+ trade_opinion_factor = 0.2
+ }
+ }
+
+ hardfought_market_focus = {
+
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = radical
+ }
+
+ removal_cost = -1
+
+ picture = generic_license_production
+
+ modifier = {
+ production_factory_max_efficiency_factor = 0.05
+ }
+ }
+
+ army_provides_focus = {
+
+
+ allowed = {
+ always = no
+ }
+
+ allowed_civil_war = {
+ has_government = radical
+ }
+
+ removal_cost = -1
+
+ picture = generic_manpower_bonus
+
+ modifier = {
+ conscription = 0.025
+ }
+ }
+
+ committee_of_public_safety = {
+ allowed = {
+ always = no
+ }
+ allowed_civil_war = {
+ has_government = radical
+ }
+ removal_cost = -1
+ picture = generic_communism_drift_bonus
+ modifier = {
+ radical_drift = 0.1
+ research_speed_factor = 0.035
+ }
+ }
+ }
diff --git a/data/configurables/IntelligenceAgencyLogos.txt b/data/configurables/IntelligenceAgencyLogos.txt
index ce7c5d8602..8d82c3a0bd 100644
--- a/data/configurables/IntelligenceAgencyLogos.txt
+++ b/data/configurables/IntelligenceAgencyLogos.txt
@@ -24,13 +24,14 @@ link = { culture = polish logo = GFX_intelligence_agency_logo_pol }
link = { culture = manchu logo = GFX_intelligence_agency_logo_man }
link = { culture = portuguese logo = GFX_intelligence_agency_logo_por }
link = { culture = finnish logo = GFX_intelligence_agency_logo_fin }
+link = { culture = danish logo = GFX_intelligence_agency_logo_DEN_sipo }
+link = { culture = icelandic logo = GFX_intelligence_agency_logo_ICE_logreglan }
# From CSRZ's mod 2017272267
link = { culture = platinean logo = GFX_intelligence_agency_logo_arg }
link = { culture = australian logo = GFX_intelligence_agency_logo_ast }
link = { culture = brazilian logo = GFX_intelligence_agency_logo_bra }
link = { culture = anglo_canadian logo = GFX_intelligence_agency_logo_can }
link = { culture = czech logo = GFX_intelligence_agency_logo_cze }
-link = { culture = danish logo = GFX_intelligence_agency_logo_den }
link = { culture = greek logo = GFX_intelligence_agency_logo_gre }
link = { culture = hungarian logo = GFX_intelligence_agency_logo_hun }
link = { culture = south_german logo = GFX_intelligence_agency_logo_hun_empire }
diff --git a/data/configurables/Map/regions.txt b/data/configurables/Map/regions.txt
index c142a669ac..5e8a7fbcca 100644
--- a/data/configurables/Map/regions.txt
+++ b/data/configurables/Map/regions.txt
@@ -262,7 +262,7 @@ britain = {
6289 6313 6405 7394 9284 9310 9405 11237 11267 11334
# Sc. Highlands
- 131 159 200 3150 3159 3178 6046 6062 6104 6196 6205 6300 9075 9090 9161 11055 11064 11136 11161 11207 11266 11306
+ 131 159 200 3150 3159 3178 6046 6062 6104 6196 6205 6300 9075 9090 9161 11055 11064 11136 11161 11207 11266 11306 13269 13270
# Sc. Lowlands
284 3273 3373 6320 6350 6385 6395 9237 9314 9350 9383 9392 11218 11378
@@ -299,7 +299,7 @@ scandinavia = {
blocked = { europe }
provinces = {
# Iceland & Greenland
- 10245 10636 12512 13058 13066 4861 12674 12689
+ 10245 10636 12512 13058 13066 4861 12674 12689 13266 13267 13268 13271 13272
# Faroe
13003
@@ -320,7 +320,7 @@ scandinavia = {
35 69 77 114 147 156 161 3005 3070 3106 3128 3141 3148 3182 6028 6050 6084 6093 6123 6127 6147 6164 6188 6195 6209 6311 6397 9054 9068 9109 9138 9148 9149 9173 9182 9185 9193 9209 9218 9308 9393 11044 11053 11070 11082 11114 11163 11188 11197 11278 11289 11380
# Götaland
- 171 211 242 295 299 329 363 383 3063 3229 3286 3307 3375 3386 6120 6148 6310 6331 6345 6406 6412 9251 9279 9300 9329 9362 9406 9410 11160 11215 11231 11280 11311 11327 11376 11390 408 6258
+ 171 211 242 295 299 329 363 383 3063 3229 3286 3307 3375 3386 6120 6148 6310 6331 6345 6406 6412 9251 9279 9300 9329 9362 9406 9410 11160 11215 11231 11280 11311 11327 11376 11390 408 6258 13095 13264 13265
# Northern Finland
7 30 37 52 82 103 120 124 132 136 139 141 158 162 165 167 193 195 197 203 2992 3013 3026 3030 3055 3068 3069 3073 3097 3107 3115 3125 3131 3149 3153 3156 3158 3185 3193 6012 6033 6045 6061 6076 6078 6081 6087 6128 6134 6137 6142 6146 6156 6179 6183 6210 6212 9056 9061 9073 9104 9106 9112 9140 9163 9169 9181 9189 9223 9233 11024 11030 11041 11043 11076 11079 11081 11085 11115 11121 11125 11130 11132 11138 11141 11142 11164 11167 11199 11204 11210
@@ -332,10 +332,10 @@ scandinavia = {
9228
# Jylland
- 316 394 399 3206 3277 3341 6235 6364
+ 316 394 399 3206 3277 3341 6235 6364 13259 13262 13263
# Sjaelland
- 3260 3305 3325 3374 6287 6361 6393
+ 3260 3305 3325 3374 6287 6361 6393 13260 13261
}
}
baltic = {
@@ -508,7 +508,7 @@ germany = {
blocked = { europe }
provinces = {
# Schleswig-Holstein
- 317 332 3231 6257 6389 9320 11251 11331 11366
+ 317 332 3231 6257 6389 9320 11251 11331 11366 13258
# Alsace-Lorraine
549 678 1346 3629 6529 9503 9559 11502
@@ -523,7 +523,7 @@ germany = {
526 564 6513 6549 9375 9524 11402 11445 11468 11493
# Pommern
- 268 293 321 349 3258 3340 6282 6309 6334 6390 9277 9294 9306 9334 9361 9388 11276 11305 11316 11343 11372
+ 268 293 321 349 3258 3340 6282 6309 6334 6390 9277 9294 9306 9334 9361 9388 11276 11305 11316 11343 11372 13257
# Brandenburg
375 444 478 537 3207 3312 3367 3473 3499 3572 6236 6441 6521 9387 9428 9496 11219 11415 11444 11478 11505
diff --git a/data/configurables/Scorers/generic_platonic_scorers.txt b/data/configurables/Scorers/generic_platonic_scorers.txt
new file mode 100644
index 0000000000..b0ceb66844
--- /dev/null
+++ b/data/configurables/Scorers/generic_platonic_scorers.txt
@@ -0,0 +1,458 @@
+$IDEOLOGY_major_scorer = {
+ # Valid example of mission scorer:
+ targets = {
+ # describe the target to consider
+ targets_dynamic = no
+ target_non_existing = no
+ #target_array = global.majors
+ target_array = global.countries
+ # MTTH like score description
+ # THIS is a target
+ # FROM is the initiator
+ score = {
+ base = 1
+ # Add tension added by country
+ modifier = {
+ always = yes
+ add = has_added_tension_amount
+ }
+ # Add total number of Divisions
+ modifier = {
+ always = yes
+ add = num_armies
+ }
+ # add factories
+ modifier = {
+ always = yes
+ add = num_of_factories
+ }
+ modifier = {
+ is_major = yes
+ add = 100
+ }
+ modifier = {
+ is_faction_leader = yes
+ add = 50
+ }
+ modifier = {
+ NOT = { has_government = $IDEOLOGY }
+ factor = 0
+ }
+ modifier = {
+ exists = no
+ factor = 0
+ }
+ }
+ }
+}
+
+local_$IDEOLOGY_country = {
+ # Valid example of mission scorer:
+ targets = {
+ # describe the target to consider
+ targets_dynamic = no
+ target_non_existing = no
+ #target_array = global.majors
+ target_array = global.countries
+ # MTTH like score description
+ # THIS is a target
+ # FROM is the initiator
+ score = {
+ base = 1
+
+ modifier = {
+ is_major = yes
+ factor = 10
+ }
+ # Add tension added by country
+ modifier = {
+ always = yes
+ add = has_added_tension_amount
+ }
+ # Add total number of Divisions
+ modifier = {
+ always = yes
+ add = num_armies
+ }
+ # Same continent also more scary
+ modifier = {
+ OR = {
+ AND = {
+ THIS.capital_scope = { is_on_continent = europe }
+ FROM.capital_scope = { is_on_continent = europe }
+ }
+ AND = {
+ THIS.capital_scope = { is_on_continent = asia }
+ FROM.capital_scope = { is_on_continent = asia }
+ }
+ AND = {
+ OR = {
+ THIS.capital_scope = { is_on_continent = north_america }
+ THIS.capital_scope = { is_on_continent = south_america }
+ }
+ OR = {
+ FROM.capital_scope = { is_on_continent = north_america }
+ FROM.capital_scope = { is_on_continent = south_america }
+ }
+ }
+ AND = {
+ THIS.capital_scope = { is_on_continent = africa }
+ FROM.capital_scope = { is_on_continent = africa }
+ }
+ AND = {
+ THIS.capital_scope = { is_on_continent = middle_east }
+ FROM.capital_scope = { is_on_continent = middle_east }
+ }
+ AND = {
+ OR = {
+ THIS.capital_scope = { is_on_continent = australia }
+ THIS.capital_scope = { is_on_continent = asia }
+ }
+ FROM.capital_scope = { is_on_continent = australia }
+ }
+ }
+ factor = 3
+ }
+ modifier = {
+ add = num_armies
+ }
+ # add factories
+ modifier = {
+ always = yes
+ add = num_of_factories
+ }
+ modifier = {
+ NOT = { has_government = $IDEOLOGY }
+ factor = 0
+ }
+ }
+ }
+}
+
+$IDEOLOGY_bully_scorer = {
+ # Valid example of mission scorer:
+ targets = {
+ # describe the target to consider
+ targets_dynamic = no
+ target_non_existing = no
+ #target_array = global.majors
+ target_array = global.countries
+ # MTTH like score description
+ # THIS is a target
+ # FROM is the initiator
+ score = {
+ base = 1
+ # Add tension added by country
+ # Add total number of Divisions
+ modifier = {
+ always = yes
+ add = num_armies
+ }
+ # add factories
+ modifier = {
+ always = yes
+ add = num_of_factories
+ }
+ modifier = {
+ always = yes
+ add = has_added_tension_amount
+ }
+ modifier = {
+ is_major = yes
+ add = 100
+ }
+ modifier = {
+ is_faction_leader = yes
+ add = 100
+ }
+ modifier = {
+ NOT = { has_government = $IDEOLOGY }
+ factor = 0
+ }
+ }
+ }
+}
+
+$IDEOLOGY_faction_leader_scorer = {
+ targets = {
+ # describe the target to consider
+ targets_dynamic = no
+ target_non_existing = no
+ #target_array = global.majors
+ target_array = global.countries
+ # MTTH like score description
+ # THIS is a target
+ # FROM is the initiator
+ score = {
+ base = 1
+ # Add tension added by country
+ modifier = {
+ always = yes
+ add = has_added_tension_amount
+ }
+ # Add total number of Divisions
+ modifier = {
+ always = yes
+ add = num_armies
+ }
+ # add factories
+ modifier = {
+ always = yes
+ add = num_of_factories
+ }
+ modifier = {
+ is_major = yes
+ add = 100
+ }
+ modifier = {
+ is_faction_leader = no
+ factor = 0.1
+ }
+ modifier = {
+ NOT = { has_government = $IDEOLOGY }
+ factor = 0
+ }
+ }
+ }
+}
+
+$IDEOLOGY_sleeping_giant_scorer = {
+ targets = {
+ # describe the target to consider
+ targets_dynamic = no
+ target_non_existing = no
+ #target_array = global.majors
+ target_array = global.countries
+ # MTTH like score description
+ # THIS is a target
+ # FROM is the initiator
+ score = {
+ base = 1
+ # Add tension added by country
+ # Add total number of Divisions
+ # add factories
+ modifier = {
+ always = yes
+ add = num_of_factories
+ }
+ modifier = {
+ always = yes
+ add = -num_armies
+ }
+ modifier = {
+ always = yes
+ add = -has_added_tension_amount
+ }
+ modifier = {
+ is_major = yes
+ add = 30
+ }
+ modifier = {
+ is_faction_leader = yes
+ factor = 0.5
+ }
+ modifier = {
+ NOT = { has_government = $IDEOLOGY }
+ factor = 0
+ }
+ }
+ }
+}
+
+european_$IDEOLOGY_major_scorer = {
+ # Valid example of mission scorer:
+ targets = {
+ # describe the target to consider
+ targets_dynamic = no
+ target_non_existing = no
+ #target_array = global.majors
+ target_array = global.countries
+ # MTTH like score description
+ # THIS is a target
+ # FROM is the initiator
+ score = {
+ base = 1
+ # Add tension added by country
+ modifier = {
+ always = yes
+ add = has_added_tension_amount
+ }
+ # Add total number of Divisions
+ modifier = {
+ always = yes
+ add = num_armies
+ }
+ # add factories
+ modifier = {
+ always = yes
+ add = num_of_factories
+ }
+ modifier = {
+ is_major = yes
+ add = 100
+ }
+ modifier = {
+ is_faction_leader = yes
+ add = 50
+ }
+ modifier = {
+ NOT = { has_government = $IDEOLOGY }
+ factor = 0
+ }
+ modifier = {
+ NOT = { THIS.capital_scope = { is_on_continent = europe } }
+ }
+ }
+ }
+}
+
+asian_$IDEOLOGY_major_scorer = {
+ # Valid example of mission scorer:
+ targets = {
+ # describe the target to consider
+ targets_dynamic = no
+ target_non_existing = no
+ #target_array = global.majors
+ target_array = global.countries
+ # MTTH like score description
+ # THIS is a target
+ # FROM is the initiator
+ score = {
+ base = 1
+ # Add tension added by country
+ modifier = {
+ always = yes
+ add = has_added_tension_amount
+ }
+ # Add total number of Divisions
+ modifier = {
+ always = yes
+ add = num_armies
+ }
+ # add factories
+ modifier = {
+ always = yes
+ add = num_of_factories
+ }
+ modifier = {
+ is_major = yes
+ add = 100
+ }
+ modifier = {
+ is_faction_leader = yes
+ add = 50
+ }
+ modifier = {
+ NOT = { has_government = $IDEOLOGY }
+ factor = 0
+ }
+ modifier = {
+ OR = {
+ NOT = { THIS.capital_scope = { is_on_continent = asia } }
+ NOT = { THIS.capital_scope = { is_on_continent = australia } }
+ NOT = { THIS.capital_scope = { is_on_continent = middle_east } }
+ }
+ factor = 0
+ }
+ }
+ }
+}
+
+american_$IDEOLOGY_major_scorer = {
+ # Valid example of mission scorer:
+ targets = {
+ # describe the target to consider
+ targets_dynamic = no
+ target_non_existing = no
+ #target_array = global.majors
+ target_array = global.countries
+ # MTTH like score description
+ # THIS is a target
+ # FROM is the initiator
+ score = {
+ base = 1
+ # Add tension added by country
+ modifier = {
+ always = yes
+ add = has_added_tension_amount
+ }
+ # Add total number of Divisions
+ modifier = {
+ always = yes
+ add = num_armies
+ }
+ # add factories
+ modifier = {
+ always = yes
+ add = num_of_factories
+ }
+ modifier = {
+ is_major = yes
+ add = 100
+ }
+ modifier = {
+ is_faction_leader = yes
+ add = 50
+ }
+ modifier = {
+ NOT = { has_government = $IDEOLOGY }
+ factor = 0
+ }
+ modifier = {
+ OR = {
+ NOT = { THIS.capital_scope = { is_on_continent = south_america } }
+ NOT = { THIS.capital_scope = { is_on_continent = north_america } }
+ }
+ factor = 0
+ }
+ }
+ }
+}
+
+african_$IDEOLOGY_major_scorer = {
+ # Valid example of mission scorer:
+ targets = {
+ # describe the target to consider
+ targets_dynamic = no
+ target_non_existing = no
+ #target_array = global.majors
+ target_array = global.countries
+ # MTTH like score description
+ # THIS is a target
+ # FROM is the initiator
+ score = {
+ base = 1
+ # Add tension added by country
+ modifier = {
+ always = yes
+ add = has_added_tension_amount
+ }
+ # Add total number of Divisions
+ modifier = {
+ always = yes
+ add = num_armies
+ }
+ # add factories
+ modifier = {
+ always = yes
+ add = num_of_factories
+ }
+ modifier = {
+ is_major = yes
+ add = 100
+ }
+ modifier = {
+ is_faction_leader = yes
+ add = 50
+ }
+ modifier = {
+ NOT = { has_government = $IDEOLOGY }
+ factor = 0
+ }
+ modifier = {
+ NOT = { THIS.capital_scope = { is_on_continent = africa } }
+ }
+ }
+ }
+}
+
diff --git a/data/configurables/converterIdeologies.txt b/data/configurables/converterIdeologies.txt
index 0d8177b958..e927ba1a0d 100644
--- a/data/configurables/converterIdeologies.txt
+++ b/data/configurables/converterIdeologies.txt
@@ -168,7 +168,7 @@ ideologies = {
#increased_influence_factor = 0.3 #30% easier to influence
generate_wargoal_tension = 0.5
join_faction_tension = 0.4
- lend_lease_tension = 0.4
+ lend_lease_tension = 0.6
send_volunteers_tension = 0.4
guarantee_tension = 0.4
drift_defence_factor = -0.3
diff --git a/data/configurables/converterLeaderTraits.txt b/data/configurables/converterLeaderTraits.txt
index c02a4ba942..290334ad01 100644
--- a/data/configurables/converterLeaderTraits.txt
+++ b/data/configurables/converterLeaderTraits.txt
@@ -78,6 +78,22 @@ democratic = {
factor = 1
}
}
+
+ elected_regency_council_pro_allies = { #Regency Council (pro allies)
+ name = elected_regency_council
+
+ random = no
+ political_power_factor = 0.05
+ stability_factor = 0.1
+ political_advisor_cost_factor = -0.1
+ democratic_acceptance = 50
+ }
+
+ democratic_firebrand = {
+ random = no
+ democratic_drift = 0.10
+ conscription_factor = 0.1
+ }
}
fascism = {
@@ -105,4 +121,15 @@ fascism = {
fascism_drift = 0.1
drift_defence_factor = 0.15
}
+
+ #PRINCE WOLFGANG VON HESSE
+ crown_prince_of_finland = {
+ random = no
+ custom_modifier_tooltip = FIN_crown_prince_of_finland_tt
+ fascism_acceptance = 75
+ political_power_factor = 0.1
+ stability_factor = 0.05
+ neutrality_drift = 0.1
+ conscription = 0.025
+ }
}
\ No newline at end of file
diff --git a/data/configurables/cultureGroupToGraphics.txt b/data/configurables/cultureGroupToGraphics.txt
index 4eea594775..be6aecf37a 100644
--- a/data/configurables/cultureGroupToGraphics.txt
+++ b/data/configurables/cultureGroupToGraphics.txt
@@ -646,7 +646,7 @@ nordic_uralic = {
democratic = {
"gfx/leaders/Europe/portrait_europe_generic_5.dds"
"gfx/leaders/FIN/Portrait_Finland_Risto_Heikki_Ryti.dds"
- "gfx/leaders/NOR/Portrait_Norway_Johan_Nygaardsvold.dds"
+ "gfx/leaders/NOR/portrait_NOR_johan_nygaardsvold.dds"
"gfx/leaders/EST/portrait_est_konstantin_pats.dds"
GFX_Estonia_Jaan_Tonisson
}
diff --git a/data/configurables/ideologicalIdeas.txt b/data/configurables/ideologicalIdeas.txt
deleted file mode 100644
index d7d289fd53..0000000000
--- a/data/configurables/ideologicalIdeas.txt
+++ /dev/null
@@ -1,826 +0,0 @@
-fascism = {
- fascism_banned = {
-
- picture = generic_fascism_banned
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- NOT = {
- has_government = fascism
- }
- }
-
- modifier = {
- fascism_drift = -0.05
- }
- }
-
- fascist_influence = {
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = fascism
- }
-
- removal_cost = -1
-
- picture = generic_fascism_drift_bonus
-
- modifier = {
- fascism_drift = 0.1
- fascism_acceptance = 85
- }
- }
-
- #Weaker version
- fascist_influence_weak = {
- name = fascist_influence
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = fascism
- }
-
- removal_cost = -1
-
- picture = generic_fascism_drift_bonus
-
- modifier = {
- fascism_drift = 0.1
- fascism_acceptance = 35
- }
- }
-
- nationalism = {
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = fascism
- }
-
- removal_cost = -1
-
- picture = generic_infantry_bonus
-
-
- modifier = {
- fascism_drift = 0.1
- }
- }
-
- fascist_assault_divisions = {
-
- allowed = {
- always = no # Triggered via event
- }
-
- picture = generic_fascism_drift_bonus
-
- modifier = {
- stability_factor = -0.05
- conscription = 0.002
- fascism_drift = 0.05
- }
-
- ai_will_do = {
- factor = 0
- }
- }
-
- fascism_revolutionaries = {
-
- removal_cost = -1
-
- allowed = {
- always = no # Triggered via event
- }
-
- picture = generic_fascism_drift_bonus
-
- modifier = {
- stability_factor = -0.1
- }
- }
-
- fascism_partisans_recruiting = {
-
- allowed = {
- always = no # Triggered via event
- }
-
- picture = generic_communism_drift_bonus
-
- modifier = {
- conscription = -0.002
- fascism_drift = 0.05
- }
-
- ai_will_do = {
- factor = 0
- }
- }
-
- militarism_focus = {
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = fascism
- }
-
- removal_cost = -1
-
- picture = generic_manpower_bonus
-
- modifier = {
- conscription = 0.05
- resistance_damage_to_garrison = -0.1
- }
- }
-
- paramilitary_training = {
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = fascism
- }
-
- removal_cost = -1
-
- picture = generic_fascism_drift_bonus
-
- modifier = {
- fascism_drift = 0.1
- experience_gain_army = 0.1
- }
- }
-}
-
-communism = {
- communism_banned = {
- picture = anti_soviet_pact
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- NOT = {
- has_government = communism
- }
- }
-
- modifier = {
- communism_drift = -0.05
- }
- }
-
- communist_pressure = {
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = communism
- }
-
- removal_cost = -1
-
- picture = generic_communism_drift_bonus
-
- modifier = {
- communism_drift = 0.1
- }
- }
-
- communist_influence = {
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = communism
- }
-
- removal_cost = -1
-
- picture = generic_communism_drift_bonus
-
- modifier = {
- communism_drift = 0.1
- communism_acceptance = 85
- }
- }
-
- communist_influence_weak = {
- name = communist_influence
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = communism
- }
-
- removal_cost = -1
-
- picture = generic_communism_drift_bonus
-
- modifier = {
- communism_drift = 0.1
- communism_acceptance = 35
- }
- }
-
- internationalism = {
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = communism
- }
-
- removal_cost = -1
-
- picture = generic_intel_bonus
-
- modifier = {
- #justify_war_goal_time = -0.25
- communism_drift = 0.1
- }
- }
-
- communism_partisans_recruiting = {
-
- allowed = {
- always = no # Triggered via event
- }
-
- picture = generic_communism_drift_bonus
-
- modifier = {
- conscription = -0.002
- communism_drift = 0.05
- }
-
- ai_will_do = {
- factor = 0
- }
- }
-
- communism_revolutionaries = {
-
- removal_cost = -1
-
- allowed = {
- always = no # Triggered via event
- }
-
- picture = generic_fascism_drift_bonus
-
- modifier = {
- stability_factor = -0.1
- }
- }
-
- political_commissars_focus = {
-
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = communism
- }
-
- removal_cost = -1
-
- picture = generic_morale_bonus
-
- modifier = {
- army_morale_factor = 0.1
- }
- }
-
- socialist_education = {
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = communism
- }
-
- removal_cost = -1
-
- picture = generic_communism_drift_bonus
-
- modifier = {
- communism_drift = 0.1
- research_speed_factor = 0.035
- }
- }
-}
-
-democratic = {
- collectivist_ethos_focus_democratic = {
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- AND = {
- NOT = { has_government = democratic }
- NOT = { has_government = neutrality }
- }
- }
-
- removal_cost = -1
-
- picture = generic_pp_unity_bonus
-
- modifier = {
- democratic_drift = -0.02
- }
- }
-
- democratic_influence = {
-
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = democratic
- }
-
- removal_cost = -1
-
- picture = generic_democratic_drift_bonus
-
- modifier = {
- democratic_drift = 0.1
- democratic_acceptance = 85
- }
- }
-
- democratic_influence_weak = {
- name = democratic_influence
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = democratic
- }
-
- removal_cost = -1
-
- picture = generic_democratic_drift_bonus
-
- modifier = {
- democratic_drift = 0.1
- democratic_acceptance = 35
- }
- }
-
- democratic_opposition_voicing_protests = {
-
- allowed = {
- always = no # Triggered via event
- }
-
- picture = generic_democratic_drift_bonus
-
- modifier = {
- political_power_factor = -0.2
- democratic_drift = 0.05
- }
-
- ai_will_do = {
- factor = 0
- }
- }
-
- liberty_ethos_focus = {
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = democratic
- }
-
- removal_cost = -1
-
- picture = generic_democratic_drift_bonus
-
- modifier = {
- trade_opinion_factor = 0.2
- }
- }
-
- nation_building = {
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = democratic
- }
-
- removal_cost = -1
-
- picture = generic_democratic_drift_bonus
-
- modifier = {
- democratic_drift = 0.1
- stability_factor = 0.1
- }
- }
-}
-
-absolutist = {
- royal_dictatorship_focus = {
-
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = absolutist
- }
-
- removal_cost = -1
-
- picture = generic_intel_bonus
-
- modifier = {
- drift_defence_factor = 0.2
- }
- }
-
- historical_claims_focus = {
-
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = absolutist
- }
-
- removal_cost = -1
-
- picture = Generic_constitutional_guarantee
-
- modifier = {
- justify_war_goal_time = -0.5
- }
- }
- absolutist_defeated = {
- removal_cost = -1
-
- allowed = {
- always = no # Triggered via event
- }
-
- picture = generic_democratic_drift_bonus
-
- modifier = {
- stability_factor = 0.1
- }
- }
-
- absolutist_influence = {
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = absolutist
- }
-
- removal_cost = -1
-
- picture = generic_democratic_drift_bonus
-
- modifier = {
- absolutist_drift = 0.1
- absolutist_acceptance = 85
- }
- }
-
- absolutism = {
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = absolutist
- }
-
- removal_cost = -1
-
- picture = generic_infantry_bonus
-
-
- modifier = {
- absolutist_drift = 0.1
- }
- }
-
- absolutist_revolutionaries = {
-
- removal_cost = -1
-
- allowed = {
- always = no # Triggered via event
- }
-
- picture = generic_fascism_drift_bonus
-
- modifier = {
- stability_factor = -0.1
- }
- }
-
- absolutist_partisans_recruiting = {
-
- allowed = {
- always = no # Triggered via event
- }
-
- picture = generic_communism_drift_bonus
-
- modifier = {
- conscription = -0.002
- absolutist_drift = 0.05
- }
-
- ai_will_do = {
- factor = 0
- }
- }
-
- militarism_focus_absolutist = {
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = fascism
- }
-
- removal_cost = -1
-
- picture = generic_manpower_bonus
-
- modifier = {
- conscription = 0.05
- resistance_damage_to_garrison = -0.1
- }
- }
-
- absolutist_military_parade = {
- allowed = {
- always = no
- }
- allowed_civil_war = {
- has_government = absolutist
- }
- removal_cost = -1
- picture = generic_pp_unity_bonus
- modifier = {
- absolutist_drift = 0.1
- mobilization_speed = 0.15
- }
- }
-}
-
-radical = {
- radical_defeated = {
- removal_cost = -1
-
- allowed = {
- always = no # Triggered via event
- }
-
- picture = generic_democratic_drift_bonus
-
- modifier = {
- stability_factor = 0.1
- }
- }
-
- radical_influence = {
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = radical
- }
-
- removal_cost = -1
-
- picture = generic_democratic_drift_bonus
-
- modifier = {
- radical_drift = 0.1
- radical_acceptance = 85
- }
- }
-
- radicalism = {
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = radical
- }
-
- removal_cost = -1
-
- picture = generic_infantry_bonus
-
- modifier = {
- radical_drift = 0.1
- }
- }
-
- radical_revolutionaries = {
-
- removal_cost = -1
-
- allowed = {
- always = no # Triggered via event
- }
-
- picture = generic_fascism_drift_bonus
-
- modifier = {
- stability_factor = -0.1
- }
- }
-
- radical_partisans_recruiting = {
-
- allowed = {
- always = no # Triggered via event
- }
-
- picture = generic_communism_drift_bonus
-
- modifier = {
- conscription = -0.002
- radical_drift = 0.05
- }
-
- ai_will_do = {
- factor = 0
- }
- }
-
- private_channels_focus = {
-
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = radical
- }
-
- removal_cost = -1
-
- picture = can_wartime_prices_and_trade_board
-
- modifier = {
- trade_opinion_factor = 0.2
- }
- }
-
- hardfought_market_focus = {
-
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = radical
- }
-
- removal_cost = -1
-
- picture = generic_license_production
-
- modifier = {
- production_factory_max_efficiency_factor = 0.05
- }
- }
-
- army_provides_focus = {
-
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = radical
- }
-
- removal_cost = -1
-
- picture = generic_manpower_bonus
-
- modifier = {
- conscription = 0.025
- }
- }
-
- committee_of_public_safety = {
- allowed = {
- always = no
- }
- allowed_civil_war = {
- has_government = radical
- }
- removal_cost = -1
- picture = generic_communism_drift_bonus
- modifier = {
- radical_drift = 0.1
- research_speed_factor = 0.035
- }
- }
-}
-
-neutrality = {
- collectivist_ethos_focus_neutral = {
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- AND = {
- NOT = { has_government = democratic }
- NOT = { has_government = neutrality }
- }
- }
-
- removal_cost = -1
-
- picture = generic_pp_unity_bonus
-
- modifier = {
- neutrality_drift = -0.02
- }
- }
-
- liberty_ethos_focus_neutral = {
-
- allowed = {
- always = no
- }
-
- allowed_civil_war = {
- has_government = democratic
- }
-
- removal_cost = -1
-
- picture = generic_democratic_drift_bonus
-
- modifier = {
- trade_opinion_factor = 0.2
- }
- }
-}
\ No newline at end of file
diff --git a/data/configurables/names.txt b/data/configurables/names.txt
index d278c8c8d3..652f0189c7 100644
--- a/data/configurables/names.txt
+++ b/data/configurables/names.txt
@@ -1167,7 +1167,7 @@ bomullborgar = {
naval_companies = { Víkingasveinninn }
weapon_companies = { Leiðaföndur }
aircraft_companies = { "Riddaralið Óðins" }
- intelligence_agencies = { "GVMSÍ" }
+ intelligence_agencies = { Lögreglan "GVMSÍ" }
}
bornean = {
female_names = { "Rim" Merenui Metetini Miri Moea Moeata Moerani Mohea Nanihi Nu’utea Orama Poe Pear Poehina Poenui Poerava Puaiti
@@ -1272,7 +1272,7 @@ bundsfoervant = {
naval_companies = { Víkingasveinninn }
weapon_companies = { Leiðaföndur }
aircraft_companies = { "Riddaralið Óðins" }
- intelligence_agencies = { "GVMSÍ" }
+ intelligence_agencies = { Lögreglan "GVMSÍ" }
}
burmese = {
female_names = { "Yaza Dewi" "Atula Thiri" "Khin Myo Sit" "Khin Myat Hset" "Khin Ma Lat" }
@@ -1887,7 +1887,7 @@ danish = {
car_companies = { "Atlas Maskinfabrik AS" }
electronic_companies = { "Bang & Olufsen" }
industry_companies = { "De Forenede Automobilfabriker" }
- intelligence_agencies = { "Politiets Efterretningstjeneste" }
+ intelligence_agencies = { Sikkerhedspolitiet "Politiets Efterretningstjeneste" }
}
deagostinian = {
female_names = { Maria Anna }
@@ -2152,7 +2152,7 @@ elsinorian = {
car_companies = { "Atlas Maskinfabrik AS" }
electronic_companies = { "Bang & Olufsen" }
industry_companies = { "De Forenede Automobilfabriker" }
- intelligence_agencies = { "Politiets Efterretningstjeneste" }
+ intelligence_agencies = { Sikkerhedspolitiet "Politiets Efterretningstjeneste" }
}
english = {
female_names = { Elizabeth Anne }
@@ -2741,7 +2741,7 @@ guldfjallling = {
naval_companies = { Víkingasveinninn }
weapon_companies = { Leiðaföndur }
aircraft_companies = { "Riddaralið Óðins" }
- intelligence_agencies = { "GVMSÍ" }
+ intelligence_agencies = { Lögreglan "GVMSÍ" }
}
guney = {
female_names = { Çiçek Çilen Çiltanesi Özgul Özlem Akgul }
@@ -2977,7 +2977,7 @@ hjartnaaeter = {
naval_companies = { Víkingasveinninn }
weapon_companies = { Leiðaföndur }
aircraft_companies = { "Riddaralið Óðins" }
- intelligence_agencies = { "GVMSÍ" }
+ intelligence_agencies = { Lögreglan "GVMSÍ" }
}
hnedy = {
female_names = { "Marie" "Anna" "Hana" "Božena" "Alžběta" "Marta" }
@@ -3006,7 +3006,7 @@ holmgardr = {
naval_companies = { Víkingasveinninn }
weapon_companies = { Leiðaföndur }
aircraft_companies = { "Riddaralið Óðins" }
- intelligence_agencies = { "GVMSÍ" }
+ intelligence_agencies = { Lögreglan "GVMSÍ" }
}
hopeajokan = {
female_names = { Anna }
@@ -3076,7 +3076,7 @@ hvitrduptling = {
naval_companies = { Víkingasveinninn }
weapon_companies = { Leiðaföndur }
aircraft_companies = { "Riddaralið Óðins" }
- intelligence_agencies = { "GVMSÍ" }
+ intelligence_agencies = { Lögreglan "GVMSÍ" }
}
ibibio = {
female_names = { Adiaba Amaeka Aniekan Ayanti }
@@ -3111,7 +3111,7 @@ icelandic = {
naval_companies = { Víkingasveinninn }
weapon_companies = { Leiðaföndur }
aircraft_companies = { "Riddaralið Óðins" }
- intelligence_agencies = { "GVMSÍ" }
+ intelligence_agencies = { Lögreglan "GVMSÍ" }
}
ifriqi = {
female_names = { Nadiyya Adila Amsha Asiya Faghira Habiba Hanifa Jahaira Kamala Layla Maryam Nafisa Nyawela Parand
@@ -5742,7 +5742,7 @@ raudhskogarling = {
naval_companies = { Víkingasveinninn }
weapon_companies = { Leiðaföndur }
aircraft_companies = { "Riddaralið Óðins" }
- intelligence_agencies = { "GVMSÍ" }
+ intelligence_agencies = { Lögreglan "GVMSÍ" }
}
redwoodian = {
female_names = { Anne Mary }
@@ -5783,7 +5783,7 @@ rollonian = {
naval_companies = { Víkingasveinninn }
weapon_companies = { Leiðaföndur }
aircraft_companies = { "Riddaralið Óðins" }
- intelligence_agencies = { "GVMSÍ" }
+ intelligence_agencies = { Lögreglan "GVMSÍ" }
}
romanian = {
female_names = { Andrea }
@@ -5902,7 +5902,7 @@ sami = {
Tellervo Maija Pirjo Karoliina Pauliina Minna Sari Irmeli Eeva Tiina Laura Elisabet Marika Pirkko Eveliina Tarja Anja Satu Mari Seija Hanna Eila Marita Heidi Sirpa Raija Annika Irene Sisko Jaana Anita Sanna Eija Kirsi
Ilona Marianne Julia Merja Katriina Amanda Ulla Sirkka Paula Kaisa Marketta Terttu Anni Marjaana Tuulia Elisabeth Matilda Elisa Linnea Jenni Helmi Olivia Katja Hilkka Mirjami Heli Aurora Iida Kirsti Raili Emma Mirja
Nina Katri }
- callsigns = { "the Sami" Santa Rudolph }
+ callsigns = { "the Sami" Santa Rudolph Jokkmokk Rovaniemi Torneo Kola Gällivare }
industry_companies = { "Riikkavuloš Industrija" }
electronic_companies = { "Šleaðga Duovdda" }
car_companies = { Vovdna }
@@ -6129,7 +6129,7 @@ silfrvazling = {
naval_companies = { Víkingasveinninn }
weapon_companies = { Leiðaföndur }
aircraft_companies = { "Riddaralið Óðins" }
- intelligence_agencies = { "GVMSÍ" }
+ intelligence_agencies = { Lögreglan "GVMSÍ" }
}
sindi = {
female_names = { Indira }
@@ -6511,7 +6511,7 @@ sydlig = {
naval_companies = { Víkingasveinninn }
weapon_companies = { Leiðaföndur }
aircraft_companies = { "Riddaralið Óðins" }
- intelligence_agencies = { "GVMSÍ" }
+ intelligence_agencies = { Lögreglan "GVMSÍ" }
}
symacom = {
female_names = { Abdosir Arishat Astarte Batnoam Dido Shayna Sophonisba Tamar Adiya Tabua Yapa Ytab Suhaima Huldu Mashah Gamila Asherah Izavel Iezabel Elissa Muttunbaal }
@@ -7192,7 +7192,7 @@ vinlander = {
naval_companies = { Víkingasveinninn }
weapon_companies = { Leiðaföndur }
aircraft_companies = { "Riddaralið Óðins" }
- intelligence_agencies = { "GVMSÍ" }
+ intelligence_agencies = { Lögreglan "GVMSÍ" }
}
virshjuros = {
female_names = { Agnė Aldona Anastasija Aurelija Austėja Birutė Daiva Danutė Donata Edita Elena Elzė Ernesta Gabija Gertrüda Gintarė Ieva Inga Irma Janina Jolanta Julija Kamilė Katrė Kristina Laimutė Lilija Liucija Margarita Marijona
@@ -7242,7 +7242,7 @@ wandernorse = {
car_companies = { "Atlas Maskinfabrik AS" }
electronic_companies = { "Bang & Olufsen" }
industry_companies = { "De Forenede Automobilfabriker" }
- intelligence_agencies = { "Politiets Efterretningstjeneste" }
+ intelligence_agencies = { Sikkerhedspolitiet "Politiets Efterretningstjeneste" }
}
welsh = {
female_names = { Elain }
diff --git a/data/configurables/province_mappings.txt b/data/configurables/province_mappings.txt
index beb90563cf..5e8c6f3661 100644
--- a/data/configurables/province_mappings.txt
+++ b/data/configurables/province_mappings.txt
@@ -1186,9 +1186,9 @@
link = { comment = "* " }
link = { comment = "* ** Eritrea" }
link = { comment = "* * Eritrea" }
- link = { vic2 = 1848 hoi4 = 13250 } # Asmara -> land
+ link = { vic2 = 1848 hoi4 = 13250 } # Asmara -> Asmara
link = { vic2 = 1849 hoi4 = 5047 hoi4 = 5091 hoi4 = 12766 } # Massawa -> Nacfa, Massaua, Asmara
- link = { vic2 = 1850 hoi4 = 12723 hoi4 = 13251 hoi4 = 5017 } # Akordat -> Agordat, land, Cheren
+ link = { vic2 = 1850 hoi4 = 12723 hoi4 = 13251 hoi4 = 5017 } # Akordat -> Agordat, Teseney, Cheren
link = { vic2 = 1851 hoi4 = 8043 } # Assab -> Assab
link = { comment = "* " }
link = { comment = "* ** South Sudan" }
@@ -1203,25 +1203,25 @@
link = { comment = "* * Begemder" }
link = { vic2 = 1852 hoi4 = 1984 } # Gonder -> Gonder
link = { vic2 = 1854 hoi4 = 2040 } # Matamma -> Metema
- link = { vic2 = 1855 hoi4 = 4954 hoi4 = 13242 } # Debre Markos -> Bahir Dar, land
+ link = { vic2 = 1855 hoi4 = 4954 hoi4 = 13242 } # Debre Markos -> Bahir Dar, Debre Markos
link = { vic2 = 3224 hoi4 = 13137 } # Lake Tana -> (Lake)
link = { comment = "* * Tigray" }
- link = { vic2 = 1853 hoi4 = 5097 hoi4 = 13241 } # Debre Tabor -> Dese, land
- link = { vic2 = 1856 hoi4 = 2072 hoi4 = 13238 hoi4 = 13237 } # Aksum -> Mek'ele, land, land
+ link = { vic2 = 1853 hoi4 = 5097 hoi4 = 13241 } # Debre Tabor -> Dese, Debre Tabor
+ link = { vic2 = 1856 hoi4 = 2072 hoi4 = 13238 hoi4 = 13237 } # Aksum -> Mek'ele, Adwa, Aksum
link = { vic2 = 1857 hoi4 = 7944 } # Antalo -> Sok'ot'a
- link = { vic2 = 1858 hoi4 = 5041 hoi4 = 13236 hoi4 = 13240 } # Awsa -> Asayita, land, land
+ link = { vic2 = 1858 hoi4 = 5041 hoi4 = 13236 hoi4 = 13240 } # Awsa -> Asayita, Semera, Asayita
link = { comment = "* * Gibe" }
- link = { vic2 = 1862 hoi4 = 7912 hoi4 = 13245 hoi4 = 13244 } # Bonga -> Gambela, land, land
- link = { vic2 = 1863 hoi4 = 2009 hoi4 = 12856 hoi4 = 13243 } # Asosa -> Asosa, Nekemte, land
- link = { vic2 = 1864 hoi4 = 8062 hoi4 = 8019 hoi4 = 13247 hoi4 = 13246 } # Negele -> Negele Arsi, Sawla, land, land
+ link = { vic2 = 1862 hoi4 = 7912 hoi4 = 13245 hoi4 = 13244 } # Bonga -> Gambela, Mizan, Gambela
+ link = { vic2 = 1863 hoi4 = 2009 hoi4 = 12856 hoi4 = 13243 } # Asosa -> Asosa, Nekemte, Dembidolo
+ link = { vic2 = 1864 hoi4 = 8062 hoi4 = 8019 hoi4 = 13247 hoi4 = 13246 } # Negele -> Negele Arsi, Sawla, Moyale, Awasa
link = { comment = "* * Shewa" }
- link = { vic2 = 1859 hoi4 = 5010 hoi4 = 13239 } # Ankober -> Adis Abeba, land
+ link = { vic2 = 1859 hoi4 = 5010 hoi4 = 13239 } # Ankober -> Adis Abeba, Debre Birhan
link = { vic2 = 1860 hoi4 = 10734 } # Awasa -> Awasa
link = { vic2 = 1861 hoi4 = 8036 } # Aselia -> Adaamaa
link = { comment = "* * Hararghe" }
- link = { vic2 = 1865 hoi4 = 7980 hoi4 = 12714 hoi4 = 13249 } # Harer -> Harar, Jijiga, land
- link = { vic2 = 1866 hoi4 = 13248 hoi4 = 10775 hoi4 = 4995 } # Goba -> land, Robe, Dolo
- link = { vic2 = 1867 hoi4 = 12812 hoi4 = 12757 hoi4 = 13253 } # Werder -> Gode, Degeh Bur, land
+ link = { vic2 = 1865 hoi4 = 7980 hoi4 = 12714 hoi4 = 13249 } # Harer -> Harar, Jijiga, Harar
+ link = { vic2 = 1866 hoi4 = 13248 hoi4 = 10775 hoi4 = 4995 } # Goba -> Robe, Robe, Dolo
+ link = { vic2 = 1867 hoi4 = 12812 hoi4 = 12757 hoi4 = 13253 } # Werder -> Gode, Degeh Bur, Gode
link = { comment = "* " }
link = { comment = "* ** Dijbouti / Somalia" }
link = { comment = "* * North Somaliland" }
@@ -1408,8 +1408,9 @@
link = { vic2 = 2632 hoi4 = 10636 hoi4 = 13066 } # Ammassalik -> Ammassalik, land
link = { comment = "* " }
link = { comment = "* ** Iceland" }
- link = { vic2 = 252 hoi4 = 12674 hoi4 = 4861 hoi4 = 12689 } # Iceland -> Reykjavk, Akureyri, Reyarfjrur
- link = { vic2 = 253 vic2 = 3246 hoi4 = 13003 } # Faroe Islands, Jan Mayen -> Trshavn
+ link = { vic2 = 252 hoi4 = 12674 hoi4 = 4861 hoi4 = 12689 hoi4 = 13268 hoi4 = 13266 hoi4 = 13267 hoi4 = 13271 } # Iceland -> Reykjavk, Akureyri, Reyarfjrur, land, land, land, land
+ link = { vic2 = 3246 hoi4 = 13272 } # Jan Mayen -> land
+ link = { vic2 = 253 hoi4 = 13003 } # Faroe Islands -> Trshavn
link = { comment = "* " }
link = { comment = "* ** Atlantic Islands" }
link = { comment = "* " }
@@ -1556,7 +1557,7 @@
link = { vic2 = 272 hoi4 = 11218 hoi4 = 9350 hoi4 = 9314 hoi4 = 11378 } # Dumfries -> Dumfries, Dalbeattie, Hawick, Dunbar
link = { comment = "* * Highland" }
link = { vic2 = 266 hoi4 = 11136 hoi4 = 200 hoi4 = 11207 hoi4 = 9161 hoi4 = 11055 } # Aberdeen -> Aberdeen, Peterhead, Elgin, Inverness, Aboyne
- link = { vic2 = 267 hoi4 = 9075 hoi4 = 6046 hoi4 = 6104 hoi4 = 3159 hoi4 = 11064 hoi4 = 131 hoi4 = 9090 hoi4 = 6196 hoi4 = 11161 hoi4 = 11266 hoi4 = 6205 hoi4 = 3178 hoi4 = 6062 } # Inverness -> Kingussie, Fort Augustus, Lairg, Alness, Kirkwall, Tongue, Ullapool, Lerwick, Fort William, Tobermory, Gairloch, Portree, Stornoway
+ link = { vic2 = 267 hoi4 = 9075 hoi4 = 6046 hoi4 = 6104 hoi4 = 3159 hoi4 = 11064 hoi4 = 131 hoi4 = 9090 hoi4 = 6196 hoi4 = 11161 hoi4 = 11266 hoi4 = 6205 hoi4 = 3178 hoi4 = 6062 hoi4 = 13269 hoi4 = 13270 } # Inverness -> Kingussie, Fort Augustus, Lairg, Alness, Kirkwall, Tongue, Ullapool, Lerwick, Fort William, Tobermory, Gairloch, Portree, Stornoway, land, land
link = { vic2 = 268 hoi4 = 6300 hoi4 = 3150 hoi4 = 11306 hoi4 = 159 } # Dundee -> Dunfermline, Dundee, Pitlochry, Perth
link = { comment = "* " }
link = { comment = "* ** France" }
@@ -1709,8 +1710,8 @@
link = { comment = "* ** Sweden" }
link = { comment = "* * Malmo" }
link = { vic2 = 331 hoi4 = 6258 hoi4 = 408 } # Gotland -> Hemse, Visby
- link = { vic2 = 332 hoi4 = 299 hoi4 = 329 hoi4 = 6148 hoi4 = 3229 hoi4 = 11390 hoi4 = 211 hoi4 = 363 } # Kalmar -> Kalmar, Torss, Vimmerby, Oskarshamn, Vstervik, Borgholm, Emmaboda
- link = { vic2 = 333 hoi4 = 242 hoi4 = 9329 hoi4 = 9406 hoi4 = 11311 hoi4 = 11280 hoi4 = 9410 hoi4 = 11231 hoi4 = 9251 } # Vxj -> Vxj, Jnkping, Trans, Eksj, Tingsryd, Ljungby, Vrnamo, Gislaved
+ link = { vic2 = 332 hoi4 = 299 hoi4 = 329 hoi4 = 6148 hoi4 = 3229 hoi4 = 11390 hoi4 = 211 hoi4 = 363 hoi4 = 13264 } # Kalmar -> Kalmar, Torss, Vimmerby, Oskarshamn, Vstervik, Borgholm, Emmaboda, land
+ link = { vic2 = 333 hoi4 = 242 hoi4 = 9329 hoi4 = 9406 hoi4 = 11311 hoi4 = 11280 hoi4 = 9410 hoi4 = 11231 hoi4 = 9251 hoi4 = 13265 } # Vxj -> Vxj, Jnkping, Trans, Eksj, Tingsryd, Ljungby, Vrnamo, Gislaved, land
link = { vic2 = 334 hoi4 = 9279 hoi4 = 11376 hoi4 = 6345 hoi4 = 9362 hoi4 = 6412 hoi4 = 3307 } # Malm -> Malm, Ystad, Helsingborg, ngelholm, Halmstad, Varberg
link = { vic2 = 335 hoi4 = 11215 hoi4 = 9300 hoi4 = 6120 hoi4 = 11160 hoi4 = 11327 } # Karlskrona -> Karlskrona, Hssleholm, hus, Kristianstad, Karlshamn
link = { comment = "* * Stockholm" }
@@ -1736,15 +1737,15 @@
link = { comment = "* ** Denmark" }
link = { comment = "* * Flensburg" }
link = { vic2 = 370 hoi4 = 317 hoi4 = 11366 } # Flensburg -> Flensburg, Sylt
- link = { vic2 = 371 hoi4 = 11251 hoi4 = 332 } # Aabenraa -> Kolding, Ribe
+ link = { vic2 = 371 hoi4 = 11251 hoi4 = 332 hoi4 = 13258 } # Aabenraa -> Kolding, Ribe, land
link = { comment = "* * Jylland" }
- link = { vic2 = 366 hoi4 = 6364 } # Aarhus -> Aarhus
+ link = { vic2 = 366 hoi4 = 6364 hoi4 = 13259 } # Aarhus -> Aarhus, land
link = { vic2 = 367 hoi4 = 6235 hoi4 = 3206 hoi4 = 316 hoi4 = 394 } # Aalborg -> Aalborg, Viborg, Thisted, Hjrring
- link = { vic2 = 368 hoi4 = 399 } # Ribe -> Esbjerg
- link = { vic2 = 2557 hoi4 = 3277 hoi4 = 3341 } # Esbjerg -> Horsens, Herning
+ link = { vic2 = 368 hoi4 = 13262 } # Ribe -> land
+ link = { vic2 = 2557 hoi4 = 3277 hoi4 = 3341 hoi4 = 399 hoi4 = 13263 } # Esbjerg -> Horsens, Herning, Esbjerg, land
link = { comment = "* * Sjaelland" }
- link = { vic2 = 372 hoi4 = 6287 hoi4 = 6393 hoi4 = 3260 hoi4 = 3305 } # Copenhagen -> Kbenhavn, Roskilde, Slagelse, Nstved
- link = { vic2 = 373 hoi4 = 3325 hoi4 = 3374 } # Odense -> Odense, Svendborg
+ link = { vic2 = 372 hoi4 = 6287 hoi4 = 6393 hoi4 = 3260 hoi4 = 3305 hoi4 = 13261 } # Copenhagen -> Kbenhavn, Roskilde, Slagelse, Nstved, land
+ link = { vic2 = 373 hoi4 = 3325 hoi4 = 3374 hoi4 = 13260 } # Odense -> Odense, Svendborg, land
link = { vic2 = 374 hoi4 = 6361 } # Bornholm -> Rnne
link = { comment = "* " }
link = { comment = "* ** Germany" }
@@ -1770,7 +1771,7 @@
link = { comment = "* * Pomerania" }
link = { vic2 = 546 hoi4 = 6282 hoi4 = 6390 hoi4 = 6334 hoi4 = 6309 hoi4 = 9334 } # Stettin -> Stettin, Stargard, Swinemnde, Arnswalde, Greifenberg
link = { vic2 = 547 hoi4 = 3340 hoi4 = 349 } # Swinemnde -> Greifswald, Anklam
- link = { vic2 = 548 hoi4 = 9388 } # Stralsund -> Stralsund
+ link = { vic2 = 548 hoi4 = 9388 hoi4 = 13257 } # Stralsund -> Stralsund, land
link = { vic2 = 679 hoi4 = 9361 hoi4 = 9277 hoi4 = 9306 } # Kolberg -> Kolberg, Dramburg, Belgard
link = { vic2 = 680 hoi4 = 11372 hoi4 = 11343 hoi4 = 11316 } # Kslin -> Kslin, Stolp, Lauenburg
link = { vic2 = 692 hoi4 = 9252 hoi4 = 11288 hoi4 = 11260 } # Deutsch Krone -> Deutsch Krone, Btow, Neustettin
@@ -1906,7 +1907,7 @@
link = { vic2 = 737 hoi4 = 11595 } # Gorizia -> Gorizia
link = { vic2 = 769 hoi4 = 599 } # Postojna -> Longatico
link = { vic2 = 770 hoi4 = 11735 } # Pola -> Pola
- link = { vic2 = 778 hoi4 = 11564 hoi4 = 13252 } # Fiume -> Rijeka, land
+ link = { vic2 = 778 hoi4 = 11564 hoi4 = 13252 } # Fiume -> Rijeka, Crikvenica
link = { comment = "* * Emelia" }
link = { vic2 = 738 hoi4 = 9752 hoi4 = 6790 hoi4 = 3773 } # Parma -> Parma, Piacenza, Salsomaggiore
link = { vic2 = 739 hoi4 = 3976 } # Modena -> Sassuolo
@@ -1941,7 +1942,7 @@
link = { comment = "* * Sicily" }
link = { vic2 = 762 hoi4 = 10074 hoi4 = 3857 hoi4 = 7147 hoi4 = 7059 } # Palermo -> Palermo, Caltanissetta, Sciacca, Marsala
link = { vic2 = 763 hoi4 = 4159 hoi4 = 1156 } # Messina -> Messina, Barcellona Pozzo di Gotto
- link = { vic2 = 764 hoi4 = 4014 hoi4 = 1009 hoi4 = 12047 hoi4 = 13256 } # Catania -> Catania, Gela, Patern, land
+ link = { vic2 = 764 hoi4 = 4014 hoi4 = 1009 hoi4 = 12047 hoi4 = 13256 } # Catania -> Catania, Gela, Patern, Siracusa
link = { comment = "* * Sardinia" }
link = { vic2 = 765 hoi4 = 11773 hoi4 = 11874 hoi4 = 902 } # Cagliari -> Cagliari, Iglesias, Muravera
link = { vic2 = 766 hoi4 = 9772 hoi4 = 9863 hoi4 = 6891 hoi4 = 11824 hoi4 = 11755 } # Sassari -> Sassari, Olbia, Tempio Pausania, Oristano, Nuoro
@@ -2081,7 +2082,7 @@
link = { comment = "* ** Albania" }
link = { vic2 = 849 hoi4 = 9914 hoi4 = 9875 hoi4 = 6900 } # Tirana -> Tirana, Elbasan, Pogradec
link = { vic2 = 850 hoi4 = 9780 hoi4 = 3896 hoi4 = 11762 } # Shkoder -> Shkodr, Kuks, Peshkopi
- link = { vic2 = 851 hoi4 = 13255 } # Durres -> land
+ link = { vic2 = 851 hoi4 = 13255 } # Durres -> Durrs
link = { vic2 = 852 hoi4 = 11767 hoi4 = 3884 hoi4 = 3448 } # Vlore -> Vlor, Fier, Berat
link = { vic2 = 853 hoi4 = 914 hoi4 = 13234 hoi4 = 13235 } # Gjirokaster -> Sarand, Gjirokastr, Kor
link = { comment = "* " }
diff --git a/data/configurables/tech_mappings.txt b/data/configurables/tech_mappings.txt
index dc08a68b63..4d42857288 100644
--- a/data/configurables/tech_mappings.txt
+++ b/data/configurables/tech_mappings.txt
@@ -82,6 +82,7 @@ link = {
link = {
vic2 = armoured_cars
+ hoi4 = tech_trucks
hoi4 = motorised_infantry
}
diff --git a/data/test_files/Scorers.txt b/data/test_files/Scorers.txt
new file mode 100644
index 0000000000..5773b2dea7
--- /dev/null
+++ b/data/test_files/Scorers.txt
@@ -0,0 +1,2 @@
+scorer_one = {}
+scorer_two = {}
\ No newline at end of file
diff --git a/data/version.txt b/data/version.txt
index 102c35732e..ac081a5fc8 100644
--- a/data/version.txt
+++ b/data/version.txt
@@ -6,5 +6,5 @@ source = "Vic2"
minSource = "3"
maxSource = "3"
target = "HoI4"
-minTarget = "1.12"
-maxTarget = "1.12"
+minTarget = "1.13"
+maxTarget = "1.13"
diff --git a/docs/release_checklist.txt b/docs/release_checklist.txt
new file mode 100644
index 0000000000..cedc82f850
--- /dev/null
+++ b/docs/release_checklist.txt
@@ -0,0 +1,12 @@
+* Add new banner to data/resources/images
+* Update data/version.txt with new version and name
+* Update Vic3ToHoI4-Installer.iss with new version and name
+* Update data/readme.txt with new version
+* Update .github/workflows/windows_build_test_and_push.yml with new name, filename, tag, and artifact
+* Create commit with MINOR or MAJOR in the commit message as appropriate, and tagged with new version
+* Push and merge on github
+* Wait for build, confirm updates
+* New post on forum thread
+* Update first post on forum thread
+* Post on Patreon
+* Post on reddit
diff --git a/docs/style_guide.txt b/docs/style_guide.txt
new file mode 100644
index 0000000000..6dde6bc86d
--- /dev/null
+++ b/docs/style_guide.txt
@@ -0,0 +1,9 @@
+Coding Style
+------------
+
+The coding style for Vic2 to HoI4 is derived from the Google C++ Style Guide: https://google.github.io/styleguide/cppguide.html
+Notable changes are longer line lengths and braced blocks starting on folloing lines.
+
+Code formatting is enforced via clang format. There is a check on pull requests that will point out formatting errors, and they can be corrected via automated tools. In Visual Studio, select the relevant code (Ctrl + A will do the whole file), then press Ctrl+K,F to automatically format.
+
+Naming should adhere to Google style as much as possible, but as yet there are no automated checks, so programmers and reviewers should do their best. If updating code that does not adhere to these rules, please update it.
\ No newline at end of file
diff --git a/src/HOI4World/Decisions/AgentRecruitmentDecisions.cpp b/src/HOI4World/Decisions/AgentRecruitmentDecisions.cpp
index e09e4ccbae..4c1d0379cf 100644
--- a/src/HOI4World/Decisions/AgentRecruitmentDecisions.cpp
+++ b/src/HOI4World/Decisions/AgentRecruitmentDecisions.cpp
@@ -44,6 +44,14 @@ void HoI4::AgentRecruitmentDecisions::updateDecisions(const std::set()),
- theDecisions(make_unique(theConfiguration)), events(make_unique()),
- onActions(make_unique())
+ theDecisions(make_unique(theConfiguration)),
+ events(make_unique()), onActions(make_unique())
{
Log(LogLevel::Progress) << "24%";
Log(LogLevel::Info) << "Building HoI4 World";
@@ -207,6 +206,8 @@ HoI4::World::World(const Vic2::World& sourceWorld,
convertMilitaries(*provinceDefinitions, provinceMapper, theConfiguration);
scriptedEffects = std::make_unique(theConfiguration.getHoI4Path());
+ scorers = Scorers::Factory().getScorers();
+ scorers->updateScorers(ideologies->getMajorIdeologies());
setupNavalTreaty();
Log(LogLevel::Progress) << "64%";
@@ -229,7 +230,7 @@ HoI4::World::World(const Vic2::World& sourceWorld,
events->createStabilityEvents(ideologies->getMajorIdeologies(), theConfiguration);
events->generateGenericEvents(theConfiguration, ideologies->getMajorIdeologies());
events->giveGovernmentInExileEvent(createGovernmentInExileEvent(ideologies->getMajorIdeologies()));
- theIdeas->updateIdeas(ideologies->getMajorIdeologies());
+ theIdeas = std::make_unique(ideologies->getMajorIdeologies());
Log(LogLevel::Progress) << "68%";
theDecisions->updateDecisions(ideologies->getMajorIdeologies(),
states->getProvinceToStateIDMap(),
@@ -805,7 +806,7 @@ std::set HoI4::World::getAreaStates(const std::set& area,
const auto& region = theRegions->getRegion(province);
if (!region)
{
- Log(LogLevel::Debug) << "State " << stateId << " is not defined in Configurables/regions.txt";
+ Log(LogLevel::Warning) << "Province " << province << " is not defined in Configurables/regions.txt";
continue;
}
auto state = states->getStates().find(stateId);
diff --git a/src/HOI4World/HoI4World.h b/src/HOI4World/HoI4World.h
index 7381968b6e..7aeace3d56 100644
--- a/src/HOI4World/HoI4World.h
+++ b/src/HOI4World/HoI4World.h
@@ -36,6 +36,7 @@
#include "src/HOI4World/OnActions.h"
#include "src/HOI4World/Operations/Operations.h"
#include "src/HOI4World/OperativeNames/OperativeNames.h"
+#include "src/HOI4World/Scorers/ScorersFactory.h"
#include "src/HOI4World/ScriptedEffects/ScriptedEffects.h"
#include "src/HOI4World/ScriptedLocalisations/ScriptedLocalisations.h"
#include "src/HOI4World/ScriptedTriggers/ScriptedTriggers.h"
@@ -104,6 +105,8 @@ class World: commonItems::parser
[[nodiscard]] const auto& getTheIdeas() const { return *theIdeas; }
[[nodiscard]] const auto& getOccupationLaws() const { return *occupationLaws; }
[[nodiscard]] const auto& getDynamicModifiers() const { return dynamicModifiers; }
+ [[nodiscard]] const auto& getScorers() const { return *scorers; }
+ [[nodiscard]] const auto& getCustomizedScorers() const { return scorers->getCustomizedScorers(); }
[[nodiscard]] const auto& getScriptedEffects() const { return *scriptedEffects; }
[[nodiscard]] const auto& getScriptedLocalisations() const { return scriptedLocalisations; }
[[nodiscard]] const auto& getScriptedTriggers() const { return scriptedTriggers; }
@@ -289,6 +292,7 @@ class World: commonItems::parser
std::unique_ptr theMapData;
std::unique_ptr scriptedEffects;
+ std::unique_ptr scorers;
std::unique_ptr scriptedLocalisations;
ScriptedTriggers scriptedTriggers;
diff --git a/src/HOI4World/Ideas/Idea.h b/src/HOI4World/Ideas/Idea.h
index 34bde285d0..fc0cf57c86 100644
--- a/src/HOI4World/Ideas/Idea.h
+++ b/src/HOI4World/Ideas/Idea.h
@@ -24,6 +24,7 @@ class Idea: commonItems::parser
void setAllowedCivilWar(const std::string& newAllowedCivilWar) { allowedCivilWar = newAllowedCivilWar; }
void updateCancel(const std::string& newCancel) { cancel = newCancel; }
void setAllowedToRemove(const std::string& newAllowedToRemove) { allowedToRemove = newAllowedToRemove; }
+ void setAiWillDo(const std::string& newAiWillDo) { aiWillDo = newAiWillDo; }
private:
std::string name;
diff --git a/src/HOI4World/Ideas/IdeaUpdaters.cpp b/src/HOI4World/Ideas/IdeaUpdaters.cpp
index 96f5dce3e5..37835697d2 100644
--- a/src/HOI4World/Ideas/IdeaUpdaters.cpp
+++ b/src/HOI4World/Ideas/IdeaUpdaters.cpp
@@ -193,6 +193,44 @@ void HoI4::updateTradeLaws(IdeaGroup& tradeLaws, const std::set& ma
}
available += "\t\t\t}";
limitedExports->setAvailable(available);
+
+ std::string aiWillDo = "= {\n";
+ aiWillDo += "\t\t\t\tfactor = 1\n";
+ aiWillDo += "\n";
+ aiWillDo += "\t\t\t\tmodifier = {\n";
+ aiWillDo += "\t\t\t\t\tadd = -1\n";
+ aiWillDo += "\n";
+ aiWillDo += "\t\t\t\t\tis_major = no\n";
+ aiWillDo += "\t\t\t\t\tis_in_faction = yes\n";
+ aiWillDo += "\t\t\t\t\thas_war = yes\n";
+ aiWillDo += "\t\t\t\t}\n";
+ aiWillDo += "\n";
+ aiWillDo += "\t\t\t\t# minors not at war should want to get the bonuses from free trade\n";
+ aiWillDo += "\t\t\t\tmodifier = {\n";
+ aiWillDo += "\t\t\t\t\tadd = -1\n";
+ aiWillDo += "\n";
+ aiWillDo += "\t\t\t\t\tis_major = no\n";
+ aiWillDo += "\t\t\t\t\thas_war = no\n";
+ aiWillDo += "\t\t\t\t}\n";
+ aiWillDo += "\t\t\t\tmodifier = {\n";
+ aiWillDo += "\t\t\t\t\tfactor = 200\n";
+ if (majorIdeologies.contains("fascism"))
+ {
+ aiWillDo += "\t\t\t\t\tNOT = { has_government = fascism }\n";
+ }
+ aiWillDo += "\t\t\t\t\tNOT = { has_idea = closed_economy }\n";
+ aiWillDo += "\t\t\t\t\thas_war = yes\n";
+ aiWillDo += "\t\t\t\t\tis_major = yes\n";
+ aiWillDo += "\t\t\t\t}\n";
+ aiWillDo += "\t\t\t\tmodifier = {\n";
+ aiWillDo += "\t\t\t\t\tadd = 1500\n";
+ aiWillDo += "\n";
+ aiWillDo += "\t\t\t\t\t# revert from closed_economy if we have large allies\n";
+ aiWillDo += "\t\t\t\t\thas_idea = closed_economy\n";
+ aiWillDo += "\t\t\t\t\thas_large_ally_not_pick_closed_economy = yes\n";
+ aiWillDo += "\t\t\t\t}\n";
+ aiWillDo += "\t\t\t}\n";
+ limitedExports->setAiWillDo(aiWillDo);
tradeLaws.replaceIdea(*limitedExports);
}
}
diff --git a/src/HOI4World/Ideas/Ideas.cpp b/src/HOI4World/Ideas/Ideas.cpp
index ee48ffc2c1..54be68000a 100644
--- a/src/HOI4World/Ideas/Ideas.cpp
+++ b/src/HOI4World/Ideas/Ideas.cpp
@@ -8,21 +8,28 @@
-HoI4::Ideas::Ideas() noexcept
+HoI4::Ideas::Ideas(const std::set& majorIdeologies) noexcept
{
- importIdeologicalIdeas();
+ Log(LogLevel::Info) << "\tImporting ideas";
+ importIdeologicalIdeas(majorIdeologies);
importGeneralIdeas();
+
+ updateIdeas(majorIdeologies);
}
-void HoI4::Ideas::importIdeologicalIdeas()
+void HoI4::Ideas::importIdeologicalIdeas(const std::set& majorIdeologies)
{
- registerRegex(commonItems::catchallRegex, [this](const std::string& ideology, std::istream& theStream) {
- ideologicalIdeas.insert(make_pair(ideology, IdeaGroup(ideology, theStream)));
- });
+ for (const auto& ideology: majorIdeologies)
+ {
+ registerRegex(commonItems::catchallRegex,
+ [this, ideology](const std::string& groupName, std::istream& theStream) {
+ ideologicalIdeas[groupName].push_back(IdeaGroup(ideology, theStream));
+ });
- parseFile("Configurables/ideologicalIdeas.txt");
- clearRegisteredKeywords();
+ parseFile("Configurables/IdeologicalIdeas/" + ideology + ".txt");
+ clearRegisteredKeywords();
+ }
}
@@ -66,9 +73,11 @@ void HoI4::Ideas::updateIdeas(const std::set& majorIdeologies)
});
updateHiddenIdeas(*foundGroup, majorIdeologies);
- if (auto foundIdeologicalGroup = ideologicalIdeas.find("neutrality");
- foundIdeologicalGroup != ideologicalIdeas.end())
+ if (auto countryIdeas = ideologicalIdeas.find("country"); countryIdeas != ideologicalIdeas.end())
{
- updateNeutralIdeas(foundIdeologicalGroup->second, majorIdeologies);
+ foundGroup = std::find_if(countryIdeas->second.begin(), countryIdeas->second.end(), [](auto& theGroup) {
+ return (theGroup.getName() == "neutrality");
+ });
+ updateNeutralIdeas(*foundGroup, majorIdeologies);
}
}
\ No newline at end of file
diff --git a/src/HOI4World/Ideas/Ideas.h b/src/HOI4World/Ideas/Ideas.h
index cf0f461985..2ee1c3403a 100644
--- a/src/HOI4World/Ideas/Ideas.h
+++ b/src/HOI4World/Ideas/Ideas.h
@@ -18,7 +18,7 @@ namespace HoI4
class Ideas: commonItems::parser
{
public:
- Ideas() noexcept;
+ Ideas(const std::set& majorIdeologies) noexcept;
void updateIdeas(const std::set& majorIdeologies);
@@ -26,10 +26,10 @@ class Ideas: commonItems::parser
[[nodiscard]] const auto& getGeneralIdeas() const { return generalIdeas; }
private:
- void importIdeologicalIdeas();
+ void importIdeologicalIdeas(const std::set& majorIdeologies);
void importGeneralIdeas();
- std::map ideologicalIdeas;
+ std::map> ideologicalIdeas;
std::vector generalIdeas;
};
diff --git a/src/HOI4World/Scorers/Scorer.cpp b/src/HOI4World/Scorers/Scorer.cpp
new file mode 100644
index 0000000000..161bce1f77
--- /dev/null
+++ b/src/HOI4World/Scorers/Scorer.cpp
@@ -0,0 +1,25 @@
+#include "src/HOI4World/Scorers/Scorer.h"
+
+std::shared_ptr HoI4::Scorer::makeCustomizedCopy(const std::string& ideology) const
+{
+ const std::string ideologyToken = "$IDEOLOGY";
+ const std::map ideologyNameMap = {{"fascism", "fascist"},
+ {"communism", "communist"},
+ {"democratic", "democratic"},
+ {"neutrality", "non_aligned"},
+ {"absolutist", "absolutist"},
+ {"radical", "radical"}};
+
+
+ auto newScorer = std::make_shared(*this);
+
+ if (const auto& ideologyNameItr = newScorer->name.find(ideologyToken); ideologyNameItr != std::string::npos)
+ {
+ newScorer->name.replace(ideologyNameItr, ideologyToken.size(), ideologyNameMap.at(ideology));
+ }
+ if (const auto& ideologyTargetItr = newScorer->targets.find(ideologyToken); ideologyTargetItr != std::string::npos)
+ {
+ newScorer->targets.replace(ideologyTargetItr, ideologyToken.size(), ideology);
+ }
+ return newScorer;
+}
\ No newline at end of file
diff --git a/src/HOI4World/Scorers/Scorer.h b/src/HOI4World/Scorers/Scorer.h
new file mode 100644
index 0000000000..020697d74b
--- /dev/null
+++ b/src/HOI4World/Scorers/Scorer.h
@@ -0,0 +1,35 @@
+#ifndef SCORER_H
+#define SCORER_H
+
+
+
+#include
+#include
+
+
+
+namespace HoI4
+{
+
+class Scorer
+{
+ public:
+ class Factory;
+ [[nodiscard]] const auto& getName() const { return name; }
+ [[nodiscard]] const auto& getTargets() const { return targets; }
+
+ std::shared_ptr makeCustomizedCopy(const std::string& ideology) const;
+
+ void setName(std::string _name) { name = std::move(_name); }
+ void setTargets(std::string _targets) { targets = std::move(_targets); }
+
+ private:
+ std::string name;
+ std::string targets;
+};
+
+} // namespace HoI4
+
+
+
+#endif // SCORER_H
\ No newline at end of file
diff --git a/src/HOI4World/Scorers/ScorerFactory.cpp b/src/HOI4World/Scorers/ScorerFactory.cpp
new file mode 100644
index 0000000000..45ce433a17
--- /dev/null
+++ b/src/HOI4World/Scorers/ScorerFactory.cpp
@@ -0,0 +1,24 @@
+#include "src/HOI4World/Scorers/ScorerFactory.h"
+#include "external/common_items/CommonRegexes.h"
+#include "external/common_items/ParserHelpers.h"
+
+
+
+HoI4::Scorer::Factory::Factory()
+{
+ registerKeyword("targets", [this](std::istream& theStream) {
+ scorer->setTargets(commonItems::stringOfItem(theStream).getString());
+ });
+ registerRegex(commonItems::catchallRegex, commonItems::ignoreItem);
+}
+
+
+std::unique_ptr HoI4::Scorer::Factory::getScorer(const std::string& name, std::istream& theStream)
+{
+ scorer = std::make_unique();
+ scorer->setName(name);
+
+ parseStream(theStream);
+
+ return std::move(scorer);
+}
\ No newline at end of file
diff --git a/src/HOI4World/Scorers/ScorerFactory.h b/src/HOI4World/Scorers/ScorerFactory.h
new file mode 100644
index 0000000000..f7eb5f8df5
--- /dev/null
+++ b/src/HOI4World/Scorers/ScorerFactory.h
@@ -0,0 +1,29 @@
+#ifndef SCORER_FACTORY_H
+#define SCORER_FACTORY_H
+
+
+
+#include "external/common_items/ConvenientParser.h"
+#include "src/HOI4World/Scorers/Scorer.h"
+#include
+
+
+
+namespace HoI4
+{
+
+class Scorer::Factory: commonItems::parser
+{
+ public:
+ Factory();
+ std::unique_ptr getScorer(const std::string& name, std::istream& theStream);
+
+ private:
+ std::unique_ptr scorer;
+};
+
+} // namespace HoI4
+
+
+
+#endif // SCORER_FACTORY_H
\ No newline at end of file
diff --git a/src/HOI4World/Scorers/ScorerFactoryTests.cpp b/src/HOI4World/Scorers/ScorerFactoryTests.cpp
new file mode 100644
index 0000000000..814b3e18fe
--- /dev/null
+++ b/src/HOI4World/Scorers/ScorerFactoryTests.cpp
@@ -0,0 +1,33 @@
+#include "external/common_items/external/googletest/googletest/include/gtest/gtest.h"
+#include "src/HOI4World/Scorers/ScorerFactory.h"
+
+
+
+TEST(HoI4World_Scorers_ScorerFactoryTests, NameCanBeSet)
+{
+ std::stringstream input;
+ const auto scorer = HoI4::Scorer::Factory().getScorer("scorer_name", input);
+
+ ASSERT_EQ("scorer_name", scorer->getName());
+}
+
+
+TEST(HoI4World_Scorers_ScorerFactoryTests, TargetsDefaultsToEmpty)
+{
+ std::stringstream input;
+ const auto scorer = HoI4::Scorer::Factory().getScorer("scorer_name", input);
+
+ ASSERT_TRUE(scorer->getTargets().empty());
+}
+
+
+TEST(HoI4World_Scorers_ScorerFactoryTests, TargetsCanBeSet)
+{
+ std::stringstream input;
+ input << "{\n";
+ input << "\ttargets = { targets_dynamic = no }\n";
+ input << "}";
+ const auto scorer = HoI4::Scorer::Factory().getScorer("scorer_name", input);
+
+ ASSERT_EQ("= { targets_dynamic = no }", scorer->getTargets());
+}
\ No newline at end of file
diff --git a/src/HOI4World/Scorers/ScorerTests.cpp b/src/HOI4World/Scorers/ScorerTests.cpp
new file mode 100644
index 0000000000..b595d5ac90
--- /dev/null
+++ b/src/HOI4World/Scorers/ScorerTests.cpp
@@ -0,0 +1,15 @@
+#include "external/common_items/external/googletest/googletest/include/gtest/gtest.h"
+#include "src/HOI4World/Scorers/Scorer.h"
+
+
+
+TEST(HoI4World_Scorers_Scorer, CanMakeCustomizedCopyOfScorer)
+{
+ HoI4::Scorer scorer;
+ scorer.setName("$IDEOLOGY_major_scorer");
+ scorer.setTargets("= { score = { modifier = { NOT = { has_government = $IDEOLOGY }}}}");
+
+ const auto& customScorer = scorer.makeCustomizedCopy("communism");
+ EXPECT_EQ("communist_major_scorer", customScorer->getName());
+ EXPECT_EQ("= { score = { modifier = { NOT = { has_government = communism }}}}", customScorer->getTargets());
+}
\ No newline at end of file
diff --git a/src/HOI4World/Scorers/Scorers.cpp b/src/HOI4World/Scorers/Scorers.cpp
new file mode 100644
index 0000000000..dcef934709
--- /dev/null
+++ b/src/HOI4World/Scorers/Scorers.cpp
@@ -0,0 +1,16 @@
+#include "src/HOI4World/Scorers/Scorers.h"
+#include
+
+
+
+void HoI4::Scorers::updateScorers(const std::set& majorIdeologies)
+{
+ for (const auto& scorer: scorers)
+ {
+ for (const auto& ideology: majorIdeologies)
+ {
+ const auto& newScorer = scorer.makeCustomizedCopy(ideology);
+ customizedScorers[newScorer->getName()] = *newScorer;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/HOI4World/Scorers/Scorers.h b/src/HOI4World/Scorers/Scorers.h
new file mode 100644
index 0000000000..452da8f2bb
--- /dev/null
+++ b/src/HOI4World/Scorers/Scorers.h
@@ -0,0 +1,35 @@
+#ifndef SCORERS_H
+#define SCORERS_H
+
+
+
+#include "src/HOI4World/Scorers/Scorer.h"
+#include
+#include
+
+
+
+namespace HoI4
+{
+
+class Scorers
+{
+ public:
+ class Factory;
+ [[nodiscard]] const auto& getScorers() const { return scorers; }
+ [[nodiscard]] const auto& getCustomizedScorers() const { return customizedScorers; }
+
+ void giveScorer(Scorer&& scorer) { scorers.emplace_back(scorer); }
+
+ void updateScorers(const std::set& majorIdeologies);
+
+ private:
+ std::vector scorers;
+ std::map customizedScorers;
+};
+
+} // namespace HoI4
+
+
+
+#endif // SCORERS_H
\ No newline at end of file
diff --git a/src/HOI4World/Scorers/ScorersFactory.cpp b/src/HOI4World/Scorers/ScorersFactory.cpp
new file mode 100644
index 0000000000..dd56fefbd4
--- /dev/null
+++ b/src/HOI4World/Scorers/ScorersFactory.cpp
@@ -0,0 +1,21 @@
+#include "src/HOI4World/Scorers/ScorersFactory.h"
+#include "external/common_items/CommonRegexes.h"
+#include "external/common_items/ParserHelpers.h"
+#include "src/HOI4World/Scorers/ScorerFactory.h"
+
+
+
+std::unique_ptr HoI4::Scorers::Factory::getScorers()
+{
+ auto scorers = std::make_unique();
+ Scorer::Factory scorerFactory;
+
+ registerRegex(commonItems::catchallRegex,
+ [&scorers, &scorerFactory](const std::string& name, std::istream& theStream) {
+ const auto scorer = scorerFactory.getScorer(name, theStream);
+ scorers->giveScorer(std::move(*scorer));
+ });
+
+ parseFile("Configurables/Scorers/generic_platonic_scorers.txt");
+ return scorers;
+}
\ No newline at end of file
diff --git a/src/HOI4World/Scorers/ScorersFactory.h b/src/HOI4World/Scorers/ScorersFactory.h
new file mode 100644
index 0000000000..8f4bef5986
--- /dev/null
+++ b/src/HOI4World/Scorers/ScorersFactory.h
@@ -0,0 +1,24 @@
+#ifndef SCORERS_FACTORY_H
+#define SCORERS_FACTORY_H
+
+
+
+#include "external/common_items/ConvenientParser.h"
+#include "src/Configuration.h"
+#include "src/HOI4World/Scorers/Scorers.h"
+
+
+namespace HoI4
+{
+
+class Scorers::Factory: commonItems::parser
+{
+ public:
+ std::unique_ptr getScorers();
+};
+
+} // namespace HoI4
+
+
+
+#endif // SCORERS_FACTORY_H
\ No newline at end of file
diff --git a/src/HOI4World/Scorers/ScorersFactoryTests.cpp b/src/HOI4World/Scorers/ScorersFactoryTests.cpp
new file mode 100644
index 0000000000..28312b3a53
--- /dev/null
+++ b/src/HOI4World/Scorers/ScorersFactoryTests.cpp
@@ -0,0 +1,13 @@
+#include "external/common_items/external/googletest/googletest/include/gtest/gtest.h"
+#include "src/HOI4World/Scorers/ScorersFactory.h"
+
+
+
+TEST(HoI4World_Scorers_ScorersFactoryTests, ScorersCanBeImported)
+{
+ const auto scorers = HoI4::Scorers::Factory().getScorers();
+
+ ASSERT_EQ(2, scorers->getScorers().size());
+ ASSERT_EQ("scorer_one", scorers->getScorers()[0].getName());
+ ASSERT_EQ("scorer_two", scorers->getScorers()[1].getName());
+}
\ No newline at end of file
diff --git a/src/HOI4World/Scorers/ScorersTests.cpp b/src/HOI4World/Scorers/ScorersTests.cpp
new file mode 100644
index 0000000000..b879585943
--- /dev/null
+++ b/src/HOI4World/Scorers/ScorersTests.cpp
@@ -0,0 +1,16 @@
+#include "external/common_items/external/googletest/googletest/include/gtest/gtest.h"
+#include "src/HOI4World/Scorers/Scorers.h"
+
+
+
+TEST(HoI4World_Scorers_Scorers, ScorersCanBeUpdated)
+{
+ HoI4::Scorer scorer;
+ scorer.setName("$IDEOLOGY_major_scorer");
+
+ HoI4::Scorers scorers;
+ scorers.giveScorer(std::move(scorer));
+
+ scorers.updateScorers({"democratic"});
+ ASSERT_TRUE(scorers.getCustomizedScorers().find("democratic_major_scorer") != scorers.getCustomizedScorers().end());
+}
\ No newline at end of file
diff --git a/src/HOI4World/ScriptedTriggers/ScriptedTriggers.h b/src/HOI4World/ScriptedTriggers/ScriptedTriggers.h
index 30677f3499..d1550b6e87 100644
--- a/src/HOI4World/ScriptedTriggers/ScriptedTriggers.h
+++ b/src/HOI4World/ScriptedTriggers/ScriptedTriggers.h
@@ -22,6 +22,10 @@ class ScriptedTriggers: commonItems::parser
void replaceElectionsScriptedTrigger(std::string_view name, const std::string& replacementBody);
void replaceLawsWarSupportTriggers(const std::map& replacements);
+ void addIdeologyTrigger(HoI4::ScriptedTrigger& ideologyTrigger)
+ {
+ ideologyScriptedTriggers.push_back(ideologyTrigger);
+ }
void addNationalFocusTrigger(HoI4::ScriptedTrigger& NFTrigger) { nationalFocusTriggers.push_back(NFTrigger); }
[[nodiscard]] const auto& getIdeologyScriptedTriggers() const { return ideologyScriptedTriggers; }
diff --git a/src/HOI4World/ScriptedTriggers/ScriptedTriggersUpdater.cpp b/src/HOI4World/ScriptedTriggers/ScriptedTriggersUpdater.cpp
index 8ef328318c..85111c1624 100644
--- a/src/HOI4World/ScriptedTriggers/ScriptedTriggersUpdater.cpp
+++ b/src/HOI4World/ScriptedTriggers/ScriptedTriggersUpdater.cpp
@@ -1,5 +1,6 @@
#include "src/HOI4World/ScriptedTriggers/ScriptedTriggersUpdater.h"
#include "external/common_items/Log.h"
+#include "src/HOI4World/ScriptedTriggers/ScriptedTrigger.h"
@@ -64,6 +65,72 @@ void updateIdeologyScriptedTriggers(HoI4::ScriptedTriggers& scriptedTriggers,
has_same_ideology_body += "\t}\n";
has_same_ideology_body += "}\n";
scriptedTriggers.replaceIdeologyScriptedTrigger("has_same_ideology", has_same_ideology_body);
+
+ if (majorIdeologies.contains("communism"))
+ {
+ std::string big_communist_exists_body = "= {\n";
+ big_communist_exists_body += "\tany_other_country = {\n";
+ big_communist_exists_body += "\t\tis_major = yes \n";
+ big_communist_exists_body += "\t\thas_government = communism\n";
+ big_communist_exists_body += "\t\thas_capitulated = no \n";
+ big_communist_exists_body += "\t\texists = yes \n";
+ big_communist_exists_body += "\t}\n";
+ big_communist_exists_body += "}\n";
+
+ auto bigCommunistExists = HoI4::ScriptedTrigger("big_communist_exists");
+ bigCommunistExists.setBody(big_communist_exists_body);
+ scriptedTriggers.addIdeologyTrigger(bigCommunistExists);
+ }
+
+ if (majorIdeologies.contains("fascism"))
+ {
+ std::string big_fascist_exists_body = "= {\n";
+ big_fascist_exists_body += "\tany_other_country = {\n";
+ big_fascist_exists_body += "\t\tis_major = yes \n";
+ big_fascist_exists_body += "\t\thas_government = fascism\n";
+ big_fascist_exists_body += "\t\thas_capitulated = no \n";
+ big_fascist_exists_body += "\t\texists = yes \n";
+ big_fascist_exists_body += "\t}\n";
+ big_fascist_exists_body += "}\n";
+
+ auto bigFascistExists = HoI4::ScriptedTrigger("big_fascist_exists");
+ bigFascistExists.setBody(big_fascist_exists_body);
+ scriptedTriggers.addIdeologyTrigger(bigFascistExists);
+
+ std::string is_fascist_seller_trigger_body = "= {\n";
+ is_fascist_seller_trigger_body += "\tNOT = { has_war_with = ROOT\t}\n";
+ is_fascist_seller_trigger_body += "\thas_government = fascism \n";
+ is_fascist_seller_trigger_body += "}\n";
+
+ auto isFascistSeller = HoI4::ScriptedTrigger("is_fascist_seller_trigger");
+ isFascistSeller.setBody(is_fascist_seller_trigger_body);
+ scriptedTriggers.addIdeologyTrigger(isFascistSeller);
+ }
+
+ if (majorIdeologies.contains("democratic"))
+ {
+ std::string is_democratic_seller_trigger_body = "= {\n";
+ is_democratic_seller_trigger_body += "\tcustom_trigger_tooltip = {\n";
+ is_democratic_seller_trigger_body += "\t\ttooltip = \"Democratic Countries\"\n";
+ is_democratic_seller_trigger_body += "\t\tFROM = {\n";
+ is_democratic_seller_trigger_body += "\t\t\thas_government = democratic\n";
+ is_democratic_seller_trigger_body += "\t\t}\n";
+ is_democratic_seller_trigger_body += "\t}\n";
+ is_democratic_seller_trigger_body += "}\n";
+
+ auto isDemocraticSeller = HoI4::ScriptedTrigger("is_democratic_seller_trigger");
+ isDemocraticSeller.setBody(is_democratic_seller_trigger_body);
+ scriptedTriggers.addIdeologyTrigger(isDemocraticSeller);
+
+ std::string is_democracy_seller_trigger_body = "= {\n";
+ is_democracy_seller_trigger_body += "\tNOT = { has_war_with = ROOT\t}\n";
+ is_democracy_seller_trigger_body += "\thas_government = democratic \n";
+ is_democracy_seller_trigger_body += "}\n";
+
+ auto isDemocracySeller = HoI4::ScriptedTrigger("is_democracy_seller_trigger");
+ isDemocracySeller.setBody(is_democracy_seller_trigger_body);
+ scriptedTriggers.addIdeologyTrigger(isDemocracySeller);
+ }
}
diff --git a/src/OutHoi4/AiStrategy/OutAiStrategy.cpp b/src/OutHoi4/AiStrategy/OutAiStrategy.cpp
index 7ed7ee1b92..f6df50d571 100644
--- a/src/OutHoi4/AiStrategy/OutAiStrategy.cpp
+++ b/src/OutHoi4/AiStrategy/OutAiStrategy.cpp
@@ -15,10 +15,13 @@ void HoI4::outputAIStrategy(const HoI4::Country& theCountry, const std::string&
output << commonItems::utf8BOM; // add the BOM to make HoI4 happy
output << "converted_war_strategies_" << theCountry.getTag() << " = {\n";
- output << "\tenable = {\n";
+ output << "\tallowed = {\n";
output << "\t\ttag = " + theCountry.getTag() + "\n";
+ output << "\t}\n";
+ output << "\tenable = {\n";
output << "\t\talways = no\n";
output << "\t}\n";
+ output << "\tabort_when_not_enabled = yes\n";
output << "\t\n";
for (const auto& conquerStr: theCountry.getConquerStrategies())
{
@@ -32,13 +35,13 @@ void HoI4::outputAIStrategy(const HoI4::Country& theCountry, const std::string&
output << "\n";
output << "converted_diplo_strategies_" << theCountry.getTag() << " = {\n";
- output << "\tenable = {\n";
+ output << "\tallowed = {\n";
output << "\t\ttag = " + theCountry.getTag() + "\n";
- output << "\t\talways = no\n";
output << "\t}\n";
- output << "\tabort = {\n";
+ output << "\tenable = {\n";
output << "\t\talways = no\n";
output << "\t}\n";
+ output << "\tabort_when_not_enabled = yes\n";
output << "\t\n";
for (const auto& strategy: theCountry.getAIStrategies())
{
diff --git a/src/OutHoi4/Decisions/OutDecision.cpp b/src/OutHoi4/Decisions/OutDecision.cpp
index c3d5ff1e8c..d13d2a9e27 100644
--- a/src/OutHoi4/Decisions/OutDecision.cpp
+++ b/src/OutHoi4/Decisions/OutDecision.cpp
@@ -53,9 +53,9 @@ std::ostream& HoI4::operator<<(std::ostream& outStream, const decision& outDecis
{
outStream << "\n\t\ttarget_root_trigger " << outDecision.targetRootTrigger << "\n";
}
- if (outDecision.stateTarget)
+ if (!outDecision.stateTarget.empty())
{
- outStream << "\n\t\tstate_target = yes\n";
+ outStream << "\n\t\tstate_target = " << outDecision.stateTarget << "\n";
}
if (!outDecision.targetTrigger.empty())
{
diff --git a/src/OutHoi4/Ideas/OutIdeas.cpp b/src/OutHoi4/Ideas/OutIdeas.cpp
index b5f2441502..d0ef40d66b 100644
--- a/src/OutHoi4/Ideas/OutIdeas.cpp
+++ b/src/OutHoi4/Ideas/OutIdeas.cpp
@@ -5,7 +5,7 @@
-void outputIdeologicalIdeas(const std::map& ideologicalIdeas,
+void outputIdeologicalIdeas(const std::map>& ideologicalIdeas,
const std::set& majorIdeologies,
const std::string& outputName);
void outputGeneralIdeas(const std::vector& generalIdeas, const std::string& outputName);
@@ -21,26 +21,26 @@ void HoI4::outIdeas(const Ideas& ideas,
}
-void outputIdeologicalIdeas(const std::map& ideologicalIdeas,
+void outputIdeologicalIdeas(const std::map>& ideologicalIdeas,
const std::set& majorIdeologies,
const std::string& outputName)
{
std::ofstream ideasFile("output/" + outputName + "/common/ideas/convertedIdeas.txt");
ideasFile << "ideas = {\n";
- ideasFile << "\tcountry = {\n";
- for (const auto& majorIdeology: majorIdeologies)
+ for (const auto& [ideaCategory, ideaGroups]: ideologicalIdeas)
{
- auto ideologicalIdea = ideologicalIdeas.find(majorIdeology);
- if (ideologicalIdea != ideologicalIdeas.end())
+ ideasFile << "\n";
+ ideasFile << "\t" << ideaCategory << " = {\n";
+ for (const auto& ideaGroup: ideaGroups)
{
- for (const auto& idea: ideologicalIdea->second.getIdeas())
+ for (const auto& idea: ideaGroup.getIdeas())
{
- ideasFile << idea;
ideasFile << "\n";
+ ideasFile << idea;
}
}
+ ideasFile << "\t}\n";
}
- ideasFile << "\t}\n";
ideasFile << "}";
ideasFile.close();
}
diff --git a/src/OutHoi4/OutHoi4World.cpp b/src/OutHoi4/OutHoi4World.cpp
index c0b78b4653..ffcdbb45ec 100644
--- a/src/OutHoi4/OutHoi4World.cpp
+++ b/src/OutHoi4/OutHoi4World.cpp
@@ -26,6 +26,7 @@
#include "src/OutHoi4/OutOnActions.h"
#include "src/OutHoi4/PeaceConference/OutAiPeace.h"
#include "src/OutHoi4/PeaceConference/OutCostModifiers.h"
+#include "src/OutHoi4/Scorers/OutScorers.h"
#include "src/OutHoi4/ScriptedEffects/OutScriptedEffects.h"
#include "src/OutHoi4/ScriptedLocalisations/OutScriptedLocalisations.h"
#include "src/OutHoi4/ScriptedTriggers/OutScriptedTriggers.h"
@@ -237,6 +238,7 @@ void HoI4::OutputWorld(const World& world,
outputOperativeNames(world.getOperativeNames(), outputName);
outputOperations(world.getOperations(), outputName);
outputScriptedEffects(world.getScriptedEffects(), world.getMajorIdeologies(), outputName);
+ outputScorers(world.getScorers(), theConfiguration);
outCountryCategories(world.getCountryCategories(), outputName);
outputSounds(outputName, world.getSoundEffects());
outMonarchInterface(outputName, world.getCountries());
diff --git a/src/OutHoi4/OutMod.cpp b/src/OutHoi4/OutMod.cpp
index 2245c20e3c..82085f4fa1 100644
--- a/src/OutHoi4/OutMod.cpp
+++ b/src/OutHoi4/OutMod.cpp
@@ -38,6 +38,7 @@ void CreateModFiles(const std::string& output_name)
mod_file << "user_dir = \"" << output_name << "_user_dir\"\n";
mod_file << "replace_path=\"common/countries\"\n";
mod_file << "replace_path=\"common/ideologies\"\n";
+ mod_file << "replace_path=\"common/military_industrial_organization/organizations\"\n";
mod_file << "replace_path=\"common/national_focus\"\n";
mod_file << "replace_path=\"common/peace_conference/ai_peace\"\n";
mod_file << "replace_path=\"common/peace_conference/cost_modifiers\"\n";
@@ -47,7 +48,7 @@ void CreateModFiles(const std::string& output_name)
mod_file << "replace_path=\"history/units\"\n";
mod_file << "replace_path=\"map/supplyareas\"\n";
mod_file << "replace_path=\"map/strategicregions\"\n";
- mod_file << "supported_version=\"1.12.*\"";
+ mod_file << "supported_version=\"1.13.*\"";
mod_file.close();
std::ofstream descriptor_file("output/" + output_name + "/descriptor.mod");
@@ -58,6 +59,7 @@ void CreateModFiles(const std::string& output_name)
descriptor_file << "name = \"Converted - " << output_name << "\"\n";
descriptor_file << "replace_path=\"common/countries\"\n";
descriptor_file << "replace_path=\"common/ideologies\"\n";
+ descriptor_file << "replace_path=\"common/military_industrial_organization/organizations\"\n";
descriptor_file << "replace_path=\"common/national_focus\"\n";
descriptor_file << "replace_path=\"common/peace_conference/ai_peace\"\n";
descriptor_file << "replace_path=\"common/peace_conference/cost_modifiers\"\n";
@@ -67,7 +69,7 @@ void CreateModFiles(const std::string& output_name)
descriptor_file << "replace_path=\"history/units\"\n";
descriptor_file << "replace_path=\"map/supplyareas\"\n";
descriptor_file << "replace_path=\"map/strategicregions\"\n";
- descriptor_file << "supported_version=\"1.12.*\"";
+ descriptor_file << "supported_version=\"1.13.*\"";
descriptor_file.close();
}
diff --git a/src/OutHoi4/Scorers/OutScorer.cpp b/src/OutHoi4/Scorers/OutScorer.cpp
new file mode 100644
index 0000000000..70313b180b
--- /dev/null
+++ b/src/OutHoi4/Scorers/OutScorer.cpp
@@ -0,0 +1,13 @@
+#include "src/OutHoi4/Scorers/OutScorer.h"
+
+
+
+std::ostream& HoI4::operator<<(std::ostream& output, const Scorer& scorer)
+{
+ output << scorer.getName() << " = {\n";
+ output << "\ttargets " << scorer.getTargets() << "\n";
+ output << "\t\n";
+ output << "}\n";
+
+ return output;
+}
\ No newline at end of file
diff --git a/src/OutHoi4/Scorers/OutScorer.h b/src/OutHoi4/Scorers/OutScorer.h
new file mode 100644
index 0000000000..519ff456a0
--- /dev/null
+++ b/src/OutHoi4/Scorers/OutScorer.h
@@ -0,0 +1,20 @@
+#ifndef OUT_OCCUPATION_LAW_H
+#define OUT_OCCUPATION_LAW_H
+
+
+
+#include "src/HOI4World/Scorers/Scorer.h"
+#include
+
+
+
+namespace HoI4
+{
+
+std::ostream& operator<<(std::ostream& output, const Scorer& scorer);
+
+}
+
+
+
+#endif // OUT_OCCUPATION_LAW_H
\ No newline at end of file
diff --git a/src/OutHoi4/Scorers/OutScorers.cpp b/src/OutHoi4/Scorers/OutScorers.cpp
new file mode 100644
index 0000000000..e89497f01a
--- /dev/null
+++ b/src/OutHoi4/Scorers/OutScorers.cpp
@@ -0,0 +1,31 @@
+#include "src/OutHoi4/Scorers/OutScorers.h"
+#include "external/common_items/OSCompatibilityLayer.h"
+#include "src/OutHoi4/Scorers/OutScorer.h"
+#include
+#include
+
+
+
+void HoI4::outputScorers(const Scorers& scorers, const Configuration& configuration)
+{
+ if (!commonItems::TryCreateFolder("output/" + configuration.getOutputName() + "/common/scorers/country/"))
+ {
+ throw std::runtime_error("Could not create output/" + configuration.getOutputName() + "/common/scorers/country/");
+ }
+
+ std::ofstream output(
+ "output/" + configuration.getOutputName() + "/common/scorers/country/generic_platonic_scorers.txt");
+ if (!output.is_open())
+ {
+ throw std::runtime_error("Could not create output/" + configuration.getOutputName() +
+ "/common/scorers/country/generic_platonic_scorers.txt");
+ }
+
+ for (const auto& scorer: scorers.getCustomizedScorers() | std::views::values)
+ {
+ output << scorer;
+ output << "\n";
+ }
+
+ output.close();
+}
\ No newline at end of file
diff --git a/src/OutHoi4/Scorers/OutScorers.h b/src/OutHoi4/Scorers/OutScorers.h
new file mode 100644
index 0000000000..c93f98f1d3
--- /dev/null
+++ b/src/OutHoi4/Scorers/OutScorers.h
@@ -0,0 +1,20 @@
+#ifndef OUT_SCORERS_H
+#define OUT_SCORERS_H
+
+
+
+#include "src/Configuration.h"
+#include "src/HOI4World/Scorers/Scorers.h"
+
+
+
+namespace HoI4
+{
+
+void outputScorers(const Scorers& scorers, const Configuration& configuration);
+
+}
+
+
+
+#endif // OUT_SCORERS_H
\ No newline at end of file
diff --git a/src/OutHoi4/ScriptedEffects/OutScriptedEffects.cpp b/src/OutHoi4/ScriptedEffects/OutScriptedEffects.cpp
index c2be2a11ed..cccccad3dd 100644
--- a/src/OutHoi4/ScriptedEffects/OutScriptedEffects.cpp
+++ b/src/OutHoi4/ScriptedEffects/OutScriptedEffects.cpp
@@ -94,6 +94,132 @@ void outputRemoveFromAllowedParty(const std::set& majorIdeologies,
output << "}\n";
}
+void outputGlobalPlatonicCountries(const std::set& majorIdeologies, std::ostream& output)
+{
+ output << "find_global_platonic_countries = { # Look for the countries that meet the best criteria for the "
+ "different platonic countries we expect in HoI \n";
+ if (majorIdeologies.contains("fascist"))
+ {
+ output << "\tfind_biggest_fascist = yes\n";
+ output << "\tfind_biggest_fascist_bully = yes\n";
+ output << "\tfind_local_dangerous_fascist = yes \n";
+ }
+ if (majorIdeologies.contains("democratic"))
+ {
+ output << "\tfind_biggest_democrat = yes\n";
+ output << "\tfind_best_democratic_ally_leader = yes\n";
+ output << "\tfind_democratic_sleeping_giant = yes\n";
+ }
+ if (majorIdeologies.contains("communist"))
+ {
+ output << "\tfind_biggest_communist = yes\n";
+ }
+ output << "\tfind_biggest_non_aligned = yes\n";
+ output << "}\n";
+ output << "\n";
+ output << "\n";
+ if (majorIdeologies.contains("fascist"))
+ {
+ output << "find_biggest_fascist_bully = { # Finds the biggest and/or meanest fascist country \n";
+ output << "\tget_highest_scored_country = {\n";
+ output << "\t\tvar = GLOBAL.platonic_fascist_bully\n";
+ output << "\t\tscorer = fascist_bully_scorer\n";
+ output << "\t}\n";
+ output << "}\n";
+ output << "\n";
+ output << "find_biggest_fascist = { # Finds Nazi Germany, or the closest to it \n";
+ output << "\tget_highest_scored_country = {\n";
+ output << "\t\tvar = GLOBAL.platonic_big_fascist\n";
+ output << "\t\tscorer = fascist_major_scorer\n";
+ output << "\t}\n";
+ output << "}\n";
+ output << "\n";
+ output << "find_local_dangerous_fascist = {\n";
+ output << "\tget_highest_scored_country = {\n";
+ output << "\t\tvar = platonic_local_dangerous_fascist\n";
+ output << "\t\tscorer = local_fascist_country\n";
+ output << "\t}\n";
+ output << "}\n";
+ }
+ if (majorIdeologies.contains("democratic"))
+ {
+ output << "find_best_democratic_ally_leader = { # Finds the most suitable democratic country to lead a faction\n";
+ output << "\tget_highest_scored_country = {\n";
+ output << "\t\tvar = GLOBAL.platonic_democratic_ally_leader\n";
+ output << "\t\tscorer = democratic_faction_leader_scorer\n";
+ output << "\t}\n";
+ output << "}\n";
+ output << "\n";
+ output << "find_democratic_sleeping_giant = { # Finds biggest desarmed democratic nation. Expected to be USA \n";
+ output << "\tget_highest_scored_country = {\n";
+ output << "\t\tvar = GLOBAL.platonic_democratic_sleeping_giant\n";
+ output << "\t\tscorer = democratic_sleeping_giant_scorer\n";
+ output << "\t}\n";
+ output << "}\n";
+ output << "\n";
+ output << "find_biggest_democrat = { # Finds biggest Democratic Nation\n";
+ output << "\tget_highest_scored_country = {\n";
+ output << "\t\tvar = GLOBAL.platonic_big_democratic\n";
+ output << "\t\tscorer = democratic_major_scorer\n";
+ output << "\t}\n";
+ output << "}\n";
+ output << "\n";
+ }
+ if (majorIdeologies.contains("communist"))
+ {
+ output << "find_biggest_communist = { # Finds biggest Communist\n";
+ output << "\tget_highest_scored_country = {\n";
+ output << "\t\tvar = GLOBAL.platonic_big_communist\n";
+ output << "\t\tscorer = communist_major_scorer\n";
+ output << "\t}\n";
+ output << "}\n";
+ output << "\n";
+ }
+ output << "find_biggest_non_aligned = { # Finds biggest... anything else\n";
+ output << "\tget_highest_scored_country = {\n";
+ output << "\t\tvar = GLOBAL.platonic_big_non_aligned\n";
+ output << "\t\tscorer = non_aligned_major_scorer\n";
+ output << "\t}\n";
+ output << "}\n";
+ output << "# There are ideology scorers for each continent. If you need more check the generic_platonic_scorers "
+ "file and make a new scripted effect \n";
+ output << "\n";
+}
+
+void outputRestoreIdeologyPopularities(const std::set& majorIdeologies, std::ostream& output)
+{
+ const std::map ideologyNameMap = {{"fascism", "fascist"},
+ {"communism", "communist"},
+ {"democratic", "democratic"},
+ {"neutrality", "neutrality"},
+ {"absolutist", "absolutist"},
+ {"radical", "radical"}};
+
+ output << "get_current_ideology_popularities = {\n";
+ for (const auto& ideology: majorIdeologies)
+ {
+ output << "\tset_variable = { ROOT." << ideologyNameMap.at(ideology)
+ << "_support_before_change = ROOT.party_popularity_100@" << ideology << " }\n";
+ }
+ output << "}\n";
+ output << "restore_ideology_popularities = {\n";
+ output << "\thidden_effect = {\n";
+ output << "\t\t# Reset popluarities to what they were before puppeting \n";
+ output << "\t\tset_popularities = {\n";
+ for (const auto& ideology: majorIdeologies)
+ {
+ output << "\t\t\t" << ideology << " = ROOT." << ideologyNameMap.at(ideology) << "_support_before_change\n";
+ }
+ output << "\t\t}\n";
+ for (const auto& ideology: majorIdeologies)
+ {
+ output << "\t\tclear_variable = ROOT." << ideologyNameMap.at(ideology) << "_support_before_change\n";
+ }
+ output << "\t}\n";
+ output << "}\n";
+ output << "\n";
+}
+
void HoI4::outputScriptedEffects(const ScriptedEffects& scriptedEffects,
@@ -121,6 +247,8 @@ void HoI4::outputScriptedEffects(const ScriptedEffects& scriptedEffects,
outputGetBestAllianceMatchIdeologyEffects(majorIdeologies, scriptedEffectsFile);
outputRemoveFromAllowedParty(majorIdeologies, scriptedEffectsFile);
+ outputGlobalPlatonicCountries(majorIdeologies, scriptedEffectsFile);
+ outputRestoreIdeologyPopularities(majorIdeologies, scriptedEffectsFile);
scriptedEffectsFile.close();
}
\ No newline at end of file