This commit is contained in:
Fishedotjpg 2026-03-09 06:16:12 +00:00
parent e460144cdc
commit 9a54c59545
32 changed files with 6078 additions and 37 deletions

View file

@ -2001,7 +2001,14 @@ guild_halls_01 = {
#Mandala Creator Aspect #Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes creator_mandala_built_regular_building_piety_effect = yes
} }
province_culture_modifier = {
parameter = use_farmer_republics
monthly_barter_goods = 0.1
}
next_building = guild_halls_02 next_building = guild_halls_02
type_icon = "icon_building_guild_halls.dds" type_icon = "icon_building_guild_halls.dds"
@ -2050,7 +2057,11 @@ guild_halls_02 = {
#Mandala Creator Aspect #Mandala Creator Aspect
creator_mandala_built_regular_building_piety_effect = yes creator_mandala_built_regular_building_piety_effect = yes
} }
province_culture_modifier = {
parameter = use_farmer_republics
monthly_barter_goods = 0.2
}
next_building = guild_halls_03 next_building = guild_halls_03
ai_value = { ai_value = {
base = 9 base = 9
@ -2104,6 +2115,11 @@ guild_halls_03 = {
county_modifier = { county_modifier = {
development_growth_factor = 0.15 development_growth_factor = 0.15
} }
province_culture_modifier = {
parameter = use_farmer_republics
monthly_barter_goods = 0.3
}
on_complete = { on_complete = {
#Mandala Creator Aspect #Mandala Creator Aspect
@ -2164,6 +2180,11 @@ guild_halls_04 = {
county_modifier = { county_modifier = {
development_growth_factor = 0.2 development_growth_factor = 0.2
} }
province_culture_modifier = {
parameter = use_farmer_republics
monthly_barter_goods = 0.3
}
on_complete = { on_complete = {
#Mandala Creator Aspect #Mandala Creator Aspect
@ -2223,6 +2244,11 @@ guild_halls_05 = {
county_modifier = { county_modifier = {
development_growth_factor = 0.25 development_growth_factor = 0.25
} }
province_culture_modifier = {
parameter = use_farmer_republics
monthly_barter_goods = 0.3
}
on_complete = { on_complete = {
#Mandala Creator Aspect #Mandala Creator Aspect
@ -2282,6 +2308,11 @@ guild_halls_06 = {
county_modifier = { county_modifier = {
development_growth_factor = 0.3 development_growth_factor = 0.3
} }
province_culture_modifier = {
parameter = use_farmer_republics
monthly_barter_goods = 0.3
}
on_complete = { on_complete = {
#Mandala Creator Aspect #Mandala Creator Aspect
@ -2341,6 +2372,11 @@ guild_halls_07 = {
county_modifier = { county_modifier = {
development_growth_factor = 0.35 development_growth_factor = 0.35
} }
province_culture_modifier = {
parameter = use_farmer_republics
monthly_barter_goods = 0.3
}
on_complete = { on_complete = {
#Mandala Creator Aspect #Mandala Creator Aspect
@ -2400,6 +2436,11 @@ guild_halls_08 = {
county_modifier = { county_modifier = {
development_growth_factor = 0.4 development_growth_factor = 0.4
} }
province_culture_modifier = {
parameter = use_farmer_republics
monthly_barter_goods = 0.3
}
on_complete = { on_complete = {
#Mandala Creator Aspect #Mandala Creator Aspect

View file

@ -24,5 +24,15 @@ minority_community = {
} }
minority_government = { minority_government = {
texture = "gfx/interface/icons/government_types/landless_minority_government.dds" texture = "gfx/interface/icons/government_types/landless_minority_government.dds"
parent = government
}
farm_estate = {
texture = "gfx/interface/icons/government_types/peasant_republic_government.dds"
alias = { farm_estate farm_estate_i }
parent = domicile parent = domicile
}
peasant_government = {
texture = "gfx/interface/icons/government_types/peasant_republic_government.dds"
alias = { peasant_government peasant_republic_i }
parent = government
} }

View file

@ -664,7 +664,7 @@ peasant_republic_government = {
mercenary_hire_cost_mult = 2 mercenary_hire_cost_mult = 2
men_at_arms_maintenance = 1.5 men_at_arms_maintenance = 1.5
} }
vassal_contract_group = feudal_vassal vassal_contract_group = peasant_republic_vassal
# Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player). # Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player).
flags = { flags = {
@ -679,6 +679,7 @@ peasant_republic_government = {
government_locked_to_elective government_locked_to_elective
} }
mechanic_type = feudal
color = hsv{ 0.30 0.60 0.68 } color = hsv{ 0.30 0.60 0.68 }
realm_mask_offset = { 0.0 -0.01 } realm_mask_offset = { 0.0 -0.01 }
realm_mask_scale = { 1 1 } realm_mask_scale = { 1 1 }

View file

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

View file

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

View file

@ -12,6 +12,28 @@ on_game_start = {
effect = { effect = {
##NEOW ##NEOW
if = {
limit = {
government_has_flag = government_is_prepublic
NOT = {
exists = domicile
}
}
create_noble_family_effect = { GOVERNMENT_GIVER = this }
}
if = {
limit = {
government_has_flag = government_is_prepublic
primary_title = {
NOT = {
has_title_law = saxon_elective_succession_law
}
}
}
primary_title = {
add_title_law = saxon_elective_succession_law
}
}
if = { if = {
limit = { limit = {
government_allows = administrative government_allows = administrative

View file

@ -196,6 +196,29 @@ on_title_gain = {
###################### ######################
# COUNTY-TIER TITLES # # COUNTY-TIER TITLES #
###################### ######################
if = {
limit = {
government_has_flag = government_is_prepublic
NOT = {
exists = domicile
}
}
create_noble_family_effect = { GOVERNMENT_GIVER = this }
}
if = {
limit = {
government_has_flag = government_is_prepublic
primary_title = {
NOT = {
has_title_law = saxon_elective_succession_law
}
}
}
primary_title = {
add_title_law = saxon_elective_succession_law
}
}
if = { if = {
limit = { limit = {
scope:title.tier = tier_county scope:title.tier = tier_county
@ -2794,6 +2817,28 @@ on_title_gain_inheritance = {
diarchy.0113 diarchy.0113
} }
effect = { effect = {
if = {
limit = {
government_has_flag = government_is_prepublic
NOT = {
exists = domicile
}
}
create_noble_family_effect = { GOVERNMENT_GIVER = this }
}
if = {
limit = {
government_has_flag = government_is_prepublic
primary_title = {
NOT = {
has_title_law = saxon_elective_succession_law
}
}
}
primary_title = {
add_title_law = saxon_elective_succession_law
}
}
if = { if = {
limit = { limit = {
government = landless_minority_government government = landless_minority_government
@ -2844,6 +2889,28 @@ on_title_gain_usurpation = {
events = { events = {
} }
effect = { effect = {
if = {
limit = {
government_has_flag = government_is_prepublic
NOT = {
exists = domicile
}
}
create_noble_family_effect = { GOVERNMENT_GIVER = this }
}
if = {
limit = {
government_has_flag = government_is_prepublic
primary_title = {
NOT = {
has_title_law = saxon_elective_succession_law
}
}
}
primary_title = {
add_title_law = saxon_elective_succession_law
}
}
if = { if = {
limit = { limit = {
government = landless_minority_government government = landless_minority_government

View file

@ -755,6 +755,15 @@ yearly_global_pulse = {
# Root is the character # Root is the character
yearly_playable_pulse = { yearly_playable_pulse = {
effect = { effect = {
if = {
limit = {
government_has_flag = government_is_prepublic
NOT = {
exists = domicile
}
}
create_noble_family_effect = { GOVERNMENT_GIVER = this }
}
if = { if = {
limit = { limit = {
has_title = title:k_papal_state has_title = title:k_papal_state
@ -2666,6 +2675,31 @@ five_year_playable_pulse = {
# Root is the character # Root is the character
# scope:quarter is which quarter it's for, from 1 to 4. Note that scope:quarter = 1 isn't necessarily in Q1 by calendar time # scope:quarter is which quarter it's for, from 1 to 4. Note that scope:quarter = 1 isn't necessarily in Q1 by calendar time
quarterly_playable_pulse = { quarterly_playable_pulse = {
effect = {
if = {
limit = {
government_has_flag = government_is_prepublic
NOT = {
exists = domicile
}
}
create_noble_family_effect = { GOVERNMENT_GIVER = this }
}
if = {
limit = {
government_has_flag = government_is_prepublic
primary_title = {
NOT = {
has_title_law = saxon_elective_succession_law
}
}
}
primary_title = {
add_title_law = saxon_elective_succession_law
}
}
}
on_actions = { on_actions = {
realm_maintenance_quarterly_pulse realm_maintenance_quarterly_pulse

View file

@ -4075,6 +4075,17 @@ create_noble_family_effect = {
} }
} }
} }
peasant_republic_government = { # Steppe Admin has different government
scope:new_noble_family_holder = {
give_noble_family_title = {
name = domicile_farm_estate
tier = county
article = DEFAULT_TITLE_NAME_ARTICLE
government = peasant_republic_government
save_scope_as = new_title
}
}
}
fallback = { fallback = {
scope:new_noble_family_holder = { scope:new_noble_family_holder = {
give_noble_family_title = { give_noble_family_title = {

View file

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

View file

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

File diff suppressed because it is too large Load diff

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,82 @@
peasant_republic_government_obligations = {
obligation_levels = {
default = {
levies = {
value = 0.1
max = 1
scope:liege = {
add = {
value = 0.1
multiply = legitimacy_level
}
}
scope:liege = {
add = {
value = 0.1
multiply = prestige_level
}
}
}
tax = {
value = 0.1
max = 1
scope:liege = {
add = {
value = 0.1
multiply = legitimacy_level
}
}
scope:liege = {
add = {
value = 0.1
multiply = prestige_level
}
}
}
barter_goods = {
value = 0.1
max = 1
scope:liege = {
add = {
value = 0.1
multiply = legitimacy_level
}
}
scope:liege = {
add = {
value = 0.1
multiply = prestige_level
}
}
scope:liege = {
add = {
value = 0.1
multiply = piety_level
}
}
}
herd = {
value = 0.1
max = 1
scope:liege = {
add = {
value = 0.1
multiply = legitimacy_level
}
}
scope:liege = {
add = {
value = 0.1
multiply = prestige_level
}
}
scope:liege = {
add = {
value = 0.1
multiply = piety_level
}
}
}
}
}
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,140 @@
# The entry should be named in the same way that the elective succession law is named to define it's voter's logic.
# Root scope - Elector, the character voting in the election.
# scope:candidate scope - Candidate, Character considered for the title.
# scope:title scope - Title, The title the nomination is for.
# scope:holder scope - Ruler, The ruler currently holding the title.
# scope:holder_candidate scope - Favored Candidate, The title owner's candidate.
# The voter will vote for the top score candidate calculated from this script.
saxon_elective = { #Farmer Elective
elector_vote_strength = {
base = 1
modifier = { #Each voter is the "representative" of all the free men living in his domain. The larger the domain, the more voting power he has.
desc = tooltip_scandinavian_elective_development
is_landed_or_landless_administrative = yes
domain_size >= 1
any_held_title = {
title_tier = county
development_level > 0
target_is_de_jure_liege_or_above = scope:title
}
add = {
every_held_title = {
title_tier = county
limit = {
development_level > 0
target_is_de_jure_liege_or_above = scope:title
}
add = {
value = this.development_level
if = {
limit = {
this.faith != root.faith
}
divide = 2
}
if = {
limit = {
NOT = { this.culture = { has_same_culture_heritage = root.culture } }
}
divide = 2
}
min = 1
}
}
}
}
modifier = { #Further boost/reduction is given depending on capital county's opinion.
desc = tooltip_scandinavian_elective_capital_opinion
is_landed_or_landless_administrative = yes
exists = capital_county
OR = {
capital_county.county_opinion <= -5
capital_county.county_opinion >= 5
}
add = {
value = capital_county.county_opinion
multiply = 0.2
}
}
min = 1
}
electors = {
add = holder
add = {
type = title_dejure_vassals
limit = {
is_vassal_of = scope:holder #All direct de jure vassals, no matter the tier.
is_adult = yes
NOT = { has_trait = incapable }
}
}
}
candidate_score = {
base = 0
###################### Elector self-voting pattern ##########################
elector_self_voting_pattern_feudal_elective_modifier = yes
########################## Holder voting pattern ##########################
holder_voting_pattern_feudal_elective_modifier = yes
########################## Elector voting patterns (circumstances) ##########################
elector_voting_pattern_circumstances_feudal_elective_modifier = yes
elector_voting_pattern_circumstances_saxon_elective_modifier = yes
########################## Elector voting patterns (prestige/piety) ##########################
elector_voting_pattern_prestige_piety_feudal_elective_modifier = yes
########################## Elector voting patterns (traits) ##########################
elector_voting_pattern_traits_feudal_elective_modifier = yes
########################## Elector voting patterns (opinion) ##########################
elector_voting_pattern_opinion_feudal_elective_modifier = yes
########################## Elector voting patterns (misc) ##########################
elector_voting_pattern_circumstances_misc_elective_modifier = yes
}
#scope:candidate = Candidate, scope:title = Title, scope:holder_candidate = Candidate currently selected by ruler.
candidates = {
add = {
type = title_dejure_vassals
limit = {
is_vassal_of = scope:holder #Only Powerful, direct, de jure vassals are potential candidates.
feudal_elective_potential_landed_candidate_trigger = yes
}
}
add = {
type = title_claimants
limit = {
feudal_elective_potential_landless_claimant_candidate_trigger = yes
}
}
add = {
type = holder_close_or_extended_family
limit = {
feudal_elective_potential_landless_dynastic_candidate_trigger = yes
}
}
add = {
type = holder_council_members
limit = {
feudal_elective_potential_landless_dynastic_candidate_trigger = yes
}
}
add = {
type = holder_direct_vassals
limit = {
feudal_elective_potential_landless_dynastic_candidate_trigger = yes
}
}
add = {
type = holder_direct_vassals
limit = {
feudal_elective_potential_landless_dynastic_candidate_trigger = yes
}
}
}
}

View file

@ -4,6 +4,7 @@ k_ireland = {
} }
2538.1.1 = { 2538.1.1 = {
holder = britannia_colbrugha_michael #Mícheál Colbrugha holder = britannia_colbrugha_michael #Mícheál Colbrugha
succession_laws = { saxon_elective_succession_law }
} }
} }

View file

@ -248,17 +248,17 @@
village_workshop_textile_05_domicile_building_desc: "A workshop in which a few weavers ply their trade for the benefit of the village." village_workshop_textile_05_domicile_building_desc: "A workshop in which a few weavers ply their trade for the benefit of the village."
village_workshop_textile_06_domicile_building: "Village Weavers Workshop" village_workshop_textile_06_domicile_building: "Village Weavers Workshop"
village_workshop_textile_06_domicile_building_desc: "A workshop in which a few weavers ply their trade for the benefit of the village." village_workshop_textile_06_domicile_building_desc: "A workshop in which a few weavers ply their trade for the benefit of the village."
village_storage_01_domicile_building: "Village Storehouse" village_storage_01_domicile_building: "Storehouse"
village_storage_01_domicile_building_desc: "A small storehouse where food and goods are stored for protection from the elements" village_storage_01_domicile_building_desc: "A small storehouse where food and goods are stored for protection from the elements"
village_storage_02_domicile_building: "Village Storehouse" village_storage_02_domicile_building: "Storehouse"
village_storage_02_domicile_building_desc: "A small storehouse where food and goods are stored for protection from the elements" village_storage_02_domicile_building_desc: "A small storehouse where food and goods are stored for protection from the elements"
village_storage_warehouse_03_domicile_building: "Village Warehouse" village_storage_warehouse_03_domicile_building: "Warehouse"
village_storage_warehouse_03_domicile_building_desc:: "A warehouse in which goods are stored for protection from the elements" village_storage_warehouse_03_domicile_building_desc:: "A warehouse in which goods are stored for protection from the elements"
village_storage_warehouse_04_domicile_building: "Village Warehouse" village_storage_warehouse_04_domicile_building: "Warehouse"
village_storage_warehouse_04_domicile_building_desc:: "A warehouse in which goods are stored for protection from the elements" village_storage_warehouse_04_domicile_building_desc:: "A warehouse in which goods are stored for protection from the elements"
village_storage_granary_03_domicile_building: "Village Granary" village_storage_granary_03_domicile_building: "Granary"
village_storage_granary_03_domicile_building_desc:: "A granary in which food is stored for protection from the elements" village_storage_granary_03_domicile_building_desc:: "A granary in which food is stored for protection from the elements"
village_storage_granary_04_domicile_building: "Village Granary" village_storage_granary_04_domicile_building: "Granary"
village_storage_granary_04_domicile_building_desc:: "A granary in which food is stored for protection from the elements" village_storage_granary_04_domicile_building_desc:: "A granary in which food is stored for protection from the elements"
village_market_01_domicile_building: "Village Market" village_market_01_domicile_building: "Village Market"
village_market_01_domicile_building_desc: "A market in which goods are exchanged with travelling merchants and distributed around the village" village_market_01_domicile_building_desc: "A market in which goods are exchanged with travelling merchants and distributed around the village"
@ -272,17 +272,17 @@
village_market_05_domicile_building_desc: "A market in which goods are exchanged with travelling merchants and distributed around the village" village_market_05_domicile_building_desc: "A market in which goods are exchanged with travelling merchants and distributed around the village"
village_market_06_domicile_building: "Village Market" village_market_06_domicile_building: "Village Market"
village_market_06_domicile_building_desc: "A market in which goods are exchanged with travelling merchants and distributed around the village" village_market_06_domicile_building_desc: "A market in which goods are exchanged with travelling merchants and distributed around the village"
village_grazing_land_01_domicile_building: "Village Pastures" village_grazing_land_01_domicile_building: "Pastures"
village_grazing_land_01_domicile_building_desc: "The pastures where cattle and horses roam freely providing dairy and meat to the community." village_grazing_land_01_domicile_building_desc: "The pastures where cattle and horses roam freely providing dairy and meat to the community."
village_grazing_land_02_domicile_building: "Village Pastures" village_grazing_land_02_domicile_building: "Pastures"
village_grazing_land_02_domicile_building_desc: "The pastures where cattle and horses roam freely providing dairy and meat to the community." village_grazing_land_02_domicile_building_desc: "The pastures where cattle and horses roam freely providing dairy and meat to the community."
village_grazing_land_03_domicile_building: "Village Pastures" village_grazing_land_03_domicile_building: "Pastures"
village_grazing_land_03_domicile_building_desc: "The pastures where cattle and horses roam freely providing dairy and meat to the community." village_grazing_land_03_domicile_building_desc: "The pastures where cattle and horses roam freely providing dairy and meat to the community."
village_grazing_land_04_domicile_building: "Village Pastures" village_grazing_land_04_domicile_building: "Pastures"
village_grazing_land_04_domicile_building_desc: "The pastures where cattle and horses roam freely providing dairy and meat to the community." village_grazing_land_04_domicile_building_desc: "The pastures where cattle and horses roam freely providing dairy and meat to the community."
village_grazing_land_05_domicile_building: "Village Pastures" village_grazing_land_05_domicile_building: "Pastures"
village_grazing_land_05_domicile_building_desc: "The pastures where cattle and horses roam freely providing dairy and meat to the community." village_grazing_land_05_domicile_building_desc: "The pastures where cattle and horses roam freely providing dairy and meat to the community."
village_grazing_land_06_domicile_building: "Village Pastures" village_grazing_land_06_domicile_building: "Pastures"
village_grazing_land_06_domicile_building_desc: "The pastures where cattle and horses roam freely providing dairy and meat to the community." village_grazing_land_06_domicile_building_desc: "The pastures where cattle and horses roam freely providing dairy and meat to the community."
village_grain_fields_01_domicile_building: "Spelt Fields" village_grain_fields_01_domicile_building: "Spelt Fields"
village_grain_fields_01_domicile_building_desc: "Open fields of spelt used to produce the universal staple, bread." village_grain_fields_01_domicile_building_desc: "Open fields of spelt used to produce the universal staple, bread."

View file

@ -1,20 +1,23 @@
l_english: l_english:
peasant_republic_government: "Peasant Republic" peasant_republic_government:0 "Peasant Republic"
peasant_republic_government_with_icon: "@government_type_peasant_republic! $peasant_republic_government$" peasant_republic_government_with_icon: "@government_type_peasant_republic! $peasant_republic_government$"
peasant_republic_government_adjective: "Peasant Republic" peasant_republic_government_adjective:0 "Peasant Republic"
peasant_republic_government_realm: "Peasant Republic" peasant_republic_government_realm:0 "Peasant Republic"
peasant_republic_government_desc: "\n$game_concept_peasant_republic_desc$" peasant_republic_government_desc:0 "\n$game_concept_peasant_government_desc$"
game_concept_peasant_republic: "Peasant Republic" game_concept_peasant_government:0 "Peasant Republic"
game_concept_peasant_republic_desc: "A $Peasant Republic$ is an [landed|E] [character|E] who leads a [peasant_republic_government|E]." game_concept_peasant_government_desc:0 "A $Peasant Republic$ is a region of land which does not accept the rule of the nobility and the farmers of the land vote for their representatives to lead."
game_concept_farm_estate: "Farm Estate" game_concept_farm_estate:0 "Farm Estate"
game_concept_farm_estate_desc: "A small landholding where a farmer tends his lands." game_concept_farm_estate_desc:0 "A small landholding where a farmer tends his lands."
peasant_republic_government_obligations:1 "Peasant Republic [obligations|E]"
peasant_republic_vassal: "Peasant Republic"
peasant_republic_vassal_desc: "$game_concept_peasant_government_desc$"
farm_estate_main_01_domicile_building: "Farmstead" farm_estate_main_01_domicile_building: "Farmstead"
farm_estate_main_02_domicile_building: "Farmstead" farm_estate_main_02_domicile_building: "Farmstead"
farm_estate_main_03_domicile_building: "Farmstead" farm_estate_main_03_domicile_building: "Farmstead"
farm_estate_main_04_domicile_building: "Farmstead" farm_estate_main_04_domicile_building: "Farmstead"
farm_estate_main_05_domicile_building: "Farmstead" farm_estate_main_05_domicile_building: "Farmstead"
peasant_republic_icon_concept: "[peasant_republic_government_i|E]" peasant_republic_icon_concept: "[peasant_republic_i|E]"
game_concept_peasant_republic_i: "@government_type_peasant_republic!" game_concept_peasant_republic_i: "@government_type_peasant_republic!"
game_concept_farm_estate_i: "@government_type_peasant_republic!" game_concept_farm_estate_i: "@government_type_peasant_republic!"
duchy_landless_peasant_republic: "Community" duchy_landless_peasant_republic: "Community"
@ -22,23 +25,23 @@
duke_landless_peasant_republic_female_peasant_republic: "Mistress" duke_landless_peasant_republic_female_peasant_republic: "Mistress"
spouse_landless_peasant_republic_male: "Master" spouse_landless_peasant_republic_male: "Master"
spouse_landless_peasant_republic_holder_female: "Mistress" spouse_landless_peasant_republic_holder_female: "Mistress"
d_nf_colbrugha:0 "Farmstead of the $dynn_britannia_colbrugha$'s" d_nf_colbrugha:0 "Farmstead of the $dynn_colbrugha$'s"
d_nf_colbrugha_adj:0 "Farmer" d_nf_colbrugha_adj:0 "Farmer"
d_nf_colbrugha_article:0 "The " d_nf_colbrugha_article:0 "The "
government_locked_to_elective:0 "Government is locked to Elctive" government_locked_to_elective:0 "Government is locked to Elctive"
government_is_prepublic:0 "Has access to a [farm_estate_i|E][farm_estate|E]" government_is_prepublic:0 "Has access to a [farm_estate_i|E][farm_estate|E]"
farm_estate_domicile_title: "Farmstead" farm_estate_domicile_title: "Farmstead"
farm_estate_type: "[farm_estate_i|E][farm_estate|E]" farm_estate_type: "Farm Estate"
farm_estate_type_tooltip: "[farm_estate_i|E][farm_estate|E]" farm_estate_type_tooltip: "[farm_estate_i|E][farm_estate|E]"
farm_estate_domicile_type: "[farm_estate_i|E][farm_estate|E]" farm_estate_domicile_type: "Farm Estate"
farm_estate_domicile_type_possessive: "Community's" farm_estate_domicile_type_possessive: "Farm's"
farm_estate_domicile_type_tooltip: "[farm_estate_i|E][farm_estate|E]" farm_estate_domicile_type_tooltip: "[farm_estate_i|E][farm_estate|E]"
FARM_ESTATE: "[farm_estate_i|E][farm_estate|E]" FARM_ESTATE: "Farm Estate"
FARM_ESTATE_BUILDINGS: "[farm_estate_i|E][farm_estate|E]" FARM_ESTATE_BUILDINGS: "[farm_estate_i|E][farm_estate|E]"
FARM_ESTATE_CONCEPT: "[farm_estate_i|E][farm_estate|E]" FARM_ESTATE_CONCEPT: "[farm_estate_i|E][farm_estate|E]"
domicile_farm_estate: "Farmstead of the [CHARACTER.GetHouse.GetNameNoTooltip]'s" domicile_farm_estate: "Farmstead of the [CHARACTER.GetHouse.GetNameNoTooltip]'s"
culture_parameter_use_farmer_republics: "This Culture uses [peasant_republic_i|E][peasant_republic|E]s instead of Republics" culture_parameter_use_farmer_republics: "This Culture uses [peasant_republic_i|E][peasant_government|E]s instead of Republics"
tradition_farmer_republics_name:0 "Peasant Freedom" tradition_farmer_republics_name:0 "Peasant Freedom"
tradition_farmer_republics_desc:0 "This culture has refused the return of feudalism and its farmers wont be subjegated by the noble." tradition_farmer_republics_desc:0 "This culture has refused the return of feudalism and its farmers wont be subjegated by the noble."