farmer republic

This commit is contained in:
Fishedotjpg 2026-03-09 03:51:24 +00:00
parent 33a8699bbe
commit e460144cdc
57 changed files with 17327 additions and 156 deletions

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

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

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

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

View file

@ -0,0 +1,433 @@
farm_estate_main_01 = {
slot_type = main
construction_time = 1
allowed_domicile_types = { farm_estate }
cost = {
gold = estate_external_building_high_cost_tier_2_value
}
character_modifier = {
domicile_monthly_gold_add = 0.25
health = 0.5
domicile_external_slots_capacity_add = 2
monthly_barter_goods = 1
}
ai_value = {
value = 100
}
parameters = {
camp_unlocks_second_officer = yes
camp_unlocks_huntperson_officer = yes
camp_unlocks_chief_forager_officer = yes
}
asset = {
trigger = {
domicile_location.culture = {
has_graphical_east_asia_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/estate_building_villa_chinese.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_chinese_mask.png"
soundeffect = "event:/DLC/EP4/SFX/UI/domicile_buildings/tgp_ui_domicile_building_chinese_main_building"
}
asset = {
trigger = {
domicile_location.culture = {
OR = {
has_graphical_iranian_culture_group_trigger = yes
has_graphical_mena_culture_group_trigger = yes
has_graphical_steppe_culture_group_trigger = yes
has_graphical_african_culture_group_trigger = yes
has_graphical_india_culture_group_trigger = yes
has_graphical_iberian_culture_group_trigger = yes
}
}
}
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/farm_estate_building_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_mena_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
trigger = {
domicile_location.culture = {
OR = {
has_graphical_western_culture_group_trigger = yes
has_graphical_norse_culture_group_trigger = yes
}
}
}
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/farm_estate_building_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_western_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
}
farm_estate_main_02 = {
slot_type = main
construction_time = 730
allowed_domicile_types = { farm_estate }
previous_building = farm_estate_main_01
can_construct = {
culture ?= { has_innovation = innovation_city_planning }
}
cost = {
gold = estate_external_building_high_cost_tier_3_value
}
parameters = {
camp_unlocks_second_officer = yes
reduce_success_of_raid_estate = yes
estate_increase_house_member_investment_cap_1 = yes
monthly_barter_goods = 1.2
}
character_modifier = {
domicile_monthly_gold_add = 0.25
domicile_external_slots_capacity_add = 1
men_at_arms_cap = 1
enemy_hostile_scheme_phase_duration_add = miniscule_scheme_phase_duration_malus_value
character_travel_safety_mult = 0.02
}
ai_value = {
value = 100
}
asset = {
trigger = {
domicile_location.culture = {
has_graphical_east_asia_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/estate_building_villa_chinese.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_chinese_mask.png"
soundeffect = "event:/DLC/EP4/SFX/UI/domicile_buildings/tgp_ui_domicile_building_chinese_main_building"
}
asset = {
trigger = {
domicile_location.culture = {
OR = {
has_graphical_iranian_culture_group_trigger = yes
has_graphical_mena_culture_group_trigger = yes
has_graphical_steppe_culture_group_trigger = yes
has_graphical_african_culture_group_trigger = yes
has_graphical_india_culture_group_trigger = yes
has_graphical_iberian_culture_group_trigger = yes
}
}
}
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/farm_estate_building_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_mena_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
trigger = {
domicile_location.culture = {
OR = {
has_graphical_western_culture_group_trigger = yes
has_graphical_norse_culture_group_trigger = yes
}
}
}
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/farm_estate_building_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_western_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
}
farm_estate_main_03 = {
slot_type = main
construction_time = 730
allowed_domicile_types = { farm_estate }
previous_building = farm_estate_main_02
can_construct = {
culture ?= { has_innovation = innovation_manorialism }
}
cost = {
gold = estate_external_building_high_cost_tier_4_value
}
parameters = {
camp_unlocks_second_officer = yes
reduce_success_of_raid_estate = yes
estate_increase_house_member_investment_cap_2 = yes
}
character_modifier = {
domicile_monthly_gold_add = 0.5
domicile_monthly_gold_mult = 0.02
domicile_external_slots_capacity_add = 1
maa_toughness_mult = 0.05
enemy_hostile_scheme_phase_duration_add = minor_scheme_phase_duration_malus_value
character_travel_safety_mult = 0.02
monthly_barter_goods = 1.4
}
ai_value = {
value = 100
}
asset = {
trigger = {
domicile_location.culture = {
has_graphical_east_asia_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/estate_building_villa_chinese.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_chinese_mask.png"
soundeffect = "event:/DLC/EP4/SFX/UI/domicile_buildings/tgp_ui_domicile_building_chinese_main_building"
}
asset = {
trigger = {
domicile_location.culture = {
OR = {
has_graphical_iranian_culture_group_trigger = yes
has_graphical_mena_culture_group_trigger = yes
has_graphical_steppe_culture_group_trigger = yes
has_graphical_african_culture_group_trigger = yes
has_graphical_india_culture_group_trigger = yes
has_graphical_iberian_culture_group_trigger = yes
}
}
}
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/farm_estate_building_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_mena_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
trigger = {
domicile_location.culture = {
OR = {
has_graphical_western_culture_group_trigger = yes
has_graphical_norse_culture_group_trigger = yes
}
}
}
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/farm_estate_building_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_western_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
}
farm_estate_main_04 = {
slot_type = main
construction_time = 730
allowed_domicile_types = { farm_estate }
previous_building = farm_estate_main_03
can_construct = {
culture ?= { has_innovation = innovation_development_03 }
}
cost = {
gold = estate_external_building_high_cost_tier_5_value
}
parameters = {
camp_unlocks_second_officer = yes
reduce_success_of_raid_estate = yes
estate_increase_house_member_investment_cap_3 = yes
}
character_modifier = {
domicile_monthly_gold_add = 0.5
domicile_monthly_gold_mult = 0.03
domicile_external_slots_capacity_add = 1
maa_toughness_mult = 0.05
men_at_arms_cap = 1
enemy_hostile_scheme_phase_duration_add = medium_scheme_phase_duration_malus_value
character_travel_safety_mult = 0.02
monthly_barter_goods = 1.6
}
ai_value = {
value = 100
}
asset = {
trigger = {
domicile_location.culture = {
has_graphical_east_asia_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/estate_building_villa_chinese.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_chinese_mask.png"
soundeffect = "event:/DLC/EP4/SFX/UI/domicile_buildings/tgp_ui_domicile_building_chinese_main_building"
}
asset = {
trigger = {
domicile_location.culture = {
OR = {
has_graphical_iranian_culture_group_trigger = yes
has_graphical_mena_culture_group_trigger = yes
has_graphical_steppe_culture_group_trigger = yes
has_graphical_african_culture_group_trigger = yes
has_graphical_india_culture_group_trigger = yes
has_graphical_iberian_culture_group_trigger = yes
}
}
}
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/farm_estate_building_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_mena_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
trigger = {
domicile_location.culture = {
OR = {
has_graphical_western_culture_group_trigger = yes
has_graphical_norse_culture_group_trigger = yes
}
}
}
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/farm_estate_building_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_western_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
}
farm_estate_main_05 = {
slot_type = main
construction_time = 730
allowed_domicile_types = { farm_estate }
previous_building = farm_estate_main_04
can_construct = {
culture ?= { has_innovation = innovation_cranes }
}
cost = {
gold = estate_external_building_high_cost_tier_6_value
}
parameters = {
camp_unlocks_second_officer = yes
reduce_success_of_raid_estate = yes
estate_increase_house_member_investment_cap_4 = yes
}
character_modifier = {
domicile_monthly_gold_add = 0.75
domicile_monthly_gold_mult = 0.05
domicile_external_slots_capacity_add = 1
maa_toughness_mult = 0.1
men_at_arms_cap = 1
enemy_hostile_scheme_phase_duration_add = medium_scheme_phase_duration_malus_value
character_travel_safety_mult = 0.04
monthly_barter_goods = 1.8
}
ai_value = {
value = 100
}
asset = {
trigger = {
domicile_location.culture = {
has_graphical_east_asia_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/estate_building_villa_chinese.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_chinese_mask.png"
soundeffect = "event:/DLC/EP4/SFX/UI/domicile_buildings/tgp_ui_domicile_building_chinese_main_building"
}
asset = {
trigger = {
domicile_location.culture = {
OR = {
has_graphical_iranian_culture_group_trigger = yes
has_graphical_mena_culture_group_trigger = yes
has_graphical_steppe_culture_group_trigger = yes
has_graphical_african_culture_group_trigger = yes
has_graphical_india_culture_group_trigger = yes
has_graphical_iberian_culture_group_trigger = yes
}
}
}
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/farm_estate_building_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_mena_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
trigger = {
domicile_location.culture = {
OR = {
has_graphical_western_culture_group_trigger = yes
has_graphical_norse_culture_group_trigger = yes
}
}
}
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/farm_estate_building_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_western_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
asset = {
icon = "gfx/interface/icons/domicile_building/farm_estate_main.dds"
texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/farm_estate_building_byzantine_mask.png"
soundeffect = "event:/DLC/EP3/SFX/UI/domicile_buildings/ep3_ui_domicile_buildings_estate_main_building"
}
}

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

File diff suppressed because it is too large Load diff

View file

@ -49,6 +49,11 @@ republic_government = {
inherit_from_dynastic_government = no
}
can_get_government = {
culture = {
NOT = { has_cultural_tradition = tradition_farmer_republics }
}
}
ai = {
arrange_marriage = no
use_goals = no
@ -607,6 +612,77 @@ landless_minority_government = {
realm_mask_offset = { 0.0 0.0 }
realm_mask_scale = { 1 1 }
}
peasant_republic_government = {
primary_holding = city_holding
valid_holdings = { temple_citadel_holding }
required_county_holdings = { city_holding church_holding }
government_rules = {
create_cadet_branches = yes
court_generate_spouses = yes
council = yes
always_use_patronym = yes
rulers_should_have_dynasty = yes
landless_playable = yes
legitimacy = yes
barter = yes
mercenary = yes
use_as_base_on_landed = yes
allow_out_of_realm_inheritance = no
use_as_base_on_rank_up = yes
uses_county_fertility = yes
sticky_government = yes
replenishes_county_fertility = yes
regiments_use_barter_goods_as_gold = yes
}
can_get_government = {
culture = {
has_cultural_tradition = tradition_farmer_republics
}
}
domicile_type = farm_estate
ai = {
use_scripted_guis = no
}
top_liege_character_modifier = {
county_fertility_decline_add = -10
domain_limit_max = -2
vassal_limit_max = 5
}
character_modifier = {
levy_size = 1.5
feudal_government_tax_contribution_mult = -0.5
feudal_government_levy_contribution_mult = -0.5
clan_government_tax_contribution_mult = -0.5
clan_government_levy_contribution_mult = -0.5
men_at_arms_cap = -1
men_at_arms_limit = -1
knight_limit = -5
active_accolades = -1
title_creation_cost_mult = 1.5
mercenary_hire_cost_mult = 2
men_at_arms_maintenance = 1.5
}
vassal_contract_group = feudal_vassal
# Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player).
flags = {
government_is_settled
may_elevate_co_monarch
government_uses_legitimacy
government_uses_domain_limit
government_is_herder
government_has_herd
government_is_barterer
government_is_prepublic
government_locked_to_elective
}
color = hsv{ 0.30 0.60 0.68 }
realm_mask_offset = { 0.0 -0.01 }
realm_mask_scale = { 1 1 }
}
### Brief: nomad_government
# Default nomad government, used for the Steppe Region
#
@ -741,6 +817,7 @@ herder_government = {
# Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player).
flags = {
government_is_herder
government_is_true_herder
government_has_herd
ignores_faith_marriage_penalties
}

View file

@ -17,6 +17,20 @@
#}
#Brytanya
d_nf_colbrugha = { # Cyflymarhyan (Quicksilver)
color = { 100 100 100 }
capital = c_desmond
definite_form = yes
landless = yes
ruler_uses_title_name = no
always_follows_primary_heir = yes
no_automatic_claims = yes
noble_family = yes
destroy_if_invalid_heir = yes
ai_primary_priority = { add = @never_primary_score }
}
d_nf_cyflymarhyan = { # Cyflymarhyan (Quicksilver)
color = { 100 100 100 }
capital = c_london

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
}

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
}
}

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