N3OW/common/buildings/00_city_buildings.txt

2509 lines
74 KiB
Text
Raw Normal View History

2026-02-19 22:52:49 +00:00
@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"
city_01 = {
construction_time = slow_construction_time
2026-02-22 15:33:46 +00:00
effect_desc = city_1_effect_desc
2026-02-19 22:52:49 +00:00
#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
}
}
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_2
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_2
travel_danger = -10
}
province_culture_modifier = {
parameter = city_buildings_more_powerful
levy_size = 0.25
tax_mult = 0.01
}
county_culture_modifier = {
parameter = city_buildings_more_county_opinion
county_opinion_add = 5
}
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
}
county_culture_modifier = {
parameter = city_buildings_more_powerful
development_growth_factor = 0.05
}
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
}
province_terrain_modifier = {
parameter = coastal_holdings_give_defensive_bonus
is_coastal = yes
defender_holding_advantage = 2
}
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
}
2026-03-10 00:41:50 +00:00
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -1
}
2026-02-19 22:52:49 +00:00
character_modifier = {
men_at_arms_cap = 1
}
flag = city
next_building = city_02
type_icon = "icon_building_guild_halls.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 = city_01
}
}
}
}
modifier = {
factor = 5
scope:holder.culture = { has_cultural_parameter = ai_more_likely_to_city }
}
}
}
city_02 = {
construction_time = slow_construction_time
2026-02-22 15:33:46 +00:00
2026-02-19 22:52:49 +00:00
#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" = 1 } }
}
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1} }
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
graphical_cultures = { mediterranean_building_gfx }
}
### 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" soundparameter = { "Tier" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
graphical_cultures = { byzantine_building_gfx caucasian_building_gfx }
graphical_regions = { graphical_mediterranean }
}
#Steppe fallbacks
### 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" = 1 } }
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" = 1 } }
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" = 1 } }
graphical_cultures = { steppe_building_gfx }
graphical_regions = { graphical_western }
}
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
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" = 1 } }
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
}
}
}
cost_gold = main_building_tier_2_cost
levy = poor_building_levy_tier_4
max_garrison = normal_building_max_garrison_tier_2
garrison_reinforcement_factor = building_garrison_reinforcement_factor_tier_2
province_modifier = {
monthly_income = good_building_tax_tier_4
travel_danger = -12
}
province_culture_modifier = {
parameter = city_buildings_more_powerful
levy_size = 0.5
tax_mult = 0.02
}
county_culture_modifier = {
parameter = city_buildings_more_county_opinion
county_opinion_add = 10
}
province_terrain_modifier = {
parameter = maritime_mercantilism_coastal_holdings
is_coastal = yes
tax_mult = maritime_mercantilism_coastal_holdings_value
}
county_culture_modifier = {
parameter = city_buildings_more_powerful
development_growth_factor = 0.1
}
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
}
province_terrain_modifier = {
parameter = coastal_holdings_give_defensive_bonus
is_coastal = yes
defender_holding_advantage = 3
}
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
}
2026-03-10 00:41:50 +00:00
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -2
}
2026-02-19 22:52:49 +00:00
flag = city
next_building = city_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
}
}
}
city_03 = {
construction_time = slow_construction_time
2026-02-22 15:33:46 +00:00
effect_desc = city_2_effect_desc
2026-02-19 22:52:49 +00:00
#Meshes (Indented for readability)
asset = {
type = pdxmesh
names = {
"building_western_city_02_mesh"
}
illustration = @holding_illustration_western
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 2 } }
}
asset = {
type = pdxmesh
names = {
"building_western_city_02_mena_mesh"
}
illustration = @holding_illustration_mena
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 2 } }
graphical_regions = { graphical_mena }
}
asset = {
type = pdxmesh
names = {
"building_western_city_02_indian_mesh"
}
illustration = @holding_illustration_india
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 2 } }
graphical_regions = { graphical_india }
}
asset = {
type = pdxmesh
names = {
"building_western_city_02_mediterranean_mesh"
}
illustration = @holding_illustration_mediterranean
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 2 } }
graphical_regions = { graphical_mediterranean }
}
asset = {
type = pdxmesh
names = {
"building_mena_city_02_western_mesh"
}
illustration = @holding_illustration_western
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx }
}
asset = {
type = pdxmesh
names = {
"building_mena_city_02_mesh"
}
illustration = @holding_illustration_mena
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx }
graphical_regions = { graphical_mena }
}
asset = {
type = pdxmesh
names = {
"building_mena_city_02_indian_mesh"
}
illustration = @holding_illustration_india
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx }
graphical_regions = { graphical_india }
}
asset = {
type = pdxmesh
names = {
"building_mena_city_02_mediterranean_mesh"
}
illustration = @holding_illustration_mediterranean
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx }
graphical_regions = { graphical_mediterranean }
}
asset = {
type = pdxmesh
names = {
"building_india_city_02_western_mesh"
}
illustration = @holding_illustration_western
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { indian_building_gfx tibetan_building_gfx }
}
asset = {
type = pdxmesh
names = {
"building_india_city_02_mena_mesh"
}
illustration = @holding_illustration_mena
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { indian_building_gfx tibetan_building_gfx }
graphical_regions = { graphical_mena }
}
asset = {
type = pdxmesh
names = {
"building_india_city_02_mesh"
}
illustration = @holding_illustration_india
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { indian_building_gfx tibetan_building_gfx }
graphical_regions = { graphical_india }
}
asset = {
type = pdxmesh
names = {
"building_india_city_02_mediterranean_mesh"
}
illustration = @holding_illustration_mediterranean
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { indian_building_gfx tibetan_building_gfx }
graphical_regions = { graphical_mediterranean }
}
asset = {
type = pdxmesh
names = {
"building_mediterranean_city_02_western_mesh"
}
illustration = @holding_illustration_western
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { mediterranean_building_gfx }
}
asset = {
type = pdxmesh
names = {
"building_mediterranean_city_02_mena_mesh"
}
illustration = @holding_illustration_mena
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { mediterranean_building_gfx }
graphical_regions = { graphical_mena }
}
asset = {
type = pdxmesh
names = {
"building_mediterranean_city_02_indian_mesh"
}
illustration = @holding_illustration_india
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { mediterranean_building_gfx }
graphical_regions = { graphical_india }
}
asset = {
type = pdxmesh
names = {
"building_mediterranean_city_02_mesh"
}
illustration = @holding_illustration_mediterranean
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { mediterranean_building_gfx }
graphical_regions = { graphical_mediterranean }
}
### FP1 Norse ###
asset = {
type = pdxmesh
names = {
"fp1_building_norse_city_02_a_mesh"
}
requires_dlc_flag = the_northern_lords
illustration = @holding_illustration_norse
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { norse_building_gfx }
}
asset = {
type = pdxmesh
names = {
"fp1_building_norse_city_02_mena_mesh"
}
requires_dlc_flag = the_northern_lords
illustration = @holding_illustration_norse
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { norse_building_gfx }
graphical_regions = { graphical_mena }
}
asset = {
type = pdxmesh
names = {
"fp1_building_norse_city_02_mediterranean_mesh"
}
requires_dlc_flag = the_northern_lords
illustration = @holding_illustration_norse
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { norse_building_gfx }
graphical_regions = { graphical_mediterranean }
}
asset = {
type = pdxmesh
names = {
"fp1_building_norse_city_02_indian_mesh"
}
requires_dlc_flag = the_northern_lords
illustration = @holding_illustration_norse
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { norse_building_gfx }
graphical_regions = { graphical_india }
}
### FP2 Iberian ###
asset = {
type = pdxmesh
name = "fp2_building_iberian_city_02_mesh"
requires_dlc_flag = the_fate_of_iberia
illustration = @holding_illustration_iberian
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/iberian_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { iberian_building_gfx }
graphical_regions = { graphical_mediterranean }
}
### FP3 Iranian ###
asset = {
type = pdxmesh
name = "fp3_building_persian_city_02_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" = 2 } }
graphical_cultures = { iranian_building_gfx }
graphical_regions = { graphical_mena }
}
asset = {
type = pdxmesh
name = "fp3_building_persian_city_02_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" = 2 } }
graphical_cultures = { iranian_building_gfx }
graphical_regions = { graphical_india }
}
### EP3 Byzantine ###
asset = {
type = pdxmesh
name = "ep3_byzantine_city_02_mesh"
requires_dlc_flag = roads_to_power
illustration = @holding_illustration_byzantine
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { byzantine_building_gfx caucasian_building_gfx }
graphical_regions = { graphical_mediterranean }
}
#Steppe fallbacks
#in steppe
asset = {
type = pdxmesh
names = {
"building_mena_city_02_mesh"
}
illustration = @holding_illustration_mena
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { steppe_building_gfx }
graphical_regions = { graphical_steppe }
}
asset = {
type = pdxmesh
names = {
"building_mena_city_02_mesh"
}
illustration = @holding_illustration_mena
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { steppe_building_gfx }
graphical_regions = { graphical_siberia }
}
#Elsewhere
asset = {
type = pdxmesh
names = {
"building_western_city_02_mesh"
}
illustration = @holding_illustration_western
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { steppe_building_gfx }
graphical_regions = { graphical_western }
}
asset = {
type = pdxmesh
names = {
"building_mena_city_02_mesh"
}
illustration = @holding_illustration_mena
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { steppe_building_gfx }
graphical_regions = { graphical_mena }
}
asset = {
type = pdxmesh
names = {
"building_india_city_02_mesh"
}
illustration = @holding_illustration_india
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { steppe_building_gfx }
graphical_regions = { graphical_india }
}
asset = {
type = pdxmesh
name = "tgp_building_chinese_city_02_mesh"
requires_dlc_flag = all_under_heaven
illustration = @holding_illustration_china
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/chinese_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { steppe_building_gfx }
graphical_regions = { graphical_east_asia }
}
asset = {
type = pdxmesh
names = {
"building_mediterranean_city_02_mesh"
}
illustration = @holding_illustration_mediterranean
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { steppe_building_gfx }
graphical_regions = { graphical_mediterranean }
}
# TGP Southeast Asia
asset = {
type = pdxmesh
name = "tgp_building_se_asia_city_02_a_mesh"
requires_dlc_flag = all_under_heaven
illustration = @holding_illustration_seasia
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/sea_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { southeast_asian_building_gfx }
graphical_regions = { graphical_east_asia graphical_india }
}
asset = {
type = pdxmesh
name = "tgp_building_chinese_city_02_mesh"
requires_dlc_flag = all_under_heaven
illustration = @holding_illustration_china
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/chinese_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { chinese_building_gfx }
graphical_regions = { graphical_east_asia graphical_india }
}
# TGP Japan
asset = {
type = pdxmesh
name = "tgp_building_japanese_city_02_mesh"
requires_dlc_flag = all_under_heaven
illustration = @holding_illustration_japan
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/japanese_city" soundparameter = { "Tier" = 2 } }
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
}
}
}
cost_gold = main_building_tier_3_cost
next_building = city_04
levy = poor_building_levy_tier_6
max_garrison = normal_building_max_garrison_tier_3
garrison_reinforcement_factor = building_garrison_reinforcement_factor_tier_3
province_modifier = {
monthly_income = good_building_tax_tier_6
travel_danger = -14
}
province_culture_modifier = {
parameter = city_buildings_more_powerful
levy_size = 0.75
tax_mult = 0.03
}
county_culture_modifier = {
parameter = city_buildings_more_county_opinion
county_opinion_add = 15
}
province_terrain_modifier = {
parameter = maritime_mercantilism_coastal_holdings
is_coastal = yes
tax_mult = maritime_mercantilism_coastal_holdings_value
}
county_culture_modifier = {
parameter = city_buildings_more_powerful
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
}
province_terrain_modifier = {
parameter = coastal_holdings_give_defensive_bonus
is_coastal = yes
defender_holding_advantage = 4
}
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
}
2026-03-10 00:41:50 +00:00
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -3
}
2026-02-19 22:52:49 +00:00
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
}
}
}
city_04 = {
construction_time = slow_construction_time
#Meshes (Indented for readability)
asset = {
type = pdxmesh
names = {
"building_western_city_02_mesh"
}
illustration = @holding_illustration_western
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 2 } }
}
asset = {
type = pdxmesh
names = {
"building_western_city_02_mena_mesh"
}
illustration = @holding_illustration_mena
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 2 } }
graphical_regions = { graphical_mena }
}
asset = {
type = pdxmesh
names = {
"building_western_city_02_indian_mesh"
}
illustration = @holding_illustration_india
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 2 } }
graphical_regions = { graphical_india }
}
asset = {
type = pdxmesh
names = {
"building_western_city_02_mediterranean_mesh"
}
illustration = @holding_illustration_mediterranean
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 2 } }
graphical_regions = { graphical_mediterranean }
}
asset = {
type = pdxmesh
names = {
"building_mena_city_02_western_mesh"
}
illustration = @holding_illustration_western
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx }
}
asset = {
type = pdxmesh
names = {
"building_mena_city_02_mesh"
}
illustration = @holding_illustration_mena
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx }
graphical_regions = { graphical_mena }
}
asset = {
type = pdxmesh
names = {
"building_mena_city_02_indian_mesh"
}
illustration = @holding_illustration_india
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx }
graphical_regions = { graphical_india }
}
asset = {
type = pdxmesh
names = {
"building_mena_city_02_mediterranean_mesh"
}
illustration = @holding_illustration_mediterranean
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { mena_building_gfx arabic_group_building_gfx berber_group_building_gfx }
graphical_regions = { graphical_mediterranean }
}
asset = {
type = pdxmesh
names = {
"building_india_city_02_western_mesh"
}
illustration = @holding_illustration_western
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { indian_building_gfx tibetan_building_gfx }
}
asset = {
type = pdxmesh
names = {
"building_india_city_02_mena_mesh"
}
illustration = @holding_illustration_mena
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { indian_building_gfx tibetan_building_gfx }
graphical_regions = { graphical_mena }
}
asset = {
type = pdxmesh
names = {
"building_india_city_02_mesh"
}
illustration = @holding_illustration_india
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { indian_building_gfx tibetan_building_gfx }
graphical_regions = { graphical_india }
}
asset = {
type = pdxmesh
names = {
"building_india_city_02_mediterranean_mesh"
}
illustration = @holding_illustration_mediterranean
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { indian_building_gfx tibetan_building_gfx }
graphical_regions = { graphical_mediterranean }
}
asset = {
type = pdxmesh
names = {
"building_mediterranean_city_02_western_mesh"
}
illustration = @holding_illustration_western
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { mediterranean_building_gfx }
}
asset = {
type = pdxmesh
names = {
"building_mediterranean_city_02_mena_mesh"
}
illustration = @holding_illustration_mena
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { mediterranean_building_gfx }
graphical_regions = { graphical_mena }
}
asset = {
type = pdxmesh
names = {
"building_mediterranean_city_02_indian_mesh"
}
illustration = @holding_illustration_india
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { mediterranean_building_gfx }
graphical_regions = { graphical_india }
}
asset = {
type = pdxmesh
names = {
"building_mediterranean_city_02_mesh"
}
illustration = @holding_illustration_mediterranean
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { mediterranean_building_gfx }
}
### FP1 Norse ###
asset = {
type = pdxmesh
names = {
"fp1_building_norse_city_02_a_mesh"
}
requires_dlc_flag = the_northern_lords
illustration = @holding_illustration_norse
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { norse_building_gfx }
}
asset = {
type = pdxmesh
names = {
"fp1_building_norse_city_02_mena_mesh"
}
requires_dlc_flag = the_northern_lords
illustration = @holding_illustration_norse
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { norse_building_gfx }
graphical_regions = { graphical_mena }
}
asset = {
type = pdxmesh
names = {
"fp1_building_norse_city_02_mediterranean_mesh"
}
requires_dlc_flag = the_northern_lords
illustration = @holding_illustration_norse
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { norse_building_gfx }
graphical_regions = { graphical_mediterranean }
}
asset = {
type = pdxmesh
names = {
"fp1_building_norse_city_02_indian_mesh"
}
requires_dlc_flag = the_northern_lords
illustration = @holding_illustration_norse
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/nordic_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { norse_building_gfx }
graphical_regions = { graphical_india }
}
### FP2 Iberian ###
asset = {
type = pdxmesh
name = "fp2_building_iberian_city_02_mesh"
requires_dlc_flag = the_fate_of_iberia
illustration = @holding_illustration_iberian
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/iberian_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { iberian_building_gfx }
graphical_regions = { graphical_mediterranean }
}
### FP3 Iranian ###
asset = {
type = pdxmesh
name = "fp3_building_persian_city_02_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" = 2 } }
graphical_cultures = { iranian_building_gfx }
graphical_regions = { graphical_mena }
}
asset = {
type = pdxmesh
name = "fp3_building_persian_city_02_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" = 2 } }
graphical_cultures = { iranian_building_gfx }
graphical_regions = { graphical_india }
}
### EP3 Byzantine ###
asset = {
type = pdxmesh
name = "ep3_byzantine_city_02_mesh"
requires_dlc_flag = roads_to_power
illustration = @holding_illustration_byzantine
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { byzantine_building_gfx caucasian_building_gfx }
graphical_regions = { graphical_mediterranean }
}
#Steppe fallbacks
#In steppe
asset = {
type = pdxmesh
names = {
"building_mena_city_02_mesh"
}
illustration = @holding_illustration_mena
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 3 } }
graphical_cultures = { steppe_building_gfx }
graphical_regions = { graphical_steppe }
}
asset = {
type = pdxmesh
names = {
"building_mena_city_02_mesh"
}
illustration = @holding_illustration_mena
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 3 } }
graphical_cultures = { steppe_building_gfx }
graphical_regions = { graphical_siberia }
}
#Elsewhere
asset = {
type = pdxmesh
names = {
"building_western_city_02_mesh"
}
illustration = @holding_illustration_western
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/western_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { steppe_building_gfx }
graphical_regions = { graphical_western }
}
asset = {
type = pdxmesh
names = {
"building_mena_city_02_mesh"
}
illustration = @holding_illustration_mena
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mena_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { steppe_building_gfx }
graphical_regions = { graphical_mena }
}
asset = {
type = pdxmesh
names = {
"building_india_city_02_mesh"
}
illustration = @holding_illustration_india
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/indian_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { steppe_building_gfx }
graphical_regions = { graphical_india }
}
asset = {
type = pdxmesh
names = {
"building_mediterranean_city_02_mesh"
}
illustration = @holding_illustration_mediterranean
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/mediterranean_city" soundparameter = { "Tier" = 2 } }
graphical_cultures = { steppe_building_gfx }
graphical_regions = { graphical_mediterranean }
}
asset = {
type = pdxmesh
name = "tgp_building_chinese_city_02_mesh"
requires_dlc_flag = all_under_heaven
illustration = @holding_illustration_china
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/chinese_city" soundparameter = { "Tier" = 3 } }
graphical_cultures = { steppe_building_gfx }
graphical_regions = { graphical_east_asia }
}
# TGP Southeast Asia
asset = {
type = pdxmesh
name = "tgp_building_se_asia_city_02_a_mesh"
requires_dlc_flag = all_under_heaven
illustration = @holding_illustration_seasia
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/sea_city" soundparameter = { "Tier" = 3 } }
graphical_cultures = { southeast_asian_building_gfx }
graphical_regions = { graphical_east_asia graphical_india }
}
asset = {
type = pdxmesh
name = "tgp_building_chinese_city_02_mesh"
requires_dlc_flag = all_under_heaven
illustration = @holding_illustration_china
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/chinese_city" soundparameter = { "Tier" = 3 } }
graphical_cultures = { chinese_building_gfx }
graphical_regions = { graphical_east_asia graphical_india }
}
# TGP Japan
asset = {
type = pdxmesh
name = "tgp_building_japanese_city_02_mesh"
requires_dlc_flag = all_under_heaven
illustration = @holding_illustration_japan
soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/City/japanese_city" soundparameter = { "Tier" = 3 } }
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
}
}
}
cost_gold = main_building_tier_4_cost
levy = poor_building_levy_tier_8
max_garrison = normal_building_max_garrison_tier_7
garrison_reinforcement_factor = building_garrison_reinforcement_factor_tier_4
province_modifier = {
monthly_income = good_building_tax_tier_8
travel_danger = -16
}
province_culture_modifier = {
parameter = city_buildings_more_powerful
levy_size = 1
tax_mult = 0.04
}
county_culture_modifier = {
parameter = city_buildings_more_county_opinion
county_opinion_add = 20
}
province_terrain_modifier = {
parameter = maritime_mercantilism_coastal_holdings
is_coastal = yes
tax_mult = maritime_mercantilism_coastal_holdings_value
}
county_culture_modifier = {
parameter = city_buildings_more_powerful
development_growth_factor = 0.2
}
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
}
province_terrain_modifier = {
parameter = coastal_holdings_give_defensive_bonus
is_coastal = yes
defender_holding_advantage = 5
}
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
}
2026-03-10 00:41:50 +00:00
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -4
}
2026-02-19 22:52:49 +00:00
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
}
}
}
####
#
# City Buildings
#
####
### Guild Halls
guild_halls_01 = {
construction_time = standard_construction_time
can_construct_potential = {
has_building_or_higher = city_01
}
cost_gold = normal_building_tier_1_cost
province_modifier = {
monthly_income = normal_building_tax_tier_1
}
county_modifier = {
development_growth_factor = 0.05
}
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
}
2026-03-09 06:16:12 +00:00
2026-03-10 00:41:50 +00:00
province_government_modifier = {
parameter = government_is_prepublic
2026-03-09 06:16:12 +00:00
monthly_barter_goods = 0.1
}
2026-03-12 21:46:17 +00:00
province_government_modifier = {
parameter = government_is_urepublic
monthly_barter_goods = 0.2
}
2026-03-09 06:16:12 +00:00
2026-02-19 22:52:49 +00:00
next_building = guild_halls_02
type_icon = "icon_building_guild_halls.dds"
ai_value = {
base = 500
ai_tier_1_building_modifier = yes
modifier = {
add = 500
scope:holder = {
government_has_flag = government_is_republic
}
}
}
}
guild_halls_02 = {
construction_time = standard_construction_time
can_construct_potential = {
has_building_or_higher = city_01
culture = {
trigger_if = {
limit = {
NOT = { has_cultural_parameter = next_level_guild_halls }
}
has_innovation = innovation_crop_rotation
}
}
}
can_construct_showing_failures_only = {
building_requirement_tribal = no
}
cost_gold = normal_building_tier_2_cost
province_modifier = {
monthly_income = normal_building_tax_tier_2
}
county_modifier = {
development_growth_factor = 0.1
}
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
}
2026-03-10 00:41:50 +00:00
province_government_modifier = {
parameter = government_is_prepublic
2026-03-09 06:16:12 +00:00
monthly_barter_goods = 0.2
}
2026-03-12 21:46:17 +00:00
province_government_modifier = {
parameter = government_is_urepublic
monthly_barter_goods = 0.4
}
2026-03-09 06:16:12 +00:00
2026-02-19 22:52:49 +00:00
next_building = guild_halls_03
ai_value = {
base = 9
ai_general_building_modifier = yes
ai_economical_building_preference_modifier = yes
directive_to_build_economy_modifier = yes
modifier = { # Fill all building slots before going for upgrades
factor = 0
free_building_slots > 0
}
}
}
guild_halls_03 = {
construction_time = standard_construction_time
can_construct = {
trigger_if = {
limit = {
NOT = {
culture = {
has_cultural_parameter = next_level_guild_halls
}
}
}
culture = {
has_innovation = innovation_manorialism
}
has_building_or_higher = city_02
}
trigger_else = {
culture = {
has_innovation = innovation_crop_rotation
}
culture = {
has_cultural_parameter = next_level_guild_halls
}
has_building_or_higher = city_01
}
}
can_construct_showing_failures_only = {
building_requirement_tribal = no
}
cost_gold = normal_building_tier_3_cost
province_modifier = {
monthly_income = normal_building_tax_tier_3
}
county_modifier = {
development_growth_factor = 0.15
}
2026-03-10 00:41:50 +00:00
province_government_modifier = {
parameter = government_is_prepublic
2026-03-09 06:16:12 +00:00
monthly_barter_goods = 0.3
}
2026-03-12 21:46:17 +00:00
province_government_modifier = {
parameter = government_is_urepublic
monthly_barter_goods = 0.6
}
2026-03-09 06:16:12 +00:00
2026-02-19 22:52:49 +00:00
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
}
next_building = guild_halls_04
ai_value = {
base = 8
ai_general_building_modifier = yes
ai_economical_building_preference_modifier = yes
directive_to_build_economy_modifier = yes
modifier = { # Fill all building slots before going for upgrades
factor = 0
free_building_slots > 0
}
}
}
guild_halls_04 = {
construction_time = standard_construction_time
can_construct = {
trigger_if = {
limit = {
NOT = {
culture = {
has_cultural_parameter = next_level_guild_halls
}
}
}
culture = {
has_innovation = innovation_manorialism
}
has_building_or_higher = city_02
}
trigger_else = {
culture = {
has_innovation = innovation_crop_rotation
}
culture = {
has_cultural_parameter = next_level_guild_halls
}
has_building_or_higher = city_01
}
}
can_construct_showing_failures_only = {
building_requirement_tribal = no
}
cost_gold = normal_building_tier_4_cost
province_modifier = {
monthly_income = normal_building_tax_tier_4
}
county_modifier = {
development_growth_factor = 0.2
}
2026-03-10 00:41:50 +00:00
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.4
2026-03-09 06:16:12 +00:00
}
2026-03-12 21:46:17 +00:00
province_government_modifier = {
parameter = government_is_urepublic
monthly_barter_goods = 0.8
}
2026-03-09 06:16:12 +00:00
2026-02-19 22:52:49 +00:00
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
}
next_building = guild_halls_05
ai_value = {
base = 7
ai_general_building_modifier = yes
ai_economical_building_preference_modifier = yes
directive_to_build_economy_modifier = yes
modifier = { # Fill all building slots before going for upgrades
factor = 0
free_building_slots > 0
}
}
}
guild_halls_05 = {
construction_time = standard_construction_time
can_construct = {
trigger_if = {
limit = {
NOT = {
culture = {
has_cultural_parameter = next_level_guild_halls
}
}
}
culture = {
has_innovation = innovation_guilds
}
has_building_or_higher = city_03
}
trigger_else = {
culture = {
has_innovation = innovation_manorialism
}
culture = {
has_cultural_parameter = next_level_guild_halls
}
has_building_or_higher = city_02
}
}
can_construct_showing_failures_only = {
building_requirement_tribal = no
}
cost_gold = normal_building_tier_5_cost
province_modifier = {
monthly_income = normal_building_tax_tier_5
}
county_modifier = {
development_growth_factor = 0.25
}
2026-03-10 00:41:50 +00:00
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.5
2026-03-09 06:16:12 +00:00
}
2026-03-12 21:46:17 +00:00
province_government_modifier = {
parameter = government_is_urepublic
monthly_barter_goods = 1
}
2026-03-09 06:16:12 +00:00
2026-02-19 22:52:49 +00:00
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
}
next_building = guild_halls_06
ai_value = {
base = 6
ai_general_building_modifier = yes
ai_economical_building_preference_modifier = yes
directive_to_build_economy_modifier = yes
modifier = { # Fill all building slots before going for upgrades
factor = 0
free_building_slots > 0
}
}
}
guild_halls_06 = {
construction_time = standard_construction_time
can_construct = {
trigger_if = {
limit = {
NOT = {
culture = {
has_cultural_parameter = next_level_guild_halls
}
}
}
culture = {
has_innovation = innovation_guilds
}
has_building_or_higher = city_03
}
trigger_else = {
culture = {
has_innovation = innovation_manorialism
}
culture = {
has_cultural_parameter = next_level_guild_halls
}
has_building_or_higher = city_02
}
}
can_construct_showing_failures_only = {
building_requirement_tribal = no
}
cost_gold = normal_building_tier_6_cost
province_modifier = {
monthly_income = normal_building_tax_tier_6
}
county_modifier = {
development_growth_factor = 0.3
}
2026-03-10 00:41:50 +00:00
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.6
2026-03-09 06:16:12 +00:00
}
2026-03-12 21:46:17 +00:00
province_government_modifier = {
parameter = government_is_urepublic
monthly_barter_goods = 1.2
}
2026-03-09 06:16:12 +00:00
2026-02-19 22:52:49 +00:00
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
}
next_building = guild_halls_07
ai_value = {
base = 5
ai_general_building_modifier = yes
ai_economical_building_preference_modifier = yes
directive_to_build_economy_modifier = yes
modifier = { # Fill all building slots before going for upgrades
factor = 0
free_building_slots > 0
}
}
}
guild_halls_07 = {
construction_time = standard_construction_time
can_construct = {
trigger_if = {
limit = {
NOT = {
culture = {
has_cultural_parameter = next_level_guild_halls
}
}
}
culture = {
has_innovation = innovation_cranes
}
has_building_or_higher = city_04
}
trigger_else = {
culture = {
has_innovation = innovation_guilds
}
culture = {
has_cultural_parameter = next_level_guild_halls
}
has_building_or_higher = city_03
}
}
can_construct_showing_failures_only = {
building_requirement_tribal = no
}
cost_gold = normal_building_tier_7_cost
province_modifier = {
monthly_income = normal_building_tax_tier_7
}
county_modifier = {
development_growth_factor = 0.35
}
2026-03-10 00:41:50 +00:00
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.7
2026-03-09 06:16:12 +00:00
}
2026-03-12 21:46:17 +00:00
province_government_modifier = {
parameter = government_is_urepublic
monthly_barter_goods = 1.4
}
2026-03-09 06:16:12 +00:00
2026-02-19 22:52:49 +00:00
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
}
next_building = guild_halls_08
ai_value = {
base = 4
ai_general_building_modifier = yes
ai_economical_building_preference_modifier = yes
directive_to_build_economy_modifier = yes
modifier = { # Fill all building slots before going for upgrades
factor = 0
free_building_slots > 0
}
}
}
guild_halls_08 = {
construction_time = standard_construction_time
can_construct = {
trigger_if = {
limit = {
NOT = {
culture = {
has_cultural_parameter = next_level_guild_halls
}
}
}
culture = {
has_innovation = innovation_cranes
}
has_building_or_higher = city_04
}
trigger_else = {
culture = {
has_innovation = innovation_guilds
}
culture = {
has_cultural_parameter = next_level_guild_halls
}
has_building_or_higher = city_03
}
}
can_construct_showing_failures_only = {
building_requirement_tribal = no
}
cost_gold = normal_building_tier_8_cost
province_modifier = {
monthly_income = normal_building_tax_tier_8
}
county_modifier = {
development_growth_factor = 0.4
}
2026-03-10 00:41:50 +00:00
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.8
2026-03-09 06:16:12 +00:00
}
2026-03-12 21:46:17 +00:00
province_government_modifier = {
parameter = government_is_urepublic
monthly_barter_goods = 1.6
}
2026-03-09 06:16:12 +00:00
2026-02-19 22:52:49 +00:00
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
}
ai_value = {
base = 3
ai_general_building_modifier = yes
ai_economical_building_preference_modifier = yes
directive_to_build_economy_modifier = yes
modifier = { # Fill all building slots before going for upgrades
factor = 0
free_building_slots > 0
}
}
}