From e460144cdceb91644eb496327294b358172d2567 Mon Sep 17 00:00:00 2001 From: Fishedotjpg Date: Mon, 9 Mar 2026 03:51:24 +0000 Subject: [PATCH] farmer republic --- common/culture/cultures/NEOW_goidelic.txt | 6 +- common/culture/cultures/NEOW_italian.txt | 2 + .../culture/cultures/NEOW_north_germanic.txt | 3 +- .../culture/cultures/NEOW_rhaeto_helvetic.txt | 5 +- .../culture/cultures/NEOW_west_germanic.txt | 4 +- .../traditions/00_realm_traditions.txt | 6 - common/culture/traditions/NEOW_traditions.txt | 129 + common/defines/00_defines.txt | 5 +- .../buildings/NEOW_farm_buildings.txt | 433 ++ .../NEOW_minority_community_buildings.txt | 68 +- .../domiciles/types/NEOW_domicile_types.txt | 1137 ++++++ common/governments/00_government_types.txt | 77 + common/landed_titles/noble_families.txt | 14 + common/legitimacy/00_legitimacy.txt | 915 +++++ common/legitimacy/_legitimacy.info | 59 + common/men_at_arms_types/00_maa_types.txt | 22 +- common/men_at_arms_types/09_mpo_maa_types.txt | 417 ++ .../00_building_requirement_triggers.txt | 2 +- .../00_councillor_triggers.txt | 1156 ++++++ .../00_courtier_guest_management_triggers.txt | 849 ++++ .../scripted_triggers/00_laamp_triggers.txt | 2 +- common/scripted_triggers/00_law_triggers.txt | 2 +- .../00_marriage_triggers.txt | 635 +++ .../00_relation_triggers.txt | 1229 ++++++ .../00_war_and_peace_triggers.txt | 2 +- .../02_ep1_scripted_triggers.txt | 414 ++ .../09_mpo_greatest_of_khans_triggers.txt | 12 +- .../mpo_scripted_triggers.txt | 1884 +++++++++ .../domicile_building/farm_estate_main.dds | 3 + gfx/interface/icons/flat_icons/farmer.dds | 3 + .../peasant_republic_government.dds | 3 + .../icons/map_icons/map_icon_farmer.dds | 3 + gfx/interface/icons/nomadic_riders.dds | 3 + .../icons/regimenttypes/nomadic_riders.dds | 3 + .../scripted_illustrations/ingame.txt | 56 +- .../farm_estate_building_byzantine.dds | 3 + .../farm_estate_building_byzantine_mask.png | 3 + .../farm_estate_building_mena.dds | 3 + .../farm_estate_building_mena_mask.png | 3 + .../farm_estate_building_western.dds | 3 + .../farm_estate_building_western_mask.png | 3 + .../portrait_animations/animations.txt | 2 +- gui/hud.gui | 2 +- gui/lists.gui | 3563 +++++++++++++++++ gui/portraits.gui | 3313 +++++++++++++++ gui/texticons.gui | 9 + history/provinces/e_alps.txt | 6 +- history/provinces/e_britannia.txt | 74 +- history/provinces/e_europa.txt | 8 +- history/provinces/e_italy.txt | 4 +- history/provinces/e_scandinavia.txt | 12 +- history/titles/k_ireland.txt | 9 +- .../mpo/dlc_mpo_game_concepts_l_english.yml | 197 + .../english/replace/government_l_english.yml | 3 +- .../replace/prepublic_loc_l_english.yml | 44 + .../english/replace/regiment_l_english.yml | 349 ++ .../replace/succession_laws_l_english.yml | 307 ++ 57 files changed, 17327 insertions(+), 156 deletions(-) create mode 100644 common/domiciles/buildings/NEOW_farm_buildings.txt create mode 100644 common/legitimacy/00_legitimacy.txt create mode 100644 common/legitimacy/_legitimacy.info create mode 100644 common/men_at_arms_types/09_mpo_maa_types.txt create mode 100644 common/scripted_triggers/00_councillor_triggers.txt create mode 100644 common/scripted_triggers/00_courtier_guest_management_triggers.txt create mode 100644 common/scripted_triggers/00_marriage_triggers.txt create mode 100644 common/scripted_triggers/00_relation_triggers.txt create mode 100644 common/scripted_triggers/02_ep1_scripted_triggers.txt create mode 100644 common/scripted_triggers/mpo_scripted_triggers.txt create mode 100644 gfx/interface/icons/domicile_building/farm_estate_main.dds create mode 100644 gfx/interface/icons/flat_icons/farmer.dds create mode 100644 gfx/interface/icons/government_types/peasant_republic_government.dds create mode 100644 gfx/interface/icons/map_icons/map_icon_farmer.dds create mode 100644 gfx/interface/icons/nomadic_riders.dds create mode 100644 gfx/interface/icons/regimenttypes/nomadic_riders.dds create mode 100644 gfx/interface/window_domiciles/farm_estate_building_byzantine.dds create mode 100644 gfx/interface/window_domiciles/farm_estate_building_byzantine_mask.png create mode 100644 gfx/interface/window_domiciles/farm_estate_building_mena.dds create mode 100644 gfx/interface/window_domiciles/farm_estate_building_mena_mask.png create mode 100644 gfx/interface/window_domiciles/farm_estate_building_western.dds create mode 100644 gfx/interface/window_domiciles/farm_estate_building_western_mask.png create mode 100644 gui/lists.gui create mode 100644 gui/portraits.gui create mode 100644 localization/english/replace/dlc/mpo/dlc_mpo_game_concepts_l_english.yml create mode 100644 localization/english/replace/prepublic_loc_l_english.yml create mode 100644 localization/english/replace/regiment_l_english.yml create mode 100644 localization/english/replace/succession_laws_l_english.yml diff --git a/common/culture/cultures/NEOW_goidelic.txt b/common/culture/cultures/NEOW_goidelic.txt index 206b8867..bbf0c6df 100644 --- a/common/culture/cultures/NEOW_goidelic.txt +++ b/common/culture/cultures/NEOW_goidelic.txt @@ -9,7 +9,7 @@ traditions = { tradition_seafaring - tradition_adaptive_skirmishing + tradition_farmer_republics tradition_festivities tradition_swords_for_hire tradition_diasporic @@ -45,9 +45,9 @@ high_irish = { #Éireannach Uasal traditions = { tradition_creaght tradition_poetry - tradition_festivities tradition_xenophilic tradition_defiant + tradition_farmer_republics } name_list = name_list_neow_goidelic @@ -81,10 +81,10 @@ irish = { #Éireannach Bhocht traditions = { tradition_creaght - tradition_adaptive_skirmishing tradition_festivities tradition_defiant tradition_xenophilic + tradition_farmer_republics } name_list = name_list_neow_goidelic diff --git a/common/culture/cultures/NEOW_italian.txt b/common/culture/cultures/NEOW_italian.txt index 971f55e9..9037303f 100644 --- a/common/culture/cultures/NEOW_italian.txt +++ b/common/culture/cultures/NEOW_italian.txt @@ -491,6 +491,7 @@ maltese = { #Maltin tradition_stalwart_defenders tradition_esteemed_hospitality tradition_xenophilic + tradition_farmer_republics } name_list = name_list_sicilian #PLACEHOLDER @@ -525,6 +526,7 @@ ladin = { tradition_mountaineers tradition_esteemed_hospitality tradition_hard_working + tradition_farmer_republics } name_list = name_list_gallo_italian diff --git a/common/culture/cultures/NEOW_north_germanic.txt b/common/culture/cultures/NEOW_north_germanic.txt index 011cd70a..643617c7 100644 --- a/common/culture/cultures/NEOW_north_germanic.txt +++ b/common/culture/cultures/NEOW_north_germanic.txt @@ -116,6 +116,7 @@ faerosk = { head_determination = head_determination_domain traditions = { tradition_things + tradition_farmer_republics tradition_fishermen tradition_hereditary_hierarchy tradition_seafaring @@ -249,7 +250,7 @@ icelander = { head_determination = head_determination_domain traditions = { tradition_things - tradition_republican_legacy + tradition_farmer_republics tradition_seafaring tradition_fishermen } diff --git a/common/culture/cultures/NEOW_rhaeto_helvetic.txt b/common/culture/cultures/NEOW_rhaeto_helvetic.txt index 7ad060b9..87df495f 100644 --- a/common/culture/cultures/NEOW_rhaeto_helvetic.txt +++ b/common/culture/cultures/NEOW_rhaeto_helvetic.txt @@ -90,7 +90,7 @@ romansch = { house_coa_mask_offset = { 0.0 0.025 } house_coa_mask_scale = { 0.95 0.95 } traditions = { - tradition_parochialism + tradition_farmer_republics tradition_hard_working tradition_castle_keepers tradition_mountain_homes @@ -164,9 +164,8 @@ swiss = { #Svizzer tradition_staunch_traditionalists tradition_hard_working tradition_religious_patronage - tradition_fervent_temple_builders tradition_faith_bound - + tradition_farmer_republics } name_list = name_list_NEOW_swabian diff --git a/common/culture/cultures/NEOW_west_germanic.txt b/common/culture/cultures/NEOW_west_germanic.txt index cc64cc38..eee77bc3 100644 --- a/common/culture/cultures/NEOW_west_germanic.txt +++ b/common/culture/cultures/NEOW_west_germanic.txt @@ -48,8 +48,8 @@ frisian = { #Represented the "old frisians" in vanilla, actually playable here # traditions = { tradition_fishermen tradition_agrarian - tradition_pastoralists - tradition_forbearing + tradition_pastoralists + tradition_farmer_republics tradition_modest } diff --git a/common/culture/traditions/00_realm_traditions.txt b/common/culture/traditions/00_realm_traditions.txt index d64f35a2..dc28cf7e 100644 --- a/common/culture/traditions/00_realm_traditions.txt +++ b/common/culture/traditions/00_realm_traditions.txt @@ -222,12 +222,6 @@ tradition_republican_legacy = { } is_shown = { - OR ={ - this = culture:roman - any_parent_culture_or_above = { - this = culture:roman - } - } NOT = { has_cultural_tradition = tradition_parochialism } } can_pick = { diff --git a/common/culture/traditions/NEOW_traditions.txt b/common/culture/traditions/NEOW_traditions.txt index 65d8d680..4912ca4a 100644 --- a/common/culture/traditions/NEOW_traditions.txt +++ b/common/culture/traditions/NEOW_traditions.txt @@ -425,6 +425,135 @@ tradition_defiant = { # defiant } } +tradition_farmer_republics = { + category = societal + + layers = { + 0 = steward + 1 = western + 4 = farmland.dds + } + + is_shown = { + NOT = { has_cultural_tradition = tradition_republican_legacy } + } + can_pick = { + NOT = { has_cultural_tradition = tradition_republican_legacy } + custom_tooltip = { + text = cultrad_not_nomadic_government_type + scope:character = { + NOT = { + government_has_flag = government_is_nomadic + } + } + } + } + + parameters = { + use_farmer_republics = yes + unlock_innovation_pike_columns = yes + city_buildings_more_powerful = yes + city_buildings_less_control = yes + trait_county_opinion_modifiers = yes + } + character_modifier = { + city_holding_build_gold_cost = -0.05 + city_holding_holding_build_gold_cost = -0.05 + farmlands_development_growth_factor = 0.3 + farmlands_construction_gold_cost = -0.1 + farmlands_levy_size = 0.1 + tyranny_gain_mult = 0.25 + tyranny_loss_mult = -0.5 + dread_decay_mult = 0.25 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.9 + culture = scope:character.culture + any_county_province = { + has_holding_type = city_holding + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = 90_percent_cities_desc + } + } + + if = { + limit = { + culture_tradition_reduction_trigger = { TRADITION = tradition_farmer_republics } + } + multiply = { + value = 0.5 + desc = inspired_by_culture_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.15 + culture = scope:character.culture + any_county_province = { + has_holding_type = city_holding + } + } + } + } + } + multiply = 0 + } + if = { + limit = { + NOT = { + scope:character = { + any_vassal = { + primary_title.tier > tier_county + government_has_flag = government_is_special_republic + } + } + } + } + multiply = 0 + } + } +} tradition_creaght = { category = societal diff --git a/common/defines/00_defines.txt b/common/defines/00_defines.txt index deda2994..23285f90 100644 --- a/common/defines/00_defines.txt +++ b/common/defines/00_defines.txt @@ -552,6 +552,7 @@ NGovernment = { "landless_minority_government" "nomad_government" "herder_government" + "peasant_republic_government" "celestial_government" "japan_administrative_government" "japan_feudal_government" @@ -965,7 +966,7 @@ NCounty = { COUNTY_FERTILITY_DECLINE_FACTOR = 0.125 # Makes all county fertility decline modifiers give out more adjusted growth. 1.1 = 10% stronger decline. Moves equilibriums COUNTY_FERTILITY_EQUILIBRIUM_FACTOR = 0.09 # 0.007 # Factor value for how sensitive the fertility equilibrium is towards small changes. Inverted in calculations: the lower the value the more sensitive the behavior. Set to 100 to have a clear curve. COUNTY_FERTILITY_MONTHLY_CHANGE_LEVELS = { -20 -0.01 0.01 20 } - COUNTY_FERTILITY_NON_NOMAD_HOLDING_MALUS = -0.75 # Negative mult malus applied to the amount of Herd gained from the county fertility in a county that does not have a Nomad or Herder Holding + COUNTY_FERTILITY_NON_NOMAD_HOLDING_MALUS = -0.01 # Negative mult malus applied to the amount of Herd gained from the county fertility in a county that does not have a Nomad or Herder Holding HERD_GAIN_FROM_COUNTY_MULTIPLIER = 0.5 # Direct multiplier on the base Herd gained from County ( Base Gain = CountyFertility * HERD_GAIN_FROM_COUNTY_MULTIPLIER ) } @@ -1398,7 +1399,7 @@ NBarter = { BASE_PROGRESS = 15 PROGRESS_PER_SOLDIER = 0.005 LOOT_PER_SOLDIER = 0.1 # How much loot can a single soldier carry? Minimum increment is 0.001 - BARTER_GOODS_TO_LOOT_MULT = 0.5 # Used to convert Barter Goods to Loot. A value of 0.5 means that 2 Barter Goods are worth 1 Loot + BARTER_GOODS_TO_LOOT_MULT = 1.5 # Used to convert Barter Goods to Loot. A value of 0.5 means that 2 Barter Goods are worth 1 Loot } NCharacterGlow = { diff --git a/common/domiciles/buildings/NEOW_farm_buildings.txt b/common/domiciles/buildings/NEOW_farm_buildings.txt new file mode 100644 index 00000000..14819903 --- /dev/null +++ b/common/domiciles/buildings/NEOW_farm_buildings.txt @@ -0,0 +1,433 @@ + +farm_estate_main_01 = { + slot_type = main + construction_time = 1 + allowed_domicile_types = { farm_estate } + + cost = { + gold = estate_external_building_high_cost_tier_2_value + } + + character_modifier = { + domicile_monthly_gold_add = 0.25 + health = 0.5 + domicile_external_slots_capacity_add = 2 + monthly_barter_goods = 1 + } + + + ai_value = { + value = 100 + } + + parameters = { + camp_unlocks_second_officer = yes + camp_unlocks_huntperson_officer = yes + camp_unlocks_chief_forager_officer = yes + } + asset = { + trigger = { + domicile_location.culture = { + has_graphical_east_asia_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_chinese_mask.png" + soundeffect = "event:/DLC/EP4/SFX/UI/domicile_buildings/tgp_ui_domicile_building_chinese_main_building" + } + + asset = { + trigger = { + domicile_location.culture = { + OR = { + has_graphical_iranian_culture_group_trigger = yes + has_graphical_mena_culture_group_trigger = yes + has_graphical_steppe_culture_group_trigger = yes + has_graphical_african_culture_group_trigger = yes + has_graphical_india_culture_group_trigger = yes + has_graphical_iberian_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/farm_estate_building_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_mena_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building" + } + + asset = { + trigger = { + domicile_location.culture = { + OR = { + has_graphical_western_culture_group_trigger = yes + has_graphical_norse_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/farm_estate_building_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_western_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building" + } + + asset = { + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building" + } +} + +farm_estate_main_02 = { + slot_type = main + construction_time = 730 + allowed_domicile_types = { farm_estate } + previous_building = farm_estate_main_01 + + can_construct = { + culture ?= { has_innovation = innovation_city_planning } + } + + cost = { + gold = estate_external_building_high_cost_tier_3_value + } + + parameters = { + camp_unlocks_second_officer = yes + reduce_success_of_raid_estate = yes + estate_increase_house_member_investment_cap_1 = yes + monthly_barter_goods = 1.2 + } + + character_modifier = { + domicile_monthly_gold_add = 0.25 + domicile_external_slots_capacity_add = 1 + men_at_arms_cap = 1 + enemy_hostile_scheme_phase_duration_add = miniscule_scheme_phase_duration_malus_value + character_travel_safety_mult = 0.02 + } + + ai_value = { + value = 100 + } + + asset = { + trigger = { + domicile_location.culture = { + has_graphical_east_asia_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_chinese_mask.png" + soundeffect = "event:/DLC/EP4/SFX/UI/domicile_buildings/tgp_ui_domicile_building_chinese_main_building" + } + + asset = { + trigger = { + domicile_location.culture = { + OR = { + has_graphical_iranian_culture_group_trigger = yes + has_graphical_mena_culture_group_trigger = yes + has_graphical_steppe_culture_group_trigger = yes + has_graphical_african_culture_group_trigger = yes + has_graphical_india_culture_group_trigger = yes + has_graphical_iberian_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/farm_estate_building_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_mena_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building" + } + + asset = { + trigger = { + domicile_location.culture = { + OR = { + has_graphical_western_culture_group_trigger = yes + has_graphical_norse_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/farm_estate_building_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_western_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building" + } + + asset = { + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building" + } +} + +farm_estate_main_03 = { + slot_type = main + construction_time = 730 + allowed_domicile_types = { farm_estate } + previous_building = farm_estate_main_02 + + can_construct = { + culture ?= { has_innovation = innovation_manorialism } + } + + cost = { + gold = estate_external_building_high_cost_tier_4_value + } + + parameters = { + camp_unlocks_second_officer = yes + reduce_success_of_raid_estate = yes + estate_increase_house_member_investment_cap_2 = yes + } + + character_modifier = { + domicile_monthly_gold_add = 0.5 + domicile_monthly_gold_mult = 0.02 + domicile_external_slots_capacity_add = 1 + maa_toughness_mult = 0.05 + enemy_hostile_scheme_phase_duration_add = minor_scheme_phase_duration_malus_value + character_travel_safety_mult = 0.02 + monthly_barter_goods = 1.4 + } + + ai_value = { + value = 100 + } + + asset = { + trigger = { + domicile_location.culture = { + has_graphical_east_asia_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_chinese_mask.png" + soundeffect = "event:/DLC/EP4/SFX/UI/domicile_buildings/tgp_ui_domicile_building_chinese_main_building" + } + + asset = { + trigger = { + domicile_location.culture = { + OR = { + has_graphical_iranian_culture_group_trigger = yes + has_graphical_mena_culture_group_trigger = yes + has_graphical_steppe_culture_group_trigger = yes + has_graphical_african_culture_group_trigger = yes + has_graphical_india_culture_group_trigger = yes + has_graphical_iberian_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/farm_estate_building_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_mena_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building" + } + + asset = { + trigger = { + domicile_location.culture = { + OR = { + has_graphical_western_culture_group_trigger = yes + has_graphical_norse_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/farm_estate_building_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_western_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building" + } + + asset = { + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building" + } +} + +farm_estate_main_04 = { + slot_type = main + construction_time = 730 + allowed_domicile_types = { farm_estate } + previous_building = farm_estate_main_03 + + can_construct = { + culture ?= { has_innovation = innovation_development_03 } + } + + cost = { + gold = estate_external_building_high_cost_tier_5_value + } + + parameters = { + camp_unlocks_second_officer = yes + reduce_success_of_raid_estate = yes + estate_increase_house_member_investment_cap_3 = yes + } + + character_modifier = { + domicile_monthly_gold_add = 0.5 + domicile_monthly_gold_mult = 0.03 + domicile_external_slots_capacity_add = 1 + maa_toughness_mult = 0.05 + men_at_arms_cap = 1 + enemy_hostile_scheme_phase_duration_add = medium_scheme_phase_duration_malus_value + character_travel_safety_mult = 0.02 + monthly_barter_goods = 1.6 + } + + ai_value = { + value = 100 + } + + asset = { + trigger = { + domicile_location.culture = { + has_graphical_east_asia_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_chinese_mask.png" + soundeffect = "event:/DLC/EP4/SFX/UI/domicile_buildings/tgp_ui_domicile_building_chinese_main_building" + } + + asset = { + trigger = { + domicile_location.culture = { + OR = { + has_graphical_iranian_culture_group_trigger = yes + has_graphical_mena_culture_group_trigger = yes + has_graphical_steppe_culture_group_trigger = yes + has_graphical_african_culture_group_trigger = yes + has_graphical_india_culture_group_trigger = yes + has_graphical_iberian_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/farm_estate_building_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_mena_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building" + } + + asset = { + trigger = { + domicile_location.culture = { + OR = { + has_graphical_western_culture_group_trigger = yes + has_graphical_norse_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/farm_estate_building_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_western_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building" + } + + asset = { + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building" + } +} + +farm_estate_main_05 = { + slot_type = main + construction_time = 730 + allowed_domicile_types = { farm_estate } + previous_building = farm_estate_main_04 + + can_construct = { + culture ?= { has_innovation = innovation_cranes } + } + + cost = { + gold = estate_external_building_high_cost_tier_6_value + } + + parameters = { + camp_unlocks_second_officer = yes + reduce_success_of_raid_estate = yes + estate_increase_house_member_investment_cap_4 = yes + } + + character_modifier = { + domicile_monthly_gold_add = 0.75 + domicile_monthly_gold_mult = 0.05 + domicile_external_slots_capacity_add = 1 + maa_toughness_mult = 0.1 + men_at_arms_cap = 1 + enemy_hostile_scheme_phase_duration_add = medium_scheme_phase_duration_malus_value + character_travel_safety_mult = 0.04 + monthly_barter_goods = 1.8 + } + + ai_value = { + value = 100 + } + + asset = { + trigger = { + domicile_location.culture = { + has_graphical_east_asia_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_chinese_mask.png" + soundeffect = "event:/DLC/EP4/SFX/UI/domicile_buildings/tgp_ui_domicile_building_chinese_main_building" + } + + asset = { + trigger = { + domicile_location.culture = { + OR = { + has_graphical_iranian_culture_group_trigger = yes + has_graphical_mena_culture_group_trigger = yes + has_graphical_steppe_culture_group_trigger = yes + has_graphical_african_culture_group_trigger = yes + has_graphical_india_culture_group_trigger = yes + has_graphical_iberian_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/farm_estate_building_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_mena_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building" + } + + asset = { + trigger = { + domicile_location.culture = { + OR = { + has_graphical_western_culture_group_trigger = yes + has_graphical_norse_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/farm_estate_building_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_western_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building" + } + + asset = { + icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds" + texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building" + } +} \ No newline at end of file diff --git a/common/domiciles/buildings/NEOW_minority_community_buildings.txt b/common/domiciles/buildings/NEOW_minority_community_buildings.txt index 4fe2d8b1..b3deb6e3 100644 --- a/common/domiciles/buildings/NEOW_minority_community_buildings.txt +++ b/common/domiciles/buildings/NEOW_minority_community_buildings.txt @@ -3796,7 +3796,7 @@ village_watch_06 = { ### Garden communal_gardens_01 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } cost = { gold = { @@ -3920,7 +3920,7 @@ communal_gardens_01 = { } communal_gardens_02 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = communal_gardens_01 cost = { @@ -4045,7 +4045,7 @@ communal_gardens_02 = { } communal_gardens_03 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = communal_gardens_02 cost = { @@ -4172,7 +4172,7 @@ communal_gardens_03 = { # Leisure Garden sub-branch communal_gardens_leisure_04 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = communal_gardens_03 can_construct = { @@ -4302,7 +4302,7 @@ communal_gardens_leisure_04 = { } communal_gardens_leisure_05 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = communal_gardens_leisure_04 can_construct = { @@ -4432,7 +4432,7 @@ communal_gardens_leisure_05 = { } communal_gardens_leisure_06 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = communal_gardens_leisure_05 can_construct = { @@ -4564,7 +4564,7 @@ communal_gardens_leisure_06 = { # Fruit Garden sub-branch communal_gardens_fruit_04 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = communal_gardens_03 can_construct = { @@ -4694,7 +4694,7 @@ communal_gardens_fruit_04 = { } communal_gardens_fruit_05 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = communal_gardens_fruit_04 can_construct = { @@ -4824,7 +4824,7 @@ communal_gardens_fruit_05 = { } communal_gardens_fruit_06 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = communal_gardens_fruit_05 can_construct = { @@ -6954,7 +6954,7 @@ village_workshop_textile_06 = { ### Storage village_storage_01 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } cost = { gold = { @@ -7037,8 +7037,8 @@ village_storage_01 = { } village_storage_02 = { construction_time = 730 - allowed_domicile_types = { minority_community } - previous_building = village_storage_01 + allowed_domicile_types = { minority_community farm_estate } + previous_building = village_storage_01 cost = { gold = { @@ -7123,7 +7123,7 @@ village_storage_02 = { # Warehouse sub-branch village_storage_warehouse_03 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_storage_02 can_construct = { @@ -7209,7 +7209,7 @@ village_storage_warehouse_03 = { } village_storage_warehouse_04 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_storage_warehouse_03 can_construct = { @@ -7297,7 +7297,7 @@ village_storage_warehouse_04 = { # Granary sub-branch village_storage_granary_03 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_storage_02 can_construct = { @@ -7386,7 +7386,7 @@ village_storage_granary_03 = { } village_storage_granary_04 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_storage_granary_03 can_construct = { @@ -7973,7 +7973,7 @@ village_market_06 = { ### Grazing Lands village_grazing_land_01 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } cost = { gold = { @@ -8093,7 +8093,7 @@ village_grazing_land_01 = { } village_grazing_land_02 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_grazing_land_01 cost = { @@ -8215,7 +8215,7 @@ village_grazing_land_02 = { } village_grazing_land_03 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_grazing_land_02 cost = { @@ -8338,7 +8338,7 @@ village_grazing_land_03 = { } village_grazing_land_04 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_grazing_land_03 can_construct = { @@ -8452,7 +8452,7 @@ village_grazing_land_04 = { } grazing_land_05 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_grazing_land_04 can_construct = { @@ -8566,7 +8566,7 @@ grazing_land_05 = { } grazing_land_06 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = grazing_land_05 can_construct = { @@ -8683,7 +8683,7 @@ grazing_land_06 = { ### Grain Fields village_grain_fields_01 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } cost = { gold = { @@ -8820,7 +8820,7 @@ village_grain_fields_01 = { } village_grain_fields_02 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_grain_fields_01 cost = { @@ -8948,7 +8948,7 @@ village_grain_fields_02 = { } village_grain_fields_03 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_grain_fields_02 can_construct = { @@ -9081,7 +9081,7 @@ village_grain_fields_03 = { } village_grain_fields_04 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_grain_fields_03 can_construct = { @@ -9214,7 +9214,7 @@ village_grain_fields_04 = { } village_grain_fields_05 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_grain_fields_04 can_construct = { @@ -9347,7 +9347,7 @@ village_grain_fields_05 = { } village_grain_fields_06 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_grain_fields_05 can_construct = { @@ -9482,7 +9482,7 @@ village_grain_fields_06 = { ### Rice Fields village_rice_field_01 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } cost = { gold = { @@ -9559,7 +9559,7 @@ village_rice_field_01 = { village_rice_field_02 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_rice_field_01 cost = { @@ -9636,7 +9636,7 @@ village_rice_field_02 = { village_rice_field_03 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_rice_field_02 can_construct = { @@ -9718,7 +9718,7 @@ village_rice_field_03 = { village_rice_field_04 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_rice_field_03 can_construct = { @@ -9800,7 +9800,7 @@ village_rice_field_04 = { village_rice_field_05 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_rice_field_04 can_construct = { @@ -9882,7 +9882,7 @@ village_rice_field_05 = { village_rice_field_06 = { construction_time = 730 - allowed_domicile_types = { minority_community } + allowed_domicile_types = { minority_community farm_estate } previous_building = village_rice_field_05 can_construct = { diff --git a/common/domiciles/types/NEOW_domicile_types.txt b/common/domiciles/types/NEOW_domicile_types.txt index 0bea98f2..83e4d326 100644 --- a/common/domiciles/types/NEOW_domicile_types.txt +++ b/common/domiciles/types/NEOW_domicile_types.txt @@ -1169,3 +1169,1140 @@ minority_community = { ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_green_lands" } } + +farm_estate = { + rename_window = house + + illustration = "gfx/interface/illustrations/event_scenes/ep3_medi_estate.dds" + icon = "gfx/interface/icons/flat_icons/farmer.dds" + map_pin_texture = "gfx/interface/icons/map_icons/map_icon_farmer.dds" + map_pin_anchor = up + map_pin_lobby = yes + + herd = yes + travel = yes + culture_and_faith = yes + + move_with_realm_capital = yes + can_move_manually = no + + base_external_slots = 2 + + map_entity = { + trigger = { + owner ?= { is_alive = yes } + owner.culture = { + OR = { + has_graphical_iranian_culture_group_trigger = yes + has_graphical_mena_culture_group_trigger = yes + has_graphical_steppe_culture_group_trigger = yes + has_graphical_african_culture_group_trigger = yes + } + } + } + reference = "building_mena_city_01_entity" + } + map_entity = { + trigger = { + owner ?= { is_alive = yes } + owner.culture = { + has_graphical_india_culture_group_trigger = yes + } + } + reference = "building_india_city_01_entity" + } + map_entity = { + trigger = { + owner ?= { is_alive = yes } + } + reference = "western_city_01_a_entity" + } + + domicile_temperament_low_modifier = { + name = domicile_temperament_low + army_damage_mult = -0.2 + contract_scheme_phase_duration_add = 10 + domicile_monthly_gold_mult = -0.25 + domicile_monthly_piety_gain_mult = -0.25 + domicile_monthly_prestige_gain_mult = -0.25 + monthly_piety_gain = -0.3 + monthly_prestige_gain = -0.3 + army_maintenance_mult = 0.2 + scale = { + add = default_temperament_low_value_scale + min = 1 + } + } + domicile_temperament_high_modifier = { + name = domicile_temperament_high + domicile_monthly_gold_mult = 0.25 + domicile_monthly_piety_gain_mult = 0.25 + domicile_monthly_prestige_gain_mult = 0.25 + monthly_piety_gain = 0.3 + monthly_prestige_gain = 0.3 + army_maintenance_mult = 0.2 + scale = { + add = default_temperament_high_value_scale + min = 1 + } + } + domicile_temperament_high_modifier = { + name = domicile_temperament_high + army_toughness_mult = 0.05 + owned_contract_scheme_success_chance_growth_add = 0.4 + scale = { + add = default_temperament_high_value_scale + min = 1 + } + } + + domicile_temperament_high_modifier = { + name = domicile_temperament_high + tolerance_advantage_mod = 1 + scale = { + add = default_temperament_high_value_scale + min = 1 + max = 10 + if = { + limit = { + NOT = { has_perk = faithful_perk } + } + multiply = 0 + } + } + } + + domicile_temperament_high_modifier = { + name = domicile_temperament_high + knight_effectiveness_mult = 0.1 + scale = { + add = default_temperament_high_value_scale + min = 1 + if = { + limit = { + NOT = { has_perk = absolute_control_perk } + } + multiply = 0 + } + } + } + + + domicile_temperament_high_modifier = { + name = domicile_temperament_high + personal_scheme_phase_duration_add = -25 + scale = { + add = default_temperament_high_value_scale + min = 1 + if = { + limit = { + NOT = { has_perk = writing_history_perk } + } + multiply = 0 + } + } + } + + domicile_temperament_high_modifier = { + name = domicile_temperament_high + monthly_piety = 0.4 + scale = { + add = { + every_courtier = { + limit = { + faith = root.faith + } + add = 1 + } + } + if = { + limit = { + NOT = { has_perk = religious_icon_perk } + } + multiply = 0 + } + } + } + + domicile_temperament_high_modifier = { + name = domicile_temperament_high + diplomacy = 0.34 + intrigue = 0.34 + martial = 0.34 + stewardship = 0.34 + learning = 0.34 + scale = { + add = { + every_courtier = { + limit = { + is_imprisoned = no + } + faith = { + if = { + limit = { + NOT = { is_in_list = unique_faiths } + add_to_temporary_list = unique_faiths + } + } + } + } + every_in_list = { + list = unique_faiths + add = 1 + } + max = 15 + } + if = { + limit = { + NOT = { has_perk = apostate_perk } + } + multiply = 0 + } + } + } + domicile_building_slots = { + external_slot_1 = { + position = { 19.7% 5.5% } + size = { 15% 30% } + + ### EMPTY SLOT GREEN TERRAIN + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = tells + terrain = hills + terrain = plains + terrain = forest + terrain = farmlands + terrain = terraced_hills + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_green.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_green_mask.png" + } + + ### EMPTY SLOT ROUGH TERRAIN + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = taiga + terrain = steppe + terrain = drylands + terrain = mountains + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_rough.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_rough_mask.png" + } + + ### EMPTY SLOT WETLANDS TERRAIN + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = wetlands + terrain = floodplains + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_green.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_green_mask.png" + } + + ### EMPTY SLOT JUNGLE TERRAIN + empty_slot_asset = { + trigger = { + domicile_location = { + terrain = jungle + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_wetlands.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_wetlands_mask.png" + } + + ### EMPTY SLOT SNOW TERRAIN + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + has_province_modifier = winter_normal_modifier + has_province_modifier = winter_harsh_modifier + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_wetlands.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_wetlands_mask.png" + } + + ### EMPTY SLOT DESERT TERRAIN + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = desert + terrain = desert_mountains + terrain = oasis + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_drylands.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_drylands_mask.png" + } + + + # Under Construction + construction_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_chinese_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_mena_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_western_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png" + } + construction_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png" + } + } + + external_slot_4 = { + position = { 49.0% 2.5% } + size = { 15% 30% } + + ### EMPTY SLOT ASIAN + empty_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/asian_empty_slot_04.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/yurt_empty_slot_04_mask.png" + } + + ### EMPTY SLOT SNOW MOUNTAIN TERRAIN + empty_slot_asset = { + trigger = { + domicile_location = { + terrain = mountains + + OR = { + has_province_modifier = winter_normal_modifier + has_province_modifier = winter_harsh_modifier + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_snow_02.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_snow_02_mask.png" + } + + ### EMPTY SLOT SNOW TERRAIN + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + has_province_modifier = winter_normal_modifier + has_province_modifier = winter_harsh_modifier + + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_snow_02.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_snow_02_mask.png" + } + + ### EMPTY SLOT GREEN TERRAIN + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = tells + terrain = hills + terrain = plains + terrain = forest + terrain = farmlands + terrain = terraced_hills + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_green_02.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_green_02_mask.png" + } + + ### EMPTY SLOT ROUGH TERRAIN + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = taiga + terrain = steppe + terrain = drylands + terrain = mountains + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_rough_02.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_rough_02_mask.png" + } + + ### EMPTY SLOT WETLANDS TERRAIN + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = wetlands + terrain = floodplains + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_green_02.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_green_02_mask.png" + } + + ### EMPTY SLOT JUNGLE TERRAIN + empty_slot_asset = { + trigger = { + domicile_location = { + terrain = jungle + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_jungle_03.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_jungle_03_mask.png" + } + + ### EMPTY SLOT DESERT TERRAIN + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = desert + terrain = desert_mountains + terrain = oasis + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_drylands_03.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_drylands_03_mask.png" + } + + + # Under Construction + construction_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_chinese_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_mena_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_western_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png" + } + construction_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png" + } + } + + main_slot = { + slot_type = main + position = { 28.2% 13.2% } + size = { 28% 34.5% } + + empty_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/yurt_empty_slot_01.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/yurt_empty_slot_01_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = jungle + terrain = wetlands + terrain = floodplains + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_grain_fields_byzantine_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = drylands + terrain = desert + terrain = desert_mountains + terrain = oasis + terrain = steppe + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_grain_fields_byzantine_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = hills + terrain = mountains + terrain = terraced_hills + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_grain_fields_byzantine_mask.png" + } + + empty_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_grain_fields_byzantine_mask.png" + } + + # Under Construction + construction_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_chinese_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_mena_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_manor_construction_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_manor_construction_mena_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_western_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_manor_construction_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_manor_construction_western_mask.png" + } + construction_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_manor_construction_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_manor_construction_byzantine_mask.png" + } + } + + external_slot_2 = { + position = { 4% 20% } + size = { 15% 30% } + + empty_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/yurt_empty_slot_02.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/yurt_empty_slot_02_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = jungle + terrain = wetlands + terrain = floodplains + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_jungle_empty_06.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_06_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = drylands + terrain = desert + terrain = desert_mountains + terrain = oasis + terrain = steppe + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_drylands_empty_06.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_06_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = mountains + terrain = hills + terrain = terraced_hills + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_rough_empty_06.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_06_mask.png" + } + + empty_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty_06.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_06_mask.png" + } + + + # Under Construction + construction_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_chinese_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_mena_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_western_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png" + } + construction_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png" + } + } + + external_slot_3 = { + position = { 14% 46% } + size = { 15% 30% } + + empty_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/yurt_empty_slot_03.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/yurt_empty_slot_03_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = jungle + terrain = wetlands + terrain = floodplains + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_jungle_empty_04.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_04_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = drylands + terrain = desert + terrain = desert_mountains + terrain = oasis + terrain = steppe + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_drylands_empty_04.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_04_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = mountains + terrain = hills + terrain = terraced_hills + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_rough_empty_04.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_04_mask.png" + } + + empty_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty_04.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_04_mask.png" + } + + + # Under Construction + construction_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_chinese_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_mena_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_western_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png" + } + construction_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png" + } + } + + external_slot_5 = { + position = { 64% 29% } + size = { 15% 30% } + + empty_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/yurt_empty_slot_05.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/yurt_empty_slot_05_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = jungle + terrain = wetlands + terrain = floodplains + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_jungle_empty_03.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_03_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = drylands + terrain = desert + terrain = desert_mountains + terrain = oasis + terrain = steppe + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_drylands_empty_05.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_05_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = mountains + terrain = hills + terrain = terraced_hills + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_rough_empty_02.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_02_mask.png" + } + + empty_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty_02.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_02_mask.png" + } + + + # Under Construction + construction_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_chinese_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_mena_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_western_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png" + } + construction_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png" + } + } + + external_slot_6 = { + position = { 43% 52% } + size = { 15% 30% } + + empty_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/yurt_empty_slot_06.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/yurt_empty_slot_06_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = jungle + terrain = wetlands + terrain = floodplains + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_jungle_empty.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = drylands + terrain = desert + terrain = desert_mountains + terrain = oasis + terrain = steppe + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_drylands_empty_02.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_02_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = mountains + terrain = hills + terrain = terraced_hills + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_rough_empty_05.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_05_mask.png" + } + + empty_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_mask.png" + } + + + # Under Construction + construction_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_chinese_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_mena_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_western_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png" + } + construction_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png" + } + } + } + + domicile_asset = { + trigger = { + domicile_location.culture = { + has_graphical_east_asia_culture_group_trigger = yes + } + } + background = "gfx/interface/window_domiciles/estate_background_steppe_terrain.dds" + foreground = "gfx/interface/window_domiciles/estate_background_steppe_terrain_foreground.dds" + ambience = "event:/DLC/CE2/Ambience/2D/Domicile/ce2_amb_2d_domicile_yurt" + } + + + domicile_asset = { + trigger = { + domicile_location = { + OR = { + terrain = jungle + terrain = wetlands + terrain = floodplains + } + } + } + background = "gfx/interface/window_domiciles/estate_background_jungle_terrain.dds" + foreground = "gfx/interface/window_domiciles/estate_background_jungle_terrain_foreground.dds" + ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_wetlands" + } + + domicile_asset = { + trigger = { + domicile_location = { + OR = { + terrain = drylands + terrain = desert + terrain = desert_mountains + terrain = oasis + terrain = steppe + } + } + } + background = "gfx/interface/window_domiciles/estate_background_dry_terrain.dds" + foreground = "gfx/interface/window_domiciles/estate_background_dry_terrain_foreground.dds" + ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_dry_lands" + } + + domicile_asset = { + trigger = { + domicile_location = { + OR = { + terrain = tells + terrain = hills + terrain = mountains + terrain = terraced_hills + } + } + } + background = "gfx/interface/window_domiciles/estate_background_rough_terrain.dds" + foreground = "gfx/interface/window_domiciles/estate_background_rough_terrain_foreground.dds" + ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_rough_lands" + } + + domicile_asset = { + background = "gfx/interface/window_domiciles/estate_background_green_terrain.dds" + foreground = "gfx/interface/window_domiciles/estate_background_green_terrain_foreground.dds" + ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_green_lands" + } +} \ No newline at end of file diff --git a/common/governments/00_government_types.txt b/common/governments/00_government_types.txt index 9f1651bb..a53efd01 100644 --- a/common/governments/00_government_types.txt +++ b/common/governments/00_government_types.txt @@ -49,6 +49,11 @@ republic_government = { inherit_from_dynastic_government = no } + can_get_government = { + culture = { + NOT = { has_cultural_tradition = tradition_farmer_republics } + } + } ai = { arrange_marriage = no use_goals = no @@ -607,6 +612,77 @@ landless_minority_government = { realm_mask_offset = { 0.0 0.0 } realm_mask_scale = { 1 1 } } + +peasant_republic_government = { + primary_holding = city_holding + valid_holdings = { temple_citadel_holding } + required_county_holdings = { city_holding church_holding } + government_rules = { + create_cadet_branches = yes + court_generate_spouses = yes + council = yes + always_use_patronym = yes + rulers_should_have_dynasty = yes + landless_playable = yes + legitimacy = yes + barter = yes + mercenary = yes + use_as_base_on_landed = yes + allow_out_of_realm_inheritance = no + use_as_base_on_rank_up = yes + uses_county_fertility = yes + sticky_government = yes + replenishes_county_fertility = yes + regiments_use_barter_goods_as_gold = yes + } + + can_get_government = { + culture = { + has_cultural_tradition = tradition_farmer_republics + } + } + domicile_type = farm_estate + ai = { + use_scripted_guis = no + } + top_liege_character_modifier = { + county_fertility_decline_add = -10 + domain_limit_max = -2 + vassal_limit_max = 5 + } + character_modifier = { + levy_size = 1.5 + feudal_government_tax_contribution_mult = -0.5 + feudal_government_levy_contribution_mult = -0.5 + clan_government_tax_contribution_mult = -0.5 + clan_government_levy_contribution_mult = -0.5 + men_at_arms_cap = -1 + men_at_arms_limit = -1 + knight_limit = -5 + active_accolades = -1 + title_creation_cost_mult = 1.5 + mercenary_hire_cost_mult = 2 + men_at_arms_maintenance = 1.5 + } + vassal_contract_group = feudal_vassal + + # Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player). + flags = { + government_is_settled + may_elevate_co_monarch + government_uses_legitimacy + government_uses_domain_limit + government_is_herder + government_has_herd + government_is_barterer + government_is_prepublic + government_locked_to_elective + } + + color = hsv{ 0.30 0.60 0.68 } + realm_mask_offset = { 0.0 -0.01 } + realm_mask_scale = { 1 1 } +} ### Brief: nomad_government # Default nomad government, used for the Steppe Region # @@ -741,6 +817,7 @@ herder_government = { # Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player). flags = { government_is_herder + government_is_true_herder government_has_herd ignores_faith_marriage_penalties } diff --git a/common/landed_titles/noble_families.txt b/common/landed_titles/noble_families.txt index b946460c..8c4b76ef 100644 --- a/common/landed_titles/noble_families.txt +++ b/common/landed_titles/noble_families.txt @@ -17,6 +17,20 @@ #} #Brytanya +d_nf_colbrugha = { # Cyflymarhyan (Quicksilver) + color = { 100 100 100 } + capital = c_desmond + + definite_form = yes + landless = yes + ruler_uses_title_name = no + always_follows_primary_heir = yes + no_automatic_claims = yes + noble_family = yes + destroy_if_invalid_heir = yes + + ai_primary_priority = { add = @never_primary_score } +} d_nf_cyflymarhyan = { # Cyflymarhyan (Quicksilver) color = { 100 100 100 } capital = c_london diff --git a/common/legitimacy/00_legitimacy.txt b/common/legitimacy/00_legitimacy.txt new file mode 100644 index 00000000..0ba484b1 --- /dev/null +++ b/common/legitimacy/00_legitimacy.txt @@ -0,0 +1,915 @@ +###################### +# Legitimacy +###################### + +count_legitimacy = { + is_valid = { + highest_held_title_tier = tier_county + government_has_flag = government_is_prepublic + NOR = { + government_allows = administrative + government_has_flag = government_is_nomadic + government_has_flag = government_is_mandala + } + } + + ai_expected_level = default_ai_legitimacy_expectation + + below_expectations_opinion = default_legitimacy_opinion_penalty + + max = legitimacy_max + + # Scales based on Tier and Era + ## A Tribal era Count requires 4x less than a Late Medieval era Emperor + level = { + threshold = legitimacy_level_1 + modifier = { + short_reign_duration_mult = 0.25 + monthly_dynasty_prestige = -0.1 + county_opinion_add = -10 + } + flag = reduced_marriage_acceptance + flag = increased_claim_cb_cost + flag = reduced_alliance_acceptance + flag = reduced_vassalization_acceptance + flag = reduced_tributarization_acceptance + flag = increased_factions + } + # Gap of at least 50 + level = { + threshold = legitimacy_level_2 # 50-200 + modifier = { + short_reign_duration_mult = -0.1 + } + } + # Gap of at least 100 + level = { + threshold = legitimacy_level_3 # 150-600 + modifier = { + short_reign_duration_mult = -0.25 + } + flag = reduced_claim_cb_cost + flag = increased_marriage_acceptance + } + # Gap of at least 200 + level = { + threshold = legitimacy_level_4 # 350-1400 + modifier = { + short_reign_duration_mult = -0.5 + county_opinion_add = 10 + } + flag = increased_marriage_acceptance + flag = increased_alliance_acceptance + flag = very_reduced_claim_cb_cost + flag = reduced_factions + flag = reduced_swing_scales_cost + flag = reduced_title_creation_cost + } + # Gap of at least 350 + level = { + threshold = legitimacy_level_5 # 700-2800 + modifier = { + short_reign_duration_mult = -0.75 + monthly_dynasty_prestige = 0.25 + county_opinion_add = 20 + } + flag = very_increased_marriage_acceptance + flag = very_increased_alliance_acceptance + flag = extra_reduced_claim_cb_cost + flag = very_reduced_factions + flag = very_reduced_swing_scales_cost + flag = very_reduced_title_creation_cost + } + # Gap of at least 500 + level = { + threshold = legitimacy_level_6 # 1200-4800 + modifier = { + short_reign_duration_mult = -1 + monthly_dynasty_prestige = 0.5 + county_opinion_add = 30 + } + flag = extra_increased_marriage_acceptance + flag = extra_increased_alliance_acceptance + flag = extra_reduced_claim_cb_cost + flag = extra_reduced_factions + flag = extra_swing_scales_cost + flag = extra_reduced_title_creation_cost + } +} + +duke_legitimacy = { + is_valid = { + highest_held_title_tier = tier_duchy + NOT = { + government_has_flag = government_is_prepublic + } + NOR = { + government_allows = administrative + government_has_flag = government_is_nomadic + government_has_flag = government_is_mandala + } + } + + ai_expected_level = default_ai_legitimacy_expectation + + below_expectations_opinion = default_legitimacy_opinion_penalty + + max = legitimacy_max + + # Scales based on Tier and Era + ## A Tribal era Count requires 4x less than a Late Medieval era Emperor + level = { + threshold = legitimacy_level_1 + modifier = { + short_reign_duration_mult = 0.5 + monthly_dynasty_prestige = -0.1 + county_opinion_add = -10 + } + flag = very_reduced_marriage_acceptance + flag = very_increased_claim_cb_cost + flag = very_reduced_alliance_acceptance + flag = very_reduced_vassalization_acceptance + flag = slightly_reduced_tributarization_acceptance + flag = very_increased_factions + flag = very_increased_swing_scales_cost + } + # Gap of at least 50 + level = { + threshold = legitimacy_level_2 # 50-200 + modifier = { + short_reign_duration_mult = 0.1 + county_opinion_add = -5 + } + flag = reduced_marriage_acceptance + flag = increased_claim_cb_cost + flag = reduced_alliance_acceptance + flag = reduced_vassalization_acceptance + flag = reduced_tributarization_acceptance + flag = increased_factions + flag = increased_swing_scales_cost + } + # Gap of at least 100 + level = { + threshold = legitimacy_level_3 # 150-600 + modifier = { + short_reign_duration_mult = -0.15 + } + } + # Gap of at least 200 + level = { + threshold = legitimacy_level_4 # 350-1400 + modifier = { + short_reign_duration_mult = -0.35 + } + flag = increased_marriage_acceptance + flag = reduced_claim_cb_cost + flag = increased_alliance_acceptance + flag = increased_vassalization_acceptance + flag = increased_tributarization_acceptance + flag = reduced_factions + flag = reduced_swing_scales_cost + flag = reduced_title_creation_cost + } + # Gap of at least 350 + level = { + threshold = legitimacy_level_5 # 700-2800 + modifier = { + short_reign_duration_mult = -0.65 + county_opinion_add = 10 + } + flag = very_increased_marriage_acceptance + flag = very_reduced_claim_cb_cost + flag = very_increased_alliance_acceptance + flag = very_increased_vassalization_acceptance + flag = very_increased_tributarization_acceptance + flag = very_reduced_factions + flag = very_reduced_swing_scales_cost + flag = very_reduced_title_creation_cost + } + # Gap of at least 500 + level = { + threshold = legitimacy_level_6 # 1200-4800 + modifier = { + short_reign_duration_mult = -1 + monthly_dynasty_prestige = 0.25 + county_opinion_add = 20 + } + flag = extra_increased_marriage_acceptance + flag = extra_reduced_claim_cb_cost + flag = extra_increased_alliance_acceptance + flag = extra_increased_vassalization_acceptance + flag = extra_increased_tributarization_acceptance + flag = extra_reduced_factions + flag = extra_reduced_swing_scales_cost + flag = extra_reduced_title_creation_cost + } +} + +king_legitimacy = { + is_valid = { + highest_held_title_tier = tier_kingdom + NOT = { + government_has_flag = government_is_prepublic + } + OR = { + NOT = { government_allows = administrative } + top_liege = this + } + NOR = { + government_has_flag = government_is_nomadic + government_has_flag = government_is_mandala + } + } + + ai_expected_level = default_ai_legitimacy_expectation + + below_expectations_opinion = default_legitimacy_opinion_penalty + + max = legitimacy_max + + # Scales based on Tier and Era + ## A Tribal era Count requires 4x less than a Late Medieval era Emperor + level = { + threshold = legitimacy_level_1 + modifier = { + short_reign_duration_mult = 0.75 + monthly_dynasty_prestige = -0.2 + county_opinion_add = -20 + } + flag = very_reduced_marriage_acceptance + flag = very_increased_claim_cb_cost + flag = very_reduced_alliance_acceptance + flag = very_reduced_vassalization_acceptance + flag = reduced_tributarization_acceptance + flag = very_increased_factions + flag = very_increased_swing_scales_cost + + } + # Gap of at least 50 + level = { + threshold = legitimacy_level_2 # 50-200 + modifier = { + short_reign_duration_mult = 0.5 + monthly_dynasty_prestige = -0.1 + county_opinion_add = -10 + } + flag = reduced_marriage_acceptance + flag = increased_claim_cb_cost + flag = reduced_alliance_acceptance + flag = reduced_vassalization_acceptance + flag = slightly_reduced_tributarization_acceptance + flag = increased_factions + flag = increased_swing_scales_cost + } + # Gap of at least 100 + level = { + threshold = legitimacy_level_3 # 150-600 + modifier = { + short_reign_duration_mult = 0.25 + } + flag = reduced_marriage_acceptance + flag = reduced_vassalization_acceptance + flag = increased_claim_cb_cost + } + # Gap of at least 200 + level = { + threshold = legitimacy_level_4 # 350-1400 + modifier = { + short_reign_duration_mult = -0.10 + } + } + # Gap of at least 350 + level = { + threshold = legitimacy_level_5 # 700-2800 + modifier = { + short_reign_duration_mult = -0.25 + } + flag = increased_marriage_acceptance + flag = reduced_claim_cb_cost + flag = increased_alliance_acceptance + flag = increased_vassalization_acceptance + flag = increased_tributarization_acceptance + flag = reduced_factions + flag = reduced_swing_scales_cost + flag = reduced_title_creation_cost + } + # Gap of at least 500 + level = { + threshold = legitimacy_level_6 # 1200-4800 + modifier = { + short_reign_duration_mult = -0.5 + county_opinion_add = 10 + monthly_dynasty_prestige = 0.25 + } + flag = very_increased_marriage_acceptance + flag = very_reduced_claim_cb_cost + flag = very_increased_alliance_acceptance + flag = very_increased_vassalization_acceptance + flag = very_increased_tributarization_acceptance + flag = very_reduced_factions + flag = very_reduced_swing_scales_cost + flag = very_reduced_title_creation_cost + } +} + +emperor_legitimacy = { + is_valid = { + highest_held_title_tier = tier_empire + NOT = { + government_has_flag = government_is_prepublic + } + NOR = { + government_has_flag = government_is_nomadic + government_has_flag = government_is_mandala + } + } + + ai_expected_level = default_ai_legitimacy_expectation + + below_expectations_opinion = default_legitimacy_opinion_penalty + + max = legitimacy_max + + # Scales based on Tier and Era + ## A Tribal era Count requires 4x less than a Late Medieval era Emperor + level = { + threshold = legitimacy_level_1 + modifier = { + short_reign_duration_mult = 1 + monthly_dynasty_prestige = -0.3 + county_opinion_add = -30 + } + flag = massively_reduced_marriage_acceptance + flag = massively_increased_claim_cb_cost + flag = massively_reduced_vassalization_acceptance + flag = massively_reduced_tributarization_acceptance + flag = massively_reduced_alliance_acceptance + flag = massively_increased_factions + flag = massively_increased_swing_scales_cost + } + # Gap of at least 50 + level = { + threshold = legitimacy_level_2 # 50-200 + modifier = { + short_reign_duration_mult = 0.65 + monthly_dynasty_prestige = -0.2 + county_opinion_add = -20 + } + flag = very_reduced_marriage_acceptance + flag = very_increased_claim_cb_cost + flag = very_reduced_alliance_acceptance + flag = very_reduced_vassalization_acceptance + flag = very_reduced_tributarization_acceptance + flag = very_increased_factions + flag = very_increased_swing_scales_cost + } + # Gap of at least 100 + level = { + threshold = legitimacy_level_3 # 150-600 + modifier = { + short_reign_duration_mult = 0.35 + monthly_dynasty_prestige = -0.1 + county_opinion_add = -10 + } + flag = reduced_marriage_acceptance + flag = reduced_alliance_acceptance + flag = increased_claim_cb_cost + flag = reduced_vassalization_acceptance + flag = reduced_tributarization_acceptance + flag = increased_factions + flag = increased_swing_scales_cost + } + # Gap of at least 200 + level = { + threshold = legitimacy_level_4 # 350-1400 + modifier = { + short_reign_duration_mult = 0.15 + } + flag = reduced_marriage_acceptance + flag = reduced_vassalization_acceptance + flag = slightly_reduced_tributarization_acceptance + flag = increased_claim_cb_cost + } + # Gap of at least 350 + level = { + threshold = legitimacy_level_5 # 700-2800 + modifier = { + short_reign_duration_mult = -0.1 + } + } + # Gap of at least 500 + level = { + threshold = legitimacy_level_6 # 1200-4800 + modifier = { + short_reign_duration_mult = -0.25 + county_opinion_add = 10 + } + flag = increased_marriage_acceptance + flag = reduced_claim_cb_cost + flag = increased_alliance_acceptance + flag = increased_vassalization_acceptance + flag = increased_tributarization_acceptance + flag = reduced_factions + flag = reduced_title_creation_cost + flag = reduced_swing_scales_cost + } +} + +hegemon_legitimacy = { + is_valid = { + highest_held_title_tier = tier_hegemony + NOT = { + government_has_flag = government_is_prepublic + } + NOT = { government_has_flag = government_is_mandala } + NAND = { + has_tgp_dlc_trigger = yes + has_title = title:h_china + } + NOR = { + government_has_flag = government_is_nomadic + government_has_flag = government_is_mandala + } + } + + ai_expected_level = default_ai_legitimacy_expectation + + below_expectations_opinion = default_legitimacy_opinion_penalty + + max = legitimacy_max + + # Scales based on Tier and Era + ## A Tribal era Count requires 4x less than a Late Medieval era Emperor + level = { + threshold = legitimacy_level_1 + modifier = { + short_reign_duration_mult = 1.25 + monthly_dynasty_prestige = -0.4 + county_opinion_add = -40 + } + flag = massively_reduced_marriage_acceptance + flag = massively_increased_claim_cb_cost + flag = massively_reduced_vassalization_acceptance + flag = massively_reduced_tributarization_acceptance + flag = massively_reduced_alliance_acceptance + flag = massively_increased_factions + flag = massively_increased_swing_scales_cost + } + # Gap of at least 50 + level = { + threshold = legitimacy_level_2 # 50-200 + modifier = { + short_reign_duration_mult = 0.75 + monthly_dynasty_prestige = -0.3 + county_opinion_add = -30 + } + flag = very_reduced_marriage_acceptance + flag = very_increased_claim_cb_cost + flag = very_reduced_alliance_acceptance + flag = very_reduced_vassalization_acceptance + flag = very_reduced_tributarization_acceptance + flag = very_increased_factions + flag = very_increased_swing_scales_cost + } + # Gap of at least 100 + level = { + threshold = legitimacy_level_3 # 150-600 + modifier = { + short_reign_duration_mult = 0.5 + monthly_dynasty_prestige = -0.2 + county_opinion_add = -20 + } + flag = reduced_marriage_acceptance + flag = reduced_alliance_acceptance + flag = increased_claim_cb_cost + flag = reduced_vassalization_acceptance + flag = reduced_tributarization_acceptance + flag = increased_factions + flag = increased_swing_scales_cost + } + # Gap of at least 200 + level = { + threshold = legitimacy_level_4 # 350-1400 + modifier = { + short_reign_duration_mult = 0.2 + } + flag = reduced_marriage_acceptance + flag = reduced_vassalization_acceptance + flag = slightly_reduced_tributarization_acceptance + flag = increased_claim_cb_cost + } + # Gap of at least 350 + level = { + threshold = legitimacy_level_5 # 700-2800 + } + # Gap of at least 500 + level = { + threshold = legitimacy_level_6 # 1200-4800 + modifier = { + short_reign_duration_mult = -0.25 + county_opinion_add = 10 + } + flag = increased_marriage_acceptance + flag = reduced_claim_cb_cost + flag = increased_alliance_acceptance + flag = increased_vassalization_acceptance + flag = increased_tributarization_acceptance + flag = reduced_factions + flag = reduced_title_creation_cost + flag = reduced_swing_scales_cost + } +} + +mandate_legitimacy = { + is_valid = { + highest_held_title_tier = tier_hegemony + NOT = { + government_has_flag = government_is_prepublic + } + has_tgp_dlc_trigger = yes + has_title = title:h_china + } + + # must be equal to the dynastic_cycle_legitimacy_expectation script value and not dependent on vassal scopes + ai_expected_level = dynastic_cycle_legitimacy_expectation + + below_expectations_opinion = default_legitimacy_opinion_penalty + + max = mandate_legitimacy_max + + # Scales based on Tier and Era + ## A Tribal era Count requires 4x less than a Late Medieval era Emperor + level = { + threshold = legitimacy_level_1 + on_level_entered = { + situation:dynastic_cycle ?= { + if = { + limit = { + situation_top_has_catalyst = catalyst_hegemon_lost_mandate_of_heaven + months_from_game_start > 0 # We check this to avoid potentially triggering this immediately on game start + } + trigger_situation_catalyst = catalyst_hegemon_lost_mandate_of_heaven + } + } + } + on_level_entered_desc = { + desc = legitimacy_on_entered_lost_mandate + } + modifier = { + short_reign_duration_mult = 1.25 + monthly_dynasty_prestige = -0.4 + county_opinion_add = -40 + } + flag = massively_reduced_marriage_acceptance + flag = massively_increased_claim_cb_cost + flag = massively_reduced_vassalization_acceptance + flag = massively_reduced_tributarization_acceptance + flag = massively_reduced_alliance_acceptance + flag = massively_increased_factions + flag = massively_increased_swing_scales_cost + } + # Gap of at least 50 + level = { + threshold = legitimacy_level_2 # 50-200 + modifier = { + short_reign_duration_mult = 0.75 + monthly_dynasty_prestige = -0.3 + county_opinion_add = -30 + } + flag = very_reduced_marriage_acceptance + flag = very_increased_claim_cb_cost + flag = very_reduced_alliance_acceptance + flag = very_reduced_vassalization_acceptance + flag = very_reduced_tributarization_acceptance + flag = very_increased_factions + flag = very_increased_swing_scales_cost + } + # Gap of at least 100 + level = { + threshold = legitimacy_level_3 # 150-600 + modifier = { + short_reign_duration_mult = 0.5 + monthly_dynasty_prestige = -0.2 + county_opinion_add = -20 + } + flag = reduced_marriage_acceptance + flag = reduced_alliance_acceptance + flag = increased_claim_cb_cost + flag = reduced_vassalization_acceptance + flag = reduced_tributarization_acceptance + flag = increased_factions + flag = increased_swing_scales_cost + } + # Gap of at least 200 + level = { + threshold = legitimacy_level_4 # 350-1400 + modifier = { + short_reign_duration_mult = 0.2 + } + flag = reduced_marriage_acceptance + flag = reduced_vassalization_acceptance + flag = slightly_reduced_tributarization_acceptance + flag = increased_claim_cb_cost + } + # Gap of at least 350 + level = { + threshold = legitimacy_level_5 # 700-2800 + } + # Gap of at least 500 + level = { + threshold = legitimacy_level_6 # 1200-4800 + modifier = { + short_reign_duration_mult = -0.25 + county_opinion_add = 10 + } + flag = reduced_claim_cb_cost + flag = increased_marriage_acceptance + flag = increased_tributarization_acceptance + flag = reduced_factions + flag = reduced_title_creation_cost + flag = reduced_swing_scales_cost + } + level = { + threshold = legitimacy_level_7 # 1650-6600 + modifier = { + tributary_opinion = 20 + county_opinion_add = 20 + monthly_dynasty_prestige = 0.15 + } + flag = very_reduced_claim_cb_cost + flag = very_increased_marriage_acceptance + flag = extra_increased_tributarization_acceptance + flag = reduced_factions + flag = reduced_title_creation_cost + flag = reduced_swing_scales_cost + } + level = { + threshold = legitimacy_level_8 + modifier = { + tributary_opinion = 30 + county_opinion_add = 25 + monthly_dynasty_prestige = 0.25 + } + flag = very_reduced_claim_cb_cost + flag = very_increased_marriage_acceptance + flag = extra_increased_tributarization_acceptance + flag = reduced_factions + flag = reduced_title_creation_cost + flag = reduced_swing_scales_cost + } +} + +nomadic_legitimacy = { + is_valid = { + has_mpo_dlc_trigger = yes + NOT = { + government_has_flag = government_is_prepublic + } + government_has_flag = government_is_nomadic + } + + ai_expected_level = default_ai_legitimacy_expectation + + below_expectations_opinion = default_legitimacy_opinion_penalty + + max = legitimacy_max + + # Scales based on Tier and Era + ## A Tribal era Count requires 4x less than a Late Medieval era Emperor + level = { + threshold = legitimacy_level_1 + modifier = { + short_reign_duration_mult = 0.75 + county_opinion_add = -10 + herd_gain_mult = -0.05 + dread_baseline_add = -30 + } + flag = very_reduced_marriage_acceptance + flag = very_reduced_alliance_acceptance + flag = very_reduced_vassalization_acceptance + flag = very_reduced_tributarization_acceptance + flag = very_reduced_confederation_acceptance + flag = reduced_obedience_acceptance + + } + # Gap of at least 50 + level = { + threshold = legitimacy_level_2 # 50-200 + modifier = { + short_reign_duration_mult = 0.5 + county_opinion_add = -5 + dread_baseline_add = -15 + } + flag = reduced_marriage_acceptance + flag = reduced_alliance_acceptance + flag = reduced_vassalization_acceptance + flag = reduced_tributarization_acceptance + flag = reduced_confederation_acceptance + flag = reduced_obedience_acceptance + } + # Gap of at least 100 + level = { + threshold = legitimacy_level_3 # 150-600 + modifier = { + short_reign_duration_mult = 0.25 + dread_baseline_add = -5 + } + flag = reduced_marriage_acceptance + flag = reduced_vassalization_acceptance + flag = reduced_obedience_acceptance + } + # Gap of at least 200 + level = { + threshold = legitimacy_level_4 # 350-1400 + modifier = { + tributary_opinion = 5 + herd_gain_mult = 0.05 + } + flag = increased_obedience_acceptance + } + # Gap of at least 350 + level = { + threshold = legitimacy_level_5 # 700-2800 + modifier = { + tributary_opinion = 10 + herd_gain_mult = 0.15 + } + flag = increased_marriage_acceptance + flag = increased_alliance_acceptance + flag = increased_vassalization_acceptance + flag = increased_tributarization_acceptance + flag = increased_confederation_acceptance + flag = reduced_factions + flag = reduced_swing_scales_cost + flag = increased_obedience_acceptance + } + # Gap of at least 500 + level = { + threshold = legitimacy_level_6 # 1200-4800 + modifier = { + tributary_opinion = 15 + county_opinion_add = 10 + monthly_dynasty_prestige = 0.25 + herd_gain_mult = 0.30 + } + flag = very_increased_marriage_acceptance + flag = very_increased_alliance_acceptance + flag = very_increased_vassalization_acceptance + flag = very_increased_tributarization_acceptance + flag = very_increased_confederation_acceptance + flag = very_reduced_factions + flag = very_reduced_swing_scales_cost + flag = increased_obedience_acceptance + } +} + +mandala_legitimacy = { + is_valid = { + has_tgp_dlc_trigger = yes + NOT = { + government_has_flag = government_is_prepublic + } + government_has_flag = government_is_mandala + } + + ai_expected_level = default_ai_mandala_legitimacy_expectation + + below_expectations_opinion = default_legitimacy_opinion_penalty + + max = mandala_legitimacy_max + + # Scales based on Tier and Era + ## A Tribal era Count requires 4x less than a Late Medieval era Emperor + level = { + threshold = mandala_legitimacy_level_1 + modifier = { + short_reign_duration_mult = 0.75 + county_opinion_add = -10 + monthly_piety_gain_mult = -0.05 + } + flag = massively_increased_claim_cb_cost + flag = massively_reduced_marriage_acceptance + flag = massively_reduced_alliance_acceptance + flag = massively_reduced_vassalization_acceptance + flag = slightly_reduced_tributarization_acceptance + flag = very_increased_factions + + } + # Gap of at least 200 + level = { + threshold = mandala_legitimacy_level_2 # 200-800 + modifier = { + short_reign_duration_mult = 0.5 + county_opinion_add = -5 + } + flag = very_increased_claim_cb_cost + flag = very_reduced_marriage_acceptance + flag = very_reduced_alliance_acceptance + flag = very_reduced_vassalization_acceptance + flag = slightly_reduced_tributarization_acceptance + flag = increased_factions + } + # Gap of at least 220 + level = { + threshold = mandala_legitimacy_level_3 # 420-1680 + modifier = { + short_reign_duration_mult = 0.25 + } + flag = increased_claim_cb_cost + flag = reduced_marriage_acceptance + flag = reduced_alliance_acceptance + flag = reduced_vassalization_acceptance + flag = increased_factions + } + # Gap of at least 220 + level = { + threshold = mandala_legitimacy_level_4 # 640-2560 + modifier = { + tributary_opinion = 5 + monthly_piety_gain_mult = 0.05 + } + flag = reduced_vassalization_acceptance + } + # Gap of at least 270 + level = { + threshold = mandala_legitimacy_level_5 # 910-3640 + modifier = { + tributary_opinion = 10 + monthly_piety_gain_mult = 0.15 + } + flag = reduced_claim_cb_cost + flag = increased_marriage_acceptance + flag = increased_alliance_acceptance + flag = increased_tributarization_acceptance + flag = reduced_factions + flag = reduced_swing_scales_cost + } + # Gap of at least 330 + level = { + threshold = mandala_legitimacy_level_6 # 1240-4960 + modifier = { + tributary_opinion = 15 + county_opinion_add = 10 + monthly_piety_gain_mult = 0.2 + monthly_dynasty_prestige = 0.15 + } + flag = reduced_claim_cb_cost + flag = increased_marriage_acceptance + flag = increased_alliance_acceptance + flag = very_increased_tributarization_acceptance + flag = reduced_factions + flag = reduced_swing_scales_cost + } + # Gap of at least 550 + level = { + threshold = mandala_legitimacy_level_7 # 1650-6600 + modifier = { + tributary_opinion = 20 + county_opinion_add = 20 + monthly_piety_gain_mult = 0.3 + monthly_dynasty_prestige = 0.15 + } + flag = very_reduced_claim_cb_cost + flag = very_increased_marriage_acceptance + flag = very_increased_alliance_acceptance + flag = extra_increased_tributarization_acceptance + flag = very_reduced_factions + flag = very_reduced_swing_scales_cost + } + # Gap of at least 550 + level = { + threshold = mandala_legitimacy_level_8 # 2200-8800 + modifier = { + tributary_opinion = 30 + county_opinion_add = 25 + monthly_piety_gain_mult = 0.35 + monthly_dynasty_prestige = 0.25 + faith_conversion_piety_cost_mult = -0.15 + } + flag = very_reduced_claim_cb_cost + flag = very_increased_marriage_acceptance + flag = very_increased_alliance_acceptance + flag = increased_vassalization_acceptance + flag = extra_increased_tributarization_acceptance + flag = very_reduced_factions + flag = very_reduced_swing_scales_cost + } + # Gap of at least 700 + level = { + threshold = mandala_legitimacy_level_9 # 3000-12000 + modifier = { + tributary_opinion = 35 + county_opinion_add = 35 + monthly_piety_gain_mult = 0.4 + monthly_dynasty_prestige = 0.3 + faith_conversion_piety_cost_mult = -0.3 + } + flag = extra_reduced_claim_cb_cost + flag = extra_increased_marriage_acceptance + flag = extra_increased_alliance_acceptance + flag = very_increased_vassalization_acceptance + flag = extra_increased_tributarization_acceptance + flag = extra_reduced_factions + flag = extra_reduced_swing_scales_cost + } +} diff --git a/common/legitimacy/_legitimacy.info b/common/legitimacy/_legitimacy.info new file mode 100644 index 00000000..e19949d7 --- /dev/null +++ b/common/legitimacy/_legitimacy.info @@ -0,0 +1,59 @@ + = { + # Should this legitimacy type apply to this playable ruler, evaluated daily for the player, yearly for AI + # First valid one is selected + # root = ruler character + is_valid = { + + } + + # What level the AI expects of a liege with this legitimacy type + # root = vassal + # scope:liege = liege character + ai_expected_level = { +