diff --git a/common/buildings/00_city_buildings.txt b/common/buildings/00_city_buildings.txt index bc5c3df8..0e4a6b1a 100644 --- a/common/buildings/00_city_buildings.txt +++ b/common/buildings/00_city_buildings.txt @@ -2023,6 +2023,10 @@ guild_halls_01 = { parameter = government_is_prepublic monthly_barter_goods = 0.1 } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.2 + } next_building = guild_halls_02 @@ -2077,6 +2081,10 @@ guild_halls_02 = { parameter = government_is_prepublic monthly_barter_goods = 0.2 } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.4 + } next_building = guild_halls_03 ai_value = { @@ -2135,6 +2143,10 @@ guild_halls_03 = { parameter = government_is_prepublic monthly_barter_goods = 0.3 } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.6 + } on_complete = { @@ -2200,6 +2212,10 @@ guild_halls_04 = { parameter = government_is_prepublic monthly_barter_goods = 0.4 } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.8 + } on_complete = { @@ -2264,6 +2280,10 @@ guild_halls_05 = { parameter = government_is_prepublic monthly_barter_goods = 0.5 } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 1 + } on_complete = { @@ -2328,6 +2348,10 @@ guild_halls_06 = { parameter = government_is_prepublic monthly_barter_goods = 0.6 } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 1.2 + } on_complete = { @@ -2392,6 +2416,10 @@ guild_halls_07 = { parameter = government_is_prepublic monthly_barter_goods = 0.7 } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 1.4 + } on_complete = { @@ -2456,6 +2484,10 @@ guild_halls_08 = { parameter = government_is_prepublic monthly_barter_goods = 0.8 } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 1.6 + } on_complete = { diff --git a/common/buildings/00_monotown_buildings.txt b/common/buildings/00_monotown_buildings.txt new file mode 100644 index 00000000..65dcd204 --- /dev/null +++ b/common/buildings/00_monotown_buildings.txt @@ -0,0 +1,1940 @@ +@holding_illustration_western = "gfx/interface/illustrations/holding_types/city_western.dds" +@holding_illustration_india = "gfx/interface/illustrations/holding_types/city_india.dds" +@holding_illustration_seasia = "gfx/interface/illustrations/holding_types/tgp_tgp_city_se_asia.dds" +@holding_illustration_china = "gfx/interface/illustrations/holding_types/tgp_city_china.dds" +@holding_illustration_japan = "gfx/interface/illustrations/holding_types/tgp_city_japan.dds" +@holding_illustration_mediterranean = "gfx/interface/illustrations/holding_types/city_mediterranean.dds" +@holding_illustration_mena = "gfx/interface/illustrations/holding_types/city_mena.dds" +@holding_illustration_norse = "gfx/interface/illustrations/holding_types/fp1_city_norse.dds" +@holding_illustration_iberian = "gfx/interface/illustrations/holding_types/fp2_city_iberian.dds" +@holding_illustration_iranian = "gfx/interface/illustrations/holding_types/fp3_city_iranian.dds" +@holding_illustration_byzantine = "gfx/interface/illustrations/holding_types/ep3_city_byzantine.dds" + +monotown_01 = { + construction_time = slow_construction_time + effect_desc = city_1_effect_desc + + #Meshes (Indented for readability) + asset = { + type = pdxmesh + names = { + "western_city_01_a_mesh" + "western_city_01_b_mesh" + "western_city_01_c_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + } + asset = { + type = pdxmesh + names = { + "western_city_01_mena_a_mesh" + "western_city_01_mena_b_mesh" + "western_city_01_mena_c_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "western_city_01_indian_a_mesh" + "western_city_01_indian_b_mesh" + "western_city_01_indian_c_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "western_city_01_mediterranean_a_mesh" + "western_city_01_mediterranean_b_mesh" + "western_city_01_mediterranean_c_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + graphical_regions = { graphical_mediterranean } + } + + asset = { + type = pdxmesh + names = { + "building_mena_city_01_western_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_indian_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mediterranean_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + asset = { + type = pdxmesh + names = { + "building_india_city_01_western_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { indian_building_gfx tibetan_building_gfx } + } + asset = { + type = pdxmesh + names = { + "building_india_city_01_mena_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { indian_building_gfx tibetan_building_gfx } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "building_india_city_01_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { indian_building_gfx tibetan_building_gfx } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "building_india_city_01_mediterranean_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { indian_building_gfx tibetan_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_western_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mediterranean_building_gfx } + } + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_mena_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mediterranean_building_gfx } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_indian_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mediterranean_building_gfx } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mediterranean_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + ### FP1 Norse ### + asset = { + type = pdxmesh + names = { + "fp1_building_norse_city_01_a_mesh" + } + requires_dlc_flag = the_northern_lords + illustration = @holding_illustration_norse + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" } + graphical_cultures = { norse_building_gfx } + } + + asset = { + type = pdxmesh + names = { + "fp1_building_norse_city_01_mena_mesh" + } + requires_dlc_flag = the_northern_lords + illustration = @holding_illustration_norse + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { norse_building_gfx } + graphical_regions = { graphical_mena } + } + + asset = { + type = pdxmesh + names = { + "fp1_building_norse_city_01_mediterranean_mesh" + } + requires_dlc_flag = the_northern_lords + illustration = @holding_illustration_norse + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { norse_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + asset = { + type = pdxmesh + names = { + "fp1_building_norse_city_01_indian_mesh" + } + requires_dlc_flag = the_northern_lords + illustration = @holding_illustration_norse + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { norse_building_gfx } + graphical_regions = { graphical_india } + } + + ### FP2 Iberian ### + asset = { + type = pdxmesh + name = "fp2_building_iberian_city_01_mesh" + requires_dlc_flag = the_fate_of_iberia + illustration = @holding_illustration_iberian + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/iberian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { iberian_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + ### FP3 Iranian ### + asset = { + type = pdxmesh + name = "fp3_building_persian_city_01_a_01_mesh" + requires_dlc_flag = legacy_of_persia + illustration = @holding_illustration_iranian + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { iranian_building_gfx } + graphical_regions = { graphical_mena } + } + + asset = { + type = pdxmesh + name = "fp3_building_persian_city_01_a_01_mesh" + requires_dlc_flag = legacy_of_persia + illustration = @holding_illustration_iranian + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { iranian_building_gfx } + graphical_regions = { graphical_india } + } + + ### EP3 Byzantine ### + asset = { + type = pdxmesh + name = "ep3_byzantine_city_01_mesh" + requires_dlc_flag = roads_to_power + illustration = @holding_illustration_byzantine + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { byzantine_building_gfx caucasian_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + #Steppe fallbacks + #In steppe + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_steppe } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_siberia } + } + + #Elsewhere + asset = { + type = pdxmesh + names = { + "western_city_01_a_mesh" + "western_city_01_b_mesh" + "western_city_01_c_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + graphical_regions = { graphical_western } + graphical_cultures = { steppe_building_gfx } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "building_india_city_01_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_mediterranean } + } + asset = { + type = pdxmesh + name = "tgp_building_chinese_city_01_mesh" + requires_dlc_flag = all_under_heaven + illustration = @holding_illustration_china + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/chinese_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_east_asia } + } + # TGP China + asset = { + type = pdxmesh + name = "tgp_building_chinese_city_01_mesh" + requires_dlc_flag = all_under_heaven + illustration = @holding_illustration_china + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/chinese_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { chinese_building_gfx } + graphical_regions = { graphical_east_asia graphical_india } + } + # TGP Southeast Asia + asset = { + type = pdxmesh + name = "tgp_building_se_asia_city_01_a_mesh" + requires_dlc_flag = all_under_heaven + illustration = @holding_illustration_seasia + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/sea_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { southeast_asian_building_gfx } + graphical_regions = { graphical_east_asia graphical_india } + } + # TGP Japan + asset = { + type = pdxmesh + name = "tgp_building_japanese_city_01_mesh" + requires_dlc_flag = all_under_heaven + illustration = @holding_illustration_japan + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/japanese_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { japanese_building_gfx } + graphical_regions = { graphical_east_asia } + } + + can_construct_potential = { + barony_cannot_construct_holding = no + } + + can_construct = { + culture = { + has_innovation = innovation_city_planning + } + government has_flag = government_is_urepublic + } + + can_construct_showing_failures_only = { + building_requirement_tribal = no + building_requirement_tribal_holding_in_county = yes + building_requirement_nomad = no + building_requirement_nomad_holding_in_county = yes + building_requirement_herder = no + building_requirement_herder_holding_in_county = yes + } + cost_gold = main_building_tier_1_cost + + levy = poor_building_levy_tier_1 + max_garrison = normal_building_max_garrison_tier_1 + garrison_reinforcement_factor = building_garrison_reinforcement_factor_tier_1 + province_modifier = { + monthly_income = good_building_tax_tier_5 + travel_danger = -10 + monthly_barter_goods = 1 + } + county_modifier = { + development_growth_factor = 0.05 + } + + province_terrain_modifier = { + parameter = maritime_mercantilism_coastal_holdings + is_coastal = yes + tax_mult = maritime_mercantilism_coastal_holdings_value + } + + character_modifier = { + men_at_arms_cap = 1 + } + + province_terrain_modifier = { + parameter = coastal_holding_bonuses + is_coastal = yes + build_speed = -0.1 + } + + county_dynasty_modifier = { + county_holder_dynasty_perk = fp2_urbanism_legacy_1 # check if the dynasty of the county holder has a specific perk + development_growth_factor = fp2_urbanism_legacy_1_bonus_value + } + character_modifier = { + men_at_arms_cap = 1 + } + county_culture_modifier = { + parameter = use_farmer_republics + county_fertility_decline_add = -1 + } + + flag = city + next_building = monotown_02 + + type_icon = "icon_building_blacksmiths.dds" + + on_complete = { + county.holder = { + if = { + limit = { + any_vassal = { + vassal_stance = parochial + } + save_temporary_scope_as = holder_scope + } + custom_tooltip = parochial_vassal_approves_holding_construction + hidden_effect = { + every_vassal = { + vassal_stance = parochial + add_opinion = { + target = prev + modifier = parochial_approves_holding_construction_opinion + } + } + } + } + } + #Mandala Creator Aspect + creator_mandala_built_regular_holding_piety_effect = yes + + # Building Oath + hidden_effect = { + if = { + limit = { + county.holder = { + has_character_modifier = oath_of_buildings + } + } + county.holder = { save_scope_as = holder } + add_random_economic_building_effect = yes + add_random_military_building_effect = yes + add_random_fortification_building_effect = yes + } + } + } + + ai_value = { + base = 0 + modifier = { + add = 100 + scope:holder = { + domain_limit_available < 1 + } + } + modifier = { + factor = 0 + scope:holder = { + government_has_flag = government_is_theocracy + } + } + modifier = { + add = 50 + county = { + NOT = { + any_county_province = { + has_building_or_higher = monotown_01 + } + } + } + } + modifier = { + factor = 5 + scope:holder.culture = { has_cultural_parameter = ai_more_likely_to_city } + } + } +} + +monotown_02 = { + construction_time = slow_construction_time + + + #Meshes (Indented for readability) + asset = { + type = pdxmesh + names = { + "western_city_01_a_mesh" + "western_city_01_b_mesh" + "western_city_01_c_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + } + asset = { + type = pdxmesh + names = { + "western_city_01_mena_a_mesh" + "western_city_01_mena_b_mesh" + "western_city_01_mena_c_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "western_city_01_indian_a_mesh" + "western_city_01_indian_b_mesh" + "western_city_01_indian_c_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "western_city_01_mediterranean_a_mesh" + "western_city_01_mediterranean_b_mesh" + "western_city_01_mediterranean_c_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + graphical_regions = { graphical_mediterranean } + } + + asset = { + type = pdxmesh + names = { + "building_mena_city_01_western_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_indian_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mediterranean_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + asset = { + type = pdxmesh + names = { + "building_india_city_01_western_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { indian_building_gfx tibetan_building_gfx } + } + asset = { + type = pdxmesh + names = { + "building_india_city_01_mena_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { indian_building_gfx tibetan_building_gfx } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "building_india_city_01_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { indian_building_gfx tibetan_building_gfx } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "building_india_city_01_mediterranean_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { indian_building_gfx tibetan_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_western_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mediterranean_building_gfx } + } + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_mena_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mediterranean_building_gfx } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_indian_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mediterranean_building_gfx } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mediterranean_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + ### FP1 Norse ### + asset = { + type = pdxmesh + names = { + "fp1_building_norse_city_01_a_mesh" + } + requires_dlc_flag = the_northern_lords + illustration = @holding_illustration_norse + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" } + graphical_cultures = { norse_building_gfx } + } + + asset = { + type = pdxmesh + names = { + "fp1_building_norse_city_01_mena_mesh" + } + requires_dlc_flag = the_northern_lords + illustration = @holding_illustration_norse + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { norse_building_gfx } + graphical_regions = { graphical_mena } + } + + asset = { + type = pdxmesh + names = { + "fp1_building_norse_city_01_mediterranean_mesh" + } + requires_dlc_flag = the_northern_lords + illustration = @holding_illustration_norse + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { norse_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + asset = { + type = pdxmesh + names = { + "fp1_building_norse_city_01_indian_mesh" + } + requires_dlc_flag = the_northern_lords + illustration = @holding_illustration_norse + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { norse_building_gfx } + graphical_regions = { graphical_india } + } + + ### FP2 Iberian ### + asset = { + type = pdxmesh + name = "fp2_building_iberian_city_01_mesh" + requires_dlc_flag = the_fate_of_iberia + illustration = @holding_illustration_iberian + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/iberian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { iberian_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + ### FP3 Iranian ### + asset = { + type = pdxmesh + name = "fp3_building_persian_city_01_a_01_mesh" + requires_dlc_flag = legacy_of_persia + illustration = @holding_illustration_iranian + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { iranian_building_gfx } + graphical_regions = { graphical_mena } + } + + asset = { + type = pdxmesh + name = "fp3_building_persian_city_01_a_01_mesh" + requires_dlc_flag = legacy_of_persia + illustration = @holding_illustration_iranian + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { iranian_building_gfx } + graphical_regions = { graphical_india } + } + + ### EP3 Byzantine ### + asset = { + type = pdxmesh + name = "ep3_byzantine_city_01_mesh" + requires_dlc_flag = roads_to_power + illustration = @holding_illustration_byzantine + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { byzantine_building_gfx caucasian_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + #Steppe fallbacks + #In steppe + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_steppe } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_siberia } + } + + #Elsewhere + asset = { + type = pdxmesh + names = { + "western_city_01_a_mesh" + "western_city_01_b_mesh" + "western_city_01_c_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + graphical_regions = { graphical_western } + graphical_cultures = { steppe_building_gfx } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "building_india_city_01_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_mediterranean } + } + asset = { + type = pdxmesh + name = "tgp_building_chinese_city_01_mesh" + requires_dlc_flag = all_under_heaven + illustration = @holding_illustration_china + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/chinese_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_east_asia } + } + # TGP China + asset = { + type = pdxmesh + name = "tgp_building_chinese_city_01_mesh" + requires_dlc_flag = all_under_heaven + illustration = @holding_illustration_china + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/chinese_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { chinese_building_gfx } + graphical_regions = { graphical_east_asia graphical_india } + } + # TGP Southeast Asia + asset = { + type = pdxmesh + name = "tgp_building_se_asia_city_01_a_mesh" + requires_dlc_flag = all_under_heaven + illustration = @holding_illustration_seasia + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/sea_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { southeast_asian_building_gfx } + graphical_regions = { graphical_east_asia graphical_india } + } + # TGP Japan + asset = { + type = pdxmesh + name = "tgp_building_japanese_city_01_mesh" + requires_dlc_flag = all_under_heaven + illustration = @holding_illustration_japan + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/japanese_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { japanese_building_gfx } + graphical_regions = { graphical_east_asia } + } + + can_construct_potential = { + building_requirement_tribal = no + } + can_construct = { + trigger_if = { + limit = { + NOT = { + culture = { + has_cultural_parameter = next_level_cities + } + } + } + culture = { + has_innovation = innovation_manorialism + } + } + trigger_else = { + culture = { + has_cultural_parameter = next_level_cities + } + } + government has_flag = government_is_urepublic + } + cost_gold = main_building_tier_2_cost + + levy = poor_building_levy_tier_1 + max_garrison = normal_building_max_garrison_tier_1 + garrison_reinforcement_factor = building_garrison_reinforcement_factor_tier_1 + province_modifier = { + monthly_income = good_building_tax_tier_6 + travel_danger = -12 + monthly_barter_goods = 2 + } + + province_terrain_modifier = { + parameter = maritime_mercantilism_coastal_holdings + is_coastal = yes + tax_mult = maritime_mercantilism_coastal_holdings_value + } + + county_modifier = { + development_growth_factor = 0.1 + } + + province_terrain_modifier = { + parameter = coastal_holding_bonuses + is_coastal = yes + build_speed = -0.1 + } + + county_dynasty_modifier = { + county_holder_dynasty_perk = fp2_urbanism_legacy_1 # check if the dynasty of the county holder has a specific perk + development_growth_factor = fp2_urbanism_legacy_1_bonus_value + } + + character_modifier = { + men_at_arms_cap = 1 + } + county_culture_modifier = { + parameter = use_farmer_republics + county_fertility_decline_add = -2 + } + flag = city + next_building = monotown_03 + + on_complete = { + barony.holder = { + if = { + limit = { + any_vassal = { + vassal_stance = parochial + } + save_temporary_scope_as = holder_scope + } + custom_tooltip = parochial_vassal_approves_holding_upgrade + hidden_effect = { + every_vassal = { + vassal_stance = parochial + add_opinion = { + target = prev + modifier = parochial_approves_holding_upgrade_opinion + } + } + } + } + } + #Mandala Creator Aspect + creator_mandala_upgraded_regular_holding_piety_effect = yes + } + ai_value = { + base = 6 + modifier = { + add = 1 + scope:holder.culture = { has_cultural_parameter = ai_more_likely_to_city } + } + modifier = { + factor = 2 + scope:holder.capital_province = this + } + modifier = { + factor = 0.1 + free_building_slots >= 1 + } + modifier = { + factor = 0.3 + years_from_game_start <= 0.01 + } + } +} + +monotown_03 = { + construction_time = slow_construction_time + effect_desc = city_2_effect_desc + + #Meshes (Indented for readability) + asset = { + type = pdxmesh + names = { + "western_city_01_a_mesh" + "western_city_01_b_mesh" + "western_city_01_c_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + } + asset = { + type = pdxmesh + names = { + "western_city_01_mena_a_mesh" + "western_city_01_mena_b_mesh" + "western_city_01_mena_c_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "western_city_01_indian_a_mesh" + "western_city_01_indian_b_mesh" + "western_city_01_indian_c_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "western_city_01_mediterranean_a_mesh" + "western_city_01_mediterranean_b_mesh" + "western_city_01_mediterranean_c_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + graphical_regions = { graphical_mediterranean } + } + + asset = { + type = pdxmesh + names = { + "building_mena_city_01_western_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_indian_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mediterranean_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + asset = { + type = pdxmesh + names = { + "building_india_city_01_western_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { indian_building_gfx tibetan_building_gfx } + } + asset = { + type = pdxmesh + names = { + "building_india_city_01_mena_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { indian_building_gfx tibetan_building_gfx } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "building_india_city_01_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { indian_building_gfx tibetan_building_gfx } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "building_india_city_01_mediterranean_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { indian_building_gfx tibetan_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_western_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mediterranean_building_gfx } + } + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_mena_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mediterranean_building_gfx } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_indian_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mediterranean_building_gfx } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mediterranean_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + ### FP1 Norse ### + asset = { + type = pdxmesh + names = { + "fp1_building_norse_city_01_a_mesh" + } + requires_dlc_flag = the_northern_lords + illustration = @holding_illustration_norse + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" } + graphical_cultures = { norse_building_gfx } + } + + asset = { + type = pdxmesh + names = { + "fp1_building_norse_city_01_mena_mesh" + } + requires_dlc_flag = the_northern_lords + illustration = @holding_illustration_norse + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { norse_building_gfx } + graphical_regions = { graphical_mena } + } + + asset = { + type = pdxmesh + names = { + "fp1_building_norse_city_01_mediterranean_mesh" + } + requires_dlc_flag = the_northern_lords + illustration = @holding_illustration_norse + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { norse_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + asset = { + type = pdxmesh + names = { + "fp1_building_norse_city_01_indian_mesh" + } + requires_dlc_flag = the_northern_lords + illustration = @holding_illustration_norse + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { norse_building_gfx } + graphical_regions = { graphical_india } + } + + ### FP2 Iberian ### + asset = { + type = pdxmesh + name = "fp2_building_iberian_city_01_mesh" + requires_dlc_flag = the_fate_of_iberia + illustration = @holding_illustration_iberian + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/iberian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { iberian_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + ### FP3 Iranian ### + asset = { + type = pdxmesh + name = "fp3_building_persian_city_01_a_01_mesh" + requires_dlc_flag = legacy_of_persia + illustration = @holding_illustration_iranian + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { iranian_building_gfx } + graphical_regions = { graphical_mena } + } + + asset = { + type = pdxmesh + name = "fp3_building_persian_city_01_a_01_mesh" + requires_dlc_flag = legacy_of_persia + illustration = @holding_illustration_iranian + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { iranian_building_gfx } + graphical_regions = { graphical_india } + } + + ### EP3 Byzantine ### + asset = { + type = pdxmesh + name = "ep3_byzantine_city_01_mesh" + requires_dlc_flag = roads_to_power + illustration = @holding_illustration_byzantine + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { byzantine_building_gfx caucasian_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + #Steppe fallbacks + #In steppe + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_steppe } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_siberia } + } + + #Elsewhere + asset = { + type = pdxmesh + names = { + "western_city_01_a_mesh" + "western_city_01_b_mesh" + "western_city_01_c_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + graphical_regions = { graphical_western } + graphical_cultures = { steppe_building_gfx } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "building_india_city_01_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_mediterranean } + } + asset = { + type = pdxmesh + name = "tgp_building_chinese_city_01_mesh" + requires_dlc_flag = all_under_heaven + illustration = @holding_illustration_china + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/chinese_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_east_asia } + } + # TGP China + asset = { + type = pdxmesh + name = "tgp_building_chinese_city_01_mesh" + requires_dlc_flag = all_under_heaven + illustration = @holding_illustration_china + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/chinese_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { chinese_building_gfx } + graphical_regions = { graphical_east_asia graphical_india } + } + # TGP Southeast Asia + asset = { + type = pdxmesh + name = "tgp_building_se_asia_city_01_a_mesh" + requires_dlc_flag = all_under_heaven + illustration = @holding_illustration_seasia + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/sea_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { southeast_asian_building_gfx } + graphical_regions = { graphical_east_asia graphical_india } + } + # TGP Japan + asset = { + type = pdxmesh + name = "tgp_building_japanese_city_01_mesh" + requires_dlc_flag = all_under_heaven + illustration = @holding_illustration_japan + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/japanese_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { japanese_building_gfx } + graphical_regions = { graphical_east_asia } + } + + can_construct_potential = { + building_requirement_tribal = no + } + can_construct = { + trigger_if = { + limit = { + NOT = { + culture = { + has_cultural_parameter = next_level_cities + } + } + } + culture = { + has_innovation = innovation_windmills + } + } + trigger_else = { + culture = { + has_cultural_parameter = next_level_cities + } + culture = { + has_innovation = innovation_manorialism + } + } + government has_flag = government_is_urepublic + } + cost_gold = main_building_tier_3_cost + next_building = monotown_04 + + levy = poor_building_levy_tier_1 + max_garrison = normal_building_max_garrison_tier_1 + garrison_reinforcement_factor = building_garrison_reinforcement_factor_tier_1 + province_modifier = { + monthly_income = good_building_tax_tier_7 + travel_danger = -14 + monthly_barter_goods = 3 + } + + + province_terrain_modifier = { + parameter = maritime_mercantilism_coastal_holdings + is_coastal = yes + tax_mult = maritime_mercantilism_coastal_holdings_value + } + + county_modifier = { + development_growth_factor = 0.15 + } + + county_culture_modifier = { + parameter = city_buildings_less_control + monthly_county_control_growth_factor = -0.25 + } + + province_terrain_modifier = { + parameter = coastal_holding_bonuses + is_coastal = yes + build_speed = -0.1 + } + + + county_dynasty_modifier = { + county_holder_dynasty_perk = fp2_urbanism_legacy_1 # check if the dynasty of the county holder has a specific perk + development_growth_factor = fp2_urbanism_legacy_1_bonus_value + } + + character_modifier = { + men_at_arms_cap = 1 + } + county_culture_modifier = { + parameter = use_farmer_republics + county_fertility_decline_add = -3 + } + flag = city + + on_complete = { + barony.holder = { + if = { + limit = { + any_vassal = { + vassal_stance = parochial + } + save_temporary_scope_as = holder_scope + } + custom_tooltip = parochial_vassal_approves_holding_upgrade + hidden_effect = { + every_vassal = { + vassal_stance = parochial + add_opinion = { + target = prev + modifier = parochial_approves_holding_upgrade_opinion + } + } + } + } + } + #Mandala Creator Aspect + creator_mandala_upgraded_regular_holding_piety_effect = yes + } + ai_value = { + base = 5 + modifier = { + add = 1 + scope:holder.culture = { has_cultural_parameter = ai_more_likely_to_city } + } + modifier = { + factor = 2 + scope:holder.capital_province = this + } + } +} + +monotown_04 = { + construction_time = slow_construction_time + + #Meshes (Indented for readability) + + #Meshes (Indented for readability) + asset = { + type = pdxmesh + names = { + "western_city_01_a_mesh" + "western_city_01_b_mesh" + "western_city_01_c_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + } + asset = { + type = pdxmesh + names = { + "western_city_01_mena_a_mesh" + "western_city_01_mena_b_mesh" + "western_city_01_mena_c_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "western_city_01_indian_a_mesh" + "western_city_01_indian_b_mesh" + "western_city_01_indian_c_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "western_city_01_mediterranean_a_mesh" + "western_city_01_mediterranean_b_mesh" + "western_city_01_mediterranean_c_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + graphical_regions = { graphical_mediterranean } + } + + asset = { + type = pdxmesh + names = { + "building_mena_city_01_western_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_indian_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mediterranean_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + asset = { + type = pdxmesh + names = { + "building_india_city_01_western_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { indian_building_gfx tibetan_building_gfx } + } + asset = { + type = pdxmesh + names = { + "building_india_city_01_mena_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { indian_building_gfx tibetan_building_gfx } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "building_india_city_01_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { indian_building_gfx tibetan_building_gfx } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "building_india_city_01_mediterranean_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { indian_building_gfx tibetan_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_western_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mediterranean_building_gfx } + } + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_mena_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mediterranean_building_gfx } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_indian_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mediterranean_building_gfx } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { mediterranean_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + ### FP1 Norse ### + asset = { + type = pdxmesh + names = { + "fp1_building_norse_city_01_a_mesh" + } + requires_dlc_flag = the_northern_lords + illustration = @holding_illustration_norse + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" } + graphical_cultures = { norse_building_gfx } + } + + asset = { + type = pdxmesh + names = { + "fp1_building_norse_city_01_mena_mesh" + } + requires_dlc_flag = the_northern_lords + illustration = @holding_illustration_norse + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { norse_building_gfx } + graphical_regions = { graphical_mena } + } + + asset = { + type = pdxmesh + names = { + "fp1_building_norse_city_01_mediterranean_mesh" + } + requires_dlc_flag = the_northern_lords + illustration = @holding_illustration_norse + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { norse_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + asset = { + type = pdxmesh + names = { + "fp1_building_norse_city_01_indian_mesh" + } + requires_dlc_flag = the_northern_lords + illustration = @holding_illustration_norse + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { norse_building_gfx } + graphical_regions = { graphical_india } + } + + ### FP2 Iberian ### + asset = { + type = pdxmesh + name = "fp2_building_iberian_city_01_mesh" + requires_dlc_flag = the_fate_of_iberia + illustration = @holding_illustration_iberian + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/iberian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { iberian_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + ### FP3 Iranian ### + asset = { + type = pdxmesh + name = "fp3_building_persian_city_01_a_01_mesh" + requires_dlc_flag = legacy_of_persia + illustration = @holding_illustration_iranian + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { iranian_building_gfx } + graphical_regions = { graphical_mena } + } + + asset = { + type = pdxmesh + name = "fp3_building_persian_city_01_a_01_mesh" + requires_dlc_flag = legacy_of_persia + illustration = @holding_illustration_iranian + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { iranian_building_gfx } + graphical_regions = { graphical_india } + } + + ### EP3 Byzantine ### + asset = { + type = pdxmesh + name = "ep3_byzantine_city_01_mesh" + requires_dlc_flag = roads_to_power + illustration = @holding_illustration_byzantine + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { byzantine_building_gfx caucasian_building_gfx } + graphical_regions = { graphical_mediterranean } + } + + #Steppe fallbacks + #In steppe + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_steppe } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_siberia } + } + + #Elsewhere + asset = { + type = pdxmesh + names = { + "western_city_01_a_mesh" + "western_city_01_b_mesh" + "western_city_01_c_mesh" + } + illustration = @holding_illustration_western + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 0 } } + graphical_regions = { graphical_western } + graphical_cultures = { steppe_building_gfx } + } + asset = { + type = pdxmesh + names = { + "building_mena_city_01_mesh" + } + illustration = @holding_illustration_mena + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_mena } + } + asset = { + type = pdxmesh + names = { + "building_india_city_01_mesh" + } + illustration = @holding_illustration_india + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_india } + } + asset = { + type = pdxmesh + names = { + "building_mediterranean_city_01_mesh" + } + illustration = @holding_illustration_mediterranean + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_mediterranean } + } + asset = { + type = pdxmesh + name = "tgp_building_chinese_city_01_mesh" + requires_dlc_flag = all_under_heaven + illustration = @holding_illustration_china + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/chinese_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { steppe_building_gfx } + graphical_regions = { graphical_east_asia } + } + # TGP China + asset = { + type = pdxmesh + name = "tgp_building_chinese_city_01_mesh" + requires_dlc_flag = all_under_heaven + illustration = @holding_illustration_china + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/chinese_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { chinese_building_gfx } + graphical_regions = { graphical_east_asia graphical_india } + } + # TGP Southeast Asia + asset = { + type = pdxmesh + name = "tgp_building_se_asia_city_01_a_mesh" + requires_dlc_flag = all_under_heaven + illustration = @holding_illustration_seasia + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/sea_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { southeast_asian_building_gfx } + graphical_regions = { graphical_east_asia graphical_india } + } + # TGP Japan + asset = { + type = pdxmesh + name = "tgp_building_japanese_city_01_mesh" + requires_dlc_flag = all_under_heaven + illustration = @holding_illustration_japan + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/japanese_city" soundparameter = { "Tier" = 0 } } + graphical_cultures = { japanese_building_gfx } + graphical_regions = { graphical_east_asia } + } + + can_construct_potential = { + building_requirement_tribal = no + } + can_construct = { + trigger_if = { + limit = { + NOT = { + culture = { + has_cultural_parameter = next_level_cities + } + } + } + culture = { + has_innovation = innovation_cranes + } + } + trigger_else = { + culture = { + has_cultural_parameter = next_level_cities + } + culture = { + has_innovation = innovation_windmills + } + } + government has_flag = government_is_urepublic + + } + cost_gold = main_building_tier_4_cost + + levy = poor_building_levy_tier_1 + max_garrison = normal_building_max_garrison_tier_1 + garrison_reinforcement_factor = building_garrison_reinforcement_factor_tier_1 + province_modifier = { + monthly_income = good_building_tax_tier_8 + travel_danger = -16 + monthly_barter_goods = 4 + } + + province_terrain_modifier = { + parameter = maritime_mercantilism_coastal_holdings + is_coastal = yes + tax_mult = maritime_mercantilism_coastal_holdings_value + } + + county_modifier = { + development_growth_factor = 0.2 + } + + province_terrain_modifier = { + parameter = coastal_holding_bonuses + is_coastal = yes + build_speed = -0.1 + } + + county_dynasty_modifier = { + county_holder_dynasty_perk = fp2_urbanism_legacy_1 # check if the dynasty of the county holder has a specific perk + development_growth_factor = fp2_urbanism_legacy_1_bonus_value + } + + character_modifier = { + men_at_arms_cap = 1 + } + county_culture_modifier = { + parameter = use_farmer_republics + county_fertility_decline_add = -4 + } + flag = city + + on_complete = { + barony.holder = { + if = { + limit = { + any_vassal = { + vassal_stance = parochial + } + save_temporary_scope_as = holder_scope + } + custom_tooltip = parochial_vassal_approves_holding_upgrade + hidden_effect = { + every_vassal = { + vassal_stance = parochial + add_opinion = { + target = prev + modifier = parochial_approves_holding_upgrade_opinion + } + } + } + } + } + #Mandala Creator Aspect + creator_mandala_upgraded_regular_holding_piety_effect = yes + } + ai_value = { + base = 4 + modifier = { + add = 1 + scope:holder.culture = { has_cultural_parameter = ai_more_likely_to_city } + } + modifier = { + factor = 2 + scope:holder.capital_province = this + } + } +} diff --git a/common/buildings/00_standard_economy_buildings.txt b/common/buildings/00_standard_economy_buildings.txt index aa43afad..969d0d30 100644 --- a/common/buildings/00_standard_economy_buildings.txt +++ b/common/buildings/00_standard_economy_buildings.txt @@ -2281,6 +2281,10 @@ murex_farm_01 = { is_enabled = { } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.1 + } can_construct_showing_failures_only = { building_requirement_tribal = no county = { NOT = { has_county_modifier = backwater_county_modifier } } @@ -2343,6 +2347,10 @@ murex_farm_02 = { is_enabled = { } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.2 + } can_construct_showing_failures_only = { building_requirement_tribal = no county = { NOT = { has_county_modifier = backwater_county_modifier } } @@ -2394,6 +2402,10 @@ murex_farm_03 = { is_enabled = { } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.3 + } can_construct_showing_failures_only = { building_requirement_tribal = no county = { NOT = { has_county_modifier = backwater_county_modifier } } @@ -2445,6 +2457,10 @@ murex_farm_04 = { is_enabled = { } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.4 + } can_construct_showing_failures_only = { building_requirement_tribal = no county = { NOT = { has_county_modifier = backwater_county_modifier } } @@ -2496,6 +2512,10 @@ murex_farm_05 = { is_enabled = { } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.5 + } can_construct_showing_failures_only = { building_requirement_tribal = no county = { NOT = { has_county_modifier = backwater_county_modifier } } @@ -2547,6 +2567,10 @@ murex_farm_06 = { is_enabled = { } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.6 + } can_construct_showing_failures_only = { building_requirement_tribal = no county = { NOT = { has_county_modifier = backwater_county_modifier } } @@ -2598,6 +2622,10 @@ murex_farm_07 = { is_enabled = { } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.7 + } can_construct_showing_failures_only = { building_requirement_tribal = no county = { NOT = { has_county_modifier = backwater_county_modifier } } @@ -2649,6 +2677,10 @@ murex_farm_08 = { is_enabled = { } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.8 + } can_construct_showing_failures_only = { building_requirement_tribal = no county = { NOT = { has_county_modifier = backwater_county_modifier } } @@ -3536,6 +3568,10 @@ spice_plantation_01 = { is_enabled = { } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.1 + } can_construct_showing_failures_only = { building_requirement_tribal = no county = { NOT = { has_county_modifier = backwater_county_modifier } } @@ -3598,6 +3634,10 @@ spice_plantation_02 = { is_enabled = { } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.2 + } can_construct_showing_failures_only = { building_requirement_tribal = no county = { NOT = { has_county_modifier = backwater_county_modifier } } @@ -3649,6 +3689,10 @@ spice_plantation_03 = { is_enabled = { } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.3 + } can_construct_showing_failures_only = { building_requirement_tribal = no county = { NOT = { has_county_modifier = backwater_county_modifier } } @@ -3700,6 +3744,10 @@ spice_plantation_04 = { is_enabled = { } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.4 + } can_construct_showing_failures_only = { building_requirement_tribal = no county = { NOT = { has_county_modifier = backwater_county_modifier } } @@ -3752,6 +3800,10 @@ spice_plantation_05 = { is_enabled = { } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.5 + } can_construct_showing_failures_only = { building_requirement_tribal = no county = { NOT = { has_county_modifier = backwater_county_modifier } } @@ -3804,6 +3856,10 @@ spice_plantation_06 = { is_enabled = { } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.6 + } can_construct_showing_failures_only = { building_requirement_tribal = no county = { NOT = { has_county_modifier = backwater_county_modifier } } @@ -3856,6 +3912,10 @@ spice_plantation_07 = { is_enabled = { } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.7 + } can_construct_showing_failures_only = { building_requirement_tribal = no county = { NOT = { has_county_modifier = backwater_county_modifier } } @@ -3908,6 +3968,10 @@ spice_plantation_08 = { is_enabled = { } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = 0.8 + } can_construct_showing_failures_only = { building_requirement_tribal = no county = { NOT = { has_county_modifier = backwater_county_modifier } } @@ -4485,6 +4549,11 @@ common_tradeport_01 = { cost_gold = normal_building_tier_1_cost + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = -0.3 + monthly_income = 0.1 + } province_modifier = { monthly_income = normal_building_tax_tier_1 } @@ -4603,6 +4672,11 @@ common_tradeport_02 = { } } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = -0.6 + monthly_income = 0.2 + } can_construct_showing_failures_only = { # building_requirement_tribal = no } @@ -4678,6 +4752,11 @@ common_tradeport_03 = { } } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = -0.9 + monthly_income = 0.3 + } is_enabled = { building_requirement_tribal = no } @@ -4753,6 +4832,11 @@ common_tradeport_04 = { } } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = -1.2 + monthly_income = 0.4 + } can_construct_showing_failures_only = { building_requirement_tribal = no } @@ -4828,6 +4912,11 @@ common_tradeport_05 = { } } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = -1.5 + monthly_income = 0.5 + } can_construct_showing_failures_only = { building_requirement_tribal = no } @@ -4903,6 +4992,11 @@ common_tradeport_06 = { } } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = -1.8 + monthly_income = 0.6 + } can_construct_showing_failures_only = { building_requirement_tribal = no } @@ -4978,6 +5072,11 @@ common_tradeport_07 = { } } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = -2.1 + monthly_income = 0.7 + } can_construct_showing_failures_only = { building_requirement_tribal = no } @@ -5053,6 +5152,11 @@ common_tradeport_08 = { } } + province_government_modifier = { + parameter = government_is_urepublic + monthly_barter_goods = -2.4 + monthly_income = 0.8 + } can_construct_showing_failures_only = { building_requirement_tribal = no } @@ -10058,6 +10162,10 @@ plantations_01 = { cost_gold = cheap_building_tier_1_cost + province_government_modifier = { + parameter = government_is_urepublic + monthly_income = 0.1 + } province_modifier = { monthly_income = poor_building_tax_tier_1 } @@ -10140,6 +10248,10 @@ plantations_02 = { } } + province_government_modifier = { + parameter = government_is_urepublic + monthly_income = 0.2 + } can_construct_showing_failures_only = { building_requirement_tribal = no } @@ -10204,6 +10316,10 @@ plantations_03 = { } } + province_government_modifier = { + parameter = government_is_urepublic + monthly_income = 0.3 + } can_construct_showing_failures_only = { building_requirement_tribal = no } @@ -10270,6 +10386,10 @@ plantations_04 = { building_requirement_tribal = no } + province_government_modifier = { + parameter = government_is_urepublic + monthly_income = 0.4 + } cost_gold = cheap_building_tier_4_cost province_modifier = { @@ -10334,6 +10454,10 @@ plantations_05 = { cost_gold = cheap_building_tier_5_cost + province_government_modifier = { + parameter = government_is_urepublic + monthly_income = 0.5 + } province_modifier = { monthly_income = poor_building_tax_tier_5 tax_mult = 0.02 @@ -10399,6 +10523,10 @@ plantations_06 = { cost_gold = cheap_building_tier_6_cost + province_government_modifier = { + parameter = government_is_urepublic + monthly_income = 0.6 + } province_modifier = { monthly_income = poor_building_tax_tier_6 tax_mult = 0.02 @@ -10464,6 +10592,10 @@ plantations_07 = { cost_gold = cheap_building_tier_7_cost + province_government_modifier = { + parameter = government_is_urepublic + monthly_income = 0.7 + } province_modifier = { monthly_income = poor_building_tax_tier_7 tax_mult = 0.02 @@ -10529,6 +10661,10 @@ plantations_08 = { cost_gold = cheap_building_tier_8_cost + province_government_modifier = { + parameter = government_is_urepublic + monthly_income = 0.8 + } province_modifier = { monthly_income = poor_building_tax_tier_8 tax_mult = 0.02 diff --git a/common/buildings/N3OW_standard_economy_buildings.txt b/common/buildings/N3OW_standard_economy_buildings.txt index 5b311a6a..0d8cd242 100644 --- a/common/buildings/N3OW_standard_economy_buildings.txt +++ b/common/buildings/N3OW_standard_economy_buildings.txt @@ -1397,11 +1397,6 @@ potato_fields_04 = { stationed_maa_damage_mult = normal_maa_damage_tier_4 stationed_maa_toughness_mult = normal_maa_toughness_tier_4 } - province_government_modifier = { - parameter = government_is_prepublic - county_fertility_growth_add = 0.8 - monthly_barter_goods = 0.4 - } province_government_modifier = { parameter = government_is_prepublic monthly_barter_goods = 0.4 diff --git a/common/customizable_localization/00_government_custom_loc.txt b/common/customizable_localization/00_government_custom_loc.txt index 3c26706b..739a60c7 100644 --- a/common/customizable_localization/00_government_custom_loc.txt +++ b/common/customizable_localization/00_government_custom_loc.txt @@ -1146,6 +1146,26 @@ GetGovernmentIcon = { } localization_key = peasantrepublic_icon_concept } + text = { # Republic + trigger = { + trigger_if = { + limit = { + is_alive = no + } + has_government = urbanrepublic_government + } + trigger_else = { + trigger_if = { + limit = { is_ruler = yes } + government_has_flag = government_is_urepublic + } + trigger_else = { + liege ?= { government_has_flag = government_is_urepublic } + } + } + } + localization_key = urbanrepublic_icon_concept + } text = { # Theocracy trigger = { trigger_if = { diff --git a/common/domiciles/buildings/00_estate_buildings.txt b/common/domiciles/buildings/00_estate_buildings.txt index 9b57c94f..6c688959 100644 --- a/common/domiciles/buildings/00_estate_buildings.txt +++ b/common/domiciles/buildings/00_estate_buildings.txt @@ -339,7 +339,7 @@ estate_main_05 = { slot_type = main internal_slots = 10 construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } previous_building = estate_main_04 can_construct = { @@ -425,7 +425,7 @@ estate_main_05 = { ### Diplomacy Upgrade living_quarters_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = estate_main_01 @@ -462,7 +462,7 @@ living_quarters_01 = { } living_quarters_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = living_quarters_01 @@ -501,7 +501,7 @@ living_quarters_02 = { } living_quarters_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = living_quarters_02 @@ -543,7 +543,7 @@ living_quarters_03 = { } living_quarters_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = living_quarters_03 @@ -588,7 +588,7 @@ living_quarters_04 = { ### Martial Upgrade trophy_room_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = estate_main_01 @@ -620,7 +620,7 @@ trophy_room_01 = { } trophy_room_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = trophy_room_01 @@ -653,7 +653,7 @@ trophy_room_02 = { } trophy_room_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = trophy_room_02 @@ -694,7 +694,7 @@ trophy_room_03 = { } trophy_room_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = trophy_room_03 @@ -738,7 +738,7 @@ trophy_room_04 = { ### Stewardship Upgrade office_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = estate_main_01 @@ -775,7 +775,7 @@ office_01 = { } office_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = office_01 @@ -813,7 +813,7 @@ office_02 = { } office_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = office_02 @@ -856,7 +856,7 @@ office_03 = { } office_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = office_03 @@ -902,7 +902,7 @@ office_04 = { ### Intrigue Upgrade servants_quarters_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = estate_main_01 @@ -935,7 +935,7 @@ servants_quarters_01 = { } servants_quarters_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = servants_quarters_01 @@ -971,7 +971,7 @@ servants_quarters_02 = { } servants_quarters_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = servants_quarters_02 @@ -1012,7 +1012,7 @@ servants_quarters_03 = { } servants_quarters_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = servants_quarters_03 @@ -1057,7 +1057,7 @@ servants_quarters_04 = { ### Learning Upgrade library_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = estate_main_01 @@ -1089,7 +1089,7 @@ library_01 = { } library_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = library_01 @@ -1127,7 +1127,7 @@ library_02 = { # Observatory sub-branch library_observatory_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = library_02 @@ -1168,7 +1168,7 @@ library_observatory_03 = { } library_observatory_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = library_observatory_03 @@ -1211,7 +1211,7 @@ library_observatory_04 = { # Education sub-branch library_education_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = library_02 @@ -1252,7 +1252,7 @@ library_education_03 = { } library_education_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = library_education_03 @@ -1297,7 +1297,7 @@ library_education_04 = { ### Bath bath_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = estate_main_01 @@ -1334,7 +1334,7 @@ bath_01 = { } bath_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = bath_01 @@ -1372,7 +1372,7 @@ bath_02 = { } bath_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = bath_02 @@ -1414,7 +1414,7 @@ bath_03 = { } bath_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = bath_03 @@ -1458,7 +1458,7 @@ bath_04 = { ### Guest Room guest_room_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = estate_main_01 @@ -1499,7 +1499,7 @@ guest_room_01 = { } guest_room_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = guest_room_01 @@ -1543,7 +1543,7 @@ guest_room_02 = { } guest_room_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = guest_room_02 @@ -1592,7 +1592,7 @@ guest_room_03 = { } guest_room_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = guest_room_03 @@ -1640,7 +1640,7 @@ guest_room_04 = { } guest_room_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = guest_room_04 @@ -1689,7 +1689,7 @@ guest_room_05 = { } guest_room_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = guest_room_05 @@ -1739,7 +1739,7 @@ guest_room_06 = { ### Wine Cellar wine_cellar_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = estate_main_01 @@ -1781,7 +1781,7 @@ wine_cellar_01 = { } wine_cellar_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = wine_cellar_01 @@ -1823,7 +1823,7 @@ wine_cellar_02 = { } wine_cellar_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = wine_cellar_02 @@ -1867,7 +1867,7 @@ wine_cellar_03 = { ### Courtyard courtyard_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = estate_main_01 @@ -1903,7 +1903,7 @@ courtyard_01 = { } courtyard_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = courtyard_01 @@ -1940,7 +1940,7 @@ courtyard_02 = { } courtyard_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = courtyard_02 @@ -1981,7 +1981,7 @@ courtyard_03 = { } courtyard_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = courtyard_03 @@ -2024,7 +2024,7 @@ courtyard_04 = { ### Prison prison_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = estate_main_01 @@ -2069,7 +2069,7 @@ prison_01 = { } prison_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = prison_01 @@ -2118,7 +2118,7 @@ prison_02 = { } prison_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = prison_02 @@ -2172,7 +2172,7 @@ prison_03 = { } prison_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = prison_03 @@ -2228,7 +2228,7 @@ prison_04 = { ### Reception Hall reception_hall_01 = { construction_time = 1000 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = estate_main_01 @@ -2270,7 +2270,7 @@ reception_hall_01 = { reception_hall_02 = { construction_time = 1000 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = reception_hall_01 @@ -2313,7 +2313,7 @@ reception_hall_02 = { reception_hall_03 = { construction_time = 1000 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = reception_hall_02 @@ -2357,7 +2357,7 @@ reception_hall_03 = { reception_hall_04 = { construction_time = 1000 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = reception_hall_03 @@ -2401,7 +2401,7 @@ reception_hall_04 = { reception_hall_05 = { construction_time = 1000 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = reception_hall_04 @@ -2446,7 +2446,7 @@ reception_hall_05 = { ### Cabinet of Curiosities cabinet_of_curiosities_01 = { construction_time = 1000 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = estate_main_01 @@ -2490,7 +2490,7 @@ cabinet_of_curiosities_01 = { cabinet_of_curiosities_02 = { construction_time = 1000 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = cabinet_of_curiosities_01 @@ -2544,7 +2544,7 @@ cabinet_of_curiosities_02 = { cabinet_of_curiosities_03 = { construction_time = 1000 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = cabinet_of_curiosities_02 @@ -2601,7 +2601,7 @@ cabinet_of_curiosities_03 = { #Grand Solar grand_solar_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = estate_main_01 @@ -2642,7 +2642,7 @@ grand_solar_01 = { grand_solar_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = grand_solar_01 @@ -2683,7 +2683,7 @@ grand_solar_02 = { grand_solar_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = grand_solar_02 @@ -2726,7 +2726,7 @@ grand_solar_03 = { grand_solar_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate } slot_type = internal previous_building = grand_solar_03 @@ -2778,7 +2778,7 @@ grand_solar_04 = { ### Temple Building temple_small_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } can_construct = { NOT = { @@ -2918,7 +2918,7 @@ temple_small_01 = { } temple_small_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = temple_small_01 cost = { @@ -3053,7 +3053,7 @@ temple_small_02 = { } temple_small_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = temple_small_02 can_construct = { @@ -3194,7 +3194,7 @@ temple_small_03 = { # Crypt sub-branch temple_crypt_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = temple_small_03 can_construct = { @@ -3348,7 +3348,7 @@ temple_crypt_04 = { } temple_crypt_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = temple_crypt_04 can_construct = { @@ -3502,7 +3502,7 @@ temple_crypt_05 = { } temple_crypt_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = temple_crypt_05 can_construct = { @@ -3659,7 +3659,7 @@ temple_crypt_06 = { # Temple sub-branch temple_large_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = temple_small_03 can_construct = { @@ -3801,7 +3801,7 @@ temple_large_04 = { } temple_large_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = temple_large_04 can_construct = { @@ -3943,7 +3943,7 @@ temple_large_05 = { } temple_large_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = temple_large_05 can_construct = { @@ -4089,7 +4089,7 @@ temple_large_06 = { # Monastery sub-branch temple_monastery_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = temple_small_03 can_construct = { @@ -4234,7 +4234,7 @@ temple_monastery_04 = { } temple_monastery_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = temple_monastery_04 can_construct = { @@ -4379,7 +4379,7 @@ temple_monastery_05 = { } temple_monastery_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = temple_monastery_05 can_construct = { @@ -4526,7 +4526,7 @@ temple_monastery_06 = { ### Barracks barracks_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } cost = { gold = { @@ -4609,7 +4609,7 @@ barracks_01 = { } barracks_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = barracks_01 cost = { @@ -4697,7 +4697,7 @@ barracks_02 = { } barracks_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = barracks_02 can_construct = { @@ -4789,7 +4789,7 @@ barracks_03 = { } barracks_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = barracks_03 can_construct = { @@ -4881,7 +4881,7 @@ barracks_04 = { } barracks_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = barracks_04 can_construct = { @@ -4973,7 +4973,7 @@ barracks_05 = { } barracks_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = barracks_05 can_construct = { @@ -5067,7 +5067,7 @@ barracks_06 = { ### Watchtower watchtower_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } cost = { gold = { @@ -5148,7 +5148,7 @@ watchtower_01 = { } watchtower_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = watchtower_01 cost = { @@ -5232,7 +5232,7 @@ watchtower_02 = { } watchtower_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = watchtower_02 can_construct = { @@ -5320,7 +5320,7 @@ watchtower_03 = { } watchtower_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = watchtower_03 can_construct = { @@ -5409,7 +5409,7 @@ watchtower_04 = { } watchtower_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = watchtower_04 can_construct = { @@ -5498,7 +5498,7 @@ watchtower_05 = { } watchtower_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = watchtower_05 can_construct = { @@ -5590,7 +5590,7 @@ watchtower_06 = { ### Guardhouse guardhouse_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } cost = { gold = { @@ -5671,7 +5671,7 @@ guardhouse_01 = { } guardhouse_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = guardhouse_01 cost = { @@ -5754,7 +5754,7 @@ guardhouse_02 = { } guardhouse_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = guardhouse_02 can_construct = { @@ -5843,7 +5843,7 @@ guardhouse_03 = { } guardhouse_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = guardhouse_03 can_construct = { @@ -5934,7 +5934,7 @@ guardhouse_04 = { ### Garden garden_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } cost = { gold = { @@ -6054,7 +6054,7 @@ garden_01 = { } garden_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = garden_01 cost = { @@ -6175,7 +6175,7 @@ garden_02 = { } garden_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = garden_02 cost = { @@ -6298,7 +6298,7 @@ garden_03 = { # Leisure Garden sub-branch garden_leisure_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = garden_03 can_construct = { @@ -6425,7 +6425,7 @@ garden_leisure_04 = { } garden_leisure_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = garden_leisure_04 can_construct = { @@ -6552,7 +6552,7 @@ garden_leisure_05 = { } garden_leisure_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = garden_leisure_05 can_construct = { @@ -6681,7 +6681,7 @@ garden_leisure_06 = { # Fruit Garden sub-branch garden_fruit_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = garden_03 can_construct = { @@ -6807,7 +6807,7 @@ garden_fruit_04 = { } garden_fruit_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = garden_fruit_04 can_construct = { @@ -6933,7 +6933,7 @@ garden_fruit_05 = { } garden_fruit_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = garden_fruit_05 can_construct = { @@ -7060,7 +7060,7 @@ garden_fruit_06 = { ### Stable stable_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } cost = { gold = { @@ -7142,7 +7142,7 @@ stable_01 = { } stable_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = stable_01 cost = { @@ -7229,7 +7229,7 @@ stable_02 = { } stable_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = stable_02 cost = { @@ -7318,7 +7318,7 @@ stable_03 = { # Grand Stable sub-branch stable_grand_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = stable_03 can_construct = { @@ -7403,7 +7403,7 @@ stable_grand_04 = { } stable_grand_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = stable_grand_04 can_construct = { @@ -7489,7 +7489,7 @@ stable_grand_05 = { } stable_grand_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = stable_grand_05 can_construct = { @@ -7577,7 +7577,7 @@ stable_grand_06 = { # Kennel sub-branch stable_kennel_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = stable_03 can_construct = { @@ -7671,7 +7671,7 @@ stable_kennel_04 = { } stable_kennel_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = stable_kennel_04 can_construct = { @@ -7766,7 +7766,7 @@ stable_kennel_05 = { } stable_kennel_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = stable_kennel_05 can_construct = { @@ -7864,7 +7864,7 @@ stable_kennel_06 = { # Charioteer sub-branch (Byzantine unique upgrade) stable_chariot_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = stable_03 can_construct_potential = { @@ -7948,7 +7948,7 @@ stable_chariot_04 = { } stable_chariot_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = stable_chariot_04 can_construct = { @@ -8033,7 +8033,7 @@ stable_chariot_05 = { } stable_chariot_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = stable_chariot_05 can_construct = { @@ -8120,7 +8120,7 @@ stable_chariot_06 = { ### Workshop workshop_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } cost = { gold = { @@ -8195,7 +8195,7 @@ workshop_01 = { } workshop_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = workshop_01 cost = { @@ -8273,7 +8273,7 @@ workshop_02 = { # Carpenter sub-branch workshop_carpenter_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = workshop_02 can_construct = { @@ -8357,7 +8357,7 @@ workshop_carpenter_03 = { } workshop_carpenter_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = workshop_carpenter_03 can_construct = { @@ -8441,7 +8441,7 @@ workshop_carpenter_04 = { } workshop_carpenter_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = workshop_carpenter_04 can_construct = { @@ -8526,7 +8526,7 @@ workshop_carpenter_05 = { } workshop_carpenter_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = workshop_carpenter_05 can_construct = { @@ -8613,7 +8613,7 @@ workshop_carpenter_06 = { # Mason sub-branch workshop_mason_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = workshop_02 can_construct = { @@ -8695,7 +8695,7 @@ workshop_mason_03 = { } workshop_mason_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = workshop_mason_03 can_construct = { @@ -8777,7 +8777,7 @@ workshop_mason_04 = { } workshop_mason_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = workshop_mason_04 can_construct = { @@ -8861,7 +8861,7 @@ workshop_mason_05 = { } workshop_mason_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = workshop_mason_05 can_construct = { @@ -8947,7 +8947,7 @@ workshop_mason_06 = { # Textile sub-branch workshop_textile_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = workshop_02 can_construct = { @@ -9031,7 +9031,7 @@ workshop_textile_03 = { } workshop_textile_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = workshop_textile_03 can_construct = { @@ -9115,7 +9115,7 @@ workshop_textile_04 = { } workshop_textile_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = workshop_textile_04 can_construct = { @@ -9199,7 +9199,7 @@ workshop_textile_05 = { } workshop_textile_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = workshop_textile_05 can_construct = { @@ -9285,7 +9285,7 @@ workshop_textile_06 = { ### Storage storage_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } cost = { gold = { @@ -9369,7 +9369,7 @@ storage_01 = { } storage_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = storage_01 cost = { @@ -9456,7 +9456,7 @@ storage_02 = { # Warehouse sub-branch storage_warehouse_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = storage_02 can_construct = { @@ -9540,7 +9540,7 @@ storage_warehouse_03 = { } storage_warehouse_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = storage_warehouse_03 can_construct = { @@ -9626,7 +9626,7 @@ storage_warehouse_04 = { # Granary sub-branch storage_granary_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = storage_02 can_construct = { @@ -9713,7 +9713,7 @@ storage_granary_03 = { } storage_granary_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = storage_granary_03 can_construct = { @@ -9806,7 +9806,7 @@ storage_granary_04 = { ### Market market_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } cost = { gold = { @@ -9894,7 +9894,7 @@ market_01 = { } market_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = market_01 cost = { @@ -9974,7 +9974,7 @@ market_02 = { } market_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = market_02 can_construct = { @@ -10059,7 +10059,7 @@ market_03 = { } market_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = market_03 can_construct = { @@ -10144,7 +10144,7 @@ market_04 = { } market_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = market_04 can_construct = { @@ -10229,7 +10229,7 @@ market_05 = { } market_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = market_05 can_construct = { @@ -10316,7 +10316,7 @@ market_06 = { ### Grazing Lands grazing_land_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } cost = { gold = { @@ -10436,7 +10436,7 @@ grazing_land_01 = { } grazing_land_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = grazing_land_01 cost = { @@ -10557,7 +10557,7 @@ grazing_land_02 = { } grazing_land_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = grazing_land_02 cost = { @@ -10678,7 +10678,7 @@ grazing_land_03 = { } grazing_land_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = grazing_land_03 can_construct = { @@ -10790,7 +10790,7 @@ grazing_land_04 = { } grazing_land_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = grazing_land_04 can_construct = { @@ -10902,7 +10902,7 @@ grazing_land_05 = { } grazing_land_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = grazing_land_05 can_construct = { @@ -11016,7 +11016,7 @@ grazing_land_06 = { # Horse Archer sub-branch horse_pasture_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = grazing_land_03 can_construct = { @@ -11122,7 +11122,7 @@ horse_pasture_04 = { } horse_pasture_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = horse_pasture_04 can_construct = { @@ -11228,7 +11228,7 @@ horse_pasture_05 = { } horse_pasture_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = horse_pasture_05 can_construct = { @@ -11336,7 +11336,7 @@ horse_pasture_06 = { # Camel sub-branch camel_pasture_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = grazing_land_03 can_construct = { @@ -11442,7 +11442,7 @@ camel_pasture_04 = { } camel_pasture_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = camel_pasture_04 can_construct = { @@ -11548,7 +11548,7 @@ camel_pasture_05 = { } camel_pasture_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = camel_pasture_05 can_construct = { @@ -11656,7 +11656,7 @@ camel_pasture_06 = { # Elephant sub-branch elephant_pasture_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = grazing_land_03 can_construct = { @@ -11738,7 +11738,7 @@ elephant_pasture_04 = { } elephant_pasture_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = elephant_pasture_04 can_construct = { @@ -11820,7 +11820,7 @@ elephant_pasture_05 = { } elephant_pasture_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = elephant_pasture_05 can_construct = { @@ -11904,7 +11904,7 @@ elephant_pasture_06 = { ### Grain Fields grain_field_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } cost = { gold = { @@ -12037,7 +12037,7 @@ grain_field_01 = { } grain_field_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = grain_field_01 cost = { @@ -12160,7 +12160,7 @@ grain_field_02 = { } grain_field_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = grain_field_02 can_construct = { @@ -12288,7 +12288,7 @@ grain_field_03 = { } grain_field_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = grain_field_03 can_construct = { @@ -12416,7 +12416,7 @@ grain_field_04 = { } grain_field_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = grain_field_04 can_construct = { @@ -12544,7 +12544,7 @@ grain_field_05 = { } grain_field_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = grain_field_05 can_construct = { @@ -12674,7 +12674,7 @@ grain_field_06 = { ### Rice Fields rice_field_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } @@ -12748,7 +12748,7 @@ rice_field_01 = { rice_field_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = rice_field_01 cost = { @@ -12821,7 +12821,7 @@ rice_field_02 = { rice_field_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = rice_field_02 can_construct = { @@ -12898,7 +12898,7 @@ rice_field_03 = { rice_field_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = rice_field_03 can_construct = { @@ -12975,7 +12975,7 @@ rice_field_04 = { rice_field_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = rice_field_04 can_construct = { @@ -13052,7 +13052,7 @@ rice_field_05 = { rice_field_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = rice_field_05 can_construct = { @@ -13130,7 +13130,7 @@ rice_field_06 = { ### Vineyard vineyard_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } cost = { gold = { @@ -13242,7 +13242,7 @@ vineyard_01 = { } vineyard_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = vineyard_01 cost = { @@ -13345,7 +13345,7 @@ vineyard_02 = { } vineyard_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = vineyard_02 can_construct = { @@ -13451,7 +13451,7 @@ vineyard_03 = { } vineyard_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = vineyard_03 can_construct = { @@ -13557,7 +13557,7 @@ vineyard_04 = { } vineyard_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = vineyard_04 can_construct = { @@ -13663,7 +13663,7 @@ vineyard_05 = { } vineyard_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = vineyard_05 can_construct = { @@ -13771,7 +13771,7 @@ vineyard_06 = { ### Tea Plantation tea_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } can_construct_potential = { culture ?= { has_innovation = innovation_champa_rice } @@ -13853,7 +13853,7 @@ tea_01 = { } tea_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = tea_01 cost = { @@ -13929,7 +13929,7 @@ tea_02 = { } tea_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = tea_02 can_construct = { @@ -14008,7 +14008,7 @@ tea_03 = { } tea_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = tea_03 can_construct = { @@ -14083,7 +14083,7 @@ tea_04 = { } tea_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = tea_04 can_construct = { @@ -14158,7 +14158,7 @@ tea_05 = { } tea_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = tea_05 can_construct = { @@ -14235,7 +14235,7 @@ tea_06 = { ### Olive Plantation olive_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } cost = { gold = { @@ -14344,7 +14344,7 @@ olive_01 = { } olive_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = olive_01 cost = { @@ -14444,7 +14444,7 @@ olive_02 = { } olive_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = olive_02 can_construct = { @@ -14548,7 +14548,7 @@ olive_03 = { } olive_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = olive_03 can_construct = { @@ -14652,7 +14652,7 @@ olive_04 = { } olive_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = olive_04 can_construct = { @@ -14757,7 +14757,7 @@ olive_05 = { } olive_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = olive_05 can_construct = { @@ -14864,7 +14864,7 @@ olive_06 = { ### Silk Production - Byzantine exclusive silk_01 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } can_construct = { custom_tooltip = { @@ -14940,7 +14940,7 @@ silk_01 = { } silk_02 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = silk_01 can_construct = { @@ -15020,7 +15020,7 @@ silk_02 = { } silk_03 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = silk_02 can_construct = { @@ -15101,7 +15101,7 @@ silk_03 = { } silk_04 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = silk_03 can_construct = { @@ -15183,7 +15183,7 @@ silk_04 = { } silk_05 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = silk_04 can_construct = { @@ -15265,7 +15265,7 @@ silk_05 = { } silk_06 = { construction_time = 730 - allowed_domicile_types = { estate } + allowed_domicile_types = { estate palace } previous_building = silk_05 can_construct = { diff --git a/common/domiciles/buildings/NEOW_palace.txt b/common/domiciles/buildings/NEOW_palace.txt new file mode 100644 index 00000000..17ca41e5 --- /dev/null +++ b/common/domiciles/buildings/NEOW_palace.txt @@ -0,0 +1,2765 @@ +palace_main_01 = { + slot_type = main + internal_slots = 2 + construction_time = 730 + allowed_domicile_types = { palace } + + cost = { + gold = estate_external_building_high_cost_tier_2_value + } + + character_modifier = { + domicile_monthly_gold_add = 0.25 + domicile_monthly_influence_add = 1 + domicile_external_slots_capacity_add = 2 + } + + ai_value = { + value = 100 + } + + asset = { + trigger = { + domicile_location.culture = { + has_graphical_east_asia_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/domicile_building/palace_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/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_mena_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_palace_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/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_western_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_palace_main_building" + } + + asset = { + icon = "gfx/interface/icons/domicile_building/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_palace_main_building" + } +} + +palace_main_02 = { + slot_type = main + internal_slots = 4 + construction_time = 730 + allowed_domicile_types = { palace } + previous_building = palace_main_01 + + can_construct = { + culture ?= { has_innovation = innovation_city_planning } + } + + cost = { + gold = estate_external_building_high_cost_tier_3_value + } + + parameters = { + reduce_success_of_raid_estate = yes + estate_increase_house_member_investment_cap_1 = yes + } + + character_modifier = { + domicile_monthly_gold_add = 0.25 + domicile_monthly_influence_add = 0.5 + domicile_external_slots_capacity_add = 1 + } + + ai_value = { + value = 100 + } + + asset = { + trigger = { + domicile_location.culture = { + has_graphical_east_asia_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/domicile_building/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_manor_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_manor_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/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_manor_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_manor_mena_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_palace_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/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_manor_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_manor_western_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_palace_main_building" + } + + asset = { + icon = "gfx/interface/icons/domicile_building/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_manor_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_manor_byzantine_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_palace_main_building" + } +} + +palace_main_03 = { + slot_type = main + internal_slots = 6 + construction_time = 730 + allowed_domicile_types = { palace } + previous_building = palace_main_02 + + can_construct = { + culture ?= { has_innovation = innovation_manorialism } + } + + cost = { + gold = estate_external_building_high_cost_tier_4_value + } + + parameters = { + 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_monthly_influence_add = 0.5 + domicile_external_slots_capacity_add = 1 + } + + ai_value = { + value = 100 + } + + asset = { + trigger = { + domicile_location.culture = { + has_graphical_east_asia_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/domicile_building/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_mansion_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_mansion_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/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_mansion_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_mansion_mena_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_palace_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/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_mansion_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_mansion_western_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_palace_main_building" + } + + asset = { + icon = "gfx/interface/icons/domicile_building/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_mansion_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_mansion_byzantine_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_palace_main_building" + } +} + +palace_main_04 = { + slot_type = main + internal_slots = 8 + construction_time = 730 + allowed_domicile_types = { palace } + previous_building = palace_main_03 + + can_construct = { + culture ?= { has_innovation = innovation_development_03 } + } + + cost = { + gold = estate_external_building_high_cost_tier_5_value + } + + parameters = { + 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_monthly_influence_add = 0.5 + domicile_external_slots_capacity_add = 1 + } + + ai_value = { + value = 100 + } + + asset = { + trigger = { + domicile_location.culture = { + has_graphical_east_asia_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/domicile_building/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_estate_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_estate_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/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_estate_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_estate_mena_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_palace_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/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_estate_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_estate_western_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_palace_main_building" + } + + asset = { + icon = "gfx/interface/icons/domicile_building/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_estate_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_estate_byzantine_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_palace_main_building" + } +} + +palace_main_05 = { + slot_type = main + internal_slots = 10 + construction_time = 730 + allowed_domicile_types = { palace } + previous_building = palace_main_04 + + can_construct = { + culture ?= { has_innovation = innovation_cranes } + } + + cost = { + gold = estate_external_building_high_cost_tier_6_value + } + + parameters = { + 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_monthly_influence_add = 0.5 + domicile_external_slots_capacity_add = 1 + } + + ai_value = { + value = 100 + } + + asset = { + trigger = { + domicile_location.culture = { + has_graphical_east_asia_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/domicile_building/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_grand_estate_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_grand_estate_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/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_grand_estate_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_grand_estate_mena_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_palace_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/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_grand_estate_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_grand_estate_western_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_palace_main_building" + } + + asset = { + icon = "gfx/interface/icons/domicile_building/palace_main.dds" + texture = "gfx/interface/window_domiciles/estate_building_grand_estate_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_grand_estate_byzantine_mask.png" + soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_palace_main_building" + } +} + + + +#################### +##### VILLA UPGRADES +### Diplomacy Upgrade +living_quarters_palace_01 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = palace_main_01 + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_1_value + if = { + limit = { has_character_modifier = raid_insight_living_quarters } + multiply = 0.75 + desc = raid_insight_quarters + } + } + } + + character_modifier = { + monthly_diplomacy_lifestyle_xp_gain_mult = 0.05 + personal_scheme_phase_duration_add = -10 + } + + parameters = { + estate_unlock_ingratiate_family_interaction = yes + } + + ai_value = { + value = 7 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_living_quarters.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +living_quarters_palace_02 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = living_quarters_palace_01 + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_2_value + if = { + limit = { has_character_modifier = raid_insight_living_quarters } + multiply = 0.75 + desc = raid_insight_quarters + } + } + } + + character_modifier = { + monthly_diplomacy_lifestyle_xp_gain_mult = 0.05 + dynasty_house_opinion = 5 + personal_scheme_phase_duration_add = -10 + owned_personal_scheme_success_chance_add = 5 + } + + parameters = { + estate_unlock_ingratiate_family_interaction = yes + } + + ai_value = { + value = 6 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_living_quarters.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +living_quarters_palace_03 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = living_quarters_palace_02 + + can_construct = { + domicile ?= { has_domicile_building_or_higher = palace_main_02 } + } + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_3_value + if = { + limit = { has_character_modifier = raid_insight_living_quarters } + multiply = 0.75 + desc = raid_insight_quarters + } + } + } + + character_modifier = { + monthly_diplomacy_lifestyle_xp_gain_mult = 0.05 + personal_scheme_phase_duration_add = -10 + owned_personal_scheme_success_chance_add = 5 + } + + parameters = { + estate_unlock_ingratiate_family_interaction = yes + } + + ai_value = { + value = 5 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_living_quarters.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +living_quarters_palace_04 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = living_quarters_palace_03 + + can_construct = { + domicile ?= { OR = { has_domicile_building_or_higher = palace_main_03 has_domicile_building_or_higher = palace_main_03 } } + } + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_4_value + if = { + limit = { has_character_modifier = raid_insight_living_quarters } + multiply = 0.75 + desc = raid_insight_quarters + } + } + } + + character_modifier = { + monthly_diplomacy_lifestyle_xp_gain_mult = 0.05 + dynasty_house_opinion = 5 + personal_scheme_phase_duration_add = -10 + owned_personal_scheme_success_chance_add = 5 + } + + parameters = { + estate_unlock_ingratiate_family_interaction = yes + } + + ai_value = { + value = 4 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_living_quarters.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +### Martial Upgrade +trophy_room_palace_01 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = palace_main_01 + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_1_value + if = { + limit = { has_character_modifier = raid_insight_trophy_room } + multiply = 0.75 + desc = raid_insight_trophy_room + } + } + } + + character_modifier = { + monthly_martial_lifestyle_xp_gain_mult = 0.05 + } + + ai_value = { + value = 7 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_trophy.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +trophy_room_palace_02 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = trophy_room_palace_01 + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_2_value + if = { + limit = { has_character_modifier = raid_insight_trophy_room } + multiply = 0.75 + desc = raid_insight_trophy_room + } + } + } + + character_modifier = { + monthly_martial_lifestyle_xp_gain_mult = 0.05 + prowess = 1 + } + + ai_value = { + value = 6 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_trophy.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +trophy_room_palace_03 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = trophy_room_palace_02 + + can_construct = { + domicile ?= { has_domicile_building_or_higher = palace_main_02 } + } + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_3_value + if = { + limit = { has_character_modifier = raid_insight_trophy_room } + multiply = 0.75 + desc = raid_insight_trophy_room + } + } + } + + character_modifier = { + monthly_martial_lifestyle_xp_gain_mult = 0.05 + advantage = 3 + } + + parameters = { + trophy_room_victory_influence = yes + } + + ai_value = { + value = 5 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_trophy.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +trophy_room_palace_04 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = trophy_room_palace_03 + + can_construct = { + domicile ?= { OR = { has_domicile_building_or_higher = palace_main_03 has_domicile_building_or_higher = palace_main_03 } } + } + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_4_value + if = { + limit = { has_character_modifier = raid_insight_trophy_room } + multiply = 0.75 + desc = raid_insight_trophy_room + } + } + } + + character_modifier = { + monthly_martial_lifestyle_xp_gain_mult = 0.05 + advantage = 3 + prowess = 1 + } + + parameters = { + trophy_room_victory_influence = yes + } + + ai_value = { + value = 4 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_trophy.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +### Stewardship Upgrade +office_palace_01 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = palace_main_01 + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_1_value + if = { + limit = { has_character_modifier = raid_insight_office } + multiply = 0.75 + desc = raid_insight_office + } + } + } + + parameters = { + estate_local_theme_cost_reduction = yes + estate_unlock_teach_governor_interaction = yes + } + + character_modifier = { + monthly_stewardship_lifestyle_xp_gain_mult = 0.05 + } + + ai_value = { + value = 7 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_office.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +office_palace_02 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = office_palace_01 + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_2_value + if = { + limit = { has_character_modifier = raid_insight_office } + multiply = 0.75 + desc = raid_insight_office + } + } + } + + parameters = { + estate_local_theme_cost_reduction = yes + estate_governor_efficiency_bonus = yes + estate_unlock_teach_governor_interaction = yes + } + + character_modifier = { + monthly_stewardship_lifestyle_xp_gain_mult = 0.05 + } + + ai_value = { + value = 6 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_office.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +office_palace_03 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = office_palace_02 + + can_construct = { + domicile ?= { has_domicile_building_or_higher = palace_main_02 } + } + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_3_value + if = { + limit = { has_character_modifier = raid_insight_office } + multiply = 0.75 + desc = raid_insight_office + } + } + } + + parameters = { + estate_local_theme_cost_reduction = yes + estate_governor_efficiency_bonus = yes + estate_governor_efficiency_bonus_for_house_members = yes + estate_unlock_teach_governor_interaction = yes + } + + character_modifier = { + monthly_stewardship_lifestyle_xp_gain_mult = 0.05 + } + + ai_value = { + value = 5 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_office.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +office_palace_04 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = office_palace_03 + + can_construct = { + domicile ?= { OR = { has_domicile_building_or_higher = palace_main_03 has_domicile_building_or_higher = palace_main_03 } } + } + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_4_value + if = { + limit = { has_character_modifier = raid_insight_office } + multiply = 0.75 + desc = raid_insight_office + } + } + } + + parameters = { + estate_local_theme_cost_reduction = yes + estate_governor_efficiency_bonus = yes + estate_governor_efficiency_bonus_for_house_members = yes + estate_governor_trait_xp_bonus_for_contracts = yes + estate_unlock_teach_governor_interaction = yes + } + + character_modifier = { + monthly_stewardship_lifestyle_xp_gain_mult = 0.05 + } + + ai_value = { + value = 4 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_office.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +### Intrigue Upgrade +servants_quarters_palace_01 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = palace_main_01 + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_1_value + if = { + limit = { has_character_modifier = raid_insight_servants_quarters } + multiply = 0.75 + desc = raid_insight_servants_quarters + } + } + } + + character_modifier = { + monthly_intrigue_lifestyle_xp_gain_mult = 0.05 + hostile_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + } + + ai_value = { + value = 7 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_servant.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +servants_quarters_palace_02 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = servants_quarters_palace_01 + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_2_value + if = { + limit = { has_character_modifier = raid_insight_servants_quarters } + multiply = 0.75 + desc = raid_insight_servants_quarters + } + } + } + + parameters = { + estate_unlock_hire_agents_decision = yes + } + + character_modifier = { + monthly_intrigue_lifestyle_xp_gain_mult = 0.05 + } + + ai_value = { + value = 6 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_servant.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +servants_quarters_palace_03 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = servants_quarters_palace_02 + + can_construct = { + domicile ?= { has_domicile_building_or_higher = palace_main_02 } + } + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_3_value + if = { + limit = { has_character_modifier = raid_insight_servants_quarters } + multiply = 0.75 + desc = raid_insight_servants_quarters + } + } + } + + parameters = { + estate_unlock_hire_agents_decision = yes + } + + character_modifier = { + monthly_intrigue_lifestyle_xp_gain_mult = 0.05 + owned_hostile_scheme_success_chance_add = 5 + } + + ai_value = { + value = 5 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_servant.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +servants_quarters_palace_04 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = servants_quarters_palace_03 + + can_construct = { + domicile ?= { OR = { has_domicile_building_or_higher = palace_main_03 has_domicile_building_or_higher = palace_main_03 } } + } + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_4_value + if = { + limit = { has_character_modifier = raid_insight_servants_quarters } + multiply = 0.75 + desc = raid_insight_servants_quarters + } + } + } + + parameters = { + estate_unlock_hire_agents_decision = yes + estate_improve_political_scheme_countermeasure = yes + } + + character_modifier = { + monthly_intrigue_lifestyle_xp_gain_mult = 0.05 + owned_hostile_scheme_success_chance_add = 5 + max_hostile_schemes_add = 1 + } + + ai_value = { + value = 4 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_servant.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +### Learning Upgrade +library_palace_01 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = palace_main_01 + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_1_value + if = { + limit = { has_character_modifier = raid_insight_library } + multiply = 0.75 + desc = raid_insight_library + } + } + } + + character_modifier = { + monthly_learning_lifestyle_xp_gain_mult = 0.05 + } + + ai_value = { + value = 7 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_library.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +library_palace_02 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = library_palace_01 + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_2_value + if = { + limit = { has_character_modifier = raid_insight_library } + multiply = 0.75 + desc = raid_insight_library + } + } + } + + parameters = { + estate_increase_physician_aptitude = yes + } + + character_modifier = { + monthly_learning_lifestyle_xp_gain_mult = 0.05 + } + + ai_value = { + value = 6 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_library.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +# Observatory sub-branch +library_observatory_palace_03 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = library_palace_02 + + can_construct = { + domicile ?= { has_domicile_building_or_higher = palace_main_02 } + } + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_3_value + if = { + limit = { has_character_modifier = raid_insight_library } + multiply = 0.75 + desc = raid_insight_library + } + } + } + + parameters = { + estate_increase_physician_aptitude = yes + } + + character_modifier = { + monthly_learning_lifestyle_xp_gain_mult = 0.05 + owned_legend_spread_mult = 0.05 + } + + ai_value = { + value = 5 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_observatory.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +library_observatory_palace_04 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = library_observatory_palace_03 + + can_construct = { + domicile ?= { OR = { has_domicile_building_or_higher = palace_main_03 has_domicile_building_or_higher = palace_main_03 } } + } + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_4_value + if = { + limit = { has_character_modifier = raid_insight_library } + multiply = 0.75 + desc = raid_insight_library + } + } + } + + parameters = { + estate_increase_physician_aptitude = yes + } + + character_modifier = { + monthly_learning_lifestyle_xp_gain_mult = 0.05 + owned_legend_spread_mult = 0.05 + } + + ai_value = { + value = 4 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_observatory.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +# Education sub-branch +library_education_palace_03 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = library_palace_02 + + can_construct = { + domicile ?= { has_domicile_building_or_higher = palace_main_02 } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_3_value + if = { + limit = { has_character_modifier = raid_insight_library } + multiply = 0.75 + desc = raid_insight_library + } + } + } + + parameters = { + estate_increase_physician_aptitude = yes + estate_reduced_tutor_cost = yes + } + + character_modifier = { + monthly_learning_lifestyle_xp_gain_mult = 0.05 + } + + ai_value = { + value = 5 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_tutor.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +library_education_palace_04 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = library_education_palace_03 + + can_construct = { + domicile ?= { OR = { has_domicile_building_or_higher = palace_main_03 has_domicile_building_or_higher = palace_main_03 } } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_4_value + if = { + limit = { has_character_modifier = raid_insight_library } + multiply = 0.75 + desc = raid_insight_library + } + } + } + + parameters = { + estate_unlock_tier_5_education = yes + estate_increase_physician_aptitude = yes + estate_reduced_tutor_cost = yes + estate_increased_tutor_aptitude = yes + } + + character_modifier = { + monthly_learning_lifestyle_xp_gain_mult = 0.05 + } + + ai_value = { + value = 4 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_tutor.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +### Bath +bath_palace_01 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = palace_main_01 + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_1_value + if = { + limit = { has_character_modifier = raid_insight_bath } + multiply = 0.75 + desc = raid_insight_bath + } + } + } + + character_modifier = { + negate_health_penalty_add = 0.05 + attraction_opinion = 3 + } + + parameters = { + estate_increase_safe_treatment_success_1 = yes + } + + ai_value = { + value = 6 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_bath.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +bath_palace_02 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = bath_palace_01 + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_2_value + if = { + limit = { has_character_modifier = raid_insight_bath } + multiply = 0.75 + desc = raid_insight_bath + } + } + } + + character_modifier = { + negate_health_penalty_add = 0.05 + attraction_opinion = 3 + epidemic_resistance = 2 + } + + parameters = { + estate_increase_safe_treatment_success_1 = yes + } + + ai_value = { + value = 5 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_bath.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +bath_palace_03 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = bath_palace_02 + + can_construct = { + domicile ?= { has_domicile_building_or_higher = palace_main_02 } + } + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_3_value + if = { + limit = { has_character_modifier = raid_insight_bath } + multiply = 0.75 + desc = raid_insight_bath + } + } + } + + character_modifier = { + negate_health_penalty_add = 0.05 + attraction_opinion = 3 + epidemic_resistance = 3 + } + + parameters = { + estate_increase_safe_treatment_success_1 = yes + } + + ai_value = { + value = 4 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_bath.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +bath_palace_04 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = bath_palace_03 + + can_construct = { + domicile ?= { OR = { has_domicile_building_or_higher = palace_main_03 has_domicile_building_or_higher = palace_main_03 } } + } + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_4_value + if = { + limit = { has_character_modifier = raid_insight_bath } + multiply = 0.75 + desc = raid_insight_bath + } + } + } + + character_modifier = { + negate_health_penalty_add = 0.05 + attraction_opinion = 3 + epidemic_resistance = 5 + } + + parameters = { + estate_increase_safe_treatment_success_2 = yes + } + + ai_value = { + value = 3 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_bath.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +### Guest Room +guest_room_palace_01 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = palace_main_01 + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_1_value + if = { + limit = { has_character_modifier = raid_insight_guest_room } + multiply = 0.75 + desc = raid_insight_guest_room + } + } + } + + character_modifier = { + domicile_monthly_influence_mult = 0.02 + courtier_and_guest_opinion = 2 + } + + ai_value = { + value = 8 + if = { + limit = { + scope:owner.culture ?= { + has_cultural_tradition = tradition_esteemed_hospitality + } + } + add = 2 + } + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_guest.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +guest_room_palace_02 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = guest_room_palace_01 + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_2_value + if = { + limit = { has_character_modifier = raid_insight_guest_room } + multiply = 0.75 + desc = raid_insight_guest_room + } + } + } + + character_modifier = { + domicile_monthly_influence_mult = 0.02 + } + + parameters = { + increased_success_personal_schemes_1 = yes + } + + ai_value = { + value = 7 + if = { + limit = { + scope:owner.culture ?= { + has_cultural_tradition = tradition_esteemed_hospitality + } + } + add = 2 + } + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_guest.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +guest_room_palace_03 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = guest_room_palace_02 + + can_construct = { + domicile ?= { has_domicile_building_or_higher = palace_main_02 } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_3_value + if = { + limit = { has_character_modifier = raid_insight_guest_room } + multiply = 0.75 + desc = raid_insight_guest_room + } + } + } + + character_modifier = { + domicile_monthly_influence_mult = 0.02 + courtier_and_guest_opinion = 2 + } + + parameters = { + increased_success_personal_schemes_1 = yes + } + + ai_value = { + value = 6 + if = { + limit = { + scope:owner.culture ?= { + has_cultural_tradition = tradition_esteemed_hospitality + } + } + add = 2 + } + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_guest.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +guest_room_palace_04 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = guest_room_palace_03 + + can_construct = { + domicile ?= { OR = { has_domicile_building_or_higher = palace_main_03 has_domicile_building_or_higher = palace_main_03 } } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_4_value + if = { + limit = { has_character_modifier = raid_insight_guest_room } + multiply = 0.75 + desc = raid_insight_guest_room + } + } + } + + character_modifier = { + domicile_monthly_influence_mult = 0.02 + } + + parameters = { + increased_success_personal_schemes_2 = yes + } + + ai_value = { + value = 5 + if = { + limit = { + scope:owner.culture ?= { + has_cultural_tradition = tradition_esteemed_hospitality + } + } + add = 2 + } + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_guest.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +guest_room_palace_05 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = guest_room_palace_04 + + can_construct = { + domicile ?= { has_domicile_building_or_higher = palace_main_04 } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_5_value + if = { + limit = { has_character_modifier = raid_insight_guest_room } + multiply = 0.75 + desc = raid_insight_guest_room + } + } + } + + character_modifier = { + domicile_monthly_influence_mult = 0.02 + courtier_and_guest_opinion = 2 + } + + parameters = { + increased_success_personal_schemes_2 = yes + } + + ai_value = { + value = 4 + if = { + limit = { + scope:owner.culture ?= { + has_cultural_tradition = tradition_esteemed_hospitality + } + } + add = 2 + } + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_guest.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +guest_room_palace_06 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = guest_room_palace_05 + + can_construct = { + domicile ?= { has_domicile_building_or_higher = palace_main_05 } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_6_value + if = { + limit = { has_character_modifier = raid_insight_guest_room } + multiply = 0.75 + desc = raid_insight_guest_room + } + } + } + + character_modifier = { + domicile_monthly_influence_mult = 0.02 + } + + parameters = { + increased_success_personal_schemes_3 = yes + } + + ai_value = { + value = 3 + if = { + limit = { + scope:owner.culture ?= { + has_cultural_tradition = tradition_esteemed_hospitality + } + } + add = 2 + } + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_guest.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +### Wine Cellar +wine_cellar_palace_01 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = palace_main_01 + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_1_value + if = { + limit = { has_character_modifier = raid_insight_wine_cellar } + multiply = 0.75 + } + } + } + + parameters = { + estate_unlock_feast_influence_option_1 = yes + } + + ai_value = { + value = 8 + if = { + limit = { + scope:owner.culture ?= { + OR = { + has_cultural_pillar = heritage_byzantine + has_cultural_tradition = tradition_culinary_art + } + } + } + add = 3 + } + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_cellar.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +wine_cellar_palace_02 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = wine_cellar_palace_01 + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_2_value + if = { + limit = { has_character_modifier = raid_insight_wine_cellar } + multiply = 0.75 + } + } + } + + parameters = { + estate_unlock_feast_influence_option_2 = yes + } + + ai_value = { + value = 6 + if = { + limit = { + scope:owner.culture ?= { + OR = { + has_cultural_pillar = heritage_byzantine + has_cultural_tradition = tradition_culinary_art + } + } + } + add = 3 + } + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_cellar.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +wine_cellar_palace_03 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = wine_cellar_palace_02 + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_3_value + if = { + limit = { has_character_modifier = raid_insight_wine_cellar } + multiply = 0.75 + } + } + } + + parameters = { + estate_unlock_feast_influence_option_3 = yes + } + + ai_value = { + value = 4 + if = { + limit = { + scope:owner.culture ?= { + OR = { + has_cultural_pillar = heritage_byzantine + has_cultural_tradition = tradition_culinary_art + } + } + } + add = 3 + } + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_cellar.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +### Courtyard +courtyard_palace_01 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = palace_main_01 + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_1_value + if = { + limit = { has_character_modifier = raid_insight_courtyard } + multiply = 0.75 + desc = raid_insight_courtyard + } + } + } + + parameters = { + estate_improved_feast_opinion = yes + } + + character_modifier = { + political_scheme_phase_duration_add = -3 + } + + ai_value = { + value = 8 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_courtyard.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +courtyard_palace_02 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = courtyard_palace_01 + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_2_value + if = { + limit = { has_character_modifier = raid_insight_courtyard } + multiply = 0.75 + desc = raid_insight_courtyard + } + } + } + + parameters = { + estate_improved_feast_opinion = yes + estate_cheaper_feast_cost = yes + } + + character_modifier = { + political_scheme_phase_duration_add = -3 + } + + ai_value = { + value = 7 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_courtyard.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +courtyard_palace_03 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = courtyard_palace_02 + + can_construct = { + domicile ?= { has_domicile_building_or_higher = palace_main_02 } + } + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_3_value + if = { + limit = { has_character_modifier = raid_insight_courtyard } + multiply = 0.75 + desc = raid_insight_courtyard + } + } + } + + parameters = { + estate_improved_feast_opinion = yes + estate_cheaper_feast_cost = yes + } + + character_modifier = { + political_scheme_phase_duration_add = -3 + } + + ai_value = { + value = 6 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_courtyard.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +courtyard_palace_04 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = courtyard_palace_03 + + can_construct = { + domicile ?= { OR = { has_domicile_building_or_higher = palace_main_03 has_domicile_building_or_higher = palace_main_03 } } + } + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_4_value + if = { + limit = { has_character_modifier = raid_insight_courtyard } + multiply = 0.75 + desc = raid_insight_courtyard + } + } + } + + parameters = { + estate_improved_feast_opinion = yes + estate_cheaper_feast_cost = yes + } + + character_modifier = { + political_scheme_phase_duration_add = -3 + } + + ai_value = { + value = 5 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_courtyard.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +### Prison +prison_palace_01 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = palace_main_01 + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_1_value + if = { + limit = { has_character_modifier = raid_insight_prison } + multiply = 0.75 + desc = raid_insight_prison + } + } + } + + character_modifier = { + dread_gain_mult = 0.05 + hostage_income_mult = 0.05 + } + + ai_value = { + value = 7 + if = { + limit = { + scope:owner = { + OR = { + has_trait = vengeful + has_trait = callous + has_trait = sadistic + } + } + } + add = 5 + } + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_prison.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +prison_palace_02 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = prison_palace_01 + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_2_value + if = { + limit = { has_character_modifier = raid_insight_prison } + multiply = 0.75 + desc = raid_insight_prison + } + } + } + + parameters = { + estate_torture_grants_influence = yes + } + + character_modifier = { + dread_gain_mult = 0.05 + hostage_income_mult = 0.05 + } + + ai_value = { + value = 6 + if = { + limit = { + scope:owner = { + OR = { + has_trait = vengeful + has_trait = callous + has_trait = sadistic + } + } + } + add = 5 + } + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_prison.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +prison_palace_03 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = prison_palace_02 + + can_construct = { + domicile ?= { has_domicile_building_or_higher = palace_main_02 } + } + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_3_value + if = { + limit = { has_character_modifier = raid_insight_prison } + multiply = 0.75 + desc = raid_insight_prison + } + } + } + + parameters = { + estate_torture_grants_influence = yes + } + + character_modifier = { + dread_gain_mult = 0.05 + hostage_income_mult = 0.05 + hostage_renown_mult = 0.05 + } + + ai_value = { + value = 5 + if = { + limit = { + scope:owner = { + OR = { + has_trait = vengeful + has_trait = callous + has_trait = sadistic + } + } + } + add = 5 + } + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_prison.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} +prison_palace_04 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = prison_palace_03 + + can_construct = { + domicile ?= { OR = { has_domicile_building_or_higher = palace_main_03 has_domicile_building_or_higher = palace_main_03 } } + } + + cost = { + gold = { + value = estate_internal_building_normal_cost_tier_4_value + if = { + limit = { has_character_modifier = raid_insight_prison } + multiply = 0.75 + desc = raid_insight_prison + } + } + } + + parameters = { + estate_torture_grants_influence = yes + } + + character_modifier = { + dread_gain_mult = 0.05 + hostage_income_mult = 0.05 + hostage_renown_mult = 0.05 + } + + ai_value = { + value = 4 + if = { + limit = { + scope:owner = { + OR = { + has_trait = vengeful + has_trait = callous + has_trait = sadistic + } + } + } + add = 5 + } + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_building_prison.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +### Reception Hall +reception_hall_palace_01 = { + construction_time = 1000 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = palace_main_01 + + can_construct = { + dynasty ?= { has_dynasty_perk = ep3_administrative_legacy_3 } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_1_value + if = { + limit = { has_character_modifier = raid_insight_reception_hall } + multiply = 0.75 + desc = raid_insight_reception_hall + } + } + } + + character_modifier = { + domicile_monthly_influence_mult = 0.02 + } + + parameters = { + legitimacy_counter = yes + reception_hall_legitimacy_loss_palace_01 = yes + } + + ai_value = { + value = 8 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_reception_hall.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +reception_hall_palace_02 = { + construction_time = 1000 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = reception_hall_palace_01 + + can_construct = { + dynasty ?= { has_dynasty_perk = ep3_administrative_legacy_3 } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_2_value + if = { + limit = { has_character_modifier = raid_insight_reception_hall } + multiply = 0.75 + desc = raid_insight_reception_hall + } + } + } + + character_modifier = { + domicile_monthly_influence_mult = 0.04 + } + + parameters = { + legitimacy_counter = yes + reception_hall_legitimacy_loss_palace_02 = yes + estate_increase_house_member_investment_cap_1 = yes + } + + ai_value = { + value = 7 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_reception_hall.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +reception_hall_palace_03 = { + construction_time = 1000 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = reception_hall_palace_02 + + can_construct = { + dynasty ?= { has_dynasty_perk = ep3_administrative_legacy_3 } + domicile ?= { has_domicile_building_or_higher = palace_main_02 } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_3_value + if = { + limit = { has_character_modifier = raid_insight_reception_hall } + multiply = 0.75 + desc = raid_insight_reception_hall + } + } + } + + character_modifier = { + domicile_monthly_influence_mult = 0.06 + } + + parameters = { + legitimacy_counter = yes + reception_hall_legitimacy_loss_palace_03 = yes + estate_increase_house_member_investment_cap_2 = yes + } + + ai_value = { + value = 6 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_reception_hall.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +reception_hall_palace_04 = { + construction_time = 1000 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = reception_hall_palace_03 + + can_construct = { + dynasty ?= { has_dynasty_perk = ep3_administrative_legacy_3 } + domicile ?= { OR = { has_domicile_building_or_higher = palace_main_03 has_domicile_building_or_higher = palace_main_03 } } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_4_value + if = { + limit = { has_character_modifier = raid_insight_reception_hall } + multiply = 0.75 + desc = raid_insight_reception_hall + } + } + } + + character_modifier = { + domicile_monthly_influence_mult = 0.08 + } + + parameters = { + legitimacy_counter = yes + reception_hall_legitimacy_loss_palace_04 = yes + estate_increase_house_member_investment_cap_3 = yes + } + + ai_value = { + value = 5 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_reception_hall.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +reception_hall_palace_05 = { + construction_time = 1000 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = reception_hall_palace_04 + + can_construct = { + dynasty ?= { has_dynasty_perk = ep3_administrative_legacy_3 } + domicile ?= { has_domicile_building_or_higher = palace_main_04 } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_5_value + if = { + limit = { has_character_modifier = raid_insight_reception_hall } + multiply = 0.75 + desc = raid_insight_reception_hall + } + } + } + + character_modifier = { + domicile_monthly_influence_mult = 0.1 + } + + parameters = { + legitimacy_counter = yes + reception_hall_legitimacy_loss_palace_05 = yes + estate_increase_house_member_investment_cap_4 = yes + } + + ai_value = { + value = 4 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_reception_hall.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +### Cabinet of Curiosities +cabinet_of_curiosities_palace_01 = { + construction_time = 1000 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = palace_main_01 + + can_construct = { + dynasty ?= { has_dynasty_perk = ep3_administrative_legacy_4 } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_2_value + if = { + limit = { has_character_modifier = raid_insight_cabinet_of_curiosities } + multiply = 0.75 + desc = raid_insight_cabinet_of_curiosities + } + } + } + + character_modifier = { + learning_per_influence_level = 1 + domicile_monthly_influence_add = 0.1 + } + + parameters = { + can_receive_artifacts = yes + estate_improved_inspirations_1 = yes + house_head_can_ask_for_artifacts = yes + } + + ai_value = { + value = 8 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_cabinet_of_curiosities.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +cabinet_of_curiosities_palace_02 = { + construction_time = 1000 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = cabinet_of_curiosities_palace_01 + + can_construct = { + dynasty ?= { + has_dynasty_perk = ep3_administrative_legacy_4 + custom_description = { + text = cabinet_of_curiosities_upgrade_trigger_2 + dynast.house ?= { cabinet_of_curiosities_artifact_score >= 15 } + } + } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_3_value + if = { + limit = { has_character_modifier = raid_insight_cabinet_of_curiosities } + multiply = 0.75 + desc = raid_insight_cabinet_of_curiosities + } + } + } + + character_modifier = { + stewardship_per_influence_level = 1 + monthly_dynasty_prestige = 0.5 + domicile_monthly_influence_add = 0.2 + monthly_court_grandeur_change_add = 0.2 + } + + parameters = { + can_receive_artifacts = yes + estate_improved_inspirations_2 = yes + estate_reduce_commission_artifact_cost = yes + estate_increase_antiquarian_aptitude = yes + house_head_can_ask_for_artifacts = yes + } + + ai_value = { + value = 7 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_cabinet_of_curiosities.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +cabinet_of_curiosities_palace_03 = { + construction_time = 1000 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = cabinet_of_curiosities_palace_02 + + can_construct = { + dynasty ?= { + has_dynasty_perk = ep3_administrative_legacy_4 + custom_description = { + text = cabinet_of_curiosities_upgrade_trigger_3 + dynast.house ?= { cabinet_of_curiosities_artifact_score >= 35 } + } + } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_4_value + if = { + limit = { has_character_modifier = raid_insight_cabinet_of_curiosities } + multiply = 0.75 + desc = raid_insight_cabinet_of_curiosities + } + } + } + + character_modifier = { + learning_per_influence_level = 1 + stewardship_per_influence_level = 1 + monthly_dynasty_prestige = 0.5 + domicile_monthly_influence_add = 0.3 + monthly_court_grandeur_change_add = 0.3 + general_opinion = 10 + } + + parameters = { + can_receive_artifacts = yes + estate_improved_inspirations_2 = yes + estate_reduce_commission_artifact_cost = yes + estate_increase_antiquarian_aptitude = yes + house_head_can_ask_for_artifacts = yes + } + + ai_value = { + value = 6 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_cabinet_of_curiosities.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +#Grand Solar +grand_solar_palace_01 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = palace_main_01 + + can_construct = { + custom_tooltip = { + text = unlocked_via_event + house.house_head = { has_character_flag = ep3_construct_grand_solar } + } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_1_value + if = { + limit = { has_character_modifier = raid_insight_grand_solar } + multiply = 0.75 + desc = raid_insight_grand_solar + } + } + } + + character_modifier = { + dynasty_opinion = 5 + stress_gain_mult = -0.05 + } + + ai_value = { + value = 10 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_solar.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +grand_solar_palace_02 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = grand_solar_palace_01 + + can_construct = { + custom_tooltip = { + text = unlocked_via_event + house.house_head = { has_character_flag = ep3_construct_grand_solar } + } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_2_value + if = { + limit = { has_character_modifier = raid_insight_grand_solar } + multiply = 0.75 + desc = raid_insight_grand_solar + } + } + } + + character_modifier = { + dynasty_opinion = 5 + stress_gain_mult = -0.05 + } + + ai_value = { + value = 8 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_solar.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +grand_solar_palace_03 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = grand_solar_palace_02 + + can_construct = { + custom_tooltip = { + text = unlocked_via_event + house.house_head = { has_character_flag = ep3_construct_grand_solar } + } + domicile ?= { has_domicile_building_or_higher = palace_main_02 } + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_3_value + if = { + limit = { has_character_modifier = raid_insight_grand_solar } + multiply = 0.75 + desc = raid_insight_grand_solar + } + } + } + + character_modifier = { + monthly_dynasty_prestige = 0.1 + dynasty_opinion = 5 + stress_gain_mult = -0.1 + } + + ai_value = { + value = 6 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_solar.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} + +grand_solar_palace_04 = { + construction_time = 730 + allowed_domicile_types = { palace } + slot_type = internal + previous_building = grand_solar_palace_03 + + can_construct = { + custom_tooltip = { + text = unlocked_via_event + house.house_head = { has_character_flag = ep3_construct_grand_solar } + } + domicile ?= { OR = { has_domicile_building_or_higher = palace_main_03 has_domicile_building_or_higher = palace_main_03 } } + } + + parameters = { + solar_white_peace_stress_loss = yes + } + + cost = { + gold = { + value = estate_internal_building_high_cost_tier_4_value + if = { + limit = { has_character_modifier = raid_insight_grand_solar } + multiply = 0.75 + desc = raid_insight_grand_solar + } + } + } + + character_modifier = { + monthly_dynasty_prestige = 0.1 + dynasty_opinion = 5 + stress_gain_mult = -0.1 + } + + ai_value = { + value = 4 + add = estate_building_ai_modifier_value + } + + asset = { + icon = "gfx/interface/icons/domicile_building/domicile_solar.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + } +} \ No newline at end of file diff --git a/common/domiciles/types/NEOW_domicile_types.txt b/common/domiciles/types/NEOW_domicile_types.txt index 2d413efa..7e9594e3 100644 --- a/common/domiciles/types/NEOW_domicile_types.txt +++ b/common/domiciles/types/NEOW_domicile_types.txt @@ -1,4 +1,923 @@ +palace = { + + rename_window = house + + illustration = "gfx/interface/illustrations/event_scenes/ep3_medi_estate.dds" + icon = "gfx/interface/icons/flat_icons/urbaner.dds" + map_pin_texture = "gfx/interface/icons/map_icons/map_icon_urban.dds" + map_pin_anchor = up + map_pin_lobby = yes + culture_and_faith = yes + + move_with_realm_capital = yes + can_move_manually = no + move_cost = { + gold = { + value = { + value = 20 + format = "BASE_VALUE_FORMAT" + desc = "BASE_VALUE" + } + if = { + limit = { + domicile ?= { has_domicile_building_or_higher = estate_main_05 } + } + add = 80 + } + else_if = { + limit = { + domicile ?= { has_domicile_building_or_higher = estate_main_04 } + } + add = 60 + } + else_if = { + limit = { + domicile ?= { has_domicile_building_or_higher = estate_main_03 } + } + add = 40 + } + else_if = { + limit = { + domicile ?= { has_domicile_building_or_higher = estate_main_02 } + } + add = 20 + } + } + } + + base_external_slots = 2 + + domicile_building_slots = { + external_slot_1 = { + position = { 19.7% 5.5% } + 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_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_jungle_empty_02.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_02_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.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_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.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_mask.png" + } + + empty_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty_05.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_05_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_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_04.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/yurt_empty_slot_04_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_05.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_05_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_03.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_03_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_03.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_03_mask.png" + } + + empty_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty_03.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_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" + } + } + } + + # Backgrounds + 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 = { + this = root.owner.top_liege.capital_province + } + } + background = "gfx/interface/window_domiciles/estate_background_urban_terrain.dds" + foreground = "gfx/interface/window_domiciles/estate_background_urban_terrain_foreground.dds" + ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_byzantine_urban" + } + + 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" + } +} minority_community = { rename_window = primary_title diff --git a/common/flavorization/NEOW_title_holders.txt b/common/flavorization/NEOW_title_holders.txt index d87ca27f..fe30d061 100644 --- a/common/flavorization/NEOW_title_holders.txt +++ b/common/flavorization/NEOW_title_holders.txt @@ -282,6 +282,9 @@ baron_peasantrepublic_male = { tier = barony priority = 7 governments = { peasantrepublic_government } + flavourization_rules = { + top_liege = no + } } baron_peasantrepublic_female = { type = character @@ -290,12 +293,18 @@ baron_peasantrepublic_female = { tier = barony priority = 7 governments = { peasantrepublic_government } + flavourization_rules = { + top_liege = no + } } barony_peasantrepublic = { type = title tier = barony priority = 7 governments = { peasantrepublic_government } + flavourization_rules = { + top_liege = no + } } count_peasantrepublic_male = { type = character @@ -304,6 +313,9 @@ count_peasantrepublic_male = { tier = county priority = 28 governments = { peasantrepublic_government } + flavourization_rules = { + top_liege = no + } } count_peasantrepublic_female = { type = character @@ -312,12 +324,18 @@ count_peasantrepublic_female = { tier = county priority = 28 governments = { peasantrepublic_government } + flavourization_rules = { + top_liege = no + } } county_peasantrepublic = { type = title tier = county priority = 51 governments = { peasantrepublic_government } + flavourization_rules = { + top_liege = no + } } duke_peasantrepublic_male = { type = character @@ -326,6 +344,9 @@ duke_peasantrepublic_male = { tier = duchy priority = 29 governments = { peasantrepublic_government } + flavourization_rules = { + top_liege = no + } } duke_peasantrepublic_female = { type = character @@ -334,12 +355,18 @@ duke_peasantrepublic_female = { tier = duchy priority = 29 governments = { peasantrepublic_government } + flavourization_rules = { + top_liege = no + } } duchy_peasantrepublic = { type = title tier = duchy priority = 60 governments = { peasantrepublic_government } + flavourization_rules = { + top_liege = no + } } king_peasantrepublic_male = { @@ -349,6 +376,9 @@ king_peasantrepublic_male = { tier = kingdom priority = 75 governments = { peasantrepublic_government } + flavourization_rules = { + top_liege = no + } } king_peasantrepublic_female = { @@ -358,6 +388,9 @@ king_peasantrepublic_female = { tier = kingdom priority = 75 governments = { peasantrepublic_government } + flavourization_rules = { + top_liege = no + } } kingdom_peasantrepublic = { @@ -365,6 +398,9 @@ kingdom_peasantrepublic = { tier = kingdom priority = 75 governments = { peasantrepublic_government } + flavourization_rules = { + top_liege = no + } } emperor_peasantrepublic_male = { @@ -374,6 +410,9 @@ emperor_peasantrepublic_male = { tier = empire priority = 102 governments = { peasantrepublic_government } + flavourization_rules = { + top_liege = no + } } emperor_peasantrepublic_female = { @@ -383,6 +422,9 @@ emperor_peasantrepublic_female = { tier = empire priority = 102 governments = { peasantrepublic_government } + flavourization_rules = { + top_liege = no + } } empire_peasantrepublic = { @@ -390,4 +432,170 @@ empire_peasantrepublic = { tier = empire priority = 102 governments = { peasantrepublic_government } -} \ No newline at end of file + flavourization_rules = { + top_liege = no + } +} + + +baron_urbanrepublic_male = { + type = character + gender = male + special = holder + tier = barony + priority = 7 + governments = { urbanrepublic_government } + flavourization_rules = { + top_liege = no + } +} +baron_urbanrepublic_female = { + type = character + gender = female + special = holder + tier = barony + priority = 7 + governments = { urbanrepublic_government } + flavourization_rules = { + top_liege = no + } +} +barony_urbanrepublic = { + type = title + tier = barony + priority = 7 + governments = { urbanrepublic_government } + flavourization_rules = { + top_liege = no + } +} +count_urbanrepublic_male = { + type = character + gender = male + special = holder + tier = county + priority = 28 + governments = { urbanrepublic_government } + flavourization_rules = { + top_liege = no + } +} +count_urbanrepublic_female = { + type = character + gender = female + special = holder + tier = county + priority = 28 + governments = { urbanrepublic_government } + flavourization_rules = { + top_liege = no + } +} +county_urbanrepublic = { + type = title + tier = county + priority = 51 + governments = { urbanrepublic_government } + flavourization_rules = { + top_liege = no + } +} +duke_urbanrepublic_male = { + type = character + gender = male + special = holder + tier = duchy + priority = 29 + governments = { urbanrepublic_government } + flavourization_rules = { + top_liege = no + } +} +duke_urbanrepublic_female = { + type = character + gender = female + special = holder + tier = duchy + priority = 29 + governments = { urbanrepublic_government } + flavourization_rules = { + top_liege = no + } +} +duchy_urbanrepublic = { + type = title + tier = duchy + priority = 60 + governments = { urbanrepublic_government } + flavourization_rules = { + top_liege = no + } + +} +king_urbanrepublic_male = { + type = character + gender = male + special = holder + tier = kingdom + priority = 75 + governments = { urbanrepublic_government } + flavourization_rules = { + top_liege = no + } + +} +king_urbanrepublic_female = { + type = character + gender = female + special = holder + tier = kingdom + priority = 75 + governments = { urbanrepublic_government } + flavourization_rules = { + top_liege = no + } + +} +kingdom_urbanrepublic = { + type = title + tier = kingdom + priority = 75 + governments = { urbanrepublic_government } + flavourization_rules = { + top_liege = no + } +} + +emperor_urbanrepublic_male = { + type = character + gender = male + special = holder + tier = empire + priority = 102 + governments = { urbanrepublic_government } + flavourization_rules = { + top_liege = no + } + +} +emperor_urbanrepublic_female = { + type = character + gender = female + special = holder + tier = empire + priority = 102 + governments = { urbanrepublic_government } + flavourization_rules = { + top_liege = no + } + +} +empire_urbanrepublic = { + type = title + tier = empire + priority = 102 + governments = { urbanrepublic_government } + flavourization_rules = { + top_liege = no + } +} diff --git a/common/game_concepts/neow_game_concepts.txt b/common/game_concepts/neow_game_concepts.txt index 63b01fe3..ff136535 100644 --- a/common/game_concepts/neow_game_concepts.txt +++ b/common/game_concepts/neow_game_concepts.txt @@ -35,4 +35,19 @@ peasantrepublic_government = { texture = "gfx/interface/icons/government_types/peasantrepublic_government.dds" alias = { peasantrepublic_government peasantrepublic_i } parent = government +} +palace = { + texture = "gfx/interface/icons/map_icons/map_icon_urban.dds" + alias = { palace palace_i } + parent = domicile +} +urbanrepublic_government = { + texture = "gfx/interface/icons/government_types/urbanrepublic_government.dds" + alias = { urbanrepublic_government urbanrepublic_i } + parent = government +} +monotown_holding = { + texture = "gfx/interface/icons/map_icons/onmap_holding_icon.dds" + parent = domicile + alias = { monotown_holdings } } \ No newline at end of file diff --git a/common/governments/00_government_types.txt b/common/governments/00_government_types.txt index c2d8d7ab..bc7b69ae 100644 --- a/common/governments/00_government_types.txt +++ b/common/governments/00_government_types.txt @@ -24,7 +24,7 @@ feudal_government = { use_legends = yes } character_modifier = { - ai_war_cooldown = 1.5 + ai_war_cooldown = 2 ai_war_chance = -0.15 } # Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player). @@ -59,12 +59,23 @@ republic_government = { has_cultural_tradition = tradition_farmer_republics } faith = { - has_doctrine = tenet_communal_possessions + has_doctrine = tenet_egalite } liege = { has_government = peasantrepublic_government } } + NOR = { + culture = { + has_cultural_tradition = tradition_republican_legacy + } + faith = { + has_doctrine = tenet_egalite + } + liege = { + has_government = urbanrepublic_government + } + } } ai = { arrange_marriage = no @@ -193,7 +204,7 @@ clan_government = { } character_modifier = { - ai_war_cooldown = 1.5 + ai_war_cooldown = 2 ai_war_chance = -0.15 } # Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player). @@ -249,7 +260,7 @@ tribal_government = { character_travel_safety = 10 monthly_prestige = 0.2 - ai_war_cooldown = 1.5 + ai_war_cooldown = 2 ai_war_chance = -0.05 } @@ -311,7 +322,7 @@ wanua_government = { # "Wanua" domain_limit_max = 2 vassal_limit_max = 2 - ai_war_cooldown = 1.5 + ai_war_cooldown = 2 ai_war_chance = -0.55 } @@ -465,7 +476,7 @@ administrative_government = { # Vassals get Treasury income that is this percentage less than their taxes to their liege monthly_treasury_from_liege_mult = -0.15 - ai_war_cooldown = 1.5 + ai_war_cooldown = 2 ai_war_chance = -0.15 } @@ -655,6 +666,7 @@ peasantrepublic_government = { sticky_government = yes replenishes_county_fertility = yes regiments_use_barter_goods_as_gold = yes + inherit_from_dynastic_government = no } can_get_government = { @@ -669,6 +681,17 @@ peasantrepublic_government = { has_government = peasantrepublic_government } } + NOR = { + culture = { + has_cultural_tradition = tradition_republican_legacy + } + faith = { + has_doctrine = tenet_egalite + } + liege = { + has_government = urbanrepublic_government + } + } } domicile_type = farmstead character_modifier = { @@ -685,7 +708,7 @@ peasantrepublic_government = { mercenary_hire_cost_mult = 2 men_at_arms_maintenance = 1.5 vassal_limit = 5 - ai_war_cooldown = 1.5 + ai_war_cooldown = 2 ai_war_chance = -0.15 } vassal_contract_group = peasantrepublic_vassal @@ -709,6 +732,86 @@ peasantrepublic_government = { realm_mask_offset = { 0.0 -0.01 } realm_mask_scale = { 1 1 } } +urbanrepublic_government = { + primary_holding = city_holding + valid_holdings = { temple_citadel_holding monotown_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 + sticky_government = yes + inherit_from_dynastic_government = no + treasury = yes + replace_gold_cost_by_treasury = yes + regiments_use_barter_goods_as_gold = yes + } + + can_get_government = { + OR = { + culture = { + has_cultural_tradition = tradition_republican_legacy + } + faith = { + has_doctrine = tenet_egalite + } + liege = { + has_government = urbanrepublic_government + } + } + } + domicile_type = palace + character_modifier = { + 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 + ignore_negative_opinion_of_culture = yes + men_at_arms_cap = 2 + men_at_arms_limit = 2 + knight_limit = -4 + active_accolades = -1 + title_creation_cost_mult = 1.5 + mercenary_hire_cost_mult = -0.25 + men_at_arms_maintenance = 2 + vassal_limit = 5 + ai_war_cooldown = 2 + ai_war_chance = -0.15 + monthly_treasury_from_vassals = 0.85 + } + vassal_contract_group = urbanrepublic_vassal + + # Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player). + flags = { + government_has_influence + government_is_settled + government_has_treasury + may_elevate_co_monarch + government_uses_legitimacy + government_uses_domain_limit + government_uses_monotowns + government_has_citizen_militia + government_elections_and_tax_influenced_by_influence + government_is_barterer + government_is_urepublic + government_locked_to_elective + government_allows_nomad_domicile_titles + } + + mechanic_type = feudal + color = { 0 85 164 } + realm_mask_offset = { 0.0 -0.01 } + realm_mask_scale = { 1 1 } +} ### Brief: nomad_government # Default nomad government, used for the Steppe Region # @@ -911,7 +1014,7 @@ celestial_government = { # Vassals get Treasury income that is this percentage less than their taxes to their liege monthly_treasury_from_liege_mult = -0.25 - ai_war_cooldown = 1.5 + ai_war_cooldown = 2 ai_war_chance = -0.15 } diff --git a/common/holdings/00_holdings.txt b/common/holdings/00_holdings.txt index 72c1bd06..1ab65ced 100644 --- a/common/holdings/00_holdings.txt +++ b/common/holdings/00_holdings.txt @@ -204,6 +204,16 @@ church_holding = { can_be_inherited = yes } +monotown_holding = { + primary_building = monotown_01 + can_be_inherited = yes + required_heir_government_types = { urbanrepublic_government } + + parameters = { + no_buildings + } + can_be_inherited = yes +} nomad_holding = { primary_building = nomadic_camp_01 diff --git a/common/laws/00_succession_laws.txt b/common/laws/00_succession_laws.txt index e7e4abea..e53c1b25 100644 --- a/common/laws/00_succession_laws.txt +++ b/common/laws/00_succession_laws.txt @@ -40,8 +40,9 @@ } is_confederation_member = no } - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } should_start_with = { @@ -86,6 +87,7 @@ potential = { NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic government_has_flag = government_is_nomadic government_has_flag = government_is_clan government_has_flag = government_is_administrative @@ -130,8 +132,9 @@ is_confederation_member = yes } } - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } should_start_with = { @@ -177,6 +180,7 @@ potential = { NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic government_has_flag = government_is_nomadic government_has_flag = government_is_clan government_has_flag = government_is_administrative @@ -198,8 +202,9 @@ can_have = { NOT = { government_has_flag = government_is_nomadic } can_have_high_partition_succession_law_trigger = yes - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } should_start_with = { @@ -246,6 +251,7 @@ potential = { NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic government_has_flag = government_is_nomadic government_has_flag = government_is_clan government_has_flag = government_is_administrative @@ -274,11 +280,11 @@ NOT = { exists = var:administrative_ui_special_title.holder } } can_have = { - NOT = { government_has_flag = government_is_nomadic } - can_have_single_heir_succession_law_trigger = yes - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } + can_have_single_heir_succession_law_trigger = yes } can_pass = { can_change_succession_law_trigger = yes @@ -337,8 +343,9 @@ } potential = { - NOR = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic government_has_flag = government_is_nomadic government_has_flag = government_is_mandala } @@ -360,8 +367,9 @@ } can_have = { government_has_flag = government_is_nomadic - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } can_pass = { @@ -414,8 +422,9 @@ can_have = { NOT = { government_has_flag = government_is_nomadic } can_have_single_heir_youngest_succession_law_trigger = yes - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } can_pass = { @@ -497,8 +506,9 @@ can_have = { NOT = { government_has_flag = government_is_nomadic } can_have_single_heir_dynasty_house_trigger = yes - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } can_pass = { @@ -561,8 +571,9 @@ } potential = { - NOR = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic government_has_flag = government_is_administrative government_has_flag = government_is_nomadic government_has_flag = government_is_mandala @@ -580,8 +591,9 @@ can_have = { NOT = { government_has_flag = government_is_nomadic } can_have_acclamation_succession_law_trigger = yes - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } should_start_with = { @@ -616,6 +628,7 @@ is_independent_ruler = yes NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic government_has_flag = government_is_celestial government_has_flag = government_is_japan_administrative government_has_flag = government_is_meritocratic @@ -639,8 +652,9 @@ can_have = { NOT = { government_has_flag = government_is_nomadic } can_have_appointment_succession_law_trigger = yes - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } can_pass = { @@ -706,8 +720,9 @@ } can_have = { government_has_flag = government_is_landless_adventurer - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } can_pass = { @@ -740,14 +755,16 @@ bishop_theocratic_succession_law = { can_keep = { can_have_bishop_theocratic_succession_law_trigger = yes # same as can_have - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } can_have = { can_have_bishop_theocratic_succession_law_trigger = yes - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } should_start_with = { @@ -767,14 +784,16 @@ holy_order_succession_law = { can_keep = { can_have_holy_order_succession_law_trigger = yes # same as can_have - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } can_have = { can_have_holy_order_succession_law_trigger = yes - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } should_start_with = { @@ -814,14 +833,16 @@ city_succession_law = { can_keep = { can_have_city_succession_law_trigger = yes - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } can_have = { can_have_city_succession_law_trigger = yes - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } should_start_with = { @@ -855,8 +876,9 @@ house ?= { has_house_unity_stage = antagonistic } - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } @@ -915,8 +937,9 @@ house ?= { has_house_unity_stage = competitive } - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } should_start_with = { @@ -977,8 +1000,9 @@ house ?= { has_house_unity_stage = impassive } - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } should_start_with = { @@ -1038,8 +1062,9 @@ house ?= { has_house_unity_stage = friendly } - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } should_start_with = { @@ -1093,8 +1118,9 @@ house ?= { has_house_unity_stage = harmonious } - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } should_start_with = { @@ -1134,14 +1160,16 @@ herder_succession_law = { can_keep = { can_have_herder_succession_law_trigger = yes - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } can_have = { can_have_herder_succession_law_trigger = yes - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } should_start_with = { @@ -1180,8 +1208,9 @@ can_have = { government_allows = administrative is_independent_ruler = no - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } can_pass = { diff --git a/common/laws/01_title_succession_laws.txt b/common/laws/01_title_succession_laws.txt index c37630e8..4a294c1d 100644 --- a/common/laws/01_title_succession_laws.txt +++ b/common/laws/01_title_succession_laws.txt @@ -6,6 +6,7 @@ highest_held_title_tier >= tier_county NOR = { #Cultures have their special flavor. government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic culture = { has_cultural_parameter = witenagemot_succession_enabled } culture = { has_cultural_parameter = scandinavian_elective_enabled } culture = { has_cultural_parameter = tribal_elective_enabled } #FP3 addition @@ -38,8 +39,9 @@ government_has_flag = government_is_feudal government_has_flag = government_is_clan } - NOT = { + NOR = { #Cultures have their special flavor. government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } highest_held_title_tier = tier_empire } @@ -104,6 +106,40 @@ } } + urban_elective_succession_law = { + can_have = { + government_has_flag = government_is_urepublic + } + can_pass = { + can_change_title_law_trigger = yes + } + can_title_have = { + tier >= tier_county + is_temporal_head_of_faith_trigger = no + NOT = { + is_nomad_title = yes + } + } + succession = { + order_of_succession = election + election_type = urban_elective + } + should_start_with = { + government_has_flag = government_is_urepublic + } + flag = elective_succession_law + flag = titles_cannot_leave_realm_on_succession + title_allegiance_opinion = 5 + revoke_cost = { + prestige = change_title_succession_law_prestige_cost + } + pass_cost = { + prestige = change_title_succession_law_prestige_cost + } + potential = { + government_has_flag = government_is_urepublic + } + } # Thing scandinavian_elective_succession_law = { can_have = { @@ -112,8 +148,9 @@ government_has_flag = government_is_clan government_has_flag = government_is_tribal } - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } highest_held_title_tier >= tier_duchy } @@ -146,8 +183,9 @@ government_has_flag = government_is_clan government_has_flag = government_is_tribal } - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } highest_held_title_tier >= tier_duchy } @@ -186,8 +224,9 @@ government_has_flag = government_is_clan government_has_flag = government_is_tribal } - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } highest_held_title_tier >= tier_kingdom } @@ -240,6 +279,10 @@ is_nomad_title = yes government_has_flag = government_is_prepublic } + AND = { + is_nomad_title = yes + government_has_flag = government_is_urepublic + } } } should_show_for_title = { # Never show this in the UI, just apply it through script @@ -316,8 +359,9 @@ celestial_ministry_appointment_succession_law = { can_have = { government_has_flag = government_is_celestial - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } can_pass = { @@ -357,8 +401,9 @@ celestial_grand_marshal_appointment_succession_law = { can_have = { government_has_flag = government_is_celestial - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } } can_pass = { diff --git a/common/legitimacy/00_legitimacy.txt b/common/legitimacy/00_legitimacy.txt index 0ba484b1..c391389f 100644 --- a/common/legitimacy/00_legitimacy.txt +++ b/common/legitimacy/00_legitimacy.txt @@ -6,6 +6,7 @@ count_legitimacy = { is_valid = { highest_held_title_tier = tier_county government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic NOR = { government_allows = administrative government_has_flag = government_is_nomadic diff --git a/common/men_at_arms_types/NEOW_maa_types.txt b/common/men_at_arms_types/NEOW_maa_types.txt index 4ed27861..69dfc233 100644 --- a/common/men_at_arms_types/NEOW_maa_types.txt +++ b/common/men_at_arms_types/NEOW_maa_types.txt @@ -438,6 +438,50 @@ NEOW_militia = { icon = pikemen_militia } +NEOW_citizen_militia = { + type = peasant_militia + + damage = 15 + toughness = 18 + pursuit = 10 + screen = 4 + + terrain_bonus = { + mountains = { toughness = 8 } + desert_mountains = { toughness = 8 } + hills = { toughness = 4 } + farmlands = { toughness = 8 } + floodplains = { toughness = 8 } + terraced_hills = { toughness = 8 } + } + + counters = { + light_cavalry = 1 + heavy_cavalry = 0.5 + camel_cavalry = 1 + } + can_recruit = { + government_has_flag = government_is_urepublic + } + + buy_cost = { gold = militia_recruitment_cost } + low_maintenance_cost = { gold = skirmisher_low_maint_cost } + high_maintenance_cost = { gold = militia_high_maint_cost } + provision_cost = @provisions_cost_infantry_cheap + stack = 150 + ai_quality = { value = culture_ai_weight_skirmishers } + + illustration = { + trigger = { + should_use_asian_maa_graphics = yes + } + reference = pikemen_militia_asia + } + illustration = { + reference = pikemen_militia + } + icon = pikemen_militia +} carabineers = { type = gun_cavalry diff --git a/common/on_action/game_start.txt b/common/on_action/game_start.txt index 272a051b..7f63de6c 100644 --- a/common/on_action/game_start.txt +++ b/common/on_action/game_start.txt @@ -2718,6 +2718,40 @@ on_game_start_after_lobby = { add_title_law = saxon_elective_succession_law } } + if = { + limit = { + government_has_flag = government_is_urepublic + NOT = { + exists = domicile + } + } + save_scope_as = scoped_merchant + create_nomad_title = { + name = domicile_palace + holder = scope:scoped_merchant + government = urbanrepublic_government + save_scope_as = new_title + } + scope:new_title ?= { + add_title_law = noble_family_succession_law + } + } + if = { + limit = { + government_has_flag = government_is_urepublic + primary_title = { + NOT = { + has_title_law = urban_elective_succession_law + } + } + } + every_held_title = { + limit = { + title_tier > barony + } + add_title_law = urban_elective_succession_law + } + } # Extra Nomad Regions #Tibet diff --git a/common/on_action/title_on_actions.txt b/common/on_action/title_on_actions.txt index 394bc1fa..a6a88054 100644 --- a/common/on_action/title_on_actions.txt +++ b/common/on_action/title_on_actions.txt @@ -231,6 +231,40 @@ on_title_gain = { add_title_law = saxon_elective_succession_law } } + if = { + limit = { + government_has_flag = government_is_urepublic + NOT = { + exists = domicile + } + } + save_scope_as = scoped_merchant + create_nomad_title = { + name = domicile_palace + holder = scope:scoped_merchant + government = urbanrepublic_government + save_scope_as = new_title + } + scope:new_title ?= { + add_title_law = noble_family_succession_law + } + } + if = { + limit = { + government_has_flag = government_is_urepublic + primary_title = { + NOT = { + has_title_law = urban_elective_succession_law + } + } + } + every_held_title = { + limit = { + title_tier > barony + } + add_title_law = urban_elective_succession_law + } + } if = { limit = { scope:title.tier = tier_county @@ -2865,6 +2899,40 @@ on_title_gain_inheritance = { add_title_law = saxon_elective_succession_law } } + if = { + limit = { + government_has_flag = government_is_urepublic + NOT = { + exists = domicile + } + } + save_scope_as = scoped_merchant + create_nomad_title = { + name = domicile_palace + holder = scope:scoped_merchant + government = urbanrepublic_government + save_scope_as = new_title + } + scope:new_title ?= { + add_title_law = noble_family_succession_law + } + } + if = { + limit = { + government_has_flag = government_is_urepublic + primary_title = { + NOT = { + has_title_law = urban_elective_succession_law + } + } + } + every_held_title = { + limit = { + title_tier > barony + } + add_title_law = urban_elective_succession_law + } + } if = { limit = { government = landless_minority_government @@ -2949,6 +3017,40 @@ on_title_gain_usurpation = { add_title_law = saxon_elective_succession_law } } + if = { + limit = { + government_has_flag = government_is_urepublic + NOT = { + exists = domicile + } + } + save_scope_as = scoped_merchant + create_nomad_title = { + name = domicile_palace + holder = scope:scoped_merchant + government = urbanrepublic_government + save_scope_as = new_title + } + scope:new_title ?= { + add_title_law = noble_family_succession_law + } + } + if = { + limit = { + government_has_flag = government_is_urepublic + primary_title = { + NOT = { + has_title_law = urban_elective_succession_law + } + } + } + every_held_title = { + limit = { + title_tier > barony + } + add_title_law = urban_elective_succession_law + } + } if = { limit = { government = landless_minority_government diff --git a/common/on_action/yearly_on_actions.txt b/common/on_action/yearly_on_actions.txt index 683ade37..792c566b 100644 --- a/common/on_action/yearly_on_actions.txt +++ b/common/on_action/yearly_on_actions.txt @@ -789,6 +789,40 @@ yearly_playable_pulse = { add_title_law = saxon_elective_succession_law } } + if = { + limit = { + government_has_flag = government_is_urepublic + NOT = { + exists = domicile + } + } + save_scope_as = scoped_merchant + create_nomad_title = { + name = domicile_palace + holder = scope:scoped_merchant + government = urbanrepublic_government + save_scope_as = new_title + } + scope:new_title ?= { + add_title_law = noble_family_succession_law + } + } + if = { + limit = { + government_has_flag = government_is_urepublic + primary_title = { + NOT = { + has_title_law = urban_elective_succession_law + } + } + } + every_held_title = { + limit = { + title_tier > barony + } + add_title_law = urban_elective_succession_law + } + } if = { limit = { has_title = title:k_papal_state @@ -2742,6 +2776,40 @@ quarterly_playable_pulse = { add_title_law = saxon_elective_succession_law } } + if = { + limit = { + government_has_flag = government_is_urepublic + NOT = { + exists = domicile + } + } + save_scope_as = scoped_merchant + create_nomad_title = { + name = domicile_palace + holder = scope:scoped_merchant + government = urbanrepublic_government + save_scope_as = new_title + } + scope:new_title ?= { + add_title_law = noble_family_succession_law + } + } + if = { + limit = { + government_has_flag = government_is_urepublic + primary_title = { + NOT = { + has_title_law = urban_elective_succession_law + } + } + } + every_held_title = { + limit = { + title_tier > barony + } + add_title_law = urban_elective_succession_law + } + } } on_actions = { realm_maintenance_quarterly_pulse diff --git a/common/scripted_triggers/00_available_for_events_triggers.txt b/common/scripted_triggers/00_available_for_events_triggers.txt index 5fef1d0f..3301213f 100644 --- a/common/scripted_triggers/00_available_for_events_triggers.txt +++ b/common/scripted_triggers/00_available_for_events_triggers.txt @@ -908,6 +908,7 @@ is_landed_or_landless_administrative = { is_playable_character = { OR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic is_landed = yes is_landless_administrative = yes is_landless_adventurer = yes diff --git a/common/subject_contracts/contracts/peasant_republic_obligations.txt b/common/subject_contracts/contracts/peasant_republic_obligations.txt index f6c70c1e..f99c91aa 100644 --- a/common/subject_contracts/contracts/peasant_republic_obligations.txt +++ b/common/subject_contracts/contracts/peasant_republic_obligations.txt @@ -1,4 +1,5 @@ peasantrepublic_obligations = { + uses_opinion_of_liege = yes obligation_levels = { default = { levies = { @@ -28,6 +29,16 @@ multiply = dynasty_prestige_level } } + + if = { + limit = { OR = { scope:opinion_of_liege > 0 scope:opinion_of_liege < 0} } + add = { + value = { + add = scope:opinion_of_liege + divide = 100 + } + } + } } tax = { value = 0.1 @@ -56,6 +67,15 @@ multiply = dynasty_prestige_level } } + if = { + limit = { OR = { scope:opinion_of_liege > 0 scope:opinion_of_liege < 0} } + add = { + value = { + add = scope:opinion_of_liege + divide = 100 + } + } + } } barter_goods = { value = 0.1 @@ -84,6 +104,15 @@ multiply = dynasty_prestige_level } } + if = { + limit = { OR = { scope:opinion_of_liege > 0 scope:opinion_of_liege < 0} } + add = { + value = { + add = scope:opinion_of_liege + divide = 100 + } + } + } } herd = { value = 0.1 @@ -112,6 +141,15 @@ multiply = dynasty_prestige_level } } + if = { + limit = { OR = { scope:opinion_of_liege > 0 scope:opinion_of_liege < 0} } + add = { + value = { + add = scope:opinion_of_liege + divide = 100 + } + } + } } } } diff --git a/common/subject_contracts/contracts/urban_republic_obligations.txt b/common/subject_contracts/contracts/urban_republic_obligations.txt new file mode 100644 index 00000000..e9f75a3c --- /dev/null +++ b/common/subject_contracts/contracts/urban_republic_obligations.txt @@ -0,0 +1,137 @@ +urbanrepublic_obligations = { + uses_opinion_of_liege = yes + obligation_levels = { + default = { + levies = { + value = 0.1 + max = 1 + scope:liege = { + add = { + value = 0.1 + multiply = legitimacy_level + } + } + scope:liege = { + add = { + value = 0.1 + multiply = prestige_level + } + } + scope:liege = { + add = { + value = 0.1 + multiply = piety_level + } + } + scope:liege = { + add = { + value = 0.1 + multiply = dynasty_prestige_level + } + } + scope:liege = { + add = { + value = 0.1 + multiply = influence_level + } + } + + if = { + limit = { OR = { scope:opinion_of_liege > 0 scope:opinion_of_liege < 0} } + add = { + value = { + add = scope:opinion_of_liege + divide = 100 + } + } + } + } + tax = { + value = 0.1 + max = 1 + scope:liege = { + add = { + value = 0.1 + multiply = legitimacy_level + } + } + scope:liege = { + add = { + value = 0.1 + multiply = prestige_level + } + } + scope:liege = { + add = { + value = 0.1 + multiply = piety_level + } + } + scope:liege = { + add = { + value = 0.1 + multiply = dynasty_prestige_level + } + } + scope:liege = { + add = { + value = 0.1 + multiply = influence_level + } + } + if = { + limit = { OR = { scope:opinion_of_liege > 0 scope:opinion_of_liege < 0} } + add = { + value = { + add = scope:opinion_of_liege + divide = 100 + } + } + } + } + barter_goods = { + value = 0.1 + max = 1 + scope:liege = { + add = { + value = 0.1 + multiply = legitimacy_level + } + } + scope:liege = { + add = { + value = 0.1 + multiply = prestige_level + } + } + scope:liege = { + add = { + value = 0.1 + multiply = piety_level + } + } + scope:liege = { + add = { + value = 0.1 + multiply = dynasty_prestige_level + } + } + scope:liege = { + add = { + value = 0.1 + multiply = influence_level + } + } + if = { + limit = { OR = { scope:opinion_of_liege > 0 scope:opinion_of_liege < 0} } + add = { + value = { + add = scope:opinion_of_liege + divide = 100 + } + } + } + } + } + } +} diff --git a/common/subject_contracts/groups/subject_contract_groups.txt b/common/subject_contracts/groups/subject_contract_groups.txt index 2f38ad5c..118b12c0 100644 --- a/common/subject_contracts/groups/subject_contract_groups.txt +++ b/common/subject_contracts/groups/subject_contract_groups.txt @@ -30,6 +30,17 @@ peasantrepublic_vassal = { coinage_rights } } +urbanrepublic_vassal = { + contracts = { + urbanrepublic_obligations + war_declaration_rights + council_rights + title_revocation_rights + religious_rights + fortification_rights + coinage_rights + } +} theocracy_vassal ={ diff --git a/common/succession_election/04_saxon_elective.txt b/common/succession_election/04_saxon_elective.txt index 71c4a25e..425022ff 100644 --- a/common/succession_election/04_saxon_elective.txt +++ b/common/succession_election/04_saxon_elective.txt @@ -11,7 +11,6 @@ saxon_elective = { #Farmer Elective base = 1 modifier = { #Each voter is the "representative" of all the free men living in his domain. The larger the domain, the more voting power he has. desc = tooltip_scandinavian_elective_development - is_landed_or_landless_administrative = yes domain_size >= 1 any_held_title = { title_tier = county @@ -46,7 +45,6 @@ saxon_elective = { #Farmer Elective } modifier = { #Further boost/reduction is given depending on capital county's opinion. desc = tooltip_scandinavian_elective_capital_opinion - is_landed_or_landless_administrative = yes exists = capital_county OR = { capital_county.county_opinion <= -5 @@ -120,12 +118,28 @@ saxon_elective = { #Farmer Elective is_vassal_of = scope:holder #Only Powerful, direct, de jure vassals are potential candidates. feudal_elective_potential_landed_candidate_trigger = yes government_has_flag = government_is_prepublic + OR = { + culture = { + has_cultural_tradition = tradition_farmer_republics + } + faith = { + has_doctrine = tenet_communal_possessions + } + } } } add = { type = holder_close_or_extended_family limit = { feudal_elective_potential_landless_dynastic_candidate_trigger = yes + OR = { + culture = { + has_cultural_tradition = tradition_farmer_republics + } + faith = { + has_doctrine = tenet_communal_possessions + } + } } } add = { @@ -133,6 +147,210 @@ saxon_elective = { #Farmer Elective limit = { is_vassal_of = scope:holder #Only Powerful, direct, de jure vassals are potential candidates. government_has_flag = government_is_prepublic + OR = { + culture = { + has_cultural_tradition = tradition_farmer_republics + } + faith = { + has_doctrine = tenet_communal_possessions + } + } + } + } + add = { + type = holder_council_members + limit = { + OR = { + is_courtier_of = scope:holder + is_vassal_of = scope:holder #All direct de jure vassals, no matter the tier. + } + OR = { + culture = { + has_cultural_tradition = tradition_farmer_republics + } + faith = { + has_doctrine = tenet_communal_possessions + } + } + } + } + } +} + +urban_elective = { #Urban Elective + elector_vote_strength = { + base = 1 + modifier = { #Each voter is the "representative" of all the free men living in his domain. The larger the domain, the more voting power he has. + desc = tooltip_scandinavian_elective_development + domain_size >= 1 + any_held_title = { + title_tier = county + development_level > 0 + target_is_de_jure_liege_or_above = scope:title + } + add = { + every_held_title = { + title_tier = county + limit = { + development_level > 0 + target_is_de_jure_liege_or_above = scope:title + } + add = { + value = this.development_level + if = { + limit = { + this.faith != root.faith + } + divide = 2 + } + if = { + limit = { + NOT = { this.culture = { has_same_culture_heritage = root.culture } } + } + divide = 2 + } + min = 1 + } + } + } + } + modifier = { #Further boost/reduction is given depending on capital county's opinion. + desc = tooltip_scandinavian_elective_capital_opinion + is_landed_or_landless_administrative = yes + exists = capital_county + OR = { + capital_county.county_opinion <= -5 + capital_county.county_opinion >= 5 + } + add = { + value = capital_county.county_opinion + multiply = 0.2 + } + } + modifier = { #Further boost/reduction is given depending on capital county's opinion. + desc = tooltip_urbanrep_vote_strength_influence + add = { + value = 3 + multiply = influence_level + } + } + min = 1 + } + + electors = { + add = holder + add = { + type = title_dejure_vassals + limit = { + is_vassal_of = scope:holder #All direct de jure vassals, no matter the tier. + is_adult = yes + NOT = { has_trait = incapable } + } + } + add = { + type = holder_council_members + limit = { + is_adult = yes + NOT = { has_trait = incapable } + } + } + add = { + type = holder_direct_vassals + limit = { + is_vassal_of = scope:holder #All direct de jure vassals, no matter the tier. + is_adult = yes + NOT = { has_trait = incapable } + } + } + } + + candidate_score = { + base = 0 + ###################### Elector self-voting pattern ########################## + elector_self_voting_pattern_feudal_elective_modifier = yes + + ########################## Holder voting pattern ########################## + holder_voting_pattern_feudal_elective_modifier = yes + + ########################## Elector voting patterns (circumstances) ########################## + elector_voting_pattern_circumstances_feudal_elective_modifier = yes + elector_voting_pattern_circumstances_saxon_elective_modifier = yes + + ########################## Elector voting patterns (prestige/piety) ########################## + elector_voting_pattern_prestige_piety_feudal_elective_modifier = yes + + ########################## Elector voting patterns (traits) ########################## + elector_voting_pattern_traits_feudal_elective_modifier = yes + + ########################## Elector voting patterns (opinion) ########################## + elector_voting_pattern_opinion_feudal_elective_modifier = yes + + ########################## Elector voting patterns (misc) ########################## + elector_voting_pattern_circumstances_misc_elective_modifier = yes + } + + #scope:candidate = Candidate, scope:title = Title, scope:holder_candidate = Candidate currently selected by ruler. + candidates = { + add = { + type = title_dejure_vassals + limit = { + is_vassal_of = scope:holder #Only Powerful, direct, de jure vassals are potential candidates. + feudal_elective_potential_landed_candidate_trigger = yes + government_has_flag = government_is_urepublic + OR = { + culture = { + has_cultural_tradition = tradition_republican_legacy + } + faith = { + has_doctrine = tenet_egalite + } + } + } + } + add = { + type = holder_close_or_extended_family + limit = { + feudal_elective_potential_landless_dynastic_candidate_trigger = yes + OR = { + culture = { + has_cultural_tradition = tradition_republican_legacy + } + faith = { + has_doctrine = tenet_egalite + } + } + } + } + add = { + type = holder_direct_vassals + limit = { + is_vassal_of = scope:holder #Only Powerful, direct, de jure vassals are potential candidates. + government_has_flag = government_is_urepublic + OR = { + culture = { + has_cultural_tradition = tradition_republican_legacy + } + faith = { + has_doctrine = tenet_egalite + } + } + } + } + add = { + type = holder_council_members + limit = { + OR = { + is_courtier_of = scope:holder + is_vassal_of = scope:holder #All direct de jure vassals, no matter the tier. + } + OR = { + culture = { + has_cultural_tradition = tradition_republican_legacy + } + faith = { + has_doctrine = tenet_egalite + } + } } } } diff --git a/common/traits/00_traits.txt b/common/traits/00_traits.txt index 4ef5fdf5..c88433cc 100644 --- a/common/traits/00_traits.txt +++ b/common/traits/00_traits.txt @@ -13,6 +13,7 @@ education_intrigue_1 = { intrigue = 2 category = education monthly_intrigue_lifestyle_xp_gain_mult = 0.1 + monthly_influence = 0.25 ruler_designer_cost = 0 @@ -43,6 +44,7 @@ education_intrigue_2 = { intrigue = 4 category = education monthly_intrigue_lifestyle_xp_gain_mult = 0.2 + monthly_influence = 0.5 ruler_designer_cost = 20 @@ -68,6 +70,7 @@ education_intrigue_3 = { intrigue = 6 category = education monthly_intrigue_lifestyle_xp_gain_mult = 0.3 + monthly_influence = 0.75 ruler_designer_cost = 40 @@ -93,6 +96,7 @@ education_intrigue_4 = { intrigue = 8 category = education monthly_intrigue_lifestyle_xp_gain_mult = 0.4 + monthly_influence = 1 ruler_designer_cost = 80 @@ -122,6 +126,7 @@ education_intrigue_5 = { monthly_diplomacy_lifestyle_xp_gain_mult = 0.25 owned_hostile_scheme_success_chance_max_add = 10 flag = agent_acceptance_25 + monthly_influence = 1.5 ruler_designer_cost = 150 @@ -150,6 +155,7 @@ education_diplomacy_1 = { diplomacy = 2 category = education monthly_diplomacy_lifestyle_xp_gain_mult = 0.1 + monthly_influence = 0.25 ruler_designer_cost = 0 @@ -180,6 +186,7 @@ education_diplomacy_2 = { diplomacy = 4 category = education monthly_diplomacy_lifestyle_xp_gain_mult = 0.2 + monthly_influence = 0.5 ruler_designer_cost = 20 @@ -205,6 +212,7 @@ education_diplomacy_3 = { diplomacy = 6 category = education monthly_diplomacy_lifestyle_xp_gain_mult = 0.3 + monthly_influence = 0.75 ruler_designer_cost = 40 @@ -230,6 +238,7 @@ education_diplomacy_4 = { diplomacy = 8 category = education monthly_diplomacy_lifestyle_xp_gain_mult = 0.4 + monthly_influence = 1 ruler_designer_cost = 80 @@ -269,6 +278,7 @@ education_diplomacy_5 = { owned_personal_scheme_success_chance_max_add = 10 flag = offer_vassalisation_25 flag = better_war_hostages + monthly_influence = 1.5 ruler_designer_cost = 150 @@ -1075,6 +1085,7 @@ lifestyle_reveler = { parameter = reveler_traits_more_valued monthly_prestige = 0.25 } + monthly_influence = 0.25 track = { 50 = { @@ -1198,6 +1209,7 @@ lifestyle_blademaster = { parameter = blademaster_traits_give_learning learning = 2 } + monthly_influence = 0.25 track = { 50 = { @@ -1467,6 +1479,7 @@ strategist = { parameter = martial_traits_give_out_hcav_bonus heavy_cavalry_damage_mult = 0.1 } + monthly_influence = 0.25 ruler_designer_cost = 50 @@ -1538,6 +1551,7 @@ gallant = { parameter = martial_traits_give_out_hcav_bonus heavy_cavalry_toughness_mult = 0.1 } + monthly_influence = 0.25 ruler_designer_cost = 50 @@ -1603,6 +1617,7 @@ administrator = { vassal_opinion = 5 tributary_opinion = 5 epidemic_resistance = 10 + monthly_influence = 0.75 ruler_designer_cost = 50 @@ -1685,6 +1700,7 @@ schemer = { intrigue = 5 hostile_scheme_phase_duration_add = medium_scheme_phase_duration_bonus_value + monthly_influence = 1.25 ruler_designer_cost = 50 @@ -1717,6 +1733,7 @@ seducer = { intrigue = 3 attraction_opinion = 40 fertility = 0.2 + monthly_influence = 0.5 ruler_designer_cost = 50 @@ -2333,6 +2350,7 @@ gluttonous = { opposite_opinion = -10 ruler_designer_cost = 20 + monthly_influence = -0.25 desc = { @@ -2528,6 +2546,7 @@ lazy = { stress_loss_mult = 0.5 ruler_designer_cost = -10 + monthly_influence = -0.5 desc = { first_valid = { @@ -2571,6 +2590,7 @@ diligent = { parochial_opinion = 5 stress_loss_mult = -0.5 + monthly_influence = 0.5 culture_modifier = { parameter = hard_working_traits_more_valued @@ -2668,6 +2688,7 @@ wrathful = { courtly_opinion = -10 dread_baseline_add = 20 + monthly_influence = -0.75 culture_modifier = { parameter = forest_trait_bonuses @@ -2819,6 +2840,7 @@ patient = { enemy_hostile_scheme_phase_duration_add = minor_scheme_phase_duration_malus_value parochial_opinion = 10 liege_opinion = 5 + monthly_influence = 0.25 culture_modifier = { parameter = winter_trait_bonuses @@ -2965,6 +2987,7 @@ arrogant = { opinion_of_liege = -5 opinion_of_vassal = -5 opposite_opinion = -15 + monthly_influence = -0.25 ruler_designer_cost = 20 @@ -3106,10 +3129,7 @@ deceitful = { jungle_advantage = 2 } - culture_modifier = { - parameter = palace_politics_trait_bonuses - monthly_influence = 0.25 - } + monthly_influence = 0.25 opposite_opinion = -10 @@ -3155,6 +3175,7 @@ honest = { diplomacy = 2 intrigue = -4 + monthly_influence = -0.25 courtly_opinion = 5 opposite_opinion = -10 same_opinion = 10 @@ -3277,6 +3298,7 @@ brave = { opposite_opinion = -10 same_opinion = 10 + monthly_influence = 0.25 culture_modifier = { parameter = trait_county_opinion_modifiers county_opinion_add = 10 @@ -3368,10 +3390,7 @@ shy = { monthly_piety_gain_mult = 0.1 } - culture_modifier = { - parameter = palace_politics_trait_maluses - monthly_influence = -0.25 - } + monthly_influence = -0.25 ruler_designer_cost = -10 @@ -3421,7 +3440,7 @@ gregarious = { same_opinion = 10 courtly_opinion = 5 - monthly_influence = 0.1 + monthly_influence = 0.25 culture_modifier = { parameter = trait_county_opinion_modifiers @@ -3511,10 +3530,7 @@ ambitious = { same_culture_opinion = -15 } - culture_modifier = { - parameter = palace_politics_trait_bonuses - monthly_influence = 0.35 - } + monthly_influence = 0.75 opinion_of_liege = -15 same_opinion = -15 @@ -3580,6 +3596,7 @@ content = { ai_war_chance = -0.25 ruler_designer_cost = 20 + monthly_influence = -0.25 culture_modifier = { parameter = craven_and_content_traits_looked_down_upon @@ -3649,10 +3666,7 @@ arbitrary = { stress_gain_mult = -0.5 dread_baseline_add = 15 - culture_modifier = { - parameter = palace_politics_trait_bonuses - monthly_influence = 0.15 - } + monthly_influence = 0.15 vassal_opinion = -5 @@ -3704,6 +3718,7 @@ just = { opposite_opinion = -10 same_opinion = 10 flag = initial_legitimacy_boost + monthly_influence = 0.25 culture_modifier = { parameter = just_trait_gives_bonuses @@ -3919,10 +3934,7 @@ paranoid = { hills_min_combat_roll = 2 } - culture_modifier = { - parameter = palace_politics_trait_bonuses - monthly_influence = 0.15 - } + monthly_influence = 0.15 opinion_of_vassal = -10 @@ -3981,10 +3993,7 @@ trusting = { character_travel_safety = -10 flag = can_offer_strong_hook_to_agents - culture_modifier = { - parameter = palace_politics_trait_maluses - monthly_influence = -0.25 - } + monthly_influence = -0.25 ruler_designer_cost = 10 @@ -4712,6 +4721,7 @@ drunkard = { # Substance Abuse (Alcohol) character_travel_safety = -10 ruler_designer_cost = -10 + monthly_influence = -0.5 desc = { first_valid = { @@ -4742,6 +4752,7 @@ hashishiyah = { # Substance Abuse (Hashish) same_opinion = 10 ruler_designer_cost = 5 + monthly_influence = -0.5 desc = { first_valid = { @@ -4773,6 +4784,7 @@ rakish = { # Brothel-frequenter. attraction_opinion = -5 ruler_designer_cost = 0 + monthly_influence = -0.5 desc = { first_valid = { @@ -4805,6 +4817,7 @@ reclusive = { # Hides away from relationships and responsibilities. epidemic_resistance = 10 ruler_designer_cost = -5 + monthly_influence = -0.25 desc = { first_valid = { @@ -4843,6 +4856,7 @@ irritable = { # Prone to outbursts and tantrums. flag = can_duel_anyone_interaction ruler_designer_cost = 0 + monthly_influence = -0.25 desc = { first_valid = { @@ -4976,6 +4990,7 @@ contrite = { # Compulsively reveals own/other's Secrets. If no known Secrets, ma stress_loss_mult = 0.2 ruler_designer_cost = -5 + monthly_influence = -0.90 desc = { first_valid = { @@ -5240,6 +5255,7 @@ lunatic_1 = { # Highly event driven, Schizophrenia enemy_hostile_scheme_phase_duration_add = minor_scheme_phase_duration_malus_value health = -0.25 category = health + monthly_influence = -1 shown_in_ruler_designer = no @@ -5269,6 +5285,7 @@ lunatic_genetic = { # Highly event driven, Schizophrenia group_equivalence = lunatic level = 2 health = -0.25 + monthly_influence = -1 vassal_opinion = -10 attraction_opinion = -10 @@ -5308,6 +5325,7 @@ possessed_1 = { # Highly event driven, Temporal lobe epilepsy attraction_opinion = -10 same_opinion = 15 + monthly_influence = -0.5 shown_in_ruler_designer = no @@ -5339,6 +5357,7 @@ possessed_genetic = { # Highly event driven, Temporal lobe epilepsy monthly_learning_lifestyle_xp_gain_mult = 0.1 health = -0.5 + monthly_influence = -0.75 attraction_opinion = -10 same_opinion = 15 @@ -6541,6 +6560,7 @@ beauty_bad_1 = { random_creation = 0.5 attraction_opinion = -10 + monthly_influence = -0.1 group = beauty_bad level = 1 @@ -6580,6 +6600,7 @@ beauty_bad_2 = { random_creation = 0.25 attraction_opinion = -20 + monthly_influence = -0.2 group = beauty_bad level = 2 @@ -6619,6 +6640,7 @@ beauty_bad_3 = { fertility = -0.3 attraction_opinion = -30 + monthly_influence = -0.3 group = beauty_bad level = 3 @@ -6658,6 +6680,7 @@ beauty_good_1 = { random_creation = 0.5 attraction_opinion = 10 + monthly_influence = 0.1 group = beauty_good level = 1 @@ -6700,6 +6723,7 @@ beauty_good_2 = { random_creation = 0.25 attraction_opinion = 20 + monthly_influence = 0.2 # pretty if female # handsome if male @@ -6757,6 +6781,7 @@ beauty_good_3 = { fertility = 0.3 attraction_opinion = 30 + monthly_influence = 0.3 group = beauty_good level = 3 @@ -6798,6 +6823,7 @@ intellect_bad_1 = { stewardship = -2 intrigue = -2 learning = -2 + monthly_influence = -0.2 monthly_lifestyle_xp_gain_mult = -0.1 @@ -6852,6 +6878,7 @@ intellect_bad_2 = { stewardship = -4 intrigue = -4 learning = -4 + monthly_influence = -0.4 monthly_lifestyle_xp_gain_mult = -0.2 @@ -6908,6 +6935,7 @@ intellect_bad_3 = { stewardship = -8 intrigue = -8 learning = -8 + monthly_influence = -0.8 monthly_lifestyle_xp_gain_mult = -0.3 @@ -6967,6 +6995,7 @@ intellect_good_1 = { group = intellect_good level = 1 + monthly_influence = 0.2 ai_rationality = high_positive_ai_value @@ -7014,6 +7043,7 @@ intellect_good_2 = { stewardship = 3 intrigue = 3 learning = 3 + monthly_influence = 0.4 monthly_lifestyle_xp_gain_mult = 0.2 @@ -7072,6 +7102,7 @@ intellect_good_3 = { stewardship = 5 intrigue = 5 learning = 5 + monthly_influence = 0.8 monthly_lifestyle_xp_gain_mult = 0.3 @@ -7405,13 +7436,14 @@ physique_good_3 = { ################# PHYSICAL (GOOD) ################ pure_blooded = { physical = yes - fertility = 0.1 - health = 0.25 - inbreeding_chance = -0.5 + fertility = -2 + health = -2 + inbreeding_chance = 5 + genetic = yes + enables_inbred = yes inherit_chance = 15 both_parent_has_trait_inherit_chance = 75 - good = yes ruler_designer_cost = 50 @@ -11277,10 +11309,7 @@ loyal = { monthly_prestige = 0.1 } - culture_modifier = { - parameter = palace_politics_trait_bonuses - monthly_influence = 0.1 - } + monthly_influence = 0.1 culture_modifier = { parameter = scholar_official_trait_bonuses diff --git a/gfx/interface/coat_of_arms/Mural_crown_kingdom_115.dds b/gfx/interface/coat_of_arms/Mural_crown_kingdom_115.dds new file mode 100644 index 00000000..00e8f6f4 --- /dev/null +++ b/gfx/interface/coat_of_arms/Mural_crown_kingdom_115.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa0cbac3fb325057cf3e65f179c004f3ba387951a1c7d70eab914d66e9e9114a +size 5248 diff --git a/gfx/interface/coat_of_arms/Mural_crown_kingdom_28.dds b/gfx/interface/coat_of_arms/Mural_crown_kingdom_28.dds new file mode 100644 index 00000000..2073b6f1 --- /dev/null +++ b/gfx/interface/coat_of_arms/Mural_crown_kingdom_28.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe096468b7de636949c451602525eff1f1783619a1ba2e528e4a5642c7d01a29 +size 448 diff --git a/gfx/interface/coat_of_arms/Mural_crown_kingdom_44.dds b/gfx/interface/coat_of_arms/Mural_crown_kingdom_44.dds new file mode 100644 index 00000000..75bc5f5c --- /dev/null +++ b/gfx/interface/coat_of_arms/Mural_crown_kingdom_44.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0355960883474b06d8edfd0402f3d1ca01edf60c77608b97e3230856e9dd3168 +size 1064 diff --git a/gfx/interface/coat_of_arms/Mural_crown_kingdom_62.dds b/gfx/interface/coat_of_arms/Mural_crown_kingdom_62.dds new file mode 100644 index 00000000..68697cc1 --- /dev/null +++ b/gfx/interface/coat_of_arms/Mural_crown_kingdom_62.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57d7912e5a3af99fa82a141326eb720ceb42e698466d279051bdb160300fccd7 +size 1408 diff --git a/gfx/interface/coat_of_arms/Mural_crown_kingdom_86.dds b/gfx/interface/coat_of_arms/Mural_crown_kingdom_86.dds new file mode 100644 index 00000000..e748ed0e --- /dev/null +++ b/gfx/interface/coat_of_arms/Mural_crown_kingdom_86.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ccdcd11602fb17693c74a5c704392ed9c3e8f95ac5f3254978d1f515caa59e7 +size 3008 diff --git a/gfx/interface/icons/domicile_building/palace_main.dds b/gfx/interface/icons/domicile_building/palace_main.dds new file mode 100644 index 00000000..a50134a3 --- /dev/null +++ b/gfx/interface/icons/domicile_building/palace_main.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cda578d1fa3a6265fe602ebf27c202aaf633db83fdab0e92ea278b726751687b +size 21472 diff --git a/gfx/interface/icons/flat_icons/urbaner.dds b/gfx/interface/icons/flat_icons/urbaner.dds new file mode 100644 index 00000000..b35f020f --- /dev/null +++ b/gfx/interface/icons/flat_icons/urbaner.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:789d1c5f03886a071b1a66c7f322c43175fb699ef855137c35c1519b6bcc91a2 +size 5104 diff --git a/gfx/interface/icons/government_types/urbanrepublic_government.dds b/gfx/interface/icons/government_types/urbanrepublic_government.dds new file mode 100644 index 00000000..831a9299 --- /dev/null +++ b/gfx/interface/icons/government_types/urbanrepublic_government.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3ad0e5653760b4b2f704ef5624e6fc038c1f7e3c878cb821766f4ef30a6f885 +size 7120 diff --git a/gfx/interface/icons/holding_types_tab/monotown_holding.dds b/gfx/interface/icons/holding_types_tab/monotown_holding.dds new file mode 100644 index 00000000..07824cd4 --- /dev/null +++ b/gfx/interface/icons/holding_types_tab/monotown_holding.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5261fb6884b503a514f2e45fa2765f4fad6acab6ad4796ecb413fa82fad6323f +size 6032 diff --git a/gfx/interface/icons/icon_holding_monotown.dds b/gfx/interface/icons/icon_holding_monotown.dds new file mode 100644 index 00000000..1e4ad0c2 --- /dev/null +++ b/gfx/interface/icons/icon_holding_monotown.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88521d38895b462f73546c41e028da1d40daa7f62c855e919aea15089bf76e11 +size 5104 diff --git a/gfx/interface/icons/map_icons/map_icon_urban.dds b/gfx/interface/icons/map_icons/map_icon_urban.dds new file mode 100644 index 00000000..e96f01ca --- /dev/null +++ b/gfx/interface/icons/map_icons/map_icon_urban.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08433d74abc586ccf0cbce90a059425f399f37b6c7322797c45c91237d027cd2 +size 8768 diff --git a/gui/hud.gui b/gui/hud.gui index 5b219995..26cb9fa3 100644 --- a/gui/hud.gui +++ b/gui/hud.gui @@ -275,7 +275,7 @@ widget = { widget_hud_main_tab = { datacontext = "[GetPlayer.GetTopLiege]" - visible = "[And(Character.GetGovernment.HasRule( 'noble_families' ),Not(Or(GetPlayer.GetGovernment.IsType( 'celestial_government' ),Or(GetPlayer.GetGovernment.IsType( 'japan_administrative_government' ),GetPlayer.GetGovernment.IsType( 'japan_feudal_government' )))))]" + visible = "[And(Character.GetGovernment.HasRule( 'noble_families' ),Character.GetGovernment.IsType( 'urbanrepublic_government' ),Character.GetGovernment.IsType( 'peasantrepublic_government' ),Not(Or(GetPlayer.GetGovernment.IsType( 'celestial_government' ),Or(GetPlayer.GetGovernment.IsType( 'japan_administrative_government' ),GetPlayer.GetGovernment.IsType( 'japan_feudal_government' )))))]" blockoverride "maintab_button" { @@ -6476,7 +6476,7 @@ types HUD widget = { name = "influence" datacontext = "[InGameTopbar.GetInfluenceItem]" - visible = "[GetPlayer.GetGovernment.HasRule( 'administrative' )]" + visible = "[GetPlayer.GetGovernment.HasGovernmentFlag( 'government_has_influence')]" size = { 112 70 } widget = { diff --git a/gui/texticons.gui b/gui/texticons.gui index 687ede1f..fb7f09c7 100644 --- a/gui/texticons.gui +++ b/gui/texticons.gui @@ -4643,6 +4643,25 @@ texticon = { fontsize = 16 } } + +texticon = { + icon = government_type_urbanrepublic + iconsize = { + texture = "gfx/interface/icons/government_types/urbanrepublic_government.dds" + size = { 28 28 } + offset = { 0 6 } + fontsize = 16 + } +} +texticon = { + icon = domicile_palace_icon + iconsize = { + texture = "gfx/interface/icons/map_icons/map_icon_urban.dds" + size = { 28 28 } + offset = { 0 6 } + fontsize = 16 + } +} texticon = { icon = government_type_celestial iconsize = { diff --git a/gui/window_government_administration.gui b/gui/window_government_administration.gui new file mode 100644 index 00000000..0a48fdbf --- /dev/null +++ b/gui/window_government_administration.gui @@ -0,0 +1,4209 @@ +window = { + name = "government_administration_window" + widgetid = "government_administration_window" + parentanchor = top|right + layer = windows_layer + movable = no + allow_outside = yes + + visible = "[And( IsGameViewOpen('government_administration'), IsDefaultGUIMode )]" + + using = Window_Size_MainTab + + datacontext = "[GovernmentAdministrationWindow.GetMeritPoolCharacterWindow]" + datacontext = "[GovernmentAdministrationWindow.GetTitle]" + datacontext = "[Title.GetHolder]" + + oncreate = "[BindTabsContext]" + oncreate = "[PdxGuiTabs.ListenFor( 'administration_tabs' )]" + + state = { + name = _show + using = Animation_FadeIn_Quick + using = Sound_WindowShow_Standard + using = Window_Position_MainTab + using = Expand_Admin_Themes + on_start = "[SetMapMode( 'admin_vassal_types_map' )]" + + on_start = "[PdxGuiTabs.AddTabIf( 'family', Or(GetPlayer.GetGovernment.HasRule( 'administrative'),GetPlayer.GetGovernment.IsType( 'urbanrepublic_government' ),GetPlayer.GetGovernment.IsType( 'peasantrepublic_government' ) ) )]" # Referenced in Code, don't rename` + on_start = "[PdxGuiTabs.AddTab( 'families' )]" + on_start = "[PdxGuiTabs.AddTabIf( 'themes', Character.GetGovernment.HasRule( 'administrative' ) )]" + + on_start = "[GetVariableSystem.Clear( 'show_prominent_appointment' )]" + } + + state = { + name = _hide + using = Animation_FadeOut_Quick + using = Sound_WindowHide_Standard + using = Window_Position_MainTab_Hide + on_start = "[SetMapMode( 'realms' )]" + on_start = "[MeritPoolWindow.Close]" + on_start = "[PdxGuiTabs.RemoveTab( 'family' )]" + on_start = "[PdxGuiTabs.RemoveTab( 'families' )]" + on_start = "[PdxGuiTabs.RemoveTab( 'themes' )]" + } + + margin_widget = { + size = { 100% 100% } + margin_top = 30 + margin_bottom = 12 + margin_right = 13 + + widget = { + size = { 100% 100% } + + vbox = { + using = Window_Margins + + header_pattern = { + layoutpolicy_horizontal = expanding + + blockoverride "header_text" + { + text = "ADMINISTRATIVE_GOVERNMENT_HEADER" + } + + blockoverride "button_close" + { + onclick = "[GovernmentAdministrationWindow.Close]" + } + } + + hbox_tab_buttons = { + name = "administration_tabs" + + blockoverride "tab_name" + { + text = "[PdxGuiTabItem.LocalizeTab( 'administraction_tab' )]" + } + + blockoverride "on_click" + { + onclick = "[CloseGameView( 'admin_vassal_detail_view' )]" + onclick = "[GetVariableSystem.Clear( 'show_prominent_appointment' )]" + } + } + + vbox = { + name = "your_family" + widgetid = "your_family" + datacontext = "[GovernmentAdministrationWindow.GetPlayerHouse]" + visible = "[PdxGuiTabs.IsTabSet( 'family' )]" + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + margin_top = 10 + margin_bottom = 15 + + vbox_your_family_tab = { + visible = "[Not( GetVariableSystem.Exists( 'show_prominent_appointment' ) )]" + } + + widget_your_family_appointments = { + visible = "[GetVariableSystem.Exists( 'show_prominent_appointment' )]" + } + } + + vbox = { + name = "themes" + visible = "[PdxGuiTabs.IsTabSet( 'themes' )]" + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + margin_top = 10 + margin_bottom = 15 + + widget_header_state_faith = {} + + hbox_theme_sort_options = { + blockoverride "dropdown_properties" + { + datamodel = "[GovernmentAdministrationWindow.GetOrderOptions]" + onselectionchanged = "[GovernmentAdministrationWindow.SortThemes]" + selectedindex = "[GovernmentAdministrationWindow.GetSortSelectedIndex]" + } + + button_checkbox_label = { + onclick = "[GovernmentAdministrationWindow.ToggleGroupByHouse]" + blockoverride "checkbox" + { + checked = "[GovernmentAdministrationWindow.ShouldGroupByHouse]" + } + + blockoverride "text" + { + text = "ADMIN_WINDOW_THEME_GROUP_BY_HOUSE" + } + } + } + + scrollbox = { + name = "admin_panel_province_list" # tutorial uses this + widgetid = "admin_panel_province_list" # tutorial uses this + + size = { 560 0 } + layoutpolicy_vertical = expanding + + blockoverride "scrollbox_content" + { + vbox_themes_list = { + name = "themes_list" + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + } + } + } + } + + vbox = { + name = "powerful_families" + widgetid = "powerful_families" + visible = "[PdxGuiTabs.IsTabSet( 'families' )]" + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + margin_top = 5 + margin_bottom = 15 + + ### Top Liege + widget = { + size = { 560 140 } + + hbox = { + datacontext = "[GetIllustration( 'character_view_bg' )]" + spacing = 4 + margin = { 8 0 } + + background = { + texture = "[Illustration.GetTexture( Character.MakeScope )]" + alpha = 0.3 + fittype = centercrop + margin = { 10 0 } + + using = Mask_Rough_Edges + + modify_texture = { + texture = "gfx/interface/component_masks/mask_fade_vertical.dds" + blend_mode = alphamultiply + mirror = vertical + } + } + + vbox_featured_family_portrait_big = { + name = "government_panel_figurehead_family" #reactive_advice_welcome_to_japan_step_emperor_and_regent uses this + datacontext = "[GovernmentAdministrationWindow.GetFigureheadTitle]" + datacontext = "[GovernmentAdministrationWindow.GetFigureheadTitle.GetHolder]" + visible = "[Title.IsValid]" + + background = { + using = Background_Area_Dark + alpha = 0.5 + + margin = { 4 4 } + } + + blockoverride "interactions_on_click" + { + onclick = "[ToggleFilteredCharacterInteractionMenu(Character.Self, 'ceremonial_liege')]" + + tooltip = "ADMIN_GOVERNMENT_CEREMONIAL_LIEGE_INTERACTIONS_BUTTON_TOOLTIP" + tooltip_visible = "[Not(IsInteractionMenuOpenForCharacterWithFilter(Character.Self, 'ceremonial_liege'))]" + } + + blockoverride "interaction_number_text" + { + text = "[GetNumberOfValidInteractionsWithFilter(Character.Self, 'ceremonial_liege')]" + } + + blockoverride "subtitle" + { + text = "[GetPlayer.Custom('GetCeremonialLiegeOrLiegeTitle')]" + } + } + + vbox_featured_family_portrait_big = { + name = "government_panel_defacto_ruling_family" #reactive_advice_welcome_to_japan_step_emperor_and_regent uses this + datacontext = "[GovernmentAdministrationWindow.GetTitle]" + datacontext = "[Title.GetHolder]" + + blockoverride "interactions_on_click" + { + onclick = "[ToggleFilteredCharacterInteractionMenu(Character.Self, 'admin_liege')]" + + tooltip = "ADMIN_GOVERNMENT_LIEGE_INTERACTIONS_BUTTON_TOOLTIP" + tooltip_visible = "[Not(IsInteractionMenuOpenForCharacterWithFilter(Character.Self, 'admin_liege'))]" + } + + blockoverride "interaction_number_text" + { + text = "[GetNumberOfValidInteractionsWithFilter(Character.Self, 'admin_liege')]" + } + + blockoverride "subtitle" + { + text = "[GetPlayer.GetTopLiege.Custom('GetImperialFamilyType')]" + } + } + + expand = {} + } + } + + + scrollbox = { + size = { 560 0 } + layoutpolicy_vertical = expanding + + blockoverride "scrollbox_content" + { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + vbox = { + name = "family_groups_container" + + margin = { 0 4 } + + layoutpolicy_horizontal = expanding + + datamodel = "[GovernmentAdministrationWindow.GetFamilyGroups]" + + item = { + vbox_family_group_foldout = {} + } + } + } + } + } + } + } + } + + window_merit_pool_characters = { + datacontext = "[GovernmentAdministrationWindow.GetMeritPoolCharacterList]" + datacontext = "[GovernmentAdministrationWindow.GetSelectedAdminMeritPool]" + visible = "[MeritPoolWindow.IsVisible]" + } +} + +types GovernmentAdministrationThemes +{ + type button_unassigned_county_item = button_standard_list + { + layoutpolicy_horizontal = expanding + + button_ignore = none + + raw_tooltip = "#X Not yet implemented button.#!" + default_format = "#X" + + background = { + using = Background_Area_Border + using = Background_Frame_Gold + } + + hbox = { + position = { 0 -5 } + margin = { 8 0 } + + coa_title_tiny_crown = { } + + text_single = { + layoutpolicy_horizontal = expanding + + text = "[Title.GetNameNoTooltip]" + } + + expand = { } + + button_plus = { } + } + } + + type vbox_house_theme_list = vbox + { + layoutpolicy_vertical = expanding + layoutpolicy_horizontal = expanding + spacing = 5 + + oncreate = "[BindFoldOutContext]" + oncreate = "[PdxGuiFoldOut.Unfold]" + + hbox = { + layoutpolicy_horizontal = expanding + + coa_house_tiny = { + visible = "[And(DynastyHouse.IsValid, GovernmentAdministrationWindow.ShouldGroupByHouse)]" + } + + button_expandable_toggle_field = { + layoutpolicy_horizontal = expanding + datacontext = "[AdministrativeHouseItem.GetHouse]" + + blockoverride "onclick" + { + onclick = "[GetVariableSystem.Toggle( AdministrativeHouseItem.GetGroupTitle )]" + } + + blockoverride "button_expand" + { + frame = "[BoolTo1And2( Not( GetVariableSystem.Exists( AdministrativeHouseItem.GetGroupTitle ) ) )]" + } + + blockoverride "text" + { + text = "[AdministrativeHouseItem.GetGroupTitle]" + } + } + } + + fixedgridbox = { + name = "assigned_themes_list" + visible = "[Not( GetVariableSystem.Exists( AdministrativeHouseItem.GetGroupTitle ) )]" + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + addcolumn = 525 + addrow = 95 + + datamodel = "[AdministrativeHouseItem.GetControlledThemes]" + + item = { + widget_theme_row_item = { + datacontext = "[AdministrativeTitleItem.GetTitle]" + visible = "[AdministrativeTitleItem.ShouldShowTitle]" + } + } + } + } + + type widget_theme_item_small_no_buttons = widget + { + block "outer_size" + { + size = { 80 80 } + } + allow_outside = yes + + widget = { + parentanchor = center + block "inner_size" + { + size = { 80 80 } + } + + icon = { + name = "crown" + parentanchor = top|hcenter + widgetanchor = bottom|hcenter + position = { 0 2 } + + size = { 64% 40% } + + texture = "gfx/interface/coat_of_arms/crown_strip_115.dds" + frame = "[Title.GetTierFrame]" + framesize = { 128 80 } + + } + + icon = { + size = { 100% 100% } + texture = "gfx/interface/window_theme_administration/admin_theme_coa_title.dds" + } + + icon = { + size = { 100% 100% } + parentanchor = top|hcenter + texture = "gfx/interface/window_theme_administration/admin_theme_coa_title.dds" + } + + coat_of_arms_icon = { + parentanchor = top|hcenter + size = { 100% 100% } + coat_of_arms = "[Title.GetTitleCoA.GetTexture('(int32)256','(int32)256')]" + coat_of_arms_slot = "[Title.GetTitleCoA.GetSlot('(int32)256','(int32)256')]" + coat_of_arms_mask = "gfx/interface/window_theme_administration/admin_theme_mask.dds" + + modify_texture = { + texture = "gfx/interface/coat_of_arms/coa_overlay.dds" + blend_mode = overlay + spritetype = corneredTiled + } + + modify_texture = { + texture = "gfx/interface/colors/black.dds" + blend_mode = normal + alpha = 1 + + visible = "[Not(Title.GetHolder.IsValid)]" + } + } + + icon = { + parentanchor = top + size = { 100% 10 } + texture = "gfx/interface/window_theme_administration/admin_theme_coa_header.dds" + } + } + } + + # Think of this as the "Province Coat of Arms" + type widget_theme_item_small = widget + { + block "outer_size" + { + size = { 80 80 } + } + allow_outside = yes + + state = { + name = _mouse_hierarchy_enter + on_start = "[PdxGuiWidget.FindChild('theme_glow').TriggerAnimation('appear')]" + } + + state = { + name = _mouse_hierarchy_leave + on_start = "[PdxGuiWidget.FindChild('theme_glow').TriggerAnimation('disappear')]" + } + + tooltip = "ADMIN_WINDOW_THEME_ADMINISTRATION_THEME_TT" + using = tooltip_ne + + button = { + name = "open_detail_button" + visible = "[And(Not( GetVariableSystem.Exists( 'admin_vassal_details_refresh' ) ), IsAdministrativeRuler(Title.GetHolder))]" + size = { 100% 100% } + + block "theme_item_onclick" + { + onclick = "[GetVariableSystem.Clear( 'AdminVassalDetailAppointment' )]" + onclick = "[ToggleAdminVassalDetailView( Title.Self )]" + down = "[IsAdminVassalDetailViewShown( Title.Self )]" + } + } + + button = { + name = "refresh_detail_button" + visible = "[And(GetVariableSystem.Exists( 'admin_vassal_details_refresh' ),IsAdministrativeRuler(Title.GetHolder))]" + size = { 100% 100% } + + onclick = "[PdxGuiTriggerAllAnimations('admin_vassal_details_refresh')]" + down = "[IsAdminVassalDetailViewShown( Title.Self )]" + + state = { + name = _mouse_click + delay = 0.2 + on_finish = "[ToggleAdminVassalDetailView( Title.Self )]" + } + } + + button = { + visible = "[Or( Not(Title.GetHolder.IsValid), And( And( Not( IsAdministrativeRuler( Title.GetHolder )), Not(Title.GetHolder.IsPlayerInteractionValid('demand_admin_interaction'))), Title.GetHolder.GetLiege.IsPlayer ) ) ]" + size = { 100% 100% } + onclick = "[DefaultOnCoatOfArmsClick(Title.GetID)]" + } + + ### Makes a yellow border around your coa, should we have this? ### + + #background = { + #visible = "[Title.GetHolder.IsPlayer]" + #using = Background_Area_Border + #using = Background_Frame_Gold + #} + + widget = { + size = { 162 162} + parentanchor = center + + block "inner_size" + { + size = { 80 80 } + } + + block "crown" { + icon = { + name = "crown" + parentanchor = top|hcenter + widgetanchor = bottom|hcenter + position = { 0 -2 } + + allow_outside = yes + + size = { 80% 56% } + + texture = "gfx/interface/coat_of_arms/crown_strip_115.dds" + frame = "[Title.GetTierFrame]" + framesize = { 128 80 } + } + } + + icon = { + size = { 100% 100% } + parentanchor = top|hcenter + texture = "gfx/interface/window_theme_administration/admin_theme_coa_title.dds" + } + + coat_of_arms_icon = { #Dynasty + parentanchor = top|hcenter + size = { 100% 100% } + coat_of_arms = "[Title.GetTitleCoA.GetTexture('(int32)256','(int32)256')]" + coat_of_arms_slot = "[Title.GetTitleCoA.GetSlot('(int32)256','(int32)256')]" + coat_of_arms_mask = "gfx/interface/window_theme_administration/admin_theme_mask.dds" + + modify_texture = { + texture = "gfx/interface/coat_of_arms/coa_overlay.dds" + blend_mode = overlay + spritetype = corneredTiled + } + + modify_texture = { + texture = "gfx/interface/component_masks/mask_glow.dds" + blend_mode = alphaMultiply + alpha = 0.6 + } + + modify_texture = { + texture = "gfx/interface/colors/black.dds" + blend_mode = normal + alpha = 0.5 + + visible = "[Not(Title.GetHolder.IsValid)]" + } + } + + icon = { + name = "theme_glow" + parentanchor = top|hcenter + size = { 100% 100% } + texture = "gfx/interface/window_theme_administration/admin_theme_glow.dds" + alpha = 0 + + state = { + name = appear + using = Animation_Curve_Default + duration = 0.2 + position = { 0 0 } + alpha = 0.7 + scale = 1.01 + } + + state = { + name = disappear + using = Animation_Curve_Default + duration = 0.2 + position = { 0 0 } + alpha = 0 + scale = 0.97 + } + } + + icon = { + parentanchor = top|hcenter + size = { 100% 10 } + position = { 0 -4} + texture = "gfx/interface/window_theme_administration/admin_theme_coa_header.dds" + } + } + + } + + type button_theme_row_admin = button_standard { + datacontext = "[AdministrativeTitleItem.GetPrimaryContractAndObligationItem]" + datacontext = "[PrimaryContractAndObligation.GetObligationLevel]" + size = { 476 90 } + + block "on_click" {} + + vbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + allow_outside = yes + + margin_left = 70 + margin_bottom = 8 + + # Non-Admin item + widget = { + visible = "[Not( IsAdministrativeRuler( Title.GetHolder ) )]" + + size = { 0 38 } + layoutpolicy_horizontal = expanding + allow_outside = yes + + highlight_icon = { + size = { 384 36 } + position = { -68 2 } + mirror = horizontal + + texture = "gfx/interface/window_military/military_banner_blue.dds" + } + + hbox = { + parentanchor = left|vcenter + layoutpolicy_horizontal = expanding + margin = { 15 0 } + spacing = 10 + + # Name of non-theme + text_single = { + text = "ADMIN_WINDOW_THEME_NAME" + align = nobaseline + max_width = 350 + using = Font_Size_Medium + } + + # Non-Admin Tag + text_single = { + margin_right = 10 + + text = "ADMIN_WINDOW_VASSAL_GOVERNMENT_TYPE" + align = nobaseline + } + + expand = {} + } + } + + # Admin item + widget = { + visible = "[IsAdministrativeRuler( Title.GetHolder )]" + datacontext = "[AdministrativeTitleItem.GetPrimaryContractAndObligationItem]" + datacontext = "[PrimaryContractAndObligation.GetObligationLevel]" + + size = { 0 38 } + layoutpolicy_horizontal = expanding + allow_outside = yes + + icon = { + size = { 384 36 } + position = { -68 2 } + using = Background_Obligation_Banner_Right + } + + hbox = { + parentanchor = left|vcenter + layoutpolicy_horizontal = expanding + margin = { 10 0 } + spacing = 5 + + # Admin Icon + text_single = { + text = "ADMIN_WINDOW_THEME_ADMINISTRATION_TYPE_TEXT_ICON" + align = nobaseline + } + + # Name of theme + text_single = { + text = "ADMIN_WINDOW_THEME_NAME" + align = nobaseline + max_width = 350 + using = Font_Size_Medium + } + + expand = {} + } + } + + hbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + hbox = { + margin_left = 10 + spacing = 10 + + text_single = { + datacontext = "[Title.GetHolder]" + + text = "ADMIN_WINDOW_THEME_GOVERNOR_EFFICIENCY" + align = nobaseline + default_format = "#low" + max_width = 90 + min_width = 90 + + tooltip = "ADMIN_WINDOW_THEME_GOVERNOR_EFFICIENCY_TT" + } + + text_single = { + text = "ADMIN_WINDOW_THEME_TAXES" + align = nobaseline + max_width = 90 + min_width = 90 + } + + text_single = { + text = "ADMIN_WINDOW_THEME_LEVIES" + align = nobaseline + max_width = 90 + min_width = 90 + } + } + + hbox = { + datacontext = "[Title.GetHolder]" + visible = "[And( IsAdministrativeRuler( Title.GetHolder ), DataModelHasItems( AdministrativeTitleItem.GetRegiments ) )]" + + spacing = 5 + + icon_soldiers = { + size = { 25 25 } + } + + text_single = { + text = "ADMIN_WINDOW_THEME_TITLE_TROOPS" + align = nobaseline + } + } + + expand = {} + } + } + + widget_theme_item_small = { + parentanchor = vcenter + position = { 8 6 } + + tooltip_when_disabled = "ADMIN_WINDOW_NON_ADMIN_THEME_FAIL_DEMAND_INTERACTION" + using = tooltip_ws + + blockoverride "crown" { + icon = { + name = "crown" + parentanchor = top|hcenter + widgetanchor = bottom|hcenter + position = { 0 -2 } + + allow_outside = yes + + size = { 60% 42% } + + texture = "gfx/interface/coat_of_arms/crown_strip_115.dds" + frame = "[Title.GetTierFrame]" + framesize = { 128 80 } + } + } + + blockoverride "outer_size" + { + position = { -2 20 } + size = { 68 68 } + } + + blockoverride "inner_size" + { + size = { 68 68 } + } + } + } + + type widget_theme_row_item = widget + { + size = { 525 90 } + + button_theme_row_admin = { + visible = "[IsAdministrativeRuler( Title.GetHolder )]" + + blockoverride "on_click" + { + onclick = "[CloseGameView('character_interaction_confirmation')]" + onclick = "[GetVariableSystem.Clear( 'AdminVassalDetailAppointment' )]" + onclick = "[ClearAdminVassalDetailCandidate]" + onclick = "[ToggleAdminVassalDetailView( Title.Self )]" + down = "[IsAdminVassalDetailViewShown( Title.Self )]" + + tooltip = "ADMIN_WINDOW_THEME_ADMINISTRATION_THEME_TT" + using = tooltip_ne + } + } + + button_theme_row_admin = { + datacontext = "[Title.GetHolder]" + visible = "[Not( IsAdministrativeRuler( Character ) )]" + + blockoverride "on_click" + { + enabled = "[And( And( And( Not( IsAdministrativeRuler( Character ) ), Character.IsValid ), Character.GetLiege.IsPlayer ), Character.IsPlayerInteractionValid('demand_admin_interaction') )]" + onclick = "[CloseGameView('admin_vassal_detail_view')]" + onclick = "[Character.OpenPlayerInteraction('demand_admin_interaction')]" + + tooltip = "[Character.GetPlayerInteractionTooltip('demand_admin_interaction')]" + } + } + + widget = { + datacontext = "[Title.GetHolder]" + parentanchor = vcenter|right + position = { 4 0 } + size = { 48 90 } + + background = { + using = Background_Area_Dark + margin = { 3 2 } + } + + vbox = { + layoutpolicy_vertical = expanding + + coa_house_tiny = { + datacontext = "[Character.GetHouse]" + } + + widget = { + visible = "[Character.IsPlayerInteractionShown('give_vassal_directive_interaction')]" + size = { 40 40 } + + text_single = { + parentanchor = hcenter + position = { -1 -2 } + text = "[Character.Custom('vassal_directive_icon')]" + align = nobaseline + using = Font_Size_Medium + + tooltip = "VASSAL_DIRECTIVE_ICON_TOOLTIP" + using = tooltip_se + } + + button_round = { + parentanchor = bottom|right + position = { 1 0 } + size = { 22 22 } + + enabled = "[Character.IsPlayerInteractionValid('give_vassal_directive_interaction')]" + onclick = "[Character.OpenPlayerInteraction('give_vassal_directive_interaction')]" + + tooltip = "[Character.GetPlayerInteractionTooltip('give_vassal_directive_interaction')]" + using = tooltip_se + + button_give_directive = { + alwaystransparent = yes + parentanchor = center + size = { 18 18 } + } + } + } + + expand = {} + } + } + } + + type hbox_theme_contract_obligation_result = hbox + { + layoutpolicy_horizontal = expanding + spacing = 8 + + text_single = { + text = ADMIN_WINDOW_THEME_ADMINISTRATION_LEVIES + } + + text_single = { + text = ADMIN_WINDOW_THEME_ADMINISTRATION_TAXES + } + } + + type button_modify_theme = button_round { + visible = "[Character.IsPlayerInteractionShown('admin_liege_modify_vassal_contract_interaction')]" + enabled = "[Character.IsPlayerInteractionValid('admin_liege_modify_vassal_contract_interaction')]" + + onclick = "[Character.OpenPlayerInteraction('admin_liege_modify_vassal_contract_interaction')]" + onclick = "[Character.PanCameraTo]" + + tooltip = "[Character.GetPlayerInteractionTooltip('admin_liege_modify_vassal_contract_interaction')]" + + block "feudal_contract_button_round" {} + + button_add_laws = { + alwaystransparent = yes + parentanchor = center + } + } + + type button_replace_governor = button_round { + using = Placeholder_Inactive_Button + + tooltip = "REPLACE_GOVERNOR_TOOLTIP" + + button_change = { + parentanchor = center + } + } + + type button_revoke_theme = button_round { + enabled = "[Character.IsPlayerInteractionValid('revoke_title_interaction')]" + + onclick = "[Character.OpenPlayerInteraction('revoke_title_interaction')]" + onclick = "[Character.PanCameraTo]" + + tooltip = "[Character.GetPlayerInteractionTooltip('revoke_title_interaction')]" + + button_cancel = { + alwaystransparent = yes + parentanchor = center + } + } + + type vbox_themes_list = vbox + { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + using = Animation_Tab_Switch + + vbox = { + name = "house_list" + datamodel = "[GovernmentAdministrationWindow.GetHousesWithThemes]" + + layoutpolicy_horizontal = expanding + + item = { + vbox_house_theme_list = { + datacontext = "[AdministrativeHouseItem.GetHouse]" + layoutpolicy_horizontal = expanding + } + } + } + + expand = { } + } +} + +types GovernmentAdministration +{ + type vbox_merit_examinations = vbox { + + + } + + type widget_title_troop_icon = widget { + visible = "[Not( HiredTroopRegiment.IsLevies )]" + size = { 26 26 } + parentanchor = center + + widget = { + datacontext = "[HiredTroopRegiment.GetRegiment]" + size = { 100% 100% } + + tooltipwidget = regiment_container_tooltip + using = tooltip_se + } + + icon = { + size = { 26 26 } + texture = "[HiredTroopRegiment.GetMenAtArmsType.GetIcon]" + } + } + + type widget_header_state_faith = widget { + datacontext = "[Title.GetStateFaith]" + visible = "[GetPlayer.GetGovernment.HasRule( 'state_faith' )]" + size = { 562 50 } + + hbox = { + layoutpolicy_horizontal = expanding + margin = { 16 0 } + margin_bottom = 10 + spacing = 5 + + text_single = { + text = "[state_faith|E]" + align = nobaseline + max_width = 120 + } + + button_standard = { + layoutpolicy_horizontal = expanding + minimumsize = { 200 33 } + + onclick = "[ToggleGameViewData( 'faith', Faith.GetID )]" + + hbox = { + layoutpolicy_horizontal = expanding + + icon = { + size = { 30 30 } + texture = "[Title.GetStateFaith.GetIcon]" + } + + text_single = { + text = "[Faith.GetNameNoTooltip]" + align = nobaseline + } + + expand = {} + } + } + + hbox = { + button_round = { + datacontext = "[GetDecisionWithKey('change_state_faith')]" + visible = "[Decision.IsShownForPlayer]" + size = { 30 30 } + + onclick = "[OpenGameViewData( 'decision_detail', Decision.Self )]" + tooltip = "[Decision.GetShortDescForPlayer]" + using = tooltip_ne + + button_change = { + parentanchor = center + alwaystransparent = yes + size = { 20 20 } + } + } + + button_round = { + datacontext = "[GetDecisionWithKey('adopt_state_faith')]" + visible = "[Decision.IsShownForPlayer]" + size = { 30 30 } + + onclick = "[OpenGameViewData( 'decision_detail', Decision.Self )]" + tooltip = "[Decision.GetShortDescForPlayer]" + using = tooltip_ne + + button_plus = { + size = { 20 20 } + parentanchor = center + alwaystransparent = yes + } + } + } + + divider_light = { + layoutpolicy_vertical = expanding + } + + text_single = { + text = "[GovernmentAdministrationWindow.GetCountiesOfStateFaith]" + align = nobaseline + } + } + } + + type widget_prominent_theme_banner = widget { + allow_outside = yes + layoutpolicy_horizontal = expanding + size = { 0 34 } + + # Banner Status available + block "background_banner" + { + highlight_icon = { + position = { -2 2 } + size = { 100% 100% } + mirror = horizontal + + texture = "gfx/interface/window_military/military_banner_blue.dds" + } + } + + # Name of theme + text_single = { + parentanchor = left|vcenter + + text = "ADMIN_WINDOW_THEME_NAME" + align = nobaseline + max_width = 330 + using = Font_Size_Medium + + block "text_margin" {} + } + + hbox = { + block "taxes_and_levies_visiblity" {} + layoutpolicy_horizontal = expanding + parentanchor = right|vcenter + margin_right = 8 + spacing = 10 + + expand = {} + + text_single = { + min_width = 52 + + text = "ADMIN_WINDOW_FIND_APPOINTMENT_TAXES" + align = nobaseline + } + + text_single = { + min_width = 52 + + text = "ADMIN_WINDOW_FIND_APPOINTMENT_LEVIES" + align = nobaseline + } + } + } + + type widget_prominent_theme_item = widget { + size = { 525 82 } + + button_standard = { + size = { 525 82 } + + block "on_click" {} + + tooltip = "ADMIN_WINDOW_THEME_ADMINISTRATION_THEME_TT" + using = tooltip_ne + + vbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + allow_outside = yes + + hbox = { + layoutpolicy_horizontal = expanding + margin_left = 4 + + widget_prominent_theme_banner = { + visible = "[Not( GovernmentAdministrationWindow.AllowMeritPools )]" + + blockoverride "text_margin" { + margin_left = 75 + } + } + + widget_prominent_theme_banner = { + datacontext = "[GovernmentAdministrationWindow.GetSelectedAdminMeritPool]" + visible = "[GovernmentAdministrationWindow.AllowMeritPools]" + + blockoverride "text_margin" { + margin_left = 75 + } + + blockoverride "background_banner" + { + # Banner Status Military + highlight_icon = { + visible = "[AdminMeritPool.IsMilitary]" + position = { -4 2 } + size = { 100% 100% } + mirror = horizontal + + texture = "gfx/interface/window_military/military_banner_red.dds" + } + + # Banner Status Civilian + highlight_icon = { + visible = "[Not( AdminMeritPool.IsMilitary )]" + position = { -4 2 } + size = { 100% 100% } + mirror = horizontal + + texture = "gfx/interface/window_military/military_banner_blue.dds" + } + } + } + } + + hbox = { + layoutpolicy_horizontal = expanding + margin_left = 75 + margin_top = 8 + + text_single = { + max_width = 450 + layoutpolicy_horizontal = expanding + + text = "[ProminentThemeItem.GetSuccessionLineDesc]" + align = nobaseline + } + expand = {} + } + + hbox = { + visible = "[GovernmentAdministrationWindow.AllowMeritPools]" + layoutpolicy_horizontal = expanding + margin_left = 75 + spacing = 4 + + tooltip = "ADMIN_WINDOW_MERIT_POOLS_TITLE_RATING_TT" + using = tooltip_ne + + text_single = { + text = "ADMIN_WINDOW_MERIT_POOLS_TITLE_RATING" + align = nobaseline + } + + text_single = { + text = "[ProminentThemeItem.GetTitleProminence|V2]" + align = nobaseline + } + + expand = {} + } + expand = {} + } + + # Coat of Arms + widget_theme_item_small = { + visible = "[Title.IsAdministrativeProvince]" + parentanchor = left|vcenter + position = { 6 3 } + + blockoverride "crown" {} + + blockoverride "outer_size" + { + size = { 64 64 } + } + blockoverride "inner_size" + { + size = { 64 64 } + } + } + + coa_title_small_crown = { + parentanchor = left|vcenter + position = { 12 0 } + + visible = "[Not(Title.IsAdministrativeProvince)]" + } + + + } + } + + type vbox_prominent_theme_group_foldout = vbox { + spacing = 4 + + layoutpolicy_horizontal = expanding + + oncreate = "[BindFoldOutContext]" + oncreate = "[PdxGuiFoldOut.Unfold]" + + button_expandable_toggle_field = { + blockoverride "text" + { + text = "[ProminentThemeGroupItem.GetGroupTitle]" + } + } + + vbox = { + visible = "[PdxGuiFoldOut.IsUnfolded]" + + layoutpolicy_horizontal = expanding + + fixedgridbox = { + name = "themes_in_group" + datamodel = "[ProminentThemeGroupItem.GetItems]" + + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + addcolumn = 507 + addrow = 87 + + item = { + container = { + datacontext = "[ProminentThemeItem.GetTitle]" + datacontext = "[ProminentThemeItem.GetCandidate]" + + # Top Liege Title + widget_prominent_theme_item = { + visible = "[ObjectsEqual( Title.GetHolder, Character.GetTopLiege )]" + + blockoverride "on_click"{ + onclick = "[DefaultOnCoatOfArmsClick(Title.GetID)]" + } + + blockoverride "taxes_and_levies_visiblity" + { + visible = no + } + } + + # All other titles + widget_prominent_theme_item = { + visible = "[Not( ObjectsEqual( Title.GetHolder, Character.GetTopLiege ) )]" + + blockoverride "on_click"{ + onclick = "[CloseGameView( 'character_interaction_confirmation' )]" + onclick = "[GetVariableSystem.Set( 'AdminVassalDetailAppointment', 'true' )]" + onclick = "[SetAdminVassalDetailCandidate( Character.Self )]" + onclick = "[ToggleAdminVassalDetailView( Title.Self )]" + down = "[IsAdminVassalDetailViewShown( Title.Self )]" + } + } + } + } + } + } + } + + type button_promote_candidate_scheme = button_standard { + visible = "[Character.IsValid]" + minimumsize = { 100 33 } + + enabled = "[Character.IsPlayerInteractionValid( 'start_promote_interaction' )]" + onclick = "[Character.OpenPlayerInteraction( 'start_promote_interaction' )]" + tooltip = "[Character.GetPlayerInteractionTooltip( 'start_promote_interaction' )]" + tooltip_when_disabled = "[Character.GetPlayerInteractionValidBlockers( 'start_promote_interaction' )]" + + hbox = { + layoutpolicy_horizontal = expanding + spacing = 5 + + expand = {} + + button_promote_candidate = { + alwaystransparent = yes + } + + text_single = { + max_width = 320 + + text = "ADMIN_VASSAL_DETAILS_PROMOTE_BUTTON" + default_format = "#clickable" + align = nobaseline|center + } + + expand = {} + } + } + + type button_influence_career = button_standard { + visible = "[Character.IsValid]" + minimumsize = { 100 33 } + + enabled = "[Character.IsPlayerInteractionValid( 'influence_meritorious_career_interaction' )]" + onclick = "[Character.OpenPlayerInteraction( 'influence_meritorious_career_interaction' )]" + tooltip = "[Character.GetPlayerInteractionTooltip( 'influence_meritorious_career_interaction' )]" + tooltip_when_disabled = "[Character.GetPlayerInteractionValidBlockers( 'influence_meritorious_career_interaction' )]" + + hbox = { + layoutpolicy_horizontal = expanding + spacing = 5 + + expand = {} + + button_promote_candidate = { + alwaystransparent = yes + } + + text_single = { + max_width = 320 + + text = "influence_meritorious_career_interaction" + default_format = "#clickable" + align = nobaseline|center + } + + expand = {} + } + } + + type widget_your_family_appointments = vbox { + datacontext = "[GovernmentAdministrationWindow.GetSelectedProminentHouseMember]" + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + allow_outside = yes + + hbox = { + datacontext = "[Title.GetProvince.GetHolding]" + layoutpolicy_horizontal = expanding + margin = { 10 0 } + margin_bottom = 10 + spacing = 10 + + background = { + using = Background_Area_Holding + margin_bottom = 40 + + mirror = horizontal + } + + portrait_head = { + visible = "[Not( Character.HasMerit )]" + allow_outside = yes + } + + portrait_shoulders = { + visible = "[Character.HasMerit]" + allow_outside = yes + } + + # Content, except widgets + vbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + # Top Section (not dropdowns) + # Character name + hbox = { + layoutpolicy_horizontal = expanding + + text_label_left = { + layoutpolicy_horizontal = expanding + text = "[Character.GetUINameNotMeNoTooltip]" + align = nobaseline + max_width = 380 + using = Font_Size_Medium + } + + expand = {} + + ### MERIT - Your Family - Selected Prominent House Member + hbox_merit_with_label = { + datacontext = "[GovernmentAdministrationWindow.GetMeritItem]" + } + } + + # Relation to you + hbox = { + layoutpolicy_horizontal = expanding + + text_single = { + max_width = 380 + + text = "[Character.GetRelationToString( GetPlayer )]" + align = nobaseline + + tooltip = "EXTENDED_RELATIONS_TOOLTIP" + using = tooltip_se + } + expand = {} + } + + text_single = { + visible = "[Character.HasMerit]" + margin_top = 10 + margin_bottom = 4 + layoutpolicy_horizontal = expanding + + text = "ADMIN_WINDOW_MERIT_POOLS" + align = nobaseline + } + + expand = {} + } + + vbox = { + layoutpolicy_vertical = expanding + margin_top = 5 + margin_right = 5 + + button_round = { + allow_outside = yes + + clicksound = "event:/SFX/UI/Generic/sfx_ui_generic_close" + onclick = "[CloseGameView('admin_vassal_detail_view')]" + onclick = "[GetVariableSystem.Clear( 'show_prominent_appointment' )]" + + shortcut = "go_back" + shortcut = "go_back_2" + shortcut = "go_back_3" + + tooltip = "ADMIN_WINDOW_FIND_APPOINTMENT_BACK_BUTTON_TT" + + button_back = { + parentanchor = center + position = { -2 0 } + alwaystransparent = yes + size = { 28 28 } + } + } + + expand = {} + } + } + + hbox_theme_sort_options = { + datacontext = "[GovernmentAdministrationWindow.GetTitle]" + + blockoverride "dropdown_properties" + { + datamodel = "[GovernmentAdministrationWindow.GetAppointmentOrderOptions]" + onselectionchanged = "[GovernmentAdministrationWindow.SortAppointmentThemes]" + selectedindex = "[GovernmentAdministrationWindow.GetAppointmentSortSelectedIndex]" + } + + blockoverride "sort_order_onclick" + { + onclick = "[GovernmentAdministrationWindow.ReverseAppointmentSortOrder]" + } + + blockoverride "sort_order_frame" + { + frame = "[BoolTo1And2(GovernmentAdministrationWindow.GetAppointmentSortOrder)]" + } + } + + # Prominent Theme Items + scrollbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + blockoverride "scrollbox_content" + { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + vbox = { + datamodel = "[GovernmentAdministrationWindow.GetProminentThemeGroups]" + layoutpolicy_horizontal = expanding + spacing = 2 + + item = { + vbox_prominent_theme_group_foldout = {} + } + } + } + blockoverride "scrollbox_expand" { + expand = {} + } + } + + + + expand = {} + } + + type vbox_your_family_tab = vbox { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + ## Top info + hbox = { + margin = { 15 0 } + margin_top = 10 + margin_bottom = 24 + layoutpolicy_horizontal = expanding + + using = Background_Area_Family_Decoration + + ## Left Side + vbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + spacing = 6 + margin_top = 6 + + hbox = { + layoutpolicy_horizontal = expanding + spacing = 12 + margin_right = 16 + + + # House Name + text_single = { + text = "HOUSE_VIEW_NAME_WITH_HOUSE" + using = Font_Size_Medium + default_format = "#high" + align = nobaseline + autoresize = no + layoutpolicy_horizontal = expanding + } + + text_single = { + text = "[DynastyHouse.GetFamilyStatusConcept]" + align = nobaseline|right + using = Font_Size_Small + autoresize = no + layoutpolicy_horizontal = expanding + } + } + + # House Land Share % + hbox = { + visible = "[And(Or(DynastyHouse.IsDominant,DynastyHouse.IsPowerful), Not( Character.HasMerit ))]" + layoutpolicy_horizontal = expanding + margin_left = -5 #Ugly solution to offset icon + + text_single = { + layoutpolicy_horizontal = expanding + + text = "ADMIN_WINDOW_HOUSE_LAND_SHARE" + tooltip = "ADMIN_WINDOW_HOUSE_LAND_SHARE_TOOLTIP" + align = nobaseline + max_width = 320 + } + + expand = {} + } + + + expand = {} + + # House Attribute + hbox = { + visible = "[DynastyHouse.UsesHouseAspirations]" + datacontext = "[DynastyHouse.GetHouseAspiration]" + layoutpolicy_horizontal = expanding + + spacing = 5 + + button_standard = { + size = { 230 33 } + onclick = "[ToggleGameViewData( 'house_aspiration_window', DynastyHouse.Self )]" + + tooltip = "HOUSE_VIEW_CHANGE_HOUSE_POWER" + + hbox = { + margin = { 5 0 } + spacing = 5 + + expand = {} + + button_icon = { + visible = "[Or(GetPlayer.GetGovernment.IsType( 'administrative_government' ),GetPlayer.GetGovernment.IsType( 'urbanrepublic_government' ),GetPlayer.GetGovernment.IsType( 'peasantrepublic_government') )]" + size = { 28 28 } + texture = "[HouseAspiration.GetSmallIcon]" + } + + icon = { + visible = "[Not(GetPlayer.GetGovernment.IsType( 'administrative_government' ),GetPlayer.GetGovernment.IsType( 'urbanrepublic_government' ),GetPlayer.GetGovernment.IsType( 'peasantrepublic_government'))]" + size = { 28 28 } + texture = "[HouseAspiration.GetSmallIcon]" + } + + text_single = { + text = "[HouseAspiration.GetName]" + align = nobaseline|center + default_format = "#clickable" + max_width = 190 + } + + expand = {} + } + } + + warning_icon = { + size = { 32 32 } + visible = "[And(GreaterThan_int32( GetDataModelSize( HouseAspiration.GetLevels ), '(int32)1' ), DynastyHouse.IsHouseAttributeInactive)]" + tooltip = "FAMILY_ATTRIBUTE_WINDOW_HOUSE_ASPIRATION_ALERT" + using = tooltip_se + } + + warning_icon = { + size = { 32 32 } + visible = "[And(Not(GreaterThan_int32( GetDataModelSize( HouseAspiration.GetLevels ), '(int32)1' )), DynastyHouse.IsHouseAttributeInactive)]" + tooltip = "FAMILY_ATTRIBUTE_WINDOW_ALERT" + using = tooltip_se + } + + expand = {} + } + + + } + + expand = {} + + ## Right Side + vbox = { + background = { + using = Background_Area + margin = { 6 12} + margin_top = 2 + } + + allow_outside = yes + + dynamicgridbox = { + + allow_outside = yes + + flipdirection = yes + maxverticalslots = 1 + + datamodel = "[GovernmentAdministrationWindow.AccessRankedNeighborFamilies]" + + item = { + widget_ranked_family_neighbor = { + datacontext = "[RankedHouseItem.GetHouse]" + } + + } + } + } + } + + # Investment cap - Only for admin realms who doesn't use merit + vbox = { + name = "government_panel_investment_cap_area" + visible = "[And( GetPlayer.GetTopLiege.GetGovernment.HasRule( 'administrative' ), Not( GetPlayer.GetTopLiege.GetGovernment.HasRule( 'merit' ) ) )]" + layoutpolicy_horizontal = expanding + spacing = 10 + + hbox = { + layoutpolicy_horizontal = expanding + margin = { 15 2 } + margin_bottom = 5 + + background = { + using = Background_Area + } + + text_single = { + layoutpolicy_horizontal = expanding + max_width = 500 + + datacontext = "[GetPlayer]" + + text = "ADMINISTRATIVE_GOVERNMENT_INVESTMENT_CAP" + align = nobaseline + + datacontext = "[GuiScope.SetRoot( GetPlayer.MakeScope ).GetScriptValueBreakdown( 'appointment_investment_cap' )]" + tooltip_visible = "[ValueBreakdown.HasTooltip]" + + tooltipwidget = { + widget_value_breakdown_tooltip = { + blockoverride "header" { + text_label_left = { + layoutpolicy_horizontal = expanding + text = "ADMINISTRATIVE_GOVERNMENT_INVESTMENT_CAP_HEADER" + default_format = "#T" + } + } + } + } + using = tooltip_below + } + expand = {} + } + } + + #exams + vbox = { + name = "government_panel_exam_area" #lesson_china_exam uses this + widgetid = "government_panel_exam_area" #lesson_china_exam uses this + + visible = "[GetPlayer.GetTopLiege.GetGovernment.HasRule( 'merit' )]" + layoutpolicy_horizontal = expanding + spacing = 10 + + # non-joinable-now examinations + vbox = { + layoutpolicy_horizontal = expanding + margin = { 15 2 } + margin_bottom = 5 + + background = { + using = Background_Area + } + + text_label_left = { + layoutpolicy_horizontal = expanding + text = "[examinations|E]" + using = Font_Size_Medium + } + + ### Local Examination + hbox = { + datacontext = "[GetActivityType( 'activity_local_examination' )]" + datacontext = "[ActivityType.FindJoinableOpenActivityOfType]" + visible = "[Not( Activity.IsValid )]" + + layoutpolicy_horizontal = expanding + spacing = 5 + + tooltip = activity_local_examination_not_available_tt + + text_single = { + layoutpolicy_horizontal = expanding + min_width = 180 + max_width = 300 + + text = "activity_local_examination_with_icon" + align = nobaseline + } + + expand = {} + + text_single = { + text = "[ActivityType.GetLastSeenDateOfOpenActivityType]" + align = nobaseline + default_format = "#weak" + max_width = 120 + } + + button_round = { + onclick = "[ActivityType.ToggleShouldNotifyCanJoinOpenActivity]" + size = { 36 36 } + + button_icon = { + visible = "[ActivityType.ShouldNotifyCanJoinOpenActivity]" + parentanchor = center + alwaystransparent = yes + texture = "gfx/interface/icons/flat_icons/notifications_on.dds" + size = { 24 24 } + + tooltip = "LOCAL_EXAMINATIONS_NOTIFY_TOGGLE_TT" + } + + button_icon = { + visible = "[Not(ActivityType.ShouldNotifyCanJoinOpenActivity)]" + parentanchor = center + alwaystransparent = yes + texture = "gfx/interface/icons/flat_icons/notifications_off.dds" + size = { 24 24 } + + tooltip = "LOCAL_EXAMINATIONS_NOTIFY_TOGGLE_TT" + } + } + } + + divider_light = { + layoutpolicy_horizontal = expanding + + modify_texture = { + texture = "gfx/interface/component_masks/mask_fade_horizontal_extended.dds" + blend_mode = alphamultiply + } + } + + ### Imperial Examination + hbox = { + datacontext = "[GetActivityType( 'activity_imperial_examination' )]" + datacontext = "[ActivityType.FindJoinableOpenActivityOfType]" + visible = "[Not( Activity.IsValid )]" + + layoutpolicy_horizontal = expanding + spacing = 5 + + tooltip = activity_imperial_examination_not_available_tt + + text_single = { + layoutpolicy_horizontal = expanding + min_width = 180 + text = "activity_imperial_examination_with_icon" + align = nobaseline + max_width = 300 + } + + expand = {} + + text_single = { + text = "[ActivityType.GetLastSeenDateOfOpenActivityType]" + align = nobaseline + default_format = "#weak" + max_width = 120 + } + + button_round = { + onclick = "[ActivityType.ToggleShouldNotifyCanJoinOpenActivity]" + size = { 36 36 } + + button_icon = { + visible = "[ActivityType.ShouldNotifyCanJoinOpenActivity]" + parentanchor = center + alwaystransparent = yes + texture = "gfx/interface/icons/flat_icons/notifications_on.dds" + size = { 24 24 } + + tooltip = "CAPITAL_EXAMINATIONS_NOTIFY_TOGGLE_TT" + } + + button_icon = { + visible = "[Not(ActivityType.ShouldNotifyCanJoinOpenActivity)]" + parentanchor = center + alwaystransparent = yes + texture = "gfx/interface/icons/flat_icons/notifications_off.dds" + size = { 24 24 } + + tooltip = "CAPITAL_EXAMINATIONS_NOTIFY_TOGGLE_TT" + } + } + } + } + + # joinable activities + vbox = { + margin = { 15 0 } + layoutpolicy_horizontal = expanding + visible = "[Or( GetActivityType( 'activity_local_examination' ).FindJoinableOpenActivityOfType.IsValid, GetActivityType( 'activity_imperial_examination' ).FindJoinableOpenActivityOfType.IsValid )]" + + hbox = { + layoutpolicy_horizontal = expanding + datacontext = "[GetActivityType( 'activity_local_examination' )]" + datacontext = "[ActivityType.FindJoinableOpenActivityOfType]" + visible = "[Activity.IsValid]" + spacing = 10 + + button_standard = { + layoutpolicy_horizontal = expanding + visible = "[Activity.IsValid]" + + onclick = "[ToggleGameViewData( 'activity_list_detail_invite_window', Activity.Self )]" + down = "[IsGameViewDataShown( 'activity_list_detail_invite_window', Activity.Self )]" + tooltip = JOIN_ACTIVITY_TOOLTIP + + text = "ACTIVITY_LIST_JOIN_GENERIC" + } + + button_round = { + size = { 36 36 } + onclick = "[ActivityType.ToggleShouldNotifyCanJoinOpenActivity]" + + button_icon = { + visible = "[ActivityType.ShouldNotifyCanJoinOpenActivity]" + parentanchor = center + alwaystransparent = yes + texture = "gfx/interface/icons/flat_icons/notifications_on.dds" + size = { 24 24 } + + tooltip = "LOCAL_EXAMINATIONS_NOTIFY_TOGGLE_TT" + } + + button_icon = { + visible = "[Not(ActivityType.ShouldNotifyCanJoinOpenActivity)]" + parentanchor = center + alwaystransparent = yes + texture = "gfx/interface/icons/flat_icons/notifications_off.dds" + size = { 24 24 } + + tooltip = "LOCAL_EXAMINATIONS_NOTIFY_TOGGLE_TT" + } + } + } + + hbox = { + layoutpolicy_horizontal = expanding + datacontext = "[GetActivityType( 'activity_imperial_examination' )]" + datacontext = "[ActivityType.FindJoinableActivityOfType]" + visible = "[Activity.IsValid]" + spacing = 10 + + button_standard = { + layoutpolicy_horizontal = expanding + visible = "[Activity.IsValid]" + + onclick = "[ToggleGameViewData( 'activity_list_detail_invite_window', Activity.Self )]" + down = "[IsGameViewDataShown( 'activity_list_detail_invite_window', Activity.Self )]" + tooltip = JOIN_ACTIVITY_TOOLTIP + + text = "ACTIVITY_LIST_JOIN_GENERIC" + } + + button_round = { + size = { 36 36 } + onclick = "[ActivityType.ToggleShouldNotifyCanJoinOpenActivity]" + + button_icon = { + visible = "[ActivityType.ShouldNotifyCanJoinOpenActivity]" + parentanchor = center + alwaystransparent = yes + texture = "gfx/interface/icons/flat_icons/notifications_on.dds" + size = { 24 24 } + + tooltip = "CAPITAL_EXAMINATIONS_NOTIFY_TOGGLE_TT" + } + + button_icon = { + visible = "[Not(ActivityType.ShouldNotifyCanJoinOpenActivity)]" + parentanchor = center + alwaystransparent = yes + texture = "gfx/interface/icons/flat_icons/notifications_off.dds" + size = { 24 24 } + + tooltip = "CAPITAL_EXAMINATIONS_NOTIFY_TOGGLE_TT" + } + } + } + } + + # hostable activities + vbox = { + visible = "[Or( GetActivityType( 'activity_local_examination' ).CanPlanActivity( GetPlayer.Self ), GetActivityType( 'activity_imperial_examination' ).CanPlanActivity( GetPlayer.Self ) )]" + layoutpolicy_horizontal = expanding + margin = { 15 0 } + + hbox = { + datacontext = "[GetActivityType( 'activity_local_examination' )]" + visible = "[ActivityType.CanPlanActivity( GetPlayer.Self )]" + layoutpolicy_horizontal = expanding + spacing = 10 + + button_standard = { + layoutpolicy_horizontal = expanding + text = "ACTIVITY_LIST_HOST_GENERIC" + + enabled = "[ActivityType.CanStartActivity( GetPlayer.Self )]" + onclick = "[ToggleGameViewData( 'activity_list_detail_host_window', ActivityType.Self )]" + down = "[IsGameViewDataShown( 'activity_list_detail_host_window', ActivityType.Self )]" + + tooltip = SHOW_ACTIVITY_TOOLTIP + } + + button_round = { + onclick = "[ActivityType.ToggleShouldNotifyCanHost]" + size = { 36 36 } + + button_icon = { + visible = "[ActivityType.ShouldNotifyCanHost]" + parentanchor = center + alwaystransparent = yes + texture = "gfx/interface/icons/flat_icons/notifications_on.dds" + size = { 24 24 } + + tooltip = "ACTIVITY_LIST_NOTIFY_ME_ABOUT_HOSTING_EXAMINATIONS_LOCAL_TT" + } + + button_icon = { + visible = "[Not(ActivityType.ShouldNotifyCanHost)]" + parentanchor = center + alwaystransparent = yes + texture = "gfx/interface/icons/flat_icons/notifications_off.dds" + size = { 24 24 } + + tooltip = "ACTIVITY_LIST_NOTIFY_ME_ABOUT_HOSTING_EXAMINATIONS_LOCAL_TT" + } + } + } + + hbox = { + layoutpolicy_horizontal = expanding + datacontext = "[GetActivityType( 'activity_imperial_examination' )]" + visible = "[ActivityType.CanPlanActivity( GetPlayer.Self )]" + spacing = 10 + + button_standard = { + layoutpolicy_horizontal = expanding + + enabled = "[ActivityType.CanStartActivity( GetPlayer.Self )]" + onclick = "[ToggleGameViewData( 'activity_list_detail_host_window', ActivityType.Self )]" + down = "[IsGameViewDataShown( 'activity_list_detail_host_window', ActivityType.Self )]" + tooltip = SHOW_ACTIVITY_TOOLTIP + + text = "ACTIVITY_LIST_HOST_GENERIC" + } + + button_round = { + onclick = "[ActivityType.ToggleShouldNotifyCanHost]" + size = { 36 36 } + + button_icon = { + visible = "[ActivityType.ShouldNotifyCanHost]" + parentanchor = center + alwaystransparent = yes + texture = "gfx/interface/icons/flat_icons/notifications_on.dds" + size = { 24 24 } + + tooltip = "ACTIVITY_LIST_NOTIFY_ME_ABOUT_HOSTING_EXAMINATIONS_IMPERIAL_TT" + } + + button_icon = { + visible = "[Not(ActivityType.ShouldNotifyCanHost)]" + parentanchor = center + alwaystransparent = yes + texture = "gfx/interface/icons/flat_icons/notifications_off.dds" + size = { 24 24 } + + tooltip = "ACTIVITY_LIST_NOTIFY_ME_ABOUT_HOSTING_EXAMINATIONS_IMPERIAL_TT" + } + } + } + } + } + + spacer = { + size = { 0 10 } + } + + ## Prominent House Member Character List + vbox_character_list = { + name = "admin_panel_your_family_character_list" #ra_merit_candidacy_house_members uses this + datacontext = "[GovernmentAdministrationWindow.AccessProminentHouseMemberList]" + datacontext = "[GovernmentAdministrationWindow.AccessProminentHouseMemberCharacterList]" + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + blockoverride "sort_buttons" + { + hbox_list_sort_buttons = { + layoutpolicy_horizontal = expanding + + blockoverride "margins" { + margin_left = 15 + margin_right = -38 #-margin to offset an expand in the hbox_list_sort_buttons type. This was an easier solution that going into the base type and fix since we use it in so many places. + margin_top = 5 + spacing = 5 + } + + blockoverride "filters_visible" { + visible = no + } + + blockoverride "sort_prefix" { + text_single = { + text = "ADMIN_WINDOW_PROMINENT_MEMBERS" + align = nobaseline + max_width = 240 + } + expand = {} + } + + blockoverride "sort_dropdown" { + dropdown_sort_characterlist = { + name = "prominent_house_member_sort_options" + } + } + } + } + + blockoverride "skill_sort_buttons" {} + blockoverride "character_count" {} + + blockoverride "scrollbox_empty_visibility" + { + layoutpolicy_vertical = expanding + visible = "[Not( CharacterSelectionList.HasItems )]" + + text = "ADMIN_WINDOW_NO_FAMILY_MEMBERS" + } + + blockoverride "container_implementation" + { + ### CHARACTER LIST ITEM - MERIT ### + fixedgridbox = { + datamodel = "[CharacterSelectionList.GetList]" + visible = "[And( Not( CharacterSelectionList.IsBuildingList ), GetPlayer.GetTopLiege.GetGovernment.HasRule( 'merit' ) )]" + + addcolumn = 530 + addrow = 187 + + item = { + widget_prominent_house_member_item_celestial = {} + } + } + + ### CHARACTER LIST ITEM - OTHER ADMIN ### + fixedgridbox = { + datamodel = "[CharacterSelectionList.GetList]" + visible = "[And( Not( CharacterSelectionList.IsBuildingList ), Not( GetPlayer.GetTopLiege.GetGovernment.HasRule( 'merit' ) ) )]" + + addcolumn = 530 + addrow = 130 + + item = { + widget_prominent_house_member_item = {} + } + } + } + } + } + + type widget_prominent_house_member_item_celestial = widget { + datacontext = "[CharacterListItem.GetCharacter]" + size = { 530 182 } + + background = { + using = Background_Area_Dark + + alpha = 0.6 + margin = { -2 -2 } + margin_bottom = -120 + } + + background = { + using = Background_Frame + } + + vbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + margin = { 10 9 } + spacing = 5 + + hbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + vbox = { + layoutpolicy_vertical = expanding + + ### LEFT PORTRAIT + portrait_head = {} + + expand = {} + } + + vbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + hbox = { + layoutpolicy_horizontal = expanding + + vbox = { + layoutpolicy_horizontal = expanding + + ### NAME + hbox = { + margin_left = 5 + layoutpolicy_horizontal = expanding + + text_single = { + max_width = 310 + + text = "[Character.GetUINameNotMeNoTooltip]" + using = Font_Size_Medium + align = nobaseline + } + + expand = {} + } + + ### RELATION + hbox = { + margin_left = 5 + layoutpolicy_horizontal = expanding + + tooltip = "EXTENDED_RELATIONS_TOOLTIP" + using = tooltip_se + + text_single = { + max_width = 310 + + text = "[Character.GetRelationToString( GetPlayer )]" + align = nobaseline + } + + expand = {} + } + } + + expand = {} + + vbox = { + layoutpolicy_vertical = expanding + allow_outside = yes + + hbox = { + allow_outside = yes + margin_right = 5 + + widget = { + datacontext = "[ProminentHouseMemberCharacterList.GetMeritItem( CharacterListItem.GetIndex )]" + visible = "[GreaterThanOrEqualTo_int32( Character.GetMeritLevel, '(int32)1' )]" + size = { 76 46 } + allow_outside = yes + + ### MERIT - Your Family - Character List Selection + hbox_merit_with_label = { + name = "admin_panel_character_item_merit_rank" + + blockoverride "icon_size" + { + size = { 42 42 } + } + + blockoverride "hbox_merit_with_label_background" {} + } + } + + widget = { + datacontext = "[ProminentHouseMemberCharacterList.GetMeritItem( CharacterListItem.GetIndex )]" + visible = "[EqualTo_int32( Character.GetMeritLevel, '(int32)0' )]" + size = { 90 46 } + allow_outside = yes + + ### MERIT - Your Family - Character List Selection + hbox_merit_with_label = { + name = "admin_panel_character_item_merit_rank" + + blockoverride "icon_size" + { + size = { 42 42 } + } + + blockoverride "hbox_merit_with_label_background" {} + } + } + + expand = {} + } + } + } + + ### MERIT and EXAMINATIONS (adults) + hbox = { + visible = "[And(Character.IsAdult, Character.ShouldShowMerit)]" + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + margin_left = 5 + spacing = 16 + + ### MERIT POOLS + hbox = { + datamodel = "[ProminentHouseMemberCharacterList.GetMeritPools( CharacterListItem.GetIndex )]" + visible = "[Not(IsDataModelEmpty( ProminentHouseMemberCharacterList.GetMeritPools( CharacterListItem.GetIndex )))]" + margin_top = 10 + spacing = 10 + + item = { + button_merit_pool_item = { + blockoverride "default_format" {} + } + } + } + + text_multi = { + visible = "[IsDataModelEmpty( ProminentHouseMemberCharacterList.GetMeritPools( CharacterListItem.GetIndex ))]" + text = "ADMIN_WINDOW_CHARACTER_NOT_IN_ANY_CANDIDATE_LIST" + default_format = "#weak" + max_width = 240 + autoresize = yes + } + + expand = {} + + hbox = { + layoutpolicy_vertical = expanding + margin_top = 5 + + expand = {} + + ### EXAMINATIONS (all 3 adult exams, if there is space) + hbox = { + name = "admin_panel_character_item_exams" #ra_merit_candidacy_exams uses this + + visible = "[LessThanOrEqualTo_int32( GetDataModelSize(ProminentHouseMemberCharacterList.GetMeritPools( CharacterListItem.GetIndex )) , '(int32)3' )]" + + spacing = 5 + layoutpolicy_horizontal = expanding + + widget_provincial_exam_status = { + + size = { 40 40 } + } + + widget_metropolitan_exam_status = { + size = { 40 40 } + } + + widget_palace_exam_status = { + size = { 40 40 } + } + } + + ### PALACE EXAM (if there is little space) + + widget_palace_exam_status = { + visible = "[GreaterThanOrEqualTo_int32( GetDataModelSize(ProminentHouseMemberCharacterList.GetMeritPools( CharacterListItem.GetIndex )) , '(int32)4' )]" + } + } + } + + ### MERIT and EXAMINATIONS (children) + + hbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + visible = "[And(Not(Character.IsAdult), Character.ShouldShowMerit)]" + + spacing = 4 + margin = { 4 4 } + + widget_childrens_exam_status = { + # no icons needed, the text already has them + blockoverride "pass_fail_icons" {} + } + + vbox = { + layoutpolicy_horizontal = expanding + + text_single = { + layoutpolicy_horizontal = expanding + text = "game_concept_childrens_examination" + align = nobaseline + } + + text_single = { + layoutpolicy_horizontal = expanding + text = "CHILDRENS_EXAMINATION_PASSED_FAIL" + align = nobaseline + } + } + } + + } + } + + ### BUTTONS BOTTOM ROW + hbox = { + layoutpolicy_horizontal = expanding + + margin = { 5 0 } + margin_bottom = 5 + spacing = 10 + + # Scheme 'influence_candidacy_interaction' + button_standard = { + datacontext = "[GetNullLandedTitle]" + visible = "[Character.IsPlayerInteractionShown( 'influence_candidacy_interaction' )]" + layoutpolicy_horizontal = expanding + minimumsize = { 0 33 } + + onclick = "[Character.OpenPlayerInteractionWithTargetTitle( 'influence_candidacy_interaction', Title.Self )]" + + tooltip = "[Character.GetPlayerInteractionTooltip( 'influence_candidacy_interaction' )]" + tooltip_when_disabled = "[Character.GetPlayerInteractionValidBlockers( 'influence_candidacy_interaction' )]" + + hbox = { + layoutpolicy_horizontal = expanding + margin = { 8 4 } + spacing = 4 + + button_promote_candidate = { + alwaystransparent = yes + } + + text_single = { + max_width = 430 + + text = "ADMIN_VASSAL_DETAILS_VOTE_FOR_SUCCESSOR_BUTTON" + default_format = "#clickable" + align = nobaseline + } + + expand = {} + } + } + + button_influence_career = { + name = "admin_panel_character_item_influence_career" #ra_merit_candidacy_score uses this + visible = "[Not(Character.IsPlayerInteractionShown( 'send_child_to_examination_interaction' ))]" + layoutpolicy_horizontal = expanding + } + + button_promote_candidate_scheme = { + name = "admin_panel_character_item_promote_scheme" #ra_merit_candidacy_score uses this + + # hide invalid interaction to save space + visible = "[And(Character.IsValid,Character.IsPlayerInteractionValid( 'start_promote_interaction' ))]" + layoutpolicy_horizontal = expanding + } + + ### Interaction Button - Child Exam + button_standard = { + name = "admin_panel_character_item_child_exam" #ra_merit_candidacy_child_exams uses this + visible = "[Character.IsPlayerInteractionShown( 'send_child_to_examination_interaction' )]" + layoutpolicy_horizontal = expanding + minimumsize = { 0 33 } + + enabled = "[Character.IsPlayerInteractionValid( 'send_child_to_examination_interaction' )]" + onclick = "[Character.OpenPlayerInteraction( 'send_child_to_examination_interaction' )]" + + tooltip = "[Character.GetPlayerInteractionTooltip( 'send_child_to_examination_interaction' )]" + tooltip_when_disabled = "[Character.GetPlayerInteractionValidBlockers( 'send_child_to_examination_interaction' )]" + + text = "send_child_to_examination_interaction" + } + + ### Decision Button - Attend Child Exam + button_decision_entry = { + datacontext = "[GetDecisionWithKey( 'tgp_china_attend_child_exam_decision' )]" + visible = "[And( Not( Character.IsPlayerInteractionShown( 'send_child_to_examination_interaction' ) ), Decision.IsShownForPlayer )]" + + blockoverride "button_size" + { + minimumsize = { 300 33 } + } + + onclick = "[OpenGameViewData( 'decision_detail', Decision.Self )]" + } + } + } + } + + type widget_prominent_house_member_item = widget { + datacontext = "[CharacterListItem.GetCharacter]" + size = { 530 124 } + allow_outside = yes + + background = { + using = Background_Area + } + + # Container + hbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + allow_outside = yes + + background = { + using = Background_Area_Dark + alpha = 0.8 + + margin_bottom = -65 + } + + vbox = { + layoutpolicy_vertical = expanding + + portrait_head = {} + + expand = {} + } + + vbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + allow_outside = yes + + margin = { 5 5 } + margin_top = 4 + + hbox = { + layoutpolicy_horizontal = expanding + allow_outside = yes + + vbox = { + layoutpolicy_horizontal = expanding + + hbox = { + layoutpolicy_horizontal = expanding + + # Character name + text_single = { + layoutpolicy_horizontal = expanding + max_width = 340 + + text = "[Character.GetUINameNotMeNoTooltip]" + using = Font_Size_Medium + align = nobaseline + } + + expand = {} + } + + # Relation to you + hbox = { + layoutpolicy_horizontal = expanding + + text_single = { + layoutpolicy_horizontal = expanding + max_width = 340 + + text = "[Character.GetRelationToString( GetPlayer )]" + align = nobaseline + + tooltip = "EXTENDED_RELATIONS_TOOLTIP" + using = tooltip_se + } + + expand = {} + } + } + + expand = {} + + # CoA Theme + vbox = { + layoutpolicy_vertical = expanding + margin_top = 2 + margin_right = 14 + allow_outside = yes + + + widget = { + size = { 50 50 } + allow_outside = yes + + widget_theme_item_small = { + datacontext = "[Character.GetPrimaryTitle]" + visible = "[Title.IsValid]" + parentanchor = center + allow_outside = yes + + blockoverride "crown" {} + + blockoverride "outer_size" + { + size = { 62 62 } + } + blockoverride "inner_size" + { + size = { 62 62 } + } + } + } + + expand = {} + } + } + + vbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + visible = "[Character.IsAdult]" + + expand = {} + + # Button Options + hbox = { + + layoutpolicy_horizontal = expanding + margin_bottom = 10 + spacing = 10 + + button_promote_candidate_scheme = { + layoutpolicy_horizontal = expanding + enabled = "[Character.IsPlayerInteractionValid( 'start_promote_interaction' )]" + tooltip_when_disabled = "[Character.GetPlayerInteractionValidBlockers( 'start_promote_interaction' )]" + } + + button_standard = { + layoutpolicy_horizontal = expanding + + text = "ADMIN_WINDOW_BUTTON_FIND_APPOINTMENT" + onclick = "[GovernmentAdministrationWindow.SelectProminentHouseMember( Character.Self )]" + onclick = "[GetVariableSystem.Set( 'show_prominent_appointment', 'true' )]" + } + + expand = {} + } + } + + text_single = { + visible = "[Not(Character.IsAdult)]" + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + # added after loc freeze, text could be better + text = "NOT_IS_ADULT_TRIGGER" + + default_format = "#weak" + align = hcenter|nobaseline + } + } + } + } + + type vbox_family_group_foldout = vbox { + layoutpolicy_horizontal = expanding + + spacing = 6 + + oncreate = "[BindFoldOutContext]" + oncreate = "[PdxGuiFoldOut.Unfold]" + + button_expandable_toggle_field = { + blockoverride "text" + { + text = "[AdminFamilyGroupItem.GetName]" + } + } + + vbox = { + visible = "[PdxGuiFoldOut.IsUnfolded]" + + layoutpolicy_horizontal = expanding + + fixedgridbox = { + name = "families_in_group" + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + addcolumn = 520 + addrow = 124 + + datamodel = "[AdminFamilyGroupItem.GetFamilyItems]" + + item = { + vbox = { + layoutpolicy_horizontal = expanding + + button_family_group_item = { + datacontext = "[AdminFamilyItem.GetHouse]" + } + expand = {} + } + } + } + } + } + + type widget_house_power_banner_small = widget + { + size = { 92% 32 } + parentanchor = bottom|hcenter + position = { 0 -14 } + + background = { + texture = "gfx/interface/window_theme_administration/rating_banner.dds" + } + + tooltipwidget = { + widget_value_breakdown_tooltip = { + datacontext = "[GovernmentAdministrationWindow.GetHousePowerTooltip( DynastyHouse.Self )]" + + blockoverride "header" + { + text_label_left = { + layoutpolicy_horizontal = expanding + text = "game_concept_powerful_family_rating" + default_format = "#T" + } + } + } + } + + text_single = { + parentanchor = center + position = { 0 -1 } + max_width = 250 + + text = "[DynastyHouse.GetHousePower]" + default_format = "#light_background" + align = nobaseline + } + } + + type widget_house_power_banner_medium = widget + { + size = { 100 32 } + parentanchor = bottom|hcenter + position = { 0 -4 } + + background = { + texture = "gfx/interface/window_theme_administration/rating_banner.dds" + } + + tooltipwidget = { + widget_value_breakdown_tooltip = { + datacontext = "[GovernmentAdministrationWindow.GetHousePowerTooltip( DynastyHouse.Self )]" + + blockoverride "header" + { + text_label_left = { + layoutpolicy_horizontal = expanding + text = "game_concept_powerful_family_rating" + default_format = "#T" + } + } + } + } + + text_single = { + parentanchor = center + position = { 5 -1 } + max_width = 200 + + text = "[AdminFamilyItem.GetRankAndPower]" + default_format = "#light_background" + using = Font_Size_Tiny + align = nobaseline + } + } + + type widget_ranked_family_neighbor = widget + { + minimumsize = "[Select_CVector2f( RankedHouseItem.IsPlayerHouse, '(CVector2f)88,110', '(CVector2f)64,110' )]" + layoutpolicy_horizontal = expanding + allow_outside = yes + + vbox = { + + spacing = -4 + + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + allow_outside = yes + + hbox = { + layoutpolicy_horizontal = expanding + text_single = { + text = "[RankedHouseItem.GetRank]" + tooltip = "ADMIN_WINDOW_FAMILY_RANK_TOOLTIP" + default_format = "#high" + align = nobaseline + } + } + + coa_house_medium = { + visible = "[RankedHouseItem.IsPlayerHouse]" + allow_outside = yes + + widget_house_power_banner_small = { + position = { 0 22 } + allow_outside = yes + } + } + + coa_house_small = { + visible = "[Not( RankedHouseItem.IsPlayerHouse )]" + allow_outside = yes + + widget_house_power_banner_small = { + position = { 0 22 } + allow_outside = yes + } + } + + expand = {} + } + } + + type hbox_featured_family_head_portrait = hbox + { + background = { + using = Background_Area + alpha = 1.2 + + margin = { 8 4 } + } + + vbox = { + spacing = 2 + layoutpolicy_vertical = expanding + + + expand = {} + + widget_access_domicile_button = { + datacontext = "[DynastyHouse.GetHeadOfHouse]" + datacontext = "[Character.GetDomicile]" + visible = "[Character.HasDomicile]" + } + + button_round = { + visible = "[Not( Character.IsPlayer )]" + + tooltip = "ADMIN_GOVERNMENT_HOUSE_HEAD_INTERACTIONS_BUTTON_TOOLTIP" + tooltip_visible = "[Not(IsInteractionMenuOpenForCharacterWithFilter(Character.Self, 'admin_house_head'))]" + + onclick = "[ToggleFilteredCharacterInteractionMenu(Character.Self, 'admin_house_head')]" + + button_icon = { + alwaystransparent = yes + parentanchor = center + size = { 30 30 } + texture = "gfx/interface/icons/flat_icons/character_interactions.dds" + } + + text_single = { + parentanchor = bottom|hcenter + position = { 0 3 } + text = "[GetNumberOfValidInteractionsWithFilter(Character.Self, 'admin_house_head')]" + default_format = "#glow_color:{0.1,0.1,0.1,1.0}" + + background = { + margin = { 5 0 } + margin_top = -5 + using = Background_Area_Dark + } + } + + } + + expand = {} + } + + block "portrait_head" + { + portrait_head_small = {} + } + } + + type vbox_featured_family_portrait_big = hbox + { + layoutpolicy_horizontal = expanding + + vbox = { + margin_top = 12 + + # House CoA + widget = { + size = { 120 120 } + + allow_outside = yes + + datacontext = "[Character.GetHouse]" + + coa_house_big = { + datacontext = "[Character.GetHouse]" + parentanchor = top|hcenter + allow_outside = yes + + powerful_family_bonus = { + parentanchor = top|right + size = { 36 36 } + } + } + } + } + + expand = {} + + vbox = { + layoutpolicy_vertical = expanding + margin = { 4 0 } + + text_single = { + layoutpolicy_horizontal = expanding + max_width = 160 + margin_left = 8 + align = nobaseline + using = Font_Size_Medium + block "subtitle" {} + } + + hbox = { + spacing = 2 + layoutpolicy_vertical = expanding + + vbox = { + layoutpolicy_vertical = expanding + spacing = 2 + + expand = {} + + widget_access_domicile_button = { + datacontext = "[Character.GetDomicile]" + visible = "[Character.HasDomicile]" + } + + button_round = { + visible = "[Not( Character.IsPlayer )]" + + block "interactions_on_click" {} + + button_icon = { + alwaystransparent = yes + parentanchor = center + size = { 30 30 } + texture = "gfx/interface/icons/flat_icons/character_interactions.dds" + } + + text_single = { + parentanchor = bottom|hcenter + position = { 0 3 } + + block "interaction_number_text" {} + + default_format = "#glow_color:{0.1,0.1,0.1,1.0}" + + background = { + margin = { 5 0 } + margin_top = -5 + using = Background_Area_Dark + } + } + } + + expand = {} + } + portrait_head_small = {} + } + } + + } + + type button_family_group_item = widget + { + size = { 520 118 } + + using = Background_Area_Administrative_Decoration + + hbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + margin_top = 6 + margin_left = 5 + spacing = 8 + + # House CoA + widget = { + size = { 84 110 } + layoutpolicy_vertical = expanding + allow_outside = yes + + vbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + allow_outside = yes + + coa_house_medium = { + allow_outside = yes + + powerful_family_bonus = { + parentanchor = top|right + position = { 2 0 } + size = { 32 32 } + blockoverride "level_icons" {} + } + } + + expand = {} + } + + widget = { + parentanchor = vcenter|right + position = { 2 -15 } + size = { 20 20 } + + icon_house_relation = { + size = { 20 20 } + + datacontext = "[DynastyHouse.GetHouseRelationWith( GetPlayer.GetHouse )]" + tooltipwidget = { + house_relation_item_tooltip_no_progressbar = { + blockoverride "description_prefix" { + text_single = { + layoutpolicy_horizontal = expanding + text = "house_relation_your_relation_with" + default_format = "#weak" + align = left + } + } + } + } + } + } + + widget_house_power_banner_medium = {} + } + + hbox = { + datacontext = "[DynastyHouse.GetHeadOfHouse]" + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + margin = { 5 5 } + + vbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + ignoreinvisible = no + + hbox = { + layoutpolicy_horizontal = expanding + + text_single = { + layoutpolicy_horizontal = expanding + + text = "ADMINISTRATIVE_GOVERNMENT_HOUSE_WITH_NAME" + align = nobaseline + max_width = 270 + using = Font_Size_Medium + } + + expand = {} + } + + hbox_house_bloc_info = { + layoutpolicy_horizontal = expanding + } + + # House County Control in Realm + hbox = { + layoutpolicy_horizontal = expanding + margin_left = -5 #Ugly solution to offset icon + + text_single = { + visible = "[And(Or(DynastyHouse.IsDominant,DynastyHouse.IsPowerful), Not( Character.HasMerit ))]" + layoutpolicy_horizontal = expanding + + text = "ADMIN_WINDOW_HOUSE_LAND_SHARE" + tooltip = "ADMIN_WINDOW_HOUSE_LAND_SHARE_TOOLTIP" + align = nobaseline + max_width = 270 + + + } + + expand = {} + } + + expand = {} + } + + vbox = { + + margin = { 5 2 } + + layoutpolicy_vertical = expanding + + hbox_featured_family_head_portrait = {} + + expand = {} + } + + expand = {} + } + } + } + + type widget_special_ruler = widget + { + size = { 110 149 } + + portrait_head = { + visible = "[Not( Title.MakeScope.Var( 'administrative_ui_special_title' ).Title.IsValid )]" + parentanchor = hcenter + + blockoverride "coa" {} + blockoverride "portrait_button_template_tooltip" {} + } + + widget = { + visible = "[Title.MakeScope.Var( 'administrative_ui_special_title' ).Title.IsValid]" + datacontext = "[Title.MakeScope.Var( 'administrative_ui_special_title' ).Title.GetHolder]" + size = { 110 149 } + + portrait_head = { + blockoverride "portrait_button_template_tooltip" {} + } + + text_single = { + widgetanchor = bottom|hcenter + parentanchor = bottom|hcenter + text = "[Character.GetTitledFirstName]" + } + } + } + + type button_merit_pool_item = widget { + size = { 56 56 } + allow_outside = yes + + button = { + parentanchor = bottom|hcenter + size = { 56 56 } + allow_outside = yes + texture = "gfx/interface/buttons/button_lifestyles_base.dds" + + block "button_onclick" + { + onclick = "[GovernmentAdministrationWindow.SelectProminentHouseMember( Character.Self )]" + onclick = "[GovernmentAdministrationWindow.SetMeritPoolCharacterList( AdminMeritPool.Self )]" + onclick = "[MeritPoolWindow.ScrollToCandidate( Character.Self, '(int32)15' )]" + down = "[ObjectsEqual( AdminMeritPool.Self, GovernmentAdministrationWindow.GetSelectedAdminMeritPool )]" + } + + tooltip = "[AdminMeritPool.GetCandidateTooltip( Character.Self )]" + using = tooltip_se + + text_single = { + visible = "[Not( AdminMeritPool.IsMilitary )]" + parentanchor = center + position = { 0 -5 } + + text = "celestial_province_standard_text_icon" + align = nobaseline + } + + text_single = { + visible = "[AdminMeritPool.IsMilitary]" + parentanchor = center + position = { 0 -5 } + + text = "celestial_province_military_text_icon" + align = nobaseline + } + + button_round = { + parentanchor = top|right + position = { 11 -6 } + size = { 30 30 } + + onclick = "[GovernmentAdministrationWindow.SelectProminentHouseMember( Character.Self )]" + onclick = "[GovernmentAdministrationWindow.SetMeritPoolCharacterList( AdminMeritPool.Self )]" + onclick = "[MeritPoolWindow.ScrollToCandidate( Character.Self, '(int32)15' )]" + + icon = { + name = "crown" + parentanchor = center + texture = "gfx/interface/coat_of_arms/crown_strip_28.dds" + frame = "[AdminMeritPool.GetTierFrame]" + framesize = { 32 22 } + scale = 0.8 + position = { 0 -3 } + } + } + } + + widget_succession_candidate_banner_small = { + parentanchor = bottom|hcenter + position = { 0 -3 } + size = { 60 24 } + + blockoverride "background_texture" + { + texture = "gfx/interface/hud/tgp_widget_button_banner.dds" + } + + blockoverride "banner_text" + { + parentanchor = center|vcenter + widgetanchor = center + position = { 0 2 } + + text = "TITLE_APPOINTMENT_RANK_SMALL" + } + } + + icon = { + visible = "[And( Not(Character.HasNewAppointmentCooldown), AdminMeritPool.HasCareerScorePotential( Character.Self ) )]" + parentanchor = bottom|hcenter + allow_outside = yes + + position = { 26 -3 } + size = { 20 20 } + texture = "gfx/interface/icons/appointment_score.dds" + } + + icon = { + visible = "[Character.HasNewAppointmentCooldown]" + parentanchor = bottom|hcenter + allow_outside = yes + + position = { 24 -2 } + size = { 25 25 } + texture = "gfx/interface/icons/icon_time.dds" + } + } + + type vbox_merit_pool_character_item = vbox { + margin_top = 2 + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + ### NAME and GOVERNOR EFFICIENCY ### + hbox = { + margin = { 5 5 } + margin_right = 10 + layoutpolicy_horizontal = expanding + + background = { + using = Background_Area_Dark + alpha = 0.6 + margin_left = 7 + margin_right = -2 + } + + text_single = { + layoutpolicy_horizontal = expanding + + text = "[Character.GetUINameNoTooltip|U]" + using = Font_Size_Medium + align = nobaseline + + max_width = 330 + min_height = 32 + } + + expand = {} + + ### MERIT ### + hbox_merit_with_label = { + datacontext = "[MeritPoolWindow.GetMeritItem( CharacterListItem.GetIndex )]" + + blockoverride "hbox_merit_with_label_background" {} + } + + ### APPOINTMENT SCORE ### + hbox = { + datacontext = "[CharacterListItem]" + margin_left = 10 + + text_single = { + layoutpolicy_horizontal = expanding + min_width = 50 + + text = "ADMIN_WINDOW_MERIT_POOLS_APPOINTMENT_SCORE" + align = nobaseline + } + + using = tooltip_se + tooltipwidget = { + widget_value_breakdown_tooltip = { + block "score_breakdown" { + datacontext = "[MeritPoolWindow.GetSuccessionScoreBreakdown( CharacterListItem.GetCharacter )]" + } + } + } + } + + } + + ### RELATION TO YOU ### + vbox = { + layoutpolicy_horizontal = expanding + margin_left = 5 + + text_single = { + layoutpolicy_horizontal = expanding + max_width = 470 + + text = "[Character.GetRelationToString( GetPlayer )]" + align = nobaseline + + tooltip = "EXTENDED_RELATIONS_TOOLTIP" + using = tooltip_se + } + + expand = {} + } + + ### HOUSE, SCORE and MERIT + hbox = { + layoutpolicy_horizontal = expanding + margin_right = 5 + + ### House Coat of Arms + vbox = { + datacontext = "[Character.GetHouse]" + + coa_house_small = { + powerful_family_bonus = { + parentanchor = bottom|right + position = { 7 1 } + size = { 29 29 } + blockoverride "level_icons" {} + } + } + } + + # Currently held Primary Title, if not a Noble Family title + widget = { + size = { 50 64 } + visible = "[Not( Character.GetPrimaryTitle.IsNobleFamilyTitle )]" + + coa_realm_tiny_crown = { + position = { 10 6 } + + blockoverride "coa_button" + { + tooltip = "[Character.GetDefaultRealmFlagTooltipPrimaryTitleClickInfo]" + onclick = "[DefaultOnCoatOfArmsClick(Character.GetPrimaryTitle.GetID)]" + } + } + } + + expand = {} + + vbox = { + layoutpolicy_vertical = expanding + visible = "[Character.HasNewAppointmentCooldown]" + + expand = {} + + hbox = { + margin = { 10 0 } + spacing = 10 + min_height = 32 + + background = { + using = Background_Area + margin_top = 5 + margin_bottom = 2 + margin_right = 5 + } + + ### APPOINTMENT TIMEOUT ### + hbox = { + visible = "[Character.HasNewAppointmentCooldown]" + tooltip = "ADMIN_WINDOW_APPOINTMENT_COOLDOWN_TT" + + alert_icon = { + size = { 30 30 } + + texture = "gfx/interface/icons/icon_time.dds" + } + + text_single = { + layoutpolicy_horizontal = expanding + margin_left = 5 + + text = "[Character.GetNewAppointmentCooldownDate.GetTimeDiffFromNow]" + align = nobaseline + } + } + + # GOVERNOR EFFICIENCY +# hbox = { +# tooltip = "ADMIN_WINDOW_THEME_GOVERNOR_EFFICIENCY_TT" +# using = tooltip_ne +# +# icon = { +# name = "char_governor_efficiency_icon" +# size = { 32 32 } +# texture = "gfx/interface/icons/icon_skill_governor_efficiency.dds" +# } +# +# text_single = { +# name = "char_governor_efficiency_value" +# text = "ADMIN_WINDOW_THEME_GOVERNOR_EFFICIENCY_VALUE" +# align = nobaseline +# } +# } + } + } + } + + expand = {} + } + + type window_merit_pool_characters = window { + name = "merit_pool_characters_window" # Referenced in Code, don't rename + widgetanchor = right + position = { 20 90 } + size = { 700 82% } + + layer = middle + movable = yes + + using = Window_Background + using = Window_Decoration_Spike + using = Window_Size_CharacterList + + state = { + name = _show + using = Animation_FadeIn_Quick + } + + state = { + name = _hide + using = Animation_FadeOut_Quick + } + + vbox = { + using = Window_Margins + + header_pattern = { + layoutpolicy_horizontal = expanding + + blockoverride "header_text" + { + text = "[AdminMeritPool.GetTitle]" + } + + blockoverride "button_close" + { + onclick = "[MeritPoolWindow.Close]" + onclick = "[GovernmentAdministrationWindow.ClearMeritPoolCharacterList]" + } + } + + vbox = { + margin = { 20 5 } + margin_bottom = 15 + layoutpolicy_horizontal = expanding + visible = no + + background = { + using = Background_Area + + modify_texture = { + texture = "gfx/interface/component_masks/mask_fade_vertical_up.dds" + blend_mode = alphamultiply + } + } + + # Leaving this commented out just in case + #text_single = { + # layoutpolicy_horizontal = expanding + # margin_bottom = 5 + # + # text = "ADMIN_WINDOW_MERIT_POOLS_PARTICIPANT_INFO" + # default_format = "#weak" + # align = center|nobaseline + # max_width = 580 + #} + + text_multi = { + layoutpolicy_horizontal = expanding + margin_top = 15 + margin_bottom = 5 + max_width = 580 + autoresize = yes + + text = "[AdminMeritPool.GetRequiredMeritLevel]" + default_format = "#weak" + align = center|nobaseline + } + + } + + vbox = { + layoutpolicy_horizontal = expanding + margin = { 0 10 } + margin_top = 0 + + text_multi = { + autoresize = yes + max_width = 580 + + text = "ADMIN_WINDOW_MERIT_POOLS_CANDIDATE_RANKING_DESC" + } + + tooltipwidget = { + container = { + using = GeneralTooltipSetup + alwaystransparent = no + + widget = { + name = "background" + using = DefaultTooltipBackground + size = { 100% 100% } + alwaystransparent = no + } + + flowcontainer = { + margin = { 20 10 } + margin_bottom = 15 + direction = vertical + + background = { + using = Background_Area + + modify_texture = { + texture = "gfx/interface/component_masks/mask_fade_vertical_up.dds" + blend_mode = alphamultiply + } + } + + text_multi = { + margin_bottom = 5 + max_width = 580 + autoresize = yes + + text = "[AdminMeritPool.GetRequiredMeritLevel]" + } + + ### Valid Obligation Level Types + flowcontainer = { + datamodel = "[GovernmentAdministrationWindow.GetAdminPoolTypeObligations]" + ignoreinvisible = yes + direction = vertical + + item = { + flowcontainer = { + visible = "[ObligationLevel.HasTag( AdminMeritPool.GetPoolTypeTag )]" + ignoreinvisible = yes + spacing = 5 + + text_single = { + raw_text = "•" + } + + text_single = { + text = "[ObligationLevel.GetName]" + align = center|nobaseline + } + } + } + } + } + } + + } + } + + vbox_character_list = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + blockoverride "sort_buttons" + { + hbox_list_sort_buttons = { + layoutpolicy_horizontal = expanding + + blockoverride "filters_visible" { + visible = no + } + + blockoverride "sort_dropdown" { + dropdown_sort_characterlist = { + name = "merit_pools_sort_options" + } + } + } + } + + blockoverride "skill_sort_buttons" {} + + blockoverride "scrollbox_empty_visibility" + { + layoutpolicy_vertical = expanding + visible = "[Not( CharacterSelectionList.HasItems )]" + text = "ADMIN_WINDOW_MERIT_POOLS_EMPTY" + } + + blockoverride "container_implementation" + { + fixedgridbox = { + name = "characters_grid" + addcolumn = 580 + addrow = 140 + datamodel_reuse_widgets = yes + datamodel = "[CharacterSelectionList.GetList]" + visible = "[Not(CharacterSelectionList.IsBuildingList)]" + + item = { + widget_character_list_item_finder = { + size = { 580 135 } + blockoverride "character_relation" {} + + background = { + using = Background_Frame + } + + background = { + visible = "[ObjectsEqual( Character.Self, GovernmentAdministrationWindow.GetSelectedProminentHouseMember.Self )]" + + using = Background_Frame_Gold + } + } + } + } + } + + blockoverride "portrait_head_margin" + { + margin_left = 5 + + widget_succession_candidate_banner = { + blockoverride "banner_text" + { + text = "[Add_int32( CharacterListItem.GetIndex, '(int32)1' )|O]" + } + } + } + + blockoverride "button_content" + { + vbox_merit_pool_character_item = {} + } + } + } + } + + type hbox_theme_sort_options = hbox { + layoutpolicy_horizontal = expanding + margin = { 16 0 } + margin_bottom = 8 + spacing = 4 + + hbox = { + spacing = 2 + + text_single = { + text = "SORT_BY" + align = nobaseline + } + + dropdown_menu_standard = { + blockoverride "dropdown_active_item_properties" + { + text = "[ThemeOrderOption.GetName]" + } + + blockoverride "dropdown_item_properties" + { + text = "[ThemeOrderOption.GetName]" + } + } + } + + button_standard = { + name = "sort_order" + size = { 25 25 } + + block "sort_order_onclick" + { + onclick = "[GovernmentAdministrationWindow.ReverseSortOrder]" + } + + tooltip = "ADMIN_WINDOW_THEME_SORT_BY" + using = tooltip_nw + + button_icon = { + alwaystransparent = yes + parentanchor = center + size = { 25 25 } + texture = "gfx/interface/icons/flat_icons/sort_icon.dds" + framesize = { 66 66 } + + block "sort_order_frame" + { + frame = "[BoolTo1And2(GovernmentAdministrationWindow.GetSortOrder)]" + } + + blockoverride "button_frames" + { + effectname = "NoHighlight" + } + } + } + expand = {} + } + + type widget_childrens_exam_status = widget { + size = { 60 60 } + + datacontext = "[Character.MakeScope]" + + tooltip = "MERIT_TOOLTIP_EXAMINATION_PASSED_CHILD_EXAM" + using = tooltip_se + + icon = { + size = { 100% 100% } + texture = "gfx/interface/icons/character_interactions/tgp_send_to_childrens_examination_interaction.dds" + + modify_texture = { + visible = "[Not(HasPassedChildrenExamination(Character))]" + texture = "gfx/interface/colors/colors_textured.dds" + blend_mode = multiply + framesize = { 96 96 } + frame = 4 + } + } + + + + block "pass_fail_icons" + { + passed_examination_icon = { + visible = "[HasPassedChildrenExamination(Character)]" + + size = { 50% 50% } + parentanchor = bottom|right + } + + failed_examination_icon = { + visible = "[HasFailedChildrenExamination(Character)]" + + size = { 50% 50% } + parentanchor = bottom|right + } + } + } + + type widget_provincial_exam_status = widget { + size = { 60 60 } + + datacontext = "[Character.MakeScope]" + + tooltip = "MERIT_TOOLTIP_EXAMINATION_PASSED_PROVINCIAL_EXAM" + using = tooltip_se + + icon = { + size = { 100% 100% } + texture = "gfx/interface/icons/character_interactions/provincial_examination.dds" + using = Animation_Glow_Pulse + + modify_texture = { + visible = "[Not(HasPassedProvincialExamination(Character))]" + texture = "gfx/interface/colors/black.dds" + blend_mode = normal + alpha = 0.4 + } + + glow = { + visible = "[And(And(Not(HasPassedProvincialExamination(Character)), And(Character.IsMeritCapped, Character.CanImproveMeritRank)), Or(ObjectsEqual(GetPlayer, Character.GetWarden.Self), Character.IsLocalPlayer))]" + using = Color_Bright_Yellow + glow_radius = 5 + using = Glow_Standard + alpha = 0.8 + } + } + + passed_examination_icon = { + visible = "[HasPassedProvincialExamination(Character)]" + + size = { 50% 50% } + parentanchor = bottom|right + } + + failed_examination_icon = { + visible = "[HasFailedProvincialExamination(Character)]" + + size = { 50% 50% } + parentanchor = bottom|right + } + } + + + type widget_metropolitan_exam_status = widget { + size = { 60 60 } + + datacontext = "[Character.MakeScope]" + + tooltip = "MERIT_TOOLTIP_EXAMINATION_PASSED_METROPOLITAN_EXAM" + using = tooltip_se + + icon = { + size = { 100% 100% } + texture = "gfx/interface/icons/character_interactions/imperial_examination.dds" + using = Animation_Glow_Pulse + + modify_texture = { + visible = "[Not(HasPassedMetropolitanExamination(Character))]" + texture = "gfx/interface/colors/black.dds" + blend_mode = normal + alpha = 0.4 + } + + glow = { + visible = "[And(And(Not(HasPassedMetropolitanExamination(Character)), And(Character.IsMeritCapped, Character.CanImproveMeritRank)), Or(ObjectsEqual(GetPlayer, Character.GetWarden.Self), Character.IsLocalPlayer))]" + using = Color_Bright_Yellow + glow_radius = 5 + using = Glow_Standard + alpha = 0.8 + } + } + + passed_examination_icon = { + visible = "[HasPassedMetropolitanExamination(Character)]" + + size = { 50% 50% } + parentanchor = bottom|right + } + + failed_examination_icon = { + visible = "[HasFailedMetropolitanExamination(Character)]" + + size = { 50% 50% } + parentanchor = bottom|right + } + } + + type widget_palace_exam_status = widget { + size = { 60 60 } + + datacontext = "[Character.MakeScope]" + + tooltip = "MERIT_TOOLTIP_EXAMINATION_PASSED_PALACE_EXAM" + using = tooltip_se + + icon = { + size = { 100% 100% } + texture = "gfx/interface/icons/character_interactions/palace_examination.dds" + using = Animation_Glow_Pulse + + modify_texture = { + visible = "[Not(HasPassedPalaceExamination(Character))]" + texture = "gfx/interface/colors/black.dds" + blend_mode = normal + alpha = 0.4 + } + + glow = { + visible = "[And(And(Not(HasPassedPalaceExamination(Character)), And(Character.IsMeritCapped, Character.CanImproveMeritRank)), Or(ObjectsEqual(GetPlayer, Character.GetWarden.Self), Character.IsLocalPlayer))]" + using = Color_Bright_Yellow + glow_radius = 5 + using = Glow_Standard + alpha = 0.8 + } + } + + passed_examination_icon = { + visible = "[HasPassedPalaceExamination(Character)]" + + size = { 50% 50% } + parentanchor = bottom|right + } + + # no failed stamp, you cannot fail palace exam + } +} + +template Background_Obligation_Banner_Right { + highlight_icon = { + visible = "[ObligationLevel.HasTag( 'byzantine_purple' )]" + size = { 100% 100% } + mirror = horizontal + spritetype = corneredTiled + spriteborder = { 0 8 } + texture_density = 2 + + texture = "gfx/interface/window_military/military_banner_gray.dds" + color = { 0.89 0.5 0.89 1 } + } + + highlight_icon = { + visible = "[ObligationLevel.HasTag( 'military' )]" + size = { 100% 100% } + mirror = horizontal + spritetype = corneredTiled + spriteborder = { 0 8 } + texture_density = 2 + + texture = "gfx/interface/window_military/military_banner_red.dds" + } + + highlight_icon = { + visible = "[And( Not( ObligationLevel.HasTag( 'byzantine_purple' ) ), Not( ObligationLevel.HasTag( 'military' ) ) )]" + size = { 100% 100% } + mirror = horizontal + spritetype = corneredTiled + spriteborder = { 2 8 } + texture_density = 2 + + texture = "gfx/interface/window_military/military_banner_blue.dds" + } +} + +template Background_Area_Administrative_Decoration { + background = { + visible = "[DynastyHouse.IsImperial]" + margin = { 4 4 } + using = Background_Area_Admin_Purple + alpha = 1 + } + + background = { + visible = "[DynastyHouse.IsDominant]" + margin = { 4 4 } + using = Background_Area_Admin_Orange + alpha = 1 + } + + background = { + visible = "[DynastyHouse.IsPowerful]" + margin = { 4 4 } + using = Background_Area_Admin_Blue + alpha = 1 + } + + background = { + texture = "gfx/interface/window_administrative_government/family_decoration.dds" + spriteType = Corneredtiled + margin_bottom = 2 + spriteborder_bottom = 14 + texture_density = 1.5 + alpha = 0.1 + using = Mask_Rough_Edges + } + + background = { + texture = "gfx/interface/window_administrative_government/family_decoration.dds" + spriteType = Corneredtiled + margin_top = 2 + spriteborder_top = 14 + texture_density = 1.5 + alpha = 0.1 + using = Mask_Rough_Edges + } + + background = { + texture = "gfx/interface/skinned/mask_pattern.dds" + texture_density = 3 + spriteType = corneredtiled + color = { 0.1 0.1 0.12 1 } + margin = { 0 -10 } + alpha = 0.2 + + using = Mask_Rough_Edges + + modify_texture = { + texture = "gfx/interface/component_masks/mask_clouds.dds" + blend_mode = alphamultiply + spriteType = corneredTiled + alpha = 0.5 + } + + modify_texture = { + texture = "gfx/interface/component_masks/mask_scratches.dds" + blend_mode = alphamultiply + spriteType = corneredTiled + } + } + + background = { + visible = "[DynastyHouse.GetHeadOfHouse.IsPlayer]" + using = Background_Area_Border + using = Background_Frame_Gold + } + + background = { + visible = "[And(Not(DynastyHouse.IsImperial),Not(DynastyHouse.IsPowerful))]" + texture = "gfx/interface/window_administrative_government/powerful_family_decoration.dds" + using = Mask_Rough_Edges + fittype = start + alpha = 1 + tintcolor = { 0.7 0.7 0.7 0.8 } + + modify_texture = { + texture = "gfx/interface/component_masks/mask_fade_horizontal_right.dds" + blend_mode = alphaMultiply + } + + } + + background = { + visible = "[DynastyHouse.IsPowerful]" + texture = "gfx/interface/window_administrative_government/powerful_family_decoration.dds" + using = Mask_Rough_Edges + fittype = start + alpha = 1 + + modify_texture = { + texture = "gfx/interface/component_masks/mask_fade_horizontal_right.dds" + blend_mode = alphaMultiply + } + } + + background = { + visible = "[DynastyHouse.IsImperial]" + texture = "gfx/interface/window_administrative_government/imperial_family_decoration.dds" + using = Mask_Rough_Edges + fittype = start + alpha = 1 + + modify_texture = { + texture = "gfx/interface/component_masks/mask_fade_horizontal_right.dds" + blend_mode = alphaMultiply + } + } +} + +template Background_Area_Family_Decoration { + background = { + visible = "[DynastyHouse.IsImperial]" + margin = { 4 4 } + using = Background_Area_Admin_Purple + alpha = 1 + } + + background = { + visible = "[DynastyHouse.IsDominant]" + margin = { 4 4 } + using = Background_Area_Admin_Orange + alpha = 1 + } + + background = { + visible = "[DynastyHouse.IsPowerful]" + margin = { 4 4 } + using = Background_Area_Admin_Blue + alpha = 1 + } + + background = { + texture = "gfx/interface/window_administrative_government/family_decoration.dds" + spriteType = Corneredtiled + margin_bottom = 2 + spriteborder_bottom = 14 + texture_density = 1.5 + alpha = 0.1 + using = Mask_Rough_Edges + } + + background = { + texture = "gfx/interface/window_administrative_government/family_decoration.dds" + spriteType = Corneredtiled + margin_top = 2 + spriteborder_top = 14 + texture_density = 1.5 + alpha = 0.1 + using = Mask_Rough_Edges + } + + background = { + texture = "gfx/interface/skinned/mask_pattern.dds" + texture_density = 3 + spriteType = corneredtiled + color = { 0.1 0.1 0.12 1 } + margin = { 0 -10 } + alpha = 0.2 + + using = Mask_Rough_Edges + + modify_texture = { + texture = "gfx/interface/component_masks/mask_clouds.dds" + blend_mode = alphamultiply + spriteType = corneredTiled + alpha = 0.5 + } + + modify_texture = { + texture = "gfx/interface/component_masks/mask_scratches.dds" + blend_mode = alphamultiply + spriteType = corneredTiled + } + } + + #background = { + #visible = "[DynastyHouse.GetHeadOfHouse.IsPlayer]" + #using = Background_Area_Border + #using = Background_Frame_Gold + #} +} + +template Background_Area_Admin_Purple { + texture = "gfx/interface/colors/grey.dds" + + using = Mask_Rough_Edges + color = { 0.5 0.1 0.5 0.6 } + + modify_texture = { + blend_mode = alphaMultiply + texture = "gfx/interface/component_masks/mask_fade_horizontal_extended.dds" + alpha = 0.5 + } + modify_texture = { + texture = "gfx/interface/component_masks/mask_clouds.dds" + blend_mode = alphamultiply + spriteType = corneredTiled + alpha = 0.5 + } + + modify_texture = { + texture = "gfx/interface/component_masks/mask_scratches.dds" + blend_mode = alphamultiply + spriteType = corneredTiled + } +} + +template Background_Area_Admin_Blue { + texture = "gfx/interface/colors/grey.dds" + + using = Mask_Rough_Edges + color = { 0 0.635 0.9 0.3 } + + modify_texture = { + blend_mode = alphaMultiply + texture = "gfx/interface/component_masks/mask_fade_horizontal_extended.dds" + alpha = 0.5 + } + modify_texture = { + texture = "gfx/interface/component_masks/mask_clouds.dds" + blend_mode = alphamultiply + spriteType = corneredTiled + alpha = 0.5 + } + + modify_texture = { + texture = "gfx/interface/component_masks/mask_scratches.dds" + blend_mode = alphamultiply + spriteType = corneredTiled + } +} + +template Background_Area_Admin_Orange { + texture = "gfx/interface/colors/grey.dds" + + using = Mask_Rough_Edges + color = { 1 0.5 0.1 0.6 } + + modify_texture = { + blend_mode = alphaMultiply + texture = "gfx/interface/component_masks/mask_fade_horizontal_extended.dds" + alpha = 0.5 + } + + modify_texture = { + texture = "gfx/interface/component_masks/mask_clouds.dds" + blend_mode = alphamultiply + spriteType = corneredTiled + alpha = 0.5 + } + + modify_texture = { + texture = "gfx/interface/component_masks/mask_scratches.dds" + blend_mode = alphamultiply + spriteType = corneredTiled + } +} + +template Expand_Admin_Themes { + on_start = "[GetVariableSystem.Set( 'admin_gov_unassigned_counties_list', 'true' )]" + on_start = "[GetVariableSystem.Set( 'admin_gov_assigned_duchy_themes_list', 'true' )]" + on_start = "[GetVariableSystem.Set( 'admin_gov_unassigned_duchy_themes_list', 'true' )]" +} diff --git a/history/provinces/e_italy.txt b/history/provinces/e_italy.txt index ebe414ec..ef8acf5b 100644 --- a/history/provinces/e_italy.txt +++ b/history/provinces/e_italy.txt @@ -258,10 +258,10 @@ holding = castle_holding } 2533 = { - holding = none + holding = monotown_holding } 2490 = { - holding = none + holding = monotown_holding } ###c_ferrara 2527 = { @@ -672,7 +672,7 @@ 2543 = { culture = tuscan religion = roman_catholic - holding = castle_holding + holding = city_holding special_building = duomo_florence_n3ow_01 1066.1.1 = { buildings = { @@ -684,7 +684,7 @@ 2559 = { holding = none 1178.1.1 = { - holding = city_holding + holding = monotown_holding } } 2551 = { @@ -700,7 +700,7 @@ 2537 = { culture = tuscan religion = roman_catholic - holding = castle_holding + holding = city_holding } 2561 = { holding = church_holding @@ -709,7 +709,7 @@ 2554 = { culture = tuscan religion = roman_catholic - holding = castle_holding + holding = city_holding } 2564 = { holding = city_holding @@ -724,7 +724,7 @@ 2560 = { culture = tuscan religion = roman_catholic - holding = castle_holding + holding = city_holding special_building = siena_university_01 } 2565 = { @@ -741,13 +741,13 @@ } } 2558 = { - holding = castle_holding + holding = city_holding culture = tuscan religion = roman_catholic } ###c_pisa 2557 = { - holding = castle_holding + holding = city_holding culture = tuscan religion = roman_catholic } @@ -767,7 +767,7 @@ 2538 = { culture = tuscan religion = roman_catholic - holding = castle_holding + holding = city_holding } 2545 = { holding = none @@ -779,7 +779,7 @@ 2569 = { culture = tuscan religion = roman_catholic - holding = castle_holding + holding = city_holding } 2562 = { holding = none diff --git a/localization/english/replace/council_tasks_l_english.yml b/localization/english/replace/council_tasks_l_english.yml index 92e611df..202e13ec 100644 --- a/localization/english/replace/council_tasks_l_english.yml +++ b/localization/english/replace/council_tasks_l_english.yml @@ -338,10 +338,25 @@ DEVELOP_COUNTY_PERK_BONUS_VALUE:1 "$planned_cultivation_perk_name$" STEWARD_PROMOTE_CULTURE_COMMUNAL_IDENTITY_BONUS_MODIFIER:2 "[councillor_liege.GetFaith.GetName] — Communal Identity" STEWARD_PROMOTE_CULTURE_EASIER_TO_CONVERT_CULTURE_IN_SAME_FAITH_MOUNTAINS_BONUS:0 "[councillor_liege.GetFaith.GetName] — [GetFaithDoctrine('tenet_cthonic_redoubts').GetBaseName] in Mountains" + COURT_CHAPLAIN_CONVERSION_HARDER_TO_CONVERT_FAITH_AWAY_IN_HILLS_FORESTS_MALUS_MODIFIER:0 "[councillor_liege.GetFaith.GetName] — [GetFaithDoctrine('against_all_odds').GetBaseName] in Hills and Forests" STEWARD_PROMOTE_CULTURE_INNOVATION_BONUS_EAST_SETTLING:1 "[councillor_liege.GetCulture.GetName] — Ostsiedlung" STEWARD_PROMOTE_CULTURE_LOCAL_TRADITIONS_RESPECTED:1 "Local Traditions Respected" STEWARD_PROMOTE_CULTURE_SHUUBIYYA:0 "Shu'ubiyya" STEWARD_PROMOTE_CULTURE_DEVELOPMENT_PENALTY:1 "From [development|E]" + STEWARD_PROMOTE_CULTURE_LOW_CONTROL_PENALTY:0 "Low County Control Penalty" + STEWARD_PROMOTE_CULTURE_MEDIUM_CONTROL_PENALTY:0 "Medium County Control Penalty" + STEWARD_PROMOTE_CULTURE_HIGH_CONTROL_PENALTY:0 "High County Control Penalty" + STEWARD_PROMOTE_CULTURE_HIGH_CONTROL_BONUS:0 "Total County Control Bonus" + STEWARD_PROMOTE_CULTURE_ABSOLUTE_CONTROL_BONUS:0 "Absolute County Control Bonus" + STEWARD_PROMOTE_CULTURE_HIGH_TERRAIN_PENALTY:0 "Extreme Terrain Penalty" + STEWARD_PROMOTE_CULTURE_LOW_TERRAIN_PENALTY:0 "Difficult Terrain Penalty" + STEWARD_PROMOTE_CULTURE_LOW_FERVOUR_BONUS:0 "Low County Faith Fervour Bonus" + STEWARD_PROMOTE_FAITH_MEDIUM_FERVOUR_PENALTY:0 "Medium County Faith Fervour Penalty" + STEWARD_CONVERT_FAITH_HIGH_FERVOUR_PENALTY:0 "High County Faith Fervour Penalty" + STEWARD_CONVERT_FAITH_ZEALOT_FERVOUR_PENALTY:0 "Zealous County Faith Fervour Penalty" + STEWARD_PROMOTE_CULTURE_LOCAL_TRADITIONS_RESPECTED:1 "Local Traditions Respected" + STEWARD_PROMOTE_CULTURE_SHUUBIYYA:0 "Shu'ubiyya" + STEWARD_PROMOTE_CULTURE_DEVELOPMENT_PENALTY:1 "From [development|E]" DEVELOP_COUNTY_TRIBAL_PENALTY_VALUE:1 "Tribal Government" steward_develop_county_tribal_penalty_modifier:0 "Tribal Government" STEWARD_PROMOTE_CULTURE_RECLAIMING_BRITANNIA:0 "Reclaim Britannia" diff --git a/localization/english/replace/prepublic_loc_l_english.yml b/localization/english/replace/prepublic_loc_l_english.yml index ed9a70bb..3d35d77b 100644 --- a/localization/english/replace/prepublic_loc_l_english.yml +++ b/localization/english/replace/prepublic_loc_l_english.yml @@ -49,6 +49,14 @@ farmstead: "Farmstead" farmstead_BUILDINGS: "[farmstead_i|E][farmstead|E]" + saxon_elective_succession_law:1 "Peasant Elective" + saxon_elective_succession_law_subname:0 "Farmer's Elective" + saxon_elective_succession_law_effects:1 "The [ruler|E] and all direct, adult [de_jure|E] vassals of one or two [ranks|E] below the [title|E] can nominate a [title_heir|E] from the most [powerful_vassal|E] amongst them and the ruler's [legitimate|E] children." + saxon_elective_candidates:0 "Children, Councillors, and Vassals" + saxon_elective_candidates_tooltip:1 "In order to be a valid Candidate under Farmer's Elective a character must be either a Child of the Current Ruler, a Councillor of said ruler or a vassal of said ruler." + saxon_elective_electors:0 "Representatives" + saxon_elective_electors_tooltip:0 "In order to be a valid Voter under Farmer's Elective a character must be the Current Ruler, a Councillor of said ruler or a vassal of said ruler." + farmstead_CONCEPT: "[farmstead_i|E][farmstead|E]" domicile_farmstead: "Farmstead of the [scoped_farmer.GetHouse.GetNameNoTooltip]'s" diff --git a/localization/english/replace/urepublic_loc_l_english.yml b/localization/english/replace/urepublic_loc_l_english.yml new file mode 100644 index 00000000..a34bb911 --- /dev/null +++ b/localization/english/replace/urepublic_loc_l_english.yml @@ -0,0 +1,158 @@ +l_english: + + urbanrepublic_government:0 "Urban Republic" + urbanrepublic_government_with_icon: "@government_type_urbanrepublic! $urbanrepublic_government$" + urbanrepublic_government_adjective:0 "Urban Republic" + urbanrepublic_government_realm:0 "Urban Republic" + urbanrepublic_government_desc:0 "\n$game_concept_urbanrepublic_government_desc$" + game_concept_urbanrepublic_government:0 "Urban Republic" + game_concept_urbanrepublic_government_desc:0 "A $Urban Republic$ is a region of land in which the Burghers control the reigns of government directing its efforts towards profits ." + game_concept_palace:0 "Palace" + game_concept_palace_desc:0 "A Grand Palatial Estate where a Burgher resides." + urbanrepublic_government_obligations:1 "Urban Republic [obligations|E]" + urbanrepublic_vassal: "Urban Republic" + urbanrepublic_vassal_desc: "$game_concept_urbanrepublic_government_desc$" + palace_main_01_domicile_building: "Palace" + palace_main_02_domicile_building: "Palace" + palace_main_03_domicile_building: "Palace" + palace_main_04_domicile_building: "Palace" + palace_main_05_domicile_building: "Palace" + urbanrepublic_icon_concept: "[urbanrepublic_i|E]" + game_concept_urbanrepublic_i: "@government_type_urbanrepublic!" + game_concept_palace_i: "@domicile_palace_icon!" + barony_urbanrepublic: "Town" + baron_urbanrepublic_male: "Mayor" + baron_urbanrepublic_female: "Mayor" + county_urbanrepublic: "City" + count_urbanrepublic_male: "Lord-Mayor" + count_urbanrepublic_female: "Lady-Mayor" + duchy_urbanrepublic: "Urban Republic" + duke_urbanrepublic_male: "Lord-Prime-Minister" + duke_urbanrepublic_female: "Lady-Prime-Minister" + kingdom_urbanrepublic: "Most Grand Urban Republic" + king_urbanrepublic_male: "Lord-High-Minister" + king_urbanrepublic_female: "Lady-High Minister" + empire_urbanrepublic: "Most Majestic Urban Republic" + emperor_urbanrepublic_male: "Lord-Supreme-Minister" + emperor_urbanrepublic_female: "Lady-Supreme-Minister" + + government_locked_to_elective:0 "Government is locked to Elective" + government_is_prepublic:0 "Has access to a [palace_i|E][palace|E]" + palace_domicile_title: "Palace" + palace_type: "Palace" + palace_type_tooltip: "[palace_i|E][palace|E]" + palace_domicile_type: "Palace" + palace_domicile_type_possessive: "Palace's" + palace_domicile_type_tooltip: "[palace_i|E][palace|E]" + palace: "Palace" + palace_BUILDINGS: "[palace_i|E][palace|E]" + monotown_holding: "Mono-Industry Town" + monotown_holding_concept_key: "[monotown_holding|E]" + tooltip_urbanrep_vote_strength_influence:0 "Political Influence: $VALUE|=+0$" + + + domicile_palace: "Palace of the [scoped_merchant.GetHouse.GetNameNoTooltip]'s" + + urban_elective_succession_law:1 "Burgher Elective" + urban_elective_succession_law_subname:0 "Burgher's Elective" + urban_elective_succession_law_effects:1 "The [ruler|E] and all direct, adult [de_jure|E] vassals of one or two [ranks|E] below the [title|E] can nominate a [title_heir|E] from the most [powerful_vassal|E] amongst them and the ruler's [legitimate|E] children." + urban_elective_candidates:0 "Children, Councillors, and Vassals" + urban_elective_candidates_tooltip:1 "In order to be a valid Candidate under Burgher's Elective a character must be either a Child of the Current Ruler, a Councillor of said ruler or a vassal of said ruler." + urban_elective_electors:0 "Representatives" + urban_elective_electors_tooltip:0 "In order to be a valid Voter under Burgher's Elective a character must be the Current Ruler, a Councillor of said ruler or a vassal of said ruler." + + government_uses_monotowns:0 "Has access to the unique [monotown_holding|E] holding, a specialised holding that produces significant [barter_goods_i|E][trade_goods|E]" + government_has_citizen_militia:0 "Has access to a Citizen Militia, an improved version of the Peasant Militia" + government_elections_and_tax_influenced_by_influence:0 "The [influence_i|E][influence_level|E] of a character will impact his [voter_strength|E] in elections and [vassal_taxes|E] they receive" + + building_type_monotown_01: "Mono-Industry Town" + building_monotown_01: "Mono-Industry Town" + building_monotown_01_desc: "A settlement dedicated to the production of a specific trade good it's economy is entirely devoted to the production of that single good, whatever it is." + building_type_monotown_02: "Mono-Industry Town" + building_monotown_02: "Mono-Industry Town" + building_monotown_02_desc: "A settlement dedicated to the production of a specific trade good it's economy is entirely devoted to the production of that single good, whatever it is." + building_type_monotown_03: "Mono-Industry Town" + building_monotown_03: "Mono-Industry Town" + building_monotown_03_desc: "A settlement dedicated to the production of a specific trade good it's economy is entirely devoted to the production of that single good, whatever it is." + building_type_monotown_04: "Mono-Industry Town" + building_monotown_04: "Mono-Industry Town" + building_monotown_04_desc: "A settlement dedicated to the production of a specific trade good it's economy is entirely devoted to the production of that single good, whatever it is." + game_concept_monotown_holding: "Mono-Industry Town + game_concept_monotown_holding_desc: "A settlement dedicated to the production of a specific trade good it's economy is entirely devoted to the production of that single good, whatever it is." + NEOW_citizen_militia: "Citizen Militia" + NEOW_citizen_militia_flavor: "Citizen Militia are well trained if not well equipped troops of the Cities." + + + palace_CONCEPT: "[palace_i|E][palace|E]" + + #culture_parameter_use_farmer_republics: "This Culture uses [urbanrepublic_i|E][urbanrepublic_government|E]s instead of Republics" + #tradition_farmer_republics_name:0 "Urban Freedom" + #tradition_farmer_republics_desc:0 "This culture has refused the return of feudalism and its farmers wont be subjegated by the noble." + + living_quarters_palace_01_domicile_building: "Fine Living Quarters" + living_quarters_palace_02_domicile_building: "Luxurious Bedchambers" + living_quarters_palace_03_domicile_building: "Statuary Courtyards" + living_quarters_palace_04_domicile_building: "Sumptuous Decorations" + + trophy_room_palace_01_domicile_building: "Trophy Room" + trophy_room_palace_02_domicile_building: "Trophy Displays" + trophy_room_palace_03_domicile_building: "War Table" + trophy_room_palace_04_domicile_building: "Weapon Collection" + + office_palace_01_domicile_building: "Private Study" + office_palace_02_domicile_building: "Courier's Office" + office_palace_03_domicile_building: "Clerk's Office" + office_palace_04_domicile_building: "Administrative Office" + + servants_quarters_palace_01_domicile_building: "Servant's Quarters" + servants_quarters_palace_02_domicile_building: "Secluded Hallways" + servants_quarters_palace_03_domicile_building: "Generous Staff Housing" + servants_quarters_palace_04_domicile_building: "Chamberlain's Offices" + + library_palace_01_domicile_building: "Book Collection" + library_palace_02_domicile_building: "Library" + library_observatory_palace_03_domicile_building: "Observatory" + library_observatory_palace_04_domicile_building: "Famed Observatory" + library_education_palace_03_domicile_building: "Tutor's Office" + library_education_palace_04_domicile_building: "Education Hall" + + bath_palace_01_domicile_building: "Bath" + bath_palace_02_domicile_building: "Bathhouse" + bath_palace_03_domicile_building: "Steam Baths" + bath_palace_04_domicile_building: "Pleasure Houses" + + guest_room_palace_01_domicile_building: "Guest Room" + guest_room_palace_02_domicile_building: "Guest Chambers" + guest_room_palace_03_domicile_building: "Large Guest Chambers" + guest_room_palace_04_domicile_building: "Visitor Wing" + guest_room_palace_05_domicile_building: "Spacious Visitor Wing" + guest_room_palace_06_domicile_building: "Luxurious Visitor Wing" + + wine_cellar_palace_01_domicile_building: "Wine Room" + wine_cellar_palace_02_domicile_building: "Wine Cellar" + wine_cellar_palace_03_domicile_building: "Immense Wine Cellar" + + courtyard_palace_01_domicile_building: "Courtyard" + courtyard_palace_02_domicile_building: "Large Courtyard" + courtyard_palace_03_domicile_building: "Grand Courtyard" + courtyard_palace_04_domicile_building: "Majestic Courtyard" + + prison_palace_01_domicile_building: "Prison Cell" + prison_palace_02_domicile_building: "Prison" + prison_palace_03_domicile_building: "Oubliette" + prison_palace_04_domicile_building: "Torture Chamber" + + reception_hall_palace_01_domicile_building: "Reception Hall" + reception_hall_palace_02_domicile_building: "Grand Reception Hall" + reception_hall_palace_03_domicile_building: "Grandiose Pavilion" + reception_hall_palace_04_domicile_building: "Regal Ballroom" + reception_hall_palace_05_domicile_building: "Imperial Belvedere" + + cabinet_of_curiosities_palace_01_domicile_building: "Cabinet of Curiosities" + cabinet_of_curiosities_palace_02_domicile_building: "Hall of Wonders" + cabinet_of_curiosities_palace_03_domicile_building: "Gallery of Marvels" + + grand_solar_palace_01_domicile_building: "Rustic Hearth" + grand_solar_palace_02_domicile_building: "Family Sitting Rooms" + grand_solar_palace_03_domicile_building: "Spacious Family Solar" + grand_solar_palace_04_domicile_building: "Salon of Heirlooms" \ No newline at end of file