N3OW/common/subject_contracts/contracts/special_contracts.txt
2026-03-09 06:16:12 +00:00

896 lines
19 KiB
Text

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