Merge branch 'farmer-republic-Branch' into next-version-dev

This commit is contained in:
Fishedotjpg 2026-03-10 01:12:40 +00:00
commit f04690ea70
153 changed files with 61840 additions and 197 deletions

View file

@ -105,7 +105,7 @@
type = male
birth = 2513.1.1
title = k_ireland
government = feudal_government
government = peasantrepublic_government
culture = high_irish
religion = "celtic"
difficulty = "BOOKMARK_CHARACTER_DIFFICULTY_HARD"

View file

@ -435,6 +435,10 @@ castle_01 = {
is_coastal = yes
defender_holding_advantage = 2
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -1
}
flag = castle
@ -923,6 +927,10 @@ castle_02 = {
is_coastal = yes
defender_holding_advantage = 3
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -2
}
character_modifier = {
men_at_arms_cap = 1
@ -1384,6 +1392,10 @@ castle_03 = {
is_coastal = yes
defender_holding_advantage = 4
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -3
}
character_modifier = {
men_at_arms_cap = 1
@ -1835,6 +1847,10 @@ castle_04 = {
is_coastal = yes
defender_holding_advantage = 5
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -4
}
character_modifier = {
men_at_arms_cap = 1

View file

@ -450,6 +450,10 @@ city_01 = {
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
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -1
}
character_modifier = {
men_at_arms_cap = 1
@ -973,6 +977,10 @@ city_02 = {
character_modifier = {
men_at_arms_cap = 1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -2
}
flag = city
next_building = city_03
@ -1459,6 +1467,10 @@ city_03 = {
character_modifier = {
men_at_arms_cap = 1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -3
}
flag = city
on_complete = {
@ -1933,6 +1945,10 @@ city_04 = {
character_modifier = {
men_at_arms_cap = 1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -4
}
flag = city
on_complete = {
@ -2002,6 +2018,13 @@ guild_halls_01 = {
creator_mandala_built_regular_building_piety_effect = yes
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.1
}
next_building = guild_halls_02
type_icon = "icon_building_guild_halls.dds"
@ -2050,6 +2073,10 @@ guild_halls_02 = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.2
}
next_building = guild_halls_03
ai_value = {
@ -2104,6 +2131,11 @@ guild_halls_03 = {
county_modifier = {
development_growth_factor = 0.15
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.3
}
on_complete = {
#Mandala Creator Aspect
@ -2164,6 +2196,11 @@ guild_halls_04 = {
county_modifier = {
development_growth_factor = 0.2
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.4
}
on_complete = {
#Mandala Creator Aspect
@ -2223,6 +2260,11 @@ guild_halls_05 = {
county_modifier = {
development_growth_factor = 0.25
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.5
}
on_complete = {
#Mandala Creator Aspect
@ -2282,6 +2324,11 @@ guild_halls_06 = {
county_modifier = {
development_growth_factor = 0.3
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.6
}
on_complete = {
#Mandala Creator Aspect
@ -2341,6 +2388,11 @@ guild_halls_07 = {
county_modifier = {
development_growth_factor = 0.35
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.7
}
on_complete = {
#Mandala Creator Aspect
@ -2400,6 +2452,11 @@ guild_halls_08 = {
county_modifier = {
development_growth_factor = 0.4
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.8
}
on_complete = {
#Mandala Creator Aspect

View file

@ -2747,6 +2747,14 @@ paddy_fields_01 = {
parameter = brewery_farming_bonus
county_opinion_add = 2
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.5
}
on_complete = {
#Mandala Creator Aspect
@ -2843,6 +2851,14 @@ paddy_fields_02 = {
stationed_maa_damage_mult = normal_maa_damage_tier_2
stationed_maa_toughness_mult = normal_maa_toughness_tier_2
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.2
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.6
}
on_complete = {
#Mandala Creator Aspect
@ -2942,6 +2958,14 @@ paddy_fields_03 = {
stationed_maa_damage_mult = normal_maa_damage_tier_3
stationed_maa_toughness_mult = normal_maa_toughness_tier_3
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.3
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.7
}
on_complete = {
#Mandala Creator Aspect
@ -3038,6 +3062,15 @@ paddy_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
monthly_barter_goods = 0.4
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.8
}
on_complete = {
#Mandala Creator Aspect
@ -3138,6 +3171,15 @@ paddy_fields_05 = {
stationed_maa_damage_mult = normal_maa_damage_tier_5
stationed_maa_toughness_mult = normal_maa_toughness_tier_5
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.5
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.9
}
on_complete = {
#Mandala Creator Aspect
@ -3239,6 +3281,14 @@ paddy_fields_06 = {
stationed_maa_damage_mult = normal_maa_damage_tier_6
stationed_maa_toughness_mult = normal_maa_toughness_tier_6
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.6
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1
}
on_complete = {
#Mandala Creator Aspect
@ -3341,6 +3391,14 @@ paddy_fields_07 = {
stationed_maa_damage_mult = normal_maa_damage_tier_7
stationed_maa_toughness_mult = normal_maa_toughness_tier_7
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.7
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1.1
}
on_complete = {
#Mandala Creator Aspect
@ -3443,6 +3501,14 @@ paddy_fields_08 = {
stationed_maa_damage_mult = normal_maa_damage_tier_8
stationed_maa_toughness_mult = normal_maa_toughness_tier_8
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.8
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1.2
}
on_complete = {
#Mandala Creator Aspect
@ -5070,6 +5136,14 @@ pastures_01 = {
levy_size = 0.01
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.5
}
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
@ -5148,6 +5222,14 @@ pastures_02 = {
levy_size = 0.01
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.2
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.6
}
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
@ -5210,6 +5292,15 @@ pastures_03 = {
levy_size = 0.02
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.3
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.7
}
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
@ -5271,6 +5362,15 @@ pastures_04 = {
levy_size = 0.02
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.4
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.8
}
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
@ -5333,6 +5433,14 @@ pastures_05 = {
development_growth_factor = 0.02
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.5
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.9
}
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
@ -5396,6 +5504,14 @@ pastures_06 = {
levy_size = 0.03
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.6
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1
}
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
@ -5458,7 +5574,14 @@ pastures_07 = {
tax_mult = 0.04
levy_size = 0.04
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.7
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1.1
}
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
@ -5521,6 +5644,15 @@ pastures_08 = {
tax_mult = 0.04
levy_size = 0.04
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.8
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1.2
}
on_complete = {
#Mandala Creator Aspect
@ -6203,6 +6335,14 @@ orchards_01 = {
is_coastal = yes
tax_mult = 0.01
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.5
}
on_complete = {
#Mandala Creator Aspect
@ -6267,6 +6407,14 @@ orchards_02 = {
is_coastal = yes
tax_mult = 0.02
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.2
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.6
}
on_complete = {
#Mandala Creator Aspect
@ -6323,6 +6471,15 @@ orchards_03 = {
tax_mult = 0.03
supply_limit_mult = 0.1
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.3
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.7
}
on_complete = {
#Mandala Creator Aspect
@ -6375,6 +6532,15 @@ orchards_04 = {
tax_mult = 0.04
supply_limit_mult = 0.1
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.4
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.8
}
on_complete = {
#Mandala Creator Aspect
@ -6428,6 +6594,14 @@ orchards_05 = {
tax_mult = 0.05
supply_limit_mult = 0.1
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.5
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.9
}
on_complete = {
#Mandala Creator Aspect
@ -6482,6 +6656,14 @@ orchards_06 = {
tax_mult = 0.06
supply_limit_mult = 0.1
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.6
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1
}
on_complete = {
#Mandala Creator Aspect
@ -6539,6 +6721,14 @@ orchards_07 = {
character_modifier = {
monthly_prestige = 0.1
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.7
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1.1
}
on_complete = {
#Mandala Creator Aspect
@ -6596,6 +6786,15 @@ orchards_08 = {
character_modifier = {
monthly_prestige = 0.1
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.8
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1.2
}
on_complete = {
#Mandala Creator Aspect
@ -6664,6 +6863,14 @@ farm_estates_01 = {
parameter = brewery_farming_bonus
county_opinion_add = 2
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.5
}
on_complete = {
#Mandala Creator Aspect
@ -6749,6 +6956,14 @@ farm_estates_02 = {
parameter = brewery_farming_bonus
county_opinion_add = 4
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.2
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.6
}
on_complete = {
#Mandala Creator Aspect
@ -6812,6 +7027,14 @@ farm_estates_03 = {
parameter = brewery_farming_bonus
county_opinion_add = 6
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.3
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.7
}
on_complete = {
#Mandala Creator Aspect
@ -6866,6 +7089,15 @@ farm_estates_04 = {
county_modifier = {
development_growth_factor = 0.02
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.4
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.8
}
province_culture_modifier = {
parameter = brewery_farming_bonus
@ -6940,6 +7172,14 @@ farm_estates_05 = {
parameter = brewery_farming_bonus
county_opinion_add = 10
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.5
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.9
}
on_complete = {
#Mandala Creator Aspect
@ -7010,6 +7250,14 @@ farm_estates_06 = {
parameter = brewery_farming_bonus
county_opinion_add = 12
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.6
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1
}
on_complete = {
#Mandala Creator Aspect
@ -7081,6 +7329,14 @@ farm_estates_07 = {
parameter = brewery_farming_bonus
county_opinion_add = 14
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.7
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1.1
}
on_complete = {
#Mandala Creator Aspect
@ -7151,6 +7407,15 @@ farm_estates_08 = {
parameter = brewery_farming_bonus
county_opinion_add = 16
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.8
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1.2
}
on_complete = {
#Mandala Creator Aspect
@ -7199,6 +7464,14 @@ cereal_fields_01 = {
parameter = brewery_farming_bonus
county_opinion_add = 2
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.5
}
on_complete = {
#Mandala Creator Aspect
@ -7301,6 +7574,14 @@ cereal_fields_02 = {
parameter = brewery_farming_bonus
county_opinion_add = 4
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.2
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.6
}
on_complete = {
#Mandala Creator Aspect
@ -7382,6 +7663,15 @@ cereal_fields_03 = {
parameter = brewery_farming_bonus
county_opinion_add = 6
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.3
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.7
}
on_complete = {
#Mandala Creator Aspect
@ -7461,6 +7751,14 @@ cereal_fields_04 = {
parameter = brewery_farming_bonus
county_opinion_add = 8
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.4
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.8
}
on_complete = {
#Mandala Creator Aspect
@ -7540,7 +7838,14 @@ cereal_fields_05 = {
parameter = brewery_farming_bonus
county_opinion_add = 10
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.5
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.9
}
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
@ -7620,6 +7925,14 @@ cereal_fields_06 = {
parameter = brewery_farming_bonus
county_opinion_add = 12
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.6
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1
}
on_complete = {
#Mandala Creator Aspect
@ -7701,7 +8014,14 @@ cereal_fields_07 = {
parameter = brewery_farming_bonus
county_opinion_add = 14
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.7
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1.1
}
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
@ -7782,6 +8102,15 @@ cereal_fields_08 = {
parameter = brewery_farming_bonus
county_opinion_add = 16
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.8
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1.2
}
on_complete = {
#Mandala Creator Aspect
@ -8762,6 +9091,14 @@ hill_farms_01 = {
parameter = hill_farms_building_bonuses
levy_size = 0.01
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.5
}
on_complete = {
#Mandala Creator Aspect
@ -8832,6 +9169,14 @@ hill_farms_02 = {
parameter = hill_farms_building_bonuses
levy_size = 0.01
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.2
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.6
}
on_complete = {
#Mandala Creator Aspect
@ -8894,6 +9239,15 @@ hill_farms_03 = {
parameter = hill_farms_building_bonuses
levy_size = 0.02
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.3
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.7
}
on_complete = {
#Mandala Creator Aspect
@ -8952,6 +9306,14 @@ hill_farms_04 = {
parameter = hill_farms_building_bonuses
levy_size = 0.02
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.4
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.8
}
on_complete = {
#Mandala Creator Aspect
@ -9011,6 +9373,14 @@ hill_farms_05 = {
parameter = hill_farms_building_bonuses
levy_size = 0.03
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.5
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.9
}
on_complete = {
#Mandala Creator Aspect
@ -9071,6 +9441,14 @@ hill_farms_06 = {
parameter = hill_farms_building_bonuses
levy_size = 0.03
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.6
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1
}
on_complete = {
#Mandala Creator Aspect
@ -9131,6 +9509,14 @@ hill_farms_07 = {
parameter = hill_farms_building_bonuses
levy_size = 0.04
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.7
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1.1
}
on_complete = {
#Mandala Creator Aspect
@ -9191,6 +9577,14 @@ hill_farms_08 = {
parameter = hill_farms_building_bonuses
levy_size = 0.04
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.8
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1.2
}
on_complete = {
#Mandala Creator Aspect
@ -9678,6 +10072,14 @@ plantations_01 = {
parameter = plantations_building_bonuses
monthly_income = poor_building_extra_tax_tier_1
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.5
}
on_complete = {
#Mandala Creator Aspect
@ -9759,6 +10161,14 @@ plantations_02 = {
parameter = plantations_building_bonuses
monthly_income = poor_building_extra_tax_tier_2
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.2
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.6
}
on_complete = {
#Mandala Creator Aspect
@ -9816,6 +10226,15 @@ plantations_03 = {
parameter = plantations_building_bonuses
monthly_income = poor_building_extra_tax_tier_3
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.3
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.7
}
on_complete = {
#Mandala Creator Aspect
@ -9869,6 +10288,15 @@ plantations_04 = {
parameter = plantations_building_bonuses
monthly_income = poor_building_extra_tax_tier_4
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.4
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.8
}
on_complete = {
#Mandala Creator Aspect
@ -9926,6 +10354,14 @@ plantations_05 = {
parameter = plantations_building_bonuses
monthly_income = poor_building_extra_tax_tier_5
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.5
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.9
}
on_complete = {
#Mandala Creator Aspect
@ -9983,6 +10419,14 @@ plantations_06 = {
parameter = plantations_building_bonuses
monthly_income = poor_building_extra_tax_tier_6
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.6
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1
}
on_complete = {
#Mandala Creator Aspect
@ -10040,6 +10484,14 @@ plantations_07 = {
parameter = plantations_building_bonuses
monthly_income = poor_building_extra_tax_tier_7
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.7
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1.1
}
on_complete = {
#Mandala Creator Aspect
@ -10097,6 +10549,15 @@ plantations_08 = {
parameter = plantations_building_bonuses
monthly_income = poor_building_extra_tax_tier_8
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.8
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1.2
}
on_complete = {
#Mandala Creator Aspect

View file

@ -775,6 +775,10 @@ temple_01 = {
character_modifier = {
men_at_arms_cap = 1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -1
}
flag = temple
type_icon = "icon_building_monastic_schools.dds"
@ -1732,6 +1736,10 @@ temple_02 = {
character_modifier = {
men_at_arms_cap = 1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -2
}
flag = temple
on_complete = {
@ -2559,6 +2567,10 @@ temple_03 = {
character_modifier = {
men_at_arms_cap = 1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -3
}
flag = temple
on_complete = {
@ -3378,6 +3390,10 @@ temple_04 = {
character_modifier = {
men_at_arms_cap = 1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -4
}
flag = temple
on_complete = {

View file

@ -1064,6 +1064,14 @@ potato_fields_01 = {
parameter = brewery_farming_bonus
county_opinion_add = 2
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.5
}
on_complete = {
#Mandala Creator Aspect
@ -1182,6 +1190,14 @@ potato_fields_02 = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.2
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.6
}
next_building = potato_fields_03
type_icon = "building_potato.dds"
@ -1277,6 +1293,14 @@ potato_fields_03 = {
stationed_maa_damage_mult = normal_maa_damage_tier_3
stationed_maa_toughness_mult = normal_maa_toughness_tier_3
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.3
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.7
}
on_complete = {
#Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes
@ -1373,6 +1397,19 @@ 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
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.8
}
on_complete = {
#Mandala Creator Aspect
@ -1471,6 +1508,14 @@ potato_fields_05 = {
stationed_maa_damage_mult = normal_maa_damage_tier_5
stationed_maa_toughness_mult = normal_maa_toughness_tier_5
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.5
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 0.9
}
on_complete = {
#Mandala Creator Aspect
@ -1569,6 +1614,19 @@ potato_fields_06 = {
stationed_maa_damage_mult = normal_maa_damage_tier_6
stationed_maa_toughness_mult = normal_maa_toughness_tier_6
}
province_government_modifier = {
parameter = government_is_prepublic
county_fertility_growth_add = 1.0
monthly_barter_goods = 0.6
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.6
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1
}
on_complete = {
#Mandala Creator Aspect
@ -1669,6 +1727,14 @@ potato_fields_07 = {
stationed_maa_damage_mult = normal_maa_damage_tier_7
stationed_maa_toughness_mult = normal_maa_toughness_tier_7
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.7
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1.1
}
on_complete = {
#Mandala Creator Aspect
@ -1769,6 +1835,14 @@ potato_fields_08 = {
stationed_maa_damage_mult = normal_maa_damage_tier_8
stationed_maa_toughness_mult = normal_maa_toughness_tier_8
}
province_government_modifier = {
parameter = government_is_prepublic
monthly_barter_goods = 0.8
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_growth_add = 1.2
}
on_complete = {
#Mandala Creator Aspect

View file

@ -689,6 +689,10 @@ temple_citadel_01 = {
character_modifier = {
men_at_arms_cap = 1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -1
}
flag = temple_citadel
type_icon = "tgp_icon_building_mandala_capital_tier_02.dds"
@ -1570,6 +1574,10 @@ temple_citadel_02 = {
character_modifier = {
men_at_arms_cap = 1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -2
}
flag = temple_citadel
on_complete = {
@ -2364,6 +2372,10 @@ temple_citadel_03 = {
character_modifier = {
men_at_arms_cap = 1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -3
}
flag = temple_citadel
on_complete = {
@ -3136,6 +3148,10 @@ temple_citadel_04 = {
character_modifier = {
men_at_arms_cap = 1
}
county_culture_modifier = {
parameter = use_farmer_republics
county_fertility_decline_add = -4
}
flag = temple_citadel
on_complete = {

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -7550,7 +7550,7 @@ mpo_retrieve_land_from_herder_interaction = {
is_shown = {
scope:recipient = {
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}

View file

@ -9,7 +9,7 @@
traditions = {
tradition_seafaring
tradition_adaptive_skirmishing
tradition_farmer_republics
tradition_festivities
tradition_swords_for_hire
tradition_diasporic
@ -45,9 +45,9 @@ high_irish = { #Éireannach Uasal
traditions = {
tradition_creaght
tradition_poetry
tradition_festivities
tradition_xenophilic
tradition_defiant
tradition_farmer_republics
}
name_list = name_list_neow_goidelic
@ -81,10 +81,10 @@ irish = { #Éireannach Bhocht
traditions = {
tradition_creaght
tradition_adaptive_skirmishing
tradition_festivities
tradition_defiant
tradition_xenophilic
tradition_farmer_republics
}
name_list = name_list_neow_goidelic

View file

@ -491,6 +491,7 @@ maltese = { #Maltin
tradition_stalwart_defenders
tradition_esteemed_hospitality
tradition_xenophilic
tradition_farmer_republics
}
name_list = name_list_sicilian #PLACEHOLDER
@ -525,6 +526,7 @@ ladin = {
tradition_mountaineers
tradition_esteemed_hospitality
tradition_hard_working
tradition_farmer_republics
}
name_list = name_list_gallo_italian

View file

@ -116,6 +116,7 @@ faerosk = {
head_determination = head_determination_domain
traditions = {
tradition_things
tradition_farmer_republics
tradition_fishermen
tradition_hereditary_hierarchy
tradition_seafaring
@ -249,7 +250,7 @@ icelander = {
head_determination = head_determination_domain
traditions = {
tradition_things
tradition_republican_legacy
tradition_farmer_republics
tradition_seafaring
tradition_fishermen
}

View file

@ -90,7 +90,7 @@ romansch = {
house_coa_mask_offset = { 0.0 0.025 }
house_coa_mask_scale = { 0.95 0.95 }
traditions = {
tradition_parochialism
tradition_farmer_republics
tradition_hard_working
tradition_castle_keepers
tradition_mountain_homes
@ -164,9 +164,8 @@ swiss = { #Svizzer
tradition_staunch_traditionalists
tradition_hard_working
tradition_religious_patronage
tradition_fervent_temple_builders
tradition_faith_bound
tradition_farmer_republics
}
name_list = name_list_NEOW_swabian

View file

@ -12,7 +12,7 @@
traditions = {
tradition_defiant
tradition_hill_dwellers
tradition_highland_warriors
tradition_farmer_republics
tradition_strong_kinship
tradition_fp1_performative_honour
}

View file

@ -49,7 +49,7 @@ frisian = { #Represented the "old frisians" in vanilla, actually playable here #
tradition_fishermen
tradition_agrarian
tradition_pastoralists
tradition_forbearing
tradition_farmer_republics
tradition_modest
}

View file

@ -222,12 +222,6 @@ tradition_republican_legacy = {
}
is_shown = {
OR ={
this = culture:roman
any_parent_culture_or_above = {
this = culture:roman
}
}
NOT = { has_cultural_tradition = tradition_parochialism }
}
can_pick = {

View file

@ -425,6 +425,135 @@ tradition_defiant = { # defiant
}
}
tradition_farmer_republics = {
category = societal
layers = {
0 = steward
1 = western
4 = farmland.dds
}
is_shown = {
NOT = { has_cultural_tradition = tradition_republican_legacy }
}
can_pick = {
NOT = { has_cultural_tradition = tradition_republican_legacy }
custom_tooltip = {
text = cultrad_not_nomadic_government_type
scope:character = {
NOT = {
government_has_flag = government_is_nomadic
}
}
}
}
parameters = {
use_farmer_republics = yes
unlock_innovation_pike_columns = yes
city_buildings_more_powerful = yes
city_buildings_less_control = yes
trait_county_opinion_modifiers = yes
}
character_modifier = {
city_holding_build_gold_cost = -0.05
city_holding_holding_build_gold_cost = -0.05
farmlands_development_growth_factor = 0.3
farmlands_construction_gold_cost = -0.1
farmlands_levy_size = 0.1
tyranny_gain_mult = 0.25
tyranny_loss_mult = -0.5
dread_decay_mult = 0.25
}
cost = {
prestige = {
add = {
value = tradition_base_cost
desc = BASE
format = "BASE_VALUE_FORMAT"
}
if = {
limit = {
NOR = {
culture_pillar:ethos_courtly = { is_in_list = traits }
culture_pillar:ethos_communal = { is_in_list = traits }
culture_pillar:ethos_spiritual = { is_in_list = traits }
}
}
add = {
value = tradition_incompatible_ethos_penalty
desc = not_courtly_communal_or_spiritual_desc
}
}
if = {
limit = {
NOT = {
scope:character = {
any_sub_realm_county = {
percent >= 0.9
culture = scope:character.culture
any_county_province = {
has_holding_type = city_holding
}
}
}
}
}
add = {
value = tradition_unfulfilled_criteria_penalty
desc = 90_percent_cities_desc
}
}
if = {
limit = {
culture_tradition_reduction_trigger = { TRADITION = tradition_farmer_republics }
}
multiply = {
value = 0.5
desc = inspired_by_culture_desc
}
}
multiply = tradition_replacement_cost_if_relevant
}
}
ai_will_do = {
value = 200
if = {
limit = {
NOT = {
scope:character = {
any_sub_realm_county = {
percent >= 0.15
culture = scope:character.culture
any_county_province = {
has_holding_type = city_holding
}
}
}
}
}
multiply = 0
}
if = {
limit = {
NOT = {
scope:character = {
any_vassal = {
primary_title.tier > tier_county
government_has_flag = government_is_special_republic
}
}
}
}
multiply = 0
}
}
}
tradition_creaght = {
category = societal

View file

@ -1126,6 +1126,26 @@ GetGovernmentIcon = {
}
localization_key = republic_icon_concept
}
text = { # Republic
trigger = {
trigger_if = {
limit = {
is_alive = no
}
has_government = peasantrepublic_government
}
trigger_else = {
trigger_if = {
limit = { is_ruler = yes }
government_has_flag = government_is_prepublic
}
trigger_else = {
liege ?= { government_has_flag = government_is_prepublic }
}
}
}
localization_key = peasantrepublic_icon_concept
}
text = { # Theocracy
trigger = {
trigger_if = {

View file

@ -4763,6 +4763,7 @@ settle_people_decision = {
}
if = {
limit = {
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
any_held_title = {
is_nomad_title = yes
}
@ -4859,6 +4860,7 @@ settle_people_decision = {
if = {
limit = {
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
any_held_title = {
is_nomad_title = yes
}
@ -4934,6 +4936,7 @@ settle_people_decision = {
if = {
limit = {
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
any_held_title = {
is_nomad_title = yes
}
@ -5009,6 +5012,7 @@ settle_people_decision = {
}
if = {
limit = {
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
any_held_title = {
is_nomad_title = yes
}
@ -5651,6 +5655,7 @@ step_away_from_the_steppe_decision = {
}
if = {
limit = {
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
any_held_title = {
is_nomad_title = yes
}
@ -5747,6 +5752,7 @@ step_away_from_the_steppe_decision = {
if = {
limit = {
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
any_held_title = {
is_nomad_title = yes
}
@ -5822,6 +5828,7 @@ step_away_from_the_steppe_decision = {
if = {
limit = {
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
any_held_title = {
is_nomad_title = yes
}
@ -5897,6 +5904,7 @@ step_away_from_the_steppe_decision = {
}
if = {
limit = {
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
any_held_title = {
is_nomad_title = yes
}

View file

@ -0,0 +1,569 @@
adopt_steppe_administration = {
picture = {
reference = "gfx/interface/illustrations/decisions/tgp_great_project.dds"
}
decision_group_type = nomad_major
ai_check_interval_by_tier = {
barony = 0
county = 0
duchy = 0
kingdom = 60
empire = 60
hegemony = 0
}
desc = adopt_steppe_administration_desc
selection_tooltip = adopt_steppe_administration_tooltip
is_shown = {
has_mpo_dlc_trigger = yes
has_tgp_dlc_trigger = yes
government_has_flag = government_is_nomadic
OR = {
highest_held_title_tier = tier_kingdom
highest_held_title_tier = tier_empire
}
is_playable_character = yes
}
is_valid = {
custom_tooltip = {
text = you_are_the_culture_head
culture = {
culture_head = root
}
}
OR = { # You need to already be on your way to imperial status, if not already there
has_realm_law = nomadic_authority_4
has_realm_law = nomadic_authority_5
}
custom_tooltip = {
text = steppe_admin_kingdom_requirement
any_realm_de_jure_kingdom = {
count >= 3
root = {
completely_controls = prev
}
title_capital_county.title_province ?= {
OR = {
has_holding_type = castle_holding
has_holding_type = city_holding
has_holding_type = church_holding
has_holding_type = temple_citadel_holding
}
}
}
}
save_temporary_scope_value_as = {
name = temp_num_tributaries
value = sub_realm_with_tributaries_size
}
custom_tooltip = { # You need a total realm size big enough to impress
text = steppe_admin_tributary_req
sub_realm_with_tributaries_size >= 50
}
custom_tooltip = { # You need somewhere to get the idea to adopt Merit and examinations from
text = steppe_admin_merit_req
OR = {
any_neighboring_top_liege_realm_owner = {
AND = {
government_has_flag = government_has_merit
highest_held_title_tier >= tier_kingdom
}
}
any_tributary = {
AND = {
government_has_flag = government_has_merit
highest_held_title_tier >= tier_kingdom
}
}
any_vassal_or_below = {
AND = {
government_has_flag = government_has_merit
highest_held_title_tier >= tier_kingdom
}
}
}
}
}
is_valid_showing_failures_only = {
is_at_war = no
is_tributary = no
is_available_adult = yes
has_active_diarchy = no
}
cost = {
gold = {
value = 0
if = {
limit = {
has_treasury = no
}
add = massive_prestige_value # building an imperial palace isn't cheap, you know
}
}
treasury = {
value = 0
if = {
limit = {
has_treasury = yes
}
add = 500
}
}
prestige = {
value = monumental_prestige_value
}
}
effect = {
#GoK stops really being GoK
gok_government_change_story_end_effect = yes
if = {
limit = {
has_realm_law = nomadic_authority_4
}
add_character_flag = realm_law_4
}
else = {
add_character_flag = realm_law_5
}
add_legitimacy_effect = { LEGITIMACY = massive_legitimacy_gain }
dynasty = {
add_dynasty_prestige = massive_dynasty_prestige_gain
}
save_scope_as = nomad_settling_down
save_scope_value_as = {
name = invading_herd_value
value = domicile.herd
}
nomad_domicile_refund_treasury_or_gold_effect = yes # we pay you back for your domicile investments
nomad_convert_herds_to_treasury_or_gold_special_troops_effect = yes # we pay you back for your herd investments
nomad_to_steppe_admin_new_capital_effect = yes # we arrange a new capital for you the same way we would any other settling nomad
change_government = steppe_admin_government
give_noble_family_title = {
name = noble_family_name
tier = county
article = DEFAULT_TITLE_NAME_ARTICLE
government = steppe_admin_government
save_scope_as = new_title
}
scope:new_title = {
set_coa = holder.house
}
hidden_effect = {
switch = {
trigger = has_character_flag
realm_law_4 = {
add_realm_law_skip_effects = meritocratic_bureaucracy_2
remove_character_flag = realm_law_4
}
realm_law_5 = {
add_realm_law_skip_effects = meritocratic_bureaucracy_3
remove_character_flag = realm_law_5
}
}
}
hidden_effect = { # We explain this in an earlier tooltip
add_treasury_or_gold = {
value = scope:domicile_refund_treasury_or_gold_value
add = scope:nomad_convert_herds_to_treasury_or_gold_value
}
}
if = {
limit = {
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
any_held_title = {
is_nomad_title = yes
}
}
every_held_title = {
limit = {
is_nomad_title = yes
}
root = {
destroy_title = prev
}
}
}
custom_tooltip = {
text = merit_based_vassals_convert_to_steppe_admin
if = {
limit = {
any_vassal = {
government_has_flag = government_has_merit
NOT = { government_has_flag = government_is_steppe_admin }
}
}
every_vassal = {
limit = {
government_has_flag = government_has_merit
NOT = { government_has_flag = government_is_steppe_admin }
}
change_government = steppe_admin_government
}
}
}
hidden_effect = {
every_tributary = {
add_to_list = tributaries
}
every_in_list = {
list = tributaries
start_tributary_interaction_effect = { # to update their contract types for your new status
TRIBUTARY = this
SUZERAIN = root
}
}
}
hidden_effect = {
generate_new_steppe_admin_families_effect = yes # we populate your noble families so you have some starting non-nomadic administrators
}
}
ai_potential = {
#AI greatest of khans shouldn't be doing this and ruining their GoKness
NOR = {
has_trait = greatest_of_khans
any_owned_story = {
OR = {
story_type = story_mongol_invasion
story_type = story_greatest_of_khans
}
}
}
}
ai_will_do = {
base = 100 # the bar to doing this is high enoug that if the AI can do it, the AI should do it
}
}
### Return to the Steppe ###
return_to_the_steppe_decision = {
picture = {
reference = "gfx/interface/illustrations/event_story/mpo_steppe_region.dds"
}
decision_group_type = nomad_major
desc = return_to_the_steppe_decision_desc
selection_tooltip = return_to_the_steppe_decision_tooltip
ai_check_interval_by_tier = {
barony = 0
county = 0
duchy = 0
kingdom = 72 # just in case there's an orphaned steppe admin kingdom somewhere
empire = 72
hegemony = 0
}
is_shown = {
has_mpo_dlc_trigger = yes
has_tgp_dlc_trigger = yes
government_has_flag = government_is_steppe_admin
is_independent_ruler = yes
is_playable_character = yes
NOT = {
any_vassal_or_below = {
is_ai = no # the gamestate could conceivably result in as situation where you could game over a player-vassal by doing this, so we just make sure it can't happen
}
}
}
is_valid = {
has_trait = nomadic_philosophy # you need at least some connection to the steppe to want to go back to it
custom_tooltip = {
text = small_enough_realm_to_abandon
any_realm_county = {
count <= 10
title_province = {
OR = {
has_holding_type = castle_holding
has_holding_type = church_holding
has_holding_type = city_holding
has_holding_type = temple_citadel_holding
}
}
}
}
}
is_valid_showing_failures_only = {
is_at_war = no
is_available = yes
has_active_diarchy = no
}
cost = {
prestige = {
value = massive_prestige_value # this is already a escape hatch, so we don't want it to be too punishing
}
}
effect = {
custom_tooltip = {
text = treasury_emptying_effect_desc
empty_treasury_when_abandoning_landed_life_effect = yes # otherwise the treasury sticks around
}
refund_noble_family_domicile_buildings_effect = yes
custom_tooltip = {
text = nomadize_landless_noble_families
refund_vassal_noble_families_and_make_them_nomads_effect = yes # for those who share your cultural heritage
}
custom_tooltip = {
text = rehouse_landless_noble_families
rehome_noble_families_to_compatible_liege_effect = yes # we find a new home for those who don't share your cultural heritage
}
custom_tooltip = {
text = title_maa_regiments_will_be_destroyed
if = {
limit = {
any_maa_regiment = {
is_title_maa_regiment = yes
}
}
every_maa_regiment = {
limit = {
is_title_maa_regiment = yes
}
destroy_maa_regiment = yes
}
}
}
change_government = nomad_government
hidden_effect = {
if = {
limit = {
exists = scope:current_treasury # saved in empty_treasury_when_abandoning_landed_life_effect
}
add_gold = {
value = scope:current_treasury
}
}
}
custom_tooltip = {
text = convert_steppe_admin_to_meritocratic_tooltip
convert_steppe_admin_vassals_to_meritocratic_effect = yes
}
hidden_effect = {
every_tributary = {
add_to_list = tributaries
}
every_in_list = {
list = tributaries
start_tributary_interaction_effect = { # to update their contract types for your new status
TRIBUTARY = this
SUZERAIN = root
}
}
}
}
ai_potential = {
capital_county.title_province = {
NOR = {
has_holding_type = castle_holding
has_holding_type = church_holding
has_holding_type = city_holding
has_holding_type = temple_citadel_holding
}
}
}
ai_will_do = {
base = 100 # if the potential is met, the AI should do it
}
}
### Adopt Meritocratic Government ###
convert_to_meritocratic_decision = {
picture = {
reference = "gfx/interface/illustrations/event_story/tgp_dynastic_cycle_stability.dds"
}
decision_group_type = major
ai_check_interval_by_tier = {
barony = 0
county = 0
duchy = 0
kingdom = 60
empire = 60
hegemony = 0
}
desc = convert_to_meritocratic_desc
selection_tooltip = convert_to_meritocratic_tooltip
is_shown = {
has_tgp_dlc_trigger = yes
government_has_flag = government_is_steppe_admin
OR = {
highest_held_title_tier = tier_kingdom # this isn't standard, but will cover some edge cases for orphaned steppe admin kingdoms
highest_held_title_tier = tier_empire
}
any_sub_realm_county = {
count > 0
title_province = {
OR = {
has_holding_type = castle_holding
has_holding_type = church_holding
has_holding_type = city_holding
has_holding_type = temple_citadel_holding
}
}
}
is_playable_character = yes
}
is_valid = {
OR = {
has_realm_law = meritocratic_bureaucracy_2
has_realm_law = meritocratic_bureaucracy_3
}
save_temporary_scope_value_as = {
name = temp_num_qualifying_counties
value = temp_num_qualifying_counties_count
}
custom_tooltip = {
text = convert_to_meritocratic_county_count
any_sub_realm_county = {
count >= 30
holder = {
is_governor_or_admin_count = yes
government_has_flag = government_has_merit
}
title_province = {
OR = {
has_holding_type = castle_holding
has_holding_type = church_holding
has_holding_type = city_holding
has_holding_type = temple_citadel_holding
}
}
}
}
}
is_valid_showing_failures_only = {
is_at_war = no
is_available_adult = yes
has_active_diarchy = no
}
cost = {
gold = {
value = 0
if = {
limit = {
has_treasury = no
}
add = monumental_gold_value
}
}
treasury = {
value = 0
if = {
limit = {
has_treasury = yes
}
add = monumental_gold_value
}
}
prestige = {
value = massive_prestige_value
}
influence = {
value = monumental_influence_value
}
}
effect = {
add_legitimacy_effect = { LEGITIMACY = monumental_legitimacy_gain }
dynasty = {
add_dynasty_prestige = monumental_dynasty_prestige_gain
}
tgp_domicile_conversion_when_changing_government_type = {
NEW_DOMICILE_TYPE = east_asian_estate
NEW_GOVERNMENT_TYPE = meritocratic_government
}
change_government = meritocratic_government
hidden_effect = {
every_tributary = {
add_to_list = tributaries
}
every_in_list = {
list = tributaries
start_tributary_interaction_effect = { # to update their contract types for your new status
TRIBUTARY = this
SUZERAIN = root
}
}
}
custom_tooltip = {
text = steppe_admin_vassals_will_convert
convert_steppe_admin_vassals_to_meritocratic_effect = yes
}
custom_tooltip = {
text = non_merit_based_vassals_become_tributaries
if = {
limit = {
any_vassal = {
NOT = {
government_has_flag = government_has_merit
}
}
}
create_title_and_vassal_change = {
type = independency
save_scope_as = change
add_claim_on_loss = no
}
every_vassal = {
limit = {
NOT = {
government_has_flag = government_has_merit
}
}
add_to_list = soon_to_be_former_vassals
becomes_independent = { change = scope:change }
}
resolve_title_and_vassal_change = scope:change
every_in_list = {
list = soon_to_be_former_vassals
start_tributary_interaction_effect = {
TRIBUTARY = this
SUZERAIN = root
}
}
}
}
}
ai_potential = {
}
ai_will_do = {
base = 0
modifier = {
add = 20
NOT = { has_trait = nomadic_philosophy }
}
modifier = {
add = 30
has_trait = education_learning
}
modifier = {
add = 50
has_religion = religion:confucianism_religion
}
modifier = {
add = 30
has_trait = confucian_education
}
}
}

View file

@ -552,6 +552,7 @@ NGovernment = {
"landless_minority_government"
"nomad_government"
"herder_government"
"peasantrepublic_government"
"celestial_government"
"japan_administrative_government"
"japan_feudal_government"
@ -965,7 +966,7 @@ NCounty = {
COUNTY_FERTILITY_DECLINE_FACTOR = 0.125 # Makes all county fertility decline modifiers give out more adjusted growth. 1.1 = 10% stronger decline. Moves equilibriums
COUNTY_FERTILITY_EQUILIBRIUM_FACTOR = 0.09 # 0.007 # Factor value for how sensitive the fertility equilibrium is towards small changes. Inverted in calculations: the lower the value the more sensitive the behavior. Set to 100 to have a clear curve.
COUNTY_FERTILITY_MONTHLY_CHANGE_LEVELS = { -20 -0.01 0.01 20 }
COUNTY_FERTILITY_NON_NOMAD_HOLDING_MALUS = -0.75 # Negative mult malus applied to the amount of Herd gained from the county fertility in a county that does not have a Nomad or Herder Holding
COUNTY_FERTILITY_NON_NOMAD_HOLDING_MALUS = -0.01 # Negative mult malus applied to the amount of Herd gained from the county fertility in a county that does not have a Nomad or Herder Holding
HERD_GAIN_FROM_COUNTY_MULTIPLIER = 0.5 # Direct multiplier on the base Herd gained from County ( Base Gain = CountyFertility * HERD_GAIN_FROM_COUNTY_MULTIPLIER )
}
@ -1398,7 +1399,7 @@ NBarter = {
BASE_PROGRESS = 15
PROGRESS_PER_SOLDIER = 0.005
LOOT_PER_SOLDIER = 0.1 # How much loot can a single soldier carry? Minimum increment is 0.001
BARTER_GOODS_TO_LOOT_MULT = 0.5 # Used to convert Barter Goods to Loot. A value of 0.5 means that 2 Barter Goods are worth 1 Loot
BARTER_GOODS_TO_LOOT_MULT = 1.5 # Used to convert Barter Goods to Loot. A value of 0.5 means that 2 Barter Goods are worth 1 Loot
}
NCharacterGlow = {

View file

@ -0,0 +1,433 @@
farmstead_main_01 = {
slot_type = main
construction_time = 1
allowed_domicile_types = { farmstead }
cost = {
gold = estate_external_building_high_cost_tier_2_value
}
character_modifier = {
domicile_monthly_gold_add = 0.25
health = 0.5
domicile_external_slots_capacity_add = 2
monthly_barter_goods = 1
}
ai_value = {
value = 100
}
parameters = {
camp_unlocks_second_officer = yes
camp_unlocks_huntperson_officer = yes
camp_unlocks_chief_forager_officer = yes
}
asset = {
trigger = {
domicile_location.culture = {
has_graphical_east_asia_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/domicile_building/farmstead_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/farmstead_main.dds"
texture = "gfx/interface/window_domiciles/farmstead_building_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farmstead_building_mena_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
trigger = {
domicile_location.culture = {
OR = {
has_graphical_western_culture_group_trigger = yes
has_graphical_norse_culture_group_trigger = yes
}
}
}
icon = "gfx/interface/icons/domicile_building/farmstead_main.dds"
texture = "gfx/interface/window_domiciles/farmstead_building_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farmstead_building_western_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
icon = "gfx/interface/icons/domicile_building/farmstead_main.dds"
texture = "gfx/interface/window_domiciles/farmstead_building_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farmstead_building_byzantine_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
}
farmstead_main_02 = {
slot_type = main
construction_time = 730
allowed_domicile_types = { farmstead }
previous_building = farmstead_main_01
can_construct = {
culture ?= { has_innovation = innovation_city_planning }
}
cost = {
gold = estate_external_building_high_cost_tier_3_value
}
parameters = {
camp_unlocks_second_officer = yes
reduce_success_of_raid_estate = yes
estate_increase_house_member_investment_cap_1 = yes
monthly_barter_goods = 1.2
}
character_modifier = {
domicile_monthly_gold_add = 0.25
domicile_external_slots_capacity_add = 1
men_at_arms_cap = 1
enemy_hostile_scheme_phase_duration_add = miniscule_scheme_phase_duration_malus_value
character_travel_safety_mult = 0.02
}
ai_value = {
value = 100
}
asset = {
trigger = {
domicile_location.culture = {
has_graphical_east_asia_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/domicile_building/farmstead_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/farmstead_main.dds"
texture = "gfx/interface/window_domiciles/farmstead_building_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farmstead_building_mena_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
trigger = {
domicile_location.culture = {
OR = {
has_graphical_western_culture_group_trigger = yes
has_graphical_norse_culture_group_trigger = yes
}
}
}
icon = "gfx/interface/icons/domicile_building/farmstead_main.dds"
texture = "gfx/interface/window_domiciles/farmstead_building_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farmstead_building_western_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
icon = "gfx/interface/icons/domicile_building/farmstead_main.dds"
texture = "gfx/interface/window_domiciles/farmstead_building_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farmstead_building_byzantine_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
}
farmstead_main_03 = {
slot_type = main
construction_time = 730
allowed_domicile_types = { farmstead }
previous_building = farmstead_main_02
can_construct = {
culture ?= { has_innovation = innovation_manorialism }
}
cost = {
gold = estate_external_building_high_cost_tier_4_value
}
parameters = {
camp_unlocks_second_officer = yes
reduce_success_of_raid_estate = yes
estate_increase_house_member_investment_cap_2 = yes
}
character_modifier = {
domicile_monthly_gold_add = 0.5
domicile_monthly_gold_mult = 0.02
domicile_external_slots_capacity_add = 1
maa_toughness_mult = 0.05
enemy_hostile_scheme_phase_duration_add = minor_scheme_phase_duration_malus_value
character_travel_safety_mult = 0.02
monthly_barter_goods = 1.4
}
ai_value = {
value = 100
}
asset = {
trigger = {
domicile_location.culture = {
has_graphical_east_asia_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/domicile_building/farmstead_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/farmstead_main.dds"
texture = "gfx/interface/window_domiciles/farmstead_building_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farmstead_building_mena_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
trigger = {
domicile_location.culture = {
OR = {
has_graphical_western_culture_group_trigger = yes
has_graphical_norse_culture_group_trigger = yes
}
}
}
icon = "gfx/interface/icons/domicile_building/farmstead_main.dds"
texture = "gfx/interface/window_domiciles/farmstead_building_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farmstead_building_western_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
icon = "gfx/interface/icons/domicile_building/farmstead_main.dds"
texture = "gfx/interface/window_domiciles/farmstead_building_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farmstead_building_byzantine_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
}
farmstead_main_04 = {
slot_type = main
construction_time = 730
allowed_domicile_types = { farmstead }
previous_building = farmstead_main_03
can_construct = {
culture ?= { has_innovation = innovation_development_03 }
}
cost = {
gold = estate_external_building_high_cost_tier_5_value
}
parameters = {
camp_unlocks_second_officer = yes
reduce_success_of_raid_estate = yes
estate_increase_house_member_investment_cap_3 = yes
}
character_modifier = {
domicile_monthly_gold_add = 0.5
domicile_monthly_gold_mult = 0.03
domicile_external_slots_capacity_add = 1
maa_toughness_mult = 0.05
men_at_arms_cap = 1
enemy_hostile_scheme_phase_duration_add = medium_scheme_phase_duration_malus_value
character_travel_safety_mult = 0.02
monthly_barter_goods = 1.6
}
ai_value = {
value = 100
}
asset = {
trigger = {
domicile_location.culture = {
has_graphical_east_asia_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/domicile_building/farmstead_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/farmstead_main.dds"
texture = "gfx/interface/window_domiciles/farmstead_building_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farmstead_building_mena_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
trigger = {
domicile_location.culture = {
OR = {
has_graphical_western_culture_group_trigger = yes
has_graphical_norse_culture_group_trigger = yes
}
}
}
icon = "gfx/interface/icons/domicile_building/farmstead_main.dds"
texture = "gfx/interface/window_domiciles/farmstead_building_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farmstead_building_western_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
icon = "gfx/interface/icons/domicile_building/farmstead_main.dds"
texture = "gfx/interface/window_domiciles/farmstead_building_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farmstead_building_byzantine_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
}
farmstead_main_05 = {
slot_type = main
construction_time = 730
allowed_domicile_types = { farmstead }
previous_building = farmstead_main_04
can_construct = {
culture ?= { has_innovation = innovation_cranes }
}
cost = {
gold = estate_external_building_high_cost_tier_6_value
}
parameters = {
camp_unlocks_second_officer = yes
reduce_success_of_raid_estate = yes
estate_increase_house_member_investment_cap_4 = yes
}
character_modifier = {
domicile_monthly_gold_add = 0.75
domicile_monthly_gold_mult = 0.05
domicile_external_slots_capacity_add = 1
maa_toughness_mult = 0.1
men_at_arms_cap = 1
enemy_hostile_scheme_phase_duration_add = medium_scheme_phase_duration_malus_value
character_travel_safety_mult = 0.04
monthly_barter_goods = 1.8
}
ai_value = {
value = 100
}
asset = {
trigger = {
domicile_location.culture = {
has_graphical_east_asia_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/domicile_building/farmstead_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/farmstead_main.dds"
texture = "gfx/interface/window_domiciles/farmstead_building_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farmstead_building_mena_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
trigger = {
domicile_location.culture = {
OR = {
has_graphical_western_culture_group_trigger = yes
has_graphical_norse_culture_group_trigger = yes
}
}
}
icon = "gfx/interface/icons/domicile_building/farmstead_main.dds"
texture = "gfx/interface/window_domiciles/farmstead_building_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farmstead_building_western_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
icon = "gfx/interface/icons/domicile_building/farmstead_main.dds"
texture = "gfx/interface/window_domiciles/farmstead_building_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farmstead_building_byzantine_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
}

View file

@ -3796,7 +3796,7 @@ village_watch_06 = {
### Garden
communal_gardens_01 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
cost = {
gold = {
@ -3920,7 +3920,7 @@ communal_gardens_01 = {
}
communal_gardens_02 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = communal_gardens_01
cost = {
@ -4045,7 +4045,7 @@ communal_gardens_02 = {
}
communal_gardens_03 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = communal_gardens_02
cost = {
@ -4172,7 +4172,7 @@ communal_gardens_03 = {
# Leisure Garden sub-branch
communal_gardens_leisure_04 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = communal_gardens_03
can_construct = {
@ -4302,7 +4302,7 @@ communal_gardens_leisure_04 = {
}
communal_gardens_leisure_05 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = communal_gardens_leisure_04
can_construct = {
@ -4432,7 +4432,7 @@ communal_gardens_leisure_05 = {
}
communal_gardens_leisure_06 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = communal_gardens_leisure_05
can_construct = {
@ -4564,7 +4564,7 @@ communal_gardens_leisure_06 = {
# Fruit Garden sub-branch
communal_gardens_fruit_04 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = communal_gardens_03
can_construct = {
@ -4694,7 +4694,7 @@ communal_gardens_fruit_04 = {
}
communal_gardens_fruit_05 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = communal_gardens_fruit_04
can_construct = {
@ -4824,7 +4824,7 @@ communal_gardens_fruit_05 = {
}
communal_gardens_fruit_06 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = communal_gardens_fruit_05
can_construct = {
@ -6954,7 +6954,7 @@ village_workshop_textile_06 = {
### Storage
village_storage_01 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
cost = {
gold = {
@ -7037,7 +7037,7 @@ village_storage_01 = {
}
village_storage_02 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_storage_01
cost = {
@ -7123,7 +7123,7 @@ village_storage_02 = {
# Warehouse sub-branch
village_storage_warehouse_03 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_storage_02
can_construct = {
@ -7209,7 +7209,7 @@ village_storage_warehouse_03 = {
}
village_storage_warehouse_04 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_storage_warehouse_03
can_construct = {
@ -7297,7 +7297,7 @@ village_storage_warehouse_04 = {
# Granary sub-branch
village_storage_granary_03 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_storage_02
can_construct = {
@ -7386,7 +7386,7 @@ village_storage_granary_03 = {
}
village_storage_granary_04 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_storage_granary_03
can_construct = {
@ -7973,7 +7973,7 @@ village_market_06 = {
### Grazing Lands
village_grazing_land_01 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
cost = {
gold = {
@ -8093,7 +8093,7 @@ village_grazing_land_01 = {
}
village_grazing_land_02 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_grazing_land_01
cost = {
@ -8215,7 +8215,7 @@ village_grazing_land_02 = {
}
village_grazing_land_03 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_grazing_land_02
cost = {
@ -8338,7 +8338,7 @@ village_grazing_land_03 = {
}
village_grazing_land_04 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_grazing_land_03
can_construct = {
@ -8452,7 +8452,7 @@ village_grazing_land_04 = {
}
grazing_land_05 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_grazing_land_04
can_construct = {
@ -8566,7 +8566,7 @@ grazing_land_05 = {
}
grazing_land_06 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = grazing_land_05
can_construct = {
@ -8683,7 +8683,7 @@ grazing_land_06 = {
### Grain Fields
village_grain_fields_01 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
cost = {
gold = {
@ -8820,7 +8820,7 @@ village_grain_fields_01 = {
}
village_grain_fields_02 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_grain_fields_01
cost = {
@ -8948,7 +8948,7 @@ village_grain_fields_02 = {
}
village_grain_fields_03 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_grain_fields_02
can_construct = {
@ -9081,7 +9081,7 @@ village_grain_fields_03 = {
}
village_grain_fields_04 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_grain_fields_03
can_construct = {
@ -9214,7 +9214,7 @@ village_grain_fields_04 = {
}
village_grain_fields_05 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_grain_fields_04
can_construct = {
@ -9347,7 +9347,7 @@ village_grain_fields_05 = {
}
village_grain_fields_06 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_grain_fields_05
can_construct = {
@ -9482,7 +9482,7 @@ village_grain_fields_06 = {
### Rice Fields
village_rice_field_01 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
cost = {
gold = {
@ -9559,7 +9559,7 @@ village_rice_field_01 = {
village_rice_field_02 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_rice_field_01
cost = {
@ -9636,7 +9636,7 @@ village_rice_field_02 = {
village_rice_field_03 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_rice_field_02
can_construct = {
@ -9718,7 +9718,7 @@ village_rice_field_03 = {
village_rice_field_04 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_rice_field_03
can_construct = {
@ -9800,7 +9800,7 @@ village_rice_field_04 = {
village_rice_field_05 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_rice_field_04
can_construct = {
@ -9882,7 +9882,7 @@ village_rice_field_05 = {
village_rice_field_06 = {
construction_time = 730
allowed_domicile_types = { minority_community }
allowed_domicile_types = { minority_community farmstead }
previous_building = village_rice_field_05
can_construct = {

File diff suppressed because it is too large Load diff

View file

@ -407,6 +407,16 @@ duchy_administrative = {
ignore_top_liege_government = yes #In an administrative realm all governors vassals will use the titles of the top liege - this ensures it is only the governors that do, and not also feudal vassals, republican vassals, etc.
}
}
county_administrative = {
type = title
tier = duchy
priority = 50
governments = { administrative_government }
flavourization_rules = {
top_liege = yes
ignore_top_liege_government = yes #In an administrative realm all governors vassals will use the titles of the top liege - this ensures it is only the governors that do, and not also feudal vassals, republican vassals, etc.
}
}
#duchy_administrative_byzantine_group = {
# type = title
# tier = duchy
@ -429,6 +439,16 @@ kingdom_administrative = {
only_vassals = yes
}
}
kingdom_peasantrepublic = {
type = title
tier = kingdom
priority = 73
governments = { peasantrepublic_government }
flavourization_rules = {
top_liege = yes
ignore_top_liege_government = yes #In an administrative realm all governors vassals will use the titles of the top liege - this ensures it is only the governors that do, and not also feudal vassals, republican vassals, etc.
}
}
#kingdom_administrative_byzantine_group = {
# type = title
# tier = kingdom

View file

@ -93,6 +93,7 @@ title_prince = {
special = holder
priority = 60
titles = { k_switzerland k_saxony k_wales d_monaco d_lictenstein }
governments = { feudal_government tribal_government administrative_government }
flavourization_rules = {
top_liege = no
}
@ -103,6 +104,7 @@ title_princess = {
special = holder
priority = 60
titles = { k_switzerland k_saxony k_wales d_monaco d_lictenstein }
governments = { feudal_government tribal_government administrative_government }
flavourization_rules = {
top_liege = no
}
@ -111,6 +113,7 @@ title_principality = {
type = title
titles = { k_saxony k_wales d_monaco d_lictenstein d_andorra }
priority = 60
governments = { feudal_government tribal_government administrative_government }
flavourization_rules = {
top_liege = no
}
@ -120,6 +123,7 @@ swiss_confederation = {
type = title
titles = { k_switzerland }
priority = 60
governments = { feudal_government tribal_government administrative_government }
flavourization_rules = {
top_liege = no
}
@ -131,6 +135,7 @@ archduke = {
special = holder
priority = 47
titles = { k_austria }
governments = { feudal_government tribal_government administrative_government }
flavourization_rules = {
top_liege = no
}
@ -141,6 +146,7 @@ archduchess = {
special = holder
priority = 47
titles = { k_austria }
governments = { feudal_government tribal_government administrative_government }
flavourization_rules = {
top_liege = no
}
@ -149,6 +155,7 @@ archduchy = {
type = title
tier = kingdom
titles = { k_austria }
governments = { feudal_government tribal_government administrative_government }
priority = 47
flavourization_rules = {
top_liege = no
@ -161,6 +168,7 @@ title_high_king = {
special = holder
priority = 102
titles = { k_ireland }
governments = { feudal_government tribal_government administrative_government }
}
title_high_queen = {
type = character
@ -168,10 +176,12 @@ title_high_queen = {
special = holder
priority = 102
titles = { k_ireland }
governments = { feudal_government tribal_government administrative_government }
}
title_high_kingdom = {
type = title
titles = { k_ireland }
governments = { feudal_government tribal_government administrative_government }
priority = 102
}
@ -3996,6 +4006,7 @@ barony_feudal_sardinian = { # Curadoria
tier = barony
priority = 7
governments = { feudal_government administrative_government }
heritages = { heritage_sardic }
name_lists = { name_list_sardinian }
flavourization_rules = {
top_liege = no
@ -4008,6 +4019,7 @@ baron_feudal_male_sardinian = { # Curadore
tier = barony
priority = 7
governments = { feudal_government administrative_government }
heritages = { heritage_sardic }
name_lists = { name_list_sardinian }
flavourization_rules = {
top_liege = no
@ -4020,6 +4032,7 @@ baron_feudal_female_sardinian = { # Curadora
tier = barony
priority = 7
governments = { feudal_government administrative_government }
heritages = { heritage_sardic }
name_lists = { name_list_sardinian }
flavourization_rules = {
top_liege = no
@ -4031,6 +4044,7 @@ county_feudal_sardinian = { # Judicadu
tier = county
priority = 18
governments = { feudal_government administrative_government }
heritages = { heritage_sardic }
name_lists = { name_list_sardinian }
flavourization_rules = {
top_liege = no
@ -4043,6 +4057,7 @@ count_feudal_male_sardinian = { # Judike
tier = county
priority = 18
governments = { feudal_government administrative_government }
heritages = { heritage_sardic }
name_lists = { name_list_sardinian }
flavourization_rules = {
top_liege = no
@ -4055,6 +4070,7 @@ count_feudal_female_sardinian = { # Judesa
tier = county
priority = 18
governments = { feudal_government administrative_government }
heritages = { heritage_sardic }
name_lists = { name_list_sardinian }
flavourization_rules = {
top_liege = no
@ -4066,6 +4082,7 @@ duchy_feudal_sardinian = { # Archonate
tier = duchy
priority = 28
governments = { feudal_government administrative_government }
heritages = { heritage_sardic }
name_lists = { name_list_sardinian }
flavourization_rules = {
top_liege = no
@ -4078,6 +4095,7 @@ duke_feudal_male_sardinian = { # Archon
tier = duchy
priority = 28
governments = { feudal_government administrative_government }
heritages = { heritage_sardic }
name_lists = { name_list_sardinian }
flavourization_rules = {
top_liege = no
@ -4090,6 +4108,7 @@ duke_feudal_female_sardinian = { # Archonesa
tier = duchy
priority = 28
governments = { feudal_government administrative_government }
heritages = { heritage_sardic }
name_lists = { name_list_sardinian }
flavourization_rules = {
top_liege = no

View file

@ -131,6 +131,7 @@ county_sardinian = { # judiacate
type = title
tier = county
priority = 28
heritages = { heritage_sardic }
governments = { administrative_government }
name_lists = { name_list_sardinian }
}
@ -140,6 +141,7 @@ county_male_sardinian = { # Judex
special = holder
tier = county
priority = 28
heritages = { heritage_sardic }
governments = { administrative_government }
name_lists = { name_list_sardinian }
}
@ -149,6 +151,7 @@ county_female_sardinian = { # Judex
special = holder
tier = county
priority = 28
heritages = { heritage_sardic }
governments = { administrative_government }
name_lists = { name_list_sardinian }
@ -157,6 +160,7 @@ duchy_sardinian = { # judiacate
type = title
tier = duchy
priority = 28
heritages = { heritage_sardic }
governments = { administrative_government }
name_lists = { name_list_sardinian }
}
@ -166,6 +170,7 @@ duke_male_sardinian = { # Judex
special = holder
tier = duchy
priority = 28
heritages = { heritage_sardic }
governments = { administrative_government }
name_lists = { name_list_sardinian }
}
@ -175,6 +180,7 @@ duke_female_sardinian = { # Judex
special = holder
tier = duchy
priority = 28
heritages = { heritage_sardic }
governments = { administrative_government }
name_lists = { name_list_sardinian }
}
@ -183,6 +189,7 @@ king_administrative_sardinian = { # Archonesa
type = title
tier = kingdom
priority = 106
heritages = { heritage_sardic }
governments = { administrative_government }
name_lists = { name_list_sardinian }
}
@ -193,6 +200,7 @@ king_male_sardinian = { # Judex
special = holder
tier = kingdom
priority = 106
heritages = { heritage_sardic }
governments = { administrative_government }
name_lists = { name_list_sardinian }
}
@ -203,6 +211,7 @@ king_female_sardinian = { # Judex
special = holder
tier = kingdom
priority = 106
heritages = { heritage_sardic }
governments = { administrative_government }
}
@ -265,3 +274,120 @@ druid_king_female = { # Bandruí-Queen
top_liege = no
}
}
baron_peasantrepublic_male = {
type = character
gender = male
special = holder
tier = barony
priority = 7
governments = { peasantrepublic_government }
}
baron_peasantrepublic_female = {
type = character
gender = female
special = holder
tier = barony
priority = 7
governments = { peasantrepublic_government }
}
barony_peasantrepublic = {
type = title
tier = barony
priority = 7
governments = { peasantrepublic_government }
}
count_peasantrepublic_male = {
type = character
gender = male
special = holder
tier = county
priority = 28
governments = { peasantrepublic_government }
}
count_peasantrepublic_female = {
type = character
gender = female
special = holder
tier = county
priority = 28
governments = { peasantrepublic_government }
}
county_peasantrepublic = {
type = title
tier = county
priority = 51
governments = { peasantrepublic_government }
}
duke_peasantrepublic_male = {
type = character
gender = male
special = holder
tier = duchy
priority = 29
governments = { peasantrepublic_government }
}
duke_peasantrepublic_female = {
type = character
gender = female
special = holder
tier = duchy
priority = 29
governments = { peasantrepublic_government }
}
duchy_peasantrepublic = {
type = title
tier = duchy
priority = 60
governments = { peasantrepublic_government }
}
king_peasantrepublic_male = {
type = character
gender = male
special = holder
tier = kingdom
priority = 75
governments = { peasantrepublic_government }
}
king_peasantrepublic_female = {
type = character
gender = female
special = holder
tier = kingdom
priority = 75
governments = { peasantrepublic_government }
}
kingdom_peasantrepublic = {
type = title
tier = kingdom
priority = 75
governments = { peasantrepublic_government }
}
emperor_peasantrepublic_male = {
type = character
gender = male
special = holder
tier = empire
priority = 102
governments = { peasantrepublic_government }
}
emperor_peasantrepublic_female = {
type = character
gender = female
special = holder
tier = empire
priority = 102
governments = { peasantrepublic_government }
}
empire_peasantrepublic = {
type = title
tier = empire
priority = 102
governments = { peasantrepublic_government }
}

View file

@ -24,5 +24,15 @@ minority_community = {
}
minority_government = {
texture = "gfx/interface/icons/government_types/landless_minority_government.dds"
parent = government
}
farmstead = {
texture = "gfx/interface/icons/government_types/peasantrepublic_government.dds"
alias = { farmstead farmstead_i }
parent = domicile
}
peasantrepublic_government = {
texture = "gfx/interface/icons/government_types/peasantrepublic_government.dds"
alias = { peasantrepublic_government peasantrepublic_i }
parent = government
}

View file

@ -23,7 +23,10 @@ feudal_government = {
ai = {
use_legends = yes
}
character_modifier = {
ai_war_cooldown = 1.5
ai_war_chance = -0.15
}
# Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player).
flags = {
government_is_feudal
@ -49,6 +52,20 @@ republic_government = {
inherit_from_dynastic_government = no
}
can_get_government = {
NOR = {
culture = {
has_cultural_tradition = tradition_farmer_republics
}
faith = {
has_doctrine = tenet_communal_possessions
}
liege = {
has_government = peasantrepublic_government
}
}
}
ai = {
arrange_marriage = no
use_goals = no
@ -175,6 +192,10 @@ clan_government = {
}
}
character_modifier = {
ai_war_cooldown = 1.5
ai_war_chance = -0.15
}
# Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player).
flags = {
government_is_clan
@ -227,8 +248,9 @@ tribal_government = {
character_travel_safety = 10
ai_war_chance = 0.25
monthly_prestige = 0.2
ai_war_cooldown = 1.5
ai_war_chance = -0.05
}
# Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player).
@ -289,6 +311,8 @@ wanua_government = { # "Wanua"
domain_limit_max = 2
vassal_limit_max = 2
ai_war_cooldown = 1.5
ai_war_chance = -0.55
}
can_get_government = {
@ -441,6 +465,8 @@ 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_chance = -0.15
}
top_liege_character_modifier = {
@ -607,6 +633,83 @@ landless_minority_government = {
realm_mask_offset = { 0.0 0.0 }
realm_mask_scale = { 1 1 }
}
peasantrepublic_government = {
primary_holding = city_holding
valid_holdings = { temple_citadel_holding }
required_county_holdings = { city_holding church_holding }
government_rules = {
create_cadet_branches = yes
court_generate_spouses = yes
council = yes
always_use_patronym = yes
rulers_should_have_dynasty = yes
landless_playable = yes
legitimacy = yes
barter = yes
mercenary = yes
use_as_base_on_landed = yes
allow_out_of_realm_inheritance = no
use_as_base_on_rank_up = yes
uses_county_fertility = yes
sticky_government = yes
replenishes_county_fertility = yes
regiments_use_barter_goods_as_gold = yes
}
can_get_government = {
OR = {
culture = {
has_cultural_tradition = tradition_farmer_republics
}
faith = {
has_doctrine = tenet_communal_possessions
}
liege = {
has_government = peasantrepublic_government
}
}
}
domicile_type = farmstead
character_modifier = {
levy_size = 1.5
feudal_government_tax_contribution_mult = -0.5
feudal_government_levy_contribution_mult = -0.5
clan_government_tax_contribution_mult = -0.5
clan_government_levy_contribution_mult = -0.5
ignore_negative_opinion_of_culture = yes
men_at_arms_cap = -1
men_at_arms_limit = -1
knight_limit = -4
active_accolades = -1
title_creation_cost_mult = 1.5
mercenary_hire_cost_mult = 2
men_at_arms_maintenance = 1.5
vassal_limit = 5
ai_war_cooldown = 1.5
ai_war_chance = -0.15
}
vassal_contract_group = peasantrepublic_vassal
# Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player).
flags = {
government_is_settled
may_elevate_co_monarch
government_uses_legitimacy
government_uses_domain_limit
government_is_herder
government_has_herd
government_is_barterer
government_is_prepublic
government_locked_to_elective
government_allows_nomad_domicile_titles
}
mechanic_type = feudal
color = hsv{ 0.30 0.60 0.68 }
realm_mask_offset = { 0.0 -0.01 }
realm_mask_scale = { 1 1 }
}
### Brief: nomad_government
# Default nomad government, used for the Steppe Region
#
@ -741,6 +844,7 @@ herder_government = {
# Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player).
flags = {
government_is_herder
government_is_true_herder
government_has_herd
ignores_faith_marriage_penalties
}
@ -808,6 +912,8 @@ 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_chance = -0.15
}
top_liege_character_modifier = {

View file

@ -40,6 +40,9 @@
}
is_confederation_member = no
}
NOT = {
government_has_flag = government_is_prepublic
}
}
should_start_with = {
NOR = {
@ -82,6 +85,7 @@
potential = {
NOR = {
government_has_flag = government_is_prepublic
government_has_flag = government_is_nomadic
government_has_flag = government_is_clan
government_has_flag = government_is_administrative
@ -126,6 +130,9 @@
is_confederation_member = yes
}
}
NOT = {
government_has_flag = government_is_prepublic
}
}
should_start_with = {
NOR = {
@ -169,6 +176,7 @@
potential = {
NOR = {
government_has_flag = government_is_prepublic
government_has_flag = government_is_nomadic
government_has_flag = government_is_clan
government_has_flag = government_is_administrative
@ -190,6 +198,9 @@
can_have = {
NOT = { government_has_flag = government_is_nomadic }
can_have_high_partition_succession_law_trigger = yes
NOT = {
government_has_flag = government_is_prepublic
}
}
should_start_with = {
NOR = {
@ -234,6 +245,7 @@
potential = {
NOR = {
government_has_flag = government_is_prepublic
government_has_flag = government_is_nomadic
government_has_flag = government_is_clan
government_has_flag = government_is_administrative
@ -264,6 +276,9 @@
can_have = {
NOT = { government_has_flag = government_is_nomadic }
can_have_single_heir_succession_law_trigger = yes
NOT = {
government_has_flag = government_is_prepublic
}
}
can_pass = {
can_change_succession_law_trigger = yes
@ -323,6 +338,7 @@
potential = {
NOR = {
government_has_flag = government_is_prepublic
government_has_flag = government_is_nomadic
government_has_flag = government_is_mandala
}
@ -344,6 +360,9 @@
}
can_have = {
government_has_flag = government_is_nomadic
NOT = {
government_has_flag = government_is_prepublic
}
}
can_pass = {
government_has_flag = government_is_nomadic
@ -395,6 +414,9 @@
can_have = {
NOT = { government_has_flag = government_is_nomadic }
can_have_single_heir_youngest_succession_law_trigger = yes
NOT = {
government_has_flag = government_is_prepublic
}
}
can_pass = {
can_change_succession_law_trigger = yes
@ -475,6 +497,9 @@
can_have = {
NOT = { government_has_flag = government_is_nomadic }
can_have_single_heir_dynasty_house_trigger = yes
NOT = {
government_has_flag = government_is_prepublic
}
}
can_pass = {
can_change_single_heir_dynasty_house_succession_law_trigger = yes
@ -537,6 +562,7 @@
potential = {
NOR = {
government_has_flag = government_is_prepublic
government_has_flag = government_is_administrative
government_has_flag = government_is_nomadic
government_has_flag = government_is_mandala
@ -554,6 +580,9 @@
can_have = {
NOT = { government_has_flag = government_is_nomadic }
can_have_acclamation_succession_law_trigger = yes
NOT = {
government_has_flag = government_is_prepublic
}
}
should_start_with = {
has_ep3_dlc_trigger = yes
@ -586,6 +615,7 @@
government_allows = administrative
is_independent_ruler = yes
NOR = {
government_has_flag = government_is_prepublic
government_has_flag = government_is_celestial
government_has_flag = government_is_japan_administrative
government_has_flag = government_is_meritocratic
@ -609,6 +639,9 @@
can_have = {
NOT = { government_has_flag = government_is_nomadic }
can_have_appointment_succession_law_trigger = yes
NOT = {
government_has_flag = government_is_prepublic
}
}
can_pass = {
can_change_appointment_succession_law_trigger = yes
@ -673,6 +706,9 @@
}
can_have = {
government_has_flag = government_is_landless_adventurer
NOT = {
government_has_flag = government_is_prepublic
}
}
can_pass = {
government_has_flag = government_is_landless_adventurer
@ -704,9 +740,15 @@
bishop_theocratic_succession_law = {
can_keep = {
can_have_bishop_theocratic_succession_law_trigger = yes # same as can_have
NOT = {
government_has_flag = government_is_prepublic
}
}
can_have = {
can_have_bishop_theocratic_succession_law_trigger = yes
NOT = {
government_has_flag = government_is_prepublic
}
}
should_start_with = {
always = yes
@ -725,9 +767,15 @@
holy_order_succession_law = {
can_keep = {
can_have_holy_order_succession_law_trigger = yes # same as can_have
NOT = {
government_has_flag = government_is_prepublic
}
}
can_have = {
can_have_holy_order_succession_law_trigger = yes
NOT = {
government_has_flag = government_is_prepublic
}
}
should_start_with = {
government_has_flag = government_is_holy_order
@ -766,9 +814,15 @@
city_succession_law = {
can_keep = {
can_have_city_succession_law_trigger = yes
NOT = {
government_has_flag = government_is_prepublic
}
}
can_have = {
can_have_city_succession_law_trigger = yes
NOT = {
government_has_flag = government_is_prepublic
}
}
should_start_with = {
government_has_flag = government_is_republic
@ -801,6 +855,9 @@
house ?= {
has_house_unity_stage = antagonistic
}
NOT = {
government_has_flag = government_is_prepublic
}
}
should_start_with = {
@ -858,6 +915,9 @@
house ?= {
has_house_unity_stage = competitive
}
NOT = {
government_has_flag = government_is_prepublic
}
}
should_start_with = {
government_has_flag = government_is_clan
@ -917,6 +977,9 @@
house ?= {
has_house_unity_stage = impassive
}
NOT = {
government_has_flag = government_is_prepublic
}
}
should_start_with = {
government_has_flag = government_is_clan
@ -975,6 +1038,9 @@
house ?= {
has_house_unity_stage = friendly
}
NOT = {
government_has_flag = government_is_prepublic
}
}
should_start_with = {
government_has_flag = government_is_clan
@ -1027,6 +1093,9 @@
house ?= {
has_house_unity_stage = harmonious
}
NOT = {
government_has_flag = government_is_prepublic
}
}
should_start_with = {
government_has_flag = government_is_clan
@ -1065,9 +1134,15 @@
herder_succession_law = {
can_keep = {
can_have_herder_succession_law_trigger = yes
NOT = {
government_has_flag = government_is_prepublic
}
}
can_have = {
can_have_herder_succession_law_trigger = yes
NOT = {
government_has_flag = government_is_prepublic
}
}
should_start_with = {
government_has_flag = government_is_herder
@ -1105,6 +1180,9 @@
can_have = {
government_allows = administrative
is_independent_ruler = no
NOT = {
government_has_flag = government_is_prepublic
}
}
can_pass = {
government_allows = administrative

View file

@ -5,6 +5,7 @@
government_has_flag = government_is_feudal
highest_held_title_tier >= tier_county
NOR = { #Cultures have their special flavor.
government_has_flag = government_is_prepublic
culture = { has_cultural_parameter = witenagemot_succession_enabled }
culture = { has_cultural_parameter = scandinavian_elective_enabled }
culture = { has_cultural_parameter = tribal_elective_enabled } #FP3 addition
@ -37,6 +38,9 @@
government_has_flag = government_is_feudal
government_has_flag = government_is_clan
}
NOT = {
government_has_flag = government_is_prepublic
}
highest_held_title_tier = tier_empire
}
can_pass = {
@ -67,16 +71,10 @@
# Witenagemot
saxon_elective_succession_law = {
can_have = {
OR = {
government_has_flag = government_is_feudal
government_has_flag = government_is_clan
government_has_flag = government_is_tribal
}
highest_held_title_tier >= tier_kingdom
government_has_flag = government_is_prepublic
}
can_pass = {
can_change_title_law_trigger = yes
culture = { has_cultural_parameter = witenagemot_succession_enabled }
}
can_title_have = {
can_title_have_law_general_trigger = yes
@ -93,6 +91,9 @@
pass_cost = {
prestige = change_title_succession_law_prestige_cost
}
potential = {
government_has_flag = government_is_prepublic
}
}
# Thing
@ -103,6 +104,9 @@
government_has_flag = government_is_clan
government_has_flag = government_is_tribal
}
NOT = {
government_has_flag = government_is_prepublic
}
highest_held_title_tier >= tier_duchy
}
can_pass = {
@ -134,6 +138,9 @@
government_has_flag = government_is_clan
government_has_flag = government_is_tribal
}
NOT = {
government_has_flag = government_is_prepublic
}
highest_held_title_tier >= tier_duchy
}
can_pass = {
@ -171,6 +178,9 @@
government_has_flag = government_is_clan
government_has_flag = government_is_tribal
}
NOT = {
government_has_flag = government_is_prepublic
}
highest_held_title_tier >= tier_kingdom
}
can_pass = {
@ -292,6 +302,9 @@
celestial_ministry_appointment_succession_law = {
can_have = {
government_has_flag = government_is_celestial
NOT = {
government_has_flag = government_is_prepublic
}
}
can_pass = {
}
@ -330,6 +343,9 @@
celestial_grand_marshal_appointment_succession_law = {
can_have = {
government_has_flag = government_is_celestial
NOT = {
government_has_flag = government_is_prepublic
}
}
can_pass = {
}

View file

@ -0,0 +1,915 @@
######################
# Legitimacy
######################
count_legitimacy = {
is_valid = {
highest_held_title_tier = tier_county
government_has_flag = government_is_prepublic
NOR = {
government_allows = administrative
government_has_flag = government_is_nomadic
government_has_flag = government_is_mandala
}
}
ai_expected_level = default_ai_legitimacy_expectation
below_expectations_opinion = default_legitimacy_opinion_penalty
max = legitimacy_max
# Scales based on Tier and Era
## A Tribal era Count requires 4x less than a Late Medieval era Emperor
level = {
threshold = legitimacy_level_1
modifier = {
short_reign_duration_mult = 0.25
monthly_dynasty_prestige = -0.1
county_opinion_add = -10
}
flag = reduced_marriage_acceptance
flag = increased_claim_cb_cost
flag = reduced_alliance_acceptance
flag = reduced_vassalization_acceptance
flag = reduced_tributarization_acceptance
flag = increased_factions
}
# Gap of at least 50
level = {
threshold = legitimacy_level_2 # 50-200
modifier = {
short_reign_duration_mult = -0.1
}
}
# Gap of at least 100
level = {
threshold = legitimacy_level_3 # 150-600
modifier = {
short_reign_duration_mult = -0.25
}
flag = reduced_claim_cb_cost
flag = increased_marriage_acceptance
}
# Gap of at least 200
level = {
threshold = legitimacy_level_4 # 350-1400
modifier = {
short_reign_duration_mult = -0.5
county_opinion_add = 10
}
flag = increased_marriage_acceptance
flag = increased_alliance_acceptance
flag = very_reduced_claim_cb_cost
flag = reduced_factions
flag = reduced_swing_scales_cost
flag = reduced_title_creation_cost
}
# Gap of at least 350
level = {
threshold = legitimacy_level_5 # 700-2800
modifier = {
short_reign_duration_mult = -0.75
monthly_dynasty_prestige = 0.25
county_opinion_add = 20
}
flag = very_increased_marriage_acceptance
flag = very_increased_alliance_acceptance
flag = extra_reduced_claim_cb_cost
flag = very_reduced_factions
flag = very_reduced_swing_scales_cost
flag = very_reduced_title_creation_cost
}
# Gap of at least 500
level = {
threshold = legitimacy_level_6 # 1200-4800
modifier = {
short_reign_duration_mult = -1
monthly_dynasty_prestige = 0.5
county_opinion_add = 30
}
flag = extra_increased_marriage_acceptance
flag = extra_increased_alliance_acceptance
flag = extra_reduced_claim_cb_cost
flag = extra_reduced_factions
flag = extra_swing_scales_cost
flag = extra_reduced_title_creation_cost
}
}
duke_legitimacy = {
is_valid = {
highest_held_title_tier = tier_duchy
NOT = {
government_has_flag = government_is_prepublic
}
NOR = {
government_allows = administrative
government_has_flag = government_is_nomadic
government_has_flag = government_is_mandala
}
}
ai_expected_level = default_ai_legitimacy_expectation
below_expectations_opinion = default_legitimacy_opinion_penalty
max = legitimacy_max
# Scales based on Tier and Era
## A Tribal era Count requires 4x less than a Late Medieval era Emperor
level = {
threshold = legitimacy_level_1
modifier = {
short_reign_duration_mult = 0.5
monthly_dynasty_prestige = -0.1
county_opinion_add = -10
}
flag = very_reduced_marriage_acceptance
flag = very_increased_claim_cb_cost
flag = very_reduced_alliance_acceptance
flag = very_reduced_vassalization_acceptance
flag = slightly_reduced_tributarization_acceptance
flag = very_increased_factions
flag = very_increased_swing_scales_cost
}
# Gap of at least 50
level = {
threshold = legitimacy_level_2 # 50-200
modifier = {
short_reign_duration_mult = 0.1
county_opinion_add = -5
}
flag = reduced_marriage_acceptance
flag = increased_claim_cb_cost
flag = reduced_alliance_acceptance
flag = reduced_vassalization_acceptance
flag = reduced_tributarization_acceptance
flag = increased_factions
flag = increased_swing_scales_cost
}
# Gap of at least 100
level = {
threshold = legitimacy_level_3 # 150-600
modifier = {
short_reign_duration_mult = -0.15
}
}
# Gap of at least 200
level = {
threshold = legitimacy_level_4 # 350-1400
modifier = {
short_reign_duration_mult = -0.35
}
flag = increased_marriage_acceptance
flag = reduced_claim_cb_cost
flag = increased_alliance_acceptance
flag = increased_vassalization_acceptance
flag = increased_tributarization_acceptance
flag = reduced_factions
flag = reduced_swing_scales_cost
flag = reduced_title_creation_cost
}
# Gap of at least 350
level = {
threshold = legitimacy_level_5 # 700-2800
modifier = {
short_reign_duration_mult = -0.65
county_opinion_add = 10
}
flag = very_increased_marriage_acceptance
flag = very_reduced_claim_cb_cost
flag = very_increased_alliance_acceptance
flag = very_increased_vassalization_acceptance
flag = very_increased_tributarization_acceptance
flag = very_reduced_factions
flag = very_reduced_swing_scales_cost
flag = very_reduced_title_creation_cost
}
# Gap of at least 500
level = {
threshold = legitimacy_level_6 # 1200-4800
modifier = {
short_reign_duration_mult = -1
monthly_dynasty_prestige = 0.25
county_opinion_add = 20
}
flag = extra_increased_marriage_acceptance
flag = extra_reduced_claim_cb_cost
flag = extra_increased_alliance_acceptance
flag = extra_increased_vassalization_acceptance
flag = extra_increased_tributarization_acceptance
flag = extra_reduced_factions
flag = extra_reduced_swing_scales_cost
flag = extra_reduced_title_creation_cost
}
}
king_legitimacy = {
is_valid = {
highest_held_title_tier = tier_kingdom
NOT = {
government_has_flag = government_is_prepublic
}
OR = {
NOT = { government_allows = administrative }
top_liege = this
}
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_mandala
}
}
ai_expected_level = default_ai_legitimacy_expectation
below_expectations_opinion = default_legitimacy_opinion_penalty
max = legitimacy_max
# Scales based on Tier and Era
## A Tribal era Count requires 4x less than a Late Medieval era Emperor
level = {
threshold = legitimacy_level_1
modifier = {
short_reign_duration_mult = 0.75
monthly_dynasty_prestige = -0.2
county_opinion_add = -20
}
flag = very_reduced_marriage_acceptance
flag = very_increased_claim_cb_cost
flag = very_reduced_alliance_acceptance
flag = very_reduced_vassalization_acceptance
flag = reduced_tributarization_acceptance
flag = very_increased_factions
flag = very_increased_swing_scales_cost
}
# Gap of at least 50
level = {
threshold = legitimacy_level_2 # 50-200
modifier = {
short_reign_duration_mult = 0.5
monthly_dynasty_prestige = -0.1
county_opinion_add = -10
}
flag = reduced_marriage_acceptance
flag = increased_claim_cb_cost
flag = reduced_alliance_acceptance
flag = reduced_vassalization_acceptance
flag = slightly_reduced_tributarization_acceptance
flag = increased_factions
flag = increased_swing_scales_cost
}
# Gap of at least 100
level = {
threshold = legitimacy_level_3 # 150-600
modifier = {
short_reign_duration_mult = 0.25
}
flag = reduced_marriage_acceptance
flag = reduced_vassalization_acceptance
flag = increased_claim_cb_cost
}
# Gap of at least 200
level = {
threshold = legitimacy_level_4 # 350-1400
modifier = {
short_reign_duration_mult = -0.10
}
}
# Gap of at least 350
level = {
threshold = legitimacy_level_5 # 700-2800
modifier = {
short_reign_duration_mult = -0.25
}
flag = increased_marriage_acceptance
flag = reduced_claim_cb_cost
flag = increased_alliance_acceptance
flag = increased_vassalization_acceptance
flag = increased_tributarization_acceptance
flag = reduced_factions
flag = reduced_swing_scales_cost
flag = reduced_title_creation_cost
}
# Gap of at least 500
level = {
threshold = legitimacy_level_6 # 1200-4800
modifier = {
short_reign_duration_mult = -0.5
county_opinion_add = 10
monthly_dynasty_prestige = 0.25
}
flag = very_increased_marriage_acceptance
flag = very_reduced_claim_cb_cost
flag = very_increased_alliance_acceptance
flag = very_increased_vassalization_acceptance
flag = very_increased_tributarization_acceptance
flag = very_reduced_factions
flag = very_reduced_swing_scales_cost
flag = very_reduced_title_creation_cost
}
}
emperor_legitimacy = {
is_valid = {
highest_held_title_tier = tier_empire
NOT = {
government_has_flag = government_is_prepublic
}
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_mandala
}
}
ai_expected_level = default_ai_legitimacy_expectation
below_expectations_opinion = default_legitimacy_opinion_penalty
max = legitimacy_max
# Scales based on Tier and Era
## A Tribal era Count requires 4x less than a Late Medieval era Emperor
level = {
threshold = legitimacy_level_1
modifier = {
short_reign_duration_mult = 1
monthly_dynasty_prestige = -0.3
county_opinion_add = -30
}
flag = massively_reduced_marriage_acceptance
flag = massively_increased_claim_cb_cost
flag = massively_reduced_vassalization_acceptance
flag = massively_reduced_tributarization_acceptance
flag = massively_reduced_alliance_acceptance
flag = massively_increased_factions
flag = massively_increased_swing_scales_cost
}
# Gap of at least 50
level = {
threshold = legitimacy_level_2 # 50-200
modifier = {
short_reign_duration_mult = 0.65
monthly_dynasty_prestige = -0.2
county_opinion_add = -20
}
flag = very_reduced_marriage_acceptance
flag = very_increased_claim_cb_cost
flag = very_reduced_alliance_acceptance
flag = very_reduced_vassalization_acceptance
flag = very_reduced_tributarization_acceptance
flag = very_increased_factions
flag = very_increased_swing_scales_cost
}
# Gap of at least 100
level = {
threshold = legitimacy_level_3 # 150-600
modifier = {
short_reign_duration_mult = 0.35
monthly_dynasty_prestige = -0.1
county_opinion_add = -10
}
flag = reduced_marriage_acceptance
flag = reduced_alliance_acceptance
flag = increased_claim_cb_cost
flag = reduced_vassalization_acceptance
flag = reduced_tributarization_acceptance
flag = increased_factions
flag = increased_swing_scales_cost
}
# Gap of at least 200
level = {
threshold = legitimacy_level_4 # 350-1400
modifier = {
short_reign_duration_mult = 0.15
}
flag = reduced_marriage_acceptance
flag = reduced_vassalization_acceptance
flag = slightly_reduced_tributarization_acceptance
flag = increased_claim_cb_cost
}
# Gap of at least 350
level = {
threshold = legitimacy_level_5 # 700-2800
modifier = {
short_reign_duration_mult = -0.1
}
}
# Gap of at least 500
level = {
threshold = legitimacy_level_6 # 1200-4800
modifier = {
short_reign_duration_mult = -0.25
county_opinion_add = 10
}
flag = increased_marriage_acceptance
flag = reduced_claim_cb_cost
flag = increased_alliance_acceptance
flag = increased_vassalization_acceptance
flag = increased_tributarization_acceptance
flag = reduced_factions
flag = reduced_title_creation_cost
flag = reduced_swing_scales_cost
}
}
hegemon_legitimacy = {
is_valid = {
highest_held_title_tier = tier_hegemony
NOT = {
government_has_flag = government_is_prepublic
}
NOT = { government_has_flag = government_is_mandala }
NAND = {
has_tgp_dlc_trigger = yes
has_title = title:h_china
}
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_mandala
}
}
ai_expected_level = default_ai_legitimacy_expectation
below_expectations_opinion = default_legitimacy_opinion_penalty
max = legitimacy_max
# Scales based on Tier and Era
## A Tribal era Count requires 4x less than a Late Medieval era Emperor
level = {
threshold = legitimacy_level_1
modifier = {
short_reign_duration_mult = 1.25
monthly_dynasty_prestige = -0.4
county_opinion_add = -40
}
flag = massively_reduced_marriage_acceptance
flag = massively_increased_claim_cb_cost
flag = massively_reduced_vassalization_acceptance
flag = massively_reduced_tributarization_acceptance
flag = massively_reduced_alliance_acceptance
flag = massively_increased_factions
flag = massively_increased_swing_scales_cost
}
# Gap of at least 50
level = {
threshold = legitimacy_level_2 # 50-200
modifier = {
short_reign_duration_mult = 0.75
monthly_dynasty_prestige = -0.3
county_opinion_add = -30
}
flag = very_reduced_marriage_acceptance
flag = very_increased_claim_cb_cost
flag = very_reduced_alliance_acceptance
flag = very_reduced_vassalization_acceptance
flag = very_reduced_tributarization_acceptance
flag = very_increased_factions
flag = very_increased_swing_scales_cost
}
# Gap of at least 100
level = {
threshold = legitimacy_level_3 # 150-600
modifier = {
short_reign_duration_mult = 0.5
monthly_dynasty_prestige = -0.2
county_opinion_add = -20
}
flag = reduced_marriage_acceptance
flag = reduced_alliance_acceptance
flag = increased_claim_cb_cost
flag = reduced_vassalization_acceptance
flag = reduced_tributarization_acceptance
flag = increased_factions
flag = increased_swing_scales_cost
}
# Gap of at least 200
level = {
threshold = legitimacy_level_4 # 350-1400
modifier = {
short_reign_duration_mult = 0.2
}
flag = reduced_marriage_acceptance
flag = reduced_vassalization_acceptance
flag = slightly_reduced_tributarization_acceptance
flag = increased_claim_cb_cost
}
# Gap of at least 350
level = {
threshold = legitimacy_level_5 # 700-2800
}
# Gap of at least 500
level = {
threshold = legitimacy_level_6 # 1200-4800
modifier = {
short_reign_duration_mult = -0.25
county_opinion_add = 10
}
flag = increased_marriage_acceptance
flag = reduced_claim_cb_cost
flag = increased_alliance_acceptance
flag = increased_vassalization_acceptance
flag = increased_tributarization_acceptance
flag = reduced_factions
flag = reduced_title_creation_cost
flag = reduced_swing_scales_cost
}
}
mandate_legitimacy = {
is_valid = {
highest_held_title_tier = tier_hegemony
NOT = {
government_has_flag = government_is_prepublic
}
has_tgp_dlc_trigger = yes
has_title = title:h_china
}
# must be equal to the dynastic_cycle_legitimacy_expectation script value and not dependent on vassal scopes
ai_expected_level = dynastic_cycle_legitimacy_expectation
below_expectations_opinion = default_legitimacy_opinion_penalty
max = mandate_legitimacy_max
# Scales based on Tier and Era
## A Tribal era Count requires 4x less than a Late Medieval era Emperor
level = {
threshold = legitimacy_level_1
on_level_entered = {
situation:dynastic_cycle ?= {
if = {
limit = {
situation_top_has_catalyst = catalyst_hegemon_lost_mandate_of_heaven
months_from_game_start > 0 # We check this to avoid potentially triggering this immediately on game start
}
trigger_situation_catalyst = catalyst_hegemon_lost_mandate_of_heaven
}
}
}
on_level_entered_desc = {
desc = legitimacy_on_entered_lost_mandate
}
modifier = {
short_reign_duration_mult = 1.25
monthly_dynasty_prestige = -0.4
county_opinion_add = -40
}
flag = massively_reduced_marriage_acceptance
flag = massively_increased_claim_cb_cost
flag = massively_reduced_vassalization_acceptance
flag = massively_reduced_tributarization_acceptance
flag = massively_reduced_alliance_acceptance
flag = massively_increased_factions
flag = massively_increased_swing_scales_cost
}
# Gap of at least 50
level = {
threshold = legitimacy_level_2 # 50-200
modifier = {
short_reign_duration_mult = 0.75
monthly_dynasty_prestige = -0.3
county_opinion_add = -30
}
flag = very_reduced_marriage_acceptance
flag = very_increased_claim_cb_cost
flag = very_reduced_alliance_acceptance
flag = very_reduced_vassalization_acceptance
flag = very_reduced_tributarization_acceptance
flag = very_increased_factions
flag = very_increased_swing_scales_cost
}
# Gap of at least 100
level = {
threshold = legitimacy_level_3 # 150-600
modifier = {
short_reign_duration_mult = 0.5
monthly_dynasty_prestige = -0.2
county_opinion_add = -20
}
flag = reduced_marriage_acceptance
flag = reduced_alliance_acceptance
flag = increased_claim_cb_cost
flag = reduced_vassalization_acceptance
flag = reduced_tributarization_acceptance
flag = increased_factions
flag = increased_swing_scales_cost
}
# Gap of at least 200
level = {
threshold = legitimacy_level_4 # 350-1400
modifier = {
short_reign_duration_mult = 0.2
}
flag = reduced_marriage_acceptance
flag = reduced_vassalization_acceptance
flag = slightly_reduced_tributarization_acceptance
flag = increased_claim_cb_cost
}
# Gap of at least 350
level = {
threshold = legitimacy_level_5 # 700-2800
}
# Gap of at least 500
level = {
threshold = legitimacy_level_6 # 1200-4800
modifier = {
short_reign_duration_mult = -0.25
county_opinion_add = 10
}
flag = reduced_claim_cb_cost
flag = increased_marriage_acceptance
flag = increased_tributarization_acceptance
flag = reduced_factions
flag = reduced_title_creation_cost
flag = reduced_swing_scales_cost
}
level = {
threshold = legitimacy_level_7 # 1650-6600
modifier = {
tributary_opinion = 20
county_opinion_add = 20
monthly_dynasty_prestige = 0.15
}
flag = very_reduced_claim_cb_cost
flag = very_increased_marriage_acceptance
flag = extra_increased_tributarization_acceptance
flag = reduced_factions
flag = reduced_title_creation_cost
flag = reduced_swing_scales_cost
}
level = {
threshold = legitimacy_level_8
modifier = {
tributary_opinion = 30
county_opinion_add = 25
monthly_dynasty_prestige = 0.25
}
flag = very_reduced_claim_cb_cost
flag = very_increased_marriage_acceptance
flag = extra_increased_tributarization_acceptance
flag = reduced_factions
flag = reduced_title_creation_cost
flag = reduced_swing_scales_cost
}
}
nomadic_legitimacy = {
is_valid = {
has_mpo_dlc_trigger = yes
NOT = {
government_has_flag = government_is_prepublic
}
government_has_flag = government_is_nomadic
}
ai_expected_level = default_ai_legitimacy_expectation
below_expectations_opinion = default_legitimacy_opinion_penalty
max = legitimacy_max
# Scales based on Tier and Era
## A Tribal era Count requires 4x less than a Late Medieval era Emperor
level = {
threshold = legitimacy_level_1
modifier = {
short_reign_duration_mult = 0.75
county_opinion_add = -10
herd_gain_mult = -0.05
dread_baseline_add = -30
}
flag = very_reduced_marriage_acceptance
flag = very_reduced_alliance_acceptance
flag = very_reduced_vassalization_acceptance
flag = very_reduced_tributarization_acceptance
flag = very_reduced_confederation_acceptance
flag = reduced_obedience_acceptance
}
# Gap of at least 50
level = {
threshold = legitimacy_level_2 # 50-200
modifier = {
short_reign_duration_mult = 0.5
county_opinion_add = -5
dread_baseline_add = -15
}
flag = reduced_marriage_acceptance
flag = reduced_alliance_acceptance
flag = reduced_vassalization_acceptance
flag = reduced_tributarization_acceptance
flag = reduced_confederation_acceptance
flag = reduced_obedience_acceptance
}
# Gap of at least 100
level = {
threshold = legitimacy_level_3 # 150-600
modifier = {
short_reign_duration_mult = 0.25
dread_baseline_add = -5
}
flag = reduced_marriage_acceptance
flag = reduced_vassalization_acceptance
flag = reduced_obedience_acceptance
}
# Gap of at least 200
level = {
threshold = legitimacy_level_4 # 350-1400
modifier = {
tributary_opinion = 5
herd_gain_mult = 0.05
}
flag = increased_obedience_acceptance
}
# Gap of at least 350
level = {
threshold = legitimacy_level_5 # 700-2800
modifier = {
tributary_opinion = 10
herd_gain_mult = 0.15
}
flag = increased_marriage_acceptance
flag = increased_alliance_acceptance
flag = increased_vassalization_acceptance
flag = increased_tributarization_acceptance
flag = increased_confederation_acceptance
flag = reduced_factions
flag = reduced_swing_scales_cost
flag = increased_obedience_acceptance
}
# Gap of at least 500
level = {
threshold = legitimacy_level_6 # 1200-4800
modifier = {
tributary_opinion = 15
county_opinion_add = 10
monthly_dynasty_prestige = 0.25
herd_gain_mult = 0.30
}
flag = very_increased_marriage_acceptance
flag = very_increased_alliance_acceptance
flag = very_increased_vassalization_acceptance
flag = very_increased_tributarization_acceptance
flag = very_increased_confederation_acceptance
flag = very_reduced_factions
flag = very_reduced_swing_scales_cost
flag = increased_obedience_acceptance
}
}
mandala_legitimacy = {
is_valid = {
has_tgp_dlc_trigger = yes
NOT = {
government_has_flag = government_is_prepublic
}
government_has_flag = government_is_mandala
}
ai_expected_level = default_ai_mandala_legitimacy_expectation
below_expectations_opinion = default_legitimacy_opinion_penalty
max = mandala_legitimacy_max
# Scales based on Tier and Era
## A Tribal era Count requires 4x less than a Late Medieval era Emperor
level = {
threshold = mandala_legitimacy_level_1
modifier = {
short_reign_duration_mult = 0.75
county_opinion_add = -10
monthly_piety_gain_mult = -0.05
}
flag = massively_increased_claim_cb_cost
flag = massively_reduced_marriage_acceptance
flag = massively_reduced_alliance_acceptance
flag = massively_reduced_vassalization_acceptance
flag = slightly_reduced_tributarization_acceptance
flag = very_increased_factions
}
# Gap of at least 200
level = {
threshold = mandala_legitimacy_level_2 # 200-800
modifier = {
short_reign_duration_mult = 0.5
county_opinion_add = -5
}
flag = very_increased_claim_cb_cost
flag = very_reduced_marriage_acceptance
flag = very_reduced_alliance_acceptance
flag = very_reduced_vassalization_acceptance
flag = slightly_reduced_tributarization_acceptance
flag = increased_factions
}
# Gap of at least 220
level = {
threshold = mandala_legitimacy_level_3 # 420-1680
modifier = {
short_reign_duration_mult = 0.25
}
flag = increased_claim_cb_cost
flag = reduced_marriage_acceptance
flag = reduced_alliance_acceptance
flag = reduced_vassalization_acceptance
flag = increased_factions
}
# Gap of at least 220
level = {
threshold = mandala_legitimacy_level_4 # 640-2560
modifier = {
tributary_opinion = 5
monthly_piety_gain_mult = 0.05
}
flag = reduced_vassalization_acceptance
}
# Gap of at least 270
level = {
threshold = mandala_legitimacy_level_5 # 910-3640
modifier = {
tributary_opinion = 10
monthly_piety_gain_mult = 0.15
}
flag = reduced_claim_cb_cost
flag = increased_marriage_acceptance
flag = increased_alliance_acceptance
flag = increased_tributarization_acceptance
flag = reduced_factions
flag = reduced_swing_scales_cost
}
# Gap of at least 330
level = {
threshold = mandala_legitimacy_level_6 # 1240-4960
modifier = {
tributary_opinion = 15
county_opinion_add = 10
monthly_piety_gain_mult = 0.2
monthly_dynasty_prestige = 0.15
}
flag = reduced_claim_cb_cost
flag = increased_marriage_acceptance
flag = increased_alliance_acceptance
flag = very_increased_tributarization_acceptance
flag = reduced_factions
flag = reduced_swing_scales_cost
}
# Gap of at least 550
level = {
threshold = mandala_legitimacy_level_7 # 1650-6600
modifier = {
tributary_opinion = 20
county_opinion_add = 20
monthly_piety_gain_mult = 0.3
monthly_dynasty_prestige = 0.15
}
flag = very_reduced_claim_cb_cost
flag = very_increased_marriage_acceptance
flag = very_increased_alliance_acceptance
flag = extra_increased_tributarization_acceptance
flag = very_reduced_factions
flag = very_reduced_swing_scales_cost
}
# Gap of at least 550
level = {
threshold = mandala_legitimacy_level_8 # 2200-8800
modifier = {
tributary_opinion = 30
county_opinion_add = 25
monthly_piety_gain_mult = 0.35
monthly_dynasty_prestige = 0.25
faith_conversion_piety_cost_mult = -0.15
}
flag = very_reduced_claim_cb_cost
flag = very_increased_marriage_acceptance
flag = very_increased_alliance_acceptance
flag = increased_vassalization_acceptance
flag = extra_increased_tributarization_acceptance
flag = very_reduced_factions
flag = very_reduced_swing_scales_cost
}
# Gap of at least 700
level = {
threshold = mandala_legitimacy_level_9 # 3000-12000
modifier = {
tributary_opinion = 35
county_opinion_add = 35
monthly_piety_gain_mult = 0.4
monthly_dynasty_prestige = 0.3
faith_conversion_piety_cost_mult = -0.3
}
flag = extra_reduced_claim_cb_cost
flag = extra_increased_marriage_acceptance
flag = extra_increased_alliance_acceptance
flag = very_increased_vassalization_acceptance
flag = extra_increased_tributarization_acceptance
flag = extra_reduced_factions
flag = extra_reduced_swing_scales_cost
}
}

View file

@ -0,0 +1,59 @@
<key> = {
# Should this legitimacy type apply to this playable ruler, evaluated daily for the player, yearly for AI
# First valid one is selected
# root = ruler character
is_valid = {
<triggers>
}
# What level the AI expects of a liege with this legitimacy type
# root = vassal
# scope:liege = liege character
ai_expected_level = {
<script value>
}
# Opinion change for a vassal of their liege for each level below the vassal's expected legitimacy the liege is
# root = opinion holder, person who has an opinion of target
# scope:target = opinion target, aka the liege
below_expectations_opinion = <script_value>
# Maximum value of legitimacy of this type, should be larger than the last threshold
max = <script_value>
# Multiple levels can be read in, the last one a ruler is >= will be the applied level
# First level must have a threshold of 0
level = {
# root = ruler character
threshold = <script_value>
# Effect run when gaining this legitimacy level
# root = ruler character
on_level_entered = {
<effects>
}
# Dynamic description for the on_level_entered effect
# root = ruler character
on_level_entered_desc = {
first_valid = {
}
}
modifier = {
# What modifiers are applied
<modifiers>
}
# Flags to be checked with has_legitimacy_flag
# Multiple can be read in
flag = <flag_name>
}
level = {
...
}
level = {
...
}
}

View file

@ -40,7 +40,7 @@ light_footmen = {
can_recruit = {
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
@ -93,7 +93,7 @@ bowmen = {
can_recruit = {
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
@ -152,7 +152,7 @@ light_horsemen = {
can_recruit = {
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
@ -219,7 +219,7 @@ pikemen_unit = {
can_recruit = {
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
@ -276,7 +276,7 @@ armored_footmen = {
}
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
@ -331,7 +331,7 @@ onager = {
}
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
@ -377,7 +377,7 @@ armored_horsemen = {
}
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
NOT = {
culture = { has_cultural_parameter = strength_in_numbers_heavy_maa_ban }
@ -441,7 +441,7 @@ mangonel = {
}
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
@ -487,7 +487,7 @@ crossbowmen = {
}
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
@ -543,7 +543,7 @@ trebuchet = {
}
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
@ -585,7 +585,7 @@ bombard = {
}
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}

View file

@ -0,0 +1,417 @@
# standard costs
@maa_buy_cost = 150
@maa_low_maintenance_cost = 1.0
@maa_high_maintenance_cost = 5.0
@cultural_maa_extra_ai_score = 80 # Equivalent to having 8 extra regiments beyond what the code scoring would indicate (see NEGATIVE_SCORE_PER_EXISTING_REGIMENT)
# Must be synced between files with the values located at "# Provisions Costs #".
@provisions_cost_infantry_cheap = 3
@provisions_cost_infantry_moderate = 7
@provisions_cost_infantry_expensive = 12
@provisions_cost_infantry_bankrupting = 15
@provisions_cost_cavalry_cheap = 7
@provisions_cost_cavalry_moderate = 15
@provisions_cost_cavalry_expensive = 21
@provisions_cost_cavalry_bankrupting = 30
@provisions_cost_special_cheap = 6
@provisions_cost_special_moderate = 12
@provisions_cost_special_expensive = 18
@provisions_cost_special_bankrupting = 24
nomadic_riders = {
type = nomadic_horde
damage = 12
toughness = 12
pursuit = 10
screen = 15
terrain_bonus = {
steppe = { damage = 8 pursuit = 10 }
plains = { damage = 4 pursuit = 6 }
drylands = { damage = 4 pursuit = 6 }
}
# No cost as this is the basic type of MAA given by converting your Herd
provision_cost = @provisions_cost_cavalry_cheap
# Prevents this MaA type from being shown in the interface
# Nomadic Riders are always created and raised from code
special_recruit_only = yes
illustration = {
trigger = {
OR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_true_herder
}
}
reference = nomadic_riders
}
illustration = {
reference = light_cavalry
}
stack = 100
# No AI for the same reason as above
icon = nomadic_riders
}
torch_bearers = {
type = siege_weapon
fights_in_main_phase = no
damage = 20
toughness = 12
siege_tier = 1
siege_value = 0.1
can_recruit = {
government_has_flag = government_is_nomadic
}
holding_bonus = {
nomad_holding = {
siege_value = 0.3
}
tribal_holding = {
siege_value = 0.1
}
}
buy_cost = { gold = torch_bearers_recruitment_cost }
low_maintenance_cost = { gold = torch_bearers_low_maint_cost }
high_maintenance_cost = { gold = torch_bearers_high_maint_cost }
provision_cost = @provisions_cost_special_cheap
stack = 10
allowed_in_hired_troops = no
icon = torch_bearers
}
kheshig = {
type = archer_cavalry
damage = 94
toughness = 60
pursuit = 24
screen = 36
terrain_bonus = {
steppe = { damage = 90 screen = 20 }
plains = { damage = 50 screen = 10 }
drylands = { damage = 20 }
jungle = { damage = -40 pursuit = -20 }
wetlands = { damage = -70 pursuit = -40 }
mountains = { damage = -70 pursuit = -40 }
desert_mountains = { damage = -70 pursuit = -40 }
}
can_recruit = {
dynasty ?= { has_dynasty_perk = mpo_nomad_legacy_4 }
}
counters = {
light_cavalry = 1
heavy_cavalry = 0.5
elephant_cavalry = 1
}
max_regiments = 1
buy_cost = { gold = kheshig_recruitment_cost }
low_maintenance_cost = { gold = kheshig_veterans_low_maint_cost }
high_maintenance_cost = { gold = kheshig_veterans_high_maint_cost }
provision_cost = @provisions_cost_cavalry_cheap
stack = 50
ai_quality = { value = 100 }
icon = keshig
}
steppe_raiders = {
type = light_cavalry
damage = 22
toughness = 15
pursuit = 30
screen = 30
terrain_bonus = {
steppe = { damage = 15 }
plains = { damage = 15 }
drylands = { damage = 15 }
desert = { damage = 10 }
forest = { damage = 5 }
taiga = { damage = 5 }
mountains = { damage = -5 pursuit = -10 }
desert_mountains = { damage = -5 pursuit = -10 }
wetlands = { damage = -10 toughness = -5 pursuit = -15 screen = -15 }
}
counters = {
archers = 1
gunpowder = 1
}
can_recruit = {
mpo_can_recruit_nomad_maa_trigger = yes
}
buy_cost = { gold = steppe_raiders_recruitment_cost }
low_maintenance_cost = { gold = steppe_raiders_low_maint_cost }
high_maintenance_cost = { gold = steppe_raiders_high_maint_cost }
provision_cost = @provisions_cost_cavalry_cheap
holy_order_fallback = yes
stack = 100
ai_quality = {
value = culture_ai_weight_light_cavalry
add = counter_synergy_ai_weight_light_cavalry
add = -20
}
icon = steppe_raiders
}
heavy_horse_archers = {
type = archer_cavalry
damage = 92
toughness = 42
pursuit = 24
screen = 24
terrain_bonus = {
steppe = { damage = 80 }
plains = { damage = 40 }
forest = { damage = -20 pursuit = -10 }
taiga = { damage = -20 pursuit = -10 }
jungle = { damage = -50 pursuit = -25 }
wetlands = { damage = -85 pursuit = -40 }
mountains = { damage = -85 pursuit = -40 }
desert_mountains = { damage = -85 pursuit = -40 }
}
can_recruit = {
mpo_can_recruit_nomad_maa_trigger = yes
trigger_if = {
limit = {
government_has_flag = government_is_nomadic
exists = domicile
}
domicile = {
has_domicile_parameter = unlock_maa_heavy_horse_archers
}
}
}
counters = {
light_cavalry = 1
elephant_cavalry = 1
}
winter_bonus = {
normal_winter = { damage = -10 toughness = -5 }
harsh_winter = { damage = -20 toughness = -10 }
}
buy_cost = { gold = heavy_horse_archers_recruitment_cost }
low_maintenance_cost = { gold = heavy_horse_archers_low_maint_cost }
high_maintenance_cost = { gold = heavy_horse_archers_high_maint_cost }
provision_cost = @provisions_cost_cavalry_expensive
stack = 50
ai_quality = {
value = @cultural_maa_extra_ai_score
add = 100 #I mean... they're horse archers
}
icon = heavy_horse_archers
}
nomad_lancers = {
type = heavy_cavalry
damage = 120
toughness = 30
pursuit = 20
screen = 0
terrain_bonus = {
steppe = { damage = 50 }
plains = { damage = 40 }
drylands = { damage = 10 }
hills = { damage = -20 }
mountains = { damage = -75 }
desert_mountains = { damage = -75 }
wetlands = { damage = -75 toughness = -10 pursuit = -10 }
}
can_recruit = {
mpo_can_recruit_nomad_heavy_cavalry_maa_trigger = yes
NOT = {
culture = { has_cultural_parameter = strength_in_numbers_heavy_maa_ban }
}
}
counters = {
archers = 0.5
gunpowder = 0.5
}
winter_bonus = {
normal_winter = { damage = -10 toughness = -5 }
harsh_winter = { damage = -20 toughness = -10 }
}
buy_cost = { gold = nomad_lancers_recruitment_cost }
low_maintenance_cost = { gold = nomad_lancers_low_maint_cost }
high_maintenance_cost = { gold = nomad_lancers_high_maint_cost }
provision_cost = @provisions_cost_cavalry_expensive
stack = 50
ai_quality = {
value = culture_ai_weight_heavy_cavalry
add = 100
}
icon = nomad_lancers
}
mangudai = {
type = archer_cavalry
damage = 50
toughness = 6
pursuit = 60
screen = 10
terrain_bonus = {
steppe = { damage = 45 }
plains = { damage = 20 }
hills = { damage = 10 }
mountains = { damage = -10 pursuit = -10 }
jungle = { damage = -20 pursuit = -20 }
wetlands = { damage = -30 pursuit = -30 }
desert_mountains = { damage = -30 pursuit = -30 }
}
counters = {
pikemen = 0.5
peasant_militia = 2
heavy_infantry = 1
}
can_recruit = {
valid_for_maa_trigger = { PARAMETER = unlock_maa_mangudai }
}
buy_cost = { gold = mangudai_recruitment_cost }
low_maintenance_cost = { gold = mangudai_low_maint_cost }
high_maintenance_cost = { gold = mangudai_high_maint_cost }
provision_cost = @provisions_cost_cavalry_cheap
stack = 100
ai_quality = {
value = @cultural_maa_extra_ai_score
}
icon = mangudai
}
cataphract_archers = {
type = heavy_cavalry
damage = 90
toughness = 52
pursuit = 20
screen = 10
terrain_bonus = {
steppe = { damage = 40 }
drylands = { damage = 40 }
plains = { damage = 40 }
hills = { damage = -20 }
desert_mountains = { damage = -50 }
mountains = { damage = -75 }
wetlands = { damage = -75 toughness = -10 pursuit = -10 }
}
can_recruit = {
valid_for_maa_trigger = { PARAMETER = unlock_maa_cataphract_archers }
#Either non-nomadic or has some dominance
NOT = {
culture = { has_cultural_parameter = strength_in_numbers_heavy_maa_ban }
}
OR = {
NOT = {
government_has_flag = government_is_nomadic
}
has_realm_law_flag = unlock_maa_nomad_lancers
}
}
counters = {
archer_cavalry = 1
archers = 1
gunpowder = 0.5
}
winter_bonus = {
normal_winter = { damage = -10 toughness = -5 }
harsh_winter = { damage = -20 toughness = -10 }
}
buy_cost = { gold = cataphract_archers_recruitment_cost }
low_maintenance_cost = { gold = cataphract_archers_low_maint_cost }
high_maintenance_cost = { gold = cataphract_archers_high_maint_cost }
provision_cost = @provisions_cost_cavalry_expensive
stack = 50
ai_quality = {
value = @cultural_maa_extra_ai_score
add = 200
}
icon = cataphract_archers
}
maturkan_warriors = {
type = archers
damage = 16
toughness = 15
pursuit = 0
screen = 16
terrain_bonus = {
taiga = { damage = 12 toughness = 6 }
forest = { damage = 10 toughness = 4 }
hills = { damage = 6 toughness = 3 }
mountains = { damage = 6 toughness = 3 }
}
counters = {
skirmishers = 1
}
winter_bonus = {
harsh_winter = { toughness = 6 screen = 12 }
normal_winter = { toughness = 4 screen = 8 }
}
can_recruit = {
valid_for_maa_trigger = { PARAMETER = unlock_maa_maturkan_warriors }
}
buy_cost = { gold = maturkan_warriors_recruitment_cost }
low_maintenance_cost = { gold = maturkan_warriors_low_maint_cost }
high_maintenance_cost = { gold = maturkan_warriors_high_maint_cost }
provision_cost = @provisions_cost_infantry_cheap
stack = 100
ai_quality = {
value = @cultural_maa_extra_ai_score
add = counter_synergy_ai_weight_archers
}
icon = maturkan_warriors
}

2212
common/on_action/death.txt Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,662 @@
mpo_yearly_events_nomads = {
trigger = {
has_mpo_dlc_trigger = yes
government_has_flag = government_is_nomadic
}
random_events = {
chance_to_happen = 100
# EVENT CHAINS/STORY CYCLE EVENTS
100 = nomad_events.0001 # Starts the Achmach Fanakiti event chain
# Regular events
150 = mpo_nomad_events.1030 # You choose a sport for your son to tryhard
200 = mpo_nomad_events.1020 # Your kin wants to break off from your tribe
250 = court_astrologer_events.0002 # Your Astrologer suggest a better place to migrate to
250 = nomad_events.0100 # Two vassals have a herd dispute
250 = nomad_events.0120 # You take an evening ride with someone
200 = nomad_events.0130 # A merchant offers you some herd
150 = nomad_events.0140 # A foreign merchant passes by your capital and asks to stay
250 = nomad_events.0150 # You share a drink with a courtier
300 = nomad_events.0160 # Your spouse tells you they admire you
300 = nomad_events.0170 # Your spouse is scared of your high dread
250 = nomad_events.0180 # Random courtier laughs at your child low prowess
250 = nomad_events.0190 # Reminisce of a past memory
250 = nomad_events.0200 # Someone tells you of a dream they had
250 = nomad_events.0220 # Spouse scolds you for your low Prowess
250 = nomad_events.0230 # Spouse is feeling homesick
200 = nomad_events.0240 # Neighbouring Nomad's herd shows up in your capital
100 = nomad_events.0250 # Enthusiastic priest asks you to convert
100 = nomad_events.0260 # Distant priest arrives at your court
100 = mpo_nomad_events.1050 # A neighboring herder is salty at you
300 = mpo_nomad_events.1060 # You trade with non-nomad neighbors
50 = mpo_nomad_events.1070 #You wake up after having ridden off alone
200 = mpo_nomad_events.1080 #Neighbor is intruding on your land hunting a criminal
150 = mpo_nomad_events.1100 #You adapt your herds to the local terrain
150 = mpo_nomad_events.1110 #Your capital is by a place you can fish
200 = mpo_events_tova.0025 # You are invited to a knucklebone shooting game
200 = mpo_events_tova.0030 # No astrologer? Someone comes to you with a vision
200 = mpo_events_tova.0035 # Anda comes to you with marital concerns
200 = mpo_events_tova.0045 # A Treasured Friend
250 = nomad_events_oltner.0001 # Hunt sighting in your lands
250 = nomad_events_oltner.0002 # Bird sighting in your lands
250 = nomad_events_oltner.0003 # Dangerous Hunt sighting in your lands
150 = nomad_events_oltner.0004 # Zud - Dangerous animals eat your herd
250 = nomad_events_oltner.0005 # Good season! Animals aplenty.
200 = nomad_events_oltner.0006 # You are offered a skilled Master of the Chase from a tributary
200 = nomad_events_oltner.0007 # You are offered a falcon from a tributary
50 = mpo_bb_events.0001 # blood brother comes by for a wrestling match
100 = mpo_events_anna.0001 #Train Them Young - teach a child how to ride a horse
200 = mpo_events_anna.0005 #Stories from the Past - choose a story to be told
200 = mpo_events_anna.0010 #Whistle Like an Arrow - being taught how to whistle as a child
250 = mpo_events_ariana.0001 # Nest Sighting
50 = mpo_events_ariana.0010 # Your Heir wants to convert to a different faith
250 = mpo_events_ariana.0020 # A spouse is suspicious of a councillor
250 = mpo_events_ariana.0050 # A family member risks being branded
150 = mpo_events_ariana.0060 # A child in your family spots an eagles nest with treasure
250 = mpo_events_ariana.0080 # Someone tells you about a magical tree
150 = pet_animal.3050 # Your rival has an eagle
250 = mpo_events_ariana.0090 # Your child wants to be a herder
250 = mpo_events_ariana.0100 # A non-martial gender family member is very skilled
150 = mpo_events_ariana.0110 # Your court astrologer wants you to move your capital
# SEASON SPECIFIC EVENTS
300 = mpo_nomads_season_events.0001 # Herders robbed during drought
300 = mpo_nomads_season_events.0005 # A hungry neighbour asks for herd
300 = mpo_nomads_season_events.0010 # A well-to-do neighbor offers herd
300 = mpo_nomads_season_events.0015 # Two Kurultai members fight over food
150 = nomad_events.0110 # A snow wolf attacks a child (weighted up during white zud/cold zud)
300 = nomad_events.0210 # Spouse/Child is worried about low herd
150 = mpo_nomad_events.1120 #It's winter. wolves are hungry for your herd (weighted up during white zud/cold zud)
}
}
mpo_migration_finished = {
effect = {
if = { # We send an event if you're migrating into a Tributary's lands
limit = {
has_variable = migrating_into_tributary_war_var
}
trigger_event = {
id = migration_events.0002
days = 1
}
}
set_variable = {
name = recently_migrated
years = 3
}
every_held_county = {
limit = {
exists = duchy
duchy = root.capital_province.duchy
}
change_county_control = -50
}
every_realm_province = {
limit = {
has_province_modifier = recently_looted_modifier
}
remove_province_modifier = recently_looted_modifier
}
if = {
limit = {
highest_held_title_tier >= tier_duchy
}
while = {
count = 2
trigger_event = {
on_action = mpo_migration_contract
months = 1
}
}
}
else = {
trigger_event = {
on_action = mpo_migration_contract
months = 1
}
}
domicile ?= {
move_domicile = root.capital_province
}
every_vassal = {
domicile ?= {
move_domicile = prev.capital_province
}
}
}
}
mpo_migration_contract = {
trigger = {
is_landed = yes
has_mpo_dlc_trigger = yes
government_has_flag = government_is_nomadic
has_variable = recently_migrated
any_held_county = {
is_landless_type_title = no
exists = title_province
county_control < 90
}
}
random_events = {
100 = mpo_contract_events.0001
100 = mpo_contract_events.0011
100 = mpo_contract_events.0021
100 = mpo_contract_events.0031
20 = mpo_contract_events.0041
100 = mpo_contract_events.0051
100 = mpo_contract_events.0061
100 = mpo_contract_events.0071
100 = mpo_contract_events.0081
100 = mpo_contract_events.0091
}
}
# Triggered from code on the day after a migration travel ends
#
# root - migrating ruler
# scope:actor - migration ruler (compatibility with triggers and effects used in migration interaction)
# scope:recipient - holder of the target title
# scope:target_title - higher tier title target of the migration. Can be of any tier
# scope:domain - county or duchy tier title, all land within it shall become new personal domain of the migrating ruler
#
on_migration_travel_end = {
events = {
migration_events.0001
}
effect = {
if = { # MPO ACHIEVEMENT Steppe by Steppe
limit = {
is_ai = no
exists = global_var:started_steppe_by_steppe_achievement
situation:the_great_steppe ?= {
situation_sub_region:steppe_west = {
situation_sub_region_has_county = root.capital_county
}
}
}
add_achievement_global_variable_effect = {
VARIABLE = mpo_steppe_by_steppe_achievement_unlocked
VALUE = yes
}
}
migration_title_and_vassal_change_effect = yes
trigger_event = {
on_action = mpo_migration_finished
}
}
}
# triggered from code when migration war ends
#
# root - migrating ruler
# scope:actor - migration ruler (compatibility with triggers and effects used in migration interaction)
# scope:recipient - primary defender in migration war
# scope:target_title - higher tier title target of the migration. Can be of any tier
# scope:domain - county or duchy tier title, all land within it shall become new personal domain of the migrating ruler
# scope:war - migration war. War will disappear after this onaction
on_migration_war_end = {
effect = {
if = { # MPO ACHIEVEMENT Steppe by Steppe
limit = {
is_ai = no
exists = global_var:started_steppe_by_steppe_achievement
location = {
geographical_region = world_steppe_west
}
}
add_achievement_global_variable_effect = {
VARIABLE = mpo_steppe_by_steppe_achievement_unlocked
VALUE = yes
}
}
if = {
limit = {
scope:war = { has_variable = migration_victory }
}
migration_title_and_vassal_change_effect = yes
trigger_event = {
on_action = mpo_migration_finished
}
every_character_situation = {
limit = {
any_participant_group = {
participant_group_type = nomad_rulers_capital
participant_group_has_character = root
}
}
every_participant_group = {
limit = {
participant_group_type = nomad_rulers_capital
participant_group_has_character = root
}
every_situation_group_participant = {
limit = {
save_temporary_scope_as = temp_scope
NOT = { this = root }
is_migrating = yes
exists = current_travel_plan
OR = {
current_travel_plan.final_destination_province.county = scope:target_title
scope:domain = {
any_in_de_jure_hierarchy = {
tier = tier_county
this = scope:temp_scope.current_travel_plan.final_destination_province.county
}
}
}
}
save_scope_as = invalidated_ruler
scope:invalidated_ruler = {
send_interface_message = {
type = msg_migration_into_realm
title = war_invalidated_migration
desc = war_invalidated_migration_desc
left_icon = root
right_icon = scope:invalidated_ruler
}
}
}
}
}
}
}
}
# triggered from code right after kurultai succession has been resolved
#
# root - new heir (character)
# scope:was_kurultai - (bool) if new heir was part of the predecessor's Kurultai Council
# scope:kurultai_members - list all characters who were part of the predecessor's Kurultai Council
# scope:obedient_kurultai - list all obedient characters who were part of the Kurultai Election (both Council and Children)
# scope:disobedient_kurultai - list all disobedient characters who were part of the Kurultai Election (both Council and Children)
#
on_kurultai_succession_stable = {
trigger = {
has_realm_law = single_heir_succession_kurultai_law
}
effect = {
root = {
if = {
limit = {
exists = this
"list_size(obedient_kurultai)" > 0
}
every_in_list = {
list = obedient_kurultai
limit = {
exists = this
NOT = { this = root }
}
add_opinion = {
target = root
modifier = obedience_opinion
years = 5
}
}
create_character_memory = {
type = had_stable_kurultai_succession
}
}
}
}
}
# triggered from code right after kurultai succession has been resolved
#
# root - new heir (character)
# scope:was_kurultai - (bool) if new heir was part of the predecessor's Kurultai Council
# scope:kurultai_members - list all characters who were part of the predecessor's Kurultai Council
# scope:obedient_kurultai - list all obedient characters who were part of the Kurultai Election (both Council and Children)
# scope:disobedient_kurultai - list all disobedient characters who were part of the Kurultai Election (both Council and Children)
#
on_kurultai_succession_chaotic = {
trigger = {
has_realm_law = single_heir_succession_kurultai_law
primary_title = {
title_held_years < 1
}
}
effect = {
root = {
if = {
limit = {
exists = this
"list_size(obedient_kurultai)" > 0
}
every_in_list = {
list = obedient_kurultai
limit = {
exists = this
NOT = { this = root }
}
add_opinion = {
target = root
modifier = obedience_opinion
years = 5
}
}
}
# Siblings gain claims on all your titles
every_held_title = {
limit = {
tier >= tier_county
}
save_scope_as = title_claim
root = {
every_sibling = {
limit = {
OR = {
AND = {
is_male = yes
faith_dominant_gender_male_or_equal = yes
}
AND = {
is_female = yes
faith_dominant_gender_female_or_equal = yes
}
}
NOT = {
has_claim_on = scope:title_claim
}
}
add_pressed_claim = scope:title_claim
add_to_list = ai_claimant_faction_preference
}
every_in_list = {
list = disobedient_kurultai
limit = {
OR = {
AND = {
is_male = yes
faith_dominant_gender_male_or_equal = yes
}
AND = {
is_female = yes
faith_dominant_gender_female_or_equal = yes
}
}
NOT = {
has_claim_on = scope:title_claim
}
}
add_pressed_claim = scope:title_claim
add_to_list = ai_claimant_faction_preference
}
}
}
random_in_list = {
list = ai_claimant_faction_preference
limit = {
is_physically_able = yes
}
weight = {
base = 1
modifier = {
add = martial
}
modifier = {
add = prowess
}
modifier = {
add = dread
}
modifier = {
add = -250
is_adult = no
}
}
add_character_flag = nomad_preferred_claimant
}
create_character_memory = {
type = had_chaotic_kurultai_succession
}
}
}
random_on_action = {
10 = kurultai_succession_chaotic_minor
20 = kurultai_succession_chaotic_medium
90 = kurultai_succession_chaotic_major
}
}
kurultai_succession_chaotic_minor = {
trigger = {
# No trigger for Minor penalties
NOT = {
has_character_flag = had_mongolia_split
}
}
weight_multiplier = {
base = 1
modifier = { # be a bit kinder to the AI
factor = 2
is_ai = yes
}
}
random_events = {
100 = mpo_chaotic_kurultai_succession.0001 # Siblings become your rivals
100 = mpo_chaotic_kurultai_succession.0002 # Brother seizes the lands of a Tributary and becomes independent
100 = mpo_chaotic_kurultai_succession.0003 # Tributary leaves
100 = mpo_chaotic_kurultai_succession.0004 # County Control loss
100 = mpo_chaotic_kurultai_succession.0005 # Loss of Prestige Level
100 = mpo_chaotic_kurultai_succession.0006 # 10% of Herd defects to Neighboring realm
100 = mpo_chaotic_kurultai_succession.0007 # Good Courtiers defect to Neighbor
100 = mpo_chaotic_kurultai_succession.0008 # MaA Regiment defects to neighbor
}
}
kurultai_succession_chaotic_medium = {
trigger = {
OR = {
"list_size(disobedient_kurultai)" >= 2
"list_size(obedient_kurultai)" <= 0
}
OR = {
highest_held_title_tier >= tier_kingdom
any_tributary = {
count >= 10
}
}
NOT = {
has_character_flag = had_mongolia_split
}
}
random_events = {
100 = mpo_chaotic_kurultai_succession.0009 # Gold divided by Siblings
100 = mpo_chaotic_kurultai_succession.0010 # Legitimacy -500
100 = mpo_chaotic_kurultai_succession.0011 # 20% of Herd defects to Neighboring realm
300 = mpo_chaotic_kurultai_succession.0013 # 20% Realm Split
100 = mpo_chaotic_kurultai_succession.0016 # 3 Tributaries leave
}
}
kurultai_succession_chaotic_major = {
trigger = {
OR = {
"list_size(disobedient_kurultai)" >= "list_size(obedient_kurultai)"
"list_size(obedient_kurultai)" <= 0
}
OR = {
highest_held_title_tier >= tier_kingdom
any_tributary = {
count >= 10
}
}
NOT = {
has_character_flag = had_mongolia_split
}
}
weight_multiplier = {
base = 1
modifier = { # be a bit kinder to the AI
factor = 0.5
is_ai = yes
}
}
random_events = {
300 = mpo_chaotic_kurultai_succession.0012 # 50% Split realm De Jure with Sibling
50 = mpo_chaotic_kurultai_succession.0014 # Extreme kurultai disapproval: shatter realm
100 = mpo_chaotic_kurultai_succession.0015 # 40% of Herd defects to Neighboring realm
100 = mpo_chaotic_kurultai_succession.0017 # All Tributaries leave
}
}
mpo_tributary_check_pulse = {
trigger = {
is_landed = no
is_migrating = no
is_at_war = no
number_of_tributaries > 0
}
effect = {
every_tributary = {
root = {
send_interface_message = {
type = msg_tributaries_breaking_free_bad
title = tributaries_breaking_free_message_title
left_icon = root
right_icon = prev
show_as_tooltip = {
prev = { end_tributary = yes }
}
}
}
send_interface_message = {
type = msg_tributaries_breaking_free_good
title = tributaries_breaking_free_message_player_title
left_icon = this
right_icon = root
end_tributary = yes
}
}
}
}
mpo_de_jure_shift = {
trigger = {
government_has_flag = government_is_nomadic
highest_held_title_tier >= tier_kingdom
}
effect = {
switch = {
trigger = root.highest_held_title_tier
tier_empire = {
de_jure_shifting_effect = {
UPPER_TIER = empire
LOWER_TIER = kingdom
}
}
tier_kingdom = {
de_jure_shifting_effect = {
UPPER_TIER = kingdom
LOWER_TIER = duchy
}
}
}
}
}
# root - Character who changed government
# scope:old_government - Character's old government type
on_government_change = {
effect = {
if = {
limit = {
scope:old_government = government_type:nomad_government
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
}
every_held_title = {
limit = { is_nomad_title = yes }
root = {
destroy_title = prev
}
}
}
if = {
limit = {
is_confederation_member = yes
NAND = {
government_is_japanese_trigger = yes
exists = house.house_confederation
}
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_tribal
}
}
confederation = {
remove_confederation_member = root
}
}
if = {
limit = {
has_variable = crowned_emperor_var
NOR = {
has_game_rule = coronation_laws_off
has_realm_law = crowned_emperor
}
}
add_realm_law = crowned_emperor
}
if = {
limit = {
has_variable = crowned_king_var
NOR = {
has_game_rule = coronation_laws_off
has_realm_law = crowned_king
}
}
add_realm_law = crowned_king
}
if = {
limit = { scope:old_government = government_type:mandala_government }
#Remove Aspect modifiers/variables
if = {
limit = { has_character_modifier = mandala_increments_of_peace_modifier }
remove_character_modifier = mandala_increments_of_peace_modifier
}
if = {
limit = { has_character_modifier = mandala_creator_modifier }
remove_character_modifier = mandala_creator_modifier
}
remove_variable = mandala_house_power_accumulated_increments_of_peace
remove_variable = mandala_house_power_accumulated_creator
#Remove max piety cap modifiers/variables
if = {
limit = { has_character_modifier = budding_divinity_modifier }
remove_character_modifier = budding_divinity_modifier
}
if = {
limit = { has_character_modifier = budding_deity_modifier }
remove_character_modifier = budding_deity_modifier
}
if = {
limit = { has_character_modifier = budding_godhood_modifier }
remove_character_modifier = budding_godhood_modifier
}
remove_variable = not_subject_to_succession_trials
remove_variable = tribute_mission_grace
}
if = {
limit = {
government_has_flag = government_is_mandala
is_house_head = yes
}
#Set the house aspect to default, please
house = {
set_house_aspiration = { type = no_aspect }
}
}
}
}

View file

@ -12,6 +12,33 @@ on_game_start = {
effect = {
##NEOW
if = {
limit = {
government_has_flag = government_is_prepublic
is_landed = yes
}
save_scope_as = scoped_ruler
create_nomad_title = {
name = domicile_farmstead
holder = scope:scoped_ruler
government = peasantrepublic_government
save_scope_as = new_title
}
}
if = {
limit = {
government_has_flag = government_is_prepublic
is_landed = yes
primary_title = {
NOT = {
has_title_law = saxon_elective_succession_law
}
}
}
primary_title = {
add_title_law = saxon_elective_succession_law
}
}
if = {
limit = {
government_allows = administrative
@ -3003,6 +3030,7 @@ on_game_start_after_lobby = {
save_scope_as = holder
if = {
limit = {
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
NOT = {
any_held_title = {
is_nomad_title = yes

View file

@ -196,6 +196,35 @@ on_title_gain = {
######################
# COUNTY-TIER TITLES #
######################
if = {
limit = {
government_has_flag = government_is_prepublic
NOT = {
exists = domicile
}
}
save_scope_as = scoped_ruler
create_nomad_title = {
name = domicile_farmstead
holder = scope:scoped_ruler
government = peasantrepublic_government
save_scope_as = new_title
}
}
if = {
limit = {
government_has_flag = government_is_prepublic
primary_title = {
NOT = {
has_title_law = saxon_elective_succession_law
}
}
}
primary_title = {
add_title_law = saxon_elective_succession_law
}
}
if = {
limit = {
scope:title.tier = tier_county
@ -206,6 +235,7 @@ on_title_gain = {
###########
if = {
limit = {
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
scope:title = {
is_nomad_title = yes
exists = title_domicile
@ -351,6 +381,7 @@ on_title_gain = {
if = {
limit = {
exists = global_var:game_has_started
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
NOT = {
exists = previous_holder
}
@ -2473,7 +2504,7 @@ on_title_gain = {
if = {
limit = {
has_character_flag = peasant_outfit
NOT = { government_has_flag = government_is_herder }
NOT = { government_has_flag = government_is_true_herder }
}
remove_character_flag = peasant_outfit
}
@ -2794,6 +2825,34 @@ on_title_gain_inheritance = {
diarchy.0113
}
effect = {
if = {
limit = {
government_has_flag = government_is_prepublic
NOT = {
exists = domicile
}
}
save_scope_as = scoped_ruler
create_nomad_title = {
name = domicile_farmstead
holder = scope:scoped_ruler
government = peasantrepublic_government
save_scope_as = new_title
}
}
if = {
limit = {
government_has_flag = government_is_prepublic
primary_title = {
NOT = {
has_title_law = saxon_elective_succession_law
}
}
}
primary_title = {
add_title_law = saxon_elective_succession_law
}
}
if = {
limit = {
government = landless_minority_government
@ -2844,6 +2903,34 @@ on_title_gain_usurpation = {
events = {
}
effect = {
if = {
limit = {
government_has_flag = government_is_prepublic
NOT = {
exists = domicile
}
}
save_scope_as = scoped_ruler
create_nomad_title = {
name = domicile_farmstead
holder = scope:scoped_ruler
government = peasantrepublic_government
save_scope_as = new_title
}
}
if = {
limit = {
government_has_flag = government_is_prepublic
primary_title = {
NOT = {
has_title_law = saxon_elective_succession_law
}
}
}
primary_title = {
add_title_law = saxon_elective_succession_law
}
}
if = {
limit = {
government = landless_minority_government

View file

@ -755,6 +755,34 @@ yearly_global_pulse = {
# Root is the character
yearly_playable_pulse = {
effect = {
if = {
limit = {
government_has_flag = government_is_prepublic
NOT = {
exists = domicile
}
}
save_scope_as = scoped_ruler
create_nomad_title = {
name = domicile_farmstead
holder = scope:scoped_ruler
government = peasantrepublic_government
save_scope_as = new_title
}
}
if = {
limit = {
government_has_flag = government_is_prepublic
primary_title = {
NOT = {
has_title_law = saxon_elective_succession_law
}
}
}
primary_title = {
add_title_law = saxon_elective_succession_law
}
}
if = {
limit = {
has_title = title:k_papal_state
@ -2011,6 +2039,7 @@ yearly_playable_pulse = {
government_has_flag = government_is_nomadic
is_landed = no
liege = { is_ai = yes }
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
}
every_held_title = {
limit = {
@ -2049,6 +2078,7 @@ yearly_playable_pulse = {
any_held_title = {
is_nomad_title = yes
}
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
}
save_scope_as = scoped_ruler
if = {
@ -2068,6 +2098,7 @@ yearly_playable_pulse = {
else_if = {
limit = {
is_ai = no
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
}
change_government = nomad_government
}
@ -2092,6 +2123,7 @@ yearly_playable_pulse = {
any_held_title = {
is_nomad_title = yes
}
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
}
every_held_title = {
limit = {
@ -2304,6 +2336,7 @@ three_year_playable_pulse = {
any_held_title = {
is_nomad_title = yes
}
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
}
every_held_title = {
limit = {
@ -2387,6 +2420,7 @@ three_year_playable_pulse = {
if = {
limit = {
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
NOT = {
any_held_title = {
is_nomad_title = yes
@ -2666,6 +2700,37 @@ five_year_playable_pulse = {
# Root is the character
# scope:quarter is which quarter it's for, from 1 to 4. Note that scope:quarter = 1 isn't necessarily in Q1 by calendar time
quarterly_playable_pulse = {
effect = {
if = {
limit = {
government_has_flag = government_is_prepublic
NOT = {
exists = domicile
}
}
save_scope_as = scoped_ruler
create_nomad_title = {
name = domicile_farmstead
holder = scope:scoped_ruler
government = peasantrepublic_government
save_scope_as = new_title
}
}
if = {
limit = {
government_has_flag = government_is_prepublic
primary_title = {
NOT = {
has_title_law = saxon_elective_succession_law
}
}
}
primary_title = {
add_title_law = saxon_elective_succession_law
}
}
}
on_actions = {
realm_maintenance_quarterly_pulse

View file

@ -5033,12 +5033,18 @@
parameters = {
piety_from_gifts_active = yes
piety_from_marrying_lowborn_active = yes
faith_use_farmer_republics = yes
}
character_modifier = {
monthly_county_control_growth_factor = -0.2
build_gold_cost = -0.1
county_opinion_add = 10
tyranny_gain_mult = 0.25
tyranny_loss_mult = -0.5
dread_decay_mult = 0.25
city_holding_build_gold_cost = -0.05
city_holding_holding_build_gold_cost = -0.05
}
traits = {

View file

@ -0,0 +1,15 @@

#Values used for checking distance with the 'squared_distance' trigger.
squared_distance_small = 22500 #150 map-pixels. Roughly one Wales away (top to bottom).
squared_distance_medium = 62500 #250 map-pixels. Roughly one Ireland away (top to bottom).
squared_distance_major = {
value = squared_distance_large
divide = 2
}
squared_distance_large = 422500 #650 map-pixels. Roughly one France away (top to bottom).
squared_distance_huge = 722500 #850 map-pixels. Roughly one Holy Roman Empire away (left to right).
squared_distance_almost_massive = 1440000 #1200 map-pixels. Roughly 1.5 Holy Roman Empire away (left to right).
squared_distance_massive = 2402500 #1550 map-pixels.
squared_distance_mega = 5202500
squared_distance_monstrous = 9000000 #3000 map-pixels

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -46,7 +46,7 @@ building_requirement_nomad_holding_in_county = {
building_requirement_herder = {
scope:holder ?= {
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}

View file

@ -479,7 +479,7 @@ portrait_wear_no_crown_trigger = { # Rulers should be coronated to wear a crown
NOT = { coronation_proper_artifact_regalia_trigger = yes }
}
}
government_has_flag = government_is_prepublic
has_character_flag = sold_crown_charmod # No crowns for characters who sold theirs
has_character_modifier = vow_of_poverty_modifier # Or for characters with an active Vow of Poverty

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,849 @@
###TRIGGER LIST###
#GUEST/COURTIER LEAVING/ARRIVING TRIGGERS:
#any_child_not_in_traveling_family_trigger
#any_consort_not_in_traveling_family_trigger
#courtier_allowed_to_leave_trigger
#guest_allowed_to_leave_trigger
#guest_allowed_to_arrive_trigger
#GUEST/COURTIER USEFULNESS:
#courtier_or_guest_claim_trigger
#useful_courtier_or_guest_claim_trigger
#has_useful_potential_spouse_claim_trigger
#guest_knight_candidate_trigger
#guest_commander_candidate_trigger
#guest_vassal_candidate_trigger
#guest_physician_candidate_trigger
#guest_male_female_balance_trigger
#child_available_for_guest_marriage_trigger
#guest_marriage_candidate_trigger
#POOL CHARACTER TRIGGERS:
#pool_character_is_pruneable_trigger
####GUEST/COURTIER LEAVING/ARRIVING TRIGGERS###
same_location_and_court_status_as = { # Same location and both are in court / are guests / are pool characters
exists = location
exists = $CHARACTER$.location
location = $CHARACTER$.location
OR = {
is_in_the_same_court_as = $CHARACTER$
trigger_if = {
limit = { $CHARACTER$ = { is_pool_guest = yes } }
is_pool_guest = yes
}
trigger_if = {
limit = { $CHARACTER$ = { is_pool_character = yes } }
is_pool_character = yes
}
}
}
any_child_not_in_traveling_family_trigger = {
save_temporary_scope_as = traveler
exists = location
any_child = {
is_adult = no
same_location_and_court_status_as = { CHARACTER = scope:traveler }
save_temporary_scope_as = checking_child
scope:traveler = {
NOT = {
any_traveling_family_member = { this = scope:checking_child }
}
}
}
}
any_consort_not_in_traveling_family_trigger = {
save_temporary_scope_as = traveler
exists = location
any_spouse = {
exists = location
same_location_and_court_status_as = { CHARACTER = scope:traveler }
save_temporary_scope_as = checking_consort
scope:traveler = {
NOT = {
any_traveling_family_member = { this = scope:checking_consort }
}
}
}
}
courtier_allowed_to_leave_trigger = {
save_temporary_scope_as = leaving_courtier
NOR = {
# Not blocked by script
has_character_flag = blocked_from_leaving
is_councillor_of = scope:liege
is_consort_of = scope:liege
scope:liege = {
player_heir_position = {
target = scope:leaving_courtier
value <= 2 #Not 1st, 2nd or 3rd player heir (0,1,2)
}
}
has_any_court_position = yes
has_relation_lover = scope:liege
is_knight_of = scope:liege
is_tax_collector_of = scope:liege
any_relation = {
type = ward
OR = {
this = scope:liege
AND = {
is_courtier_of = scope:liege
OR = {
NOT = { any_close_family_member = { this = scope:leaving_courtier } }
any_close_family_member = { this = scope:liege }
}
}
}
}
any_relation = {
type = guardian
OR = {
this = scope:liege
AND = {
is_courtier_of = scope:liege
OR = {
NOT = { any_close_family_member = { this = scope:leaving_courtier } }
any_close_family_member = { this = scope:liege }
}
}
}
}
any_relation = {
type = mentor
OR = {
this = scope:liege
AND = {
is_courtier_of = scope:liege
OR = {
NOT = { any_close_family_member = { this = scope:leaving_courtier } }
any_close_family_member = { this = scope:liege }
}
}
}
}
any_relation = {
type = student
OR = {
this = scope:liege
AND = {
is_courtier_of = scope:liege
OR = {
NOT = { any_close_family_member = { this = scope:leaving_courtier } }
any_close_family_member = { this = scope:liege }
}
}
}
}
#Keep daughters/sons for marriages
AND = {
OR = {
is_child_of = scope:liege
is_grandchild_of = scope:liege
is_great_grandchild_of = scope:liege
}
NOT = { has_trait = bastard }
trigger_if = { #Daughters
limit = { is_female = yes }
scope:liege = {
OR = {
has_realm_law = male_only_law
has_realm_law = male_preference_law
}
}
}
trigger_else = { #Sons
scope:liege = {
OR = {
has_realm_law = female_only_law
has_realm_law = female_preference_law
}
}
}
}
#No children of liege can leave court while children
AND = {
OR = {
is_child_of = scope:liege
is_grandchild_of = scope:liege
is_great_grandchild_of = scope:liege
}
is_adult = no
}
#Claimant won't leave while claim is pressed...
scope:liege = { pressing_claim_of_character_trigger = { CHARACTER = scope:leaving_courtier } }
#Would be leaving without a child or consort
any_child_not_in_traveling_family_trigger = yes
any_consort_not_in_traveling_family_trigger = yes
#...Or while they have a promise for a claim getting pressed
has_character_flag = courtier_staying_for_claim
#...Or if they're involved in an ongoing event
has_variable = stewardship_duty_1062_employer
#...Or if someone is trying to elope with them
any_targeting_scheme = {
scheme_type = elope
}
#Non-dominant spouses don't wander off
AND = {
is_married = yes
any_spouse = {
OR = {
liege ?= scope:leaving_courtier.liege
AND = {
exists = host
exists = scope:leaving_courtier.host
liege = scope:leaving_courtier.host
}
is_in_the_same_court_as = scope:leaving_courtier
}
}
trigger_if = {
limit = { is_female = yes }
scope:liege = {
OR = {
has_realm_law = male_only_law
has_realm_law = male_preference_law
}
}
}
trigger_else = {
scope:liege = {
OR = {
has_realm_law = female_only_law
has_realm_law = female_preference_law
}
}
}
}
# Diarchs don't leave their court.
is_diarch = yes
is_designated_diarch = yes
#Shieldmaidens stay till dismissed.
has_trait = shieldmaiden
# Children taught a lesson won't leave
has_character_modifier = mellowed_spirit
# Courtiers with sponsored inspirations won't leave on their own.
inspiration ?= { exists = inspiration_sponsor }
scope:liege = { government_has_flag = government_is_landless_adventurer }
is_obedient_to = scope:liege
AND = {
scope:liege.primary_title = title:h_china
OR = {
is_child_of = scope:liege
is_grandchild_of = scope:liege
is_great_grandchild_of = scope:liege
}
}
}
}
guest_allowed_to_leave_trigger = {
NOR = {
# Not blocked by script
has_character_flag = blocked_from_leaving
#Agent in a local scheme
scope:host = {
any_courtier = {
any_targeting_scheme = {
any_scheme_agent_character = {
this = scope:guest
}
}
}
}
scope:host = {
any_targeting_scheme = {
any_scheme_agent_character = {
this = scope:guest
}
}
}
any_child = { # No child can be a known child of the host
is_adult = no
any_parent = { this = scope:host }
}
# Diarchs don't leave their court.
is_diarch = yes
is_designated_diarch = yes
#Would be leaving without spouse or underage child
any_child_not_in_traveling_family_trigger = yes
any_consort_not_in_traveling_family_trigger = yes
#Is waiting for inspiration funding
exists = inspiration
}
}
guest_allowed_to_arrive_trigger = {
trigger_if = {
limit = { exists = var:last_visited_ruler }
NOT = { var:last_visited_ruler = $HOST$ }
}
trigger_if = { # Make sure that they're not trying to go back to where they are right now
limit = { exists = host }
NOT = { host = $HOST$ }
}
NOT = { has_trait_with_flag = epidemic_disease }
NOT = { has_relation_rival = $HOST$ }
#Compatible faiths
faith = {
save_temporary_scope_as = potential_guest_faith
faith_hostility_level = {
target = $HOST$.faith
value < faith_evil_level
}
}
$HOST$.faith = {
faith_hostility_level = {
target = scope:potential_guest_faith
value < faith_evil_level
}
}
#Isn't too good for host
NAND = {
OR = {
any_claim = { tier = tier_empire }
any_close_family_member = { highest_held_title_tier = tier_empire }
}
$HOST$ = { highest_held_title_tier <= tier_county }
}
} #Note: this trigger used to contain opinion triggers but then some awful rulers could never get guests because everyone hates them
#This is a localized trigger for checking that a character do not have a spouse that's employed or has some other circumstance blocking them from being recruited to a court
can_recruit_character_to_court_trigger = {
$RECRUITER$ = { save_temporary_scope_as = recruiter }
$RECRUITEE$ = { save_temporary_scope_as = recruitee }
scope:recruitee = {
bp2_valid_for_standard_interactions_trigger = yes
trigger_if = {
limit = { is_adult = no }
custom_description = {
text = is_not_wandering_child
subject = scope:recruitee
OR = {
is_close_or_extended_family_of = scope:recruiter
scope:recruiter = {
any_spouse = {
any_child = { this = scope:recruitee }
}
}
trigger_if = {
limit = {
scope:recruiter.culture = { has_cultural_parameter = wider_adoption }
scope:recruitee.culture = { has_cultural_parameter = wider_adoption }
}
NOT = {
any_parent = {
is_alive = yes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = liege }
}
}
}
}
}
}
NOR = {
is_imprisoned = yes
is_theocratic_lessee = yes
is_diarch = yes
trigger_if = {
limit = {
exists = host
host = { is_ai = no }
NOT = { is_player_heir_of = scope:recruiter }
}
is_player_heir_of = host
}
trigger_if = {
limit = {
exists = host
host = { is_ai = yes }
NOT = { is_player_heir_of = scope:recruiter }
}
is_primary_heir_of = host
}
trigger_if = {
limit = { exists = host }
is_consort_of = host
}
trigger_if = {
limit = { exists = host }
host = {
pressing_claim_of_character_trigger = { CHARACTER = scope:recruitee }
}
}
trigger_if = {
limit = { exists = host }
#Are they employed?
is_councillor_of = scope:recruitee.host
is_knight_of = scope:recruitee.host
any_relation = {
type = ward
OR = {
this = scope:recruitee.host
is_close_family_of = scope:recruitee.host
}
}
any_relation = {
type = guardian
OR = {
this = scope:recruitee.host
is_close_family_of = scope:recruitee.host
}
}
any_relation = {
type = mentor
OR = {
this = scope:recruitee.host
is_close_family_of = scope:recruitee.host
}
}
any_relation = {
type = student
OR = {
this = scope:recruitee.host
is_close_family_of = scope:recruitee.host
}
}
any_court_position_employer = { this = scope:recruitee.host }
}
trigger_if = {
limit = {
scope:recruiter = { has_government = landless_adventurer_government }
}
custom_tooltip = {
text = can_recruit_character_to_court_trigger.tt.laamps_invitation_restrictions
NOR = {
is_player_heir_of = scope:recruiter
has_relation_soulmate = scope:recruiter
has_relation_best_friend = scope:recruiter
is_consort_of = scope:recruiter
AND = {
is_pool_character = yes
OR = {
has_relation_friend = scope:recruiter
has_relation_lover = scope:recruiter
is_close_family_of = scope:recruiter
}
}
}
}
}
#Do they have the "wrong" marriage type and the spouse is employed?
custom_description = {
text = is_married_matrilineally_and_spouse_is_dominant_partner
subject = scope:recruitee
any_spouse = {
is_female = yes
matrilinear_marriage = yes
host ?= scope:recruitee.host
save_temporary_scope_as = spouse
OR = { #Is employed in some way
is_councillor_of = scope:recruitee.host
is_knight_of = scope:recruitee.host
any_relation = {
type = ward
OR = {
this = scope:recruitee.host
is_close_family_of = scope:recruitee.host
}
}
any_relation = {
type = guardian
OR = {
this = scope:recruitee.host
is_close_family_of = scope:recruitee.host
}
}
any_relation = {
type = mentor
OR = {
this = scope:recruitee.host
is_close_family_of = scope:recruitee.host
}
}
any_relation = {
type = student
OR = {
this = scope:recruitee.host
is_close_family_of = scope:recruitee.host
}
}
scope:spouse = {
any_court_position_employer = { this = scope:recruitee.host }
}
}
}
}
custom_description = {
text = is_married_patrilineally_and_spouse_is_dominant_partner
subject = scope:recruitee
any_spouse = {
is_male = yes
patrilinear_marriage = yes
host ?= scope:recruitee.host
save_temporary_scope_as = spouse
OR = { #Is employed in some way
is_councillor_of = scope:recruitee.host
is_knight_of = scope:recruitee.host
any_relation = {
type = ward
OR = {
this = scope:recruitee.host
is_close_family_of = scope:recruitee.host
}
}
any_relation = {
type = guardian
OR = {
this = scope:recruitee.host
is_close_family_of = scope:recruitee.host
}
}
any_relation = {
type = mentor
OR = {
this = scope:recruitee.host
is_close_family_of = scope:recruitee.host
}
}
any_relation = {
type = student
OR = {
this = scope:recruitee.host
is_close_family_of = scope:recruitee.host
}
}
scope:spouse = {
any_court_position_employer = { this = scope:recruitee.host }
}
}
}
}
custom_description = {
text = "is_escaped_prisoner"
subject = scope:recruitee
OR = {
has_opinion_modifier = {
modifier = attempted_imprisonment_opinion
target = scope:recruiter
}
has_opinion_modifier = {
modifier = treasonous_imprison_refusal
target = scope:recruiter
}
AND = {
exists = var:escaped_imprisonment_from
var:escaped_imprisonment_from = scope:recruiter
}
}
}
}
}
}
###GUEST/COURTIER USEFULNESS TRIGGERS###
courtier_or_guest_claim_trigger = {
exists = holder
NOT = {
holder = {
OR = {
this = $RULER$
target_is_liege_or_above = $RULER$
}
}
}
}
useful_courtier_or_guest_claim_trigger = {
courtier_or_guest_claim_trigger = { RULER = $RULER$ }
tier < $RULER$.highest_held_title_tier
$RULER$ = { is_landed = yes }
OR = { #For distance check
exists = title_province
exists = holder.capital_province
}
#The higher tier the ruler has, the longer distance is acceptable
#We prefer to measure against the title's province, but if there is none, check its holder
trigger_if = {
limit = { $RULER$ = { highest_held_title_tier = tier_empire } }
trigger_if = {
limit = { exists = title_province }
title_province = { squared_distance = { target = $RULER$.capital_province value <= squared_distance_almost_massive } }
}
trigger_else = {
holder.capital_province = { squared_distance = { target = $RULER$.capital_province value <= squared_distance_almost_massive } }
}
}
trigger_else_if = {
limit = { $RULER$ = { highest_held_title_tier = tier_kingdom } }
trigger_if = {
limit = { exists = title_province }
title_province = { squared_distance = { target = $RULER$.capital_province value <= squared_distance_huge } }
}
trigger_else = {
holder.capital_province = { squared_distance = { target = $RULER$.capital_province value <= squared_distance_huge } }
}
}
trigger_else_if = {
limit = { $RULER$ = { highest_held_title_tier = tier_duchy } }
trigger_if = {
limit = { exists = title_province }
title_province = { squared_distance = { target = $RULER$.capital_province value <= squared_distance_large } }
}
trigger_else = {
holder.capital_province = { squared_distance = { target = $RULER$.capital_province value <= squared_distance_large } }
}
}
trigger_else = {
trigger_if = {
limit = { exists = title_province }
title_province = { squared_distance = { target = $RULER$.capital_province value <= squared_distance_medium } }
}
trigger_else = {
holder.capital_province = { squared_distance = { target = $RULER$.capital_province value <= squared_distance_medium } }
}
}
}
neighboring_useful_courtier_or_guest_claim_trigger = {
courtier_or_guest_claim_trigger = { RULER = $RULER$ }
tier < $RULER$.highest_held_title_tier
exists = $RULER$.capital_province
holder = {
any_sub_realm_county = {
is_neighbor_to_realm = $RULER$
}
}
}
has_useful_potential_spouse_claim_trigger = {
any_claim = {
pressed = yes
exists = holder
NOT = {
holder = {
OR = {
this = $RULER$
target_is_liege_or_above = $RULER$
}
}
}
}
}
guest_knight_candidate_trigger = {
can_be_knight_trigger = { ARMY_OWNER = $HOST$ }
age < 60
age >= 25
prowess > medium_skill_rating
}
guest_commander_candidate_trigger = {
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = $HOST$ }
age < 60
age >= 25
martial > medium_skill_rating
}
guest_vassal_candidate_good_traits_trigger = {
OR = { #Gives +opinion of liege
has_trait = content
has_trait = trusting
has_trait = humble
}
}
guest_vassal_candidate_bad_traits_trigger = {
OR = { #Gives -opinion of liege
has_trait = ambitious
has_trait = arrogant
has_trait = impatient
}
}
guest_vassal_candidate_trigger = {
age < 60
faith = scope:host.faith
culture = scope:host.culture
faith = {
has_dominant_ruling_gender = prev
}
guest_vassal_candidate_bad_traits_trigger = no
save_temporary_scope_as = vassal_candidate
is_eunuch_trigger = no
NOR = { #So they don't leave your realm through inheritance
any_heir_title = {
scope:guest = { is_primary_heir_of = scope:vassal_candidate }
}
any_child = { is_playable_character = yes }
has_trait = devoted
has_trait = order_member
}
}
guest_physician_candidate_trigger = {
age < 70
learning >= decent_skill_rating
}
guest_male_female_balance_trigger = { #are you interesting enough to get "upbalanced" to make up for lack of available positions due to your gender?
is_adult = yes
age <= 65
is_lowborn = no
}
child_available_for_guest_marriage_trigger = {
is_married = no
is_betrothed = no
age >= 10
OR = {
is_vassal_of = scope:host
is_courtier_of = scope:host
}
}
guest_marriage_candidate_trigger = {
save_temporary_scope_as = marriage_candidate
OR = {
is_male = yes
age <= 40
}
OR = {
AND = {
is_married = no
can_marry_character_trigger = { CHARACTER = scope:host }
}
scope:host = {
any_child = {
child_available_for_guest_marriage_trigger = yes
can_marry_character_trigger = { CHARACTER = scope:marriage_candidate }
}
}
}
}
###POOL TRIGGERS###
is_visitable_relation_trigger = {
capital_province ?= { local_pool_is_full_trigger = no }
NOR = {
this = $CHARACTER$.host
has_relation_rival = $CHARACTER$
}
$CHARACTER$ = {
NOT = {
var:last_visited_ruler ?= prev
}
}
}
###########################
# POOL CHARACTER TRIGGERS #
###########################
pool_character_is_pruneable_trigger = {
save_temporary_scope_as = pool_prune_check
is_adult = yes
NOR = {
has_trait = heresiarch
has_trait = populist_leader
has_trait = adventurer_follower
has_trait = adventurer
has_trait = historical_character
has_character_flag = ai_will_not_convert
is_married = yes
any_claim = { }
any_child = { is_adult = no }
any_relation = {
type = lover
is_ruler = yes
}
any_relation = {
type = friend
is_ruler = yes
}
any_close_or_extended_family_member = { is_ruler = yes }
#Belongs to a dynasty with more than 1 member
any_relation = {
type = rival
is_ai = no
}
has_character_flag = easteregg
}
trigger_if = {
limit = {
is_lowborn = no
}
NOR = {
diplomacy >= high_skill_rating
martial >= high_skill_rating
stewardship >= high_skill_rating
intrigue >= high_skill_rating
learning >= high_skill_rating
prowess >= high_skill_rating
dynasty ?= { any_dynasty_member = { this != scope:pool_prune_check } }
any_relation = {
type = rival
is_ruler = yes
}
culture = {
has_cultural_tradition = tradition_diasporic
}
}
}
}
local_pool_is_full_trigger = {
number_of_characters_in_pool >= full_pool_size
}
guest_poet_candidate_trigger = {
age < 80
age >= 16
diplomacy > medium_skill_rating
}
is_courtier_or_knight_of_root = {
OR = {
is_courtier_of = root
is_knight_of = root
}
}
guest_herder_candidate_trigger = {
government_has_flag = government_is_true_herder
has_trait = lifestyle_seasoned_pastor
trigger_if = {
limit = { root.faith = { has_doctrine = doctrine_gender_male_dominated } }
is_male = yes
}
trigger_if = {
limit = { root.faith = { has_doctrine = doctrine_gender_female_dominated } }
is_female = yes
}
age < 45
age >= 25
}

View file

@ -393,7 +393,7 @@ valid_laamp_basic_trigger = {
# Plus some standard stuff.
is_alive = yes
is_adult = yes
NOT = { government_has_flag = government_is_herder }
NOT = { government_has_flag = government_is_true_herder }
}
$EMPLOYER$ = { is_incapable = no }
# Laamps shouldn't offer contracts in their local area, ever.

View file

@ -424,7 +424,7 @@ can_have_city_succession_law_trigger = {
}
can_have_herder_succession_law_trigger = {
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
title_can_reduce_partition_law_trigger = {

View file

@ -0,0 +1,635 @@
####MARRIAGE TRIGGER LIST###
#GENERAL MARRIAGE TRIGGERS
#can_marry_common_trigger
#can_marry_trigger
#could_marry_character_trigger
#can_marry_character_trigger
#marriage_between_characters_unlocks_alliance_of_min_tier_trigger
#can_become_concubine
#MARRIAGE INTERACTION TRIGGERS
#############################
# GENERAL MARRIAGE TRIGGERS #
#############################
# Is allowed to marry (current marriage/concubine status ignored)
can_marry_common_trigger = {
is_alive = yes
NOT = { has_trait_with_flag = can_not_marry }
trigger_if = {
limit = {
exists = primary_title
}
NOR = {
# Block Mercenaries from marrying or showing up in marriage interactions
primary_title = {
is_mercenary_company = yes
}
is_leading_faction_type = peasant_faction
is_leading_faction_type = populist_faction
government_has_flag = government_is_herder
}
}
# Clergy cannot marry if their faith disallows it
trigger_if = {
limit = {
is_clergy = yes
}
faith = {
has_doctrine_parameter = clergy_can_marry
}
}
trigger_if = {
limit = {
exists = liege.involved_activity.var:tournament_marriage_prize
this = liege.involved_activity.var:tournament_marriage_prize
}
exists = scope:contest_winner
}
}
#Can marry right now
can_marry_trigger = {
can_marry_common_trigger = yes
allowed_more_spouses = yes
#To account for a person marrying their concubines please use can_marry_character_trigger
}
allowed_to_marry_same_sex_trigger = {
has_game_rule = accepted_same_sex_marriage
faith = {
NOR = {
has_doctrine_parameter = homosexuality_shunned
has_doctrine_parameter = homosexuality_illegal
}
}
}
can_have_children_with = {
sex_opposite_of = $CHARACTER$ # Only opposite sex since for now
}
allowed_to_marry_character_gender_trigger = {
OR = {
AND = {
allowed_to_marry_same_sex_trigger = yes
sex_same_as = $CHARACTER$
}
sex_opposite_of = $CHARACTER$
}
}
#two characters could potentially marry (does NOT check that they're unmarried)
could_marry_character_trigger = {
save_temporary_scope_as = can_marry_check
can_marry_common_trigger = yes
$CHARACTER$ = { can_marry_common_trigger = yes }
#Opposite genders if you don't have accepted same-sex marriage game rule enabled and your faith supports it
trigger_if = {
limit = {
$CHARACTER$ = { allowed_to_marry_same_sex_trigger = no }
}
sex_opposite_of = $CHARACTER$
}
#Have you recently divorced this character?
NOT = {
has_opinion_modifier = {
modifier = divorced_me_opinion
target = $CHARACTER$
}
}
#Faith hostility & consanguinity
trigger_if = {
limit = { NOT = { is_courtier_of = $CHARACTER$ } } #If you're someone's courtier, your liege can marry you anyway
faith = {
faith_allows_marriage_consanguinity_trigger = {
CHARACTER_1 = scope:can_marry_check
CHARACTER_2 = $CHARACTER$
}
#faith_hostility_level = {
# target = $CHARACTER$.faith
# value < faith_hostility_prevents_marriage_level
#}
}
}
trigger_if = {
limit = { $CHARACTER$ = { NOT = { is_courtier_of = scope:can_marry_check } } } #If you're someone's courtier, your liege can marry you anyway
$CHARACTER$.faith = {
faith_allows_marriage_consanguinity_trigger = {
CHARACTER_1 = scope:can_marry_check
CHARACTER_2 = $CHARACTER$
}
#faith_hostility_level = {
# target = scope:can_marry_check.faith
# value < faith_hostility_prevents_marriage_level
#}
}
}
trigger_if = {
limit = {
any_close_or_extended_family_member = {
any_spouse = { this = $CHARACTER$ }
}
}
faith = { has_doctrine = doctrine_consanguinity_unrestricted }
$CHARACTER$ = {
faith = { has_doctrine = doctrine_consanguinity_unrestricted }
NOT = {
any_spouse = {
is_close_or_extended_family_of = scope:can_marry_check
NOT = {
faith = { has_doctrine = doctrine_consanguinity_unrestricted }
}
}
}
}
}
# Cannot marry self
NOT = {
scope:can_marry_check = { is_spouse_of = $CHARACTER$ }
}
}
# Same trigger as above with the exception of the recent divorce trigger
can_take_as_concubine_character_trigger = {
save_temporary_scope_as = can_marry_check
can_marry_common_trigger = yes
$CHARACTER$ = { can_marry_common_trigger = yes }
#Opposite genders if you don't have accepted same-sex marriage game rule enabled and your faith supports it
trigger_if = {
limit = {
$CHARACTER$ = { allowed_to_marry_same_sex_trigger = no }
}
sex_opposite_of = $CHARACTER$
}
#Faith hostility & consanguinity
trigger_if = {
limit = { NOT = { is_courtier_of = $CHARACTER$ } } #If you're someone's courtier, your liege can marry you anyway
faith = {
faith_allows_marriage_consanguinity_trigger = {
CHARACTER_1 = scope:can_marry_check
CHARACTER_2 = $CHARACTER$
}
#faith_hostility_level = {
# target = $CHARACTER$.faith
# value < faith_hostility_prevents_marriage_level
#}
}
}
trigger_if = {
limit = { $CHARACTER$ = { NOT = { is_courtier_of = scope:can_marry_check } } } #If you're someone's courtier, your liege can marry you anyway
$CHARACTER$.faith = {
faith_allows_marriage_consanguinity_trigger = {
CHARACTER_1 = scope:can_marry_check
CHARACTER_2 = $CHARACTER$
}
#faith_hostility_level = {
# target = scope:can_marry_check.faith
# value < faith_hostility_prevents_marriage_level
#}
}
}
NOT = {
scope:can_marry_check = { is_spouse_of = $CHARACTER$ }
}
}
#Two characters are able to marry right now
can_marry_character_trigger = {
save_temporary_scope_as = can_marry_char_check
OR = {
AND = {
is_betrothed = yes
betrothed = $CHARACTER$
}
AND = {
can_marry_trigger = yes
$CHARACTER$ = { can_marry_trigger = yes }
}
}
trigger_if = {
limit = {
$CHARACTER$ = { is_concubine = yes }
}
$CHARACTER$ = { is_concubine_of = scope:can_marry_char_check }
}
trigger_if = {
limit = {
is_concubine = yes
}
is_concubine_of = $CHARACTER$
$CHARACTER$ = { could_marry_character_trigger = { CHARACTER = scope:can_marry_char_check } } #Gender, recent divorce, allowed to marry, no illegal incest etc.} If they're your concubine you're rules are the ones looked at
}
trigger_else = {
could_marry_character_trigger = { CHARACTER = $CHARACTER$ } #Gender, recent divorce, allowed to marry, no illegal incest etc.
}
}
#A marriage between MY_CHARACTER and THEIR_CHARACTER would give alliance/would unlock renegotiate alliance for current scope where current scope's ally would be at least TIER
marriage_between_characters_unlocks_alliance_of_min_tier_trigger = {
save_temporary_scope_as = alliance_unlocker
$MY_CHARACTER$ = {
OR = {
this = scope:alliance_unlocker
is_close_family_of = scope:alliance_unlocker
}
}
$THEIR_CHARACTER$ = {
OR = {
AND = {
is_ruler = yes
highest_held_title_tier >= $TIER$
}
any_close_family_member = {
is_ruler = yes
highest_held_title_tier >= $TIER$
}
}
}
}
can_become_concubine_of_character_trigger = {
is_available_quick = {
adult = yes
ruler = no
advanced_ruler = no
hostage = no
}
trigger_if = {
limit = {
NOT = { is_imprisoned_by = $CHARACTER$ }
}
is_married = no
is_betrothed = no
is_concubine = no
number_of_concubines = 0
}
trigger_if = {
limit = {
is_imprisoned_by = $CHARACTER$
is_married = yes
}
NOT = { is_spouse_of = $CHARACTER$ }
}
NOR = {
is_concubine_of = $CHARACTER$
has_character_flag = has_been_offered_as_concubine
}
could_marry_character_trigger = { CHARACTER = $CHARACTER$ } #Gender, recent divorce, allowed to marry, no illegal incest etc.
}
# Same as above, switching out could_marry_character_trigger for can_take_as_concubine_character_trigger, in order to better inform the player that they cannot take their ex-spouse as a concubine
can_become_concubine_of_character_valid_trigger = {
is_available_quick = {
adult = yes
ruler = no
advanced_ruler = no
}
trigger_if = {
limit = {
NOT = { is_imprisoned_by = $CHARACTER$ }
}
is_married = no
is_betrothed = no
is_concubine = no
is_diarch = no
number_of_concubines = 0
}
trigger_if = {
limit = {
is_imprisoned_by = $CHARACTER$
is_married = yes
}
NOT = { is_spouse_of = $CHARACTER$ }
}
NOR = {
is_concubine_of = $CHARACTER$
has_character_flag = has_been_offered_as_concubine
}
can_take_as_concubine_character_trigger = { CHARACTER = $CHARACTER$ } #Gender, allowed to marry, no illegal incest etc.
has_any_disease_trigger = no
has_easily_mocked_physical_attribute_trigger = no
}
can_be_offered_as_concubine_to_character_trigger = {
is_available_quick = {
adult = yes
ruler = no
advanced_ruler = no
}
trigger_if = {
limit = {
NOT = { is_imprisoned_by = $GIVER$ }
}
is_married = no
is_betrothed = no
is_diarch = no
OR = {
is_concubine = no
is_concubine_of = $GIVER$
}
number_of_concubines = 0
}
trigger_if = {
limit = {
is_imprisoned_by = $GIVER$
is_married = yes
}
NOR = {
is_spouse_of = $CHARACTER$
is_spouse_of = $GIVER$
}
}
NOR = {
is_concubine_of = $CHARACTER$
has_character_flag = has_been_offered_as_concubine
}
NOT = {
is_theocratic_lessee = yes
}
could_marry_character_trigger = { CHARACTER = $CHARACTER$ } #Gender, recent divorce, allowed to marry, no illegal incest etc.
}
ready_to_marry_betrothed_trigger = {
trigger_if = {
limit = { exists = betrothed }
is_adult = yes
betrothed = { is_adult = yes }
}
trigger_else = {
always = no
}
}
#################################
# MARRIAGE INTERACTION TRIGGERS #
#################################
marriage_interaction_can_be_picked_trigger = {
can_marry_trigger = yes
is_available_quick = {
hostage = no
imprisoned = no
}
}
marriage_interaction_valid_target_trigger = {
# Clergy cannot marry if their faith doesn't allow it
trigger_if = {
limit = {
scope:secondary_actor = {
is_clergy = yes
NOT = {
faith = {
has_doctrine_parameter = clergy_can_marry
}
}
}
}
custom_description = {
text = character_is_clergy_and_cannot_marry
subject = scope:secondary_actor
object = scope:secondary_recipient
scope:secondary_actor = {
is_clergy = no
}
}
}
trigger_else_if = {
limit = {
scope:secondary_recipient = {
is_clergy = yes
NOT = {
faith = {
has_doctrine_parameter = clergy_can_marry
}
}
}
}
custom_description = {
text = character_is_clergy_and_cannot_marry
subject = scope:secondary_recipient
object = scope:secondary_actor
scope:secondary_recipient = {
is_clergy = no
}
}
}
#Marriage
trigger_else_if = {
limit = {
scope:secondary_actor = { is_adult = yes }
scope:secondary_recipient = { is_adult = yes }
}
scope:secondary_actor = {
custom_description = {
text = "can_marry_check_secondary_actor"
subject = scope:secondary_actor
object = scope:secondary_recipient
can_marry_character_trigger = { CHARACTER = scope:secondary_recipient } #Checks marriage status, betrothed, gender, consanguinity, faith hostility etc.
}
}
}
#Betrothal
trigger_else = {
scope:secondary_actor = {
custom_description = {
text = "can_betroth_check_secondary_actor"
subject = scope:secondary_actor
object = scope:secondary_recipient
can_marry_character_trigger = { CHARACTER = scope:secondary_recipient } #Checks marriage status, betrothed, gender, consanguinity, faith hostility etc.
}
}
}
# If the actor is ai they will not pick a character already considered for concubinage
trigger_if = {
limit = {
scope:actor = { is_ai = yes }
}
NOR = {
scope:secondary_actor = { has_character_flag = has_been_offered_as_concubine }
scope:secondary_recipient = { has_character_flag = has_been_offered_as_concubine }
}
}
}
marriage_interaction_auto_accept_trigger = {
trigger_if = {
limit = {
exists = scope:secondary_actor.betrothed
scope:secondary_actor = {
has_been_promised_grand_wedding = yes
}
}
always = no
}
trigger_else_if = {
limit = {
exists = scope:secondary_actor.betrothed
}
custom_description = {
text = is_betrothed_auto_accept
subject = scope:secondary_actor
object = scope:secondary_recipient
scope:secondary_actor.betrothed = scope:secondary_recipient
}
}
trigger_else_if = {
limit = {
scope:hook = yes
}
#Strong hook = 100% accept (unless marrying 1st or 2nd player heir or the ruler and asking for matrilineal/partrilineal resulting in no dynasty children for them)
custom_description = {
text = "spending_hook"
subject = scope:actor
object = scope:recipient
scope:actor = { has_strong_hook = scope:recipient }
scope:recipient = {
NAND = {
#Secondary recipient can't be recipient or 1st/2nd heir...
OR = {
this = scope:secondary_recipient
player_heir_position = {
target = scope:secondary_recipient
value <= 2
}
}
#...if the marriage (matrilineal/patrilineal) does not match their gender
OR = {
scope:secondary_recipient = {
is_female = yes
NOT = { always = scope:matrilineal }
}
scope:secondary_recipient = {
is_male = yes
always = scope:matrilineal
}
}
}
}
}
}
trigger_else = {
always = no
}
}
make_concubine_is_shown_trigger = {
scope:actor = {
allowed_concubines = yes
is_adult = yes
}
scope:recipient = {
OR = {
is_courtier_of = scope:actor
is_imprisoned_by = scope:actor
}
can_become_concubine_of_character_valid_trigger = { CHARACTER = scope:actor }
}
}
make_concubine_is_valid_trigger = {
custom_description = {
text = take_concubine_allowed_more
object = scope:recipient
scope:actor = {
allowed_more_concubines = yes
}
}
scope:recipient = {
custom_tooltip = {
text = take_concubine_ex_spouse
NOT = {
has_opinion_modifier = {
modifier = divorced_me_opinion
target = scope:actor
}
}
}
OR = {
AND = {
is_imprisoned_by = scope:actor
is_married = yes
}
is_married = no
}
is_hostage = no
}
}
marriage_interaction_non_loyal_diarchs_refuse_secondary_marriage_trigger = {
trigger_if = {
limit = {
scope:$TARGET$ ?= {
is_diarch = yes
# We're only concerned about landed rulers, those who might be married out of their own court.
is_ruler = no
}
}
custom_tooltip = {
text = arrange_marriage_interaction.tt.non_loyal_regents_refuse_to_be_married_off.$TARGET$
scope:$TARGET$ = { diarch_loyalty >= diarch_loyalty_visibly_loyal_threshold }
}
}
}
wants_very_young_wife = {
is_available_quick = {
female = no
adult = no
}
}
wants_young_wife = {
is_available_quick = {
female = no
adult = yes
}
age < 30
NOT = {
any_child = {
count >= 2
is_alive = yes
NOT = { has_trait = bastard }
}
}
}
will_not_be_very_young_wife = {
is_female = yes
is_very_young_character = no
}
will_not_be_young_wife = {
is_female = yes
is_young_character = no
}
will_not_be_fertile_wife = {
is_female = yes
is_aging_character = yes
}
is_ruler_or_close_family = {
OR = {
is_ruler = yes
any_close_family_member = {
even_if_dead = yes
is_ruler = yes
}
}
}
can_have_concubines_trigger = {
$CHAR$ ?= {
custom_tooltip = {
text = can_have_concubines_name_tt
allowed_more_concubines = yes
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -896,7 +896,7 @@ herders_and_tributary_constraints = {
NOR = {
custom_tooltip = {
text = is_a_herder_defender_tt # herders can't fight
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
is_tributary_of_suzerain_or_above = scope:attacker # can't fight your tributaries or your tributaries' tributaries
}

View file

@ -0,0 +1,414 @@
#################################################
# TRIGGER LIST #
#################################################
# ep1_is_valid_character_for_inspiration_trigger - Is the character valid to be used within the inspiration system? Character movement may break if these conditions are not true.
ep1_is_valid_character_for_inspiration_trigger = {
is_adult = yes
is_imprisoned = no
NOT = { exists = inspiration }
trigger_if = {
limit = {
OR = {
is_pool_guest = yes
is_in_pool_at = location
}
}
# For simplicity, inspired characters travel solo for now.
any_traveling_family_member = {
count = 1
}
}
}
ep1_spare_courtier_trigger = { #Used for picking out courtiers in your own court.
is_available_healthy_ai_adult = yes
is_councillor = no
NOR = {
is_close_or_extended_family_of = root
is_spouse_of = root
}
}
# Court type trait 1 is unlocked by court_grandeur_level 5
ep1_courtier_valid_for_court_trait_1_trigger = {
scope:cgv_value >= cgv_level_threshold_court_type_trait_1
NOT = { has_trait = $TYPE$_court }
is_adult = yes
}
# Court type trait 2 is unlocked by court_grandeur_level 8
ep1_courtier_valid_for_court_trait_2_trigger = {
scope:cgv_value >= cgv_level_threshold_court_type_trait_2
NOT = { has_trait = $TYPE$_court_2 }
has_trait = $TYPE$_court_1
is_adult = yes
}
##############
# INSPIRATION/ARTIFACT TRIGGERS
##############
ep1_can_sponsor_inspiration_basic = {
scope:inspiration_owner = {
is_imprisoned = no
}
}
ep1_is_sponsor_valid_inspiration_basic = {
trigger_if = {
limit = {
exists = scope:inspiration_sponsor
}
scope:inspiration_owner = {
is_courtier_of = scope:inspiration_sponsor
is_imprisoned = no
}
}
}
ep1_character_had_or_has_inspiration_type_trigger = {
OR = {
AND = {
exists = var:created_artifact_type
var:created_artifact_type = flag:$TYPE$
}
inspiration ?= { has_inspiration_type = $TYPE$_inspiration }
}
}
ep1_no_artifact_decorations_trigger = {
OR = {
scope:wealth < 40
AND = {
exists = scope:inspiration_owner
scope:inspiration_owner = { has_trait = humble }
}
}
}
ep1_simple_artifact_decorations_trigger = {
scope:wealth >= 5
scope:wealth < 70
}
ep1_advanced_artifact_decorations_trigger = {
scope:wealth >= 40
scope:wealth < 90
}
ep1_extravagant_artifact_decorations_trigger = {
scope:wealth >= 70
}
ep1_artifact_durability_lower_equal_percent_trigger = {
$PERCENT$ > {
value = 0
add = artifact_durability
divide = artifact_max_durability
}
}
ep1_artifact_durability_higher_equal_percent_trigger = {
$PERCENT$ < {
value = 0
add = artifact_durability
divide = artifact_max_durability
}
}
ep1_character_has_court_artifact_trigger = {
any_character_artifact = {
ep1_artifact_is_court_artifact_trigger = yes
}
}
ep1_artifact_is_court_artifact_trigger = {
OR = {
artifact_slot_type = wall_big
artifact_slot_type = wall_small
artifact_slot_type = sculpture
artifact_slot_type = book
artifact_slot_type = throne
artifact_slot_type = pedestal
}
}
##############
# COURT POSITION TRIGGERS
##############
#Used to see if the scoped character has ANY court position that CHARACTER can hold
character_can_be_employed_in_a_court_position_trigger = {
OR = {
AND = {
can_employ_court_position_type = court_physician_court_position
$CHARACTER$ = { can_be_employed_as = court_physician_court_position }
}
AND = {
can_employ_court_position_type = master_of_horse_court_position
$CHARACTER$ = { can_be_employed_as = master_of_horse_court_position }
}
AND = {
can_employ_court_position_type = master_of_hunt_court_position
$CHARACTER$ = { can_be_employed_as = master_of_hunt_court_position }
}
AND = {
can_employ_court_position_type = keeper_of_swans_court_position
$CHARACTER$ = { can_be_employed_as = keeper_of_swans_court_position }
}
AND = {
can_employ_court_position_type = travel_leader_court_position
$CHARACTER$ = { can_be_employed_as = travel_leader_court_position }
}
AND = {
can_employ_court_position_type = court_jester_court_position
$CHARACTER$ = { can_be_employed_as = court_jester_court_position }
}
AND = {
can_employ_court_position_type = high_almoner_court_position
$CHARACTER$ = { can_be_employed_as = high_almoner_court_position }
}
AND = {
can_employ_court_position_type = seneschal_court_position
$CHARACTER$ = { can_be_employed_as = seneschal_court_position }
}
AND = {
can_employ_court_position_type = court_tutor_court_position
$CHARACTER$ = { can_be_employed_as = court_tutor_court_position }
}
AND = {
can_employ_court_position_type = court_guru_court_position
$CHARACTER$ = { can_be_employed_as = court_guru_court_position }
}
AND = {
can_employ_court_position_type = cupbearer_court_position
$CHARACTER$ = { can_be_employed_as = cupbearer_court_position }
}
AND = {
can_employ_court_position_type = chief_eunuch_court_position
$CHARACTER$ = { can_be_employed_as = chief_eunuch_court_position }
}
AND = {
can_employ_court_position_type = antiquarian_court_position
$CHARACTER$ = { can_be_employed_as = antiquarian_court_position }
}
AND = {
can_employ_court_position_type = royal_architect_court_position
$CHARACTER$ = { can_be_employed_as = royal_architect_court_position }
}
AND = {
can_employ_court_position_type = lady_in_waiting_court_position
$CHARACTER$ = { can_be_employed_as = lady_in_waiting_court_position }
}
AND = {
can_employ_court_position_type = court_poet_court_position
$CHARACTER$ = { can_be_employed_as = court_poet_court_position }
}
AND = {
can_employ_court_position_type = court_musician_court_position
$CHARACTER$ = { can_be_employed_as = court_musician_court_position }
}
AND = {
can_employ_court_position_type = bodyguard_court_position
$CHARACTER$ = { can_be_employed_as = bodyguard_court_position }
}
AND = {
can_employ_court_position_type = champion_court_position
$CHARACTER$ = { can_be_employed_as = champion_court_position }
}
AND = {
can_employ_court_position_type = food_taster_court_position
$CHARACTER$ = { can_be_employed_as = food_taster_court_position }
}
AND = {
can_employ_court_position_type = executioner_court_position
$CHARACTER$ = { can_be_employed_as = executioner_court_position }
}
AND = {
can_employ_court_position_type = garuda_court_position
$CHARACTER$ = { can_be_employed_as = garuda_court_position }
}
AND = {
can_employ_court_position_type = wet_nurse_court_position
$CHARACTER$ = { can_be_employed_as = wet_nurse_court_position }
}
AND = {
can_employ_court_position_type = akolouthos_court_position
$CHARACTER$ = { can_be_employed_as = akolouthos_court_position }
}
}
}
#Used to check if the scoped character can hold any court position
can_be_employed_in_any_court_position_trigger = {
OR = {
can_be_employed_as = court_physician_court_position
can_be_employed_as = master_of_horse_court_position
can_be_employed_as = master_of_hunt_court_position
can_be_employed_as = keeper_of_swans_court_position
can_be_employed_as = court_jester_court_position
can_be_employed_as = high_almoner_court_position
can_be_employed_as = seneschal_court_position
can_be_employed_as = court_tutor_court_position
can_be_employed_as = court_guru_court_position
can_be_employed_as = cupbearer_court_position
can_be_employed_as = chief_eunuch_court_position
can_be_employed_as = antiquarian_court_position
can_be_employed_as = royal_architect_court_position
can_be_employed_as = lady_in_waiting_court_position
can_be_employed_as = court_poet_court_position
can_be_employed_as = court_musician_court_position
can_be_employed_as = bodyguard_court_position
can_be_employed_as = champion_court_position
can_be_employed_as = food_taster_court_position
can_be_employed_as = executioner_court_position
can_be_employed_as = garuda_court_position
can_be_employed_as = travel_leader_court_position
can_be_employed_as = wet_nurse_court_position
can_be_employed_as = akolouthos_court_position
}
}
##### Hold court
hold_court_8010_county_trigger = {
any_title_to_title_neighboring_county = {
holder.top_liege = {
NOR = {
THIS = ROOT
is_allied_to = ROOT
is_at_war_with = ROOT
is_close_or_extended_family_of = ROOT
max_military_strength < hold_court_8010_75_strength_value # 75% of ROOT's soldiers
}
}
}
}
target_of_powerful_faction_trigger = {
exists = yes
OR = {
faction_is_type = liberty_faction
faction_is_type = claimant_faction
}
OR = {
faction_power >= faction_power_threshold
faction_is_at_war = yes
}
trigger_if = {
limit = { exists = special_character }
special_character != faction_target.liege
}
}
province_has_no_holding_trigger = { # province has no holding
has_ongoing_construction = no
NOR = {
has_holding_type = castle_holding
has_holding_type = tribal_holding
has_holding_type = city_holding
has_holding_type = church_holding
has_holding_type = herder_holding
has_holding_type = nomad_holding
has_holding_type = temple_citadel_holding
}
}
county_has_all_holding_types = { # county has all three holding types
any_county_province = { has_holding_type = castle_holding }
any_county_province = { has_holding_type = city_holding }
any_county_province = { has_holding_type = church_holding }
}
county_has_empty_province_trigger = {
tier = tier_county
any_county_province = { province_has_no_holding_trigger = yes }
}
county_has_no_city_trigger = { # No city in a county
NOT = {
any_county_province = { has_holding_type = city_holding }
}
}
county_has_no_church_trigger = { # No church in a county
NOT = {
any_county_province = { has_holding_type = church_holding }
}
}
##############
# DECISION TRIGGERS
##############
order_mass_eviction_decision_evictable_courtier_trigger = {
NOR = {
is_of_major_or_minor_interest_trigger = { CHARACTER = root }
any_close_family_member = {
host = root
is_of_major_or_minor_interest_trigger = { CHARACTER = root }
}
}
}
# For technical reasons, this trigger can't be the same as ep1_decision_0111_list_builder_guts_trigger, but maintains (almost) technical parity with it.
exoticise_a_grand_hall_decision_list_builder_guts_trigger = {
# Is the title presently active?
exists = holder
# Can the two communicate?
holder = {
# Filter out anyone who has the right rank but lacks a mechanical royal court.
has_royal_court = yes
has_dlc_feature = royal_court
# Can the two communicate?
in_diplomatic_range = root
}
}
##############
# CHARACTER INTERACTIONS TRIGGERS
##############
indebt_guest_interaction_basic_checks_trigger = {
$ACTOR$ = {
# Gotta have a royal court.
has_royal_court = yes
has_dlc_feature = royal_court
# Gotta have maxed servants to help.
amenity_level = {
target = court_servants
value >= max_amenity_level
}
}
}
##############
# BANNER TRIGGERS
##############
artifact_house_not_owns_or_claims_trigger = {
exists = scope:familial_banner
NOR = {
this = scope:familial_banner.artifact_owner.house
has_house_artifact_claim = scope:familial_banner
}
trigger_if = {
limit = { exists = scope:familial_banner.var:banner_dynasty }
house_head.dynasty = scope:familial_banner.var:banner_dynasty
}
}
is_composite_bow_culture_trigger = {
OR = {
has_cultural_tradition = tradition_horse_lords
has_cultural_pillar = heritage_byzantine
has_cultural_pillar = heritage_caucasian
has_cultural_pillar = heritage_turkic
has_cultural_pillar = heritage_mongolic
has_innovation = innovation_advanced_bowmaking
}
}

View file

@ -52,7 +52,7 @@ mpo_gok_coalition_member_trigger = {
}
highest_held_title_tier < tier_county
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
is_imprisoned_by = root
is_obedient_to = root
}
@ -139,7 +139,7 @@ mpo_gok_submitting_coward_trigger = {
}
OR = {
is_imprisoned_by = root
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
has_relation_friend = root
AND = {
exists = root.house
@ -280,7 +280,7 @@ gok_desirable_vassal_trigger = {
mpo_greatest_of_khans_0030_willing_nomad_vassal = {
OR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
OR = {
is_obedient = yes
@ -305,7 +305,7 @@ mpo_greatest_of_khans_0030_willing_nomad_vassal = {
mpo_greatest_of_khans_0030_dominated_nomad_vassal = {
OR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
OR = {
is_obedient = yes
@ -334,7 +334,7 @@ mpo_greatest_of_khans_0030_dominated_nomad_vassal = {
mpo_greatest_of_khans_0030_willing_sedentary_vassal = {
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
government_has_flag = government_is_theocracy
government_has_flag = government_is_landless_adventurer
}
@ -360,7 +360,7 @@ mpo_greatest_of_khans_0030_willing_sedentary_vassal = {
mpo_greatest_of_khans_0030_dominated_sedentary_vassal = {
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
government_has_flag = government_is_theocracy
government_has_flag = government_is_landless_adventurer
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,122 @@
# Movement Power
catalyst_expansion_movement_yearly = {}
catalyst_advancement_movement_yearly = {}
catalyst_conservative_movement_yearly = {}
catalyst_pro_hegemon_movement_advancement_yearly = {}
catalyst_pro_hegemon_movement_expansion_yearly = {}
catalyst_pro_hegemon_movement_yearly = {}
catalyst_movement_gained_power_advancement = {}
catalyst_movement_gained_power_expansion = {}
catalyst_movement_gained_power_conservative = {}
catalyst_movement_gained_power_pro_hegemon = {}
catalyst_movement_consulted_heaven_advancement_positive = {}
catalyst_movement_consulted_heaven_advancement_negative = {}
catalyst_movement_consulted_heaven_expansion_positive = {}
catalyst_movement_consulted_heaven_expansion_negative = {}
catalyst_movement_consulted_heaven_instability_positive = {}
catalyst_movement_consulted_heaven_instability_negative = {}
catalyst_movement_consulted_heaven_chaos_positive = {}
catalyst_movement_consulted_heaven_chaos_negative = {}
catalyst_house_head_consulted_heaven_advancement_positive = {}
catalyst_house_head_consulted_heaven_advancement_negative = {}
catalyst_house_head_consulted_heaven_expansion_positive = {}
catalyst_house_head_consulted_heaven_expansion_negative = {}
catalyst_house_head_consulted_heaven_instability_positive = {}
catalyst_house_head_consulted_heaven_instability_negative = {}
catalyst_house_head_consulted_heaven_chaos_positive = {}
catalyst_house_head_consulted_heaven_chaos_negative = {}
# Warfare
catalyst_hegemon_above_maa_limit_yearly = {}
catalyst_hegemon_below_maa_limit_yearly = {}
catalyst_hegemon_outdated_maa_yearly = {} # NOT IMPLEMENTED - requires feature
catalyst_hegemon_hired_mercenary = {} # NOT IMPLEMENTED - requires code support
catalyst_hegemon_lost_defensive_territorial_war = {}
catalyst_hegemon_lost_capital_in_war = {}
catalyst_hegemon_lost_war = {}
catalyst_hegemon_won_war = {}
catalyst_hegemon_in_defensive_war_yearly = {}
# Merit
catalyst_hegemon_appointing_low_merit_councillor = {}
catalyst_hegemon_appointing_low_merit_governor = {}
catalyst_imperial_examinations_gap_long_yearly = {}
catalyst_imperial_examinations_gap_short_yearly = {}
# Diplomacy
catalyst_hegemon_too_few_tributaries_yearly = {} # NOT IMPLEMENTED - requires tributary feature
# Intrigue
catalyst_hegemon_murdered = {}
catalyst_imperial_family_member_murdered = {}
catalyst_minister_imprison = {}
# Legitimacy
catalyst_hegemon_lost_mandate_of_heaven = {}
catalyst_hegemon_gains_mandate_of_heaven = {}
catalyst_hegemon_mandate_of_heaven_at_0 = {}
catalyst_hegemon_below_legitimacy_yearly = {}
catalyst_hegemon_above_legitimacy_yearly = {}
# Succession
catalyst_new_dynasty_inherits = {}
# Calamities
catalyst_hegemon_natural_disaster = {}
catalyst_hegemon_natural_disaster_recovered = {}
catalyst_hegemon_handled_calamity = {}
catalyst_hegemon_in_civil_war = {}
catalyst_hegemon_epidemic = {}
catalyst_hegemon_apocalyptic_epidemic = {}
catalyst_requested_incursion = {}
# Imperial Treasury
catalyst_imperial_treasury_raided = {}
catalyst_imperial_treasury_debt = {}
catalyst_cleared_treasury_debt = {}
# Held Lands
catalyst_hegemony_too_few_lands = {}
catalyst_hegemony_far_too_few_lands = {}
# Regency
catalyst_diarch_mandate = {}
# Administrative
catalyst_governor_embezzlement = {}
catalyst_dipped_into_treasury = {}
catalyst_hegemon_influenced_by_interaction = {}
catalyst_hegemon_targeted_by_political_scheme = {}
catalyst_governor_raided_estate = {}
catalyst_governor_slander = {}
catalyst_governor_challenged_status = {}
# Great Projects
catalyst_great_wall = {}
catalyst_grand_campaign = {}
catalyst_grand_campaign_lost = {}
catalyst_minister_project_culture = {}
catalyst_great_project_great_wall_contribution = {}
catalyst_great_project_establish_control_contribution = {}
catalyst_minister_compel_religious_uniformity = {}
catalyst_minister_train_troops = {}
catalyst_minister_conduct_census = {}
# Events
catalyst_event_advancement_medium_progress = {}
catalyst_event_mongol_empire_appears = {}
catalyst_event_mongol_empire_attacks_major = {}
catalyst_event_mongol_empire_attacks_minor = {}
# Tyranny
catalyst_tyrannical_extinguish_noble_family = {}
catalyst_ministers_abused_privilege_of_office = {}
# Ministers
catalyst_find_secrets_bad_outcome = {}
catalyst_find_secrets_good_outcome = {}
catalyst_minister_blackmailed = {}
catalyst_minister_exposed_secret = {}
catalyst_minister_pardoned_known_criminal = {}
catalyst_minister_pardoned_dangerous_criminal = {}
catalyst_minister_caught_exam_cheater = {}

View file

@ -0,0 +1,5 @@
# Time
catalyst_situation_passing_of_time_monthly = {}
# Great Project
catalyst_natural_disaster_great_project_investment = {}
catalyst_natural_disaster_great_project_completion = {}

View file

@ -0,0 +1,46 @@
# Regions of the road fully at peace give a bonus to prosperity
catalyst_silk_road_region_war = {} # pseudotriggered by yearly pulse of event neutral_situation.0001-0006 in events\dlc\fp2\neutral_struggle_events.txt
catalyst_silk_road_adjacent_upstream_region_war = {} # pseudo triggered by yearly pulse of event neutral_situation.0001-0006 in events\dlc\fp2\neutral_struggle_events.txt
catalyst_silk_road_distant_upstream_region_war = {} # pseudo triggered by yearly pulse of event neutral_situation.0001-0006 in events\dlc\fp2\neutral_struggle_events.txt
# Regions of the road fully at war cause hardship
catalyst_silk_road_region_peace = {} # pseudo triggered by yearly pulse of event neutral_situation.0001-0006 in events\dlc\fp2\neutral_struggle_events.txt
catalyst_silk_road_adjacent_upstream_region_peace = {} # pseudo triggered by yearly pulse of event neutral_situation.0001-0006 in events\dlc\fp2\neutral_struggle_events.txt
catalyst_silk_road_distant_upstream_region_peace = {} # pseudo triggered by yearly pulse of event neutral_situation.0001-0006 in events\dlc\fp2\neutral_struggle_events.txt
## Legacy of Persia factors
# bad for number
catalyst_silk_road_iranian_intermezzo_in_unrest = {} # triggered by yearly pulse of event neutral_struggle.0001 in events\dlc\fp2\neutral_struggle_events.txt
# good for number
catalyst_silk_road_iranian_intermezzo_ending_reached = {
# included in the effects for the following decisions, all found in common\decisions\delc_decisions\fp3_decisions.txt:
# struggle_persia_ending_foundation_decision
# struggle_persia_ending_assertion_decision
# struggle_persia_ending_rekindle_iran_decision
# also included in the scripted effect 'fp3_struggle_ending_concession_effects', found at common\scripted_effects\05_dlc_fp3_scripted_effects.txt
}
### TGP Dynastic Cycle factors
catalyst_silk_road_china_stability = {} # neutral_struggle.0001
catalyst_silk_road_china_consolidation = {} # situation_dynastic_cycle_phase_chaos on_start
catalyst_silk_road_china_grand_canal_expanded = {} # grand_canals great_project
catalyst_silk_road_china_grand_canal_expanded_secondary = {} # grand_canals great_project
catalyst_silk_road_china_grand_canal_expanded_tertiary = {} # grand_canals great_project
# this is good, misc
catalyst_silk_road_mpo_region_resettled = {} # feudalize_holding_interaction
# this is bad, misc
catalyst_silk_road_byzantium_blew_up = {} # on_title_destroyed
catalyst_silk_road_mpo_region_to_steppe = {} # expand_the_steppe_decision
catalyst_silk_road_raided = {} # on_raid_completed
catalyst_silk_road_mongol_devastation = {} # on_county_occupied
# this should be bad but it's so much worse right now. For devastation -> disruption.
catalyst_silk_road_low_control_at_peace = {
}
catalyst_silk_road_famous_market_built = {
# triggered by on_completed action for special buildings. Search for this key in common\buildings\00_special_buildings.txt
}

View file

@ -0,0 +1,7 @@
##############################################################
# Catalysts
##############################################################
catalyst_name = {
# No entries required inside, we only need the name to have a database entry and to use catalysts in the situation database
}

View file

@ -0,0 +1,6 @@
### Casus Belli
catalyst_win_any_war_within_the_region = {}
# Diplomacy
catalyst_gift_independent_ruler = {}

View file

@ -0,0 +1,5 @@
# Time
catalyst_situation_passing_of_time_blessing = {}
catalyst_situation_passing_of_time_lucky_chance_blessing = {}
catalyst_situation_passing_of_time_havsarsan = {}
catalyst_situation_passing_of_time_lucky_chance_havsarsan = {}

View file

@ -0,0 +1,31 @@
############################################
# Situations roughly at the top
# (201-300 )
major = { # referred to in code (DO NOT REMOVE)
sort_order = 220
}
struggles = { # referred to in code (DO NOT REMOVE)
sort_order = 210
}
############################################
# Situations roughly in the middle
# (101-200 )
############################################
# Situations roughly at the bottom
# (001-100 )
minor = { # referred to in code (DO NOT REMOVE)
sort_order = 10
}
natural_disasters = {
sort_order = 9
}
debug = { # referred to in code (DO NOT REMOVE)
sort_order = -1
}

View file

@ -0,0 +1,5 @@
# Name of group, localization is selected by: "situation_group_type_" + <key>
key = {
sort_order = integer # The order situation groups show up in the situations view, higher number is sorted first, tie breaking is on definition order. Default = 0
gui_tags = { tag_1 tag_2 ... } # List of gui tags, used to set size etc in gui views
}

View file

@ -0,0 +1,363 @@
##############################################################
# Structure
#
# Situations are short or long running objects that are bound to a region, which go through phases.
# Characters can be a participant in the situation, and then will belong to one participant group.
##############################################################
situation_type = {
### Brief: window ( enum )
# What code functions will be available for the gui window.
# Default is 'situation'.
#
# Enums:
# situation
# the_great_steppe
# silk_road
# dynastic_cycle
#
window = situation
### Brief: gui_window_name ( string )
# Which gui window to use for this situation. Notice you can mix and match code 'window' with any gui window.
# Expects a file to be located under "gui/" and will automatically apply the ".gui" file ending, containing a widget
# with the specified name.
# Default is "window_situation"
#
gui_window_name = window_situation
### Brief: gui_participation_window_name ( string )
# Which gui window to use for the situation participation sub-window.
# Expects a file to be located under "gui/" and will automatically apply the ".gui" file ending, containing a widget
# with the specified name.
# Default is "window_situation_participation"
#
gui_participation_window_name = window_situation_participation
### Brief: gui_tooltip_group_focused (bool )
# If phase effect tooltips display effects by Participant Group, instead of by Named Modifier Set (modifier_named_sets)
#
gui_tooltip_group_focused = no
# Path to illustration shown in the situation list window
illustration = "path/to/image.dds"
# Triggered icon for the situation, accessible via [Situation.GetIcon].
# Write one entry per icon. The trigger is based on a Situation scope.
# If no empty triggered asset is defined, the default will be the situation_type icon.
icon = {
trigger = { ... }
reference = "icon_path.dds"
}
# Foldable situation group type where to put this situation in the gui.
# Defaults to the 'minor' group.
situation_group_type = <key>
# The order that the situation should show up within its situation group in the gui.
# Higher number is sorted first, tie breaking is on definition order if same sort order.
# Defaults to 0.
sort_order = integer
### Brief: map_mode ( enum )
# Which map mode to use for this situation type
# Default is participant_groups
#
# Enums:
# participant_groups
# sub_regions
#
map_mode = participant_groups
### What geographical sub-regions this Situation has
# - Each sub-region has their own list of characters for each participant group (see below)
# - Each sub-region will also have their own current active phase (same phases and flow for all sub-regions, as defined in 'phases' below
# - You are required to have at least 1 sub-region (otherwise the situation doesn't affect anything)
# - You are restricted to max 255 sub-regions. This is needed to properly identify participant groups within the region (see below)
# - Subregions cannot overlap
sub_regions = {
# Note: Every region type added below is counted as part of this sub-region <key>'s area
my_sub_region_key = {
# (optional) Path to illustration shown in the situation windows, texture can be accessed in GUI: "[SituationSubRegion.GetIllustration]"
illustration = "path/to/image.dds"
# (optional) Path to icon shown in the situation windows, texture can be accessed in GUI: "[SituationSubRegion.GetIcon]"
icon = "path/to/image.dds"
# (optional) The color of the sub-region, used for some map modes
map_color = { 1 0.5 0.2 }
# (optional) Add array of pre-defined geographical regions
geographical_regions = { world_mesopotamia special_mongol_empire_start_region }
}
my_other_region_key = {
...
}
}
### Define one or more participant groups.
# Participating characters can only belong to one participant group at a time, for each sub-region.
# Characters being considered for participation will be placed in the *first* group they are valid for.
# You are restricted to max 255 participant groups. This is needed to properly identify participant groups within a specific region.
# There is a set of groups for each sub-region.
participant_groups = {
# One group with characters
my_group_key = {
# (optional) Path to icon for group
icon = "path/to/image.dds"
### Should this group automatically consider all landed rulers in a sub-region as potential participants
# Rulers still need to satisfy the other conditions of this group to be automatically added to it.
# If this is 'no', then you will need to manually add/remove landed rulers to the Situation instead
# (default: yes)
auto_add_rulers = yes
### Should this group automatically consider all rulers with their domicile in a sub-region as potential participants
# Landless rulers still need to satisfy the other conditions of this group to be automatically added to it.
# If this is 'no', then you will need to manually add/remove landless characters to the Situation instead
# (default: yes)
auto_add_landless_rulers = yes
# (optional) The color of the participant group, used for some map modes
map_color = { 1 0.5 0.2 }
# Is it required that the capital of participants is in the region?
# (default: no)
require_capital_in_sub_region = no
# Is it required that some part of the domain of participants is in the region?
# (default: no)
require_domain_in_sub_region = no
# Is it required that some part of the realm of participants is in the region?
# (default: yes)
require_realm_in_sub_region = yes
# Is it required that the character's domicile, if any, is in the region?
# Character without domicile will still satisfy this requirement.
# (default: no)
require_domicile_in_sub_region = no
### Trigger determining if a character is valid to be added / can stay in this group (optional)
# root = character
# scope:situation = situation
# scope:situation_sub_region = situation sub region
is_character_valid = {}
### Effect run when character joins
# root = character
# scope:situation = situation
# scope:situation_participant_group = situation participant group
# scope:situation_sub_region = situation sub region
on_join = {}
### Effect run when character leaves the participant group (note: not fired when the situation ends)
# root = character
# scope:situation = situation
# scope:situation_participant_group = situation participant group
# scope:situation_sub_region = situation sub region
on_leave = {}
}
}
### Effect run when Situation starts (and initial setup has been completed)
# Root = situation
on_start = {}
### Effect run when Situation ends
# Root = situation
on_end = {}
### Effect run every month
# Root = situation
on_monthly = {}
### Effect run every year
# Root = situation
on_yearly = {}
### Effect run on Character as they join the situation
# Root = character
on_join = {}
### Effect run on Character as they leave the situation (note: not fired when the situation ends)
# Root = character
on_leave = {}
### If this situation type can only exist once in the world
# (this allows access via scope `situation:<name_of_type>`)
# Default: no
is_unique = no
# Enables full catalyst history for the situation if set to yes.
# The catalyst history can become very big, only use this flag if needed.
keep_full_history = no
### If rulers involved in this situation should migrate in search for better fetrility
# Migration AI is a complex part of AI logic, so it needs to be explicitly enabled here
# Rules that are involved insituation and who use county fertility will migrate
# Default: no
migration = no
# Which phase should this situation start in (if none if given on situation creation)
start_phase = my_phase_key
# Are the situation phase icons flat or not? Mismatch here gives weird appearance in tooltips.
# Default: yes
use_situation_phase_flat_icons = yes
# Which phases can this Situation Type be in? (at least one needs to exist)
phases = {
# Definition of one phase
my_phase_key = {
### Brief: parameters ( parameter list )
# Arbitrary parameters related to the phase type
# Can be checked in gui by: SituationPhaseType.HasParameter('string')
# Note: Requires loc format "situation_parameter_<key>" to show up in tooltips
#
# Differenting from the parameters in modifier_named_sets in that these
# are always the same on the phase type regardless of involved characters
#
parameters = {
some_parameter = yes
}
# Effect run when phase is started in a specific sub region
# Root = situation
# scope:situation = situation
# scope:situation_sub_region = situation sub region this phase belongs to
on_start = { }
# Effect run when phase in a specific sub region is being ended (and next phase has been determined)
# Root = situation
# scope:situation = situation
# scope:situation_sub_region = situation sub region this phase belongs to
on_end = { }
# (optional) Path to illustration shown in the situation windows
# Texture can be accessed in GUI: "[SituationPhaseType.GetIllustration]" or "[SituationSubRegion.GetCurrentPhase.GetType.GetIllustration]"
illustration = "path/to/image.dds"
# (optional) Path to icon for group
icon = "path/to/image.dds"
# (optional) Map province effect applied to all provinces of the sub-region if this phase is active
map_province_effect = map_province_effect_key
# (optional) Map province effect intensity (range 0.0-1.0, default 1.0)
map_province_effect_intensity = 1.0
# (optional) Maximum duration (days) this phase will run.
# `max_duration_next_phase` will determine which phase will be next, if max_duration is met
# [Scripted Duration]
# root - situation
# scope:situation_sub_region = situation sub region this phase belongs to
max_duration = { days = 1234 }
# How a next phase is selected, if this phase ends by running out of duration (without a phase taking it over before that).
#
# Possible values:
# (default) highest_points - whichever of the 'future_phases' has accumulated the most 'points'
# weighted_random_points - randomly picks one of the 'future_phases', weighted by their current 'points'
# random_non_takeover - randomly picks one of the 'future_phases' with equal weight, only picking from phases that have `takeover_type = none`
# weighted_non_takover - picks one of the 'future_phases' with highest 'weight' value
max_duration_next_phase = weighted_random_points
# Which phases could this phase transition into?
future_phases = {
# 'phase_key' of possible future phase
my_future_phase_key = {
### (optional) If this phase can take over a currently active phase, and how.
#
# Possible values:
# none - (default) It cannot take over an active phase
# points - when the phase accumulates enough catalyst points, specified by `takeover_points`
# duration - when the current active phase has been active for a specific duration, specified by `takeover_duration`
takeover_type = duration
### (optional) Scripted value determining when this phase takes over an active phase in catalyst points
# Cannot be used together with `takeover_duration`
takeover_points = 1234
### (optional) Scripted value determining when this phase takes over for the next phase
weight = 10
### Scripted value determining when this phase takes over an active phase, if that phase has been active for a duration. (scripted duration)
# Cannot be used together with `takeover_points`
# Root = situation
# scope:situation_sub_region = situation sub region this phase belongs to
takeover_duration = { days = 1234 }
### (optional) Which catalysts contribute to this phase taking over? Value is "number of points" added to future phase total.
# If 'takeover_type = points', this can trigger an automatic take-over of the current phase by this future phase.
# (possible catalysts are defined in common/situation/catalyst)
catalysts = {
catalyst_betrayed_alliance = 25
catalyst_something_something = 30
}
}
# Another possible future phase
other_future_phase_key = {
# More catalysts here
}
}
# Which modifiers and other effects are active while this phase is active
modifier_named_sets = {
### Named "set of modifiers"
# Apply modifiers / parameters to current situation phase & participants
# Examples: "War Effects", "Diplomacy Effects"
# Note: The arbitrary name you set will be used as it's localization key
#
war_effects_and_stuff_set = {
### Brief: icon ( string )
# Path to icon texture displayed in situation windows
icon = "path/to/image.dds"
### Applied to all participant groups in the situation
# (see `my_participant_group_type_key` below for examples)
all = {
county_modifier = {}
character_modifier = {}
parameters = {}
doctrine_character_modifier = {}
}
# Only for one specific participant group
my_participant_group_type_key = {
# (optional) Modifier applied to the character participant
character_modifier = {}
# (optional) Modifier applied to all domain counties of a ruler participant
county_modifier = {}
# (optional) One or more situation parameters that are active while this phase is active
parameters = {
cheaper_to_convert_to_struggle_faith = yes
county_faith_conversion_in_region_proceeds_faster = yes
}
# Applied to involved characters if they have the given doctrine (can define multiple 'doctrine_character_modifier')
doctrine_character_modifier = {
name = name_of_doctrine_localization_key
doctrine = doctrine_theocracy_lay_clergy
same_faith_opinion = 3
}
doctrine_character_modifier = {
name = name_of_other_doctrine_localization_key
doctrine = doctrine_theocracy_temporal
same_faith_opinion = -3
}
}
}
another_named_set = {
...
}
}
}
}
}

View file

@ -0,0 +1,440 @@
the_great_steppe = {
illustration = "gfx/interface/illustrations/event_story/mpo_steppe_region.dds"
situation_group_type = major
# Initial nomad assignment is done in two on_actions sections within game_start.txt, on_game_start and on_game_start_after_lobby
# Basic nomad govs are assigned in on_game_start so that realms that are nomadic correctly appear as such in the lobby
# Nomad titular titles, traits, domiciles are assigned in on_game_start_after_lobby, because read order made the game throw errors when these items were read pre-lobby-initialization
window = the_great_steppe
gui_window_name = "window_the_great_steppe"
map_mode = sub_regions
is_unique = yes # It can only exist once in the world
migration = yes
##################################################
# Regions
##################################################
sub_regions = {
world_europe = {
map_color = { 0 51 153 }
geographical_regions = { world_europe }
}
}
##################################################
# On Actions
##################################################
on_monthly = {
trigger_event = {
on_action = mpo_the_great_steppe_monthly_pulse
}
}
on_yearly = {
trigger_event = {
on_action = mpo_the_great_steppe_yearly_pulse
}
trigger_event = {
on_action = mpo_generic_nomadic_region_yearly_pulse
}
}
##################################################
# Groups
##################################################
participant_groups = {
nomad_rulers_capital = {
require_capital_in_sub_region = yes
auto_add_landless_rulers = no
is_character_valid = {
has_government = nomad_government
highest_held_title_tier >= tier_county
}
on_join = {
if = {
limit = {
is_ai = no
NOT = { has_variable = mpo_the_great_steppe_events_0001_var }
}
trigger_event = mpo_the_great_steppe.0001
}
}
map_color = { 255 127 80 }
}
nomad_rulers_realm = {
require_capital_in_sub_region = no
require_realm_in_sub_region = yes
auto_add_landless_rulers = no
is_character_valid = {
has_government = nomad_government
highest_held_title_tier >= tier_county
}
on_join = {
if = {
limit = {
is_ai = no
NOT = { has_variable = mpo_the_great_steppe_events_0001_var }
}
trigger_event = mpo_the_great_steppe.0001
}
}
map_color = { 255 127 80 }
}
herders = {
auto_add_landless_rulers = no
is_character_valid = {
has_government = herder_government
highest_held_title_tier >= tier_county
}
map_color = { 235 213 52 }
}
settled_rulers = { # They're unaware they're part of the situation, this is just so we can apply the fertility modifiers to their counties
auto_add_landless_rulers = no
is_character_valid = {
NOR = {
has_government = herder_government
has_government = nomad_government
}
highest_held_title_tier >= tier_county
}
on_join = {
if = {
limit = {
is_ai = no
NOT = { has_variable = mpo_the_great_steppe_events_0001_var }
}
trigger_event = mpo_the_great_steppe.0001
}
}
map_color = { 19 111 0 }
}
}
##################################################
# Phases
##################################################
start_phase = situation_steppe_abundant_grazing_season
phases = {
situation_steppe_abundant_grazing_season = {
icon = "gfx/interface/icons/seasons/abudant_grazing.dds"
illustration = "gfx/interface/illustrations/terrain_types/mpo_season_abudant_grazing.dds"
max_duration = { days = 3650 }
on_start = {
scope:situation_sub_region = {
save_scope_as = my_subregion
every_situation_sub_region_participant_group = {
limit = { participant_group_type = nomad_rulers_capital }
every_situation_group_participant = {
trigger_event = mpo_the_great_steppe.0002
}
}
}
}
max_duration_next_phase = random_non_takeover
future_phases = {
situation_steppe_severe_drought_season = {
}
situation_steppe_warm_nights_season = {
}
situation_steppe_abundant_grazing_season = {
}
}
modifier_sets = {
situation_steppe_fertility_effects = {
icon = "gfx/interface/icons/situations/situation_modifier_fertility.dds"
nomad_rulers_capital = {
county_modifier = {
county_fertility_growth_mult = cf_abundant_grazing_growth_mult_value
}
}
nomad_rulers_realm = {
county_modifier = {
county_fertility_growth_mult = cf_abundant_grazing_growth_mult_value
}
}
herders = {
county_modifier = {
county_fertility_growth_mult = cf_abundant_grazing_growth_mult_value
}
}
settled_rulers = {
county_modifier = {
county_fertility_growth_mult = cf_abundant_grazing_growth_mult_value
}
}
}
situation_steppe_subject_effects = {
icon = "gfx/interface/icons/situations/situation_modifier_subject.dds"
nomad_rulers_capital = {
character_modifier = {
vassal_opinion = 20
}
parameters = {
the_great_steppe_demand_herd_higher_rate = yes
}
}
settled_rulers = {
character_modifier = {
vassal_opinion = 20
vassal_tax_contribution_mult = 0.1
vassal_levy_contribution_mult = 0.1
}
}
}
situation_steppe_military_effects = {
icon = "gfx/interface/icons/situations/situation_modifier_military.dds"
nomad_rulers_capital = {
character_modifier = {
men_at_arms_maintenance = -0.2
}
}
settled_rulers = {
character_modifier = {
men_at_arms_maintenance = -0.2
levy_size = 1.25
}
}
}
situation_steppe_personal_effects = {
icon = "gfx/interface/icons/situations/situation_modifier_character.dds"
nomad_rulers_capital = {
parameters = {
the_great_steppe_cheaper_hunts = yes
}
}
}
}
}
situation_steppe_severe_drought_season = {
icon = "gfx/interface/icons/seasons/severe_drought.dds"
illustration = "gfx/interface/illustrations/terrain_types/mpo_season_severe_drought.dds"
max_duration = { days = 3650 }
map_province_effect = drought
on_start = {
scope:situation_sub_region = {
save_scope_as = my_subregion
every_situation_sub_region_participant_group = {
limit = { participant_group_type = nomad_rulers_capital }
every_situation_group_participant = {
trigger_event = mpo_the_great_steppe.0002
}
}
every_situation_sub_region_participant_group = {
limit = { participant_group_type = herders }
every_situation_group_participant = {
trigger_event = mpo_the_great_steppe.0003
}
}
}
}
max_duration_next_phase = random_non_takeover
future_phases = {
situation_steppe_abundant_grazing_season = {
}
situation_steppe_severe_drought_season = {
}
situation_steppe_warm_nights_season = {
}
}
modifier_sets = {
situation_steppe_fertility_effects = {
icon = "gfx/interface/icons/situations/situation_modifier_fertility.dds"
nomad_rulers_capital = {
county_modifier = {
county_fertility_decline_mult = cf_severe_drought_decline_mult_value
}
}
nomad_rulers_realm = {
county_modifier = {
county_fertility_decline_mult = cf_severe_drought_decline_mult_value
}
}
herders = {
county_modifier = {
county_fertility_decline_add = cf_severe_drought_decline_add_value
county_fertility_decline_mult = cf_severe_drought_decline_mult_value
county_fertility_growth_mult = cf_severe_drought_growth_mult_value
}
}
settled_rulers = {
county_modifier = {
county_fertility_decline_add = cf_severe_drought_decline_add_value
county_fertility_decline_mult = cf_severe_drought_decline_mult_value
county_fertility_growth_mult = cf_severe_drought_growth_mult_value
}
}
}
situation_steppe_subject_effects = {
icon = "gfx/interface/icons/situations/situation_modifier_subject.dds"
nomad_rulers_capital = {
parameters = {
the_great_steppe_migration_acceptance_boost = yes
the_great_steppe_migration_morale_boost = yes
}
}
}
situation_steppe_herd_effects = {
icon = "gfx/interface/icons/situations/situation_modifier_herd.dds"
nomad_rulers_capital = {
character_modifier = {
herd_conversion = 0.1
herd_gain_mult = -0.1
}
}
settled_rulers = {
character_modifier = {
herd_conversion = 0.1
herd_gain_mult = -0.1
levy_size = -1.25
vassal_tax_contribution_mult = -0.1
vassal_levy_contribution_mult = -0.1
}
}
}
situation_steppe_military_effects = {
icon = "gfx/interface/icons/situations/situation_modifier_military.dds"
nomad_rulers_capital = {
character_modifier = {
raid_speed = 0.25
}
}
}
}
}
situation_steppe_warm_nights_season = {
icon = "gfx/interface/icons/seasons/everlasting_summer.dds"
illustration = "gfx/interface/illustrations/terrain_types/mpo_season_everlasting_summer.dds"
max_duration = { days = 3650 }
map_province_effect = summer
map_province_effect_intensity = 0.6
on_start = {
scope:situation_sub_region = {
save_scope_as = my_subregion
every_situation_sub_region_participant_group = {
limit = { participant_group_type = nomad_rulers_capital }
every_situation_group_participant = {
trigger_event = mpo_the_great_steppe.0002
}
}
}
}
max_duration_next_phase = random_non_takeover
future_phases = {
situation_steppe_severe_drought_season = {
}
situation_steppe_abundant_grazing_season = {
}
situation_steppe_warm_nights_season = {
}
}
modifier_sets = {
situation_steppe_fertility_effects = {
icon = "gfx/interface/icons/situations/situation_modifier_fertility.dds"
nomad_rulers_capital = {
county_modifier = {
county_fertility_growth_mult = cf_warm_nights_growth_mult_value
}
}
nomad_rulers_realm = {
county_modifier = {
county_fertility_growth_mult = cf_warm_nights_growth_mult_value
}
}
herders = {
county_modifier = {
county_fertility_growth_mult = cf_warm_nights_growth_mult_value
}
}
settled_rulers = {
county_modifier = {
county_fertility_growth_mult = cf_warm_nights_growth_mult_value
}
}
}
situation_steppe_military_effects = {
icon = "gfx/interface/icons/situations/situation_modifier_military.dds"
nomad_rulers_capital = {
character_modifier = {
movement_speed = 0.1
}
}
}
situation_steppe_subject_effects = {
icon = "gfx/interface/icons/situations/situation_modifier_subject.dds"
nomad_rulers_capital = {
character_modifier = {
tributary_opinion = 10
vassal_opinion = 10
vassal_herd_contribution_mult = 0.2
}
}
settled_rulers = {
character_modifier = {
tributary_opinion = 10
vassal_opinion = 10
vassal_herd_contribution_mult = 0.2
}
}
}
}
}
}
}

View file

@ -0,0 +1,125 @@
# Obligations - how much does the subject give to their liege. The subject's government type determines which contract type is used.
# Note that the values can be changed with the vassal_tax_contribution_add/mult, vassal_levy_contribution_add/mult and vassal_herd_contribution_add/mult modifiers. (Applies to tributaries as well)
subject_contract = {
uses_opinion_of_liege = yes/no # if set to yes, scope:opinion_of_liege can be used in the levies and tax script math (it's a value that's updated daily for player contracts, for AI it uses NSubjectContract::OPINION_OF_LIEGE_UPDATE_INTERVAL. No by default for performance reasons.
is_shown = trigger to determine whether this obligation should be shown or not, uses the same scopes as obligation_levels
display_mode = tree/radiobutton/checkbox/hidden # How are the obligations displayed in the negotiate contract UI, default is radiobutton
# If this contract obligation should default to the (in score) level, instead to a specific one
# Default: no
defaults_to_highest_valid_level = yes/no
# Trigger that checks whether this option can be modified. Blockers will be shown in the tooltip and the option won't be clickable, but it will still be visible.
# Scope support:
# liege
# subject / vassal (for backward compatibility)
# tax_slot
# tax_collector
# opinion_of_liege = current opinion of the liege towards the subject, if uses opinion_of_liege is set to yes
#
can_be_changed = {
}
# Modifiable contract with multiple levels:
obligation_levels = {
# Scopes available:
# scope:liege the liege or suzerain in the contract
# scope:subject the subject in the contract
# scope:vassal the subject in the contract. Same as scope:subject. Kept in for backwards compatability.
# scope:opinion_of_liege set if uses_opinion_of_liege = yes
# scope:tax_slot the slot they are in/are being considered to be placed in
# scope:tax_collector the collector for the above/the potential new collector
subject_obligation_low = { # choose a key for the level, it will be used for localization
levies = 0.5 # % of levies (0..1), default 0; can also use script math
tax = 0.2 # % of gold income (0..1), default 0; Can also use script math
herd = 0.2 # % of herd income (0..1), default 0; Can also use script math
barter_goods = 0.2 # % of barter goods income (0..1), default 0; Can also use script math
min_levies = 0.1 # Optional min floor on levies. Can also use script math
min_tax = 0.0 # Optional min floor on tax. Can also use script math
min_herd = 0.0 # Optional min floor on herd. Can also use script math
min_barter_goods = 0.0 # Optional min floor on barter goods. Can also use script math
contribution_desc = { ... } # Optional dynamic description used for the breakdown of the tax, levies and herd contribution
tax_contribution_postfix = "..." # Optional postfix added to the tax contribution breakdown
levies_contribution_postfix = "..." # Optional postfix added to the levies contribution breakdown
herd_contribution_postfix = "..." # Optional postfix added to the herd contribution breakdown
unclamped_contribution_label = "..." # Breakdown label for the unclamped tax/levies/herd contribution
min_contribution_label = "..." # Breakdown label for the minimum tax/levies/herd contribution the value is clamped to
subject_opinion = 0 # value for opinion of liege that's added to subject's opinion of the liege if they have this contract
flag = token # Arbitrary flag, can be checked in script to see if any obligation level in the current subject contract has a flag
gui_tags = { tag_1 tag_2 ... } # List of gui tags, used to set size, color etc in gui views
score = int # Positive means it is better for the subject to have, 0 means neutral, negative is better for liege
# When changing obligations the current score and new score are compared to see if it is in favour of the subject or liege
# and by how much.
# Defaults to order the contracts are defined
ai_liege_desire = <script value int> # How much does the liege in the contract want this option
ai_subject_desire = <script value int> # How much does the subject in the contract want this option
liege_modifier = { <character modifiers> } # Modifiers applied to the liege in the contract
subject_modifier = { <character modifiers> } # Modifiers applied to the subject in the contract
is_shown = { <trigger> } # Is this obligation level visible for a subject (invisible levels are also not valid)
is_valid = { <trigger> } # Is this obligation level valid for a subject
# Can disable men at arms based on the title or the governor for the contract
# (Requires government to have the 'administrative' rule too)
# Default: yes - if defined in multiple obligations, will take first obligation in contract group
enable_title_maa = yes/no
# Can disable character men at arms
# Default: yes - if defined in multiple obligations, will take first obligation in contract group
enable_character_maa = yes/no
# Multiplier against the total tax/levies in a contract, be careful you do not get weird stacking behavior if multiple are on at once
tax_factor = <script value fixed point>
levies_factor = <script value fixed point>
herd_factor = <script value fixed point>
# Used in meritocratic appointment succession
# heir and candidate must have a trait with this flag in order to be eligible heir for the title
# contract obligations with an appointment flag are treated as valid when loading the game to avoid initialization sequence issues
appointment_trait_flag = some_trait_flag
}
subject_obligation_normal = {
default = yes # mark a level as default (otherwise the first will be the default)
parent = subject_obligation_low # What level can lead into this and that this can lead back to
position = { x y } # Where should this obligation icon appear when modifying contracts, multiplied with the NSubjectContract::OBLIGATION_OFFSET define
icon = "path/to/image.dds" # Icon used in UI
...
}
}
}
# Whether a tributary will automatically join their suzerain's wars (Default: no)
joins_suzerain_wars = yes/no
### AI Note
The liege and subject desire are used as follows:
When finding the most desired level to change we check if any ajdacent obligation level to the currently active ones are desired by them more. Desires less than or equal to zero are not considered and if the score is less then or equal to the desire of the current level it is also not considered.
The does_ai_liege_in_vassal_contract_desire_obligation_change and does_ai_vassal_in_vassal_contract_desire_obligation_change triggers check that we have any obligation level change desired at all.
The apply_ai_vassal_obligation_vassal_most_desired and apply_ai_vassal_obligation_liege_most_desired effects apply the desired option via a weighted random of the desire score of all valid desired levels.
# Text
The following should be localised
<contract_level>
<obligation_level>
<obligation_level>_short
<obligation_level>_desc
When modifying a subject contract, the following additional scopes are available:
- scope:changed_obligations # a list of all contract obligations that have changed in the window
- scope:new_value # a scope value that represents how much the changes benefits the subject, based on the obligation's increase in score

View file

@ -0,0 +1,456 @@
administrative_obligations = {
obligation_levels = {
default = {
levies = {
value = 0.3
#multiply = governor_efficiency
}
tax = {
value = 0.75
#multiply = governor_efficiency
}
}
}
}
### brief: administrative_themes
# This is referenced in code.
#
administrative_themes = {
display_mode = radiobutton
is_shown = {
scope:subject.primary_title.tier >= tier_duchy
}
obligation_levels = {
admin_theme_balanced = {
default = yes
position = { 0 0 }
gui_tags = { byzantine_purple }
icon = "gfx/interface/icons/theme_administration_types/icon_balanced_administration.dds"
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
}
}
add = 1
}
}
ai_subject_desire = 0
score = 0
color = { 0.7 0.7 0.7 1.0 }
subject_modifier = {
governor_xp_gain_mult = 0.2
}
flag = admin_theme_balanced
}
admin_theme_civilian = {
position = { 2 0 }
icon = "gfx/interface/icons/theme_administration_types/icon_civilian_administration.dds"
gui_tags = { byzantine_purple }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
OR = {
has_trait = education_stewardship
stewardship >= very_high_skill_rating
AND = { # Large semi-coastal themes are good for an economic focus
any_sub_realm_county = { count >= 2 is_coastal_county = yes }
any_sub_realm_county = { count >= 2 is_coastal_county = no }
}
}
}
}
add = 2
}
if = {
limit = {
scope:liege = {
ai_has_builder_or_pious_builder_personality = yes
}
}
add = 1
}
}
ai_subject_desire = 0
score = 0
color = { 0.2 0.2 0.7 1.0 }
tax_factor = 0.5
subject_modifier = {
development_growth_factor = 0.2
build_gold_cost = -0.1
build_speed = -0.1
men_at_arms_title_limit = -2
men_at_arms_title_cap = -2
}
flag = admin_stewardship_obligation_bonus
flag = admin_influence_construction_bonus
flag = admin_ai_is_builder
flag = admin_theme_civilian
flag = obligation_high_taxes
}
admin_theme_military = {
position = { 1 0 }
icon = "gfx/interface/icons/theme_administration_types/icon_military_administration.dds"
gui_tags = { byzantine_purple }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
OR = {
has_trait = education_martial
martial >= very_high_skill_rating
primary_title = { any_owned_title_maa_regiment = { count > 4 } }
AND = { # Large inland themes are good for military
any_sub_realm_county = { count >= 5 }
any_sub_realm_county = { percent >= 0.95 is_coastal_county = no }
}
}
}
}
add = 2
}
if = {
limit = {
scope:liege = {
ai_has_warlike_personality = yes
}
}
add = 1
}
}
ai_subject_desire = 0
score = 0
color = { 0.7 0.2 0.2 1.0 }
levies_factor = 0.75
subject_modifier = {
development_growth_factor = -0.25
monthly_county_control_growth_factor = 0.1
maa_damage_mult = 0.1
men_at_arms_title_cap = 2
men_at_arms_maintenance = -0.2
monthly_treasury_from_military_budget_base = 1
}
flag = admin_martial_obligation_bonus
flag = admin_theme_military
flag = obligation_high_levies
}
admin_theme_frontier = {
position = { 0 1 }
icon = "gfx/interface/icons/theme_administration_types/icon_frontier_administration.dds"
gui_tags = { byzantine_purple }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
}
}
add = 5
}
}
ai_subject_desire = 0
score = 0
color = { 0.2 0.7 0.2 1.0 }
is_valid = {
custom_tooltip = {
text = admin_theme_frontier_valid_desc
scope:subject = {
any_sub_realm_county = {
any_neighboring_county = {
holder = {
top_liege != scope:subject.top_liege
}
}
}
}
}
}
tax_factor = -0.2
subject_modifier = {
fort_level = 2
defender_advantage = 6
hostile_county_attrition = -0.3
hostile_raid_time = 0.75
# Values to tweak the AI slightly in order to make them more likely to declare war
ai_boldness = 20
ai_rationality = -15
monthly_treasury_from_military_budget_base = 1.5
}
flag = admin_prowess_obligation_bonus
flag = admin_duchy_expansion_unlocked
flag = admin_ai_is_warlike
flag = admin_theme_frontier
flag = admin_theme_can_raid
}
admin_theme_imperial = {
position = { 1 1 }
icon = "gfx/interface/icons/theme_administration_types/icon_imperial_administration.dds"
gui_tags = { byzantine_purple }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:liege = {
NOT = {
any_vassal = { vassal_contract_has_flag = admin_theme_imperial }
}
}
scope:subject = {
is_ai = yes
culture = scope:liege.culture
faith = top_liege.primary_title.state_faith
}
}
add = 5
}
if = {
limit = {
exists = scope:liege.house
exists = scope:subject.house
scope:liege.house = scope:subject.house
}
add = 1
}
}
ai_subject_desire = 0
score = 0
color = { 0.7 0.0 0.7 1.0 }
is_valid = {
scope:liege = {
highest_held_title_tier = tier_empire
}
custom_tooltip = {
text = admin_theme_imperial_valid_desc
OR = {
scope:liege = {
NOT = {
any_vassal = { vassal_contract_has_flag = admin_theme_imperial }
}
}
AND = {
scope:subject = { vassal_contract_has_flag = admin_theme_imperial }
scope:liege = {
any_vassal = {
count = 1
vassal_contract_has_flag = admin_theme_imperial
}
}
}
}
}
}
tax_factor = 0.1
liege_modifier = {
monthly_prestige_gain_per_legitimacy_level_add = 0.5
legitimacy_gain_mult = 0.2
}
subject_modifier = {
monthly_prestige = 0.5
monthly_influence = 0.25
}
flag = admin_theme_imperial
flag = admin_prestige_obligation_bonus
flag = admin_cannot_revoke_titles_without_cause
flag = obligation_high_taxes
}
admin_theme_naval = {
position = { 2 1 }
icon = "gfx/interface/icons/theme_administration_types/icon_naval_administration.dds"
gui_tags = { byzantine_purple }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = { is_ai = yes }
}
if = {
limit = { # Large coastal areas qualify as good naval themes
scope:subject = {
any_sub_realm_county = {
count >= 3
is_coastal_county = yes
}
}
scope:liege = { # But don't go overboard with naval themes
any_vassal = {
percent < 0.15
vassal_contract_has_flag = admin_theme_naval
}
}
}
add = 3
}
if = {
limit = { # Islands are good naval candidates
scope:subject = {
any_sub_realm_county = {
percent >= 0.95
is_coastal_county = yes
OR = {
any_neighboring_county = {
percent >= 0.95
holder = {
OR = {
this = scope:subject
any_liege_or_above = { this = scope:subject }
}
}
}
any_neighboring_county = { count < 1 }
}
}
}
}
add = 8
}
}
}
ai_subject_desire = 0
score = 0
color = { 0.0 0.4 0.7 1.0 }
is_valid = {
custom_tooltip = {
text = admin_theme_naval_valid_desc
scope:subject = {
any_sub_realm_county = {
is_coastal_county = yes
}
}
}
}
liege_modifier = {
embarkation_cost_mult = -0.1
naval_movement_speed_mult = 0.1
}
subject_modifier = {
embarkation_cost_mult = -0.5
naval_movement_speed_mult = 0.25
no_disembark_penalty = yes
coastal_advantage = 10
development_growth_factor = 0.1
monthly_treasury_from_military_budget_base = 1
}
flag = admin_naval_duchy_expansion_unlocked
flag = admin_tradeport_obligation_bonus
flag = admin_theme_naval
}
}
}
administrative_salary_rank = {
display_mode = hidden
defaults_to_highest_valid_level = yes
can_be_changed = {
always = no
}
obligation_levels = {
administrative_salary_rank_none = {
position = { 0 0 }
default = yes
ai_liege_desire = 0
ai_subject_desire = 0
}
administrative_salary_rank_duchy = {
position = { 2 0 }
parent = administrative_salary_rank_none
is_valid = {
scope:subject = {
highest_held_title_tier = tier_duchy
}
}
ai_liege_desire = 3
ai_subject_desire = 3
subject_modifier = {
monthly_treasury_from_salary_budget_base = 0.75
}
}
administrative_salary_rank_kingdom = {
position = { 3 0 }
parent = administrative_salary_rank_duchy
is_valid = {
scope:subject = {
highest_held_title_tier = tier_kingdom
}
}
ai_liege_desire = 4
ai_subject_desire = 4
subject_modifier = {
monthly_treasury_from_salary_budget_base = 1.0
}
}
administrative_salary_rank_empire = {
position = { 4 0 }
parent = administrative_salary_rank_kingdom
ai_liege_desire = 5
ai_subject_desire = 5
is_valid = {
scope:subject = {
highest_held_title_tier = tier_empire
is_landless_ruler = no
}
}
subject_modifier = {
monthly_treasury_from_salary_budget_base = 2.0
}
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,89 @@
clan_tax_collector_obligations = {
obligation_levels = {
default = {
levies = {
value = 0
if = {
limit = { exists = scope:tax_collector }
add = clan_government_levies_default
multiply = {
value = {
add = scope:tax_collector.tax_collector_aptitude:clan_tax_slot
save_temporary_value_as = tax_collector_aptitude_value
if = {
limit = {
scope:tax_collector_aptitude_value = 5
}
add = 10
}
else_if = {
limit = {
scope:tax_collector_aptitude_value = 4
}
add = 6
}
else_if = {
limit = {
scope:tax_collector_aptitude_value = 3
}
add = 3
}
else_if = {
limit = {
scope:tax_collector_aptitude_value = 2
}
add = 1
}
else = {
add = 0
}
}
}
}
}
tax = {
value = 0
if = {
limit = { exists = scope:tax_collector }
add = {
value = clan_government_tax_default
multiply = {
value = {
add = scope:tax_collector.tax_collector_aptitude:clan_tax_slot
save_temporary_value_as = tax_collector_aptitude_value
if = {
limit = {
scope:tax_collector_aptitude_value = 5
}
add = 10
}
else_if = {
limit = {
scope:tax_collector_aptitude_value = 4
}
add = 6
}
else_if = {
limit = {
scope:tax_collector_aptitude_value = 3
}
add = 3
}
else_if = {
limit = {
scope:tax_collector_aptitude_value = 2
}
add = 1
}
else = {
add = 0
}
}
}
}
}
}
}
}
}

View file

@ -0,0 +1,139 @@
default_tributary_taxes = {
display_mode = tree
icon = gold_icon
obligation_levels = {
tributary_tax_none = {
position = { 0 0 }
tax = 0
subject_opinion = 5
ai_liege_desire = 1
ai_subject_desire = 10
score = 1
}
tributary_tax_low = {
parent = tributary_tax_none
position = { 1 0 }
tax = normal_tributary_tax
subject_opinion = -5
ai_liege_desire = {
value = 2
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
}
add = 4
}
}
ai_subject_desire = 5
score = 0
}
tributary_tax_high = {
default = yes
parent = tributary_tax_low
position = { 2 0 }
tax = high_tributary_tax
subject_opinion = -25
ai_liege_desire = {
value = 3
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
}
add = 6
}
}
ai_subject_desire = 0
score = -1
}
}
}
default_tributary_levies = {
display_mode = tree
icon = soldier_icon
obligation_levels = {
tributary_levies_exempt = {
position = { 0 0 }
levies = 0
subject_opinion = 10
ai_liege_desire = 1
ai_subject_desire = 5
score = 2
}
tributary_levies_low = {
parent = tributary_levies_exempt
default = yes
position = { 1 0 }
levies = 0.25
subject_opinion = 5
ai_liege_desire = 2
ai_subject_desire = 4
score = 1
}
tributary_levies_high = {
parent = tributary_levies_low
position = { 2 0 }
levies = 0.5
subject_opinion = -15
ai_liege_desire = 4
ai_subject_desire = 2
score = -1
flag = obligation_high_levies
}
}
}
default_tributary_prestige = {
display_mode = tree
icon = prestige_icon
obligation_levels = {
prestige_transfer_none = {
position = { 0 0 }
prestige = 0
ai_liege_desire = 1
ai_subject_desire = 5
score = 2
}
prestige_transfer_normal = {
default = yes
parent = prestige_transfer_none
position = { 1 0 }
prestige = normal_prestige_transfer
subject_opinion = -10
ai_liege_desire = 5
ai_subject_desire = 3
score = 1
}
prestige_transfer_high = {
parent = prestige_transfer_normal
position = { 2 0 }
prestige = high_prestige_transfer
subject_opinion = -25
ai_liege_desire = 7
ai_subject_desire = 1
score = 0
}
}
}

View file

@ -0,0 +1,227 @@
feudal_government_taxes = {
display_mode = tree
icon = gold_icon
obligation_levels = {
feudal_tax_exempt = {
position = { 0 0 }
tax = exempt_feudal_tax
subject_opinion = 10
ai_liege_desire = 1
ai_subject_desire = 5
score = 2
}
feudal_tax_low = {
parent = feudal_tax_exempt
position = { 1 0 }
tax = low_feudal_tax
subject_opinion = 5
ai_liege_desire = {
value = 2
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
scope:subject = {
AND = {
government_has_flag = government_is_feudal
vassal_contract_obligation_level:feudal_government_taxes <= feudal_tax_exempt_level
}
}
}
add = 8
}
}
ai_subject_desire = 4
score = 1
}
feudal_tax_normal = {
default = yes
parent = feudal_tax_low
position = { 2 0 }
tax = normal_feudal_tax
ai_liege_desire = {
value = 3
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
scope:subject = {
AND = {
government_has_flag = government_is_feudal
vassal_contract_obligation_level:feudal_government_taxes <= feudal_tax_low_level
}
}
}
add = 7
}
}
ai_subject_desire = 3
score = 0
}
feudal_tax_high = {
parent = feudal_tax_normal
position = { 3 0 }
tax = high_feudal_tax
subject_opinion = -15
ai_liege_desire = {
value = 5
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
scope:subject = {
AND = {
government_has_flag = government_is_feudal
vassal_contract_obligation_level:feudal_government_taxes <= feudal_tax_normal_level
}
}
}
add = 6
}
}
ai_subject_desire = 2
score = -2
flag = obligation_high_taxes
}
feudal_tax_extortionate = {
parent = feudal_tax_high
position = { 4 0 }
tax = extortionate_feudal_tax
subject_opinion = -25
ai_liege_desire = {
value = 6
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
scope:subject = {
AND = {
government_has_flag = government_is_feudal
vassal_contract_obligation_level:feudal_government_taxes <= feudal_tax_high_level
}
}
}
add = 5
}
}
ai_subject_desire = 1
score = -3
flag = obligation_high_taxes
}
}
}
feudal_government_levies = {
display_mode = tree
icon = soldier_icon
obligation_levels = {
feudal_levies_exempt = {
position = { 0 0 }
levies = 0
subject_opinion = 10
ai_liege_desire = 1
ai_subject_desire = 5
score = 2
}
feudal_levies_low = {
parent = feudal_levies_exempt
position = { 1 0 }
levies = 0.1
subject_opinion = 5
ai_liege_desire = 2
ai_subject_desire = 4
score = 1
}
feudal_levies_normal = {
default = yes
parent = feudal_levies_low
position = { 2 0 }
levies = 0.25
ai_liege_desire = 3
ai_subject_desire = 3
score = 0
}
feudal_levies_high = {
parent = feudal_levies_normal
position = { 3 0 }
levies = 0.35
subject_opinion = -15
ai_liege_desire = 4
ai_subject_desire = 2
score = -1
flag = obligation_high_levies
}
feudal_levies_extortionate = {
parent = feudal_levies_high
position = { 4 0 }
levies = 0.5
subject_opinion = -25
ai_liege_desire = 5
ai_subject_desire = 1
score = -2
flag = obligation_high_levies
}
}
}
feudal_government_prestige = {
display_mode = tree
icon = prestige_icon
obligation_levels = {
prestige_transfer_none = {
position = { 0 0 }
prestige = 0
ai_liege_desire = 1
ai_subject_desire = 5
score = 2
}
prestige_transfer_normal = {
parent = prestige_transfer_none
position = { 1 0 }
prestige = 0.1
subject_opinion = -10
ai_liege_desire = 5
ai_subject_desire = 3
score = 1
}
prestige_transfer_high = {
parent = prestige_transfer_normal
position = { 2 0 }
prestige = 0.25
subject_opinion = -25
ai_liege_desire = 7
ai_subject_desire = 1
score = 1
}
}
}

View file

@ -0,0 +1,12 @@
herder_government_obligations = {
obligation_levels = {
default = {
herd = {
value = 0
}
tax = {
value = 0
}
}
}
}

View file

@ -0,0 +1,299 @@
japan_administrative_obligations = {
obligation_levels = {
default = {
levies = {
value = 0.1
}
tax = {
value = 0.1
}
}
}
}
### brief: administrative_themes
# This is referenced in code.
#
japan_administrative_provinces = {
display_mode = radiobutton
is_shown = {
scope:subject.primary_title.tier >= tier_county
}
obligation_levels = {
japan_administrative_province_standard = {
default = yes
position = { 0 0 }
icon = "gfx/interface/icons/celestial_administration_types/icon_standard_administration.dds"
gui_tags = { civilian }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = { is_ai = yes }
}
add = 1
# Cautious AI should tend to have a minor bias towards the default
if = {
limit = {
scope:liege = { ai_has_cautious_personality = yes }
}
add = 1
}
}
}
ai_subject_desire = 0
score = 0
color = { 0.7 0.7 0.7 1.0 }
enable_title_maa = no
flag = japan_administrative_province_standard
}
japan_administrative_province_trade = {
position = { 1 0 }
icon = "gfx/interface/icons/celestial_administration_types/icon_industrial_administration.dds"
gui_tags = { civilian }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
OR = {
has_trait = education_stewardship
stewardship >= very_high_skill_rating
}
}
}
add = 2
# Economical AI wants more of civic vassals
if = {
limit = {
scope:liege = { ai_has_builder_or_pious_builder_personality = yes }
}
add = 1
}
}
}
ai_subject_desire = 0
score = 0
color = { 0.2 0.2 0.7 1.0 }
is_valid = {
trigger_if = {
limit = { exists = this }
# Only for direct vassals of the top liege
scope:liege.top_liege = this
}
# There can only be a limited number of industries at a time
custom_tooltip = {
text = japan_administrative_province_trade_amount_desc
OR = {
scope:liege = {
any_vassal = {
count < japan_administrative_province_trade_max_value
vassal_contract_has_flag = japan_administrative_province_trade
}
}
scope:subject = {
OR = {
vassal_contract_has_flag = japan_administrative_province_trade
any_sub_realm_county = { is_coastal_county = yes } # Is a coastal province
}
}
}
}
}
tax_factor = 0.25
enable_title_maa = no
subject_modifier = {
development_growth_factor = 0.15
build_gold_cost = -0.1
build_speed = -0.2
}
flag = admin_ai_is_builder
flag = japan_administrative_province_trade
flag = obligation_high_taxes
}
japan_administrative_province_military = {
position = { 0 1 }
icon = "gfx/interface/icons/celestial_administration_types/icon_military_administration.dds"
gui_tags = { military }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
OR = {
has_trait = education_martial
martial >= very_high_skill_rating
primary_title = {
any_owned_title_maa_regiment = { count >= 3 }
}
any_sub_realm_county = { # Is a border province
any_neighboring_county = { holder.top_liege != scope:subject.top_liege }
}
}
}
}
add = 2
# Preference for vassals along the border
if = {
limit = {
scope:subject = {
any_sub_realm_county = {
any_neighboring_county = { holder.top_liege != scope:subject.top_liege }
}
}
}
add = 3
}
# Warlike AI wants more military vassals
if = {
limit = {
scope:liege = { ai_has_warlike_personality = yes }
}
add = 1
}
}
}
ai_subject_desire = 0
score = 0
color = { 0.7 0.2 0.2 1.0 }
is_valid = {
trigger_if = {
limit = { exists = this }
# Only for direct vassals of the top liege
scope:liege.top_liege = this
}
# There can only be a limited number of militaries at a time
custom_tooltip = {
text = japan_administrative_province_military_amount_desc
OR = {
scope:liege = {
any_vassal = {
count < japan_administrative_province_military_max_value
vassal_contract_has_flag = japan_administrative_province_military
}
}
scope:subject = { vassal_contract_has_flag = japan_administrative_province_military }
}
}
}
levies_factor = 0.5
subject_modifier = {
development_growth_factor = -0.2
monthly_county_control_growth_factor = 0.1
fort_level = 1
defender_advantage = 2
men_at_arms_maintenance = -0.15
}
flag = japan_administrative_province_military
flag = japan_administrative_military_appointment
flag = obligation_high_levies
}
}
}
japan_administrative_salary = {
display_mode = tree
is_shown = {
scope:subject.primary_title.tier >= tier_duchy
}
obligation_levels = {
salary_very_low = {
position = { 0 2 }
subject_modifier = {
subject_salary_expense_treasury_mult = -0.5
subject_salary_income_gold_mult = -0.5
}
ai_liege_desire = 1
ai_subject_desire = 5
subject_opinion = -25
score = -2
}
salary_low = {
parent = salary_very_low
position = { 1 2 }
subject_modifier = {
subject_salary_income_gold_mult = -0.25
}
ai_liege_desire = 2
ai_subject_desire = 4
subject_opinion = -15
score = 1
}
salary_medium = {
parent = salary_low
default = yes
position = { 2 2 }
subject_modifier = {
}
ai_liege_desire = 3
ai_subject_desire = 3
score = 0
}
salary_high = {
parent = salary_medium
position = { 3 2 }
subject_modifier = {
subject_salary_income_gold_mult = 0.25
}
ai_liege_desire = 4
ai_subject_desire = 2
subject_opinion = 5
score = 1
}
salary_very_high = {
parent = salary_high
position = { 4 2 }
subject_modifier = {
subject_salary_income_gold_mult = 0.5
}
ai_liege_desire = 5
ai_subject_desire = 1
subject_opinion = 10
score = 2
}
}
}

View file

@ -0,0 +1,255 @@
mandala_government_piety = {
display_mode = tree
icon = religious_icon
obligation_levels = {
mandala_piety_low = {
position = { 0 0 }
piety = 0.05
ai_liege_desire = 1
ai_subject_desire = 5
score = 1
flag = obligation_piety_low
}
mandala_piety_normal = {
parent = mandala_piety_low
position = { 1 0 }
default = yes
piety = 0.10
subject_opinion = -10
ai_liege_desire = 5
ai_subject_desire = 3
score = 0
flag = obligation_piety_normal
}
mandala_piety_high = {
parent = mandala_piety_normal
position = { 2 0 }
piety = 0.15
subject_opinion = -25
ai_liege_desire = 7
ai_subject_desire = 1
score = -1
flag = obligation_piety_high
}
}
}
mandala_government_taxes = {
display_mode = tree
icon = gold_icon
obligation_levels = {
mandala_tax_exempt = {
position = { 0 0 }
tax = exempt_feudal_tax
subject_opinion = 10
ai_liege_desire = 1
ai_subject_desire = 5
score = 2
flag = obligation_tax_exempt
}
mandala_tax_low = {
parent = mandala_tax_exempt
position = { 1 0 }
tax = low_feudal_tax
subject_opinion = 5
ai_liege_desire = {
value = 2
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
}
add = 8
}
}
ai_subject_desire = 4
score = 1
flag = obligation_tax_low
}
mandala_tax_normal = {
default = yes
parent = mandala_tax_low
position = { 2 0 }
tax = normal_feudal_tax
ai_liege_desire = {
value = 3
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
}
add = 7
}
}
ai_subject_desire = 3
score = 0
flag = obligation_tax_normal
}
mandala_tax_high = {
parent = mandala_tax_normal
position = { 3 0 }
tax = high_feudal_tax
subject_opinion = -15
ai_liege_desire = {
value = 4
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
}
add = 6
}
}
ai_subject_desire = 2
score = -1
flag = obligation_tax_high
}
mandala_tax_extortionate = {
parent = mandala_tax_high
position = { 4 0 }
tax = extortionate_feudal_tax
subject_opinion = -25
ai_liege_desire = {
value = 5
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
}
add = 5
}
}
ai_subject_desire = 1
score = -2
flag = obligation_tax_extortionate
}
}
}
mandala_government_levies = {
display_mode = tree
icon = soldier_icon
obligation_levels = {
mandala_levies_exempt = {
position = { 0 0 }
levies = 0
subject_opinion = 10
ai_liege_desire = 1
ai_subject_desire = 5
score = 2
flag = obligation_levies_exempt
}
mandala_levies_low = {
default = yes
parent = mandala_levies_exempt
position = { 1 0 }
levies = 0.1
subject_opinion = 5
ai_liege_desire = 2
ai_subject_desire = 4
score = 1
flag = obligation_levies_low
}
mandala_levies_medium = {
parent = mandala_levies_low
position = { 2 0 }
levies = 0.25
ai_liege_desire = 3
ai_subject_desire = 3
score = 0
flag = obligation_levies_medium
}
mandala_levies_high = {
parent = mandala_levies_medium
position = { 3 0 }
levies = 0.35
subject_opinion = -15
ai_liege_desire = 4
ai_subject_desire = 2
score = -1
flag = obligation_levies_high
}
mandala_levies_extortionate = {
parent = mandala_levies_high
position = { 4 0 }
levies = 0.5
subject_opinion = -25
ai_liege_desire = 5
ai_subject_desire = 1
score = -2
flag = obligation_levies_extortionate
}
}
}
mandala_government_prestige = {
display_mode = tree
icon = prestige_icon
obligation_levels = {
mandala_prestige_low = {
position = { 0 0 }
prestige = 0.05
ai_liege_desire = 1
ai_subject_desire = 5
score = 1
flag = obligation_prestige_low
}
mandala_prestige_normal = {
default = yes
parent = mandala_prestige_low
position = { 1 0 }
prestige = 0.1
subject_opinion = -10
ai_liege_desire = 5
ai_subject_desire = 3
score = 0
flag = obligation_prestige_normal
}
mandala_prestige_high = {
parent = mandala_prestige_normal
position = { 2 0 }
prestige = 0.25
subject_opinion = -25
ai_liege_desire = 7
ai_subject_desire = 1
score = -1
flag = obligation_prestige_high
}
}
}

View file

@ -0,0 +1,636 @@
meritocratic_obligations = {
obligation_levels = {
default = {
levies = {
value = 0.3
}
tax = {
value = 0.75
}
}
}
}
### brief: administrative_themes
# This is referenced in code.
#
meritocratic_provinces = {
display_mode = radiobutton
is_shown = {
scope:subject.primary_title.tier >= tier_duchy
}
obligation_levels = {
meritocratic_province_standard = {
default = yes
position = { 0 0 }
icon = "gfx/interface/icons/celestial_administration_types/icon_standard_administration.dds"
gui_tags = { civilian }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
}
}
add = 1
# Cautious AI should tend to have a minor bias towards the default
if = {
limit = {
scope:liege = {
ai_has_cautious_personality = yes
}
}
add = 1
}
}
}
ai_subject_desire = 0
score = 0
color = { 0.7 0.7 0.7 1.0 }
enable_title_maa = no
subject_modifier = {
monthly_merit_per_liege_tax = 0.8
}
flag = meritocratic_province_standard
flag = meritocratic_civil_appointment
}
meritocratic_province_industrial = {
position = { 1 0 }
icon = "gfx/interface/icons/celestial_administration_types/icon_industrial_administration.dds"
gui_tags = { civilian }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
OR = {
has_trait = education_stewardship
stewardship >= very_high_skill_rating
}
# Avoid replacing any military types if they have title troops already
primary_title = {
any_owned_title_maa_regiment = { count < 1 }
}
}
}
add = 2
# Economical AI wants more of civic vassals
if = {
limit = {
scope:liege = { ai_has_builder_or_pious_builder_personality = yes }
}
add = 1
}
}
}
ai_subject_desire = 0
score = 0
color = { 0.2 0.2 0.7 1.0 }
is_valid = {
# Only for direct vassals of the top liege or sub-vassals of a civilian province
custom_tooltip = {
text = liege_is_not_civilian_desc
scope:liege = {
trigger_if = {
limit = {
this != top_liege
}
vassal_contract_has_flag = meritocratic_civil_appointment
}
}
}
# There can only be a limited number of industries at a time
custom_tooltip = {
text = meritocratic_province_industrial_amount_desc
OR = {
scope:liege = {
any_vassal = {
count < meritocratic_province_industrial_max_value
vassal_contract_has_flag = meritocratic_province_industrial
}
}
scope:subject = { vassal_contract_has_flag = meritocratic_province_industrial }
}
}
}
tax_factor = 0.25
enable_title_maa = no
subject_modifier = {
development_growth_factor = 0.15
build_gold_cost = -0.1
build_speed = -0.2
monthly_merit_per_liege_tax = 1.2
}
flag = admin_ai_is_builder
flag = meritocratic_province_industrial
flag = meritocratic_civil_appointment
flag = obligation_high_taxes
}
meritocratic_province_military = {
position = { 0 1 }
icon = "gfx/interface/icons/celestial_administration_types/icon_military_administration.dds"
gui_tags = { military }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
OR = {
has_trait = education_martial
martial >= very_high_skill_rating
primary_title = { any_owned_title_maa_regiment = { count >= 3 } }
any_sub_realm_county = { # Is a border province
any_neighboring_county = {
holder = {
top_liege != scope:subject.top_liege
}
}
}
}
}
}
add = 2
# Preference for vassals along the border
if = {
limit = {
scope:subject = {
any_sub_realm_county = {
any_neighboring_county = {
holder = {
top_liege != scope:subject.top_liege
}
}
}
}
}
add = 3
}
# Warlike AI wants more military vassals
if = {
limit = {
scope:liege = {
ai_has_warlike_personality = yes
}
}
add = 1
}
}
}
ai_subject_desire = 0
score = 0
color = { 0.7 0.2 0.2 1.0 }
is_valid = {
# Vassal has to be landed and direct vassal of the top liege, or a vassal of another military governor
custom_tooltip = {
text = liege_is_not_military_desc
scope:liege = {
trigger_if = {
limit = {
this != top_liege
}
vassal_contract_has_flag = meritocratic_military_appointment
}
}
}
# There can only be a limited number of militaries at a time
custom_tooltip = {
text = meritocratic_province_military_amount_desc
OR = {
scope:liege = {
any_vassal = {
count < meritocratic_province_military_max_value
vassal_contract_has_flag = meritocratic_province_military
}
}
scope:subject = { vassal_contract_has_flag = meritocratic_province_military }
}
}
}
levies_factor = 0.5
subject_modifier = {
development_growth_factor = -0.2
monthly_county_control_growth_factor = 0.1
additional_fort_level = 2
defender_advantage = 4
monthly_merit_per_title_maa_value = 0.024
domain_tax_mult = -0.3
monthly_treasury_from_military_budget_base = 1.0
}
flag = meritocratic_province_military
flag = meritocratic_military_appointment
flag = obligation_high_levies
}
}
}
meritocratic_treasury = {
display_mode = tree
is_shown = {
scope:subject.primary_title.tier >= tier_duchy
}
obligation_levels = {
treasury_very_low = {
position = { 0 0 }
subject_modifier = {
monthly_treasury_from_liege_mult = -0.10
}
ai_liege_desire = 1
ai_subject_desire = 5
subject_opinion = -25
score = -2
}
treasury_low = {
parent = treasury_very_low
position = { 1 0 }
subject_modifier = {
monthly_treasury_from_liege_mult = -0.05
}
ai_liege_desire = 2
ai_subject_desire = 4
subject_opinion = -15
score = -1
}
treasury_medium = {
parent = treasury_low
default = yes
position = { 2 0 }
ai_liege_desire = 3
ai_subject_desire = 3
score = 0
}
treasury_high = {
parent = treasury_medium
position = { 3 0 }
subject_modifier = {
monthly_treasury_from_liege_mult = 0.05
}
ai_liege_desire = 4
ai_subject_desire = 2
subject_opinion = 5
score = 1
}
treasury_very_high = {
parent = treasury_high
position = { 4 0 }
subject_modifier = {
monthly_treasury_from_liege_mult = 0.10
}
ai_liege_desire = 5
ai_subject_desire = 1
subject_opinion = 10
score = 2
}
}
}
meritocratic_salary = {
display_mode = tree
is_shown = {
scope:subject.primary_title.tier >= tier_duchy
}
obligation_levels = {
salary_very_low = {
position = { 0 0 }
subject_modifier = {
monthly_treasury_from_salary_budget_mult = -0.5
}
ai_liege_desire = 1
ai_subject_desire = 5
subject_opinion = -25
score = -2
}
salary_low = {
parent = salary_very_low
position = { 1 0 }
subject_modifier = {
monthly_treasury_from_salary_budget_mult = -0.25
}
ai_liege_desire = 2
ai_subject_desire = 4
subject_opinion = -15
score = 1
}
salary_medium = {
parent = salary_low
default = yes
position = { 2 0 }
subject_modifier = {
}
ai_liege_desire = 3
ai_subject_desire = 3
score = 0
}
salary_high = {
parent = salary_medium
position = { 3 0 }
subject_modifier = {
monthly_treasury_from_salary_budget_mult = 0.25
}
ai_liege_desire = 4
ai_subject_desire = 2
subject_opinion = 5
score = 1
}
salary_very_high = {
parent = salary_high
position = { 4 0 }
subject_modifier = {
monthly_treasury_from_salary_budget_mult = 0.5
}
ai_liege_desire = 5
ai_subject_desire = 1
subject_opinion = 10
score = 2
}
}
}
meritocratic_salary_rank = {
display_mode = hidden
defaults_to_highest_valid_level = yes
can_be_changed = {
always = no
}
obligation_levels = {
meritocratic_salary_rank_none = {
position = { 0 0 }
default = yes
ai_liege_desire = 0
ai_subject_desire = 0
}
meritocratic_salary_rank_county = {
position = { 1 0 }
parent = meritocratic_salary_rank_none
is_valid = {
scope:subject = {
highest_held_title_tier = tier_county
primary_title = {
is_noble_family_title = no
}
}
}
ai_liege_desire = 2
ai_subject_desire = 2
subject_modifier = {
monthly_treasury_from_salary_budget_base = 0.3
}
}
meritocratic_salary_rank_duchy = {
position = { 2 0 }
parent = meritocratic_salary_rank_county
is_valid = {
scope:subject = {
highest_held_title_tier = tier_duchy
}
}
ai_liege_desire = 3
ai_subject_desire = 3
subject_modifier = {
monthly_treasury_from_salary_budget_base = 0.75
}
}
meritocratic_salary_rank_kingdom = {
position = { 3 0 }
parent = meritocratic_salary_rank_duchy
is_valid = {
scope:subject = {
highest_held_title_tier = tier_kingdom
}
}
ai_liege_desire = 4
ai_subject_desire = 4
subject_modifier = {
monthly_treasury_from_salary_budget_base = 1.0
}
}
meritocratic_salary_rank_empire = {
position = { 4 0 }
parent = meritocratic_salary_rank_kingdom
ai_liege_desire = 5
ai_subject_desire = 5
is_valid = {
scope:subject = {
highest_held_title_tier = tier_empire
is_landless_ruler = no
}
}
subject_modifier = {
monthly_treasury_from_salary_budget_base = 2.0
}
}
}
}
meritocratic_tribute_gold = {
display_mode = tree
icon = gold_icon
obligation_levels = {
meritocratic_tributary_tax_none = {
position = { 0 0 }
tax = 0
subject_opinion = 5
subject_modifier = {
monthly_legitimacy_add = 0.1
}
ai_liege_desire = 1
ai_subject_desire = 4
score = -2
}
meritocratic_tributary_tax_low = {
default = yes
parent = meritocratic_tributary_tax_none
position = { 1 0 }
tax = low_meritocratic_tributary_tax
subject_opinion = -5
subject_modifier = {
monthly_legitimacy_add = 0.2
}
ai_liege_desire = 2
ai_subject_desire = 3
score = -1
}
meritocratic_tributary_tax_normal = {
parent = meritocratic_tributary_tax_low
position = { 2 0 }
tax = normal_meritocratic_tributary_tax
subject_opinion = -10
subject_modifier = {
monthly_legitimacy_add = 0.3
}
ai_liege_desire = 3
ai_subject_desire = 2
score = 0
}
meritocratic_tributary_tax_high = {
parent = meritocratic_tributary_tax_normal
position = { 3 0 }
tax = high_meritocratic_tributary_tax
subject_opinion = -25
subject_modifier = {
monthly_legitimacy_add = 0.5
}
ai_liege_desire = 4
ai_subject_desire = 1
score = 1
}
}
}
meritocratic_tribute_prestige = {
display_mode = tree
icon = prestige_icon
obligation_levels = {
meritocratic_prestige_transfer_none = {
position = { 0 1 }
prestige = 0
subject_opinion = 5
subject_modifier = {
monthly_legitimacy_add = 0.1
}
ai_liege_desire = 1
ai_subject_desire = 4
score = -2
}
meritocratic_prestige_transfer_low = {
default = yes
parent = meritocratic_prestige_transfer_none
position = { 1 1 }
prestige = low_meritocratic_prestige_transfer
subject_opinion = -5
subject_modifier = {
monthly_legitimacy_add = 0.2
}
ai_liege_desire = 2
ai_subject_desire = 3
score = -1
}
meritocratic_prestige_transfer_normal = {
default = yes
parent = meritocratic_prestige_transfer_low
position = { 2 1 }
prestige = normal_meritocratic_prestige_transfer
subject_opinion = -10
subject_modifier = {
monthly_legitimacy_add = 0.3
}
ai_liege_desire = 3
ai_subject_desire = 2
score = 0
}
meritocratic_prestige_transfer_high = {
parent = meritocratic_prestige_transfer_normal
position = { 3 1 }
prestige = high_meritocratic_prestige_transfer
subject_opinion = -25
subject_modifier = {
monthly_legitimacy_add = 0.5
}
ai_liege_desire = 4
ai_subject_desire = 1
score = 1
}
}
}

View file

@ -0,0 +1,291 @@
nomad_government_herd = {
display_mode = tree
icon = herd_icon
obligation_levels = {
herd_tax_exempt = {
position = { 0 0 }
herd = exempt_herd_tax
subject_opinion = 10
ai_liege_desire = 1
ai_subject_desire = 5
score = 2
}
herd_tax_low = {
parent = herd_tax_exempt
position = { 1 0 }
herd = low_herd_tax
subject_opinion = 5
ai_liege_desire = {
value = 2
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
scope:subject = {
AND = {
government_has_flag = government_is_nomadic
vassal_contract_obligation_level:nomad_government_herd <= herd_tax_exempt_level
}
}
}
add = 8
}
}
ai_subject_desire = 4
score = 1
}
herd_tax_normal = {
default = yes
parent = herd_tax_low
position = { 2 0 }
herd = normal_herd_tax
ai_liege_desire = {
value = 3
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
scope:subject = {
AND = {
government_has_flag = government_is_nomadic
vassal_contract_obligation_level:nomad_government_herd <= herd_tax_low_level
}
}
}
add = 7
}
}
ai_subject_desire = 3
score = 0
}
herd_tax_high = {
parent = herd_tax_normal
position = { 3 0 }
herd = high_herd_tax
subject_opinion = -15
ai_liege_desire = {
value = 4
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
scope:subject = {
AND = {
government_has_flag = government_is_nomadic
vassal_contract_obligation_level:nomad_government_herd <= herd_tax_normal_level
}
}
}
add = 6
}
}
ai_subject_desire = 2
score = -1
flag = obligation_high_taxes
}
herd_tax_extortionate = {
parent = herd_tax_high
position = { 4 0 }
herd = extortionate_herd_tax
subject_opinion = -25
ai_liege_desire = {
value = 5
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
scope:subject = {
AND = {
government_has_flag = government_is_nomadic
vassal_contract_obligation_level:nomad_government_herd <= herd_tax_high_level
}
}
}
add = 5
}
}
ai_subject_desire = 1
score = -2
flag = obligation_high_taxes
}
}
}
nomad_government_taxes = {
display_mode = tree
icon = gold_icon
obligation_levels = {
nomad_tax_exempt = {
default = yes
position = { 0 0 }
tax = exempt_nomad_tax
ai_liege_desire = 1
ai_subject_desire = 5
score = 2
}
nomad_tax_low = {
parent = nomad_tax_exempt
position = { 1 0 }
tax = low_nomad_tax
subject_opinion = -5
ai_liege_desire = {
value = 2
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
scope:subject = {
AND = {
government_has_flag = government_is_feudal
vassal_contract_obligation_level:feudal_government_taxes <= feudal_tax_exempt_level
}
}
}
add = 8
}
}
ai_subject_desire = 4
score = 1
}
nomad_tax_normal = {
parent = nomad_tax_low
position = { 2 0 }
tax = normal_nomad_tax
subject_opinion = -15
ai_liege_desire = {
value = 3
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
scope:subject = {
AND = {
government_has_flag = government_is_feudal
vassal_contract_obligation_level:feudal_government_taxes <= feudal_tax_low_level
}
}
}
add = 7
}
}
ai_subject_desire = 3
score = 0
}
nomad_tax_high = {
parent = nomad_tax_normal
position = { 3 0 }
tax = high_nomad_tax
subject_opinion = -25
ai_liege_desire = {
value = 4
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
scope:subject = {
AND = {
government_has_flag = government_is_feudal
vassal_contract_obligation_level:feudal_government_taxes <= feudal_tax_normal_level
}
}
}
add = 6
}
}
ai_subject_desire = 2
score = -1
flag = obligation_high_taxes
}
nomad_tax_extortionate = {
parent = nomad_tax_high
position = { 4 0 }
tax = extortionate_nomad_tax
subject_opinion = -40
ai_liege_desire = {
value = 5
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
scope:subject = {
AND = {
government_has_flag = government_is_feudal
vassal_contract_obligation_level:feudal_government_taxes <= feudal_tax_high_level
}
}
}
add = 5
}
}
ai_subject_desire = 1
score = -2
flag = obligation_high_taxes
}
}
}
nomad_government_prestige = {
display_mode = tree
icon = prestige_icon
obligation_levels = {
prestige_transfer_none = {
position = { 0 0 }
prestige = 0
ai_liege_desire = 1
ai_subject_desire = 5
score = 2
}
prestige_transfer_normal = {
parent = prestige_transfer_none
position = { 1 0 }
prestige = 0.15
subject_opinion = -10
ai_liege_desire = 5
ai_subject_desire = 3
score = 1
}
prestige_transfer_high = {
parent = prestige_transfer_normal
position = { 2 0 }
prestige = 0.3
subject_opinion = -25
ai_liege_desire = 7
ai_subject_desire = 1
score = 0
}
}
}

View file

@ -0,0 +1,118 @@
peasantrepublic_obligations = {
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
}
}
}
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
}
}
}
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
}
}
}
herd = {
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
}
}
}
}
}
}

View file

@ -0,0 +1,123 @@
republic_government_obligations = {
obligation_levels = {
default = {
levies = {
scope:liege = {
if = {
limit = {
scope:vassal = {
primary_title.tier >= tier_county
}
culture = {
has_cultural_parameter = republican_vassals_pay_more
}
}
value = {
add = 0.15
# Add an extra with the right perk
if = {
limit = {
dynasty ?= {
has_dynasty_perk = fp2_urbanism_legacy_3
}
}
add = 0.15
}
}
}
else = {
value = {
add = 0.1
# Add an extra with the right perk
if = {
limit = {
dynasty ?= {
has_dynasty_perk = fp2_urbanism_legacy_3
}
}
add = 0.15
}
}
}
}
}
tax = {
scope:liege = {
if = {
limit = { government_has_flag = government_is_tribal }
value = {
add = 0.05
# Add an extra with the right perk
if = {
limit = {
dynasty ?= {
has_dynasty_perk = fp2_urbanism_legacy_3
}
}
add = 0.15
}
}
}
else_if = {
limit = {
scope:subject = {
primary_title.tier >= tier_county
}
culture = {
has_cultural_parameter = republican_vassals_pay_more
}
}
value = {
add = 0.3
# Add an extra with the right perk
if = {
limit = {
dynasty ?= {
has_dynasty_perk = fp2_urbanism_legacy_3
}
}
add = 0.15
}
}
}
else = {
value = {
add = 0.2
# Add an extra with the right perk
if = {
limit = {
dynasty ?= {
has_dynasty_perk = fp2_urbanism_legacy_3
}
}
add = 0.15
}
}
}
}
}
contribution_desc = {
first_valid = {
triggered_desc = {
trigger = { scope:liege = { government_has_flag = government_is_tribal } }
desc = "tribal_liege_inefficiency"
}
triggered_desc = {
trigger = {
scope:subject = {
primary_title.tier >= tier_county
}
scope:liege.culture = {
has_cultural_parameter = republican_vassals_pay_more
}
}
desc = "republican_vassals_pay_more_parameter"
}
}
}
}
}
}

View file

@ -0,0 +1,896 @@
@ai_standard_liege_desire = 2
@ai_standard_vassal_desire = 1
# Everything below this line is 'Fine Print'
special_contract = {
display_mode = radiobutton
is_shown = {
scope:subject.primary_title.tier >= tier_county
}
obligation_levels = {
special_contract_none = {
position = { 0 1 }
default = yes
score = 0
ai_subject_desire = {
value = 0
if = {
limit = {
scope:subject = {
vassal_contract_has_flag = has_scutage_contract
OR = {
government_has_flag = government_is_clan
AND = {
government_has_flag = government_is_feudal
vassal_contract_obligation_level:feudal_government_taxes >= feudal_tax_normal_level
}
}
}
}
add = @ai_standard_vassal_desire
}
}
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
vassal_contract_has_flag = has_scutage_contract
OR = {
government_has_flag = government_is_clan
AND = {
government_has_flag = government_is_feudal
vassal_contract_obligation_level:feudal_government_taxes < feudal_tax_normal_level
}
}
}
}
add = @ai_standard_liege_desire
}
if = {
limit = {
scope:subject = {
vassal_contract_has_flag = has_march_contract
OR = {
government_has_flag = government_is_clan
AND = {
government_has_flag = government_is_feudal
vassal_contract_obligation_level:feudal_government_levies < feudal_levies_normal_level
}
}
}
}
add = @ai_standard_liege_desire
}
if = {
limit = {
scope:subject = {
vassal_contract_has_flag = has_palatinate_contract
OR = {
government_has_flag = government_is_clan
AND = {
government_has_flag = government_is_feudal
OR = {
vassal_contract_obligation_level:feudal_government_taxes >= feudal_tax_normal_level
vassal_contract_obligation_level:feudal_government_levies >= feudal_levies_normal_level
}
}
}
}
}
add = @ai_standard_liege_desire
}
}
}
special_contract_scutage = {
is_shown = {
scope:subject.primary_title.tier >= tier_duchy
scope:subject = { government_has_flag = government_is_feudal }
}
is_valid = {
scope:liege.culture = {
has_innovation = innovation_scutage
}
}
parent = special_contract_none
position = { 1 1 }
score = 0
tax_factor = scutage_contract_tax
levies_factor = -0.75
subject_modifier = {
men_at_arms_maintenance = -0.2
}
flag = has_scutage_contract
flag = obligation_high_taxes
ai_liege_desire = {
value = @ai_standard_liege_desire
if = {
limit = {
scope:subject = {
OR = {
government_has_flag = government_is_clan
AND = {
government_has_flag = government_is_feudal
vassal_contract_obligation_level:feudal_government_taxes >= feudal_tax_normal_level
}
}
}
}
add = 5
}
if = {
limit = {
scope:liege = {
ai_should_focus_on_building_in_their_capital = yes
}
}
add = 10
}
}
ai_subject_desire = -2
}
special_contract_march = {
is_shown = {
scope:subject.primary_title.tier >= tier_duchy
}
is_valid = {
scope:liege.culture = {
has_innovation = innovation_bannus
}
custom_tooltip = {
text = special_contract_march_border_trigger
scope:subject = {
OR = {
vassal_contract_has_flag = has_march_contract
primary_title = { has_variable = historical_margrave }
any_sub_realm_county = {
any_neighboring_county = {
holder.top_liege != scope:subject.top_liege
}
}
}
}
}
}
parent = special_contract_none
position = { 1 0 }
score = 0
tax_factor = march_contract_taxes
subject_modifier = {
levy_size = 0.2
army_maintenance_mult = -0.2
garrison_size = 0.2
levy_reinforcement_rate = 0.2
controlled_province_advantage = 5
}
flag = has_march_contract
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
OR = {
government_has_flag = government_is_clan
AND = {
government_has_flag = government_is_feudal
OR = {
vassal_contract_obligation_level:feudal_government_taxes < feudal_tax_normal_level
vassal_contract_obligation_level:feudal_government_levies > feudal_levies_normal_level
}
}
}
}
}
add = @ai_standard_liege_desire
}
}
ai_subject_desire = @ai_standard_vassal_desire
}
special_contract_castellan = {
is_shown = {
scope:subject.primary_title.tier = tier_county
}
is_valid = {
scope:liege.culture = {
has_innovation = innovation_bannus
}
}
parent = special_contract_none
position = { 1 0 }
score = 0
tax_factor = march_contract_taxes
levies_factor = 0.5
subject_modifier = {
levy_size = 0.2
army_maintenance_mult = -0.2
garrison_size = 0.2
levy_reinforcement_rate = 0.2
controlled_province_advantage = 5
}
flag = has_castellan_contract
flag = obligation_high_levies
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
OR = {
government_has_flag = government_is_clan
AND = {
government_has_flag = government_is_feudal
OR = {
vassal_contract_obligation_level:feudal_government_taxes < feudal_tax_normal_level
vassal_contract_obligation_level:feudal_government_levies > feudal_levies_normal_level
}
}
}
}
}
add = @ai_standard_liege_desire
}
}
ai_subject_desire = @ai_standard_vassal_desire
}
special_contract_palatinate = {
is_shown = { scope:subject = { government_has_flag = government_is_feudal } }
is_valid = {
scope:liege.culture = {
has_innovation = innovation_divine_right
}
}
parent = special_contract_none
position = { 1 2 }
score = 0
tax_factor = palatinate_contract_taxes
levies_factor = palatinate_contract_levies
liege_modifier = {
monthly_prestige_gain_mult = 0.05
}
subject_modifier = {
monthly_prestige_gain_mult = 0.2
fellow_vassal_opinion = 15
owned_personal_scheme_success_chance_add = 10
owned_hostile_scheme_success_chance_add = 10
}
flag = has_palatinate_contract
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
government_has_flag = government_is_feudal
vassal_contract_obligation_level:feudal_government_taxes < feudal_tax_low_level
vassal_contract_obligation_level:feudal_government_levies < feudal_levies_low_level
}
}
add = @ai_standard_liege_desire
}
}
ai_subject_desire = @ai_standard_vassal_desire
}
}
}
religious_rights = {
display_mode = checkbox
is_shown = {
scope:subject.faith != scope:liege.faith
OR = {
NOT = {
scope:liege.faith = {
OR = {
has_doctrine = tenet_tax_nonbelievers
has_doctrine = special_doctrine_jizya
}
}
}
AND = {
scope:liege.faith = {
OR = {
has_doctrine = tenet_tax_nonbelievers
has_doctrine = special_doctrine_jizya
}
}
scope:subject = {
NOT = {
vassal_contract_has_flag = vassal_contract_cannot_revoke_titles
}
vassal_contract_has_flag = religiously_protected
}
}
}
}
obligation_levels = {
religious_rights_none = {
default = yes
position = { 0 0 }
ai_liege_desire = @ai_standard_liege_desire
ai_subject_desire = 0
}
religious_rights_protected = {
is_valid = {
scope:subject.faith != scope:liege.faith
}
parent = religious_rights_none
position = { 1 0 }
subject_opinion = 5
subject_modifier = {
county_opinion_add = 5
}
flag = religiously_protected
ai_liege_desire = 0
ai_subject_desire = 10
score = 3
}
}
}
fortification_rights = {
display_mode = checkbox
is_shown = {
scope:liege.culture = {
has_innovation = innovation_battlements
}
}
obligation_levels = {
fortification_rights_none = {
default = yes
position = { 0 0 }
ai_liege_desire = @ai_standard_liege_desire
ai_subject_desire = 0
}
fortification_rights_granted = {
is_valid = {
scope:liege.culture = {
has_innovation = innovation_battlements
}
}
parent = fortification_rights_none
position = { 1 0 }
liege_modifier = {
castle_holding_build_gold_cost = 0.05
}
subject_modifier = {
castle_holding_build_gold_cost = -0.15
castle_holding_holding_build_gold_cost = -0.5
additional_fort_level = 1
}
tax_factor = fortification_rights_contract_taxes
ai_liege_desire = 0
ai_subject_desire = @ai_standard_vassal_desire
}
}
}
coinage_rights = {
display_mode = checkbox
is_shown = {
scope:liege.culture = {
has_innovation = innovation_currency_02
}
}
obligation_levels = {
coinage_rights_none = {
default = yes
position = { 0 0 }
ai_liege_desire = @ai_standard_liege_desire
ai_subject_desire = 0
}
coinage_rights_granted = {
is_valid = {
scope:liege.culture = {
has_innovation = innovation_currency_02
}
}
parent = coinage_rights_none
position = { 1 0 }
liege_modifier = {
development_growth_factor = -0.02
}
subject_modifier = {
character_capital_county_monthly_development_growth_add = 0.3
}
ai_liege_desire = 0
ai_subject_desire = @ai_standard_vassal_desire
}
}
}
succession_rights = {
display_mode = checkbox
is_shown = {
scope:subject = {
can_have_confederate_partition_succession_law_trigger = yes
}
}
obligation_levels = {
succession_rights_default = {
default = yes
position = { 0 0 }
ai_liege_desire = 0
ai_subject_desire = @ai_standard_vassal_desire
}
succession_rights_forced_partition = {
is_valid = {
scope:subject = {
can_have_confederate_partition_succession_law_trigger = yes
}
}
score = -1
parent = succession_rights_default
position = { 1 0 }
subject_opinion = -5
flag = locked_to_partition
ai_liege_desire = @ai_standard_liege_desire
ai_subject_desire = 0
}
}
}
war_declaration_rights = {
display_mode = checkbox
obligation_levels = {
war_declaration_rights_default = {
default = yes
position = { 0 0 }
ai_liege_desire = @ai_standard_liege_desire
ai_subject_desire = 0
}
war_declaration_rights_allowed = {
parent = war_declaration_rights_default
position = { 1 0 }
subject_opinion = 5
flag = vassal_contract_war_override
ai_liege_desire = 0
ai_subject_desire = @ai_standard_vassal_desire
}
}
}
council_rights = {
display_mode = checkbox
obligation_levels = {
council_rights_none = {
default = yes
position = { 0 0 }
ai_liege_desire = @ai_standard_liege_desire
ai_subject_desire = 0
}
council_rights_guaranteed = {
parent = council_rights_none
position = { 1 0 }
subject_opinion = 5
flag = can_demand_council_seat
liege_modifier = {
powerful_vassal_opinion = -2
}
ai_liege_desire = 0
ai_subject_desire = @ai_standard_vassal_desire
score = 3
}
}
}
title_revocation_rights = {
display_mode = checkbox
is_shown = {
OR = {
scope:subject.faith = scope:liege.faith
NOR = {
scope:subject.faith = scope:liege.faith
scope:liege.faith = {
has_doctrine_parameter = unlock_jizya_contract
}
}
}
}
obligation_levels = {
title_revocation_rights_default = {
default = yes
position = { 0 0 }
ai_liege_desire = 1
ai_subject_desire = 0
}
title_revocation_rights_protected = {
is_valid = {
OR = {
scope:subject.faith = scope:liege.faith
NOR = {
scope:subject.faith = scope:liege.faith
scope:liege.faith = {
has_doctrine_parameter = unlock_jizya_contract
}
}
}
}
parent = title_revocation_rights_default
position = { 1 0 }
subject_opinion = 5
flag = vassal_contract_cannot_revoke_titles
ai_liege_desire = 0
ai_subject_desire = @ai_standard_vassal_desire
}
}
}
jizya_special_rights = {
display_mode = checkbox
is_shown = {
scope:liege.faith = {
OR = {
has_doctrine = tenet_tax_nonbelievers
has_doctrine = special_doctrine_jizya
}
}
scope:subject.faith != scope:liege.faith
scope:subject = {
OR = {
NOT = {
vassal_contract_has_flag = religiously_protected
}
AND = {
vassal_contract_has_flag = religiously_protected
vassal_contract_has_flag = vassal_contract_cannot_revoke_titles
}
}
}
}
obligation_levels = {
jizya_special_rights_default = {
default = yes
position = { 0 0 }
ai_liege_desire = 1
ai_subject_desire = 0
}
jizya_special_rights_granted = {
is_valid = {
scope:liege.faith = {
OR = {
has_doctrine = tenet_tax_nonbelievers
has_doctrine = special_doctrine_jizya
}
}
scope:subject.faith != scope:liege.faith
}
parent = jizya_special_rights_default
position = { 1 0 }
subject_opinion = 20
tax_factor = 0.4
levies_factor = -0.4
subject_modifier = {
monthly_prestige = -0.25
}
flag = vassal_contract_cannot_revoke_titles
flag = religiously_protected
flag = obligation_high_taxes
ai_liege_desire = @ai_standard_liege_desire
ai_subject_desire = 0
}
}
}
iqta_special_rights = {
display_mode = checkbox
obligation_levels = {
iqta_special_rights_default = {
default = yes
position = { 0 0 }
ai_liege_desire = 1
ai_subject_desire = 0
}
iqta_special_rights_granted = {
parent = iqta_special_rights_default
position = { 1 0 }
subject_opinion = 5
tax_factor = -0.5
levies_factor = -0.5
liege_modifier = {
men_at_arms_maintenance = -0.02
men_at_arms_recruitment_cost = -0.02
}
subject_modifier = {
men_at_arms_maintenance = -0.1
men_at_arms_recruitment_cost = -0.1
}
ai_liege_desire = 0
ai_subject_desire = @ai_standard_vassal_desire
}
}
}
ghazi_special_rights = {
display_mode = checkbox
is_shown = {
scope:subject.faith = scope:liege.faith
}
obligation_levels = {
ghazi_special_rights_default = {
default = yes
position = { 0 0 }
ai_liege_desire = 1
ai_subject_desire = 0
}
ghazi_special_rights_granted = {
is_valid = {
scope:subject.faith = scope:liege.faith
}
parent = ghazi_special_rights_default
position = { 1 0 }
subject_opinion = 10
levies_factor = -0.25
liege_modifier = {
monthly_piety_gain_mult = 0.1
}
subject_modifier = {
monthly_piety_gain_mult = 0.1
}
flag = vassal_contract_cheaper_religious_war
flag = vassal_contract_increase_prestige_cb_cost
ai_liege_desire = @ai_standard_liege_desire
ai_subject_desire = @ai_standard_vassal_desire
}
}
}
marriage_favor_rights = {
display_mode = checkbox
obligation_levels = {
marriage_favor_rights_default = {
default = yes
position = { 0 0 }
ai_liege_desire = 1
ai_subject_desire = 0
}
marriage_favor_rights_granted = {
parent = marriage_favor_rights_default
position = { 1 0 }
subject_opinion = 20
tax_factor = 0.1
levies_factor = 0.1
flag = vassal_contract_marriage_favor
flag = obligation_high_taxes
flag = obligation_high_levies
ai_liege_desire = 0
ai_subject_desire = @ai_standard_vassal_desire
}
}
}
kurultai_rights = {
display_mode = checkbox
obligation_levels = {
kurultai_rights_none = {
default = yes
position = { 0 0 }
ai_liege_desire = @ai_standard_liege_desire
ai_subject_desire = 0
}
kurultai_rights_guaranteed = {
parent = kurultai_rights_none
position = { 1 0 }
subject_opinion = 5
flag = can_demand_kurultai_seat
liege_modifier = {
powerful_vassal_opinion = -2
}
ai_liege_desire = 0
ai_subject_desire = @ai_standard_vassal_desire
}
}
}
liege_war_participation_obligation = {
display_mode = checkbox
obligation_levels = {
liege_war_participation_obligation_none = {
default = yes
position = { 0 0 }
ai_liege_desire = @ai_standard_liege_desire
ai_subject_desire = 0
}
liege_war_participation_obligation_forced = {
parent = liege_war_participation_obligation_none
position = { 1 0 }
subject_opinion = 15
flag = vassal_contract_liege_forced_war_override
ai_liege_desire = 0
ai_subject_desire = @ai_standard_vassal_desire
}
}
}
suzerain_war_participation_guarantee = {
display_mode = checkbox
obligation_levels = {
suzerain_war_participation_guarantee_none = {
default = yes
position = { 0 0 }
ai_liege_desire = @ai_standard_liege_desire
ai_subject_desire = 0
score = -2
}
suzerain_war_participation_guarantee_available = {
parent = suzerain_war_participation_guarantee_none
position = { 1 0 }
subject_opinion = 25
# flag referenced in code, do not change without approval
flag = tributary_contract_suzerain_guarantee_override
ai_liege_desire = 0
ai_subject_desire = @ai_standard_vassal_desire
score = 2
}
}
}
mandala_suzerain_war_participation_guarantee = {
display_mode = checkbox
obligation_levels = {
mandala_suzerain_war_participation_guarantee_none = {
position = { 0 0 }
subject_opinion = -50
ai_liege_desire = @ai_standard_liege_desire
ai_subject_desire = 0
}
mandala_suzerain_war_participation_guarantee_available = {
parent = mandala_suzerain_war_participation_guarantee_none
default = yes
position = { 1 0 }
# flag referenced in code, do not change without approval
flag = tributary_contract_suzerain_guarantee_override
ai_liege_desire = 0
ai_subject_desire = @ai_standard_vassal_desire
}
}
}
# Do not add any more levels to this, code checks only for non-default to determine behavior
tributary_war_participation_obligation = {
display_mode = checkbox
obligation_levels = {
tributary_war_participation_obligation_none = {
default = yes
position = { 0 0 }
ai_liege_desire = 0
ai_subject_desire = @ai_standard_vassal_desire
score = 1
}
tributary_war_participation_obligation_forced = {
parent = tributary_war_participation_obligation_none
position = { 1 0 }
is_valid = {
trigger_if = {
limit = { scope:subject = { has_government = herder_government } }
custom_tooltip = {
text = herder_cannot_war_tt
always = no
}
}
trigger_else_if = {
limit = {
scope:subject.suzerain ?= { government_has_flag = government_is_steppe_admin }
}
always = yes
}
trigger_else_if = {
limit = { NOT = { scope:subject = { has_relation_blood_brother = overlord } } }
custom_tooltip = {
text = war_support_obligation_conditions_unmet_tt
scope:subject = {
OR = {
is_ai = no # human players cannot be obedient, so this is always valid for them
is_obedient = yes
}
vassal_contract_obligation_level:suzerain_war_participation_guarantee > 0
}
}
}
trigger_else = {
scope:subject = { has_relation_blood_brother = overlord }
}
}
subject_opinion = -25
flag = tributary_contract_tributary_forced_war_override
ai_liege_desire = @ai_standard_liege_desire
ai_subject_desire = 0
score = -3
}
}
}

View file

@ -0,0 +1,42 @@
theocracy_government_obligations = {
obligation_levels = {
default = {
levies = {
if = {
limit = { scope:liege.faith != scope:subject.faith }
value = 0.1
}
else = {
value = 0.1
multiply = scope:liege.piety_level
}
}
tax = {
if = {
limit = { scope:liege.faith != scope:subject.faith }
value = 0.1
}
else_if = {
limit = { scope:liege.piety_level >= 1 }
add = 0.05
add = {
value = 0.1
multiply = scope:liege.piety_level
}
}
#else = {
# value = 0
#}
}
contribution_desc = {
first_valid = {
triggered_desc = {
trigger = { scope:liege.faith != scope:subject.faith }
desc = "theocracy_government_vassal_contribution_wrong_faith"
}
desc = "theocracy_government_vassal_contribution_piety_level"
}
}
}
}
}

View file

@ -0,0 +1,26 @@
tribal_government_obligations = {
obligation_levels = {
default = {
levies = {
value = 0
max = 1
scope:liege = {
add = {
value = 0.15
multiply = prestige_level
}
}
}
tax = {
value = 0
max = 0.5
scope:liege = {
add = {
value = 0.08
multiply = prestige_level
}
}
}
}
}
}

View file

@ -0,0 +1,75 @@
wanua_obligations = {
obligation_levels = {
default = {
levies = {
value = 0
max = 1
scope:liege = {
add = {
value = 0.1
multiply = legitimacy_level
}
}
}
tax = {
value = 0
max = 0.5
scope:liege = {
add = {
value = 0.05
multiply = legitimacy_level
}
}
}
barter_goods = {
value = 0
max = 0.5
scope:liege = {
add = {
value = 0.05
multiply = legitimacy_level
}
}
}
}
}
}
barter_goods_obligations = {
display_mode = tree
icon = barter_icon
obligation_levels = {
barter_goods_low = {
position = { 0 0 }
barter_goods = low_barter_goods_tax
ai_liege_desire = 2
ai_subject_desire = 4
score = 1
}
barter_goods_medium = {
parent = barter_goods_low
position = { 1 0 }
default = yes
barter_goods = medium_barter_goods_tax
ai_liege_desire = 3
ai_subject_desire = 3
score = 0
}
barter_goods_high = {
parent = barter_goods_medium
position = { 2 0 }
barter_goods = high_barter_goods_tax
ai_liege_desire = 4
ai_subject_desire = 2
score = -1
}
}
}

View file

@ -0,0 +1,56 @@
# Subject contract groups
feudal_contract_group = {
# <optional> Which contract within this group is the administrative province type contract
# This will be used in the interface
# Contract might be listed in 'contracts' list
admin_province_contract = administrative_themes
contracts = { # The subject contracts within this group
feudal_government_taxes
feudal_government_levies
special_contract
...
}
modify_contract_layout = clan # a string property on the contract group that can be checked with SubjectContract.HasModifyContractLayout in gui script to choose the layout to use for the Modify Contract interaction window (default value is 'default')
# #########################################
# REMAINING IS ONLY FOR TRIBUTARY CONTRACTS
# #########################################
is_tributary = no # Whether or not this subject contract is specifically for tributaries or not.
# Whether or not the subject contract is valid.
# Scopes available:
# ROOT - The subject in the contract
# scope:suzerain the suzerain in the contract
is_valid_tributary_contract = {}
# Whether or not subject can break free from a contract themselves.
# Same scopes as is_valid
tributary_can_break_free = {}
# The name of the line types that will be shown when drawing the tributary relation to the suzerain on the map.
# Skip these parameters if you don't want a line at all.
# suzerain_line_type is used when showing a selected character's suzerain.
# tributary_line_type is used when showing a selected character's tributaries.
# Lines are defined in gfx/lines/lines.lines
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
# Whether or not the tributary's realm should show with the suzerain's realm name on the map (Default: no)
should_show_as_suzerain_realm_name = yes/no
# Whether or not the tributary's realm should show with the suzerain's realm color on the map. (Default: no)
# If yes, the actual color will be an interpolation between the suzerain and tributary's realm colors, with the ratio defined in TRIBUTARY_REALM_COLOR_FACTOR
should_show_as_suzerain_realm_color = yes/no
# Whether the tributary's heirs should become tributaries themselves upon succession (if they can be, e.g. they are independent). (Default: yes)
tributary_heir_succession = yes/no
# Whether the suzerain's primary heir should take over as suzerain upon succession (if they can be, e.g. they are independent). (Default: yes)
suzerain_heir_succession = yes/no
}

View file

@ -0,0 +1,331 @@
feudal_vassal = {
contracts = {
feudal_government_taxes
feudal_government_levies
special_contract
religious_rights
fortification_rights
coinage_rights
succession_rights
war_declaration_rights
council_rights
title_revocation_rights
jizya_special_rights
}
}
republic_vassal = {
contracts = {
republic_government_obligations
}
}
peasantrepublic_vassal = {
contracts = {
peasantrepublic_obligations
war_declaration_rights
council_rights
title_revocation_rights
religious_rights
fortification_rights
coinage_rights
}
}
theocracy_vassal ={
contracts = {
theocracy_government_obligations
}
}
clan_vassal = {
contracts = {
clan_tax_collector_obligations
special_contract
religious_rights
war_declaration_rights
council_rights
title_revocation_rights
marriage_favor_rights
}
modify_contract_layout = clan
}
tribal_vassal = {
contracts = {
tribal_government_obligations
}
}
admin_vassal = {
admin_province_contract = administrative_themes
contracts = {
administrative_obligations
administrative_themes
administrative_salary_rank
}
modify_contract_layout = admin
}
nomad_vassal = {
contracts = {
nomad_government_herd
nomad_government_taxes
liege_war_participation_obligation
kurultai_rights
war_declaration_rights
}
}
tributary_settled = {
is_tributary = yes
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = yes
should_show_as_suzerain_realm_color = yes
contracts = {
default_tributary_taxes
default_tributary_levies
default_tributary_prestige
suzerain_war_participation_guarantee
tributary_war_participation_obligation
}
}
tributary_nomadic = {
is_tributary = yes
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = yes
should_show_as_suzerain_realm_color = yes
contracts = {
nomad_government_herd
nomad_government_prestige
suzerain_war_participation_guarantee
tributary_war_participation_obligation
}
}
tributary_subjugated = {
is_tributary = yes
tributary_can_break_free = { always = no }
suzerain_heir_succession = no
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = no
should_show_as_suzerain_realm_color = yes
contracts = {
default_tributary_taxes
default_tributary_prestige
suzerain_war_participation_guarantee
tributary_war_participation_obligation
}
}
tributary_steppe = {
is_tributary = yes
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = yes
should_show_as_suzerain_realm_color = yes
contracts = {
default_tributary_taxes
nomad_government_prestige
suzerain_war_participation_guarantee
tributary_war_participation_obligation
}
}
herder_vassal = {
contracts = {
herder_government_obligations
}
}
celestial_vassal = {
admin_province_contract = celestial_provinces
contracts = {
celestial_obligations
celestial_ministry_obligations
celestial_provinces
celestial_treasury
celestial_salary
celestial_ministry_budget
celestial_salary_rank
}
modify_contract_layout = eastern_admin
}
tributary_celestial = {
is_tributary = yes
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = no
should_show_as_suzerain_realm_color = no
tributary_heir_succession = yes
suzerain_heir_succession = yes
is_valid_tributary_contract = {
scope:suzerain = {
highest_held_title_tier = tier_hegemony
has_government = celestial_government
}
}
tributary_can_break_free = {
always = yes
}
contracts = {
celestial_tribute_gold
celestial_tribute_prestige
celestial_tributary_investiture_privilege_trade
celestial_tributary_investiture_privilege_marriage
celestial_tributary_investiture_privilege_politics
}
}
tributary_hegemonic = {
is_tributary = yes
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = no
should_show_as_suzerain_realm_color = no
tributary_heir_succession = yes
suzerain_heir_succession = yes
is_valid_tributary_contract = {
scope:suzerain = {
highest_held_title_tier = tier_hegemony
}
}
tributary_can_break_free = {
always = yes
}
contracts = {
hegemonic_tribute_gold
hegemonic_tribute_prestige
}
}
mandala_vassal = {
contracts = {
mandala_government_taxes
mandala_government_piety
mandala_government_levies
religious_rights
fortification_rights
coinage_rights
succession_rights
title_revocation_rights
}
}
tributary_mandala = {
is_tributary = yes
tributary_can_break_free = {
NOT = { has_variable = tributary_has_been_reasserted_recently }
}
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = yes
should_show_as_suzerain_realm_color = yes
tributary_heir_succession = yes
suzerain_heir_succession = yes
contracts = {
mandala_government_taxes
mandala_government_piety
mandala_government_levies
mandala_suzerain_war_participation_guarantee
}
}
#Wanua, amongst others
tributary_mandala_tribal = {
is_tributary = yes
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = yes
should_show_as_suzerain_realm_color = yes
tributary_heir_succession = yes
suzerain_heir_succession = yes
contracts = {
mandala_government_taxes
mandala_government_prestige
mandala_government_piety
mandala_government_levies
mandala_suzerain_war_participation_guarantee
}
}
japan_administrative_vassal = {
admin_province_contract = japan_administrative_provinces
contracts = {
japan_administrative_obligations
japan_administrative_provinces
}
modify_contract_layout = eastern_admin
}
japan_feudal_vassal = {
contracts = {
feudal_government_taxes
feudal_government_levies
special_contract
religious_rights
fortification_rights
coinage_rights
succession_rights
war_declaration_rights
council_rights
title_revocation_rights
jizya_special_rights
}
}
wanua_vassal = {
contracts = {
wanua_obligations
}
}
tributary_wanua = {
is_tributary = yes
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = yes
should_show_as_suzerain_realm_color = yes
contracts = {
default_tributary_taxes
default_tributary_prestige
barter_goods_obligations
}
}
meritocratic_vassal = {
admin_province_contract = meritocratic_provinces
contracts = {
meritocratic_obligations
meritocratic_provinces
meritocratic_treasury
meritocratic_salary
meritocratic_salary_rank
}
modify_contract_layout = eastern_admin
}

View file

@ -0,0 +1,138 @@
# The entry should be named in the same way that the elective succession law is named to define it's voter's logic.
# Root scope - Elector, the character voting in the election.
# scope:candidate scope - Candidate, Character considered for the title.
# scope:title scope - Title, The title the nomination is for.
# scope:holder scope - Ruler, The ruler currently holding the title.
# scope:holder_candidate scope - Favored Candidate, The title owner's candidate.
# The voter will vote for the top score candidate calculated from this script.
saxon_elective = { #Farmer 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
is_landed_or_landless_administrative = yes
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
}
}
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 }
}
}
}
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
}
}
add = {
type = title_claimants
limit = {
feudal_elective_potential_landless_claimant_candidate_trigger = yes
}
}
add = {
type = holder_close_or_extended_family
limit = {
feudal_elective_potential_landless_dynastic_candidate_trigger = yes
}
}
add = {
type = holder_council_members
limit = {
OR = {
feudal_elective_potential_landless_dynastic_candidate_trigger = yes
feudal_elective_potential_landed_candidate_trigger = yes
feudal_elective_potential_landless_claimant_candidate_trigger = yes
}
}
}
add = {
type = holder_direct_vassals
limit = {
is_vassal_of = scope:holder #Only Powerful, direct, de jure vassals are potential candidates.
}
}
}
}

BIN
gfx/interface/icons/domicile_building/farmstead_main.dds (Stored with Git LFS) Normal file

Binary file not shown.

BIN
gfx/interface/icons/flat_icons/farmer.dds (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
gfx/interface/icons/map_icons/map_icon_farmer.dds (Stored with Git LFS) Normal file

Binary file not shown.

BIN
gfx/interface/icons/nomadic_riders.dds (Stored with Git LFS) Normal file

Binary file not shown.

BIN
gfx/interface/icons/regimenttypes/nomadic_riders.dds (Stored with Git LFS) Normal file

Binary file not shown.

BIN
gfx/interface/icons/situation_types/the_great_steppe.dds (Stored with Git LFS) Normal file

Binary file not shown.

BIN
gfx/interface/icons/title_status/icon_title_nomad.dds (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -159,7 +159,7 @@ character_view_bg = {
OR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
}
@ -180,7 +180,7 @@ character_view_bg = {
OR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
}
@ -203,7 +203,7 @@ character_view_bg = {
OR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
}
@ -219,7 +219,7 @@ character_view_bg = {
OR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
}
@ -237,7 +237,7 @@ character_view_bg = {
OR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
}
@ -350,7 +350,7 @@ character_view_bg = {
NOR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
culture = {
OR = {
has_graphical_mena_culture_group_trigger = yes
@ -373,7 +373,7 @@ character_view_bg = {
NOR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
culture = {
OR = {
has_graphical_mena_culture_group_trigger = yes
@ -398,7 +398,7 @@ character_view_bg = {
NOR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
culture = {
OR = {
has_graphical_mena_culture_group_trigger = yes
@ -416,7 +416,7 @@ character_view_bg = {
NOR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
culture = {
OR = {
has_graphical_mena_culture_group_trigger = yes
@ -436,7 +436,7 @@ character_view_bg = {
NOR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
culture = {
OR = {
has_graphical_mena_culture_group_trigger = yes
@ -627,7 +627,7 @@ character_view_bg = {
government_has_flag = government_is_clan
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
capital_province = {
NOT = { geographical_region = graphical_mena }
@ -647,7 +647,7 @@ character_view_bg = {
government_has_flag = government_is_clan
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
capital_province = {
NOT = { geographical_region = graphical_mena }
@ -672,7 +672,7 @@ character_view_bg = {
government_has_flag = government_is_clan
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
capital_province = {
NOT = { geographical_region = graphical_mena }
@ -690,7 +690,7 @@ character_view_bg = {
government_has_flag = government_is_clan
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
capital_province = {
NOT = { geographical_region = graphical_mena }
@ -708,7 +708,7 @@ character_view_bg = {
government_has_flag = government_is_clan
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
capital_province = {
NOT = { geographical_region = graphical_mena }
@ -2164,7 +2164,7 @@ character_view_bg = {
OR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
location ?= involved_activity.activity_location
@ -2180,7 +2180,7 @@ character_view_bg = {
OR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
location ?= involved_activity.activity_location
@ -2200,7 +2200,7 @@ character_view_bg = {
OR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
location ?= involved_activity.activity_location
@ -2214,7 +2214,7 @@ character_view_bg = {
OR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
location ?= involved_activity.activity_location
@ -2228,7 +2228,7 @@ character_view_bg = {
OR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
location ?= involved_activity.activity_location
@ -2561,7 +2561,7 @@ character_view_bg = {
reference = "event_scenes/bp3_steppe_winter.dds"
trigger = {
location = { has_winter_trigger = yes }
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
@ -2569,21 +2569,21 @@ character_view_bg = {
reference = "environment_bp3_steppe_winter"
trigger = {
location = { has_winter_trigger = yes }
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
texture = {
reference = "event_scenes/ep2_travel_steppe.dds"
trigger = {
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
environment = {
reference = "environment_travel_steppe_settlement"
trigger = {
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
@ -9070,7 +9070,7 @@ character_view_bg = {
OR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
}
@ -9085,7 +9085,7 @@ character_view_bg = {
OR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
is_character_window_main_character = yes
@ -9103,7 +9103,7 @@ character_view_bg = {
OR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
is_character_window_main_character = yes
@ -9114,7 +9114,7 @@ character_view_bg = {
OR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
government_has_flag = government_is_true_herder
}
}
is_character_window_main_character = yes

Binary file not shown.

Binary file not shown.

BIN
gfx/interface/window_domiciles/farmstead_building_mena.dds (Stored with Git LFS) Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more