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