11274 lines
236 KiB
Text
11274 lines
236 KiB
Text
offer_confederation_interaction = {
|
|
category = interaction_category_diplomacy
|
|
icon = offer_confederation_interaction
|
|
|
|
desc = offer_confederation_interaction_desc
|
|
|
|
ai_targets = {
|
|
ai_recipients = neighboring_rulers_including_tributary_borders
|
|
}
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 8
|
|
duchy = 8
|
|
kingdom = 0
|
|
empire = 0
|
|
hegemony = 0
|
|
}
|
|
popup_on_receive = yes
|
|
pause_on_receive = yes
|
|
|
|
common_interaction = yes
|
|
|
|
cooldown_against_recipient = { years = 3 }
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
OR = {
|
|
government_has_flag = government_is_tribal
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
is_playable_character = yes
|
|
OR = {
|
|
is_independent_ruler = yes
|
|
confederation ?= { is_house_based = no }
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
is_playable_character = yes
|
|
is_independent_ruler = yes
|
|
OR = {
|
|
government_has_flag = government_is_tribal
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
NOT = { this = scope:actor }
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
trigger_if = {
|
|
limit = {
|
|
scope:actor = { is_confederation_member = no }
|
|
}
|
|
custom_tooltip = {
|
|
text = forming_confederation_tt
|
|
scope:actor = {
|
|
has_character_flag = forming_confederation
|
|
}
|
|
}
|
|
}
|
|
scope:actor = {
|
|
is_imprisoned = no
|
|
}
|
|
scope:recipient = {
|
|
valid_confederation_member_trigger = { CHARACTER = scope:actor }
|
|
is_imprisoned = no
|
|
is_at_war = no
|
|
}
|
|
}
|
|
|
|
cost = {
|
|
prestige = {
|
|
value = 0
|
|
if = {
|
|
limit = { scope:prestige_send_option = yes }
|
|
add = scope:actor.minor_prestige_value
|
|
desc = PRESTIGE_INTERACTION_ACCEPTANCE_SEND_OPTION
|
|
}
|
|
}
|
|
}
|
|
|
|
greeting = positive
|
|
notification_text = OFFER_CONFEDERATION_INTERACTION_NOTIFICATION
|
|
|
|
ai_accept = {
|
|
base = -50
|
|
# MAIN
|
|
# Heretic/Infidel modifier.
|
|
# Tier difference modifier.
|
|
# Dejure modifier.
|
|
# Distant/Remote Realm modifier.
|
|
# Military power difference modifier.
|
|
|
|
# MINOR
|
|
# Rivalry modifier.
|
|
# Same Dynasty modifier.
|
|
# Cultural/Cultural Group modifiers.
|
|
# Ageism modifier vs kids.
|
|
# Ruler Legitimacy modifier.
|
|
# Claimant modifier.
|
|
# FP3 Piety Level modifier.
|
|
|
|
# OPINION SCALES
|
|
# Dread
|
|
# Compare Opinion modifier.
|
|
|
|
#WHEN UPDATING ANYTHING HERE, PLEASE DO THE SAME (BUT INVERTED) IN LEAVE CONFEDERATION DECISION
|
|
|
|
# PERKS
|
|
modifier = { # Perk boost
|
|
desc = offer_vassalization_true_ruler_perk_tt
|
|
trigger = {
|
|
scope:actor = { has_perk = true_ruler_perk }
|
|
}
|
|
add = true_ruler_value
|
|
}
|
|
modifier = { # Education 5 boost
|
|
desc = offer_vassalization_education_diplomacy_5_tt
|
|
trigger = {
|
|
scope:actor = { has_trait_with_flag = offer_vassalisation_25 }
|
|
}
|
|
add = 25
|
|
}
|
|
|
|
# EVENTS - temporary bonuses gained by events
|
|
modifier = {
|
|
desc = event_bonus_to_vassal_accept_tt
|
|
trigger = {
|
|
scope:actor = { has_character_modifier = event_bonus_to_vassal_accept }
|
|
}
|
|
add = 20
|
|
}
|
|
|
|
|
|
# STRUGGLES - bonus gained by successful Sway scheme during the Persian Struggle
|
|
modifier = {
|
|
desc = fp3_persian_struggle_previously_swayed_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_opinion_modifier = {
|
|
modifier = scheme_sway_and_compelled_to_submit_opinion
|
|
target = scope:actor
|
|
}
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
|
|
modifier = {
|
|
desc = fp3_rekindler_of_iran_modifier_reason
|
|
trigger = {
|
|
AND = {
|
|
scope:actor = { dynasty ?={ has_dynasty_modifier = fp3_rekindler_of_iran_modifier } }
|
|
scope:recipient = { culture = { has_cultural_pillar = heritage_iranian } }
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
|
|
|
|
modifier = { # Cultural Acceptance
|
|
add = offer_vassalage_acceptance_value
|
|
desc = cultural_acceptance_interaction_reason
|
|
trigger = {
|
|
scope:actor = {
|
|
NOT = { has_same_culture_as = scope:recipient }
|
|
culture = {
|
|
cultural_acceptance = { target = scope:recipient.culture value <= 90 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# MAIN
|
|
modifier = { #Different faith, no pluralism.
|
|
desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOR = { #Of two different faiths AND the potential vassal's faith is not pluralistic.
|
|
faith = scope:actor.faith
|
|
faith = { has_doctrine = doctrine_pluralism_pluralistic }
|
|
government_has_flag = government_is_nomadic
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
}
|
|
add = {
|
|
value = -30
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_hostile_level
|
|
}
|
|
}
|
|
}
|
|
add = -30
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_evil_level
|
|
}
|
|
}
|
|
}
|
|
add = -30
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { #Different faith, pluralism.
|
|
desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
faith = scope:actor.faith
|
|
scope:actor.faith = { has_doctrine = doctrine_pluralism_pluralistic }
|
|
government_has_flag = government_is_nomadic
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
faith = { has_doctrine = doctrine_pluralism_pluralistic }
|
|
}
|
|
}
|
|
add = {
|
|
value = -15
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_hostile_level
|
|
}
|
|
}
|
|
}
|
|
add = -15
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_evil_level
|
|
}
|
|
}
|
|
}
|
|
add = -15
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { #Different faith, both have pluralism.
|
|
desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
faith = scope:actor.faith
|
|
government_has_flag = government_is_nomadic
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
scope:actor.faith = { has_doctrine = doctrine_pluralism_pluralistic }
|
|
faith = { has_doctrine = doctrine_pluralism_pluralistic }
|
|
}
|
|
}
|
|
add = {
|
|
value = -10
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_hostile_level
|
|
}
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_evil_level
|
|
}
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
}
|
|
}
|
|
modifier = { #We just fought against each other.
|
|
desc = offer_vassalization_interaction_aibehavior_recent_war_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
any_truce_holder = {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
# Ensure the truce wasn't purchased and is indeed from a war
|
|
scope:actor = {
|
|
NOT = {
|
|
has_purchased_truce_with_char = { TARGET = scope:recipient }
|
|
}
|
|
}
|
|
}
|
|
add = -40
|
|
}
|
|
modifier = { #I fought an independence war against you.
|
|
desc = offer_confederation_independence_war_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
exists = var:independence_war_former_liege
|
|
var:independence_war_former_liege = scope:actor.top_liege
|
|
}
|
|
}
|
|
add = -100
|
|
}
|
|
modifier = { # Isolationist tradition
|
|
desc = isolationist_reason
|
|
trigger = {
|
|
NOT = {
|
|
scope:actor.culture = scope:recipient.culture
|
|
}
|
|
scope:recipient.culture = {
|
|
has_cultural_tradition = tradition_isolationist
|
|
}
|
|
}
|
|
add = -50
|
|
}
|
|
modifier = { #Bankrupt
|
|
desc = bankrupt_reason
|
|
trigger = {
|
|
scope:actor.gold <= -1
|
|
}
|
|
add = -30
|
|
}
|
|
modifier = { #Wide difference in rank
|
|
desc = offer_vassalization_interaction_aibehavior_widetitletier_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
tier_difference = {
|
|
target = scope:recipient
|
|
value > 1
|
|
}
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
modifier = { # Allied
|
|
desc = offer_vassalization_interaction_aibehavior_allied_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
is_allied_to = scope:actor
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
modifier = { # Is the Rightful Liege of recipient
|
|
desc = offer_vassalization_interaction_aibehavior_rightfulliegetitleholder_tt
|
|
trigger = {
|
|
scope:actor = { is_rightful_liege_of = scope:recipient }
|
|
}
|
|
add = 20
|
|
}
|
|
modifier = { # Encircled
|
|
desc = offer_vassalization_interaction_aibehavior_encircled_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOT = {
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
NOT = {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
}
|
|
NOT = {
|
|
any_realm_county = {
|
|
is_coastal_county = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
add = 40
|
|
}
|
|
modifier = { #No adjacency
|
|
desc = offer_vassalization_interaction_aibehavior_unconnectedrealm_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOT = {
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
OR = {
|
|
this = scope:actor
|
|
AND = {
|
|
exists = scope:actor.confederation
|
|
is_member_of_confederation = scope:actor.confederation
|
|
}
|
|
AND = {
|
|
exists = scope:actor.confederation
|
|
suzerain ?= {
|
|
is_member_of_confederation = scope:actor.confederation
|
|
}
|
|
}
|
|
suzerain ?= {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value < 100000 } }
|
|
}
|
|
add = -25
|
|
}
|
|
modifier = { #Distant Realm
|
|
desc = offer_vassalization_interaction_aibehavior_distantrealm_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOT = {
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
OR = {
|
|
this = scope:actor
|
|
AND = {
|
|
exists = scope:actor.confederation
|
|
is_member_of_confederation = scope:actor.confederation
|
|
}
|
|
AND = {
|
|
exists = scope:actor.confederation
|
|
suzerain ?= {
|
|
is_member_of_confederation = scope:actor.confederation
|
|
}
|
|
}
|
|
suzerain ?= {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value >= 100000 } }
|
|
}
|
|
add = -100
|
|
}
|
|
modifier = { #Remote Realm.
|
|
desc = offer_vassalization_interaction_aibehavior_remoterealm_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOT = {
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
OR = {
|
|
this = scope:actor
|
|
AND = {
|
|
exists = scope:actor.confederation
|
|
is_member_of_confederation = scope:actor.confederation
|
|
}
|
|
AND = {
|
|
exists = scope:actor.confederation
|
|
suzerain ?= {
|
|
is_member_of_confederation = scope:actor.confederation
|
|
}
|
|
}
|
|
suzerain ?= {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value >= 200000 } }
|
|
}
|
|
add = -175
|
|
}
|
|
#Relative power
|
|
modifier = {
|
|
desc = offer_vassalization_interaction_aibehavior_power_tt
|
|
add = {
|
|
value = 1
|
|
subtract = {
|
|
value = scope:recipient.max_military_strength # Intended for recipient to use max, to avoid having vassalizations become too easy for weakened realms
|
|
divide = { value = scope:actor.top_liege.current_military_strength min = 1 }
|
|
}
|
|
multiply = 5
|
|
ceiling = yes
|
|
min = -100
|
|
}
|
|
}
|
|
#Powerful vassal opinion of you
|
|
modifier = {
|
|
desc = offer_confederation_offerer_vassal_opinion_tt
|
|
trigger = {
|
|
scope:actor.top_liege = {
|
|
number_of_powerful_vassals >= 1
|
|
}
|
|
}
|
|
|
|
add = {
|
|
value = 0
|
|
scope:actor.top_liege = {
|
|
every_powerful_vassal = {
|
|
if = {
|
|
limit = {
|
|
save_temporary_opinion_value_as = {
|
|
name = vassal_opinion
|
|
target = scope:actor.top_liege
|
|
}
|
|
}
|
|
add = scope:vassal_opinion
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
number_of_powerful_vassals > 0
|
|
}
|
|
divide = number_of_powerful_vassals
|
|
}
|
|
else = {
|
|
divide = 5
|
|
}
|
|
}
|
|
divide = 10
|
|
}
|
|
}
|
|
|
|
# Legitimacy
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
scope:actor = {
|
|
has_legitimacy_flag = very_reduced_tributarization_acceptance
|
|
}
|
|
add = -20
|
|
}
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
scope:actor = {
|
|
has_legitimacy_flag = reduced_tributarization_acceptance
|
|
}
|
|
add = -10
|
|
}
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
scope:actor = {
|
|
has_legitimacy_flag = increased_tributarization_acceptance
|
|
}
|
|
add = 10
|
|
}
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
scope:actor = {
|
|
has_legitimacy_flag = very_increased_tributarization_acceptance
|
|
}
|
|
add = 20
|
|
}
|
|
|
|
# MINOR
|
|
modifier = { #Friend modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_friend_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_friend = scope:actor
|
|
NOT = { has_relation_best_friend = scope:actor }
|
|
}
|
|
}
|
|
add = 25
|
|
}
|
|
modifier = { #Best Friend modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_best_friend_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_best_friend = scope:actor
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
modifier = { #Lover modifier.
|
|
desc = interaction_lover
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_lover = scope:actor
|
|
NOT = { has_relation_soulmate = scope:actor }
|
|
}
|
|
}
|
|
add = 25
|
|
}
|
|
modifier = { #Soulmate modifier.
|
|
desc = interaction_soulmate
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_soulmate = scope:actor
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
modifier = { #Rivalry modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_rival_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_rival = scope:actor
|
|
NOT = { has_relation_nemesis = scope:actor }
|
|
}
|
|
}
|
|
add = -200
|
|
}
|
|
modifier = { #Nemesis modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_nemesis_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_nemesis = scope:actor
|
|
}
|
|
}
|
|
add = -1000
|
|
}
|
|
|
|
modifier = { #Rivalry modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_rival_confederation_tt
|
|
trigger = {
|
|
scope:actor.confederation ?= {
|
|
any_confederation_member = {
|
|
NOT = { this = scope:actor }
|
|
has_relation_rival = scope:recipient
|
|
NOT = { has_relation_nemesis = scope:recipient }
|
|
}
|
|
}
|
|
}
|
|
add = -100
|
|
}
|
|
modifier = { #Nemesis modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_nemesis_confederation_tt
|
|
trigger = {
|
|
scope:actor.confederation ?= {
|
|
any_confederation_member = {
|
|
NOT = { this = scope:actor }
|
|
has_relation_nemesis = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
add = -500
|
|
}
|
|
modifier = { #Same Dynasty modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_dynasty_tt
|
|
trigger = {
|
|
exists = scope:actor.dynasty
|
|
exists = scope:recipient.dynasty
|
|
scope:recipient = {
|
|
dynasty = scope:actor.dynasty
|
|
}
|
|
}
|
|
add = 25
|
|
}
|
|
modifier = { #Same House modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_house_tt
|
|
trigger = {
|
|
exists = scope:actor.house
|
|
exists = scope:recipient.house
|
|
scope:recipient = {
|
|
house = scope:actor.house
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
|
|
modifier = { # Same language
|
|
add = 20
|
|
desc = speaks_same_language_interaction_reason
|
|
trigger = {
|
|
scope:actor = {
|
|
knows_language_of_culture = scope:recipient.culture
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { # Iberian Struggle, less likely for outsiders to vassalize inside
|
|
add = -35
|
|
desc = iberian_struggle_reason_reason
|
|
trigger = {
|
|
scope:actor = {
|
|
NOT = {
|
|
any_character_struggle = { is_struggle_type = iberian_struggle }
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
any_character_struggle = { is_struggle_type = iberian_struggle }
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { #Ageism modifier vs kids.
|
|
desc = offer_vassalization_interaction_aibehavior_child_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
age < 12
|
|
}
|
|
scope:recipient = {
|
|
age > 16
|
|
}
|
|
}
|
|
add = -5
|
|
}
|
|
modifier = { #Illegitimacy modifier.
|
|
desc = confederation_offerer_illegitimate_tt
|
|
trigger = {
|
|
scope:actor.top_liege = {
|
|
OR = {
|
|
AND = {
|
|
has_trait = bastard
|
|
scope:recipient = {
|
|
faith = { NOT = { has_doctrine = doctrine_bastardry_none } }
|
|
}
|
|
}
|
|
has_trait = denounced
|
|
has_trait = disinherited
|
|
}
|
|
}
|
|
}
|
|
add = -20
|
|
}
|
|
|
|
modifier = { #Claimant modifier.
|
|
desc = confederation_interaction_aibehavior_claimant_tt
|
|
trigger = {
|
|
scope:actor.top_liege.primary_title = {
|
|
scope:recipient = {
|
|
has_claim_on = prev
|
|
}
|
|
}
|
|
}
|
|
add = -20
|
|
}
|
|
|
|
modifier = { # Ambitious
|
|
desc = TAKE_THE_VOWS_AMBITIOUS
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = ambitious
|
|
}
|
|
}
|
|
add = -25
|
|
}
|
|
|
|
modifier = { # Paranoid
|
|
desc = INTERACTION_PARANOID
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = paranoid
|
|
}
|
|
}
|
|
add = -25
|
|
}
|
|
|
|
modifier = { # Arrogant
|
|
desc = INTERACTION_ARROGANT
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = arrogant
|
|
}
|
|
}
|
|
add = -25
|
|
}
|
|
|
|
modifier = { # Fickle
|
|
desc = INTERACTION_FICKLE
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = fickle
|
|
}
|
|
}
|
|
add = -15
|
|
}
|
|
|
|
modifier = { # Stubborn
|
|
desc = INTERACTION_STUBBORN
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = stubborn
|
|
}
|
|
}
|
|
add = -15
|
|
}
|
|
|
|
modifier = { # Greedy
|
|
desc = INTERACTION_GREEDY
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = greedy
|
|
}
|
|
}
|
|
add = -15
|
|
}
|
|
|
|
modifier = { # Trusting
|
|
desc = TAKE_THE_VOWS_TRUSTING
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = trusting
|
|
}
|
|
}
|
|
add = 15
|
|
}
|
|
|
|
modifier = { # Content
|
|
desc = INTERACTION_CONTENT
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = content
|
|
}
|
|
}
|
|
add = 15
|
|
}
|
|
|
|
modifier = { # Craven
|
|
desc = INTERACTION_CRAVEN
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = craven
|
|
}
|
|
}
|
|
add = 25
|
|
}
|
|
|
|
modifier = { # FP3 modifier.
|
|
desc = GENERIC_YOUR_PIETY_LEVEL_MODIFIER
|
|
trigger = { scope:actor = { any_character_struggle = { has_struggle_phase_parameter = piety_level_affects_vassalage_acceptance } } }
|
|
add = {
|
|
value = {
|
|
value = scope:actor.piety_level
|
|
subtract = low_piety_level
|
|
}
|
|
multiply = 10
|
|
}
|
|
}
|
|
|
|
# OPINION INFLUENCE
|
|
modifier = {
|
|
add = intimidated_external_reason_value
|
|
scope:recipient = {
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 1
|
|
}
|
|
}
|
|
desc = INTIMIDATED_REASON
|
|
}
|
|
modifier = {
|
|
add = cowed_external_reason_value
|
|
scope:recipient = {
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 2
|
|
}
|
|
}
|
|
desc = COWED_REASON
|
|
}
|
|
opinion_modifier = { #Compare Opinion modifier.
|
|
who = scope:recipient
|
|
opinion_target = scope:actor
|
|
multiplier = 0.35
|
|
}
|
|
|
|
# DIPLOMATIC COURT GRANDEUR BONUS
|
|
modifier = {
|
|
trigger = {
|
|
scope:actor.top_liege = {
|
|
has_royal_court = yes
|
|
has_dlc_feature = royal_court
|
|
has_court_type = court_diplomatic
|
|
court_grandeur_current_level >= 1
|
|
}
|
|
}
|
|
add = {
|
|
value = scope:actor.top_liege.court_grandeur_current
|
|
if = {
|
|
limit = { # Reduce the bonus if you are below your expected level
|
|
scope:actor.top_liege = {
|
|
court_grandeur_current_level < court_grandeur_minimum_expected_level
|
|
}
|
|
}
|
|
multiply = 0.15
|
|
}
|
|
else = {
|
|
multiply = 0.3
|
|
}
|
|
}
|
|
desc = DIPLOMATIC_COURT_ACCEPTANCE_INCREASE_REASON
|
|
}
|
|
|
|
# LOW LEGITIMACY
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -10
|
|
scope:actor = {
|
|
has_legitimacy_flag = reduced_confederation_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -25
|
|
scope:actor = {
|
|
has_legitimacy_flag = very_reduced_confederation_acceptance
|
|
}
|
|
}
|
|
|
|
# HIGH LEGITIMACY
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
add = 15
|
|
scope:actor = {
|
|
has_legitimacy_flag = increased_confederation_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
add = 40
|
|
scope:actor = {
|
|
has_legitimacy_flag = very_increased_confederation_acceptance
|
|
}
|
|
}
|
|
|
|
# HERD
|
|
modifier = {
|
|
add = 40
|
|
scope:herd_send_option = yes
|
|
desc = HERD_INTERACTION_ACCEPTANCE_SEND_OPTION
|
|
}
|
|
|
|
# PRESTIGE
|
|
modifier = {
|
|
add = 40
|
|
scope:prestige_send_option = yes
|
|
desc = PRESTIGE_INTERACTION_ACCEPTANCE_SEND_OPTION
|
|
}
|
|
|
|
#CULTURE
|
|
modifier = {
|
|
add = 50
|
|
scope:actor = {
|
|
culture = scope:recipient.culture
|
|
}
|
|
desc = "SAME_CULTURE_REASON"
|
|
}
|
|
modifier = {
|
|
add = -20
|
|
NOT = {
|
|
scope:actor = {
|
|
culture = scope:recipient.culture
|
|
}
|
|
}
|
|
scope:actor = {
|
|
NOR = {
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:recipient.culture
|
|
}
|
|
}
|
|
scope:recipient.culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:actor.culture
|
|
}
|
|
}
|
|
culture = {
|
|
has_same_culture_heritage = scope:recipient.culture
|
|
}
|
|
}
|
|
}
|
|
desc = "DIFFERENT_CULTURE_REASON"
|
|
}
|
|
|
|
#Conquerors have no interest in this
|
|
modifier = {
|
|
scope:recipient = {
|
|
has_trait = conqueror
|
|
}
|
|
add = -1000
|
|
}
|
|
modifier = {
|
|
scope:recipient = {
|
|
has_trait = greatest_of_khans
|
|
}
|
|
add = -1000
|
|
}
|
|
|
|
# Are you using a hook?
|
|
modifier = {
|
|
trigger = {
|
|
scope:hook ?= yes
|
|
}
|
|
add = 100
|
|
desc = LEGEND_HOOK_USED
|
|
}
|
|
|
|
#No neighbor scaring them
|
|
modifier = {
|
|
add = -30
|
|
desc = NO_FRIGHTENING_NEIGHBOR_REASON
|
|
scope:actor.culture = {
|
|
NOT = {
|
|
has_cultural_parameter = forming_confederations_is_easier
|
|
}
|
|
}
|
|
scope:recipient.culture = {
|
|
NOT = {
|
|
has_cultural_parameter = forming_confederations_is_easier
|
|
}
|
|
}
|
|
NOT = {
|
|
scope:recipient = {
|
|
confederation_neighboring_foe_trigger = { CHARACTER = scope:recipient }
|
|
}
|
|
}
|
|
}
|
|
|
|
#Neighbor is TERRIFYING them
|
|
modifier = {
|
|
add = 30
|
|
desc = TERRIFYING_NEIGHBOR_REASON
|
|
scope:recipient = {
|
|
save_temporary_scope_as = confederate
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
top_suzerain ?= {
|
|
is_confederation_member = no
|
|
NOR = {
|
|
this = scope:actor
|
|
this = scope:actor.top_liege
|
|
}
|
|
confederation_worthy_foe_strength_ratio_value <= 0.25
|
|
NOT = { is_allied_to = scope:recipient }
|
|
OR = {
|
|
highest_held_title_tier >= tier_kingdom
|
|
faith = {
|
|
faith_hostility_level = {
|
|
target = scope:recipient.faith
|
|
value >= faith_evil_level
|
|
}
|
|
}
|
|
has_trait = conqueror
|
|
has_trait = greatest_of_khans
|
|
any_owned_story = {
|
|
OR = {
|
|
story_type = story_greatest_of_khans
|
|
story_type = story_mongol_invasion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#You have too many confederates
|
|
#For duchy
|
|
modifier = {
|
|
add = duchy_confederation_vassals_value
|
|
desc = TOO_MANY_CONFEDERATION_VASSALS_REASON
|
|
scope:actor.confederation ?= {
|
|
any_confederation_member = {
|
|
count >= 6
|
|
highest_held_title_tier >= tier_county
|
|
}
|
|
}
|
|
}
|
|
|
|
#Another confederation of recipient's culture exists
|
|
modifier = {
|
|
add = -100
|
|
desc = ANOTHER_CULTURE_CONFEDERATION_REASON
|
|
NOT = {
|
|
scope:actor.culture = {
|
|
this = scope:recipient.culture
|
|
}
|
|
}
|
|
any_confederation = {
|
|
NOT = {
|
|
this = scope:actor.confederation
|
|
}
|
|
has_variable = confederation_culture
|
|
var:confederation_culture = scope:actor.culture
|
|
}
|
|
}
|
|
|
|
#Forcing them to join war
|
|
modifier = {
|
|
add = -100
|
|
desc = FORCED_TO_JOIN_WAR_REASON
|
|
scope:actor = {
|
|
is_at_war_as_defender = yes
|
|
any_character_war = {
|
|
primary_defender = {
|
|
OR = {
|
|
this = scope:actor
|
|
AND = {
|
|
exists = scope:actor.confederation
|
|
is_member_of_confederation = scope:actor.confederation
|
|
}
|
|
}
|
|
}
|
|
is_defender = scope:actor
|
|
NOR = {
|
|
any_war_attacker = {
|
|
is_allied_to = scope:recipient
|
|
}
|
|
any_war_attacker = {
|
|
this = scope:recipient
|
|
}
|
|
any_war_defender = {
|
|
this = scope:recipient
|
|
}
|
|
any_war_attacker = {
|
|
scope:recipient = {
|
|
has_truce = prev
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#You will be taking over their war
|
|
modifier = {
|
|
add = 100
|
|
desc = TAKING_OVER_DEFENSIVE_WAR_REASON
|
|
scope:recipient = {
|
|
is_at_war_as_defender = yes
|
|
any_character_war = {
|
|
is_war_leader = scope:recipient
|
|
is_defender = scope:recipient
|
|
NOR = {
|
|
any_war_attacker = {
|
|
is_allied_to = scope:actor
|
|
}
|
|
any_war_attacker = {
|
|
this = scope:actor
|
|
}
|
|
any_war_defender = {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
defender_war_score < 80
|
|
defender_war_score >= 0
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
add = 200
|
|
desc = TAKING_OVER_DEFENSIVE_WAR_REASON
|
|
scope:recipient = {
|
|
is_at_war_as_defender = yes
|
|
any_character_war = {
|
|
is_war_leader = scope:recipient
|
|
is_defender = scope:recipient
|
|
NOR = {
|
|
any_war_attacker = {
|
|
is_allied_to = scope:actor
|
|
}
|
|
any_war_attacker = {
|
|
this = scope:actor
|
|
}
|
|
any_war_defender = {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
defender_war_score < 0
|
|
}
|
|
}
|
|
}
|
|
|
|
#Culture is into/not into confederation
|
|
modifier = {
|
|
add = 10
|
|
desc = CONFEDERATION_ETHOS_REASON
|
|
scope:recipient.culture = {
|
|
OR = {
|
|
has_cultural_pillar = ethos_stoic
|
|
has_cultural_pillar = ethos_communal
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
add = 20
|
|
desc = CONFEDERATION_ETHOS_REASON
|
|
scope:recipient.culture = {
|
|
OR = {
|
|
has_cultural_pillar = ethos_egalitarian
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
add = -10
|
|
desc = CONFEDERATION_ETHOS_REASON
|
|
scope:recipient.culture = {
|
|
OR = {
|
|
has_cultural_pillar = ethos_bellicose
|
|
has_cultural_pillar = ethos_courtly
|
|
has_cultural_pillar = ethos_bureaucratic
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { # Herder
|
|
add = 50
|
|
desc = CONFEDERATION_HERDER_REASON
|
|
trigger = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
add = -20
|
|
desc = NOMADIC_AUTHORITY_REASON
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_realm_law = nomadic_authority_3
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
add = -50
|
|
desc = NOMADIC_AUTHORITY_REASON
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_realm_law = nomadic_authority_4
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
add = -100
|
|
desc = NOMADIC_AUTHORITY_REASON
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_realm_law = nomadic_authority_5
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
add = -20
|
|
desc = TRIBAL_AUTHORITY_REASON
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_realm_law = tribal_authority_2
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
add = -50
|
|
desc = TRIBAL_AUTHORITY_REASON
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_realm_law = tribal_authority_3
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "BARANGAY_TRADITION_REASON"
|
|
trigger = {
|
|
scope:recipient.culture = {
|
|
has_cultural_parameter = invite_to_confederation_extra_reasons
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
modifier = { #left your confederation
|
|
add = -50
|
|
desc = LEFT_YOUR_CONFEDERATION_REASON
|
|
exists = scope:actor.confederation
|
|
scope:recipient = {
|
|
has_variable = left_confederation
|
|
var:left_confederation ?= {
|
|
this = scope:actor.confederation
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
send_option = {
|
|
flag = hook
|
|
is_valid = {
|
|
scope:actor = {
|
|
has_usable_hook = scope:recipient
|
|
}
|
|
}
|
|
localization = GENERIC_SPEND_A_HOOK
|
|
}
|
|
|
|
send_option = { # Herd
|
|
is_shown = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_nomadic
|
|
exists = domicile
|
|
}
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
exists = domicile
|
|
}
|
|
scope:actor.domicile = { herd >= minor_herd_value }
|
|
}
|
|
flag = herd_send_option
|
|
localization = TRADE_HERD_FOR_BETTER_AI_ACCEPTANCE_CONFEDERATION
|
|
}
|
|
|
|
send_option = { # Prestige
|
|
is_shown = {
|
|
always = yes
|
|
}
|
|
is_valid = {
|
|
scope:actor = { prestige >= minor_prestige_value }
|
|
}
|
|
flag = prestige_send_option
|
|
localization = TRADE_PRESTIGE_FOR_BETTER_AI_ACCEPTANCE
|
|
}
|
|
|
|
send_options_exclusive = no
|
|
|
|
on_accept = {
|
|
if = {
|
|
#checking that the delay hasn't made the character invalid
|
|
limit = {
|
|
scope:recipient = {
|
|
is_playable_character = yes
|
|
}
|
|
}
|
|
scope:actor = {
|
|
if = {
|
|
limit = { has_character_flag = forming_confederation }
|
|
remove_character_flag = forming_confederation
|
|
# MPO ACHIEVEMENT Con-Fed-Up
|
|
if = {
|
|
limit = { is_ai = no }
|
|
add_achievement_global_variable_effect = {
|
|
VARIABLE = mpo_confedup_achievement_unlocked
|
|
VALUE = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
is_at_war_as_defender = yes
|
|
any_character_war = {
|
|
is_war_leader = scope:recipient
|
|
is_defender = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
every_character_war = {
|
|
limit = {
|
|
is_war_leader = scope:recipient
|
|
is_defender = scope:recipient
|
|
}
|
|
add_to_list = recipient_wars
|
|
}
|
|
}
|
|
every_in_list = {
|
|
list = recipient_wars
|
|
save_scope_as = recipient_war
|
|
primary_attacker = {
|
|
save_scope_as = attacker
|
|
}
|
|
add_defender = scope:actor
|
|
hidden_effect = {
|
|
scope:actor.confederation ?= {
|
|
every_confederation_member = {
|
|
limit = {
|
|
NOR = {
|
|
is_attacker_in_war = scope:recipient_war
|
|
is_defender_in_war = scope:recipient_war
|
|
is_at_war_with = scope:recipient
|
|
is_allied_to = scope:attacker
|
|
is_imprisoned_by = scope:recipient
|
|
is_at_war_with = scope:recipient
|
|
}
|
|
}
|
|
scope:recipient_war = { add_defender = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor.confederation ?= {
|
|
any_confederation_member = {
|
|
NOR = {
|
|
is_attacker_in_war = scope:recipient_war
|
|
is_defender_in_war = scope:recipient_war
|
|
this = scope:actor
|
|
is_at_war_with = scope:recipient
|
|
is_allied_to = scope:attacker
|
|
is_imprisoned_by = scope:recipient
|
|
is_at_war_with = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:actor = {
|
|
custom_tooltip = confederates_joining_recipient_war_tt
|
|
}
|
|
}
|
|
}
|
|
scope:actor = {
|
|
save_scope_as = confederation_offerer
|
|
}
|
|
scope:recipient = {
|
|
save_scope_as = confederation_accepter
|
|
}
|
|
#Confederation doesn't exist yet
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
is_confederation_member = no
|
|
}
|
|
}
|
|
scope:actor = {
|
|
custom_tooltip = create_confederation_tt
|
|
custom_tooltip = confederation_defensive_wars_tt
|
|
custom_tooltip = unlock_leave_confederation_interaction_tt
|
|
if = {
|
|
limit = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
add_character_modifier = {
|
|
modifier = mpo_confederation_member_modifier
|
|
years = 5
|
|
}
|
|
capital_county ?= {
|
|
change_county_fertility = major_county_fertility_level_gain
|
|
}
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
offer_confederation_accepter_effect = yes
|
|
}
|
|
}
|
|
#Confederation already exists
|
|
else = {
|
|
scope:actor.confederation = {
|
|
save_scope_as = confederation
|
|
}
|
|
show_as_tooltip = {
|
|
#If actor is top liege and offering vassaldom
|
|
scope:recipient = {
|
|
offer_confederation_accepter_effect = yes
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
add_character_modifier = {
|
|
modifier = mpo_confederation_member_modifier
|
|
years = 5
|
|
}
|
|
capital_county ?= {
|
|
change_county_fertility = major_county_fertility_level_gain
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
is_ai = no
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
custom_tooltip = confederation_raiding_attacking_tt
|
|
if = {
|
|
limit = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
custom_tooltip = confederation_restrictions_warning_tt
|
|
}
|
|
else = {
|
|
custom_tooltip = confederation_restrictions_tribe_warning_tt
|
|
}
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
if = {
|
|
limit = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
custom_tooltip = confederation_migrating_leaving_warning_tt
|
|
}
|
|
}
|
|
scope:actor = {
|
|
#Event distributor event
|
|
trigger_event = mpo_interactions_events.0001
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
is_at_war_as_defender = yes
|
|
any_character_war = {
|
|
primary_defender = {
|
|
OR = {
|
|
this = scope:actor
|
|
AND = {
|
|
exists = scope:actor.confederation
|
|
is_member_of_confederation = scope:actor.confederation
|
|
}
|
|
}
|
|
}
|
|
is_defender = scope:actor
|
|
NOR = {
|
|
any_war_attacker = {
|
|
is_allied_to = scope:recipient
|
|
}
|
|
any_war_attacker = {
|
|
this = scope:recipient
|
|
}
|
|
any_war_defender = {
|
|
this = scope:recipient
|
|
}
|
|
any_war_attacker = {
|
|
scope:recipient = {
|
|
has_truce = prev
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:actor = {
|
|
every_character_war = {
|
|
limit = {
|
|
primary_defender = {
|
|
OR = {
|
|
this = scope:actor
|
|
AND = {
|
|
exists = scope:actor.confederation
|
|
is_member_of_confederation = scope:actor.confederation
|
|
}
|
|
}
|
|
}
|
|
is_defender = scope:actor
|
|
NOR = {
|
|
any_war_attacker = {
|
|
is_allied_to = scope:recipient
|
|
}
|
|
any_war_attacker = {
|
|
this = scope:recipient
|
|
}
|
|
any_war_defender = {
|
|
this = scope:recipient
|
|
}
|
|
any_war_attacker = {
|
|
scope:recipient = {
|
|
has_truce = prev
|
|
}
|
|
}
|
|
}
|
|
}
|
|
add_defender = scope:recipient
|
|
}
|
|
#Lose legitimacy unless you're taking on a war too
|
|
if = {
|
|
limit = {
|
|
NOT = {
|
|
scope:recipient = {
|
|
is_at_war_as_defender = yes
|
|
any_character_war = {
|
|
is_war_leader = scope:recipient
|
|
is_defender = scope:recipient
|
|
NOR = {
|
|
any_war_attacker = {
|
|
is_allied_to = scope:actor
|
|
}
|
|
any_war_attacker = {
|
|
this = scope:actor
|
|
}
|
|
any_war_attacker = {
|
|
scope:actor = {
|
|
has_truce = prev
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
add_legitimacy = medium_legitimacy_loss
|
|
custom_tooltip = confederation_legitimacy_loss_war_tt
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:prestige_send_option = yes
|
|
}
|
|
scope:recipient = {
|
|
add_prestige = scope:actor.minor_prestige_value
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:herd_send_option = yes
|
|
}
|
|
scope:actor = {
|
|
pay_herd = {
|
|
target = scope:recipient
|
|
value = domicile.minor_herd_value
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
#Stop spamming players with this
|
|
if = {
|
|
limit = {
|
|
exists = scope:actor.confederation
|
|
scope:recipient = {
|
|
is_ai = no
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
set_variable = {
|
|
name = refused_confederation
|
|
value = scope:actor.confederation
|
|
years = 3
|
|
}
|
|
}
|
|
}
|
|
scope:actor = {
|
|
#letter response
|
|
trigger_event = mpo_interactions_events.0004
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
age >= 6
|
|
OR = {
|
|
AND = {
|
|
is_independent_ruler = yes
|
|
highest_held_title_tier < tier_kingdom
|
|
has_character_flag = forming_confederation
|
|
}
|
|
is_confederation_member = yes
|
|
}
|
|
OR = {
|
|
government_has_flag = government_is_tribal
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 50
|
|
|
|
modifier = {
|
|
add = 25
|
|
scope:actor = {
|
|
confederation_neighboring_foe_trigger = { CHARACTER = scope:actor }
|
|
}
|
|
}
|
|
modifier = {
|
|
add = 25
|
|
scope:recipient = {
|
|
confederation_neighboring_foe_trigger = { CHARACTER = scope:recipient }
|
|
}
|
|
}
|
|
modifier = {
|
|
add = -25
|
|
scope:recipient = {
|
|
is_at_war = yes
|
|
}
|
|
}
|
|
modifier = {
|
|
factor = 0
|
|
OR = {
|
|
#Will only throw the confederation into a war
|
|
scope:recipient = {
|
|
is_at_war = yes
|
|
NOR = {
|
|
any_character_war = { primary_defender = scope:recipient }
|
|
culture = scope:actor.culture
|
|
scope:actor.confederation ?= {
|
|
any_confederation_member = {
|
|
count >= 4
|
|
highest_held_title_tier >= tier_county
|
|
}
|
|
}
|
|
reverse_opinion = {
|
|
target = scope:actor
|
|
value >= 30
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
exists = scope:actor.confederation
|
|
scope:recipient = {
|
|
has_variable = left_confederation
|
|
var:left_confederation ?= {
|
|
this = scope:actor.confederation
|
|
}
|
|
}
|
|
}
|
|
#Recipient hasn't been asked to join this confederation already
|
|
scope:recipient = {
|
|
has_variable = refused_confederation
|
|
exists = scope:actor.confederation
|
|
var:refused_confederation = {
|
|
this = scope:actor.confederation
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
promote_divergent_or_hybrid_culture_interaction = {
|
|
category = interaction_category_diplomacy
|
|
icon = icon_culture
|
|
|
|
desc = promote_divergent_or_hybrid_culture_interaction_desc
|
|
|
|
ai_targets = {
|
|
ai_recipients = tributaries
|
|
ai_recipients = vassals
|
|
max = 10
|
|
}
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 0
|
|
duchy = 12
|
|
kingdom = 12
|
|
empire = 12
|
|
hegemony = 12
|
|
}
|
|
popup_on_receive = yes
|
|
pause_on_receive = yes
|
|
|
|
common_interaction = yes
|
|
|
|
is_shown = {
|
|
scope:actor.domicile ?= {
|
|
domicile_uses_culture_and_faith = yes
|
|
domicile_culture = scope:actor.culture
|
|
}
|
|
scope:actor.culture ?= {
|
|
OR = {
|
|
is_hybrid_culture = yes
|
|
is_divergent_culture = yes
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
trigger_if = {
|
|
limit = {
|
|
domicile ?= { domicile_uses_culture_and_faith = yes }
|
|
}
|
|
domicile.domicile_culture != scope:actor.culture
|
|
}
|
|
trigger_else = {
|
|
culture != scope:actor.culture
|
|
}
|
|
OR = {
|
|
is_tributary_of_suzerain_or_above = scope:actor
|
|
is_vassal_or_below_of = scope:actor
|
|
}
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
is_imprisoned_by = scope:actor
|
|
has_strong_hook = scope:actor
|
|
is_at_war_with = scope:actor
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = not_a_nomad_or_herder_tt
|
|
scope:recipient = {
|
|
OR = {
|
|
government_has_flag = government_is_nomadic
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
}
|
|
trigger_if = {
|
|
limit = {
|
|
exists = scope:recipient.domicile
|
|
}
|
|
custom_tooltip = {
|
|
text = not_a_parent_culture_of_domicile_tt
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:recipient.domicile.domicile_culture
|
|
}
|
|
}
|
|
}
|
|
}
|
|
trigger_else = {
|
|
custom_tooltip = {
|
|
text = not_a_parent_culture_tt
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:recipient.culture
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
greeting = positive
|
|
notification_text = PROMOTE_DIVERGENT_CULTURE_INTERACTION_NOTIFICATION
|
|
|
|
ai_accept = {
|
|
base = -50
|
|
|
|
modifier = {
|
|
add = 1000
|
|
scope:recipient = {
|
|
is_obedient_to = scope:actor
|
|
}
|
|
desc = MIGRATION_INTERACTION_OBEDIENT_ACCEPTANCE
|
|
}
|
|
|
|
opinion_modifier = {
|
|
opinion_target = scope:actor
|
|
who = scope:recipient
|
|
multiplier = 1
|
|
desc = AI_OPINION_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = 20
|
|
desc = NOMADIC_AUTHORITY_POSITIVE_REASON
|
|
trigger = {
|
|
scope:actor = {
|
|
has_realm_law = nomadic_authority_3
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = 50
|
|
desc = NOMADIC_AUTHORITY_POSITIVE_REASON
|
|
trigger = {
|
|
scope:actor = {
|
|
has_realm_law = nomadic_authority_4
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = 100
|
|
desc = NOMADIC_AUTHORITY_POSITIVE_REASON
|
|
trigger = {
|
|
scope:actor = {
|
|
has_realm_law = nomadic_authority_5
|
|
}
|
|
}
|
|
}
|
|
|
|
# HERD
|
|
modifier = {
|
|
add = 60
|
|
scope:herd_send_option = yes
|
|
desc = HERD_INTERACTION_ACCEPTANCE_SEND_OPTION
|
|
}
|
|
|
|
# PRESTIGE
|
|
modifier = {
|
|
add = 60
|
|
scope:prestige_send_option = yes
|
|
desc = PRESTIGE_INTERACTION_ACCEPTANCE_SEND_OPTION
|
|
}
|
|
|
|
# Are you using a hook?
|
|
modifier = {
|
|
trigger = {
|
|
scope:hook ?= yes
|
|
}
|
|
add = 1000
|
|
desc = LEGEND_HOOK_USED
|
|
}
|
|
|
|
modifier = { # Herder
|
|
add = 100
|
|
desc = CONFEDERATION_HERDER_REASON
|
|
trigger = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
send_option = {
|
|
flag = hook
|
|
is_valid = {
|
|
scope:actor = {
|
|
has_usable_hook = scope:recipient
|
|
}
|
|
}
|
|
localization = GENERIC_SPEND_A_HOOK
|
|
}
|
|
|
|
send_option = { # Herd
|
|
is_shown = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_nomadic
|
|
exists = domicile
|
|
}
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
exists = domicile
|
|
}
|
|
scope:actor.domicile = { herd >= minor_herd_value }
|
|
}
|
|
flag = herd_send_option
|
|
localization = TRADE_HERD_FOR_BETTER_AI_ACCEPTANCE_CONFEDERATION
|
|
}
|
|
|
|
send_option = { # Prestige
|
|
is_shown = {
|
|
always = yes
|
|
}
|
|
is_valid = {
|
|
scope:actor = { prestige >= minor_prestige_value }
|
|
}
|
|
flag = prestige_send_option
|
|
localization = TRADE_PRESTIGE_FOR_BETTER_AI_ACCEPTANCE
|
|
}
|
|
|
|
send_options_exclusive = no
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = promote_culture_accepted_tt
|
|
left_icon = scope:recipient
|
|
scope:recipient = {
|
|
if = {
|
|
limit = {
|
|
domicile ?= { domicile_uses_culture_and_faith = yes }
|
|
}
|
|
custom_tooltip = {
|
|
text = family_and_lands_convert_domicile_tt
|
|
every_held_title = {
|
|
limit = {
|
|
tier = tier_county
|
|
is_landless_type_title = no
|
|
culture = scope:recipient.domicile.domicile_culture
|
|
}
|
|
add_to_list = counties_to_convert
|
|
}
|
|
# Family at court also convert
|
|
every_close_or_extended_family_member = {
|
|
limit = {
|
|
is_courtier_of = scope:recipient
|
|
culture = scope:recipient.domicile.domicile_culture
|
|
}
|
|
add_to_list = spouses_and_family_to_convert
|
|
}
|
|
domicile = {
|
|
set_domicile_culture = scope:actor.culture
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
custom_tooltip = {
|
|
text = family_and_lands_convert_tt
|
|
every_held_title = {
|
|
limit = {
|
|
tier = tier_county
|
|
is_landless_type_title = no
|
|
culture = scope:recipient.culture
|
|
}
|
|
add_to_list = counties_to_convert
|
|
}
|
|
# Family at court also convert
|
|
every_close_or_extended_family_member = {
|
|
limit = {
|
|
is_courtier_of = scope:recipient
|
|
culture = scope:recipient.culture
|
|
}
|
|
add_to_list = spouses_and_family_to_convert
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
culture != scope:actor.culture
|
|
}
|
|
set_culture = scope:actor.culture
|
|
}
|
|
hidden_effect = {
|
|
every_in_list = {
|
|
list = counties_to_convert
|
|
set_county_culture = scope:actor.culture
|
|
}
|
|
every_in_list = {
|
|
list = spouses_and_family_to_convert
|
|
set_culture = scope:actor.culture
|
|
}
|
|
}
|
|
add_opinion = {
|
|
modifier = respect_opinion
|
|
opinion = 10
|
|
target = scope:actor
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:prestige_send_option = yes
|
|
}
|
|
scope:actor = {
|
|
add_prestige = scope:actor.minor_prestige_loss
|
|
}
|
|
scope:recipient = {
|
|
add_prestige = scope:actor.minor_prestige_value
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:herd_send_option = yes
|
|
}
|
|
scope:actor = {
|
|
pay_herd = {
|
|
target = scope:recipient
|
|
value = domicile.minor_herd_value
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:hook = yes
|
|
}
|
|
use_hook = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
scope:actor = {
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
government_has_flag = government_is_nomadic
|
|
highest_held_title_tier >= tier_duchy
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 100
|
|
|
|
modifier = {
|
|
add = -1
|
|
scope:hook ?= yes
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0
|
|
OR = {
|
|
scope:herd_send_option ?= yes
|
|
scope:prestige_send_option ?= yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
inspire_conversion_interaction = {
|
|
category = interaction_category_religion
|
|
icon = government_type_nomad
|
|
|
|
desc = inspire_conversion_interaction_desc
|
|
|
|
ai_targets = {
|
|
ai_recipients = tributaries
|
|
ai_recipients = vassals
|
|
max = 10
|
|
}
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 0
|
|
duchy = 12
|
|
kingdom = 6
|
|
empire = 6
|
|
hegemony = 6
|
|
}
|
|
cooldown_against_recipient = { years = 5 }
|
|
popup_on_receive = yes
|
|
pause_on_receive = yes
|
|
|
|
common_interaction = yes
|
|
|
|
is_shown = {
|
|
scope:actor.domicile ?= {
|
|
domicile_uses_culture_and_faith = yes
|
|
}
|
|
scope:recipient = {
|
|
OR = {
|
|
trigger_if = {
|
|
limit = {
|
|
domicile ?= { domicile_uses_culture_and_faith = yes }
|
|
}
|
|
domicile.domicile_faith != scope:actor.domicile.domicile_faith
|
|
}
|
|
faith != scope:actor.domicile.domicile_faith
|
|
faith != scope:actor.faith # Tooltip reasons
|
|
}
|
|
OR = {
|
|
is_tributary_of_suzerain_or_above = scope:actor
|
|
is_vassal_or_below_of = scope:actor
|
|
}
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
is_imprisoned_by = scope:actor
|
|
has_strong_hook = scope:actor
|
|
is_at_war_with = scope:actor
|
|
}
|
|
}
|
|
custom_description = {
|
|
text = "is_head_of_religion"
|
|
subject = scope:recipient
|
|
NOT = { scope:recipient.faith.religious_head = scope:recipient }
|
|
}
|
|
custom_description = {
|
|
text = "is_protected_via_contract"
|
|
subject = scope:recipient
|
|
NAND = { # Vassal Contract forbids meddling by liege
|
|
exists = scope:recipient.liege
|
|
scope:recipient.liege = scope:actor
|
|
scope:recipient = {
|
|
is_ruler = yes
|
|
vassal_contract_has_flag = religiously_protected
|
|
}
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = you_are_not_of_your_domicile_faith_tt
|
|
scope:recipient = {
|
|
OR = {
|
|
trigger_if = {
|
|
limit = {
|
|
domicile ?= { domicile_uses_culture_and_faith = yes }
|
|
}
|
|
domicile.domicile_faith != scope:actor.domicile.domicile_faith
|
|
}
|
|
faith != scope:actor.domicile.domicile_faith
|
|
}
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = not_a_nomad_or_herder_tt
|
|
scope:recipient = {
|
|
OR = {
|
|
government_has_flag = government_is_nomadic
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
greeting = positive
|
|
notification_text = INSPIRE_CONVERSION_INTERACTION_NOTIFICATION
|
|
|
|
ai_accept = {
|
|
base = -50
|
|
|
|
modifier = {
|
|
add = 1000
|
|
scope:recipient = {
|
|
is_obedient_to = scope:actor
|
|
}
|
|
desc = MIGRATION_INTERACTION_OBEDIENT_ACCEPTANCE
|
|
}
|
|
|
|
modifier = {
|
|
desc = ASK_FOR_CONVERSION_RECIPIENT_IS_ZEALOUS
|
|
add = -100
|
|
scope:recipient = {
|
|
has_trait = zealous
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
desc = INSPIRE_UNREFORMED_FAITH
|
|
add = -50
|
|
scope:actor.faith = { has_doctrine_parameter = unreformed }
|
|
}
|
|
|
|
modifier = {
|
|
add = 50
|
|
desc = ZEALOUS_PROSELYTIZER_REASON
|
|
trigger = {
|
|
scope:actor = {
|
|
has_perk = zealous_proselytizer_perk
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = 20
|
|
desc = NOMADIC_AUTHORITY_POSITIVE_REASON
|
|
trigger = {
|
|
scope:actor = {
|
|
has_realm_law = nomadic_authority_3
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = 50
|
|
desc = NOMADIC_AUTHORITY_POSITIVE_REASON
|
|
trigger = {
|
|
scope:actor = {
|
|
has_realm_law = nomadic_authority_4
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = 100
|
|
desc = NOMADIC_AUTHORITY_POSITIVE_REASON
|
|
trigger = {
|
|
scope:actor = {
|
|
has_realm_law = nomadic_authority_5
|
|
}
|
|
}
|
|
}
|
|
|
|
opinion_modifier = {
|
|
opinion_target = scope:actor
|
|
who = scope:recipient
|
|
multiplier = 1
|
|
desc = AI_OPINION_REASON
|
|
}
|
|
|
|
# HERD
|
|
modifier = {
|
|
add = 60
|
|
scope:herd_send_option = yes
|
|
desc = HERD_INTERACTION_ACCEPTANCE_SEND_OPTION
|
|
}
|
|
|
|
# PIETY
|
|
modifier = {
|
|
add = 60
|
|
scope:piety_send_option = yes
|
|
desc = PIETY_INTERACTION_ACCEPTANCE_SEND_OPTION
|
|
}
|
|
|
|
# Are you using a hook?
|
|
modifier = {
|
|
trigger = {
|
|
scope:hook ?= yes
|
|
}
|
|
add = 1000
|
|
desc = LEGEND_HOOK_USED
|
|
}
|
|
|
|
modifier = { # Herder
|
|
add = 100
|
|
desc = CONFEDERATION_HERDER_REASON
|
|
trigger = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
send_option = {
|
|
flag = hook
|
|
is_valid = {
|
|
scope:actor = {
|
|
has_usable_hook = scope:recipient
|
|
}
|
|
}
|
|
localization = GENERIC_SPEND_A_HOOK
|
|
}
|
|
|
|
send_option = { # Herd
|
|
is_shown = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_nomadic
|
|
exists = domicile
|
|
}
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
exists = domicile
|
|
}
|
|
scope:actor.domicile = { herd >= minor_herd_value }
|
|
}
|
|
flag = herd_send_option
|
|
localization = TRADE_HERD_FOR_BETTER_AI_ACCEPTANCE_CONFEDERATION
|
|
}
|
|
|
|
send_option = { # Piety
|
|
is_shown = {
|
|
always = yes
|
|
}
|
|
is_valid = {
|
|
scope:actor = { piety >= medium_piety_value }
|
|
}
|
|
flag = piety_send_option
|
|
localization = TRADE_PRESTIGE_FOR_BETTER_AI_ACCEPTANCE_ICON
|
|
}
|
|
|
|
send_options_exclusive = no
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = inspire_conversion_accepted_tt
|
|
left_icon = scope:recipient
|
|
scope:recipient = {
|
|
if = {
|
|
limit = {
|
|
domicile ?= { domicile_uses_culture_and_faith = yes }
|
|
}
|
|
custom_tooltip = {
|
|
text = family_and_lands_inspire_domicile_tt
|
|
every_held_title = {
|
|
limit = {
|
|
tier = tier_county
|
|
is_landless_type_title = no
|
|
culture = scope:recipient.domicile.domicile_culture
|
|
faith != scope:actor.domicile.domicile_faith
|
|
}
|
|
add_to_list = counties_to_convert
|
|
}
|
|
# Family at court also convert
|
|
every_close_or_extended_family_member = {
|
|
limit = {
|
|
is_courtier_of = scope:recipient
|
|
faith != scope:actor.domicile.domicile_faith
|
|
}
|
|
add_to_list = spouses_and_family_to_convert
|
|
}
|
|
domicile = {
|
|
if = {
|
|
limit = {
|
|
domicile_faith != scope:actor.domicile.domicile_faith
|
|
}
|
|
set_domicile_faith = scope:actor.domicile.domicile_faith
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
custom_tooltip = {
|
|
text = family_and_lands_inspire_tt
|
|
every_held_title = {
|
|
limit = {
|
|
tier = tier_county
|
|
is_landless_type_title = no
|
|
culture = scope:recipient.culture
|
|
faith != scope:actor.domicile.domicile_faith
|
|
}
|
|
add_to_list = counties_to_convert
|
|
}
|
|
# Family at court also convert
|
|
every_close_or_extended_family_member = {
|
|
limit = {
|
|
is_courtier_of = scope:recipient
|
|
faith != scope:actor.domicile.domicile_faith
|
|
}
|
|
add_to_list = spouses_and_family_to_convert
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
faith != scope:actor.domicile.domicile_faith
|
|
}
|
|
set_character_faith = scope:actor.domicile.domicile_faith
|
|
}
|
|
hidden_effect = {
|
|
every_in_list = {
|
|
list = counties_to_convert
|
|
set_county_faith = scope:actor.domicile.domicile_faith
|
|
}
|
|
every_in_list = {
|
|
list = spouses_and_family_to_convert
|
|
set_character_faith = scope:actor.domicile.domicile_faith
|
|
}
|
|
}
|
|
if = { # If you have the Religious Icon perk they become obedient
|
|
limit = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_nomadic
|
|
has_perk = religious_icon_perk
|
|
}
|
|
scope:recipient = {
|
|
obedience_target = scope:actor
|
|
is_obedient = no
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
add_opinion = {
|
|
modifier = obedience_opinion
|
|
target = scope:actor
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
add_opinion = {
|
|
modifier = respect_opinion
|
|
opinion = 10
|
|
target = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:piety_send_option = yes
|
|
}
|
|
scope:actor = {
|
|
add_piety = scope:actor.medium_piety_loss
|
|
}
|
|
scope:recipient = {
|
|
add_piety = scope:actor.medium_piety_value
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:herd_send_option = yes
|
|
}
|
|
scope:actor = {
|
|
pay_herd = {
|
|
target = scope:recipient
|
|
value = domicile.minor_herd_value
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
scope:actor = {
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
government_has_flag = government_is_nomadic
|
|
highest_held_title_tier >= tier_duchy
|
|
NOR = {
|
|
any_owned_story = {
|
|
OR = {
|
|
story_type = story_mongol_invasion
|
|
story_type = story_greatest_of_khans
|
|
|
|
}
|
|
}
|
|
mpo_has_gok_mongol_empire_trigger = yes
|
|
}
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 100
|
|
|
|
modifier = {
|
|
add = -1
|
|
scope:hook ?= yes
|
|
}
|
|
|
|
modifier = {
|
|
add = -1
|
|
scope:piety_send_option ?= yes
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0
|
|
scope:herd_send_option ?= yes
|
|
}
|
|
}
|
|
}
|
|
|
|
# Used by AI code
|
|
migration_interaction = {
|
|
interface_priority = 120
|
|
common_interaction = yes
|
|
use_diplomatic_range = no
|
|
category = interaction_debug_main
|
|
icon = herd_interaction
|
|
hidden = yes
|
|
|
|
# Keep AI reply at minimum - don't change default values
|
|
# ai_min_reply_days = 0
|
|
# ai_max_reply_days = 0
|
|
|
|
can_send_despite_rejection = yes
|
|
|
|
interface = migration
|
|
special_interaction = migration
|
|
|
|
cost = {
|
|
# Free
|
|
}
|
|
|
|
desc = migration_interaction_desc
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_nomadic
|
|
trigger_if = {
|
|
limit = {
|
|
is_ai = yes
|
|
}
|
|
is_at_war = no
|
|
}
|
|
highest_held_title_tier >= tier_county
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor = {
|
|
is_imprisoned = no
|
|
is_independent_ruler = yes
|
|
is_travelling = no
|
|
custom_tooltip = {
|
|
text = no_primary_wars_tt
|
|
NOT = {
|
|
any_character_war = {
|
|
OR = {
|
|
primary_attacker = { this = scope:actor }
|
|
primary_defender = { this = scope:actor }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = must_have_migration_situation_tt
|
|
any_character_situation = {
|
|
any_participant_group = {
|
|
participant_group_type = nomad_rulers_capital
|
|
participant_group_has_character = scope:actor
|
|
}
|
|
}
|
|
}
|
|
NOR = {
|
|
exists = involved_activity
|
|
has_truce = scope:recipient
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
is_ruler = yes
|
|
NOT = { is_allied_to = scope:actor }
|
|
}
|
|
}
|
|
|
|
# can_be_picked_title is unused for migration_interaction and controlled by code
|
|
# can_be_picked_title = {}
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
if = {
|
|
limit = {
|
|
is_ai = yes
|
|
}
|
|
set_variable = {
|
|
name = migration_cooldown
|
|
years = migration_cooldown_value
|
|
}
|
|
}
|
|
# We add a variable in case you're migrating into a Tributary, for special event Options
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
is_tributary = yes
|
|
NOT = { is_tributary_of_suzerain_or_above = scope:actor } # They're not your Tributary
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:actor.overlord }
|
|
scope:recipient.overlord != scope:actor.overlord # You're not subjects of the same ruler already
|
|
}
|
|
}
|
|
set_variable = {
|
|
name = migrating_into_tributary_var
|
|
value = scope:recipient.overlord
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
is_confederation_member = yes
|
|
}
|
|
confederation = {
|
|
save_scope_as = confederation_left
|
|
}
|
|
confederation_migration_notification_effect = yes
|
|
confederation = {
|
|
remove_confederation_member = scope:actor
|
|
}
|
|
}
|
|
# Pay what you need to pay first
|
|
if = {
|
|
limit = { scope:hook = yes }
|
|
use_hook = scope:recipient
|
|
}
|
|
if = {
|
|
limit = { scope:gold_cost = yes }
|
|
pay_short_term_gold = {
|
|
target = scope:recipient
|
|
gold = medium_gold_value
|
|
}
|
|
}
|
|
if = {
|
|
limit = { scope:herd_cost = yes }
|
|
pay_herd = {
|
|
target = scope:recipient
|
|
value = domicile.medium_herd_value
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
exists = scope:target_title
|
|
}
|
|
set_variable = {
|
|
name = migration_title
|
|
value = scope:target_title
|
|
}
|
|
}
|
|
|
|
# Save your old lands
|
|
save_scope_as = old_holder
|
|
capital_county = { save_scope_as = old_capital_county }
|
|
every_held_title = {
|
|
limit = {
|
|
tier = tier_county
|
|
exists = duchy
|
|
culture = scope:actor.domicile.domicile_culture
|
|
}
|
|
add_to_list = old_held_titles
|
|
}
|
|
|
|
# Make a new culture appear in the lands you left behind, as you're bringing _your_ people with you
|
|
# Delay the creation so that Herders have spawned
|
|
trigger_event = {
|
|
id = mpo_misc.0001
|
|
delayed = yes
|
|
}
|
|
|
|
# Let's migrate!
|
|
# If there's a Drought, your people get a morale boost
|
|
if = {
|
|
limit = {
|
|
any_character_situation = {
|
|
any_situation_sub_region = {
|
|
has_sub_region_phase_parameter = the_great_steppe_migration_morale_boost
|
|
any_situation_sub_region_participant_group = {
|
|
participant_group_type = nomad_rulers_capital
|
|
participant_group_has_character = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = mpo_the_great_steppe_migration_morale_boost_effect_tt
|
|
every_courtier_or_guest = {
|
|
add_opinion = {
|
|
target = prev
|
|
modifier = drought_migration_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
exists = scope:target_title
|
|
}
|
|
custom_tooltip = mpo_steppe_migration_migrate_to_tt
|
|
custom_tooltip = mpo_steppe_migration_lose_land_tt
|
|
every_vassal = {
|
|
limit = {
|
|
OR = {
|
|
is_ai = no
|
|
NOT = { is_obedient_to = scope:actor }
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
break_subject_contract_and_establish_tributary_effect = {
|
|
SUZERAIN = scope:actor
|
|
TRIBUTARY = this
|
|
}
|
|
}
|
|
custom_tooltip = mpo_steppe_migration_lose_vassal_tt
|
|
}
|
|
}
|
|
# Obedient vassals follow their liege
|
|
every_vassal = {
|
|
limit = {
|
|
exists = scope:target_title
|
|
is_obedient_to = scope:actor
|
|
is_ai = yes
|
|
}
|
|
save_scope_as = current_vassal
|
|
custom_tooltip = mpo_steppe_migration_keep_vassal_tt
|
|
hidden_effect = {
|
|
start_travel_plan = {
|
|
destination = scope:target_title.title_capital_county.title_province
|
|
return_trip = no
|
|
travel_with_domicile = yes
|
|
}
|
|
migration_set_obedient_vassal_effect = yes
|
|
}
|
|
}
|
|
# Player and non obedient vassals get turned into Tributaries instead
|
|
every_vassal = {
|
|
limit = {
|
|
exists = scope:target_title
|
|
OR = {
|
|
NOT = { is_obedient_to = scope:actor }
|
|
is_ai = no
|
|
}
|
|
}
|
|
break_subject_contract_and_establish_tributary_effect = { SUZERAIN = scope:actor TRIBUTARY = prev }
|
|
}
|
|
# Migration travel is handled by code
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
# We add a variable in case you're migrating into a Tributary, for special event Options
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
is_tributary = yes
|
|
suzerain != scope:actor # They're not your tributary
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:actor.overlord }
|
|
scope:recipient.overlord != scope:actor.overlord # You're not subjects of the same ruler already
|
|
}
|
|
}
|
|
scope:actor = {
|
|
set_variable = {
|
|
name = migrating_into_tributary_war_var
|
|
value = scope:recipient.overlord
|
|
}
|
|
}
|
|
}
|
|
# Migration wars are handled by code
|
|
scope:actor = {
|
|
if = {
|
|
limit = {
|
|
is_confederation_member = yes
|
|
}
|
|
confederation_migration_notification_effect = yes
|
|
confederation = {
|
|
remove_confederation_member = scope:actor
|
|
}
|
|
}
|
|
every_vassal = {
|
|
limit = {
|
|
exists = scope:target_title
|
|
is_obedient_to = scope:actor
|
|
is_ai = yes
|
|
}
|
|
save_scope_as = current_vassal
|
|
hidden_effect = {
|
|
migration_set_obedient_vassal_effect = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Use gold
|
|
send_option = {
|
|
flag = gold_cost
|
|
is_valid = {
|
|
scope:actor.gold >= scope:actor.medium_gold_value
|
|
}
|
|
localization = TRADE_GOLD_FOR_BETTER_MIGRATION_AI_ACCEPTANCE
|
|
}
|
|
|
|
# Use Herd
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
is_valid = {
|
|
scope:actor = {
|
|
domicile ?= { herd >= medium_herd_value }
|
|
}
|
|
}
|
|
flag = herd_cost
|
|
localization = TRADE_HERD_FOR_BETTER_AI_ACCEPTANCE
|
|
}
|
|
|
|
# Use hook
|
|
send_option = {
|
|
is_valid = {
|
|
scope:actor = {
|
|
has_usable_hook = scope:recipient
|
|
}
|
|
}
|
|
flag = hook
|
|
localization = GENERIC_SPEND_A_HOOK
|
|
}
|
|
should_use_extra_icon = {
|
|
scope:actor = { has_usable_hook = scope:recipient }
|
|
}
|
|
extra_icon = "gfx/interface/icons/character_interactions/hook_icon.dds"
|
|
|
|
send_options_exclusive = no
|
|
|
|
ai_accept = {
|
|
base = 0
|
|
modifier = {
|
|
add = {
|
|
value = -95
|
|
if = { #Non-Nomads should try to keep their lands
|
|
limit = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
government_has_flag = government_is_nomadic
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
}
|
|
add = -405
|
|
}
|
|
}
|
|
desc = MIGRATION_INTERACTION_BASE_ACCEPTANCE
|
|
}
|
|
modifier = { # Easier for AI to migrate peacefully since they can't send Herd/Gold
|
|
add = 50
|
|
trigger = {
|
|
scope:recipient = { is_ai = yes }
|
|
scope:actor = { is_ai = yes }
|
|
}
|
|
desc = MIGRATION_INTERACTION_ACCEPTANCE_AI
|
|
}
|
|
modifier = { # Herders move away immediately
|
|
trigger = {
|
|
scope:recipient = { government_has_flag = government_is_true_herder }
|
|
}
|
|
add = 150
|
|
desc = MIGRATION_INTERACTION_HERDER
|
|
}
|
|
modifier = { # Dukes don't really want to move
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_realm_law = nomadic_authority_3
|
|
}
|
|
}
|
|
add = -20
|
|
desc = MIGRATION_INTERACTION_HIGH_DOMINANCE
|
|
}
|
|
modifier = { # Kingdoms/Empires don't want to move
|
|
trigger = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_realm_law = nomadic_authority_4
|
|
has_realm_law = nomadic_authority_5
|
|
}
|
|
}
|
|
}
|
|
add = -100
|
|
desc = MIGRATION_INTERACTION_HIGH_DOMINANCE
|
|
}
|
|
# Are you using a hook?
|
|
modifier = {
|
|
trigger = {
|
|
scope:hook ?= yes
|
|
}
|
|
add = 100
|
|
desc = MIGRATION_HOOK_USED
|
|
}
|
|
# Are you using Gold?
|
|
modifier = {
|
|
trigger = {
|
|
scope:gold_cost ?= yes
|
|
}
|
|
add = 25
|
|
desc = TRADE_GOLD_FOR_BETTER_AI_ACCEPTANCE_TT
|
|
}
|
|
# Are you using Herd?
|
|
modifier = {
|
|
trigger = {
|
|
scope:herd_cost ?= yes
|
|
}
|
|
add = 25
|
|
desc = TRADE_HERD_FOR_BETTER_AI_ACCEPTANCE_TT
|
|
}
|
|
# Is there a Drought?
|
|
modifier = {
|
|
add = 15
|
|
any_character_situation = {
|
|
any_situation_sub_region = {
|
|
has_sub_region_phase_parameter = the_great_steppe_migration_acceptance_boost
|
|
any_situation_sub_region_participant_group = {
|
|
participant_group_type = nomad_rulers_capital
|
|
participant_group_has_character = scope:actor
|
|
}
|
|
}
|
|
}
|
|
desc = MIGRATION_INTERACTION_DROUGHT_ACCEPTANCE
|
|
}
|
|
# Recipient traits
|
|
modifier = {
|
|
add = 15
|
|
scope:recipient = {
|
|
has_trait = craven
|
|
}
|
|
desc = MIGRATION_INTERACTION_CRAVEN_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
scope:recipient = {
|
|
has_trait = content
|
|
}
|
|
desc = MIGRATION_INTERACTION_CONTENT_ACCEPTANCE
|
|
}
|
|
# Recipient's opinion
|
|
opinion_modifier = {
|
|
trigger = {
|
|
scope:actor = {
|
|
OR = {
|
|
has_realm_law = nomadic_authority_1
|
|
has_realm_law = nomadic_authority_2
|
|
}
|
|
}
|
|
}
|
|
opinion_target = scope:actor
|
|
who = scope:recipient
|
|
multiplier = 1
|
|
desc = MIGRATION_INTERACTION_OPINION_ACCEPTANCE
|
|
}
|
|
opinion_modifier = {
|
|
trigger = {
|
|
scope:actor = {
|
|
OR = {
|
|
has_realm_law = nomadic_authority_3
|
|
has_realm_law = nomadic_authority_4
|
|
has_realm_law = nomadic_authority_5
|
|
}
|
|
}
|
|
}
|
|
opinion_target = scope:actor
|
|
who = scope:recipient
|
|
multiplier = 0.5
|
|
desc = MIGRATION_INTERACTION_OPINION_ACCEPTANCE
|
|
}
|
|
# Recipient's relation to you
|
|
modifier = {
|
|
scope:recipient = {
|
|
has_relation_friend = scope:actor
|
|
}
|
|
add = {
|
|
value = 25
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
OR = {
|
|
has_realm_law = nomadic_authority_1
|
|
has_realm_law = nomadic_authority_2
|
|
}
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
}
|
|
desc = MIGRATION_INTERACTION_FRIEND_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
scope:recipient = {
|
|
has_relation_blood_brother = scope:actor
|
|
}
|
|
add = {
|
|
value = 50
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
OR = {
|
|
has_realm_law = nomadic_authority_1
|
|
has_realm_law = nomadic_authority_2
|
|
}
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
}
|
|
desc = MIGRATION_INTERACTION_BLOOD_BROTHERS_ACCEPTANCE
|
|
}
|
|
# Obedience
|
|
modifier = {
|
|
scope:recipient = {
|
|
is_obedient_to = scope:actor
|
|
}
|
|
add = {
|
|
value = 50
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
OR = {
|
|
has_realm_law = nomadic_authority_1
|
|
has_realm_law = nomadic_authority_2
|
|
}
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
}
|
|
desc = MIGRATION_INTERACTION_OBEDIENT_ACCEPTANCE
|
|
}
|
|
# Relative Prestige
|
|
modifier = {
|
|
add = 10
|
|
prestige_level >= scope:recipient.prestige_level
|
|
desc = MIGRATION_INTERACTION_PRESTIGE_ACCEPTANCE
|
|
}
|
|
# Relative Prowess
|
|
modifier = {
|
|
add = 10
|
|
prowess >= scope:recipient.prowess
|
|
desc = MIGRATION_INTERACTION_PROWESS_ACCEPTANCE
|
|
}
|
|
# Relative Herd
|
|
modifier = {
|
|
trigger_if = {
|
|
exists = scope:recipient.domicile # Herders won't have a domicile
|
|
}
|
|
add = 25
|
|
domicile.herd >= scope:recipient.domicile.herd
|
|
desc = MIGRATION_INTERACTION_HERD_ACCEPTANCE
|
|
}
|
|
# Gurkhan
|
|
modifier = {
|
|
add = -1000
|
|
exists = situation:the_great_steppe
|
|
scope:recipient = {
|
|
this = situation:the_great_steppe.situation_top_herd
|
|
}
|
|
desc = MIGRATION_INTERACTION_GURKHAN_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 50
|
|
trigger_if = {
|
|
exists = situation:the_great_steppe
|
|
}
|
|
scope:actor = {
|
|
this = situation:the_great_steppe.situation_top_herd
|
|
}
|
|
desc = MIGRATION_INTERACTION_GURKHAN_ACTOR_ACCEPTANCE
|
|
}
|
|
# Dread
|
|
modifier = {
|
|
add = intimidated_reason_value
|
|
scope:recipient = {
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 1
|
|
}
|
|
}
|
|
desc = INTIMIDATED_REASON
|
|
}
|
|
modifier = {
|
|
add = cowed_reason_value
|
|
scope:recipient = {
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 2
|
|
}
|
|
}
|
|
desc = COWED_REASON
|
|
}
|
|
|
|
# Events
|
|
modifier = {
|
|
add = 5
|
|
scope:actor = { has_character_modifier = mpo_elder_flock_migrate_modifier }
|
|
desc = MIGRATION_INTERACTION_ELDER_FLOCK_ACCEPTANCE
|
|
}
|
|
|
|
#Confederations refuse to be intimidated and don't want to leave
|
|
modifier = {
|
|
add = -300
|
|
desc = CONFEDERATION_MEMBER_REASON
|
|
scope:recipient = {
|
|
is_confederation_member = yes
|
|
}
|
|
}
|
|
# High-tier Ruler
|
|
modifier = {
|
|
add = -500
|
|
exists = scope:recipient.primary_title
|
|
scope:recipient.primary_title.tier >= tier_kingdom
|
|
desc = MIGRATION_INTERACTION_KING_ACCEPTANCE
|
|
}
|
|
|
|
# Recently settled nomads don't want to accept
|
|
modifier = {
|
|
add = -1000
|
|
desc = JUST_SETTLED_REASON
|
|
scope:recipient = {
|
|
is_tributary = yes
|
|
NOT = { government_has_flag = government_is_true_herder }
|
|
capital_county = {
|
|
title_held_years < 3
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_instant_response = yes
|
|
|
|
# Available scopes and values
|
|
#
|
|
# scope:actor - migrating ruler
|
|
# scope:recipient - ruler who decides if migration is peaceful or hostile
|
|
# scope:target - main migration target - can be of any tier
|
|
#
|
|
# Additional scopes provided from code
|
|
#
|
|
# scope:domain - County or duchy that migrating ruler aims to get as their new domain.
|
|
# Can be the same as scope:target, if county of duchy-level migration
|
|
#
|
|
# scope:domain_fertility - Total current fertility of scope:domain - what actor is going to receive
|
|
# scope:target_fertility - Total current fertility of main migration target
|
|
#
|
|
# scope:defenders - Script list of all rulers who will be part of migration war if declined.
|
|
# It includes all rulers who are going to lose land - holder of main migration target and all rulers
|
|
# who has land in scope:domain
|
|
#
|
|
# scope:defender_power - combined max military power of all members in scope:defenders.
|
|
# It's power - i.e. scaled by regiments attack and toughness
|
|
#
|
|
ai_will_do = {
|
|
base = 0
|
|
|
|
# More likely to migrate to people you don't like
|
|
opinion_modifier = {
|
|
opinion_target = scope:recipient
|
|
multiplier = -0.25
|
|
}
|
|
|
|
# Bold, energetic characters are more likely to migrate
|
|
ai_value_modifier = {
|
|
ai_boldness = 0.25
|
|
ai_energy = 0.25
|
|
}
|
|
|
|
# We substract your Fertility
|
|
modifier = {
|
|
add = {
|
|
value = scope:actor.current_domain_fertility
|
|
multiply = -1
|
|
}
|
|
}
|
|
|
|
# And we add the target realm's Fertility
|
|
modifier = {
|
|
add = scope:domain_fertility
|
|
}
|
|
|
|
# Less likely to migrate into players
|
|
modifier = {
|
|
add = -25
|
|
scope:recipient = { is_ai = no }
|
|
}
|
|
|
|
# Can you win this war?
|
|
modifier = {
|
|
scope:actor.current_military_strength >= scope:defender_power
|
|
add = 25
|
|
}
|
|
modifier = {
|
|
scope:actor.current_military_strength <= scope:defender_power
|
|
add = -75
|
|
}
|
|
|
|
# You're moving from a bad season to a good one
|
|
modifier = {
|
|
has_bad_season_nomadic_capital_character_trigger = { CHARACTER = scope:actor }
|
|
has_good_season_nomadic_capital_character_trigger = { CHARACTER = scope:recipient }
|
|
add = 10
|
|
}
|
|
|
|
# There's a very bad season in your area
|
|
modifier = {
|
|
scope:actor = {
|
|
any_character_situation = {
|
|
any_situation_sub_region = {
|
|
sub_region_current_phase = situation_steppe_havsarsan_zud_season
|
|
situation_sub_region_has_county = scope:actor.capital_county
|
|
}
|
|
}
|
|
}
|
|
add = 100
|
|
}
|
|
|
|
# You are landless and your herd is starving
|
|
modifier = {
|
|
scope:actor = {
|
|
is_landed = no
|
|
}
|
|
add = 50
|
|
}
|
|
|
|
# The recipient is a Herder
|
|
modifier = {
|
|
scope:recipient = { government_has_flag = government_is_true_herder }
|
|
add = 10
|
|
}
|
|
|
|
# The recipient is a Steppe Admin
|
|
modifier = {
|
|
scope:recipient = { government_has_flag = government_is_steppe_admin }
|
|
add = -25
|
|
}
|
|
|
|
# You have a hook on the recipient
|
|
modifier = {
|
|
scope:actor = {
|
|
has_usable_hook = scope:recipient
|
|
}
|
|
add = 25
|
|
}
|
|
|
|
# More likely to migrate with Low Dominance
|
|
modifier = {
|
|
scope:actor = {
|
|
OR = {
|
|
has_realm_law = nomadic_authority_1
|
|
has_realm_law = nomadic_authority_2
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
modifier = {
|
|
exists = scope:target
|
|
scope:actor = {
|
|
scope:target.tier >= tier_kingdom
|
|
primary_title.tier < tier_kingdom
|
|
OR = {
|
|
has_realm_law = nomadic_authority_3
|
|
has_realm_law = nomadic_authority_4
|
|
has_realm_law = nomadic_authority_5
|
|
}
|
|
}
|
|
add = 100
|
|
}
|
|
modifier = {
|
|
exists = scope:target
|
|
scope:actor = {
|
|
scope:target.tier >= tier_empire
|
|
primary_title.tier < tier_empire
|
|
OR = {
|
|
has_realm_law = nomadic_authority_4
|
|
has_realm_law = nomadic_authority_5
|
|
}
|
|
}
|
|
add = 100
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
primary_title.tier >= tier_kingdom
|
|
has_realm_law = nomadic_authority_3
|
|
}
|
|
add = -90
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
primary_title.tier >= tier_empire
|
|
OR = {
|
|
has_realm_law = nomadic_authority_4
|
|
has_realm_law = nomadic_authority_5
|
|
}
|
|
}
|
|
add = -90
|
|
}
|
|
|
|
#You're in a confederation... you don't want to go anywhere
|
|
modifier = {
|
|
scope:actor = {
|
|
is_confederation_member = yes
|
|
has_character_flag = new_confederate
|
|
}
|
|
add = -100
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
is_confederation_member = yes
|
|
NOT = { has_character_flag = new_confederate }
|
|
}
|
|
add = -30
|
|
}
|
|
#The recipient is bordering your confederation (so you can rejoin)
|
|
modifier = {
|
|
scope:actor = {
|
|
is_confederation_member = yes
|
|
}
|
|
scope:recipient = {
|
|
highest_held_title_tier <= tier_duchy
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
OR = {
|
|
is_member_of_confederation = scope:actor.confederation
|
|
suzerain ?= {
|
|
is_member_of_confederation = scope:actor.confederation
|
|
}
|
|
}
|
|
}
|
|
}
|
|
add = 30
|
|
}
|
|
|
|
# Don't migrate somewhere where there's a disease or Havsaran Zud
|
|
modifier = {
|
|
factor = 0
|
|
scope:domain = {
|
|
OR = {
|
|
AND = {
|
|
tier = tier_county
|
|
any_county_situation_sub_region = {
|
|
sub_region_current_phase = situation_steppe_havsarsan_zud_season
|
|
}
|
|
}
|
|
AND = {
|
|
tier = tier_county
|
|
any_county_province = {
|
|
any_province_epidemic = {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# Don't migrate into a domain that contains a vassal player
|
|
modifier = {
|
|
scope:domain = {
|
|
any_in_de_facto_hierarchy = {
|
|
holder ?= {
|
|
is_ai = no
|
|
is_independent_ruler = no
|
|
}
|
|
}
|
|
}
|
|
factor = 0
|
|
}
|
|
# Avoid bad wars
|
|
modifier = {
|
|
factor = 0.01
|
|
scope:defender_power >= scope:actor.current_military_strength
|
|
}
|
|
# Don't be suicidal
|
|
modifier = {
|
|
factor = 0
|
|
scope:defender_power >= scope:actor.twice_current_military_strength
|
|
}
|
|
modifier = {
|
|
factor = 0
|
|
scope:recipient.current_military_strength > scope:actor.current_military_strength
|
|
}
|
|
modifier = {
|
|
factor = 0
|
|
scope:defender_power >= 10
|
|
scope:actor.current_military_strength <= 500
|
|
}
|
|
# Do not downgrade your title
|
|
modifier = {
|
|
factor = 0
|
|
exists = scope:target
|
|
scope:target.tier < scope:actor.primary_title.tier
|
|
}
|
|
# Tributaries want to stick close to their suzerain
|
|
modifier = {
|
|
factor = 0
|
|
scope:actor = {
|
|
is_tributary = yes
|
|
}
|
|
scope:domain = {
|
|
NOR = {
|
|
holder ?= {
|
|
is_tributary_of_suzerain_or_above = scope:actor.suzerain
|
|
}
|
|
AND = {
|
|
tier = tier_county
|
|
any_neighboring_county = {
|
|
holder ?= {
|
|
is_tributary_of_suzerain_or_above = scope:actor.suzerain
|
|
}
|
|
}
|
|
}
|
|
any_in_de_jure_hierarchy = {
|
|
tier = tier_county
|
|
OR = {
|
|
holder ?= {
|
|
is_tributary_of_suzerain_or_above = scope:actor.suzerain
|
|
}
|
|
any_neighboring_county = {
|
|
holder ?= {
|
|
is_tributary_of_suzerain_or_above = scope:actor.suzerain
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# Small AI nomads should only migrate to same-culture areas or right next to them, as everything else looks really bad.
|
|
modifier = {
|
|
factor = 0
|
|
scope:actor = {
|
|
any_character_situation = {
|
|
this = situation:the_great_steppe
|
|
}
|
|
has_realm_law = nomadic_authority_1
|
|
# If the character's culture does not exist outside of their realm, allow lenient migrations (otherwise small cultures get stuck)
|
|
culture = {
|
|
any_culture_county = {
|
|
holder.top_liege != scope:actor
|
|
}
|
|
}
|
|
}
|
|
scope:domain = {
|
|
NOR = {
|
|
AND = {
|
|
tier = tier_county
|
|
save_temporary_scope_as = county_culture_check
|
|
OR = {
|
|
culture = scope:actor.culture
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:actor.culture
|
|
}
|
|
}
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:county_culture_check.culture
|
|
}
|
|
}
|
|
any_neighboring_county = {
|
|
OR = {
|
|
culture = scope:actor.culture
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:actor.culture
|
|
}
|
|
}
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:county_culture_check.culture
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
any_in_de_jure_hierarchy = {
|
|
tier = tier_county
|
|
save_temporary_scope_as = county_culture_check
|
|
OR = {
|
|
culture = scope:actor.culture
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:actor.culture
|
|
}
|
|
}
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:county_culture_check.culture
|
|
}
|
|
}
|
|
any_neighboring_county = {
|
|
OR = {
|
|
culture = scope:actor.culture
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:actor.culture
|
|
}
|
|
}
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:county_culture_check.culture
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# Slightly bigger nomads are also allowed to migrate into non-nomadic lands
|
|
modifier = {
|
|
factor = 0
|
|
scope:actor = {
|
|
any_character_situation = {
|
|
this = situation:the_great_steppe
|
|
}
|
|
has_realm_law = nomadic_authority_2
|
|
# If the character's culture does not exist outside of their realm, allow lenient migrations (otherwise small cultures get stuck)
|
|
culture = {
|
|
any_culture_county = {
|
|
holder.top_liege != scope:actor
|
|
}
|
|
}
|
|
}
|
|
scope:domain = {
|
|
NOR = {
|
|
AND = {
|
|
tier = tier_county
|
|
save_temporary_scope_as = county_culture_check
|
|
OR = {
|
|
culture = scope:actor.culture
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:actor.culture
|
|
}
|
|
}
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:county_culture_check.culture
|
|
}
|
|
}
|
|
any_neighboring_county = {
|
|
OR = {
|
|
culture = scope:actor.culture
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:actor.culture
|
|
}
|
|
}
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:county_culture_check.culture
|
|
}
|
|
}
|
|
}
|
|
}
|
|
title_province = {
|
|
NOR = {
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
}
|
|
any_in_de_jure_hierarchy = {
|
|
tier = tier_county
|
|
save_temporary_scope_as = county_culture_check
|
|
OR = {
|
|
culture = scope:actor.culture
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:actor.culture
|
|
}
|
|
}
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:county_culture_check.culture
|
|
}
|
|
}
|
|
any_neighboring_county = {
|
|
OR = {
|
|
culture = scope:actor.culture
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:actor.culture
|
|
}
|
|
}
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:county_culture_check.culture
|
|
}
|
|
}
|
|
}
|
|
}
|
|
title_province = {
|
|
NOR = {
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# Big nomads move more freely, and the small ones will follow because they'll spread their culture there!
|
|
modifier = {
|
|
factor = 0
|
|
scope:actor = {
|
|
any_character_situation = {
|
|
this = situation:the_great_steppe
|
|
}
|
|
NOR = {
|
|
has_realm_law = nomadic_authority_1
|
|
has_realm_law = nomadic_authority_2
|
|
}
|
|
# If the character's culture does not exist outside of their realm, allow lenient migrations (otherwise small cultures get stuck)
|
|
culture = {
|
|
any_culture_county = {
|
|
holder.top_liege != scope:actor
|
|
}
|
|
}
|
|
capital_county = {
|
|
any_county_situation_sub_region = {
|
|
NOR = {
|
|
sub_region_current_phase = situation_steppe_havsarsan_zud_season
|
|
sub_region_current_phase = situation_steppe_severe_drought_season
|
|
sub_region_current_phase = situation_steppe_cold_zud_season
|
|
sub_region_current_phase = situation_steppe_white_zud_season
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:domain = {
|
|
NOR = {
|
|
AND = {
|
|
tier = tier_county
|
|
save_temporary_scope_as = county_culture_check
|
|
OR = {
|
|
culture = scope:actor.culture
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:actor.culture
|
|
}
|
|
}
|
|
culture = {
|
|
has_same_culture_heritage = scope:actor.culture
|
|
}
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
has_same_culture_heritage = scope:actor.culture
|
|
}
|
|
}
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:county_culture_check.culture
|
|
}
|
|
}
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
has_same_culture_heritage = scope:county_culture_check.culture
|
|
}
|
|
}
|
|
any_neighboring_county = {
|
|
OR = {
|
|
culture = scope:actor.culture
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:actor.culture
|
|
}
|
|
}
|
|
culture = {
|
|
has_same_culture_heritage = scope:actor.culture
|
|
}
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
has_same_culture_heritage = scope:actor.culture
|
|
}
|
|
}
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:county_culture_check.culture
|
|
}
|
|
}
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
has_same_culture_heritage = scope:county_culture_check.culture
|
|
}
|
|
}
|
|
}
|
|
}
|
|
title_province = {
|
|
NOR = {
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
}
|
|
any_in_de_jure_hierarchy = {
|
|
tier = tier_county
|
|
save_temporary_scope_as = county_culture_check
|
|
OR = {
|
|
culture = scope:actor.culture
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:actor.culture
|
|
}
|
|
}
|
|
culture = {
|
|
has_same_culture_heritage = scope:actor.culture
|
|
}
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
has_same_culture_heritage = scope:actor.culture
|
|
}
|
|
}
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:county_culture_check.culture
|
|
}
|
|
}
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
has_same_culture_heritage = scope:county_culture_check.culture
|
|
}
|
|
}
|
|
any_neighboring_county = {
|
|
OR = {
|
|
culture = scope:actor.culture
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:actor.culture
|
|
}
|
|
}
|
|
culture = {
|
|
has_same_culture_heritage = scope:actor.culture
|
|
}
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
has_same_culture_heritage = scope:actor.culture
|
|
}
|
|
}
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:county_culture_check.culture
|
|
}
|
|
}
|
|
scope:actor.culture = {
|
|
any_parent_culture_or_above = {
|
|
has_same_culture_heritage = scope:county_culture_check.culture
|
|
}
|
|
}
|
|
}
|
|
}
|
|
title_province = {
|
|
NOR = {
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# PAIZA
|
|
mpo_interaction_grant_paiza = {
|
|
category = interaction_category_diplomacy
|
|
icon = paiza_interaction
|
|
common_interaction = no
|
|
|
|
desc = mpo_interaction_grant_paiza_desc
|
|
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 24
|
|
duchy = 24
|
|
kingdom = 8
|
|
empire = 8
|
|
hegemony = 8
|
|
}
|
|
popup_on_receive = yes
|
|
pause_on_receive = yes
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
has_character_flag = established_paiza_system
|
|
exists = situation:the_great_steppe
|
|
any_character_situation = {
|
|
this = situation:the_great_steppe
|
|
}
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
OR = {
|
|
is_vassal_of = scope:actor
|
|
is_tributary_of = scope:actor
|
|
is_courtier_of = scope:actor
|
|
}
|
|
}
|
|
}
|
|
|
|
cooldown_against_recipient = { years = 10 }
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor = {
|
|
NOT = {
|
|
is_at_war_with = scope:recipient
|
|
}
|
|
is_independent_ruler = yes
|
|
custom_tooltip = {
|
|
text = mpo_character_interaction_gurkhan
|
|
is_gurkhan = yes
|
|
}
|
|
custom_tooltip = {
|
|
text = mpo_character_interaction_established_paiza_system
|
|
has_character_flag = established_paiza_system
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
custom_tooltip = {
|
|
text = mpo_character_interaction_obedient
|
|
NOT = { is_obedient_to = scope:actor }
|
|
}
|
|
NOT = {
|
|
any_character_artifact = {
|
|
scope:recipient = { can_benefit_from_artifact = prev }
|
|
scope:artifact.var:paiza_patron ?= { is_gurkhan = yes }
|
|
scope:artifact.var:paiza_patron ?= scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
cost = {
|
|
prestige = major_prestige_value
|
|
gold = 25
|
|
}
|
|
|
|
on_accept = {
|
|
make_obedient_recipient_to_actor_effect = yes
|
|
scope:recipient = {
|
|
mpo_create_paiza_artifact_effect = {
|
|
PATRON = scope:actor
|
|
GRANTEE = scope:recipient
|
|
}
|
|
custom_tooltip = mpo_establish_paiza_system_decision.paiza_abuse_authority_unlocked
|
|
custom_tooltip = mpo_establish_paiza_system_decision.leverage_khan_authority_unlocked
|
|
}
|
|
scope:actor = {
|
|
switch = {
|
|
trigger = scope:recipient.primary_title.tier
|
|
tier_empire = {
|
|
add_legitimacy_effect = { LEGITIMACY = massive_legitimacy_gain }
|
|
}
|
|
tier_kingdom = {
|
|
add_legitimacy_effect = { LEGITIMACY = major_legitimacy_gain }
|
|
}
|
|
tier_duchy = {
|
|
add_legitimacy_effect = { LEGITIMACY = medium_legitimacy_gain }
|
|
}
|
|
tier_county = {
|
|
add_legitimacy_effect = { LEGITIMACY = miniscule_legitimacy_gain }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_targets = {
|
|
ai_recipients = vassals
|
|
ai_recipients = tributaries
|
|
}
|
|
|
|
|
|
ai_accept = {
|
|
base = -20
|
|
opinion_modifier = {
|
|
opinion_target = scope:actor
|
|
who = scope:recipient
|
|
multiplier = 1
|
|
}
|
|
modifier = {
|
|
add = intimidated_external_reason_value
|
|
scope:recipient = {
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 1
|
|
}
|
|
}
|
|
desc = INTIMIDATED_REASON
|
|
}
|
|
modifier = {
|
|
add = cowed_external_reason_value
|
|
scope:recipient = {
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 2
|
|
}
|
|
}
|
|
desc = COWED_REASON
|
|
}
|
|
modifier = {
|
|
add = 40
|
|
scope:recipient = {
|
|
ai_honor < 0
|
|
ai_greed > 0
|
|
}
|
|
desc = will_abuse_paiza_reason
|
|
}
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 10
|
|
|
|
modifier = {
|
|
factor = 10
|
|
scope:recipient = {
|
|
is_ai = no
|
|
OR = {
|
|
is_vassal_of = scope:actor
|
|
is_tributary_of = scope:actor
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
factor = 10
|
|
scope:recipient = {
|
|
NOT = {
|
|
is_obedient_to = root
|
|
}
|
|
OR = {
|
|
is_powerful_vassal = yes
|
|
is_kurultai_trigger = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
mpo_interaction_ask_for_paiza = {
|
|
category = interaction_category_diplomacy
|
|
icon = paiza_interaction
|
|
common_interaction = no
|
|
|
|
desc = mpo_interaction_ask_for_paiza_desc
|
|
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 0
|
|
duchy = 12
|
|
kingdom = 12
|
|
empire = 0
|
|
hegemony = 0
|
|
}
|
|
popup_on_receive = yes
|
|
pause_on_receive = yes
|
|
|
|
is_shown = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
has_character_flag = established_paiza_system
|
|
}
|
|
scope:actor = {
|
|
OR = {
|
|
government_has_flag = government_is_nomadic
|
|
top_liege = scope:recipient
|
|
}
|
|
NOT = {
|
|
is_at_war_with = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
|
|
cooldown_against_recipient = { years = 10 }
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:recipient = {
|
|
is_independent_ruler = yes
|
|
is_gurkhan = yes
|
|
}
|
|
scope:actor = {
|
|
custom_tooltip = {
|
|
text = already_received_a_paiza
|
|
NOT = {
|
|
any_character_artifact = {
|
|
scope:actor = { can_benefit_from_artifact = prev }
|
|
var:paiza_patron ?= scope:recipient
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
send_options_exclusive = no
|
|
send_option = {
|
|
flag = hook
|
|
is_valid = {
|
|
scope:actor = {
|
|
has_usable_hook = scope:recipient
|
|
}
|
|
}
|
|
localization = GENERIC_SPEND_A_HOOK
|
|
}
|
|
|
|
send_option = { # Herd
|
|
is_shown = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_nomadic
|
|
exists = domicile
|
|
}
|
|
}
|
|
is_valid = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_nomadic
|
|
exists = domicile
|
|
}
|
|
scope:actor.domicile = { herd >= scope:recipient.domicile.massive_herd_value }
|
|
}
|
|
flag = herd_send_option
|
|
localization = TRADE_HERD_FOR_BETTER_AI_ACCEPTANCE_CONFEDERATION
|
|
}
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
make_obedient_recipient_to_actor_effect = yes
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = mpo_decisions_events.paiza_granted
|
|
mpo_create_paiza_artifact_effect = {
|
|
PATRON = scope:recipient
|
|
GRANTEE = scope:actor
|
|
}
|
|
left_icon = scope:recipient
|
|
right_icon = scope:created_paiza
|
|
}
|
|
custom_tooltip = mpo_establish_paiza_system_decision.paiza_abuse_authority_unlocked
|
|
custom_tooltip = mpo_establish_paiza_system_decision.leverage_khan_authority_unlocked
|
|
if = {
|
|
limit = {
|
|
scope:herd_send_option = yes
|
|
}
|
|
pay_herd = {
|
|
target = scope:recipient
|
|
value = scope:recipient.domicile.massive_herd_value
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:hook = yes
|
|
}
|
|
use_hook = scope:recipient
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
switch = {
|
|
trigger = scope:actor.primary_title.tier
|
|
tier_empire = {
|
|
add_legitimacy_effect = { LEGITIMACY = massive_legitimacy_gain }
|
|
}
|
|
tier_kingdom = {
|
|
add_legitimacy_effect = { LEGITIMACY = major_legitimacy_gain }
|
|
}
|
|
tier_duchy = {
|
|
add_legitimacy_effect = { LEGITIMACY = medium_legitimacy_gain }
|
|
}
|
|
tier_county = {
|
|
add_legitimacy_effect = { LEGITIMACY = miniscule_legitimacy_gain }
|
|
}
|
|
}
|
|
add_character_flag = {
|
|
flag = paiza_recently_granted
|
|
years = 2
|
|
}
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
scope:recipient = {
|
|
add_character_flag = {
|
|
flag = paiza_recently_granted
|
|
years = 4
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_accept = {
|
|
base = -60
|
|
modifier = {
|
|
add = intimidated_external_reason_value
|
|
scope:recipient = {
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 1
|
|
}
|
|
}
|
|
desc = INTIMIDATED_REASON
|
|
}
|
|
modifier = {
|
|
add = cowed_external_reason_value
|
|
scope:recipient = {
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 2
|
|
}
|
|
}
|
|
desc = COWED_REASON
|
|
}
|
|
modifier = {
|
|
add = 40
|
|
scope:actor = {
|
|
NOT = {
|
|
is_obedient_to = root
|
|
}
|
|
OR = {
|
|
is_powerful_vassal = yes
|
|
is_kurultai_trigger = yes
|
|
}
|
|
}
|
|
desc = AI_NOT_OBEDIENT_REVERSE_REASON
|
|
}
|
|
modifier = {
|
|
add = -20
|
|
scope:actor = {
|
|
is_obedient_to = scope:recipient
|
|
}
|
|
desc = AI_OBEDIENT_REVERSE_REASON
|
|
}
|
|
modifier = {
|
|
scope:recipient = {
|
|
has_relation_blood_brother = scope:actor
|
|
}
|
|
add = 100
|
|
desc = MIGRATION_INTERACTION_BLOOD_BROTHERS_ACCEPTANCE
|
|
}
|
|
|
|
modifier = {
|
|
trigger = {
|
|
scope:hook ?= yes
|
|
}
|
|
add = 60
|
|
desc = LEGEND_HOOK_USED
|
|
}
|
|
|
|
modifier = {
|
|
add = 20
|
|
trigger = {
|
|
scope:herd_send_option ?= yes
|
|
}
|
|
desc = HERD_INTERACTION_ACCEPTANCE_SEND_OPTION
|
|
}
|
|
|
|
opinion_modifier = {
|
|
opinion_target = scope:actor
|
|
who = scope:recipient
|
|
multiplier = 0.4
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
is_adult = yes
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 0
|
|
|
|
modifier = {
|
|
add = 100
|
|
scope:recipient = {
|
|
has_relation_blood_brother = scope:actor
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = {
|
|
value = scope:actor.ai_greed
|
|
multiply = 0.1
|
|
}
|
|
scope:actor = {
|
|
ai_greed > 0
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = {
|
|
value = scope:actor.primary_title.tier
|
|
subtract = scope:recipient.primary_title.tier
|
|
multiply = 10
|
|
max = 0
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = {
|
|
value = scope:actor.ai_honor
|
|
multiply = 0.1
|
|
}
|
|
scope:actor = {
|
|
ai_honor > 0
|
|
}
|
|
}
|
|
|
|
ai_value_modifier = {
|
|
ai_boldness = -0.4
|
|
ai_honor = 0.1
|
|
ai_greed = 0.1
|
|
ai_energy = -0.2
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0
|
|
scope:recipient = {
|
|
has_character_flag = paiza_recently_granted
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_targets = {
|
|
ai_recipients = liege
|
|
ai_recipients = suzerain
|
|
}
|
|
}
|
|
|
|
mpo_interaction_leverage_khan_authority = {
|
|
category = interaction_category_hostile
|
|
icon = paiza_interaction
|
|
common_interaction = no
|
|
|
|
desc = mpo_interaction_leverage_khan_authority_desc
|
|
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 24
|
|
duchy = 8
|
|
kingdom = 8
|
|
empire = 8
|
|
hegemony = 8
|
|
}
|
|
popup_on_receive = yes
|
|
pause_on_receive = yes
|
|
|
|
cooldown = { months = 6 }
|
|
|
|
cooldown_against_recipient = { years = 10 }
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
any_character_artifact = {
|
|
scope:actor = { can_benefit_from_artifact = prev }
|
|
has_variable = paiza_patron
|
|
OR = {
|
|
scope:recipient.top_liege = var:paiza_patron
|
|
scope:recipient = {
|
|
is_independent_ruler = yes
|
|
primary_title.tier < scope:actor.primary_title.tier
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
scope:recipient = {
|
|
liege = {
|
|
OR = {
|
|
government_has_flag = government_is_nomadic
|
|
scope:recipient.top_liege = prev.var:paiza_patron
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
NOT = {
|
|
has_character_flag = established_paiza_system
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
is_ai = yes
|
|
is_gurkhan = no
|
|
age >= 12
|
|
NOT = {
|
|
has_character_flag = established_paiza_system
|
|
}
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor = {
|
|
custom_tooltip = {
|
|
text = mpo_abuse_authority_paiza_decision.no_more_paiza_abuse
|
|
NOT = { has_character_flag = no_more_paiza_abuse }
|
|
}
|
|
custom_tooltip = {
|
|
text = mpo_abuse_authority_paiza_decision.paiza_patron_not_topdog
|
|
any_character_artifact = {
|
|
scope:actor = { can_benefit_from_artifact = prev }
|
|
exists = var:paiza_patron
|
|
var:paiza_patron ?= {
|
|
is_gurkhan = yes
|
|
}
|
|
}
|
|
}
|
|
NOT = {
|
|
is_at_war_with = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_accept = {
|
|
base = -60
|
|
modifier = {
|
|
add = 10
|
|
has_trait = craven
|
|
desc = BLACKMAIL_INTERACTION_CRAVEN_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = -20
|
|
has_trait = arrogant
|
|
desc = BLACKMAIL_INTERACTION_ARROGANT_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = -20
|
|
has_trait = brave
|
|
desc = BLACKMAIL_INTERACTION_BRAVE_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = -20
|
|
has_trait = paranoid
|
|
desc = BLACKMAIL_INTERACTION_PARANOID_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = scope:recipient.intrigue
|
|
multiply = -2
|
|
}
|
|
desc = INDEBT_GUEST_INTRIGUE_RECIPIENT
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = scope:actor.intrigue
|
|
}
|
|
desc = INDEBT_GUEST_INTRIGUE_ACTOR
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = scope:actor.dread
|
|
divide = 2
|
|
}
|
|
scope:actor.dread >= 2
|
|
desc = offer_vassalization_interaction_aibehavior_dreaded_tt
|
|
}
|
|
opinion_modifier = {
|
|
opinion_target = situation:the_great_steppe.situation_top_herd
|
|
who = scope:recipient
|
|
multiplier = 0.4
|
|
}
|
|
opinion_modifier = {
|
|
opinion_target = scope:actor
|
|
who = scope:recipient
|
|
multiplier = 0.2
|
|
}
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = -40
|
|
modifier = {
|
|
add = 40
|
|
domicile ?= { herd <= twenty_percent_herd_value }
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
domicile ?= { herd <= sixty_percent_herd_value }
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
domicile ?= { herd <= eighty_percent_herd_value }
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = greedy
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = wrathful
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = ambitious
|
|
}
|
|
modifier = {
|
|
add = -10
|
|
var:paiza_patron ?= {
|
|
domicile ?= { has_domicile_parameter = nomad_yurt_paiza_abuse_less_likely_lvl_1 }
|
|
}
|
|
}
|
|
modifier = {
|
|
add = -20
|
|
var:paiza_patron ?= {
|
|
domicile ?= { has_domicile_parameter = nomad_yurt_paiza_abuse_less_likely_lvl_2 }
|
|
}
|
|
}
|
|
modifier = {
|
|
add = -35
|
|
var:paiza_patron ?= {
|
|
domicile ?= { has_domicile_parameter = nomad_yurt_paiza_abuse_less_likely_lvl_3 }
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_targets = {
|
|
ai_recipients = peer_vassals
|
|
}
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
left_icon = scope:recipient
|
|
right_icon = situation:the_great_steppe.situation_top_herd
|
|
title = mpo_interaction_leverage_khan_authority
|
|
make_obedient_recipient_to_actor_effect = yes
|
|
scope:recipient = {
|
|
pay_short_term_gold = {
|
|
target = scope:actor
|
|
gold = {
|
|
value = current_gold_value
|
|
divide = 2
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
government_has_flag = government_is_nomadic
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
pay_herd = {
|
|
target = scope:actor
|
|
value = {
|
|
value = domicile.herd
|
|
multiply = 0.5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
OR = {
|
|
is_landed = yes
|
|
}
|
|
}
|
|
}
|
|
add_prestige = medium_prestige_value
|
|
}
|
|
else = {
|
|
add_prestige = minor_prestige_value
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
government_has_flag = government_is_nomadic
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
pay_herd = {
|
|
target = scope:actor
|
|
value = {
|
|
value = domicile.herd
|
|
multiply = 0.5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scope:actor = {
|
|
random_character_artifact = {
|
|
limit = {
|
|
scope:actor = { can_benefit_from_artifact = prev }
|
|
has_variable = paiza_patron
|
|
}
|
|
var:paiza_patron = {
|
|
scope:actor = {
|
|
mpo_paiza_abuse_counter_effect = {
|
|
PAIZA_PATRON = prev
|
|
PAIZA_ABUSER = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Interrogate
|
|
# Used in the Ill-Advised event chain - nomad_events.0001 - 0099
|
|
interrogate_interaction = {
|
|
category = interaction_category_hostile
|
|
icon = icon_scheme_challenge_status
|
|
common_interaction = no
|
|
|
|
auto_accept = yes
|
|
|
|
desc = interrogate_interaction_desc
|
|
|
|
is_shown = {
|
|
scope:actor = { has_variable = can_interrogate_var }
|
|
scope:recipient = {
|
|
is_target_in_variable_list = {
|
|
name = valid_to_interrogate_var
|
|
target = scope:actor
|
|
}
|
|
}
|
|
# And Achmach is still around
|
|
scope:actor = {
|
|
any_courtier_or_guest = {
|
|
has_variable = achmach_loyalty
|
|
}
|
|
}
|
|
}
|
|
|
|
cooldown_against_recipient = { years = 10 }
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
custom_tooltip = interrogate_interaction_tt
|
|
trigger_event = nomad_events.0006
|
|
}
|
|
scope:recipient = {
|
|
custom_tooltip = interrogate_interaction_recipient_tt
|
|
}
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 100
|
|
}
|
|
}
|
|
|
|
# Steal Herd
|
|
steal_herd_interaction = {
|
|
icon = icon_scheme_steal_herd
|
|
interface_priority = 90
|
|
common_interaction = yes
|
|
category = interaction_category_hostile
|
|
|
|
send_name = START_SCHEME
|
|
|
|
scheme = steal_herd
|
|
ignores_pending_interaction_block = yes
|
|
|
|
is_shown = {
|
|
NOT = { scope:recipient = scope:actor }
|
|
scope:actor = {
|
|
is_landed = yes
|
|
is_adult = yes
|
|
is_imprisoned = no
|
|
government_has_flag = government_is_nomadic
|
|
in_diplomatic_range = scope:recipient
|
|
trigger_if = {
|
|
limit = {
|
|
is_ai = yes
|
|
}
|
|
NOR = {
|
|
is_tributary_of_suzerain_or_above = scope:recipient
|
|
is_vassal_or_below_of = scope:recipient
|
|
scope:recipient = {
|
|
is_ai = no
|
|
any_targeting_scheme = {
|
|
scheme_type = steal_herd
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
is_landed = yes
|
|
is_adult = yes
|
|
government_has_flag = government_is_nomadic
|
|
highest_held_title_tier >= tier_county
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor = {
|
|
can_start_scheme = {
|
|
type = steal_herd
|
|
target_character = scope:recipient
|
|
}
|
|
}
|
|
scope:recipient = { NOT = { has_strong_hook = scope:actor } }
|
|
trigger_if = {
|
|
limit = { scope:actor = { has_variable = no_scheming_allowed_var } }
|
|
custom_tooltip = {
|
|
text = no_scheming_allowed_var_tt
|
|
scope:actor.var:no_scheming_allowed_var != scope:recipient
|
|
}
|
|
}
|
|
}
|
|
|
|
desc = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:actor = {
|
|
can_start_scheme = {
|
|
type = steal_herd
|
|
target_character = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
desc = scheme_interaction_tt_steal_herd_approved
|
|
}
|
|
}
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
stress_impact = {
|
|
compassionate = minor_stress_impact_gain
|
|
honest = minor_stress_impact_gain
|
|
craven = minor_stress_impact_gain
|
|
content = minor_stress_impact_gain
|
|
}
|
|
send_interface_toast = {
|
|
type = event_toast_effect_neutral
|
|
title = steal_herd_interaction_notification
|
|
|
|
left_icon = scope:actor
|
|
right_icon = scope:recipient
|
|
|
|
begin_scheme_basic_effect = {
|
|
SCHEME_TYPE = steal_herd
|
|
TARGET_TYPE = target_character
|
|
TARGET_SCOPE = scope:recipient
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
domicile ?= { herd >= ninety_percent_herd_value }
|
|
}
|
|
custom_tooltip = steal_herd_interaction_tt.warning
|
|
}
|
|
scope:new_scheme ?= {
|
|
if = {
|
|
limit = {
|
|
scope:steal_herd_low ?= yes
|
|
}
|
|
set_variable = steal_herd_low
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:steal_herd_normal ?= yes
|
|
}
|
|
set_variable = steal_herd_normal
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:steal_herd_high ?= yes
|
|
}
|
|
set_variable = steal_herd_high
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
prestige >= medium_prestige_value # In case they fail
|
|
trigger_if = {
|
|
limit = {
|
|
NOT = {
|
|
domicile ?= {
|
|
has_domicile_building_or_higher = steal_herd_yurt_01
|
|
}
|
|
}
|
|
}
|
|
ai_honor <= 50
|
|
}
|
|
NOR = {
|
|
scheme_generic_ai_blocker_trigger = yes
|
|
primary_title = {
|
|
is_mercenary_company = yes
|
|
}
|
|
}
|
|
}
|
|
|
|
auto_accept = yes
|
|
|
|
ai_will_do = {
|
|
base = -30
|
|
|
|
modifier = {
|
|
add = 20
|
|
domicile ?= { herd <= twenty_percent_herd_value }
|
|
}
|
|
|
|
modifier = {
|
|
add = 20
|
|
domicile ?= { herd <= sixty_percent_herd_value }
|
|
}
|
|
|
|
modifier = {
|
|
add = {
|
|
value = intrigue
|
|
multiply = 3
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = {
|
|
value = ai_greed
|
|
multiply = -1
|
|
}
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = ai_honor
|
|
multiply = -0.25
|
|
}
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
has_trait = schemer
|
|
}
|
|
add = 60
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
has_relation_rival = scope:recipient
|
|
}
|
|
add = 60
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
has_relation_nemesis = scope:recipient
|
|
}
|
|
add = 150
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
opinion = {
|
|
target = scope:recipient
|
|
value >= low_positive_opinion
|
|
}
|
|
ai_greed <= high_positive_ai_value
|
|
}
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_relation_friend = scope:actor
|
|
has_relation_lover = scope:actor
|
|
is_obedient_to = scope:actor
|
|
}
|
|
}
|
|
factor = 0
|
|
}
|
|
start_hostile_scheme_ai_base_modifiers = yes # At the end so Cowed can block it completely
|
|
}
|
|
|
|
ai_targets = {
|
|
ai_recipients = scripted_relations
|
|
ai_recipients = neighboring_rulers
|
|
ai_recipients = peer_vassals
|
|
}
|
|
|
|
# Options
|
|
options_heading = schemes.t.herd_amount
|
|
send_options_exclusive = yes
|
|
## Steal a little herd
|
|
send_option = {
|
|
flag = steal_herd_low
|
|
current_description = steal_herd_interaction.tt.low
|
|
}
|
|
## Steal a moderate amount of herd
|
|
send_option = {
|
|
flag = steal_herd_normal
|
|
current_description = steal_herd_interaction.tt.normal
|
|
}
|
|
## Steal a lot of herd
|
|
send_option = {
|
|
flag = steal_herd_high
|
|
current_description = steal_herd_interaction.tt.high
|
|
}
|
|
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 72
|
|
duchy = 36
|
|
kingdom = 36
|
|
empire = 36
|
|
hegemony = 36
|
|
}
|
|
}
|
|
|
|
mpo_ask_for_herd_interaction = {
|
|
category = interaction_category_hostile
|
|
icon = demand_herd
|
|
desc = mpo_ask_for_herd_interaction_desc
|
|
interface_priority = 80
|
|
common_interaction = yes
|
|
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 92
|
|
duchy = 12
|
|
kingdom = 8
|
|
empire = 8
|
|
hegemony = 8
|
|
}
|
|
popup_on_receive = yes
|
|
pause_on_receive = yes
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_nomadic
|
|
exists = domicile
|
|
}
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
exists = domicile
|
|
is_ai = yes
|
|
}
|
|
NOT = {
|
|
scope:actor = {
|
|
has_variable = had_mpo_temujin_flavor_0020
|
|
var:had_mpo_temujin_flavor_0020 ?= scope:recipient
|
|
}
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor = {
|
|
NOT = {
|
|
is_imprisoned = yes
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
NOR = {
|
|
is_imprisoned = yes
|
|
is_at_war = yes
|
|
is_a_faction_member = yes
|
|
custom_description = {
|
|
text = ask_for_herd_not_enough_herd
|
|
domicile.herd < scope:recipient.domicile.ask_for_herd_base_value
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
primary_title.tier >= tier_duchy
|
|
}
|
|
|
|
send_option = {
|
|
is_valid = {
|
|
scope:actor = {
|
|
has_usable_hook = scope:recipient
|
|
}
|
|
}
|
|
flag = hook
|
|
localization = GENERIC_SPEND_A_HOOK
|
|
}
|
|
|
|
send_option = {
|
|
is_valid = {
|
|
scope:recipient.domicile ?= {
|
|
herd > ask_for_herd_double_value
|
|
}
|
|
scope:recipient = {
|
|
NOT = {
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
}
|
|
flag = more_herd
|
|
localization = ASK_FOR_HERD_MORE_HERD
|
|
}
|
|
|
|
send_options_exclusive = no
|
|
|
|
ai_accept = {
|
|
base = -100
|
|
modifier = {
|
|
trigger = {
|
|
scope:more_herd ?= yes
|
|
}
|
|
add = -100
|
|
desc = ASK_FOR_HERD_MORE_HERD_REASON
|
|
}
|
|
modifier = {
|
|
trigger = {
|
|
scope:hook ?= yes
|
|
}
|
|
add = 1000
|
|
desc = MIGRATION_HOOK_USED
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = ai_boldness
|
|
multiply = -1
|
|
divide = 4
|
|
}
|
|
NOT = { ai_boldness = 0 }
|
|
desc = ARTIFACT_BOLDNESS_REASON
|
|
}
|
|
opinion_modifier = {
|
|
who = scope:recipient
|
|
opinion_target = scope:actor
|
|
desc = AI_OPINION_REASON
|
|
}
|
|
bp2_hostage_dread_modifier = yes
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 0
|
|
modifier = {
|
|
add = 20
|
|
scope:actor.domicile.herd < scope:actor.domicile.ask_for_herd_double_value
|
|
}
|
|
}
|
|
|
|
cooldown_against_recipient = { years = 6 }
|
|
|
|
ai_targets = {
|
|
ai_recipients = vassals
|
|
ai_recipients = neighboring_rulers
|
|
ai_recipients = peer_vassals
|
|
}
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = ask_for_herd_toast
|
|
left_icon = scope:recipient
|
|
scope:recipient = {
|
|
# How much Herd are you getting?
|
|
if = {
|
|
limit = {
|
|
scope:more_herd ?= yes
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = { has_variable = nomad_events_0210_herd_var }
|
|
}
|
|
pay_herd = {
|
|
target = scope:actor
|
|
value = {
|
|
value = scope:recipient.domicile.ask_for_herd_double_value
|
|
multiply = 2
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
pay_herd = {
|
|
target = scope:actor
|
|
value = scope:recipient.domicile.ask_for_herd_double_value
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
if = {
|
|
limit = {
|
|
scope:actor = { has_variable = nomad_events_0210_herd_var }
|
|
}
|
|
pay_herd = {
|
|
target = scope:actor
|
|
value = {
|
|
value = scope:recipient.domicile.ask_for_herd_base_value
|
|
multiply = 2
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
pay_herd = {
|
|
target = scope:actor
|
|
value = scope:recipient.domicile.ask_for_herd_base_value
|
|
}
|
|
}
|
|
}
|
|
# Extra Herd during the Abundant Grazing season
|
|
if = {
|
|
limit = {
|
|
any_character_situation = {
|
|
any_situation_sub_region = {
|
|
has_sub_region_phase_parameter = the_great_steppe_demand_herd_higher_rate
|
|
any_situation_sub_region_participant_group = {
|
|
participant_group_type = nomad_rulers_capital
|
|
participant_group_has_character = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = ask_for_herd_abundant_grazing_tt
|
|
pay_herd = {
|
|
target = scope:actor
|
|
value = scope:recipient.domicile.ask_for_herd_half_value
|
|
}
|
|
}
|
|
}
|
|
# Now opinion maluses
|
|
if = {
|
|
limit = {
|
|
scope:more_herd ?= yes
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
has_dread_level_towards = { target = scope:actor level = 2 }
|
|
}
|
|
}
|
|
custom_tooltip = ask_for_herd_dread_effect_tt
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = ask_for_herd_opinion
|
|
opinion = -20
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
has_dread_level_towards = { target = scope:actor level = 1 }
|
|
}
|
|
}
|
|
custom_tooltip = ask_for_herd_dread_effect_tt
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = ask_for_herd_opinion
|
|
opinion = -40
|
|
}
|
|
}
|
|
else = {
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = ask_for_herd_opinion
|
|
opinion = -60
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
if = {
|
|
limit = { #herders cannot give you more herd
|
|
scope:recipient = {
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
scope:actor = {
|
|
domicile ?= { change_herd = major_herd_gain }
|
|
add_legitimacy = minor_legitimacy_loss
|
|
}
|
|
scope:recipient.primary_title = {
|
|
custom_tooltip = ask_for_herd_herder_recipient_tt
|
|
add_county_modifier = {
|
|
modifier = ask_for_herd_county_depleted_modifier
|
|
years = 12
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
has_dread_level_towards = { target = scope:actor level = 2 }
|
|
}
|
|
}
|
|
custom_tooltip = ask_for_herd_dread_effect_tt
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = ask_for_herd_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
has_dread_level_towards = { target = scope:actor level = 1 }
|
|
}
|
|
}
|
|
custom_tooltip = ask_for_herd_dread_effect_tt
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = ask_for_herd_opinion
|
|
opinion = -20
|
|
}
|
|
}
|
|
else = {
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = ask_for_herd_opinion
|
|
opinion = -40
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
### Demand Obedience
|
|
mpo_demand_obedience_interaction = {
|
|
category = interaction_category_vassal
|
|
icon = demand_obedience
|
|
desc = mpo_demand_obedience_interaction_desc
|
|
interface_priority = 80
|
|
common_interaction = yes
|
|
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 24
|
|
duchy = 4
|
|
kingdom = 4
|
|
empire = 4
|
|
hegemony = 4
|
|
}
|
|
popup_on_receive = yes
|
|
pause_on_receive = yes
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
government_allows = obedience
|
|
}
|
|
scope:recipient = {
|
|
is_ai = yes
|
|
obedience_target ?= scope:actor
|
|
is_obedient = no
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor = {
|
|
age >= 16
|
|
is_physically_able = yes
|
|
NOT = {
|
|
is_at_war_with = scope:recipient
|
|
}
|
|
}
|
|
scope:actor = { dread >= medium_dread_value }
|
|
}
|
|
|
|
cost = { prestige = minor_prestige_value }
|
|
|
|
ai_potential = {
|
|
government_allows = obedience
|
|
primary_title.tier >= tier_duchy
|
|
}
|
|
|
|
send_option = {
|
|
is_valid = {
|
|
scope:actor = {
|
|
has_usable_hook = scope:recipient
|
|
}
|
|
}
|
|
flag = hook
|
|
localization = GENERIC_SPEND_A_HOOK
|
|
}
|
|
|
|
send_options_exclusive = no
|
|
|
|
ai_accept = {
|
|
base = -50
|
|
modifier = {
|
|
trigger = {
|
|
scope:hook ?= yes
|
|
}
|
|
add = 100
|
|
desc = MIGRATION_HOOK_USED
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
scope:actor = {
|
|
OR = {
|
|
has_realm_law = nomadic_authority_2
|
|
has_realm_law = meritocratic_bureaucracy_1
|
|
}
|
|
}
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_DOMINANCE_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 20
|
|
scope:actor = {
|
|
OR = {
|
|
has_realm_law = nomadic_authority_3
|
|
has_realm_law = meritocratic_bureaucracy_2
|
|
}
|
|
}
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_DOMINANCE_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 50
|
|
scope:actor = {
|
|
OR = {
|
|
has_realm_law = nomadic_authority_4
|
|
has_realm_law = meritocratic_bureaucracy_3
|
|
}
|
|
}
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_DOMINANCE_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 100
|
|
scope:actor = { has_realm_law = nomadic_authority_5 }
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_DOMINANCE_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = -20
|
|
scope:actor = { legitimacy_level = 1 }
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
scope:actor = { legitimacy_level = 3 }
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 25
|
|
scope:actor = { legitimacy_level = 4 }
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 50
|
|
scope:actor = { legitimacy_level = 5 }
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = ai_boldness
|
|
multiply = -1
|
|
divide = 4
|
|
}
|
|
NOT = { ai_boldness = 0 }
|
|
desc = ARTIFACT_BOLDNESS_REASON
|
|
}
|
|
modifier = {
|
|
add = -20
|
|
scope:recipient = {
|
|
has_trait = brave
|
|
}
|
|
desc = BLACKMAIL_INTERACTION_BRAVE_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = -50
|
|
scope:recipient = {
|
|
has_trait = arrogant
|
|
}
|
|
desc = BLACKMAIL_INTERACTION_ARROGANT_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = -50
|
|
scope:recipient = {
|
|
has_trait = disloyal
|
|
}
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_DISLOYAL_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
scope:recipient = {
|
|
has_trait = craven
|
|
}
|
|
desc = BLACKMAIL_INTERACTION_CRAVEN_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
scope:recipient = {
|
|
has_trait = content
|
|
}
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_CONTENT_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 25
|
|
any_character_situation = {
|
|
any_situation_sub_region = {
|
|
has_sub_region_phase_parameter = the_great_steppe_easier_obedience
|
|
any_situation_sub_region_participant_group = {
|
|
participant_group_type = nomad_rulers_capital
|
|
participant_group_has_character = scope:actor
|
|
}
|
|
}
|
|
}
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_ZUD_ACCEPTANCE
|
|
}
|
|
bp2_hostage_dread_modifier = yes
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 0
|
|
modifier = {
|
|
scope:actor = { dread >= major_dread_value }
|
|
add = 25
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
any_councillor = {
|
|
is_kurultai_trigger = yes
|
|
NOT = { is_obedient_to = prev }
|
|
}
|
|
}
|
|
add = 25
|
|
}
|
|
}
|
|
|
|
cooldown_against_recipient = { years = 10 }
|
|
|
|
ai_targets = {
|
|
ai_recipients = vassals
|
|
ai_recipients = courtiers
|
|
ai_recipients = tributaries
|
|
chance = 0.25
|
|
}
|
|
|
|
ai_targets = { # They will try to get a Stable Succession
|
|
ai_recipients = councillors
|
|
}
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = mpo_demand_obedience_interaction_toast
|
|
left_icon = scope:recipient
|
|
scope:recipient = {
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = obedience_opinion
|
|
}
|
|
}
|
|
# Belligerent Vassal Opinion
|
|
if = {
|
|
limit = {
|
|
any_vassal = { has_vassal_stance = belligerent }
|
|
}
|
|
every_vassal = {
|
|
limit = { has_vassal_stance = belligerent }
|
|
custom = every_belligerent_vassal
|
|
add_opinion = {
|
|
modifier = impressed_opinion
|
|
target = scope:actor
|
|
opinion = 15
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
##################
|
|
# Refill MaA
|
|
##################
|
|
|
|
refill_maa_nomad_interaction = {
|
|
icon = icon_soldier_survivor
|
|
category = interaction_debug_main
|
|
interface_priority = 20
|
|
common_interaction = yes
|
|
desc = refill_maa_nomad_interaction_desc
|
|
cooldown = { months = 6 }
|
|
hidden = yes
|
|
|
|
is_shown = {
|
|
has_mpo_dlc_trigger = yes
|
|
scope:actor = {
|
|
is_nomad = yes
|
|
government_allows = conditional_maa_refill
|
|
}
|
|
scope:recipient = scope:actor
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
custom_tooltip = {
|
|
text = reinforce_soldiers_any_regiment_tt
|
|
scope:actor.maa_regiments_count >= 1
|
|
}
|
|
custom_tooltip = {
|
|
text = reinforce_soldiers_unfull_regiment_tt
|
|
scope:actor = {
|
|
any_maa_regiment = { maa_regiments_valid_to_refill_trigger = yes }
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = SUPPLY_LOSS_AT_SEA
|
|
scope:actor = { any_laamp_portion_at_sea_trigger = no }
|
|
}
|
|
custom_tooltip = {
|
|
text = REFILL_MAA_AT_WAR_TT
|
|
scope:actor = {
|
|
NOT = {
|
|
any_army = {
|
|
location.county.holder = {
|
|
OR = {
|
|
is_at_war_with = scope:actor
|
|
any_liege_or_above = { is_at_war_with = scope:actor }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
send_options_exclusive = yes
|
|
|
|
send_option = {
|
|
flag = herd
|
|
localization = reinforce_soldiers_option_herd
|
|
is_valid = {
|
|
scope:actor.domicile.herd >= 5
|
|
}
|
|
}
|
|
|
|
send_option = {
|
|
flag = gold
|
|
localization = reinforce_soldiers_option_gold
|
|
is_valid = {
|
|
scope:actor.gold >= 5
|
|
}
|
|
}
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
switch = {
|
|
trigger = yes
|
|
scope:gold = {
|
|
if = {
|
|
limit = { gold > replenishable_troops_payed_gold_tt_value }
|
|
custom_tooltip = refill_maa_gold_full_tt
|
|
}
|
|
else = { custom_tooltip = refill_maa_gold_tt }
|
|
custom_tooltip = refill_maa_gold_cost_tt
|
|
refill_maa_with_gold_effect = yes
|
|
}
|
|
scope:herd = {
|
|
if = {
|
|
limit = { domicile.herd > replenishable_troops_payed_herd_tt_value }
|
|
custom_tooltip = refill_maa_herd_full_tt
|
|
}
|
|
else = { custom_tooltip = refill_maa_herd_tt }
|
|
custom_tooltip = refill_maa_herd_cost_tt
|
|
refill_maa_with_herd_effect = yes
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
is_ai = yes
|
|
NOR = {
|
|
scope:gold = yes
|
|
scope:herd = yes
|
|
}
|
|
}
|
|
refill_maa_with_herd_effect = yes
|
|
}
|
|
custom_tooltip = martial_skill_discount_tt
|
|
}
|
|
}
|
|
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 3
|
|
duchy = 1
|
|
kingdom = 1
|
|
empire = 1
|
|
hegemony = 1
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = self
|
|
}
|
|
ai_potential = {
|
|
is_nomad = yes
|
|
government_allows = conditional_maa_refill
|
|
any_maa_regiment = { maa_current_troops_count < maa_max_troops_count }
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 100
|
|
}
|
|
}
|
|
|
|
### Commander Trait interaction for guardians
|
|
# actor = guardian
|
|
# recipient = ward/hostage
|
|
# This has to be update every time a new Commander trait is added to the game, otherwise you won't be able to pass it down
|
|
influence_child_commander_interaction = {
|
|
category = interaction_category_friendly
|
|
common_interaction = yes
|
|
interface_priority = 60
|
|
icon = child
|
|
ai_maybe = yes
|
|
ai_min_reply_days = 4
|
|
ai_max_reply_days = 9
|
|
can_send_despite_rejection = yes
|
|
popup_on_receive = yes
|
|
pause_on_receive = yes
|
|
|
|
pre_answer_maybe_key = ANSWER_MIGHT_SUCCEED
|
|
pre_answer_no_key = ANSWER_CANT_SUCCEED
|
|
pre_answer_yes_key = ANSWER_WILL_SUCCEED
|
|
pre_answer_maybe_breakdown_key = ANSWER_SUM_CHANCE
|
|
|
|
desc = influence_child_commander_interaction_desc
|
|
|
|
is_shown = { #any ai ward/hostage
|
|
has_mpo_dlc_trigger = yes
|
|
scope:recipient = {
|
|
is_ai = yes
|
|
is_adult = no
|
|
OR = {
|
|
scope:actor = { has_relation_ward = scope:recipient }
|
|
is_hostage_of = scope:actor
|
|
}
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:recipient = { #be old enough to fight and don't have any commander traits yet
|
|
age >= 10
|
|
number_of_commander_traits <= 1
|
|
#checking all trait individually through the set scope in order to catch if all of your traits are either the same or opposite
|
|
trigger_if = {
|
|
limit = {
|
|
scope:actor = {
|
|
number_of_commander_traits > 0
|
|
}
|
|
}
|
|
custom_description = {
|
|
text = influence_child_commander_interaction_all_same_traits
|
|
switch = {
|
|
trigger = yes
|
|
scope:logistician = {
|
|
scope:recipient = { NOT = { has_trait = logistician } }
|
|
}
|
|
scope:military_engineer = {
|
|
scope:recipient = { NOT = { has_trait = military_engineer } }
|
|
}
|
|
scope:aggressive_attacker = {
|
|
scope:recipient = { NOT = { has_trait = aggressive_attacker } }
|
|
}
|
|
scope:unyielding_defender = {
|
|
scope:recipient = { NOT = { has_trait = unyielding_defender } }
|
|
}
|
|
scope:forder = {
|
|
scope:recipient = { NOT = { has_trait = forder } }
|
|
}
|
|
scope:flexible_leader = {
|
|
scope:recipient = { NOT = { has_trait = flexible_leader } }
|
|
}
|
|
scope:desert_warrior = {
|
|
scope:recipient = { NOT = { has_trait = desert_warrior } }
|
|
}
|
|
scope:jungle_stalker = {
|
|
scope:recipient = { NOT = { has_trait = jungle_stalker } }
|
|
}
|
|
scope:reaver = {
|
|
scope:recipient = { NOT = { has_trait = reaver } }
|
|
}
|
|
scope:reckless = {
|
|
scope:recipient = { NOT = { has_trait = reckless } }
|
|
}
|
|
scope:holy_warrior = {
|
|
scope:recipient = { NOT = { has_trait = holy_warrior } }
|
|
}
|
|
scope:open_terrain_expert = {
|
|
scope:recipient = { NOT = { has_trait = open_terrain_expert } }
|
|
}
|
|
scope:rough_terrain_expert = {
|
|
scope:recipient = { NOT = { has_trait = rough_terrain_expert } }
|
|
}
|
|
scope:forest_fighter = {
|
|
scope:recipient = { NOT = { has_trait = forest_fighter } }
|
|
}
|
|
scope:cautious_leader = {
|
|
scope:recipient = { NOT = { has_trait = cautious_leader } }
|
|
}
|
|
scope:organizer = {
|
|
scope:recipient = { NOT = { has_trait = organizer } }
|
|
}
|
|
scope:winter_soldier = {
|
|
scope:recipient = { NOT = { has_trait = winter_soldier } }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
is_physically_able = yes
|
|
}
|
|
scope:actor = {
|
|
is_adult = yes
|
|
number_of_commander_traits >= 1
|
|
is_imprisoned = no
|
|
is_physically_able = yes
|
|
}
|
|
}
|
|
|
|
cooldown_against_recipient = { years = 3 }
|
|
|
|
can_send = {
|
|
}
|
|
#each option is shown if the actor has the corresponding trait and valid if recipient don't have it yet or don't have an opposite trait
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = logistician }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = logistician
|
|
trait:logistician = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = logistician
|
|
localization = trait_logistician
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = military_engineer }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = military_engineer
|
|
trait:military_engineer = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = military_engineer
|
|
localization = trait_military_engineer
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = aggressive_attacker }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = aggressive_attacker
|
|
trait:aggressive_attacker = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = aggressive_attacker
|
|
localization = trait_aggressive_attacker
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = unyielding_defender }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = unyielding_defender
|
|
trait:unyielding_defender = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = unyielding_defender
|
|
localization = trait_unyielding_defender
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = forder }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = forder
|
|
trait:forder = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = forder
|
|
localization = trait_forder
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = flexible_leader }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = flexible_leader
|
|
trait:flexible_leader = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = flexible_leader
|
|
localization = trait_flexible_leader
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = desert_warrior }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = desert_warrior
|
|
trait:desert_warrior = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = desert_warrior
|
|
localization = trait_desert_warrior
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = jungle_stalker }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = jungle_stalker
|
|
trait:jungle_stalker = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = jungle_stalker
|
|
localization = trait_jungle_stalker
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = reaver }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = reaver
|
|
trait:reaver = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = reaver
|
|
localization = trait_reaver
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = reckless }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = reckless
|
|
trait:reckless = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = reckless
|
|
localization = trait_reckless
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = holy_warrior }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = holy_warrior
|
|
trait:holy_warrior = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = holy_warrior
|
|
localization = trait_holy_warrior
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = open_terrain_expert }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = open_terrain_expert
|
|
trait:open_terrain_expert = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = open_terrain_expert
|
|
localization = trait_open_terrain_expert
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = rough_terrain_expert }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = rough_terrain_expert
|
|
trait:rough_terrain_expert = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = rough_terrain_expert
|
|
localization = trait_rough_terrain_expert
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = forest_fighter }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = forest_fighter
|
|
trait:forest_fighter = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = forest_fighter
|
|
localization = trait_forest_fighter
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = cautious_leader }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = cautious_leader
|
|
trait:cautious_leader = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = cautious_leader
|
|
localization = trait_cautious_leader
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = organizer }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = organizer
|
|
trait:organizer = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = organizer
|
|
localization = trait_organizer
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_trait = winter_soldier }
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = winter_soldier
|
|
trait:winter_soldier = {
|
|
any_opposite_trait = {
|
|
scope:recipient = { has_trait = prev }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag = winter_soldier
|
|
localization = trait_winter_soldier
|
|
}
|
|
|
|
send_options_exclusive = yes
|
|
|
|
on_send = {
|
|
switch = {#save which trait was chosen as scope:target_trait
|
|
trigger = yes
|
|
scope:logistician = {
|
|
trait:logistician = { save_scope_as = target_trait }
|
|
}
|
|
scope:military_engineer = {
|
|
trait:military_engineer = { save_scope_as = target_trait }
|
|
}
|
|
scope:aggressive_attacker = {
|
|
trait:aggressive_attacker = { save_scope_as = target_trait }
|
|
}
|
|
scope:unyielding_defender = {
|
|
trait:unyielding_defender = { save_scope_as = target_trait }
|
|
}
|
|
scope:forder = {
|
|
trait:forder = { save_scope_as = target_trait }
|
|
}
|
|
scope:flexible_leader = {
|
|
trait:flexible_leader = { save_scope_as = target_trait }
|
|
}
|
|
scope:desert_warrior = {
|
|
trait:desert_warrior = { save_scope_as = target_trait }
|
|
}
|
|
scope:jungle_stalker = {
|
|
trait:jungle_stalker = { save_scope_as = target_trait }
|
|
}
|
|
scope:reaver = {
|
|
trait:reaver = { save_scope_as = target_trait }
|
|
}
|
|
scope:reckless = {
|
|
trait:reckless = { save_scope_as = target_trait }
|
|
}
|
|
scope:holy_warrior = {
|
|
trait:holy_warrior = { save_scope_as = target_trait }
|
|
}
|
|
scope:open_terrain_expert = {
|
|
trait:open_terrain_expert = { save_scope_as = target_trait }
|
|
}
|
|
scope:rough_terrain_expert = {
|
|
trait:rough_terrain_expert = { save_scope_as = target_trait }
|
|
}
|
|
scope:forest_fighter = {
|
|
trait:forest_fighter = { save_scope_as = target_trait }
|
|
}
|
|
scope:cautious_leader = {
|
|
trait:cautious_leader = { save_scope_as = target_trait }
|
|
}
|
|
scope:organizer = {
|
|
trait:organizer = { save_scope_as = target_trait }
|
|
}
|
|
scope:winter_soldier = {
|
|
trait:winter_soldier = { save_scope_as = target_trait }
|
|
}
|
|
fallback = {
|
|
scope:actor = {
|
|
random_character_trait = {
|
|
limit = { has_trait_category = commander }
|
|
save_scope_as = target_trait
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
# Trait you're trying to make your ward gained is saved as scope:target_trait
|
|
trigger_event = mpo_interactions_events.0101
|
|
show_as_tooltip = {
|
|
add_stress = minor_stress_gain
|
|
add_opinion = {
|
|
target = scope:recipient
|
|
modifier = pleased_opinion
|
|
opinion = 20
|
|
}
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
show_as_tooltip = {
|
|
switch = {#save which trait was chosen as scope:target_trait
|
|
trigger = yes
|
|
scope:logistician = {
|
|
trait:logistician = { save_scope_as = target_trait }
|
|
}
|
|
scope:military_engineer = {
|
|
trait:military_engineer = { save_scope_as = target_trait }
|
|
}
|
|
scope:aggressive_attacker = {
|
|
trait:aggressive_attacker = { save_scope_as = target_trait }
|
|
}
|
|
scope:unyielding_defender = {
|
|
trait:unyielding_defender = { save_scope_as = target_trait }
|
|
}
|
|
scope:forder = {
|
|
trait:forder = { save_scope_as = target_trait }
|
|
}
|
|
scope:flexible_leader = {
|
|
trait:flexible_leader = { save_scope_as = target_trait }
|
|
}
|
|
scope:desert_warrior = {
|
|
trait:desert_warrior = { save_scope_as = target_trait }
|
|
}
|
|
scope:jungle_stalker = {
|
|
trait:jungle_stalker = { save_scope_as = target_trait }
|
|
}
|
|
scope:reaver = {
|
|
trait:reaver = { save_scope_as = target_trait }
|
|
}
|
|
scope:reckless = {
|
|
trait:reckless = { save_scope_as = target_trait }
|
|
}
|
|
scope:holy_warrior = {
|
|
trait:holy_warrior = { save_scope_as = target_trait }
|
|
}
|
|
scope:open_terrain_expert = {
|
|
trait:open_terrain_expert = { save_scope_as = target_trait }
|
|
}
|
|
scope:rough_terrain_expert = {
|
|
trait:rough_terrain_expert = { save_scope_as = target_trait }
|
|
}
|
|
scope:forest_fighter = {
|
|
trait:forest_fighter = { save_scope_as = target_trait }
|
|
}
|
|
scope:cautious_leader = {
|
|
trait:cautious_leader = { save_scope_as = target_trait }
|
|
}
|
|
scope:organizer = {
|
|
trait:organizer = { save_scope_as = target_trait }
|
|
}
|
|
scope:winter_soldier = {
|
|
trait:winter_soldier = { save_scope_as = target_trait }
|
|
}
|
|
}
|
|
if = {
|
|
limit = { exists = scope:target_trait }
|
|
add_trait = scope:target_trait
|
|
}
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = admiration_opinion
|
|
opinion = 20
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
scope:actor = {
|
|
# Trait you're trying to make your ward gained is saved as scope:target_trait
|
|
trigger_event = mpo_interactions_events.0102
|
|
show_as_tooltip = {
|
|
add_stress = medium_stress_gain
|
|
add_opinion = {
|
|
target = scope:recipient
|
|
modifier = disappointed_opinion
|
|
opinion = -20
|
|
}
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
show_as_tooltip = {
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = confused_opinion
|
|
opinion = -20
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
auto_accept = no
|
|
|
|
ai_accept = {
|
|
base = 0 # Try to make it 0 for most interactions
|
|
opinion_modifier = { # Opinion Factor
|
|
who = scope:recipient
|
|
opinion_target = scope:actor
|
|
multiplier = 0.5
|
|
desc = AI_OPINION_REASON
|
|
}
|
|
|
|
modifier = { # Perk boost
|
|
desc = influence_children_groomed_to_rule_perk_tt
|
|
trigger = {
|
|
scope:actor = { has_perk = groomed_to_rule_perk }
|
|
}
|
|
add = groomed_to_rule_value
|
|
}
|
|
|
|
modifier = { #more likely if you already have something in common
|
|
add = {
|
|
value = 5
|
|
if = {
|
|
limit = {
|
|
number_of_personality_traits_in_common = {
|
|
target = scope:recipient
|
|
value = 2
|
|
}
|
|
}
|
|
multiply = 2
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
number_of_personality_traits_in_common = {
|
|
target = scope:recipient
|
|
value = 3
|
|
}
|
|
}
|
|
multiply = 3
|
|
}
|
|
}
|
|
number_of_personality_traits_in_common = {
|
|
target = scope:recipient
|
|
value >= 1
|
|
}
|
|
desc = we_are_alike_tt
|
|
}
|
|
|
|
modifier = { #less likely if you already have opposite traits
|
|
add = {
|
|
value = -5
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
number_of_opposing_personality_traits = {
|
|
target = scope:actor
|
|
value = 2
|
|
}
|
|
}
|
|
}
|
|
multiply = 2
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
number_of_opposing_personality_traits = {
|
|
target = scope:actor
|
|
value = 3
|
|
}
|
|
}
|
|
}
|
|
multiply = 3
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
number_of_opposing_personality_traits = {
|
|
target = scope:actor
|
|
value >= 1
|
|
}
|
|
}
|
|
desc = we_are_NOT_alike_tt
|
|
}
|
|
|
|
modifier = { #adding your knowledge
|
|
add = {
|
|
value = scope:actor.martial
|
|
multiply = 0.5
|
|
}
|
|
desc = HAS_MARTIAL_SKILL_REASON
|
|
}
|
|
|
|
modifier = { #adding your fighting skills
|
|
add = {
|
|
value = scope:actor.prowess
|
|
multiply = 0.5
|
|
}
|
|
desc = HAS_PROWESS_SKILL_REASON
|
|
}
|
|
|
|
modifier = { #more likely with a Wet Nurse employed
|
|
exists = scope:actor.court_position:champion_court_position
|
|
add = 10
|
|
desc = HAS_CHAMPION_REASON
|
|
}
|
|
|
|
modifier = { #more likely if chosen trait is compatible with recipients childhood personality
|
|
add = 15
|
|
switch = {
|
|
trigger = yes
|
|
scope:logistician = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_trait = curious
|
|
has_trait = pensive
|
|
}
|
|
}
|
|
}
|
|
scope:military_engineer = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_trait = curious
|
|
has_trait = pensive
|
|
}
|
|
}
|
|
}
|
|
scope:aggressive_attacker = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_trait = bossy
|
|
has_trait = rowdy
|
|
}
|
|
}
|
|
}
|
|
scope:unyielding_defender = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_trait = bossy
|
|
has_trait = rowdy
|
|
}
|
|
}
|
|
}
|
|
scope:forder = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_trait = rowdy
|
|
has_trait = curious
|
|
}
|
|
}
|
|
}
|
|
scope:flexible_leader = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_trait = charming
|
|
has_trait = curious
|
|
}
|
|
}
|
|
}
|
|
scope:desert_warrior = {
|
|
scope:recipient = {
|
|
has_trait = rowdy
|
|
}
|
|
}
|
|
scope:jungle_stalker = {
|
|
scope:recipient = {
|
|
has_trait = rowdy
|
|
}
|
|
}
|
|
scope:reaver = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_trait = bossy
|
|
has_trait = rowdy
|
|
}
|
|
}
|
|
}
|
|
scope:reckless = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_trait = bossy
|
|
has_trait = rowdy
|
|
}
|
|
}
|
|
}
|
|
scope:holy_warrior = {
|
|
scope:recipient = {
|
|
has_trait = pensive
|
|
}
|
|
}
|
|
scope:open_terrain_expert = {
|
|
scope:recipient = {
|
|
has_trait = rowdy
|
|
}
|
|
}
|
|
scope:rough_terrain_expert = {
|
|
scope:recipient = {
|
|
has_trait = rowdy
|
|
}
|
|
}
|
|
scope:forest_fighter = {
|
|
scope:recipient = {
|
|
has_trait = rowdy
|
|
}
|
|
}
|
|
scope:cautious_leader = {
|
|
scope:recipient = {
|
|
has_trait = pensive
|
|
}
|
|
}
|
|
scope:organizer = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_trait = bossy
|
|
has_trait = charming
|
|
}
|
|
}
|
|
}
|
|
scope:winter_soldier = {
|
|
scope:recipient = {
|
|
has_trait = rowdy
|
|
}
|
|
}
|
|
}
|
|
desc = has_compatible_personality_tt
|
|
}
|
|
|
|
modifier = { #less likely if chosen trait is incompatible with recipients childhood personality
|
|
add = -15
|
|
switch = {
|
|
trigger = yes
|
|
scope:logistician = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = curious
|
|
has_trait = pensive
|
|
}
|
|
}
|
|
}
|
|
scope:military_engineer = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = curious
|
|
has_trait = pensive
|
|
}
|
|
}
|
|
}
|
|
scope:aggressive_attacker = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = bossy
|
|
has_trait = rowdy
|
|
}
|
|
}
|
|
}
|
|
scope:unyielding_defender = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = bossy
|
|
has_trait = rowdy
|
|
}
|
|
}
|
|
}
|
|
scope:forder = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = rowdy
|
|
has_trait = curious
|
|
}
|
|
}
|
|
}
|
|
scope:flexible_leader = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = charming
|
|
has_trait = curious
|
|
}
|
|
}
|
|
}
|
|
scope:desert_warrior = {
|
|
scope:recipient = {
|
|
NOT = { has_trait = rowdy }
|
|
}
|
|
}
|
|
scope:jungle_stalker = {
|
|
scope:recipient = {
|
|
NOT = { has_trait = rowdy }
|
|
}
|
|
}
|
|
scope:reaver = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = bossy
|
|
has_trait = rowdy
|
|
}
|
|
}
|
|
}
|
|
scope:reckless = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = bossy
|
|
has_trait = rowdy
|
|
}
|
|
}
|
|
}
|
|
scope:holy_warrior = {
|
|
scope:recipient = {
|
|
NOT = { has_trait = pensive }
|
|
}
|
|
}
|
|
scope:open_terrain_expert = {
|
|
scope:recipient = {
|
|
NOT = { has_trait = rowdy }
|
|
}
|
|
}
|
|
scope:rough_terrain_expert = {
|
|
scope:recipient = {
|
|
NOT = { has_trait = rowdy }
|
|
}
|
|
}
|
|
scope:forest_fighter = {
|
|
scope:recipient = {
|
|
NOT = { has_trait = rowdy }
|
|
}
|
|
}
|
|
scope:cautious_leader = {
|
|
scope:recipient = {
|
|
NOT = { has_trait = pensive }
|
|
}
|
|
}
|
|
scope:organizer = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
has_trait = bossy
|
|
has_trait = charming
|
|
}
|
|
}
|
|
}
|
|
scope:winter_soldier = {
|
|
scope:recipient = {
|
|
NOT = { has_trait = rowdy }
|
|
}
|
|
}
|
|
}
|
|
desc = has_incompatible_personality_tt
|
|
}
|
|
|
|
modifier = { #more likely if actor is afraid of you
|
|
add = intimidated_halved_reason_value
|
|
scope:recipient = {
|
|
target_is_liege_or_above = scope:actor
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 1
|
|
}
|
|
}
|
|
desc = INTIMIDATED_REASON
|
|
}
|
|
modifier = { #more likely if actor is afraid of you
|
|
add = cowed_halved_reason_value
|
|
scope:recipient = {
|
|
target_is_liege_or_above = scope:actor
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 2
|
|
}
|
|
}
|
|
desc = COWED_REASON
|
|
}
|
|
modifier = { #less likely if recipient already has a commander trait
|
|
add = -50
|
|
scope:recipient = {
|
|
number_of_commander_traits >= 1
|
|
}
|
|
desc = has_commander_traits_already
|
|
}
|
|
}
|
|
|
|
# AI
|
|
ai_potential = {
|
|
any_relation = {
|
|
type = ward
|
|
count >= 1
|
|
}
|
|
}
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 72
|
|
duchy = 12
|
|
kingdom = 12
|
|
empire = 12
|
|
hegemony = 12
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = courtiers
|
|
}
|
|
ai_will_do = {
|
|
base = -100
|
|
modifier = { # If the recipient is a player, do not bother sending
|
|
factor = 0
|
|
scope:recipient = {
|
|
is_ai = no
|
|
}
|
|
}
|
|
modifier = {
|
|
add = ai_honor
|
|
}
|
|
modifier = {
|
|
add = ai_energy
|
|
}
|
|
modifier = {
|
|
add = ai_sociability
|
|
}
|
|
modifier = {
|
|
add = ai_boldness
|
|
}
|
|
}
|
|
}
|
|
|
|
mpo_make_blood_brother = {
|
|
category = interaction_category_diplomacy
|
|
icon = blood_brother
|
|
desc = make_blood_brother_desc
|
|
common_interaction = yes
|
|
can_send_despite_rejection = yes
|
|
interface_priority = 60
|
|
|
|
greeting = positive
|
|
notification_text = MAKE_BLOOD_BROTHER_NOTIFICATION
|
|
popup_on_receive = yes
|
|
ai_maybe = yes
|
|
|
|
cooldown = { months = 1 }
|
|
cooldown_against_recipient = { years = 5 }
|
|
|
|
is_shown = {
|
|
# Scope:actor needs to have a suitable CulTrad.
|
|
scope:actor = {
|
|
mpo_valid_for_blood_brotherhood_trigger = yes
|
|
NOT = { var:had_mpo_temujin_flavor_0020 ?= scope:recipient }
|
|
}
|
|
scope:recipient = {
|
|
mpo_valid_for_blood_brotherhood_trigger = yes
|
|
NOT = {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
mpo_can_be_blood_brothers_trigger = { CHARACTER_1 = scope:actor CHARACTER_2 = scope:recipient }
|
|
# Both characters must be available
|
|
scope:actor = {
|
|
is_imprisoned = no
|
|
is_incapable = no
|
|
}
|
|
scope:recipient = {
|
|
is_imprisoned = no
|
|
is_incapable = no
|
|
}
|
|
}
|
|
#Mutual enemy that you oppose together
|
|
send_option = {
|
|
flag = common_enemy
|
|
is_valid = {
|
|
custom_description = {
|
|
text = blood_brother_common_enemy_trigger
|
|
mpo_blood_brother_common_enemy_trigger = yes
|
|
}
|
|
}
|
|
localization = BLOOD_BROTHER_COMMON_ENEMY
|
|
}
|
|
#Shared memories
|
|
send_option = {
|
|
flag = memories_together
|
|
is_valid = {
|
|
custom_description = {
|
|
text = blood_brother_memory_trigger
|
|
scope:actor = {
|
|
any_memory = {
|
|
has_memory_participant = scope:recipient
|
|
mpo_blood_brother_reason_memory_trigger = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
localization = BLOOD_BROTHER_MEMORIES
|
|
}
|
|
|
|
#Fought together in a war
|
|
send_option = {
|
|
flag = war_allies
|
|
is_valid = {
|
|
custom_description = {
|
|
text = blood_brother_former_war_allies_trigger
|
|
scope:actor = {
|
|
has_variable_list = former_war_allies
|
|
any_in_list = {
|
|
variable = former_war_allies
|
|
this = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
}
|
|
localization = BLOOD_BROTHER_WAR_ALLIES
|
|
}
|
|
|
|
# Normal
|
|
send_option = {
|
|
is_shown = {
|
|
always = no
|
|
}
|
|
is_valid = {
|
|
always = yes
|
|
}
|
|
flag = normal
|
|
localization = BLOOD_BROTHER_NORMAL
|
|
starts_enabled = { always = yes }
|
|
}
|
|
|
|
cost = {
|
|
piety = minor_piety_value
|
|
}
|
|
|
|
send_options_exclusive = no
|
|
|
|
on_accept = {
|
|
# Notifications with most effects.
|
|
scope:actor = {
|
|
# Become blood brothers
|
|
#Tooltip effect because it happens later/in the blood brother on action
|
|
show_as_tooltip = {
|
|
set_relation_blood_brother = scope:recipient
|
|
}
|
|
custom_tooltip = blood_brother_alliance_actor_alliance_tt
|
|
custom_tooltip = blood_brother_actor_gains_hook_tt
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
mpo_blood_brother_august_trigger = { OTHER_BROTHER = scope:actor }
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
custom_tooltip = blood_brother_august_nomadic_modifier_tt
|
|
}
|
|
else = {
|
|
custom_tooltip = blood_brother_august_modifier_tt
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
mpo_blood_brother_warrior_trigger = { OTHER_BROTHER = scope:actor }
|
|
}
|
|
}
|
|
custom_tooltip = blood_brother_warrior_modifier_tt
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
mpo_blood_brother_clever_trigger = yes
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
custom_tooltip = blood_brother_clever_nomadic_modifier_tt
|
|
}
|
|
else = {
|
|
custom_tooltip = blood_brother_clever_modifier_tt
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
mpo_blood_brother_loving_trigger = yes
|
|
}
|
|
}
|
|
custom_tooltip = blood_brother_loving_modifier_tt
|
|
}
|
|
if = {
|
|
limit = {
|
|
always = scope:common_enemy
|
|
}
|
|
custom_tooltip = blood_brother_foe_modifier_tt
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
# Become blood brothers
|
|
#Tooltip effect because it happens later/in the blood brother on action
|
|
|
|
show_as_tooltip = { set_relation_blood_brother = scope:actor }
|
|
custom_tooltip = blood_brother_alliance_recipient_alliance_tt
|
|
custom_tooltip = blood_brother_recipient_gains_hook_tt
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
mpo_blood_brother_august_trigger = { OTHER_BROTHER = scope:recipient }
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
custom_tooltip = blood_brother_august_nomadic_modifier_tt
|
|
}
|
|
else = {
|
|
custom_tooltip = blood_brother_august_modifier_tt
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
mpo_blood_brother_warrior_trigger = { OTHER_BROTHER = scope:recipient }
|
|
}
|
|
}
|
|
custom_tooltip = blood_brother_warrior_modifier_tt
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
mpo_blood_brother_clever_trigger = yes
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
custom_tooltip = blood_brother_clever_nomadic_modifier_tt
|
|
}
|
|
else = {
|
|
custom_tooltip = blood_brother_clever_modifier_tt
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
mpo_blood_brother_loving_trigger = yes
|
|
}
|
|
}
|
|
custom_tooltip = blood_brother_loving_modifier_tt
|
|
}
|
|
if = {
|
|
limit = {
|
|
always = scope:common_enemy
|
|
}
|
|
custom_tooltip = blood_brother_foe_modifier_tt
|
|
}
|
|
}
|
|
|
|
# If we're a clan this interaction affects unity
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = scope:actor
|
|
TARGET = scope:recipient
|
|
VALUE = minor_unity_gain
|
|
DESC = clan_unity_oath_of_true_friendship.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
if = {
|
|
limit = {
|
|
always = scope:common_enemy
|
|
}
|
|
scope:actor = {
|
|
make_blood_brother_save_common_enemy_effect = yes
|
|
}
|
|
}
|
|
#Fire events for each char, resetting scopes to be appropriate in each
|
|
hidden_effect = {
|
|
scope:recipient = {
|
|
save_scope_as = blood_bro
|
|
}
|
|
scope:actor = {
|
|
set_relation_blood_brother = {
|
|
reason = sworn_blood_brother
|
|
target = scope:recipient
|
|
}
|
|
trigger_event = mpo_interactions_events.0006
|
|
}
|
|
clear_saved_scope = blood_bro
|
|
scope:actor = {
|
|
save_scope_as = blood_bro
|
|
}
|
|
scope:recipient = {
|
|
trigger_event = mpo_interactions_events.0006
|
|
}
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
# Scope:actor gains some stress over the whole ordeal.
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = make_blood_brother_interaction.decline.actor.tt
|
|
left_icon = scope:recipient
|
|
add_stress = minor_stress_gain
|
|
}
|
|
}
|
|
# Scope:actor loses opinion of scope:recipient.
|
|
scope:recipient = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_neutral
|
|
title = make_blood_brother_interaction.decline.recipient.tt
|
|
left_icon = scope:actor
|
|
scope:actor = {
|
|
add_opinion = {
|
|
target = scope:recipient
|
|
modifier = hurt_opinion
|
|
opinion = -20
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# And set up a little hidden drama for later...
|
|
hidden_effect = {
|
|
scope:recipient = {
|
|
if = {
|
|
limit = {
|
|
# We don't use the standard check for this, since they'll already be friends by definition, so the trigger would always return as false.
|
|
# Instead, we just check to make sure they're not *already* potential rivals; this can happen regardless, so really we're just setting them up for drama if the friendship ever falters.
|
|
NOT = { has_relation_potential_rival = scope:actor }
|
|
}
|
|
random = {
|
|
chance = 20
|
|
set_relation_potential_rival = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# If we're a clan this interaction affects unity
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = scope:actor
|
|
TARGET = scope:recipient
|
|
VALUE = minor_unity_loss
|
|
DESC = clan_unity_declined_true_friendship.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
}
|
|
|
|
# AI
|
|
## Standard Acceptance stuff
|
|
ai_accept = {
|
|
base = -50
|
|
|
|
mpo_blood_brother_interactions_ai_accept_modifier = yes
|
|
|
|
# Common foe send option
|
|
# Are you offering confederation leadership?
|
|
modifier = {
|
|
trigger = {
|
|
scope:common_enemy ?= yes
|
|
}
|
|
add = 75
|
|
desc = BLOOD_BROTHER_COMMON_ENEMY_VALUE
|
|
}
|
|
# Memories send option
|
|
modifier = {
|
|
trigger = {
|
|
scope:memories_together ?= yes
|
|
}
|
|
add = 50
|
|
desc = BLOOD_BROTHER_MEMORIES_VALUE
|
|
}
|
|
# Former war allies send option
|
|
modifier = {
|
|
trigger = {
|
|
scope:war_allies ?= yes
|
|
}
|
|
add = 30
|
|
desc = BLOOD_BROTHER_WAR_ALLIES_VALUE
|
|
}
|
|
}
|
|
## Performance-enhancement
|
|
ai_potential = {
|
|
is_imprisoned = no
|
|
is_at_war = no
|
|
has_blood_brother = no
|
|
}
|
|
ai_target_quick_trigger = { adult = yes }
|
|
ai_targets = {
|
|
ai_recipients = liege
|
|
ai_recipients = scripted_relations
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = peer_vassals
|
|
max = 10
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = neighboring_rulers_including_tributary_borders
|
|
max = 15
|
|
}
|
|
## Frequency
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 96
|
|
duchy = 48
|
|
kingdom = 12
|
|
empire = 12
|
|
hegemony = 12
|
|
}
|
|
ai_will_do = {
|
|
base = -50
|
|
|
|
#Dishonorable characters don't want to be bound like this
|
|
modifier = {
|
|
scope:recipient = {
|
|
ai_honor <= medium_negative_ai_value
|
|
}
|
|
add = -40
|
|
}
|
|
modifier = {
|
|
scope:recipient = {
|
|
ai_sociability <= medium_negative_ai_value
|
|
}
|
|
add = -20
|
|
}
|
|
|
|
#This will mostly just annoy players, unless AI is worthy and has a good reason
|
|
modifier = {
|
|
scope:recipient = {
|
|
is_ai = no
|
|
}
|
|
NOT = {
|
|
scope:actor = {
|
|
is_landed = yes
|
|
OR = {
|
|
has_relation_friend = scope:recipient
|
|
has_relation_soulmate = scope:recipient
|
|
is_allied_to = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
add = -100
|
|
}
|
|
modifier = {
|
|
add = 25
|
|
any_ally = {
|
|
count < 1
|
|
}
|
|
}
|
|
modifier = {
|
|
add = 75
|
|
any_ally = {
|
|
count < 2
|
|
}
|
|
scope:recipient = { # Don't propose alliances to tiny insignificant rulers just because
|
|
OR = {
|
|
current_military_strength >= scope:actor.eighty_percent_of_current_military_strength
|
|
primary_title.tier >= scope:actor.primary_title.tier
|
|
AND = {
|
|
primary_title.tier >= tier_duchy
|
|
scope:actor.primary_title.tier < tier_empire
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = 25
|
|
scope:actor = {
|
|
mpo_blood_brother_common_enemy_trigger = yes
|
|
}
|
|
}
|
|
modifier = {
|
|
add = 25
|
|
scope:actor = {
|
|
scope:actor = {
|
|
any_memory = {
|
|
has_memory_participant = scope:recipient
|
|
mpo_blood_brother_reason_memory_trigger = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
scope:actor = {
|
|
has_variable_list = former_war_allies
|
|
any_in_list = {
|
|
variable = former_war_allies
|
|
this = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
|
|
mpo_blood_brother_interactions_ai_accept_modifier = yes
|
|
|
|
modifier = { # The AI shouldn't propose to their Lieges
|
|
factor = 0.5
|
|
is_liege_or_above_of = scope:recipient
|
|
}
|
|
modifier = { # The AI shouldn't propose to their Vassals unless Clan
|
|
factor = 0.5
|
|
scope:actor = {
|
|
NOT = { government_has_flag = government_is_clan }
|
|
}
|
|
scope:recipient = {
|
|
is_vassal_of = scope:actor
|
|
}
|
|
}
|
|
modifier = {
|
|
factor = 0
|
|
scope:recipient = {
|
|
has_character_modifier = broke_blood_brotherhood_modifier
|
|
}
|
|
}
|
|
|
|
# Jamukha offers Temujin via Event
|
|
modifier = {
|
|
trigger = {
|
|
scope:actor = { this = character:mpo_mongol_1 }
|
|
scope:recipient = { this = character:125501 }
|
|
}
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
################################
|
|
# Feudalize Nomadic Holding
|
|
################################
|
|
feudalize_nomadic_holding_interaction = {
|
|
category = interaction_category_uncategorized
|
|
hidden = yes
|
|
special_interaction = feudalize_holding
|
|
|
|
desc = feudalize_holding_interaction_desc
|
|
|
|
target_type = title
|
|
target_filter = actor_domain_titles
|
|
|
|
auto_accept = yes
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
this = scope:recipient
|
|
NOR = {
|
|
government_has_flag = government_is_nomadic
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
}
|
|
|
|
can_be_picked_title = {
|
|
scope:target = {
|
|
holder = scope:actor
|
|
is_capital_barony = no # we'll use the county in that case
|
|
trigger_if = {
|
|
limit = { tier <= tier_county }
|
|
title_province = {
|
|
has_holding_type = nomad_holding
|
|
}
|
|
}
|
|
trigger_else = {
|
|
custom_description = {
|
|
text = "feudalize_nomadic_holding_interaction_title_not_county_or_below"
|
|
always = no
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
has_valid_target_showing_failures_only = {
|
|
scope:target = {
|
|
trigger_if = {
|
|
limit = { tier <= tier_county }
|
|
title_province = {
|
|
barony_controller = scope:actor
|
|
has_ongoing_construction = no
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
cost = {
|
|
gold = {
|
|
value = 0
|
|
if = {
|
|
limit = {
|
|
has_treasury = no
|
|
}
|
|
scope:actor = {
|
|
if = {
|
|
limit = { # Less expensive for tribals
|
|
government_has_flag = government_is_tribal
|
|
}
|
|
add = {
|
|
value = 50
|
|
desc = BASE
|
|
}
|
|
}
|
|
else = {
|
|
add = {
|
|
value = feudalize_holding_interaction_cost
|
|
desc = BASE
|
|
}
|
|
if = {
|
|
limit = { # More expensive for admin to make barbarians civilized...
|
|
government_has_flag = government_is_administrative
|
|
}
|
|
add = {
|
|
value = feudalize_holding_interaction_cost
|
|
multiply = 0.25
|
|
desc = has_admin_government
|
|
}
|
|
if = {
|
|
limit = { # Admin get a bonus for high bureaucracy levels
|
|
OR = {
|
|
has_realm_law = imperial_bureaucracy_2
|
|
has_realm_law = imperial_bureaucracy_3
|
|
}
|
|
}
|
|
subtract = {
|
|
value = feudalize_holding_interaction_cost
|
|
multiply = {
|
|
value = 0.1
|
|
if = {
|
|
limit = {
|
|
has_realm_law = imperial_bureaucracy_3
|
|
}
|
|
add = 0.15
|
|
}
|
|
}
|
|
desc = imperial_bureaucracy
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
treasury = {
|
|
value = 0
|
|
if = {
|
|
limit = {
|
|
has_treasury = yes
|
|
}
|
|
scope:actor = {
|
|
add = {
|
|
value = feudalize_holding_interaction_cost
|
|
desc = BASE
|
|
}
|
|
if = {
|
|
limit = { # More expensive for admin to make barbarians civilized...
|
|
government_has_flag = government_is_administrative
|
|
}
|
|
add = {
|
|
value = feudalize_holding_interaction_cost
|
|
multiply = 0.25
|
|
desc = has_admin_government
|
|
}
|
|
if = {
|
|
limit = { # Admin get a bonus for high bureaucracy levels
|
|
OR = {
|
|
has_realm_law = imperial_bureaucracy_2
|
|
has_realm_law = imperial_bureaucracy_3
|
|
}
|
|
}
|
|
subtract = {
|
|
value = feudalize_holding_interaction_cost
|
|
multiply = {
|
|
value = 0.1
|
|
if = {
|
|
limit = {
|
|
has_realm_law = imperial_bureaucracy_3
|
|
}
|
|
add = 0.15
|
|
}
|
|
}
|
|
desc = imperial_bureaucracy
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
prestige = {
|
|
scope:actor = {
|
|
if = {
|
|
limit = { # Less expensive for tribals
|
|
government_has_flag = government_is_tribal
|
|
scope:target.county.culture = scope:actor.culture
|
|
}
|
|
add = {
|
|
value = 50
|
|
desc = BASE
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { # Less expensive for tribals
|
|
government_has_flag = government_is_tribal
|
|
scope:target.county.culture = { has_same_culture_heritage = scope:actor.culture }
|
|
}
|
|
add = {
|
|
value = 100
|
|
desc = BASE
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { # Less expensive for tribals
|
|
government_has_flag = government_is_tribal
|
|
}
|
|
add = {
|
|
value = 300
|
|
desc = BASE
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = feudalize_holding_interaction_notification
|
|
|
|
right_icon = scope:actor
|
|
|
|
if = {
|
|
limit = {
|
|
exists = scope:target.title_province
|
|
NOT = { government_has_flag = government_is_tribal }
|
|
}
|
|
scope:target.title_province = {
|
|
set_holding_type = castle_holding
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
exists = scope:target.title_province
|
|
government_has_flag = government_is_tribal
|
|
}
|
|
scope:target.title_province = {
|
|
set_holding_type = tribal_holding
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:target.county.culture = scope:actor.culture
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
OR = {
|
|
government_has_flag = government_is_tribal
|
|
scope:target.county.culture = { has_same_culture_heritage = scope:actor.culture }
|
|
}
|
|
}
|
|
scope:target.county = {
|
|
add_county_modifier = {
|
|
modifier = mpo_feudalize_nomadic_land_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
scope:target.county = {
|
|
add_county_modifier = {
|
|
modifier = mpo_feudalize_nomadic_land_modifier
|
|
years = 30
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 1500
|
|
}
|
|
}
|
|
|
|
################################
|
|
# Feudalize Herder Holding
|
|
################################
|
|
feudalize_herder_holding_interaction = {
|
|
category = interaction_category_uncategorized
|
|
hidden = yes
|
|
special_interaction = feudalize_holding
|
|
|
|
desc = feudalize_holding_interaction_desc
|
|
|
|
target_type = title
|
|
target_filter = actor_domain_titles
|
|
|
|
auto_accept = yes
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
this = scope:recipient
|
|
NOR = {
|
|
government_has_flag = government_is_nomadic
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
}
|
|
|
|
can_be_picked_title = {
|
|
scope:target = {
|
|
holder = scope:actor
|
|
is_capital_barony = no # we'll use the county in that case
|
|
trigger_if = {
|
|
limit = { tier <= tier_county }
|
|
title_province = {
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
trigger_else = {
|
|
custom_description = {
|
|
text = "feudalize_herder_holding_interaction_title_not_county_or_below"
|
|
always = no
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
has_valid_target_showing_failures_only = {
|
|
scope:target = {
|
|
trigger_if = {
|
|
limit = { tier <= tier_county }
|
|
title_province = {
|
|
barony_controller = scope:actor
|
|
has_ongoing_construction = no
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
cost = {
|
|
gold = {
|
|
value = 0
|
|
if = {
|
|
limit = {
|
|
has_treasury = no
|
|
}
|
|
scope:actor = {
|
|
if = {
|
|
limit = { # Less expensive for tribals
|
|
government_has_flag = government_is_tribal
|
|
}
|
|
add = {
|
|
value = 50
|
|
desc = BASE
|
|
}
|
|
}
|
|
else = {
|
|
add = {
|
|
value = feudalize_holding_interaction_cost
|
|
desc = BASE
|
|
}
|
|
if = {
|
|
limit = { # More expensive for admin to make barbarians civilized...
|
|
government_has_flag = government_is_administrative
|
|
}
|
|
add = {
|
|
value = feudalize_holding_interaction_cost
|
|
multiply = 0.25
|
|
desc = has_admin_government
|
|
}
|
|
if = {
|
|
limit = { # Admin get a bonus for high bureaucracy levels
|
|
OR = {
|
|
has_realm_law = imperial_bureaucracy_2
|
|
has_realm_law = imperial_bureaucracy_3
|
|
}
|
|
}
|
|
subtract = {
|
|
value = feudalize_holding_interaction_cost
|
|
multiply = {
|
|
value = 0.1
|
|
if = {
|
|
limit = {
|
|
has_realm_law = imperial_bureaucracy_3
|
|
}
|
|
add = 0.15
|
|
}
|
|
}
|
|
desc = imperial_bureaucracy
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
treasury = {
|
|
value = 0
|
|
if = {
|
|
limit = {
|
|
has_treasury = yes
|
|
}
|
|
scope:actor = {
|
|
add = {
|
|
value = feudalize_holding_interaction_cost
|
|
desc = BASE
|
|
}
|
|
if = {
|
|
limit = { # More expensive for admin to make barbarians civilized...
|
|
government_has_flag = government_is_administrative
|
|
}
|
|
add = {
|
|
value = feudalize_holding_interaction_cost
|
|
multiply = 0.25
|
|
desc = has_admin_government
|
|
}
|
|
if = {
|
|
limit = { # Admin get a bonus for high bureaucracy levels
|
|
OR = {
|
|
has_realm_law = imperial_bureaucracy_2
|
|
has_realm_law = imperial_bureaucracy_3
|
|
}
|
|
}
|
|
subtract = {
|
|
value = feudalize_holding_interaction_cost
|
|
multiply = {
|
|
value = 0.1
|
|
if = {
|
|
limit = {
|
|
has_realm_law = imperial_bureaucracy_3
|
|
}
|
|
add = 0.15
|
|
}
|
|
}
|
|
desc = imperial_bureaucracy
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
prestige = {
|
|
scope:actor = {
|
|
if = {
|
|
limit = { # Less expensive for tribals
|
|
government_has_flag = government_is_tribal
|
|
scope:target.county.culture = scope:actor.culture
|
|
}
|
|
add = {
|
|
value = 50
|
|
desc = BASE
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { # Less expensive for tribals
|
|
government_has_flag = government_is_tribal
|
|
scope:target.county.culture = { has_same_culture_heritage = scope:actor.culture }
|
|
}
|
|
add = {
|
|
value = 100
|
|
desc = BASE
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { # Less expensive for tribals
|
|
government_has_flag = government_is_tribal
|
|
}
|
|
add = {
|
|
value = 300
|
|
desc = BASE
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = feudalize_holding_interaction_notification
|
|
|
|
right_icon = scope:actor
|
|
|
|
if = {
|
|
limit = {
|
|
exists = scope:target.title_province
|
|
NOT = { government_has_flag = government_is_tribal }
|
|
}
|
|
scope:target.title_province = {
|
|
set_holding_type = castle_holding
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
exists = scope:target.title_province
|
|
government_has_flag = government_is_tribal
|
|
}
|
|
scope:target.title_province = {
|
|
set_holding_type = tribal_holding
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:target.county.culture = scope:actor.culture
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
OR = {
|
|
government_has_flag = government_is_tribal
|
|
scope:target.county.culture = { has_same_culture_heritage = scope:actor.culture }
|
|
}
|
|
}
|
|
scope:target.county = {
|
|
add_county_modifier = {
|
|
modifier = mpo_feudalize_nomadic_land_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
scope:target.county = {
|
|
add_county_modifier = {
|
|
modifier = mpo_feudalize_nomadic_land_modifier
|
|
years = 30
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 1500
|
|
}
|
|
}
|
|
|
|
mpo_retrieve_land_from_herder_interaction = {
|
|
category = interaction_category_diplomacy
|
|
common_interaction = yes
|
|
notification_text = REVOKE_TITLE_PROPOSAL
|
|
interface_priority = 100
|
|
icon = mpo_retrieve_land_from_herder_interaction
|
|
desc = mpo_retrieve_land_from_herder_interaction_desc
|
|
|
|
special_interaction = revoke_title_interaction
|
|
interface = revoke_title
|
|
target_type = title
|
|
target_filter = recipient_domain_titles
|
|
ai_maybe = yes
|
|
popup_on_receive = yes
|
|
pause_on_receive = yes
|
|
|
|
interface_priority = 60
|
|
ai_min_reply_days = 4
|
|
ai_max_reply_days = 9
|
|
|
|
# actor character giving the titles
|
|
# recipient character receiving the titles
|
|
|
|
is_shown = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor = {
|
|
is_adult = yes
|
|
is_imprisoned = no
|
|
prestige >= minor_prestige_value
|
|
trigger_if = {
|
|
limit = { is_landed = yes }
|
|
custom_tooltip = {
|
|
text = mpo_retrieve_land_from_herder_interaction_neighbour_tt
|
|
any_sub_realm_county = {
|
|
any_neighboring_county = {
|
|
holder = {
|
|
this = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
trigger_else = {
|
|
OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority }
|
|
domicile.domicile_location.county.holder ?= scope:recipient
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
custom_tooltip = {
|
|
text = mpo_retrieve_land_from_herder_independent_tt
|
|
OR = {
|
|
AND = {
|
|
is_independent_ruler = yes
|
|
is_tributary = no
|
|
}
|
|
is_tributary_of_suzerain_or_above = scope:actor
|
|
is_vassal_of = scope:actor
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = mpo_retrieve_land_migration_tt
|
|
capital_county = { is_migration_target = no }
|
|
}
|
|
}
|
|
}
|
|
|
|
can_be_picked_title = {
|
|
scope:target = {
|
|
title_revocation_standard_can_pick_title_trigger = yes
|
|
}
|
|
}
|
|
|
|
has_valid_target = {
|
|
scope:target = {
|
|
is_landless_type_title = no
|
|
NOT = { is_noble_family_title = yes }
|
|
NOT = { is_nomad_title = yes }
|
|
}
|
|
}
|
|
|
|
#Use hook -- Has to stay so the UI doesn't break
|
|
send_option = {
|
|
is_valid = {
|
|
scope:actor = {
|
|
has_usable_hook = scope:recipient
|
|
}
|
|
}
|
|
flag = hook
|
|
localization = SCHEME_HOOK
|
|
}
|
|
should_use_extra_icon = {
|
|
scope:actor = { has_usable_hook = scope:recipient }
|
|
}
|
|
extra_icon = "gfx/interface/icons/character_interactions/hook_icon.dds"
|
|
|
|
send_options_exclusive = no
|
|
|
|
on_auto_accept = {
|
|
scope:recipient = {
|
|
trigger_event = char_interaction.0200
|
|
}
|
|
}
|
|
|
|
on_accept = {
|
|
scope:recipient = {
|
|
if = {
|
|
limit = {
|
|
is_tributary = yes
|
|
NOT = {
|
|
is_tributary_of = scope:actor
|
|
}
|
|
}
|
|
suzerain = {
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = upset_opinion
|
|
opinion = -25
|
|
}
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = revoke_title_interaction
|
|
value = yes
|
|
}
|
|
scope:recipient = {
|
|
capital_county = {
|
|
change_county_control = -25
|
|
}
|
|
}
|
|
scope:actor = {
|
|
add_prestige = minor_prestige_loss
|
|
trigger_event = char_interaction.0199
|
|
}
|
|
|
|
|
|
scope:actor = {
|
|
if = {
|
|
limit = { has_character_flag = flag_hostile_actions_disabled_delay }
|
|
remove_character_flag = flag_hostile_actions_disabled_delay
|
|
}
|
|
if = {
|
|
limit = { OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority } }
|
|
demand_pastureland_adventurer_interaction_effect = yes
|
|
}
|
|
else = {
|
|
revoke_title_interaction_effect = yes
|
|
}
|
|
}
|
|
}
|
|
|
|
auto_accept = {
|
|
scope:actor = { is_landed = yes }
|
|
}
|
|
|
|
# AI
|
|
ai_targets = {
|
|
ai_recipients = tributaries
|
|
ai_recipients = top_realm_domicile_owners
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = neighboring_rulers
|
|
max = 5
|
|
}
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 12
|
|
duchy = 4
|
|
kingdom = 4
|
|
empire = 4
|
|
hegemony = 4
|
|
}
|
|
|
|
ai_potential = {
|
|
domain_size < domain_limit
|
|
primary_title.tier >= tier_county
|
|
}
|
|
|
|
ai_accept = {
|
|
base = 0
|
|
modifier = {
|
|
scope:actor = { OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority } }
|
|
add = -50
|
|
desc = YOU_ARE_AN_ADVENTURER_REASON
|
|
}
|
|
modifier = {
|
|
exists = scope:actor.suzerain
|
|
add = -25
|
|
desc = ADVENTURER_SUZERAIN_REASON
|
|
}
|
|
modifier = {
|
|
scope:actor = { OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority } }
|
|
add = {
|
|
value = scope:actor.military_power
|
|
divide = 100
|
|
}
|
|
desc = ADVENTURER_MILITARY_POWER_REASON
|
|
}
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 0
|
|
modifier = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_nomadic
|
|
current_domain_fertility <= bad_county_fertility_level
|
|
}
|
|
add = 100
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
NOT = { government_has_flag = government_is_nomadic }
|
|
short_term_gold >= massive_gold_value
|
|
NOR = {
|
|
has_trait = humble
|
|
has_trait = content
|
|
}
|
|
}
|
|
add = 25
|
|
}
|
|
}
|
|
}
|
|
|
|
mpo_vassal_to_tributary_interaction = {
|
|
category = interaction_category_vassal
|
|
icon = become_tributary_interaction
|
|
common_interaction = yes
|
|
|
|
desc = mpo_vassal_to_tributary_interaction_desc
|
|
|
|
#ai_frequency = 0
|
|
popup_on_receive = yes
|
|
pause_on_receive = yes
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
is_ai = no
|
|
is_vassal_of = scope:recipient
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:recipient = {
|
|
is_imprisoned = no
|
|
}
|
|
scope:actor = {
|
|
is_imprisoned = no
|
|
NOR = {
|
|
is_at_war_with = scope:recipient
|
|
exists = involved_activity
|
|
is_travelling = yes
|
|
}
|
|
}
|
|
}
|
|
|
|
is_highlighted = {
|
|
always = yes
|
|
}
|
|
|
|
# Start with higher taxes
|
|
send_option = {
|
|
flag = high_obligations
|
|
localization = VASSAL_TO_TRIBUTARY_HIGHER_OBLIGATIONS
|
|
}
|
|
|
|
#Use hook
|
|
send_option = {
|
|
is_valid = {
|
|
scope:actor = {
|
|
has_usable_hook = scope:recipient
|
|
}
|
|
}
|
|
flag = hook
|
|
localization = GENERIC_SPEND_A_HOOK
|
|
}
|
|
should_use_extra_icon = {
|
|
scope:actor = { has_usable_hook = scope:recipient }
|
|
}
|
|
extra_icon = "gfx/interface/icons/character_interactions/hook_icon.dds"
|
|
|
|
send_options_exclusive = no
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
show_as_tooltip = {
|
|
break_subject_contract_and_establish_tributary_effect = { SUZERAIN = scope:recipient TRIBUTARY = scope:actor }
|
|
}
|
|
}
|
|
scope:actor = {
|
|
trigger_event = mpo_interactions_events.0010
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
scope:actor = {
|
|
#Letter response, they get a bit pissed
|
|
trigger_event = mpo_interactions_events.0011
|
|
}
|
|
}
|
|
|
|
ai_accept = {
|
|
base = 0
|
|
|
|
modifier = {
|
|
add = -50
|
|
desc = BASE_RELUCTANCE
|
|
}
|
|
|
|
# Do they like you?
|
|
opinion_modifier = {
|
|
who = scope:recipient
|
|
opinion_target = scope:actor
|
|
multiplier = 1
|
|
desc = AI_OPINION_REASON
|
|
}
|
|
|
|
# If you're friends
|
|
modifier = {
|
|
add = 50
|
|
scope:recipient = {
|
|
has_relation_friend = scope:actor
|
|
}
|
|
desc = AI_FRIEND_REASON
|
|
}
|
|
|
|
# If you're lovers
|
|
modifier = {
|
|
add = 50
|
|
scope:recipient = {
|
|
has_relation_lover = scope:actor
|
|
}
|
|
desc = AI_YOUR_LOVER
|
|
}
|
|
|
|
# You're using a hook
|
|
modifier = {
|
|
add = 100
|
|
desc = SCHEME_WEAK_HOOK_USED
|
|
scope:hook = yes
|
|
}
|
|
|
|
# You promised higher taxes
|
|
modifier = {
|
|
add = 25
|
|
desc = AI_HIGHER_OBLIGATIONS_REASON
|
|
scope:high_obligations = yes
|
|
}
|
|
|
|
# Are they Nomadic
|
|
modifier = {
|
|
add = 25
|
|
desc = game_concept_nomadic_government
|
|
scope:recipient = { government_has_flag = government_is_nomadic }
|
|
}
|
|
}
|
|
|
|
#ai_will_do = {
|
|
# base = 0
|
|
#}
|
|
#
|
|
#ai_targets = {
|
|
# ai_recipients = suzerain
|
|
#}
|
|
}
|
|
|
|
mpo_gift_herd_interaction = {
|
|
icon = herd_interaction
|
|
category = interaction_category_friendly
|
|
common_interaction = yes
|
|
interface_priority = 65
|
|
desc = mpo_gift_herd_interaction_desc
|
|
|
|
greeting = positive
|
|
notification_text = SEND_GIFT_HERD_PROPOSAL
|
|
|
|
answer_accept_key = SEND_GIFT_HERD_ACCEPT
|
|
answer_reject_key = SEND_GIFT_HERD_REJECT
|
|
|
|
ai_targets = {
|
|
ai_recipients = scripted_relations
|
|
ai_recipients = liege
|
|
ai_recipients = suzerain
|
|
ai_recipients = head_of_faith
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = neighboring_rulers
|
|
ai_recipients = peer_vassals
|
|
max = 10
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = vassals
|
|
max = 10
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = tributaries
|
|
max = 10
|
|
}
|
|
ai_target_quick_trigger = {
|
|
adult = yes
|
|
}
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 60
|
|
duchy = 60
|
|
kingdom = 60
|
|
empire = 60
|
|
hegemony = 0
|
|
}
|
|
|
|
is_shown = {
|
|
NOT = {
|
|
scope:recipient = scope:actor
|
|
}
|
|
scope:actor = { government_has_flag = government_is_nomadic }
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
exists = domicile
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor.domicile.herd >= herd_gift_value
|
|
}
|
|
|
|
on_auto_accept = {
|
|
scope:recipient = {
|
|
trigger_event = mpo_interactions_events.0020
|
|
}
|
|
}
|
|
|
|
on_accept = {
|
|
scope:recipient = {
|
|
# Verify that they could become friend
|
|
if = {
|
|
limit = {
|
|
NAND = {
|
|
has_relation_friend = scope:actor
|
|
has_relation_lover = scope:actor
|
|
has_relation_soulmate = scope:actor
|
|
has_relation_best_friend = scope:actor
|
|
}
|
|
}
|
|
gifting_leads_towards_friendship_effect = yes
|
|
}
|
|
}
|
|
|
|
scope:actor = {
|
|
# Warning for multiple gifts
|
|
if = {
|
|
limit = {
|
|
is_ai = no
|
|
scope:recipient = {
|
|
has_opinion_modifier = {
|
|
target = scope:actor
|
|
modifier = sent_herd_opinion
|
|
}
|
|
}
|
|
}
|
|
custom_tooltip = ALREADY_SENT_GIFT_HERD_WARNING
|
|
}
|
|
|
|
send_interface_message = {
|
|
type = event_gold_neutral
|
|
title = gift_interaction_notification
|
|
right_icon = scope:recipient
|
|
pay_herd = {
|
|
target = scope:recipient
|
|
value = domicile.herd_gift_value
|
|
}
|
|
stress_impact = {
|
|
greedy = medium_stress_impact_gain
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
NOT = {
|
|
is_heir_of = scope:actor
|
|
}
|
|
}
|
|
}
|
|
stress_impact = {
|
|
generous = medium_stress_impact_loss
|
|
}
|
|
}
|
|
|
|
#FP3 Tenet Communal Possessions Perk - piety gain for gift giving.
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
faith = {
|
|
has_doctrine_parameter = piety_from_gifts_active
|
|
}
|
|
}
|
|
}
|
|
scope:actor = {
|
|
add_piety = minor_piety_gain
|
|
}
|
|
}
|
|
|
|
# Let's apply the opinion modifier last, as to apply everything else correctly first
|
|
scope:recipient = {
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = sent_herd_opinion
|
|
opinion = sent_herd_opinion_value
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_accept = {
|
|
base = 0
|
|
modifier = {
|
|
add = 100
|
|
desc = HERD_REASON
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
is_available_at_peace_ai_adult = yes
|
|
ai_greed < medium_positive_ai_value
|
|
domicile.herd >= {
|
|
value = major_herd_value_static
|
|
multiply = 3
|
|
}
|
|
NOT = { has_variable = conqueror }
|
|
ai_should_focus_on_building_in_their_capital = no
|
|
}
|
|
|
|
auto_accept = {
|
|
custom_description = {
|
|
text = auto_accept_interaction_ai
|
|
object = scope:recipient
|
|
scope:recipient = {
|
|
is_ai = yes
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_min_reply_days = 1
|
|
ai_max_reply_days = 1
|
|
|
|
ai_will_do = {
|
|
base = 100
|
|
|
|
modifier = { # Do not send double-gifts
|
|
factor = 0
|
|
scope:recipient = {
|
|
has_opinion_modifier = {
|
|
target = scope:actor
|
|
modifier = sent_herd_opinion
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { # Special Blood Brother weight
|
|
add = 100
|
|
scope:actor = {
|
|
has_relation_blood_brother = scope:recipient
|
|
domicile.herd >= { # Do not lose all your Herd for this
|
|
value = herd_gift_value
|
|
multiply = 2
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = 100
|
|
scope:recipient = {
|
|
is_tributary_of = scope:actor
|
|
OR = {
|
|
ai_greed <= -50
|
|
is_obedient_to = scope:actor
|
|
opinion = {
|
|
target = scope:actor
|
|
value >= 50
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { # Basic Filtering
|
|
factor = 0
|
|
scope:recipient = {
|
|
NOR = {
|
|
AND = { # Bankrupt lovers, friends and a bankrupt liege should be considered
|
|
OR = {
|
|
scope:actor = {
|
|
any_liege_or_above = {
|
|
this = scope:recipient
|
|
}
|
|
}
|
|
has_secret_relation_lover = scope:actor
|
|
has_relation_lover = scope:actor
|
|
has_relation_soulmate = scope:actor
|
|
has_relation_friend = scope:actor
|
|
has_relation_best_friend = scope:actor
|
|
}
|
|
domicile.herd < minor_herd_value_static
|
|
}
|
|
AND = { # Generous characters will give gifts to their friends/lovers
|
|
OR = {
|
|
has_secret_relation_lover = scope:actor
|
|
has_relation_lover = scope:actor
|
|
has_relation_soulmate = scope:actor
|
|
has_relation_friend = scope:actor
|
|
has_relation_best_friend = scope:actor
|
|
}
|
|
scope:actor = {
|
|
OR = {
|
|
ai_greed <= high_negative_ai_value
|
|
AND = {
|
|
ai_greed < 0
|
|
culture = {
|
|
has_cultural_parameter = gives_more_gifts
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AND = { # Characters with the Generous Cultural Tradition will give gifts to more people
|
|
is_ruler = yes
|
|
OR = {
|
|
is_allied_to = scope:actor
|
|
is_close_or_extended_family_of = scope:actor
|
|
}
|
|
scope:actor = {
|
|
ai_greed < 0
|
|
culture = {
|
|
has_cultural_parameter = gives_more_gifts
|
|
}
|
|
}
|
|
}
|
|
AND = { # Characters with the loyal trait more likely to give gifts to friends/lieges
|
|
OR = {
|
|
scope:actor.liege ?= this
|
|
has_relation_friend = scope:actor
|
|
has_relation_best_friend = scope:actor
|
|
is_allied_to = scope:actor
|
|
is_close_or_extended_family_of = scope:actor
|
|
}
|
|
scope:actor = {
|
|
ai_greed <= 0
|
|
has_trait = loyal
|
|
}
|
|
}
|
|
AND = { # Powerful vassals should be considered
|
|
is_powerful_vassal_of = scope:actor
|
|
opinion = {
|
|
target = scope:actor
|
|
value < 0
|
|
}
|
|
NOT ={
|
|
has_opinion_modifier = {
|
|
target = scope:actor
|
|
modifier = sent_herd_opinion
|
|
}
|
|
}
|
|
}
|
|
AND = { # Factioneering vassals should be considered
|
|
is_vassal_of = scope:actor
|
|
is_a_faction_member = yes
|
|
NOT ={
|
|
has_opinion_modifier = {
|
|
target = scope:actor
|
|
modifier = sent_herd_opinion
|
|
}
|
|
}
|
|
}
|
|
AND = { # Realm Priests should be considered
|
|
scope:actor = {
|
|
faith = { has_doctrine = doctrine_theocracy_temporal }
|
|
exists = cp:councillor_court_chaplain
|
|
cp:councillor_court_chaplain = scope:recipient
|
|
}
|
|
opinion = {
|
|
target = scope:actor
|
|
value <= 25
|
|
}
|
|
NOT = {
|
|
has_opinion_modifier = {
|
|
target = scope:actor
|
|
modifier = sent_herd_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0.1
|
|
scope:recipient = {
|
|
opinion = {
|
|
target = scope:actor
|
|
value < 0
|
|
}
|
|
NAND = {
|
|
is_vassal_of = scope:actor
|
|
scope:actor = {
|
|
ai_rationality > 50
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0.1
|
|
scope:recipient = {
|
|
has_relation_rival = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
mpo_offer_submission_or_ruin = {
|
|
category = interaction_category_vassal
|
|
icon = invasion
|
|
popup_on_receive = yes
|
|
pause_on_receive = yes
|
|
ai_maybe = yes
|
|
|
|
desc = mpo_offer_submission_or_ruin_desc
|
|
|
|
ai_targets = {
|
|
ai_recipients = neighboring_rulers
|
|
}
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 0
|
|
duchy = 0
|
|
kingdom = 0
|
|
empire = 3
|
|
hegemony = 3
|
|
}
|
|
interface_priority = 300
|
|
common_interaction = yes
|
|
force_notification = yes
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
OR = {
|
|
mpo_has_gok_mongol_empire_trigger = yes
|
|
has_trait = greatest_of_khans
|
|
}
|
|
mpo_offer_submission_or_ruin_shown_actor_trigger = yes
|
|
}
|
|
scope:recipient = {
|
|
mpo_offer_submission_or_ruin_shown_recipient_trigger = yes
|
|
}
|
|
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor = {
|
|
mpo_offer_submission_or_ruin_valid_actor_trigger = yes
|
|
}
|
|
scope:recipient = {
|
|
mpo_offer_submission_or_ruin_valid_recipient_trigger = yes
|
|
}
|
|
}
|
|
|
|
is_highlighted = {
|
|
always = yes
|
|
}
|
|
|
|
greeting = positive
|
|
notification_text = OFFER_SUBMISSION_OR_RUIN_INTERACTION_NOTIFICATION
|
|
|
|
can_send_despite_rejection = yes
|
|
|
|
ai_min_reply_days = 3
|
|
ai_max_reply_days = 5
|
|
|
|
ai_accept = {
|
|
base = -50
|
|
# MAIN
|
|
# Heretic/Infidel modifier.
|
|
# Tier difference modifier.
|
|
# Dejure modifier.
|
|
# Distant/Remote Realm modifier.
|
|
# Military power difference modifier.
|
|
|
|
# MINOR
|
|
# Rivalry modifier.
|
|
# Same Dynasty modifier.
|
|
# Cultural/Cultural Group modifiers.
|
|
# Ageism modifier vs kids.
|
|
# Ruler Legitimacy modifier.
|
|
# Claimant modifier.
|
|
# FP3 Piety Level modifier.
|
|
|
|
# OPINION SCALES
|
|
# Dread
|
|
# Compare Opinion modifier.
|
|
|
|
#CONFEDERATION
|
|
modifier = {
|
|
desc = CONFEDERATION_MEMBER_REASON
|
|
scope:recipient = {
|
|
is_confederation_member = yes
|
|
}
|
|
add = -500
|
|
}
|
|
|
|
#HERDER
|
|
modifier = {
|
|
scope:recipient = { government_has_flag = government_is_true_herder }
|
|
add = 10000
|
|
desc = HERDER_REASON
|
|
}
|
|
|
|
#TRIBUTARY
|
|
modifier = {
|
|
desc = KING_SUZERAIN_REASON
|
|
scope:recipient = {
|
|
is_tributary = yes
|
|
NOT = {
|
|
is_tributary_of_suzerain_or_above = scope:actor
|
|
}
|
|
suzerain = {
|
|
highest_held_title_tier >= tier_kingdom
|
|
}
|
|
}
|
|
add = -50
|
|
}
|
|
modifier = {
|
|
desc = STRONG_SUZERAIN_REASON
|
|
scope:recipient = {
|
|
is_tributary = yes
|
|
NOT = {
|
|
is_tributary_of_suzerain_or_above = scope:actor
|
|
}
|
|
suzerain = {
|
|
sub_realm_size >= 20
|
|
}
|
|
}
|
|
add = -100
|
|
}
|
|
modifier = {
|
|
desc = STRONG_SUZERAIN_REASON
|
|
scope:recipient = {
|
|
is_tributary = yes
|
|
NOT = {
|
|
is_tributary_of_suzerain_or_above = scope:actor
|
|
}
|
|
scope:recipient.suzerain = {
|
|
current_military_strength >= scope:actor.current_military_strength
|
|
}
|
|
}
|
|
add = -300
|
|
}
|
|
modifier = {
|
|
desc = ALREADY_TRIBUTARY_REASON
|
|
scope:recipient = {
|
|
is_tributary_of_suzerain_or_above = scope:actor
|
|
}
|
|
add = 30
|
|
}
|
|
|
|
# PERKS
|
|
modifier = { # Perk boost
|
|
desc = offer_vassalization_true_ruler_perk_tt
|
|
trigger = {
|
|
scope:actor = { has_perk = true_ruler_perk }
|
|
}
|
|
add = 30
|
|
}
|
|
modifier = { # Education 5 boost
|
|
desc = offer_vassalization_education_diplomacy_5_tt
|
|
trigger = {
|
|
scope:actor = { has_trait_with_flag = offer_vassalisation_25 }
|
|
}
|
|
add = 25
|
|
}
|
|
|
|
# EVENTS - temporary bonuses gained by events
|
|
modifier = {
|
|
desc = event_bonus_to_vassal_accept_tt
|
|
trigger = {
|
|
scope:actor = { has_character_modifier = event_bonus_to_vassal_accept }
|
|
}
|
|
add = 20
|
|
}
|
|
|
|
|
|
# STRUGGLES - bonus gained by successful Sway scheme during the Persian Struggle
|
|
modifier = {
|
|
desc = fp3_persian_struggle_previously_swayed_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_opinion_modifier = {
|
|
modifier = scheme_sway_and_compelled_to_submit_opinion
|
|
target = scope:actor
|
|
}
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
|
|
modifier = {
|
|
desc = fp3_rekindler_of_iran_modifier_reason
|
|
trigger = {
|
|
AND = {
|
|
scope:actor = { dynasty ?={ has_dynasty_modifier = fp3_rekindler_of_iran_modifier } }
|
|
scope:recipient = { culture = { has_cultural_pillar = heritage_iranian } }
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
|
|
# OBEDIENCE
|
|
modifier = {
|
|
desc = obedient_interaction_reason
|
|
trigger = {
|
|
is_obedient_to = scope:actor
|
|
}
|
|
add = 100
|
|
}
|
|
|
|
modifier = { # Cultural Acceptance
|
|
add = offer_vassalage_acceptance_value
|
|
desc = cultural_acceptance_interaction_reason
|
|
trigger = {
|
|
scope:actor = {
|
|
NOR = {
|
|
has_same_culture_as = scope:recipient
|
|
government_has_flag = government_is_nomadic # Nomads do not care about Culture
|
|
has_trait = nomadic_philosophy
|
|
}
|
|
culture = {
|
|
cultural_acceptance = { target = scope:recipient.culture value <= 90 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# MAIN
|
|
modifier = { #Different faith, no pluralism.
|
|
desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
NOR = { # Nomads do not care about Faith
|
|
government_has_flag = government_is_nomadic
|
|
has_trait = nomadic_philosophy
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
NOR = { #Of two different faiths AND the potential vassal's faith is not pluralistic.
|
|
faith = scope:actor.faith
|
|
faith = { has_doctrine = doctrine_pluralism_pluralistic }
|
|
}
|
|
}
|
|
}
|
|
add = {
|
|
value = -40
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_hostile_level
|
|
}
|
|
}
|
|
}
|
|
add = -40
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_evil_level
|
|
}
|
|
}
|
|
}
|
|
add = -40
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { #Different faith, pluralism.
|
|
desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
NOR = { # Nomads do not care about Faith
|
|
government_has_flag = government_is_nomadic
|
|
has_trait = nomadic_philosophy
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
NOT = {
|
|
faith = scope:actor.faith
|
|
}
|
|
NOT = {
|
|
scope:actor.faith = { has_doctrine = doctrine_pluralism_pluralistic }
|
|
}
|
|
faith = { has_doctrine = doctrine_pluralism_pluralistic }
|
|
}
|
|
}
|
|
add = {
|
|
value = -20
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_hostile_level
|
|
}
|
|
}
|
|
}
|
|
add = -20
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_evil_level
|
|
}
|
|
}
|
|
}
|
|
add = -20
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { #Different faith, both have pluralism.
|
|
desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
NOR = { # Nomads do not care about Faith
|
|
government_has_flag = government_is_nomadic
|
|
has_trait = nomadic_philosophy
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
NOT = {
|
|
faith = scope:actor.faith
|
|
}
|
|
scope:actor.faith = { has_doctrine = doctrine_pluralism_pluralistic }
|
|
faith = { has_doctrine = doctrine_pluralism_pluralistic }
|
|
}
|
|
}
|
|
add = {
|
|
value = -10
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_hostile_level
|
|
}
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_evil_level
|
|
}
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
}
|
|
}
|
|
modifier = { #I am a King!
|
|
desc = offer_vassalization_interaction_aibehavior_hightier_tt
|
|
trigger = {
|
|
scope:recipient = { highest_held_title_tier = tier_kingdom }
|
|
}
|
|
add = {
|
|
value = -50
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
OR = {
|
|
government_has_flag = government_is_republic
|
|
government_has_flag = government_is_theocracy
|
|
}
|
|
}
|
|
}
|
|
add = -50
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.sub_realm_size >= 5
|
|
}
|
|
add = -50
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.sub_realm_size >= 10
|
|
}
|
|
add = -100
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.sub_realm_size >= 20
|
|
}
|
|
add = -100
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
is_ai = yes
|
|
}
|
|
}
|
|
add = -10000
|
|
}
|
|
}
|
|
}
|
|
modifier = { #I am an Emperor!!!
|
|
desc = offer_vassalization_interaction_aibehavior_hightier_tt
|
|
trigger = {
|
|
scope:recipient = { highest_held_title_tier >= tier_empire }
|
|
}
|
|
add = {
|
|
value = -200
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
OR = {
|
|
government_has_flag = government_is_republic
|
|
government_has_flag = government_is_theocracy
|
|
}
|
|
}
|
|
}
|
|
add = -100
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.sub_realm_size >= 10
|
|
}
|
|
add = -100
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.sub_realm_size >= 20
|
|
}
|
|
add = -200
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.sub_realm_size >= 40
|
|
}
|
|
add = -200
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
is_ai = yes
|
|
}
|
|
}
|
|
add = -10000
|
|
}
|
|
}
|
|
}
|
|
modifier = { #I fought an independence war against you.
|
|
desc = offer_vassalization_interaction_aibehavior_independence_war_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
exists = var:independence_war_former_liege
|
|
var:independence_war_former_liege = scope:actor
|
|
}
|
|
}
|
|
add = -300
|
|
}
|
|
modifier = { # We are both nomadic
|
|
desc = interaction_nonnomad_vs_nomad
|
|
trigger = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
add = 25
|
|
}
|
|
modifier = { # Isolationist tradition
|
|
desc = isolationist_reason
|
|
trigger = {
|
|
NOT = {
|
|
scope:actor.culture = scope:recipient.culture
|
|
}
|
|
scope:recipient.culture = {
|
|
has_cultural_tradition = tradition_isolationist
|
|
}
|
|
}
|
|
add = -25
|
|
}
|
|
modifier = { #Bankrupt
|
|
desc = bankrupt_reason
|
|
trigger = {
|
|
scope:actor.gold <= -1
|
|
}
|
|
add = -100
|
|
}
|
|
modifier = { #Wide difference in rank
|
|
desc = offer_vassalization_interaction_aibehavior_widetitletier_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
tier_difference = {
|
|
target = scope:recipient
|
|
value > 2
|
|
}
|
|
}
|
|
}
|
|
add = 40
|
|
}
|
|
modifier = { # Allied
|
|
desc = offer_vassalization_interaction_aibehavior_allied_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
is_allied_to = scope:actor
|
|
}
|
|
}
|
|
add = 25
|
|
}
|
|
modifier = { # Is the Rightful Liege of recipient
|
|
desc = offer_vassalization_interaction_aibehavior_rightfulliegetitleholder_tt
|
|
trigger = {
|
|
scope:actor = { is_rightful_liege_of = scope:recipient }
|
|
}
|
|
add = 50
|
|
}
|
|
modifier = { # Encircled
|
|
desc = offer_vassalization_interaction_aibehavior_encircled_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOT = {
|
|
any_neighboring_top_liege_realm_owner = {
|
|
NOT = {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
}
|
|
NOT = {
|
|
any_realm_county = {
|
|
is_coastal_county = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
modifier = { #Distant Realm — Overseas Connection
|
|
desc = offer_vassalization_interaction_aibehavior_distantrealm_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
character_is_realm_neighbor = scope:recipient
|
|
NOT = { #Ibiza should want to be a vassal of Mallorca, etc.
|
|
character_is_land_realm_neighbor = scope:recipient
|
|
scope:actor = { is_rightful_liege_of = scope:recipient }
|
|
}
|
|
}
|
|
}
|
|
add = -50
|
|
}
|
|
modifier = { #Distant Realm — No Connection
|
|
desc = offer_vassalization_interaction_aibehavior_distantrealm_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
NOT = {
|
|
character_is_realm_neighbor = scope:recipient
|
|
}
|
|
}
|
|
scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value < 200000 } }
|
|
}
|
|
add = -100
|
|
}
|
|
modifier = { #Remote Realm.
|
|
desc = offer_vassalization_interaction_aibehavior_remoterealm_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
NOT = {
|
|
character_is_realm_neighbor = scope:recipient
|
|
}
|
|
}
|
|
scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value >= 200000 } }
|
|
}
|
|
add = -200
|
|
}
|
|
modifier = {
|
|
desc = offer_vassalization_interaction_aibehavior_power_tt_submission_or_ruin
|
|
add = {
|
|
value = 1
|
|
subtract = {
|
|
value = scope:recipient.max_military_strength # Intended for recipient to use max, to avoid having vassalizations become too easy for weakened realms
|
|
divide = { value = scope:actor.current_military_strength min = 1 }
|
|
}
|
|
multiply = 100
|
|
ceiling = yes
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = offer_vassalization_interaction_aibehavior_vassal_opinion_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
number_of_powerful_vassals >= 1
|
|
}
|
|
}
|
|
|
|
add = {
|
|
value = 0
|
|
scope:actor = {
|
|
every_powerful_vassal = {
|
|
if = {
|
|
limit = {
|
|
save_temporary_opinion_value_as = {
|
|
name = vassal_opinion
|
|
target = scope:actor
|
|
}
|
|
}
|
|
add = scope:vassal_opinion
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
number_of_powerful_vassals > 0
|
|
}
|
|
divide = number_of_powerful_vassals
|
|
}
|
|
else = {
|
|
divide = 10
|
|
}
|
|
}
|
|
|
|
divide = 10
|
|
}
|
|
}
|
|
|
|
# MINOR
|
|
modifier = { #Friend modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_friend_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_friend = scope:actor
|
|
NOT = { has_relation_best_friend = scope:actor }
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
modifier = { #Best Friend modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_best_friend_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_best_friend = scope:actor
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
modifier = { #Lover modifier.
|
|
desc = interaction_lover
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_lover = scope:actor
|
|
NOT = { has_relation_soulmate = scope:actor }
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
modifier = { #Soulmate modifier.
|
|
desc = interaction_soulmate
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_soulmate = scope:actor
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
modifier = { #Rivalry modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_rival_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_rival = scope:actor
|
|
NOT = { has_relation_nemesis = scope:actor }
|
|
}
|
|
}
|
|
add = -200
|
|
}
|
|
modifier = { #Nemesis modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_nemesis_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_nemesis = scope:actor
|
|
}
|
|
}
|
|
add = -2000
|
|
}
|
|
modifier = { #Same Dynasty modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_dynasty_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
dynasty = scope:actor.dynasty
|
|
}
|
|
}
|
|
add = 25
|
|
}
|
|
|
|
modifier = { # Same language
|
|
add = 5
|
|
desc = speaks_same_language_interaction_reason
|
|
trigger = {
|
|
scope:actor = {
|
|
knows_language_of_culture = scope:recipient.culture
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { # Iberian Struggle, less likely for outsiders to vassalize inside
|
|
add = -35
|
|
desc = iberian_struggle_reason_reason
|
|
trigger = {
|
|
scope:actor = {
|
|
NOT = {
|
|
any_character_struggle = { is_struggle_type = iberian_struggle }
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
any_character_struggle = { is_struggle_type = iberian_struggle }
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { #Ageism modifier vs kids.
|
|
desc = offer_vassalization_interaction_aibehavior_child_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
age < 12
|
|
}
|
|
scope:recipient = {
|
|
age > 16
|
|
}
|
|
}
|
|
add = -5
|
|
}
|
|
modifier = { #Illegitimacy modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_illegitimate_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
OR = {
|
|
AND = {
|
|
has_trait = bastard
|
|
scope:recipient = {
|
|
faith = { NOT = { has_doctrine = doctrine_bastardry_none } }
|
|
}
|
|
}
|
|
has_trait = denounced
|
|
has_trait = disinherited
|
|
}
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
|
|
modifier = { #Claimant modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_claimant_tt
|
|
trigger = {
|
|
scope:actor.primary_title = {
|
|
scope:recipient = {
|
|
has_claim_on = prev
|
|
}
|
|
}
|
|
}
|
|
add = -50
|
|
}
|
|
|
|
modifier = { # Ambitious
|
|
desc = TAKE_THE_VOWS_AMBITIOUS
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = ambitious
|
|
}
|
|
}
|
|
add = -30
|
|
}
|
|
modifier = { # Brave
|
|
desc = INTERACTION_BRAVE
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = brave
|
|
}
|
|
}
|
|
add = -30
|
|
}
|
|
modifier = { # wrathful
|
|
desc = INTERACTION_WRATHFUL
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = wrathful
|
|
}
|
|
}
|
|
add = -40
|
|
}
|
|
modifier = { # vengeful
|
|
desc = INTERACTION_VENGEFUL
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = vengeful
|
|
}
|
|
}
|
|
add = -20
|
|
}
|
|
modifier = { # peasant leader
|
|
desc = INTERACTION_PEASANT_LEADER
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = peasant_leader
|
|
}
|
|
}
|
|
add = -40
|
|
}
|
|
modifier = { # populist leader
|
|
desc = INTERACTION_POPULIST_LEADER
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = populist_leader
|
|
}
|
|
}
|
|
add = -100
|
|
}
|
|
modifier = { #martial leader
|
|
desc = INTERACTION_MARTIAL_EDUCATION
|
|
trigger = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_education_martial_trigger = yes
|
|
has_martial_lifestyle_trait_trigger = yes
|
|
}
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
modifier = { # Arrogant
|
|
desc = INTERACTION_ARROGANT
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = arrogant
|
|
}
|
|
}
|
|
add = -60
|
|
}
|
|
|
|
modifier = { # Fickle
|
|
desc = INTERACTION_FICKLE
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = fickle
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
|
|
modifier = { # Stubborn
|
|
desc = INTERACTION_STUBBORN
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = stubborn
|
|
}
|
|
}
|
|
add = -180
|
|
}
|
|
|
|
modifier = { # Trusting
|
|
desc = TAKE_THE_VOWS_TRUSTING
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = trusting
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
|
|
modifier = { # Humble
|
|
desc = INTERACTION_HUMBLE
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = humble
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
|
|
modifier = { # Content
|
|
desc = INTERACTION_CONTENT
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = content
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
|
|
modifier = { # Craven
|
|
desc = INTERACTION_CRAVEN
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = craven
|
|
}
|
|
}
|
|
add = 100
|
|
}
|
|
|
|
modifier = { # FP3 modifier.
|
|
desc = GENERIC_YOUR_PIETY_LEVEL_MODIFIER
|
|
trigger = { scope:actor = { any_character_struggle = { has_struggle_phase_parameter = piety_level_affects_vassalage_acceptance } } }
|
|
add = {
|
|
value = {
|
|
value = scope:actor.piety_level
|
|
subtract = low_piety_level
|
|
}
|
|
multiply = 10
|
|
}
|
|
}
|
|
|
|
# OPINION INFLUENCE
|
|
modifier = {
|
|
add = intimidated_reason_value
|
|
scope:recipient = {
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 1
|
|
}
|
|
}
|
|
desc = INTIMIDATED_REASON
|
|
}
|
|
modifier = {
|
|
add = cowed_reason_value
|
|
scope:recipient = {
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 2
|
|
}
|
|
}
|
|
desc = COWED_REASON
|
|
}
|
|
opinion_modifier = { #Compare Opinion modifier - Clans care more about opinion
|
|
trigger = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_clan
|
|
}
|
|
scope:recipient = {
|
|
government_has_flag = government_is_clan
|
|
}
|
|
}
|
|
who = scope:recipient
|
|
opinion_target = scope:actor
|
|
multiplier = 0.7
|
|
}
|
|
opinion_modifier = { #Compare Opinion modifier.
|
|
trigger = {
|
|
OR = {
|
|
scope:actor = {
|
|
NOT = { government_has_flag = government_is_clan }
|
|
}
|
|
scope:recipient = {
|
|
NOT = { government_has_flag = government_is_clan }
|
|
}
|
|
}
|
|
}
|
|
who = scope:recipient
|
|
opinion_target = scope:actor
|
|
multiplier = 0.35
|
|
}
|
|
|
|
# DIPLOMATIC COURT GRANDEUR BONUS
|
|
modifier = {
|
|
trigger = {
|
|
scope:actor = {
|
|
has_royal_court = yes
|
|
has_dlc_feature = royal_court
|
|
has_court_type = court_diplomatic
|
|
court_grandeur_current_level >= 1
|
|
}
|
|
}
|
|
add = {
|
|
value = scope:actor.court_grandeur_current
|
|
if = {
|
|
limit = { # Reduce the bonus if you are below your expected level
|
|
scope:actor = {
|
|
court_grandeur_current_level < court_grandeur_minimum_expected_level
|
|
}
|
|
}
|
|
multiply = 0.15
|
|
}
|
|
else = {
|
|
multiply = 0.3
|
|
}
|
|
}
|
|
desc = DIPLOMATIC_COURT_ACCEPTANCE_INCREASE_REASON
|
|
}
|
|
|
|
# CONTRACT OPTIONS
|
|
modifier = {
|
|
add = 20
|
|
scope:actor = {
|
|
faith = {
|
|
has_doctrine = doctrine_pluralism_pluralistic
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
OR = {
|
|
government_has_flag = government_is_feudal
|
|
government_has_flag = government_is_clan
|
|
}
|
|
}
|
|
desc = CONTRACT_RELIGIOUS_EXEMPTION_REASON
|
|
}
|
|
modifier = {
|
|
add = 30
|
|
scope:low_obligations = yes
|
|
desc = CONTRACT_MERCIFUL_KHAN_REASON
|
|
}
|
|
modifier = {
|
|
add = -10
|
|
scope:send_siege_weapons = yes
|
|
desc = CONTRACT_SEND_SIEGE_WEAPONS_REASON
|
|
}
|
|
modifier = {
|
|
add = -50
|
|
scope:recipient = {
|
|
NOT = {
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
scope:send_tribute = yes
|
|
desc = CONTRACT_SEND_TRIBUTE_REASON
|
|
}
|
|
|
|
# INSPECTION BONUSES
|
|
modifier = {
|
|
desc = "INSPECTION_REASON"
|
|
add = 5
|
|
scope:recipient = {
|
|
has_variable_list = lesser_inspection_bonus
|
|
is_target_in_variable_list = {
|
|
name = lesser_inspection_bonus
|
|
target = scope:actor
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "INSPECTION_REASON"
|
|
add = 10
|
|
scope:recipient = {
|
|
has_variable_list = inspection_bonus
|
|
is_target_in_variable_list = {
|
|
name = inspection_bonus
|
|
target = scope:actor
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "INSPECTION_REASON_REWARD"
|
|
add = 10
|
|
scope:recipient = {
|
|
has_variable_list = inspection_reward
|
|
is_target_in_variable_list = {
|
|
name = inspection_reward
|
|
target = scope:actor
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "INSPECTION_REASON_REWARD_FOCUSED"
|
|
add = 10
|
|
scope:actor = { has_character_modifier = inspection_reward_focused_vassal_acceptance }
|
|
}
|
|
|
|
# LOW LEGITIMACY
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -10
|
|
scope:actor = {
|
|
has_legitimacy_flag = reduced_vassalization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -20
|
|
scope:actor = {
|
|
has_legitimacy_flag = very_reduced_vassalization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -50
|
|
scope:actor = {
|
|
has_legitimacy_flag = massively_reduced_vassalization_acceptance
|
|
}
|
|
}
|
|
|
|
# HIGH LEGITIMACY
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
add = 25
|
|
scope:actor = {
|
|
has_legitimacy_flag = increased_vassalization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
add = 50
|
|
scope:actor = {
|
|
has_legitimacy_flag = very_increased_vassalization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
add = 75
|
|
scope:actor = {
|
|
has_legitimacy_flag = extra_increased_vassalization_acceptance
|
|
}
|
|
}
|
|
|
|
# INFLUENCE
|
|
modifier = {
|
|
add = 25
|
|
scope:influence_send_option = yes
|
|
desc = INFLUENCE_INTERACTION_ACCEPTANCE_SEND_OPTION
|
|
}
|
|
|
|
#HISTORICALLY ADMIN PEOPLES WANT TO BE ADMIN
|
|
modifier = {
|
|
add = 30
|
|
scope:actor = {
|
|
government_has_flag = government_is_administrative
|
|
}
|
|
scope:recipient = {
|
|
culture = {
|
|
OR = {
|
|
this = culture:greek
|
|
any_parent_culture_or_above = {
|
|
this = culture:greek
|
|
}
|
|
this = culture:han
|
|
any_parent_culture_or_above = {
|
|
this = culture:han
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
desc = "HISTORICAL_ADMIN_REASON"
|
|
}
|
|
|
|
modifier = { # AI-only weights, keep the pope from vassalizing too fast
|
|
trigger = {
|
|
exists = faith:catholic.religious_head
|
|
faith:catholic.religious_head = scope:actor
|
|
scope:actor = { is_ai = yes }
|
|
}
|
|
add = -50
|
|
}
|
|
|
|
modifier = {
|
|
trigger = {
|
|
scope:actor = {
|
|
has_variable = severed_head_vassalization
|
|
var:severed_head_vassalization = {
|
|
this = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
add = 200
|
|
desc = COWED_BY_SEVERED_HEAD_MODIFIER
|
|
}
|
|
|
|
modifier = { #You're distracted by another war
|
|
desc = IS_AT_WAR_REASON
|
|
trigger = {
|
|
scope:actor = {
|
|
is_at_war = yes
|
|
}
|
|
}
|
|
add = -20
|
|
}
|
|
modifier = { #You're distracted by multiple wars
|
|
desc = HAS_MULTIPLE_WARS_REASON
|
|
trigger = {
|
|
scope:actor = {
|
|
any_character_war = {
|
|
count >= 2
|
|
exists = this
|
|
}
|
|
}
|
|
}
|
|
add = {
|
|
value = 0
|
|
scope:actor = {
|
|
every_character_war = {
|
|
add = -15
|
|
}
|
|
}
|
|
}
|
|
}
|
|
modifier = { #You have waged terrifying wars of devastation...
|
|
desc = WAGED_KHANS_TERROR_WARS_REASON
|
|
trigger = {
|
|
scope:actor = {
|
|
has_variable = gok_terror_war_value
|
|
}
|
|
}
|
|
add = scope:actor.var:gok_terror_war_value
|
|
}
|
|
#Swift initial spread with nomads for mongol invasion
|
|
modifier = {
|
|
scope:actor = {
|
|
is_ai = yes
|
|
realm_size < 50
|
|
any_owned_story = {
|
|
story_type = story_mongol_invasion
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
is_ai = yes
|
|
government_has_flag = government_is_nomadic
|
|
realm_size < 10
|
|
highest_held_title_tier < tier_kingdom
|
|
}
|
|
add = 100
|
|
}
|
|
modifier = { # Pacing needed for AI genghis
|
|
trigger = {
|
|
scope:actor = {
|
|
is_ai = yes
|
|
}
|
|
scope:recipient = {
|
|
is_ai = yes
|
|
ai_boldness >= 0
|
|
OR = {
|
|
realm_size > 10
|
|
is_confederation_member = yes
|
|
}
|
|
}
|
|
#During genghis' initial expanding in Mongolia, nomads are exempt from this malus
|
|
NAND = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
highest_held_title_tier < tier_kingdom
|
|
}
|
|
scope:actor = {
|
|
realm_size < 100
|
|
any_owned_story = {
|
|
story_type = story_mongol_invasion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
add = -1000
|
|
}
|
|
}
|
|
|
|
# Low starting obligations
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
NOT = {
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
}
|
|
flag = low_obligations
|
|
localization = lenient_obligations
|
|
}
|
|
|
|
#Normal obligations for normies
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
OR = {
|
|
highest_held_title_tier < tier_duchy
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
}
|
|
starts_enabled = { always = yes }
|
|
flag = normal_obligations
|
|
localization = gok_normal_obligations
|
|
}
|
|
#Demand army
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
NOT = {
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
highest_held_title_tier >= tier_duchy
|
|
}
|
|
}
|
|
flag = send_army
|
|
localization = send_army
|
|
starts_enabled = {
|
|
scope:recipient = {
|
|
mpo_gok_auto_cultural_maa_trigger = yes
|
|
highest_held_title_tier >= tier_duchy
|
|
}
|
|
}
|
|
}
|
|
#Demand siege weapons
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
government_has_flag = government_is_true_herder
|
|
government_has_flag = government_is_tribal
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
highest_held_title_tier >= tier_duchy
|
|
}
|
|
}
|
|
flag = send_siege_weapons
|
|
localization = send_siege_weapons
|
|
starts_enabled = {
|
|
scope:recipient = {
|
|
mpo_gok_auto_cultural_maa_trigger = no
|
|
highest_held_title_tier >= tier_duchy
|
|
}
|
|
}
|
|
}
|
|
|
|
#Demand immediate tribute
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
NOT = {
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
}
|
|
flag = send_tribute
|
|
localization = send_tribute
|
|
}
|
|
|
|
send_option = { # EP3 Influence
|
|
is_shown = {
|
|
scope:actor = {
|
|
government_has_flag = government_has_influence
|
|
}
|
|
}
|
|
is_valid = {
|
|
scope:actor = { influence >= medium_influence_value }
|
|
}
|
|
flag = influence_send_option
|
|
localization = TRADE_INFLUENCE_FOR_BETTER_AI_ACCEPTANCE
|
|
}
|
|
|
|
send_options_exclusive = yes
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
save_scope_as = gok
|
|
}
|
|
mpo_gok_offer_submission_effect = yes
|
|
|
|
scope:recipient = {
|
|
add_character_flag = {
|
|
flag = accepted_gok_submission
|
|
years = 3
|
|
}
|
|
}
|
|
|
|
scope:actor = {
|
|
#If recipient isn't a big deal, fire a hidden event that just creates a feed notification (to minimize khan clicking)
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
highest_held_title_tier >= tier_kingdom
|
|
sub_realm_size >= 10
|
|
}
|
|
}
|
|
}
|
|
trigger_event = mpo_greatest_of_khans.0020
|
|
}
|
|
else = {
|
|
trigger_event = mpo_greatest_of_khans.0021
|
|
}
|
|
|
|
## Remove bonus, it's been used
|
|
if = {
|
|
limit = { has_character_modifier = event_bonus_to_vassal_accept }
|
|
remove_character_modifier = event_bonus_to_vassal_accept
|
|
}
|
|
|
|
if = { # FP3
|
|
limit = { any_character_struggle = { has_struggle_phase_parameter = offer_vassalization_removes_disloyalty } }
|
|
scope:recipient = { remove_trait = disloyal }
|
|
}
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
scope:recipient = {
|
|
save_scope_as = gok_victim
|
|
if = {
|
|
limit = {
|
|
is_tributary_of = scope:actor
|
|
}
|
|
end_tributary = yes
|
|
}
|
|
}
|
|
scope:actor = {
|
|
show_as_tooltip = {
|
|
mpo_gok_offer_submission_refusal_effect = yes
|
|
}
|
|
|
|
trigger_event = mpo_greatest_of_khans.0022
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
any_owned_story = {
|
|
OR = {
|
|
story_type = story_greatest_of_khans
|
|
story_type = story_mongol_invasion
|
|
}
|
|
}
|
|
is_independent_ruler = yes
|
|
#Not defending or losing an attacking war
|
|
NOT = {
|
|
any_character_war = {
|
|
OR = {
|
|
AND = {
|
|
any_war_attacker = {
|
|
this = root
|
|
}
|
|
attacker_war_score < 0
|
|
}
|
|
any_war_defender = {
|
|
this = root
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Already engaged in three wars
|
|
any_character_war = {
|
|
count >= 3
|
|
exists = this
|
|
}
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 100
|
|
|
|
# AI prefers to receive higher obligations from their vassals when possible.
|
|
modifier = {
|
|
factor = 2
|
|
scope:low_obligations = yes
|
|
}
|
|
|
|
modifier = {
|
|
factor = 3
|
|
scope:normal_obligations = yes
|
|
}
|
|
|
|
modifier = {
|
|
factor = 4
|
|
scope:send_army = yes
|
|
}
|
|
modifier = {
|
|
factor = 4
|
|
scope:send_siege_weapons = yes
|
|
}
|
|
modifier = {
|
|
factor = 5
|
|
scope:send_tribute = yes
|
|
}
|
|
modifier = {
|
|
factor = 3
|
|
scope:recipient = {
|
|
sub_realm_size < 3
|
|
}
|
|
}
|
|
|
|
#really want to get of little realms we encircle
|
|
modifier = {
|
|
factor = 10
|
|
scope:recipient = {
|
|
realm_size <= 20
|
|
NOT = {
|
|
any_neighboring_top_liege_realm_owner = {
|
|
NOT = {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Would rather just destroy someone they hate or distrust
|
|
modifier = {
|
|
factor = 0
|
|
OR = {
|
|
has_relation_rival = scope:recipient
|
|
opinion = {
|
|
target = scope:recipient
|
|
value <= -90
|
|
}
|
|
scope:recipient = {
|
|
has_trait = disloyal
|
|
}
|
|
scope:recipient = {
|
|
has_trait = conqueror
|
|
}
|
|
scope:recipient = {
|
|
has_trait = ambitious
|
|
}
|
|
scope:recipient = {
|
|
ai_greed >= medium_positive_ai_value
|
|
ai_honor <= medium_negative_ai_value
|
|
}
|
|
}
|
|
}
|
|
#Should only attack China when very strong
|
|
modifier = {
|
|
factor = 0.1
|
|
scope:recipient = {
|
|
primary_title = title:h_china
|
|
current_military_strength > scope:actor.half_current_military_strength
|
|
}
|
|
}
|
|
modifier = {
|
|
factor = 0
|
|
scope:recipient = {
|
|
current_military_strength > 0
|
|
scope:actor.current_military_strength > 0
|
|
current_military_strength > scope:actor.current_military_strength
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
### Negotiate Obedience
|
|
mpo_negotiate_obedience_interaction = {
|
|
category = interaction_category_vassal
|
|
icon = demand_obedience
|
|
desc = mpo_negotiate_obedience_interaction_desc
|
|
interface_priority = 80
|
|
common_interaction = yes
|
|
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 24
|
|
duchy = 6
|
|
kingdom = 6
|
|
empire = 6
|
|
hegemony = 6
|
|
}
|
|
popup_on_receive = yes
|
|
pause_on_receive = yes
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
government_allows = obedience
|
|
}
|
|
scope:recipient = {
|
|
is_ai = yes
|
|
obedience_target ?= scope:actor
|
|
is_obedient = no
|
|
}
|
|
}
|
|
|
|
cost = {
|
|
prestige = {
|
|
value = medium_prestige_value
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
OR = {
|
|
has_realm_law = nomadic_authority_2
|
|
has_realm_law = meritocratic_bureaucracy_1
|
|
}
|
|
}
|
|
}
|
|
multiply = 1.25
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:actor = {
|
|
OR = {
|
|
has_realm_law = nomadic_authority_3
|
|
has_realm_law = meritocratic_bureaucracy_2
|
|
}
|
|
}
|
|
}
|
|
multiply = 1.5
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:actor = {
|
|
OR = {
|
|
has_realm_law = nomadic_authority_4
|
|
has_realm_law = meritocratic_bureaucracy_3
|
|
}
|
|
}
|
|
}
|
|
multiply = 1.75
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:actor = { has_realm_law = nomadic_authority_5 }
|
|
}
|
|
multiply = 2
|
|
}
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor = {
|
|
is_imprisoned = no
|
|
NOT = {
|
|
is_at_war_with = scope:recipient
|
|
}
|
|
}
|
|
trigger_if = {
|
|
limit = {
|
|
scope:recipient = { is_landed = yes is_independent_ruler = no }
|
|
}
|
|
scope:recipient = { is_vassal_or_below_of = scope:actor }
|
|
}
|
|
trigger_else_if = {
|
|
limit = {
|
|
scope:recipient = { is_independent_ruler = yes }
|
|
}
|
|
scope:actor = {
|
|
custom_tooltip = {
|
|
text = mpo_interaction_not_neighbouring_tt
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
this = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
}
|
|
trigger_else = {}
|
|
}
|
|
|
|
ai_potential = {
|
|
government_allows = obedience
|
|
primary_title.tier >= tier_duchy
|
|
prestige >= major_prestige_value
|
|
}
|
|
|
|
send_option = {
|
|
is_valid = {
|
|
scope:actor = {
|
|
has_usable_hook = scope:recipient
|
|
}
|
|
}
|
|
flag = hook
|
|
localization = GENERIC_SPEND_A_HOOK
|
|
}
|
|
|
|
send_option = {
|
|
is_valid = {
|
|
scope:actor = {
|
|
gold >= medium_gold_value
|
|
}
|
|
}
|
|
flag = gold
|
|
localization = OFFER_GOLD_FOR_BETTER_AI_ACCEPTANCE
|
|
}
|
|
|
|
send_option = {
|
|
is_valid = {
|
|
scope:actor = {
|
|
trigger_if = {
|
|
limit = { government_has_flag = government_is_nomadic }
|
|
domicile ?= {
|
|
herd >= medium_herd_value
|
|
}
|
|
}
|
|
trigger_else = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
}
|
|
flag = herd
|
|
localization = OFFER_HERD_FOR_BETTER_AI_ACCEPTANCE
|
|
}
|
|
|
|
send_options_exclusive = no
|
|
|
|
ai_accept = {
|
|
base = -95
|
|
modifier = {
|
|
trigger = {
|
|
scope:hook ?= yes
|
|
}
|
|
add = 100
|
|
desc = MIGRATION_HOOK_USED
|
|
}
|
|
modifier = {
|
|
trigger = {
|
|
scope:gold ?= yes
|
|
}
|
|
add = 100
|
|
desc = TRADE_GOLD_FOR_BETTER_AI_ACCEPTANCE_TT
|
|
}
|
|
modifier = {
|
|
trigger = {
|
|
scope:herd ?= yes
|
|
}
|
|
add = 100
|
|
desc = TRADE_HERD_FOR_BETTER_AI_ACCEPTANCE_TT
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
scope:actor = {
|
|
OR = {
|
|
has_realm_law = nomadic_authority_2
|
|
has_realm_law = meritocratic_bureaucracy_1
|
|
}
|
|
}
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_DOMINANCE_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
scope:actor = {
|
|
OR = {
|
|
has_realm_law = nomadic_authority_3
|
|
has_realm_law = meritocratic_bureaucracy_2
|
|
}
|
|
}
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_DOMINANCE_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 20
|
|
scope:actor = {
|
|
OR = {
|
|
has_realm_law = nomadic_authority_4
|
|
has_realm_law = meritocratic_bureaucracy_3
|
|
}
|
|
}
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_DOMINANCE_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 100
|
|
scope:actor = { has_realm_law = nomadic_authority_5 }
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_DOMINANCE_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = -30
|
|
scope:actor = { legitimacy_level = 1 }
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = -20
|
|
scope:actor = { legitimacy_level = 2 }
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
scope:actor = { legitimacy_level = 3 }
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
scope:actor = { legitimacy_level = 4 }
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 30
|
|
scope:actor = { legitimacy_level = 5 }
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = ai_boldness
|
|
multiply = -1
|
|
divide = 2
|
|
}
|
|
NOT = { ai_boldness = 0 }
|
|
desc = ARTIFACT_BOLDNESS_REASON
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = ai_greed
|
|
multiply = -1
|
|
divide = 2
|
|
}
|
|
ai_greed > 0
|
|
desc = ARTIFACT_GREED_REASON
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = ai_honor
|
|
divide = 4
|
|
}
|
|
NOT = { ai_honor = 0 }
|
|
desc = ARTIFACT_HONOR_REASON
|
|
}
|
|
modifier = {
|
|
add = -20
|
|
scope:recipient = {
|
|
has_trait = brave
|
|
}
|
|
desc = BLACKMAIL_INTERACTION_BRAVE_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = -50
|
|
scope:recipient = {
|
|
has_trait = arrogant
|
|
}
|
|
desc = BLACKMAIL_INTERACTION_ARROGANT_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 25
|
|
scope:recipient = {
|
|
has_trait = trusting
|
|
}
|
|
desc = BLACKMAIL_INTERACTION_TRUSTING_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = -50
|
|
scope:recipient = {
|
|
has_trait = disloyal
|
|
}
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_DISLOYAL_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = -500
|
|
scope:actor = { government_has_flag = government_is_nomadic }
|
|
scope:recipient = {
|
|
exists = domicile
|
|
domicile.herd >= 100
|
|
domicile.herd > scope:actor.domicile.herd
|
|
}
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_HERD_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = -500
|
|
scope:recipient = {
|
|
current_military_strength >= 100
|
|
current_military_strength > scope:actor.current_military_strength
|
|
}
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_MILITARY_MIGHT_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
scope:recipient = {
|
|
has_trait = craven
|
|
}
|
|
desc = BLACKMAIL_INTERACTION_CRAVEN_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
scope:recipient = {
|
|
has_trait = content
|
|
}
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_CONTENT_ACCEPTANCE
|
|
}
|
|
modifier = {
|
|
add = 25
|
|
any_character_situation = {
|
|
any_situation_sub_region = {
|
|
has_sub_region_phase_parameter = the_great_steppe_easier_obedience
|
|
any_situation_sub_region_participant_group = {
|
|
participant_group_type = nomad_rulers_capital
|
|
participant_group_has_character = scope:actor
|
|
}
|
|
}
|
|
}
|
|
desc = DEMAND_OBEDIENCE_INTERACTION_ZUD_ACCEPTANCE
|
|
}
|
|
bp2_hostage_dread_modifier = yes
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 0
|
|
modifier = {
|
|
scope:herd ?= yes
|
|
add = -1
|
|
}
|
|
modifier = {
|
|
scope:gold ?= yes
|
|
add = -1
|
|
}
|
|
modifier = {
|
|
scope:hook ?= yes
|
|
add = -1
|
|
}
|
|
modifier = {
|
|
scope:recipient = {
|
|
is_kurultai_trigger = yes
|
|
}
|
|
add = 100
|
|
}
|
|
}
|
|
|
|
cooldown_against_recipient = { years = 10 }
|
|
|
|
ai_targets = { # They will try to get a Stable Succession
|
|
ai_recipients = councillors
|
|
}
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = mpo_demand_obedience_interaction_toast
|
|
left_icon = scope:recipient
|
|
# Pay what you need to pay first
|
|
if = {
|
|
limit = { scope:hook = yes }
|
|
use_hook = scope:recipient
|
|
}
|
|
if = {
|
|
limit = { scope:gold = yes }
|
|
pay_short_term_gold = {
|
|
target = scope:recipient
|
|
gold = medium_gold_value
|
|
}
|
|
}
|
|
if = {
|
|
limit = { scope:herd = yes }
|
|
if = {
|
|
limit = { exists = scope:recipient.domicile }
|
|
pay_herd = {
|
|
target = scope:recipient
|
|
value = domicile.medium_herd_value
|
|
}
|
|
}
|
|
else = { # For a nice tooltip
|
|
show_as_tooltip = {
|
|
pay_herd = {
|
|
target = scope:recipient
|
|
value = domicile.medium_herd_value
|
|
}
|
|
}
|
|
hidden_effect = { domicile = { change_herd = medium_herd_loss } }
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = obedience_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
join_confederation_interaction = {
|
|
category = interaction_category_diplomacy
|
|
icon = offer_confederation_interaction
|
|
|
|
desc = join_confederation_interaction_desc
|
|
|
|
#ai_targets = {
|
|
# ai_recipients = neighboring_rulers_including_tributary_borders
|
|
#}
|
|
#ai_frequency = 0
|
|
popup_on_receive = yes
|
|
pause_on_receive = yes
|
|
|
|
common_interaction = yes
|
|
|
|
cooldown_against_recipient = { years = 3 }
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
is_playable_character = yes
|
|
is_independent_ruler = yes
|
|
OR = {
|
|
government_has_flag = government_is_nomadic
|
|
government_has_flag = government_is_tribal
|
|
}
|
|
highest_held_title_tier <= tier_duchy
|
|
is_landed = yes
|
|
is_confederation_member = no
|
|
}
|
|
scope:recipient.confederation ?= { is_house_based = no }
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor = {
|
|
valid_confederation_member_trigger = { CHARACTER = scope:recipient }
|
|
is_imprisoned = no
|
|
is_at_war = no
|
|
NOR = {
|
|
has_trait = conqueror
|
|
has_trait = greatest_of_khans
|
|
}
|
|
}
|
|
}
|
|
|
|
cost = {
|
|
prestige = {
|
|
value = 0
|
|
if = {
|
|
limit = { scope:prestige_send_option = yes }
|
|
add = scope:actor.minor_prestige_value
|
|
desc = PRESTIGE_INTERACTION_ACCEPTANCE_SEND_OPTION
|
|
}
|
|
}
|
|
}
|
|
|
|
greeting = positive
|
|
notification_text = OFFER_CONFEDERATION_INTERACTION_NOTIFICATION
|
|
|
|
ai_accept = {
|
|
base = -50
|
|
|
|
modifier = { # Cultural Acceptance
|
|
add = offer_vassalage_acceptance_value
|
|
desc = cultural_acceptance_interaction_reason
|
|
trigger = {
|
|
scope:actor = {
|
|
NOT = { has_same_culture_as = scope:recipient }
|
|
culture = {
|
|
cultural_acceptance = { target = scope:recipient.culture value <= 90 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { #Different faith, no pluralism.
|
|
desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOR = { #Of two different faiths AND the potential vassal's faith is not pluralistic.
|
|
faith = scope:actor.faith
|
|
faith = { has_doctrine = doctrine_pluralism_pluralistic }
|
|
government_has_flag = government_is_nomadic
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
}
|
|
add = {
|
|
value = -30
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_hostile_level
|
|
}
|
|
}
|
|
}
|
|
add = -30
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_evil_level
|
|
}
|
|
}
|
|
}
|
|
add = -30
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { #Different faith, pluralism.
|
|
desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
faith = scope:actor.faith
|
|
scope:actor.faith = { has_doctrine = doctrine_pluralism_pluralistic }
|
|
government_has_flag = government_is_nomadic
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
faith = { has_doctrine = doctrine_pluralism_pluralistic }
|
|
}
|
|
}
|
|
add = {
|
|
value = -15
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_hostile_level
|
|
}
|
|
}
|
|
}
|
|
add = -15
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_evil_level
|
|
}
|
|
}
|
|
}
|
|
add = -15
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { #Different faith, both have pluralism.
|
|
desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
faith = scope:actor.faith
|
|
government_has_flag = government_is_nomadic
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
scope:actor.faith = { has_doctrine = doctrine_pluralism_pluralistic }
|
|
faith = { has_doctrine = doctrine_pluralism_pluralistic }
|
|
}
|
|
}
|
|
add = {
|
|
value = -10
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_hostile_level
|
|
}
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_evil_level
|
|
}
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
}
|
|
}
|
|
modifier = { #We just fought against each other.
|
|
desc = offer_vassalization_interaction_aibehavior_recent_war_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
any_truce_holder = {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
# Ensure the truce wasn't purchased and is indeed from a war
|
|
scope:actor = {
|
|
NOT = {
|
|
has_purchased_truce_with_char = { TARGET = scope:recipient }
|
|
}
|
|
}
|
|
}
|
|
add = -40
|
|
}
|
|
modifier = { #You fought an independence war against me
|
|
desc = offer_confederation_independence_war_reverse_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
exists = var:independence_war_former_liege
|
|
var:independence_war_former_liege = scope:recipient.top_liege
|
|
}
|
|
}
|
|
add = -100
|
|
}
|
|
modifier = { #I fought an independence war against you.
|
|
desc = offer_confederation_independence_war_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
exists = var:independence_war_former_liege
|
|
var:independence_war_former_liege = scope:actor.top_liege
|
|
}
|
|
}
|
|
add = -50
|
|
}
|
|
modifier = { #Bankrupt
|
|
desc = bankrupt_reason
|
|
trigger = {
|
|
scope:actor.gold <= -1
|
|
}
|
|
add = -30
|
|
}
|
|
modifier = { #Wide difference in rank
|
|
desc = offer_vassalization_interaction_aibehavior_widetitletier_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
tier_difference = {
|
|
target = scope:recipient
|
|
value > 1
|
|
}
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
modifier = { # Allied
|
|
desc = offer_vassalization_interaction_aibehavior_allied_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
is_allied_to = scope:actor
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
modifier = { # Is the Rightful Liege of actor
|
|
desc = offer_vassalization_interaction_aibehavior_rightfulvassaltitleholder_tt
|
|
trigger = {
|
|
scope:recipient = { is_rightful_liege_of = scope:actor }
|
|
}
|
|
add = -75
|
|
}
|
|
modifier = { # Is the Rightful Liege of recipient
|
|
desc = offer_vassalization_interaction_aibehavior_rightfulliegetitleholder_tt
|
|
trigger = {
|
|
scope:actor = { is_rightful_liege_of = scope:recipient }
|
|
}
|
|
add = 20
|
|
}
|
|
modifier = { #No adjacency
|
|
desc = offer_vassalization_interaction_aibehavior_unconnectedrealm_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOT = {
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
OR = {
|
|
this = scope:actor
|
|
AND = {
|
|
exists = scope:actor.confederation
|
|
is_member_of_confederation = scope:actor.confederation
|
|
}
|
|
AND = {
|
|
exists = scope:actor.confederation
|
|
suzerain ?= {
|
|
is_member_of_confederation = scope:actor.confederation
|
|
}
|
|
}
|
|
suzerain ?= {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value < 100000 } }
|
|
}
|
|
add = -25
|
|
}
|
|
modifier = { #Distant Realm
|
|
desc = offer_vassalization_interaction_aibehavior_distantrealm_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOT = {
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
OR = {
|
|
this = scope:actor
|
|
AND = {
|
|
exists = scope:actor.confederation
|
|
is_member_of_confederation = scope:actor.confederation
|
|
}
|
|
AND = {
|
|
exists = scope:actor.confederation
|
|
suzerain ?= {
|
|
is_member_of_confederation = scope:actor.confederation
|
|
}
|
|
}
|
|
suzerain ?= {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value >= 100000 } }
|
|
}
|
|
add = -50
|
|
}
|
|
modifier = { #Remote Realm.
|
|
desc = offer_vassalization_interaction_aibehavior_remoterealm_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOT = {
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
OR = {
|
|
this = scope:actor
|
|
AND = {
|
|
exists = scope:actor.confederation
|
|
is_member_of_confederation = scope:actor.confederation
|
|
}
|
|
AND = {
|
|
exists = scope:actor.confederation
|
|
suzerain ?= {
|
|
is_member_of_confederation = scope:actor.confederation
|
|
}
|
|
}
|
|
suzerain ?= {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value >= 200000 } }
|
|
}
|
|
add = -125
|
|
}
|
|
#Relative power
|
|
modifier = {
|
|
desc = offer_vassalization_interaction_aibehavior_power_tt
|
|
add = {
|
|
value = 1
|
|
subtract = {
|
|
value = scope:recipient.max_military_strength # Intended for recipient to use max, to avoid having vassalizations become too easy for weakened realms
|
|
divide = { value = scope:actor.top_liege.current_military_strength min = 1 }
|
|
}
|
|
multiply = 5
|
|
ceiling = yes
|
|
min = -100
|
|
}
|
|
}
|
|
|
|
#Powerful vassal opinion of you
|
|
modifier = {
|
|
desc = offer_confederation_offerer_vassal_opinion_tt
|
|
trigger = {
|
|
scope:actor.top_liege = {
|
|
number_of_powerful_vassals >= 1
|
|
}
|
|
}
|
|
|
|
add = {
|
|
value = 0
|
|
scope:actor.top_liege = {
|
|
every_powerful_vassal = {
|
|
if = {
|
|
limit = {
|
|
save_temporary_opinion_value_as = {
|
|
name = vassal_opinion
|
|
target = scope:actor.top_liege
|
|
}
|
|
}
|
|
add = scope:vassal_opinion
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
number_of_powerful_vassals > 0
|
|
}
|
|
divide = number_of_powerful_vassals
|
|
}
|
|
else = {
|
|
divide = 5
|
|
}
|
|
}
|
|
|
|
divide = 10
|
|
}
|
|
}
|
|
|
|
modifier = { #Friend modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_friend_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_friend = scope:actor
|
|
NOT = { has_relation_best_friend = scope:actor }
|
|
}
|
|
}
|
|
add = 25
|
|
}
|
|
modifier = { #Best Friend modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_best_friend_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_best_friend = scope:actor
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
modifier = { #Lover modifier.
|
|
desc = interaction_lover
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_lover = scope:actor
|
|
NOT = { has_relation_soulmate = scope:actor }
|
|
}
|
|
}
|
|
add = 25
|
|
}
|
|
modifier = { #Soulmate modifier.
|
|
desc = interaction_soulmate
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_soulmate = scope:actor
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
modifier = { #Rivalry modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_rival_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_rival = scope:actor
|
|
NOT = { has_relation_nemesis = scope:actor }
|
|
}
|
|
}
|
|
add = -200
|
|
}
|
|
modifier = { #Nemesis modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_nemesis_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_nemesis = scope:actor
|
|
}
|
|
}
|
|
add = -1000
|
|
}
|
|
modifier = { #Rivalry modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_rival_confederation_tt
|
|
trigger = {
|
|
scope:recipient.confederation ?= {
|
|
any_confederation_member = {
|
|
NOT = { this = scope:recipient }
|
|
has_relation_rival = scope:actor
|
|
NOT = { has_relation_nemesis = scope:actor }
|
|
}
|
|
}
|
|
}
|
|
add = -100
|
|
}
|
|
modifier = { #Nemesis modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_nemesis_confederation_tt
|
|
trigger = {
|
|
scope:recipient.confederation ?= {
|
|
any_confederation_member = {
|
|
NOT = { this = scope:recipient }
|
|
has_relation_nemesis = scope:actor
|
|
}
|
|
}
|
|
}
|
|
add = -500
|
|
}
|
|
|
|
modifier = { #Same Dynasty modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_dynasty_tt
|
|
trigger = {
|
|
exists = scope:actor.dynasty
|
|
exists = scope:recipient.dynasty
|
|
scope:recipient = {
|
|
dynasty = scope:actor.dynasty
|
|
}
|
|
}
|
|
add = 25
|
|
}
|
|
|
|
modifier = { #Same House modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_house_tt
|
|
trigger = {
|
|
exists = scope:actor.house
|
|
exists = scope:recipient.house
|
|
scope:recipient = {
|
|
house = scope:actor.house
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
|
|
modifier = { # Same language
|
|
add = 20
|
|
desc = speaks_same_language_interaction_reason
|
|
trigger = {
|
|
scope:actor = {
|
|
knows_language_of_culture = scope:recipient.culture
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { #Ageism modifier vs kids.
|
|
desc = offer_vassalization_interaction_aibehavior_child_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
age < 12
|
|
}
|
|
scope:recipient = {
|
|
age > 16
|
|
}
|
|
}
|
|
add = -5
|
|
}
|
|
|
|
modifier = { #Illegitimacy modifier.
|
|
desc = confederation_offerer_illegitimate_tt
|
|
trigger = {
|
|
scope:actor.top_liege = {
|
|
OR = {
|
|
AND = {
|
|
has_trait = bastard
|
|
scope:recipient = {
|
|
faith = { NOT = { has_doctrine = doctrine_bastardry_none } }
|
|
}
|
|
}
|
|
has_trait = denounced
|
|
has_trait = disinherited
|
|
}
|
|
}
|
|
}
|
|
add = -20
|
|
}
|
|
|
|
modifier = { #Claimant modifier.
|
|
desc = confederation_interaction_aibehavior_claimant_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
any_held_title = {
|
|
scope:recipient = {
|
|
has_claim_on = prev
|
|
}
|
|
}
|
|
}
|
|
}
|
|
add = -50
|
|
}
|
|
|
|
modifier = { # Ambitious
|
|
desc = TAKE_THE_VOWS_AMBITIOUS
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = ambitious
|
|
}
|
|
}
|
|
add = -25
|
|
}
|
|
|
|
modifier = { # Paranoid
|
|
desc = INTERACTION_PARANOID
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = paranoid
|
|
}
|
|
}
|
|
add = -25
|
|
}
|
|
|
|
modifier = { # Arrogant
|
|
desc = INTERACTION_ARROGANT
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = arrogant
|
|
}
|
|
}
|
|
add = -25
|
|
}
|
|
|
|
modifier = { # Greedy
|
|
desc = INTERACTION_GREEDY
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = greedy
|
|
}
|
|
}
|
|
add = -15
|
|
}
|
|
|
|
modifier = { # Trusting
|
|
desc = TAKE_THE_VOWS_TRUSTING
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = trusting
|
|
}
|
|
}
|
|
add = 15
|
|
}
|
|
|
|
modifier = { # Craven
|
|
desc = INTERACTION_CRAVEN
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_trait = craven
|
|
}
|
|
}
|
|
add = 25
|
|
}
|
|
|
|
opinion_modifier = { #Compare Opinion modifier.
|
|
who = scope:recipient
|
|
opinion_target = scope:actor
|
|
multiplier = 0.35
|
|
}
|
|
modifier = {
|
|
add = intimidated_external_reason_value
|
|
scope:recipient = {
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 1
|
|
}
|
|
}
|
|
desc = INTIMIDATED_REASON
|
|
}
|
|
modifier = {
|
|
add = cowed_external_reason_value
|
|
scope:recipient = {
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 2
|
|
}
|
|
}
|
|
desc = COWED_REASON
|
|
}
|
|
# DIPLOMATIC COURT GRANDEUR BONUS
|
|
modifier = {
|
|
trigger = {
|
|
scope:actor.top_liege = {
|
|
has_royal_court = yes
|
|
has_dlc_feature = royal_court
|
|
has_court_type = court_diplomatic
|
|
court_grandeur_current_level >= 1
|
|
}
|
|
}
|
|
add = {
|
|
value = scope:actor.top_liege.court_grandeur_current
|
|
if = {
|
|
limit = { # Reduce the bonus if you are below your expected level
|
|
scope:actor.top_liege = {
|
|
court_grandeur_current_level < court_grandeur_minimum_expected_level
|
|
}
|
|
}
|
|
multiply = 0.15
|
|
}
|
|
else = {
|
|
multiply = 0.3
|
|
}
|
|
}
|
|
desc = DIPLOMATIC_COURT_ACCEPTANCE_INCREASE_REASON
|
|
}
|
|
|
|
# LOW LEGITIMACY
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -10
|
|
scope:actor = {
|
|
has_legitimacy_flag = reduced_confederation_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -25
|
|
scope:actor = {
|
|
has_legitimacy_flag = very_reduced_confederation_acceptance
|
|
}
|
|
}
|
|
|
|
# HIGH LEGITIMACY
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
add = 15
|
|
scope:actor = {
|
|
has_legitimacy_flag = increased_confederation_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
add = 40
|
|
scope:actor = {
|
|
has_legitimacy_flag = very_increased_confederation_acceptance
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = 50
|
|
scope:actor = {
|
|
culture = scope:recipient.culture
|
|
}
|
|
desc = "SAME_CULTURE_REASON"
|
|
}
|
|
modifier = {
|
|
add = -20
|
|
NOT = {
|
|
scope:actor = {
|
|
culture = scope:recipient.culture
|
|
}
|
|
}
|
|
scope:actor = {
|
|
NOR = {
|
|
culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:recipient.culture
|
|
}
|
|
}
|
|
scope:recipient.culture = {
|
|
any_parent_culture_or_above = {
|
|
this = scope:actor.culture
|
|
}
|
|
}
|
|
culture = {
|
|
has_same_culture_heritage = scope:recipient.culture
|
|
}
|
|
}
|
|
}
|
|
desc = "DIFFERENT_CULTURE_REASON"
|
|
}
|
|
# Are you using a hook?
|
|
modifier = {
|
|
trigger = {
|
|
scope:hook ?= yes
|
|
}
|
|
add = 100
|
|
desc = LEGEND_HOOK_USED
|
|
}
|
|
# PRESTIGE
|
|
modifier = {
|
|
add = 40
|
|
scope:prestige_send_option = yes
|
|
desc = PRESTIGE_INTERACTION_ACCEPTANCE_SEND_OPTION
|
|
}
|
|
# HERD
|
|
modifier = {
|
|
add = 40
|
|
scope:herd_send_option = yes
|
|
desc = HERD_INTERACTION_ACCEPTANCE_SEND_OPTION
|
|
}
|
|
modifier = {
|
|
add = 20
|
|
desc = join_confederation_neighboring_foe_tt
|
|
scope:recipient = {
|
|
confederation_neighboring_foe_trigger = { CHARACTER = scope:recipient }
|
|
}
|
|
}
|
|
#No neighbor scaring them
|
|
modifier = {
|
|
add = -30
|
|
desc = NO_FRIGHTENING_NEIGHBOR_REASON
|
|
NOT = {
|
|
scope:recipient = {
|
|
confederation_neighboring_foe_trigger = { CHARACTER = scope:recipient }
|
|
}
|
|
}
|
|
}
|
|
#Neighbor is TERRIFYING them
|
|
modifier = {
|
|
add = 50
|
|
desc = TERRIFYING_NEIGHBOR_REASON
|
|
scope:recipient = {
|
|
save_temporary_scope_as = confederate
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
top_suzerain ?= {
|
|
NOR = {
|
|
this = scope:actor
|
|
this = scope:actor.top_liege
|
|
}
|
|
confederation_worthy_foe_strength_ratio_value <= 0.25
|
|
NOT = { is_allied_to = scope:recipient }
|
|
OR = {
|
|
highest_held_title_tier >= tier_kingdom
|
|
faith = {
|
|
faith_hostility_level = {
|
|
target = scope:recipient.faith
|
|
value >= faith_evil_level
|
|
}
|
|
}
|
|
has_trait = conqueror
|
|
has_trait = greatest_of_khans
|
|
any_owned_story = {
|
|
OR = {
|
|
story_type = story_greatest_of_khans
|
|
story_type = story_mongol_invasion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
add = 100
|
|
desc = JOINING_CONFEDERATION_WAR_REASON
|
|
scope:recipient.confederation ?= {
|
|
any_confederation_member = {
|
|
is_at_war_as_defender = yes
|
|
any_character_war = {
|
|
is_war_leader = prev
|
|
is_defender = prev
|
|
NOR = {
|
|
any_war_attacker = {
|
|
is_allied_to = scope:actor
|
|
}
|
|
any_war_attacker = {
|
|
this = scope:actor
|
|
}
|
|
any_war_defender = {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
defender_war_score < 80
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = -100
|
|
desc = join_confederation_abandoned_confederation_tt
|
|
scope:actor = {
|
|
has_variable = left_confederation
|
|
var:left_confederation ?= {
|
|
this = scope:recipient.confederation
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
add = -100
|
|
desc = join_confederation_abandoned_confederation_tt
|
|
scope:actor = {
|
|
has_variable = left_confederation
|
|
var:left_confederation ?= {
|
|
this = scope:recipient.confederation
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
add = duchy_confederation_vassals_value_recipient
|
|
desc = TOO_MANY_CONFEDERATION_VASSALS_REASON
|
|
scope:recipient.confederation ?= {
|
|
any_confederation_member = {
|
|
count >= 6
|
|
highest_held_title_tier >= tier_county
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = 50
|
|
desc = join_confederation_loyal_tt
|
|
scope:actor = {
|
|
has_trait = loyal
|
|
}
|
|
}
|
|
modifier = {
|
|
add = -50
|
|
desc = join_confederation_disloyal_tt
|
|
scope:actor = {
|
|
has_trait = disloyal
|
|
}
|
|
}
|
|
}
|
|
|
|
send_option = {
|
|
flag = hook
|
|
is_valid = {
|
|
scope:actor = {
|
|
has_usable_hook = scope:recipient
|
|
}
|
|
}
|
|
localization = GENERIC_SPEND_A_HOOK
|
|
}
|
|
|
|
send_option = { # Herd
|
|
is_shown = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_nomadic
|
|
exists = domicile
|
|
}
|
|
}
|
|
is_valid = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
exists = domicile
|
|
}
|
|
scope:actor.domicile = { herd >= minor_herd_value }
|
|
}
|
|
flag = herd_send_option
|
|
localization = TRADE_HERD_FOR_BETTER_AI_ACCEPTANCE_CONFEDERATION
|
|
}
|
|
|
|
send_option = { # Prestige
|
|
is_shown = {
|
|
always = yes
|
|
}
|
|
is_valid = {
|
|
scope:actor = { prestige >= minor_prestige_value }
|
|
}
|
|
flag = prestige_send_option
|
|
localization = TRADE_PRESTIGE_FOR_BETTER_AI_ACCEPTANCE
|
|
}
|
|
|
|
send_options_exclusive = no
|
|
|
|
on_accept = {
|
|
if = {
|
|
#checking that the delay hasn't made the character invalid
|
|
limit = {
|
|
scope:recipient = {
|
|
is_playable_character = yes
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
has_character_flag = forming_confederation
|
|
}
|
|
}
|
|
scope:actor = { remove_character_flag = forming_confederation }
|
|
}
|
|
scope:recipient.confederation ?= {
|
|
every_confederation_member = {
|
|
limit = { is_at_war_as_defender = yes }
|
|
every_character_war = {
|
|
limit = {
|
|
is_war_leader = prev
|
|
is_defender = prev
|
|
NOR = {
|
|
any_war_attacker = {
|
|
is_allied_to = scope:actor
|
|
}
|
|
any_war_attacker = {
|
|
this = scope:actor
|
|
}
|
|
any_war_defender = {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
defender_war_score < 80
|
|
}
|
|
add_to_list = recipient_wars
|
|
}
|
|
}
|
|
}
|
|
every_in_list = {
|
|
list = recipient_wars
|
|
save_scope_as = recipient_war
|
|
primary_attacker = {
|
|
save_scope_as = attacker
|
|
}
|
|
add_defender = scope:actor
|
|
}
|
|
scope:recipient = {
|
|
save_scope_as = confederation_offerer
|
|
}
|
|
scope:actor = {
|
|
save_scope_as = confederation_accepter
|
|
}
|
|
scope:recipient.confederation = {
|
|
save_scope_as = confederation
|
|
}
|
|
show_as_tooltip = {
|
|
#If actor is top liege and offering vassaldom
|
|
scope:actor = {
|
|
custom_tooltip = join_confederation_recipient_tt
|
|
custom_tooltip = confederation_defensive_wars_tt
|
|
custom_tooltip = unlock_leave_confederation_interaction_tt
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
scope:actor = {
|
|
add_character_modifier = {
|
|
modifier = mpo_confederation_member_modifier
|
|
years = 5
|
|
}
|
|
capital_county ?= {
|
|
change_county_fertility = major_county_fertility_level_gain
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
is_ai = no
|
|
}
|
|
}
|
|
scope:actor = {
|
|
custom_tooltip = confederation_raiding_attacking_tt
|
|
if = {
|
|
limit = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
custom_tooltip = confederation_restrictions_warning_tt
|
|
}
|
|
else = {
|
|
custom_tooltip = confederation_restrictions_tribe_warning_tt
|
|
}
|
|
}
|
|
}
|
|
scope:actor = {
|
|
if = {
|
|
limit = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
custom_tooltip = confederation_migrating_leaving_warning_tt
|
|
}
|
|
}
|
|
scope:actor = {
|
|
#Event distributor event
|
|
trigger_event = mpo_interactions_events.0030
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:prestige_send_option = yes
|
|
}
|
|
scope:recipient = {
|
|
add_prestige = scope:actor.minor_prestige_value
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:herd_send_option = yes
|
|
}
|
|
scope:actor = {
|
|
pay_herd = {
|
|
target = scope:recipient
|
|
value = domicile.minor_herd_value
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
scope:actor = {
|
|
#So that the right desc is used
|
|
save_scope_as = asking_to_join
|
|
#letter response
|
|
trigger_event = mpo_interactions_events.0004
|
|
}
|
|
}
|
|
|
|
#ai_potential = {
|
|
# #AI rely on the offer interaction, not this one
|
|
# always = no
|
|
#}
|
|
#
|
|
#ai_will_do = {
|
|
# base = 0
|
|
#}
|
|
}
|