Merge branch 'next-version-dev' of https://forgejo.damimani-alex.org/damimani/N3OW into next-version-dev

This commit is contained in:
Greekman 2026-10-03 02:31:40 +01:00
commit 65d9106dea
40 changed files with 22630 additions and 14200 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -12,14 +12,22 @@ ce1_ask_to_promote_legend_interaction = {
greeting = positive
notification_text = PROMOTE_LEGEND_NOTIFICATION
is_available = {
trigger_if = {
limit = { is_ai = yes }
is_physically_able = yes
}
}
is_shown = {
scope:actor.promoted_legend.legend_owner ?= scope:actor
scope:actor != scope:recipient
scope:puppet_or_actor.promoted_legend.legend_owner ?= scope:puppet_or_actor
exists = scope:puppet_or_actor
scope:puppet_or_actor != scope:recipient
scope:recipient = {
is_landed = yes
age >= 12
is_physically_able = yes
NOT = { government_has_flag = government_is_true_herder }
NOT = { government_has_flag = government_is_herder }
}
}
@ -33,16 +41,16 @@ ce1_ask_to_promote_legend_interaction = {
custom_tooltip = {
text = recipient_close_or_neighbor_tt
OR = {
scope:recipient.dynasty = scope:actor.dynasty
scope:recipient = { knows_language_of_culture = scope:actor.culture }
scope:actor = {
scope:recipient.dynasty = scope:puppet_or_actor.dynasty
scope:recipient = { knows_language_of_culture = scope:puppet_or_actor.culture }
scope:puppet_or_actor = {
has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = scope:recipient }
}
scope:recipient = {
any_character_to_title_neighboring_county = {
any_county_province = {
any_province_legend = {
this = scope:actor.promoted_legend
this = scope:puppet_or_actor.promoted_legend
}
}
}
@ -92,7 +100,7 @@ ce1_ask_to_promote_legend_interaction = {
modifier = {
add = 10
desc = REASON_ILLUSTRIOUS_LEGEND
scope:actor = {
scope:puppet_or_actor = {
promoted_legend = {
legend_quality = illustrious
}
@ -101,7 +109,7 @@ ce1_ask_to_promote_legend_interaction = {
modifier = {
add = 20
desc = REASON_MYTHICAL_LEGEND
scope:actor = {
scope:puppet_or_actor = {
promoted_legend = {
legend_quality = mythical
}
@ -127,7 +135,7 @@ ce1_ask_to_promote_legend_interaction = {
# Do they like you?
opinion_modifier = {
who = scope:recipient
opinion_target = scope:actor
opinion_target = scope:puppet_or_actor
multiplier = 1
desc = AI_OPINION_REASON
}
@ -181,7 +189,7 @@ ce1_ask_to_promote_legend_interaction = {
add = intimidated_halved_reason_value
scope:recipient = {
has_dread_level_towards = {
target = scope:actor
target = scope:puppet_or_actor
level = 1
}
}
@ -191,7 +199,7 @@ ce1_ask_to_promote_legend_interaction = {
add = cowed_halved_reason_value
scope:recipient = {
has_dread_level_towards = {
target = scope:actor
target = scope:puppet_or_actor
level = 2
}
}
@ -208,7 +216,7 @@ ce1_ask_to_promote_legend_interaction = {
## Low Gold
modifier = {
add = -100
scope:actor.promoted_legend = {
scope:puppet_or_actor.promoted_legend = {
legend_quality = famed
}
scope:recipient = {
@ -218,7 +226,7 @@ ce1_ask_to_promote_legend_interaction = {
}
modifier = {
add = -100
scope:actor.promoted_legend = {
scope:puppet_or_actor.promoted_legend = {
legend_quality = illustrious
}
scope:recipient = {
@ -228,7 +236,7 @@ ce1_ask_to_promote_legend_interaction = {
}
modifier = {
add = -100
scope:actor.promoted_legend = {
scope:puppet_or_actor.promoted_legend = {
legend_quality = mythical
}
scope:recipient = {
@ -239,21 +247,21 @@ ce1_ask_to_promote_legend_interaction = {
modifier = {
add = 25
scope:recipient = {
is_contact_of = scope:actor
is_contact_of = scope:puppet_or_actor
}
desc = IS_CONTACT_REASON
}
}
on_accept = {
scope:actor.promoted_legend = {
scope:puppet_or_actor.promoted_legend = {
save_scope_as = promoted_legend
}
scope:actor = {
scope:puppet_or_actor = {
send_interface_toast = {
type = event_toast_effect_good
title = ce1_ask_to_promote_legend_acceptance_tt
left_icon = scope:actor
left_icon = scope:puppet_or_actor
right_icon = scope:recipient
if = {
@ -275,21 +283,49 @@ ce1_ask_to_promote_legend_interaction = {
}
}
scope:recipient = {
set_promoted_legend = scope:actor.promoted_legend
set_promoted_legend = scope:puppet_or_actor.promoted_legend
}
}
}
if = {
limit = {
scope:is_puppet_action ?= yes
scope:actor != scope:recipient
}
scope:actor = {
send_interface_toast = {
type = event_toast_effect_good
title = ce1_ask_to_promote_legend_acceptance_tt_puppeteer
left_icon = scope:puppet_or_actor
right_icon = scope:recipient
}
}
}
}
on_decline = {
scope:actor = {
scope:puppet_or_actor = {
send_interface_toast = {
type = event_toast_effect_bad
title = ce1_ask_to_promote_legend_decline_tt
left_icon = scope:actor
left_icon = scope:puppet_or_actor
right_icon = scope:recipient
}
}
if = {
limit = {
scope:is_puppet_action ?= yes
scope:actor != scope:recipient
}
scope:actor = {
send_interface_toast = {
type = event_toast_effect_bad
title = ce1_ask_to_promote_legend_decline_tt_puppeteer
left_icon = scope:puppet_or_actor
right_icon = scope:recipient
}
}
}
}
# Use gold to increase acceptance
@ -300,7 +336,7 @@ ce1_ask_to_promote_legend_interaction = {
send_option = {
flag = hook
is_valid = {
scope:actor = {
scope:puppet_or_actor = {
has_usable_hook = scope:recipient
}
}
@ -308,10 +344,6 @@ ce1_ask_to_promote_legend_interaction = {
}
send_options_exclusive = no
ai_potential = {
is_physically_able = yes
}
ai_targets = {
ai_recipients = neighboring_rulers
}

File diff suppressed because it is too large Load diff

View file

@ -13,12 +13,24 @@
}
extra_icon = "gfx/interface/icons/character_interactions/hook_icon.dds"
is_available = {
trigger_if = {
limit = { is_ai = yes }
short_term_gold >= yearly_character_income
is_at_war = no # Try to avoid wasting your war chest!
ai_should_focus_on_building_in_their_capital = no
NOT = { government_has_flag = government_is_nomadic }
any_courtier_or_guest = {
is_alive = yes
count <= 30
}
NOT = { has_variable = conqueror }
}
}
is_shown = {
scope:actor != scope:recipient
scope:recipient = { is_pool_guest_of = scope:actor }
scope:actor = {
is_ruler = yes
}
}
is_valid_showing_failures_only = {
@ -30,6 +42,8 @@
NOR = {
scope:recipient = { is_close_family_of = scope:actor } # Close family members are free
scope:actor = { has_usable_hook = scope:recipient } # Using a hook makes it free
# PAM - Ritual Hospitality PT: hospitality is never bought
scope:actor = { has_personal_tenet_flag = tenet_ritual_hospitality_free_guest_recruitment }
}
}
scope:actor = {
@ -92,6 +106,11 @@
limit = { scope:recipient = { is_close_family_of = scope:actor } } # Close family members are free
# do nothing
}
else_if = {
# PAM - Ritual Hospitality PT: hospitality is never bought
limit = { scope:actor = { has_personal_tenet_flag = tenet_ritual_hospitality_free_guest_recruitment } }
# do nothing
}
else_if = {
limit = { always = scope:hook }
scope:actor = { use_hook = scope:recipient }
@ -129,7 +148,7 @@
type = event_generic_neutral
title = msg_recruited_guest_to_court_interaction_title
right_icon = scope:recipient
stress_impact = {
stress_and_fulfillment_impact = {
shy = minor_stress_impact_gain
paranoid = minor_stress_impact_gain
}
@ -164,18 +183,6 @@
hegemony = 12
}
ai_potential = {
is_at_war = no # Try to avoid wasting your war chest!
NOT = { has_variable = conqueror }
short_term_gold >= yearly_character_income
any_courtier_or_guest = {
is_alive = yes
count <= 30
}
ai_should_focus_on_building_in_their_capital = no
NOT = { government_has_flag = government_is_nomadic }
}
ai_will_do = {
base = 0
@ -435,7 +442,7 @@ kick_from_court_interaction = {
on_accept = {
scope:actor = {
stress_impact = {
stress_and_fulfillment_impact = {
gregarious = minor_stress_impact_gain
}
@ -597,7 +604,7 @@ invite_to_court_interaction = {
host ?= scope:actor
has_trait = order_member
is_ruler = yes
location = { is_sea_province = yes }
location ?= { is_sea_province = yes }
}
}
}
@ -627,6 +634,33 @@ invite_to_court_interaction = {
}
text = nomad_defected_invite_desc
}
custom_tooltip = {
scope:recipient = {
NAND = {
OR = {
has_trait = devoted
has_trait = order_member
}
liege ?= {
government_has_flag = government_is_holy_order
}
has_variable = recent_vows
}
}
text = recently_joined_holy_order_desc
}
custom_tooltip = {
scope:recipient = {
NAND = {
has_trait = devoted
liege ?= {
government_has_flag = government_is_holy_order
}
is_adult = no
}
}
text = child_in_holy_order_desc
}
}
#Pay som gold to persuade a wandering character to come to your court
@ -742,7 +776,7 @@ invite_to_court_interaction = {
}
target = scope:recipient
}
stress_impact = {
stress_and_fulfillment_impact = {
greedy = minor_stress_impact_gain
}
}
@ -1166,20 +1200,43 @@ invite_to_court_interaction = {
desc = estate_buildings_with_value_desc
}
# PAM - Ritual Hospitality PT
modifier = {
add = 50
desc = doctrine_parameter_tenet_ritual_hospitality_invite_to_court_acceptance
scope:actor = {
has_personal_tenet_flag = tenet_ritual_hospitality_invite_to_court_acceptance
}
}
modifier = {
add = -1000
desc = MALUS_TO_RECRUITMENT_FOR_IMPERIAL_EUNUCHS
scope:recipient = {
is_eunuch_trigger = yes
liege ?= {
government_allows = administrative
government_has_mechanic = administrative
primary_title.tier >= tier_empire
culture = { has_cultural_parameter = can_appoint_chief_eunuch }
}
}
}
modifier = {
add = -100
desc = INVITE_DEVOTED_TO_CLERICAL_LIEGE
scope:recipient = {
has_trait = devoted
liege ?= {
OR = {
government_has_flag = government_is_theocracy
government_has_flag = government_is_monastic_holy_order
}
faith = scope:recipient.faith
}
}
}
modifier = {
scope:actor.culture = {
has_cultural_parameter = invite_courtiers_reasons
@ -1208,3 +1265,4 @@ invite_to_court_interaction = {
}
}
}

View file

@ -19,8 +19,7 @@ request_culture_conversion_interaction = {
is_shown = {
scope:actor.culture != scope:recipient.culture
scope:recipient.liege = scope:actor
NOT = { scope:recipient = { government_has_flag = government_is_landless_minority } }
scope:recipient.liege ?= scope:actor
}
is_valid_showing_failures_only = {
@ -113,24 +112,19 @@ ai_cultural_hybridization_interaction = {
auto_accept = yes
ai_potential = {
has_dlc_feature = hybridize_culture
is_available = {
sub_realm_size >= 4
OR = {
top_liege = this
top_liege ?= this
highest_held_title_tier >= tier_kingdom
}
sub_realm_size >= 4
is_physically_able_adult = yes
is_at_war = no
is_physically_able_adult = yes
game_rule_can_create_hybird_culture_trigger = yes
has_dlc_feature = hybridize_culture
is_ai = yes
}
is_shown = {
scope:actor = {
is_ai = yes
}
}
has_valid_target = {
exists = scope:target
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -10,12 +10,22 @@ force_join_faction_interaction = {
greeting = positive
notification_text = FORCE_JOIN_FACTION_NOTIFICATION
is_available = {
is_a_faction_member = yes
trigger_if = {
limit = { is_ai = yes }
top_liege != this
# Only force others to join a faction if you joined by your own free will
is_forced_into_faction = no
}
}
is_shown = {
scope:actor = {
is_a_faction_member = yes
liege = scope:recipient.liege
liege ?= scope:recipient.liege
NOR = {
joined_faction = scope:recipient.joined_faction
joined_faction ?= scope:recipient.joined_faction
scope:recipient = scope:actor.liege
}
}
@ -24,7 +34,7 @@ force_join_faction_interaction = {
is_valid_showing_failures_only = {
scope:actor = {
trigger_if = {
limit = { government_allows = administrative }
limit = { government_has_mechanic = administrative }
custom_tooltip = {
text = force_join_faction_admin_requirement_desc
OR = {
@ -49,8 +59,8 @@ force_join_faction_interaction = {
limit = { is_a_faction_member = yes }
joined_faction.faction_leader ?= { is_ai = yes }
}
is_forced_into_faction = no
can_join_faction = scope:actor.joined_faction
is_forced_into_faction = no
can_join_faction = scope:actor.joined_faction
}
custom_description = {
text = barons_joining_independence_factions
@ -60,7 +70,7 @@ force_join_faction_interaction = {
}
}
}
on_accept = {
scope:actor = {
send_interface_message = {
@ -106,15 +116,15 @@ force_join_faction_interaction = {
exists = scope:recipient
scope:actor ?= { has_strong_usable_hook = scope:recipient }
}
flag = hook
flag = hook
localization = GENERIC_SPEND_A_HOOK
}
#Spend influence
send_option = {
is_shown = {
scope:actor = { government_allows = administrative }
scope:actor.top_liege ?= { government_allows = administrative }
scope:actor = { government_has_flag = government_has_influence }
scope:actor.top_liege ?= { government_has_flag = government_has_influence }
}
is_valid = { # Convincing someone with influence is not available if they hate you or love the liege
scope:actor ?= { influence >= { value = scope:actor.monumental_influence_value multiply = 2 } }
@ -123,12 +133,12 @@ force_join_faction_interaction = {
NOT = { opinion = { target = scope:recipient.liege value >= 50 } }
}
}
flag = influence
flag = influence
localization = SPEND_INFLUENCE
}
send_options_exclusive = yes
# AI
ai_targets = {
ai_recipients = peer_vassals
@ -141,18 +151,10 @@ force_join_faction_interaction = {
empire = 12
hegemony = 0
}
ai_potential = {
top_liege != this
is_a_faction_member = yes
# Only force others to join a faction if you joined by your own free will
is_forced_into_faction = no
}
ai_will_do = {
base = 100
# Don't steal players' factions' members
modifier = {
factor = 0

View file

@ -38,11 +38,24 @@ gift_interaction = {
hegemony = 36
}
is_shown = {
scope:recipient != scope:actor
is_available = {
trigger_if = {
limit = { is_ai = yes }
ai_greed < medium_positive_ai_value
short_term_gold >= gift_interaction_cutoff
ai_should_focus_on_building_in_their_capital = no
is_available_at_peace_ai_adult = yes
NOR = {
has_trait = greedy
has_variable = conqueror
}
}
}
is_shown = {
# Prioritize paying back loans first
scope:actor = {
scope:puppet_or_actor ?= {
this != scope:recipient
trigger_if = {
limit = {
exists = var:loan_amount_owed
@ -50,6 +63,11 @@ gift_interaction = {
}
NOT = { var:loan_holder = scope:recipient }
}
# A landless puppet has nothing to gift that is not already the puppeteer's
trigger_if = {
limit = { scope:recipient = scope:actor }
is_ruler = yes
}
}
}
@ -69,9 +87,17 @@ gift_interaction = {
highlighted_reason = HIGHLIGHTED_FAMILY_RATING
is_valid_showing_failures_only = {
scope:actor.gold >= gift_value
scope:recipient = {
NOT = { is_imprisoned_by = scope:actor }
scope:puppet_or_actor.gold >= gift_value
scope:recipient = {
NOT = { is_imprisoned_by = scope:puppet_or_actor }
}
# puppet_or_actor only differs from the actor on puppet actions, where the puppet's own purse pays
trigger_if = {
limit = { scope:is_puppet_action ?= yes }
custom_tooltip = {
text = puppet_gift_cooldown_tt
NOT = { scope:puppet_or_actor = { has_variable = puppet_gift_cooldown } }
}
}
}
@ -87,10 +113,10 @@ gift_interaction = {
if = {
limit = {
NAND = {
has_relation_friend = scope:actor
has_relation_lover = scope:actor
has_relation_soulmate = scope:actor
has_relation_best_friend = scope:actor
has_relation_friend = scope:puppet_or_actor
has_relation_lover = scope:puppet_or_actor
has_relation_soulmate = scope:puppet_or_actor
has_relation_best_friend = scope:puppet_or_actor
}
}
gifting_leads_towards_friendship_effect = yes
@ -99,14 +125,14 @@ gift_interaction = {
# HOUSE RELATIONS
if = {
limit = {
scope:actor = {
scope:puppet_or_actor = {
is_house_head = yes
}
scope:recipient = {
is_house_head = yes
NOT = {
has_opinion_modifier = {
target = scope:actor
target = scope:puppet_or_actor
modifier = gift_opinion
}
}
@ -114,29 +140,30 @@ gift_interaction = {
}
scope:recipient.house = {
change_house_relation_effect = {
HOUSE = scope:actor.house
HOUSE = scope:puppet_or_actor.house
VALUE = house_relation_improve_medium_value
REASON = sent_a_gift
CHAR = scope:actor
CHAR = scope:puppet_or_actor
TARGET_CHAR = scope:recipient
TITLE = scope:dummy_gender
}
}
}
scope:actor = {
scope:puppet_or_actor = {
# Warning for multiple gifts
if = {
limit = {
scope:actor != scope:recipient
scope:recipient = {
has_opinion_modifier = {
target = scope:actor
target = scope:puppet_or_actor
modifier = gift_opinion
}
}
}
custom_tooltip = ALREADY_SENT_GIFT_WARNING
}
send_interface_message = {
type = event_gold_neutral
title = gift_interaction_notification
@ -145,53 +172,92 @@ gift_interaction = {
gold = gift_value
target = scope:recipient
}
stress_impact = {
stress_and_fulfillment_impact = {
greedy = medium_stress_impact_gain
}
if = {
limit = {
scope:recipient = {
NOT = {
is_heir_of = scope:actor
is_heir_of = scope:puppet_or_actor
}
}
}
stress_impact = {
stress_and_fulfillment_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:puppet_or_actor = {
has_personal_tenet_flag = tenet_simony_personal_gifts
}
}
# Doubled: personal pick has stress_loss_mult -0.5
add_stress = medium_stress_loss
change_spiritual_fulfillment = miniscule_spiritual_fulfillment_value
}
#FP3 Tenet Communal Possessions Perk - piety gain for gift giving.
if = {
limit = {
scope:puppet_or_actor = {
rite = {
rite_has_parameter = piety_from_gifts_active
}
}
NOT = {
scope:recipient = {
has_opinion_modifier = {
target = scope:puppet_or_actor
modifier = gift_opinion
}
}
}
}
scope:actor = {
scope:puppet_or_actor = {
add_piety = minor_piety_gain
}
}
if = {
limit = {
scope:puppet_or_actor = {
has_personal_tenet_flag = tenet_philanthropia_alms_to_the_destitute
}
scope:recipient = { is_in_debt = yes }
NOT = {
scope:recipient = {
has_opinion_modifier = {
target = scope:puppet_or_actor
modifier = gift_opinion
}
}
}
}
scope:puppet_or_actor = {
add_prestige = minor_prestige_gain
add_piety = minor_piety_gain
}
}
# Check if the target already has been sent a gift or not. If not, apply the following effects
if = {
limit = {
NOT = {
scope:recipient = {
has_opinion_modifier = {
target = scope:actor
target = scope:puppet_or_actor
modifier = gift_opinion
}
}
}
}
# # Struggle Catalyst
# Struggle Catalyst
# if = {
# limit = {
# scope:actor = {
# scope:puppet_or_actor = {
# any_character_struggle = {
# involvement = involved
# phase_has_catalyst = catalyst_gift_independent_ruler
@ -203,13 +269,13 @@ gift_interaction = {
# }
# }
# hidden_effect = {
# scope:actor = {
# scope:puppet_or_actor = {
# every_character_struggle = {
# involvement = involved
# limit = { phase_has_catalyst = catalyst_gift_independent_ruler }
# activate_struggle_catalyst = {
# catalyst = catalyst_gift_independent_ruler
# character = scope:actor
# character = scope:puppet_or_actor
# }
# }
# }
@ -218,10 +284,10 @@ gift_interaction = {
# if = {
# limit = {
# fp3_struggle_involves_one_supporter_and_one_detractor = {
# FIRST = scope:actor
# FIRST = scope:puppet_or_actor
# SECOND = scope:recipient
# }
# scope:actor = {
# scope:puppet_or_actor = {
# any_character_struggle = {
# #involvement = involved
# activate_struggle_catalyst_secondary_character_involvement_either_trigger = {
@ -232,7 +298,7 @@ gift_interaction = {
# }
# }
# hidden_effect = {
# scope:actor = {
# scope:puppet_or_actor = {
# every_character_struggle = {
# #involvement = involved
# limit = {
@ -243,31 +309,31 @@ gift_interaction = {
# }
# activate_struggle_catalyst = {
# catalyst = catalyst_gift_supporter_detractor_ruler
# character = scope:actor
# character = scope:puppet_or_actor
# }
# log_debug_variable_for_persian_struggle_effect = { VAR = concession_catalyst_gift_supporter_detractor_ruler }
# }
# }
# }
# }
# FP2 Urbanism Legacy Perk 2: increase cultural acceptance when gifting a republican vassal
if = {
limit = {
scope:actor = {
scope:puppet_or_actor = {
dynasty ?= { has_dynasty_perk = fp2_urbanism_legacy_4 }
}
scope:recipient = {
AND = {
is_vassal_of = scope:actor
is_vassal_of = scope:puppet_or_actor
government_has_flag = government_is_republic
}
}
scope:actor.culture != scope:recipient.capital_province.county.culture
scope:puppet_or_actor.culture != scope:recipient.capital_province.county.culture
}
scope:recipient.capital_province.county.culture = {
change_cultural_acceptance = {
target = scope:actor.culture
target = scope:puppet_or_actor.culture
value = {
value = 20
multiply = scope:recipient.capital_province.county.development_level
@ -278,21 +344,66 @@ gift_interaction = {
}
}
}
# Let's apply the opinion modifier last, as to apply everything else correctly first
scope:recipient = {
add_opinion = {
target = scope:actor
modifier = gift_opinion
opinion = send_gift_opinion
# Don't grant the puppeteer opinion of their own puppet when they are the gift recipient
if = {
limit = {
scope:actor != scope:recipient
scope:puppet_or_actor = {
NOT = { has_personal_tenet_flag = tenet_simony_personal_gifts }
}
}
scope:recipient = {
add_opinion = {
target = scope:puppet_or_actor
modifier = gift_opinion
opinion = send_gift_opinion
}
}
}
if = {
limit = {
scope:actor != scope:recipient
scope:puppet_or_actor = {
has_personal_tenet_flag = tenet_simony_personal_gifts
}
}
scope:recipient = {
add_opinion = {
target = scope:puppet_or_actor
modifier = friendliness_opinion
opinion = send_gift_opinion
}
}
}
}
if = {
limit = {
scope:actor != scope:recipient
scope:puppet_or_actor = {
has_personal_tenet_flag = tenet_simony_personal_gifts
}
scope:recipient = {
NOT = {
has_opinion_modifier = {
target = scope:puppet_or_actor
modifier = friendliness_opinion
}
}
}
}
progress_towards_friend_effect = {
REASON = friend_simony_gift
CHARACTER = scope:recipient
OPINION = 0
}
}
if = { # for tutorial purposes
limit = {
is_ai = no
scope:recipient = { is_child_of = scope:actor }
scope:recipient = { is_child_of = scope:puppet_or_actor }
}
add_character_flag = {
flag = tutorial_sent_gift
@ -303,13 +414,11 @@ gift_interaction = {
if = {
limit = {
is_ruler = yes
government_allows = administrative
government_has_flag = government_has_influence
scope:recipient = {
is_ruler = yes
government_allows = administrative
any_held_title = {
is_noble_family_title = yes
}
government_has_flag = government_has_influence
is_governor_or_landless_admin = yes
}
}
if = {
@ -319,7 +428,7 @@ gift_interaction = {
house = {
is_dominant_family = yes
}
this = scope:actor.top_liege
this = scope:puppet_or_actor.top_liege
}
influence_level >= 5
}
@ -336,7 +445,7 @@ gift_interaction = {
house = {
is_dominant_family = yes
}
this = scope:actor.top_liege
this = scope:puppet_or_actor.top_liege
}
influence_level >= 3
}
@ -353,7 +462,7 @@ gift_interaction = {
house = {
is_dominant_family = yes
}
this = scope:actor.top_liege
this = scope:puppet_or_actor.top_liege
}
}
}
@ -369,7 +478,7 @@ gift_interaction = {
house = {
is_powerful_family = yes
}
this = scope:actor.top_liege
this = scope:puppet_or_actor.top_liege
}
influence_level >= 5
}
@ -386,7 +495,7 @@ gift_interaction = {
house = {
is_powerful_family = yes
}
this = scope:actor.top_liege
this = scope:puppet_or_actor.top_liege
}
influence_level >= 3
}
@ -403,7 +512,7 @@ gift_interaction = {
house = {
is_powerful_family = yes
}
this = scope:actor.top_liege
this = scope:puppet_or_actor.top_liege
}
}
}
@ -435,8 +544,20 @@ gift_interaction = {
}
}
}
if = {
limit = {
scope:is_puppet_action ?= yes
scope:actor = { is_ai = no }
}
scope:puppet_or_actor = {
set_variable = {
name = puppet_gift_cooldown
years = 5
}
}
}
}
ai_accept = {
base = 0
modifier = {
@ -445,16 +566,16 @@ gift_interaction = {
}
# Struggle motive
modifier = {
desc = AI_STRUGGLE_INTENT
scope:recipient = {
top_liege = this
any_character_struggle = {
involvement = involved
}
}
add = {
value = 0
# modifier = {
# desc = AI_STRUGGLE_INTENT
# scope:recipient = {
# top_liege = this
# any_character_struggle = {
# involvement = involved
# }
# }
# add = {
# value = 0
# if = {
# limit = {
# scope:recipient = {
@ -476,76 +597,77 @@ gift_interaction = {
# }
# add = 200
# }
}
}
# }
# }
}
ai_potential = {
is_available_at_peace_ai_adult = yes
ai_greed < medium_positive_ai_value
short_term_gold >= gift_interaction_cutoff
NOT = {
has_trait = greedy
}
NOT = { has_variable = conqueror }
ai_should_focus_on_building_in_their_capital = no
}
auto_accept = {
custom_description = {
text = auto_accept_interaction_ai
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
target = scope:puppet_or_actor
modifier = gift_opinion
}
}
}
modifier = { # Do not repeat Simony gifts
factor = 0
scope:puppet_or_actor = {
has_personal_tenet_flag = tenet_simony_personal_gifts
}
scope:recipient = {
has_opinion_modifier = {
target = scope:puppet_or_actor
modifier = friendliness_opinion
}
}
}
modifier = { # Basic Filtering
factor = 0
scope:recipient = {
NOR = {
AND = { # Bankrupt lovers, friends and a bankrupt liege should be considered
OR = {
scope:actor = {
scope:puppet_or_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
has_secret_relation_lover = scope:puppet_or_actor
has_relation_lover = scope:puppet_or_actor
has_relation_soulmate = scope:puppet_or_actor
has_relation_friend = scope:puppet_or_actor
has_relation_best_friend = scope:puppet_or_actor
}
gold < 0
}
AND = { # Generous characters will give gifts to their friends/lovers
is_ruler = yes
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
has_secret_relation_lover = scope:puppet_or_actor
has_relation_lover = scope:puppet_or_actor
has_relation_soulmate = scope:puppet_or_actor
has_relation_friend = scope:puppet_or_actor
has_relation_best_friend = scope:puppet_or_actor
}
scope:actor = {
scope:puppet_or_actor = {
OR = {
ai_greed <= high_negative_ai_value
AND = {
@ -560,10 +682,10 @@ gift_interaction = {
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
is_allied_to = scope:puppet_or_actor
is_close_or_extended_family_of = scope:puppet_or_actor
}
scope:actor = {
scope:puppet_or_actor = {
ai_greed < 0
culture = {
has_cultural_parameter = gives_more_gifts
@ -572,13 +694,13 @@ gift_interaction = {
}
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:puppet_or_actor.liege ?= this
has_relation_friend = scope:puppet_or_actor
has_relation_best_friend = scope:puppet_or_actor
is_allied_to = scope:puppet_or_actor
is_close_or_extended_family_of = scope:puppet_or_actor
}
scope:actor = {
scope:puppet_or_actor = {
ai_greed <= 0
has_trait = loyal
}
@ -592,46 +714,46 @@ gift_interaction = {
}
primary_defender = scope:recipient
}
scope:actor = {
scope:puppet_or_actor = {
ai_zeal >= 50
}
}
AND = { # Powerful vassals should be considered
is_powerful_vassal_of = scope:actor
is_powerful_vassal_of = scope:puppet_or_actor
opinion = {
target = scope:actor
target = scope:puppet_or_actor
value < 0
}
NOT ={
has_opinion_modifier = {
target = scope:actor
target = scope:puppet_or_actor
modifier = gift_opinion
}
}
}
AND = { # Factioneering vassals should be considered
is_vassal_of = scope:actor
is_vassal_of = scope:puppet_or_actor
is_a_faction_member = yes
NOT ={
has_opinion_modifier = {
target = scope:actor
target = scope:puppet_or_actor
modifier = gift_opinion
}
}
}
AND = { # Realm Priests should be considered
scope:actor = {
faith = { has_doctrine = doctrine_theocracy_temporal }
scope:puppet_or_actor = {
rite = { rite_has_doctrine = doctrine_theocracy_temporal }
exists = cp:councillor_court_chaplain
cp:councillor_court_chaplain = scope:recipient
}
opinion = {
target = scope:actor
target = scope:puppet_or_actor
value <= 25
}
NOT = {
has_opinion_modifier = {
target = scope:actor
target = scope:puppet_or_actor
modifier = gift_opinion
}
}
@ -640,7 +762,7 @@ gift_interaction = {
gold < 0
is_at_war = yes
any_war_enemy = {
has_relation_rival = scope:actor
has_relation_rival = scope:puppet_or_actor
}
}
# AND = { # Independent ruler within the struggle should be considered
@ -652,7 +774,7 @@ gift_interaction = {
}
}
# # Struggle
# Struggle
# modifier = {
# scope:recipient = {
# any_character_struggle = {
@ -660,7 +782,7 @@ gift_interaction = {
# phase_has_catalyst = catalyst_gift_independent_ruler
# }
# }
# scope:actor = {
# scope:puppet_or_actor = {
# any_character_struggle = {
# involvement = involved
# phase_has_catalyst = catalyst_gift_independent_ruler
@ -673,7 +795,7 @@ gift_interaction = {
# value = 0
# if = {
# limit = {
# scope:actor = {
# scope:puppet_or_actor = {
# has_character_flag = agenda_towards_escalation
# }
# }
@ -681,7 +803,7 @@ gift_interaction = {
# }
# else_if = {
# limit = {
# scope:actor = {
# scope:puppet_or_actor = {
# has_character_flag = agenda_towards_deescalation
# }
# scope:recipient = {
@ -707,7 +829,7 @@ gift_interaction = {
# }
# else_if = {
# limit = {
# scope:actor = {
# scope:puppet_or_actor = {
# has_character_flag = agenda_towards_deescalation
# }
# }
@ -730,26 +852,26 @@ gift_interaction = {
# }
# }
# }
modifier = {
factor = 0.1
scope:recipient = {
opinion = {
target = scope:actor
target = scope:puppet_or_actor
value < 0
}
NAND = {
is_vassal_of = scope:actor
scope:actor = {
is_vassal_of = scope:puppet_or_actor
scope:puppet_or_actor = {
ai_rationality > 50
}
}
}
}
# modifier = {
# add = 100
# scope:actor = {
# scope:puppet_or_actor = {
# is_at_war = no
# has_trait = fp3_struggle_supporter
# any_character_struggle = { is_struggle_type = persian_struggle }
@ -759,28 +881,28 @@ gift_interaction = {
# gold < 0
# }
# }
# Nomads are slightly less likely to do this since they'd prefer to send Herd instead
modifier = {
add = -10
scope:actor = {
scope:puppet_or_actor = {
government_has_flag = government_is_nomadic
}
scope:recipient = {
government_has_flag = government_is_nomadic
}
}
modifier = {
factor = 0.1
scope:recipient = {
has_relation_rival = scope:actor
has_relation_rival = scope:puppet_or_actor
}
}
modifier = {
factor = 2
scope:actor.house.house_confederation ?= {
scope:puppet_or_actor.house.house_confederation ?= {
has_cohesion_level_parameter = bloc_members_send_leader_gifts
leading_house.house_head ?= scope:recipient
}

File diff suppressed because it is too large Load diff

View file

@ -16,22 +16,25 @@ call_house_member_to_war_interaction = {
notification_text = CALL_HOUSE_MEMBER_NOTIFICATION
is_available = {
OR = {
is_house_head = yes
AND = {
exists = dynasty
# Standard check
dynasty ?= { has_dynasty_perk = fp2_coterie_legacy_3 }
# DLC checking
has_fp2_dlc_trigger = yes
}
}
}
is_shown = {
scope:recipient != scope:actor
scope:actor = {
OR = {
is_house_head = yes
AND = {
exists = dynasty
# DLC checking
has_fp2_dlc_trigger = yes
# Standard check
dynasty = { has_dynasty_perk = fp2_coterie_legacy_3 }
}
}
religion = scope:recipient.religion
house = scope:recipient.house
religion ?= scope:recipient.religion
house ?= scope:recipient.house
any_character_war = {
is_war_leader = scope:actor
}
@ -249,7 +252,7 @@ call_house_member_to_war_interaction = {
this = scope:actor
faith = {
faith_hostility_level = {
target = scope:target.casus_belli.primary_defender.faith
target = scope:target.casus_belli.primary_attacker.faith
value >= religious_cb_enabled_hostility_level
}
}
@ -436,39 +439,49 @@ legitimize_bastard_interaction = {
}
}
is_available = {
is_lowborn = no
is_concubine = no
}
is_shown = {
scope:actor.house.house_head.faith = {
has_doctrine_parameter = bastards_legitimize
scope:actor.rite ?= {
rite_has_parameter = bastards_legitimize
}
scope:actor.faith = {
has_doctrine_parameter = bastards_legitimize
scope:actor.house.house_head.rite ?= {
rite_has_parameter = bastards_legitimize
}
scope:secondary_recipient = {
faith = {
has_doctrine_parameter = bastards_legitimize
scope:secondary_recipient ?= {
rite ?= {
rite_has_parameter = bastards_legitimize
}
this != scope:actor
has_trait = bastard
OR = {
father = scope:actor
mother = scope:actor
scope:actor.house.house_head = scope:actor
father ?= scope:actor
mother ?= scope:actor
scope:actor.house.house_head ?= scope:actor
}
OR = {
house = scope:actor.house
house ?= scope:actor.house
AND = {
OR = {
father.house = scope:actor.house
mother.house = scope:actor.house
father.house ?= scope:actor.house
mother.house ?= scope:actor.house
}
has_dynasty = no
}
AND = {
scope:actor.rite ?= {
rite_has_parameter = tenet_adoptionism_legitimize_own_children
}
OR = {
father ?= scope:actor
mother ?= scope:actor
}
}
}
}
scope:actor = {
is_lowborn = no
is_concubine = no
}
}
is_valid_showing_failures_only = {
@ -584,7 +597,7 @@ legitimize_bastard_interaction = {
on_accept = {
scope:actor = {
stress_impact = {
stress_and_fulfillment_impact = {
arrogant = minor_stress_impact_gain
}
@ -677,10 +690,21 @@ accuse_of_decandence_interaction = {
desc = accuse_of_decandence_interaction_desc
is_available = {
government_has_flag = government_is_clan
house.house_head ?= this
trigger_if = {
limit = { is_ai = yes }
is_adult = yes
NOT = {
has_trait = forgiving
}
is_at_war = no
}
}
is_shown = {
scope:actor = { government_has_flag = government_is_clan }
scope:recipient != scope:actor
scope:actor.house.house_head ?= scope:actor
scope:recipient.house ?= scope:actor.house
scope:recipient = {
NOT = {
@ -706,9 +730,15 @@ accuse_of_decandence_interaction = {
on_accept = {
scope:actor = {
stress_impact = {
forgiving = minor_stress_impact_gain
compassionate = minor_stress_impact_gain
# Only get stressed/SP penalties if you don't have the parameter
if = {
limit = {
NOT = { sp_hostile_schemes_except_murder_no_stress_or_fulfillment_trigger = yes }
}
stress_and_fulfillment_impact = {
forgiving = minor_stress_impact_gain
compassionate = minor_stress_impact_gain
}
}
send_interface_toast = {
type = event_toast_effect_neutral
@ -780,16 +810,6 @@ accuse_of_decandence_interaction = {
auto_accept = yes
ai_potential = {
is_at_war = no
government_has_flag = government_is_clan
house.house_head ?= this
is_adult = yes
NOT = {
has_trait = forgiving
}
}
ai_targets = {
ai_recipients = dynasty
max = 30
@ -883,7 +903,7 @@ accuse_of_decandence_interaction = {
has_trait = incestuous
}
NOT = { is_incestuous_trigger = yes }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:incestuous FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient }
trait_is_criminal_in_rite_trigger = { TRAIT = trait:incestuous RITE = scope:actor.rite GENDER_CHARACTER = scope:recipient }
}
AND = {
scope:recipient = {
@ -899,7 +919,7 @@ accuse_of_decandence_interaction = {
has_trait = adulterer
has_trait = fornicator
}
trait_is_criminal_in_faith_trigger = { TRAIT = trait:adulterer FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient }
trait_is_criminal_in_rite_trigger = { TRAIT = trait:adulterer RITE = scope:actor.rite GENDER_CHARACTER = scope:recipient }
}
AND = {
scope:recipient = {
@ -909,25 +929,21 @@ accuse_of_decandence_interaction = {
has_trait = adulterer
has_trait = fornicator
}
trait_is_criminal_in_faith_trigger = { TRAIT = trait:fornicator FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient }
trait_is_criminal_in_rite_trigger = { TRAIT = trait:fornicator RITE = scope:actor.rite GENDER_CHARACTER = scope:recipient }
}
AND = {
scope:recipient = {
has_trait = deviant
}
NOT = {
is_deviant_trigger = yes
}
trait_is_criminal_in_faith_trigger = { TRAIT = trait:deviant FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient }
is_deviant_trigger = no
trait_is_criminal_in_rite_trigger = { TRAIT = trait:deviant RITE = scope:actor.rite GENDER_CHARACTER = scope:recipient }
}
AND = {
scope:recipient = {
has_trait = witch
}
NOT = {
is_witch_trigger = yes
}
trait_is_criminal_in_faith_trigger = { TRAIT = trait:witch FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient }
is_witch_trigger = no
trait_is_criminal_in_rite_trigger = { TRAIT = trait:witch RITE = scope:actor.rite GENDER_CHARACTER = scope:recipient }
}
AND = {
scope:recipient = {
@ -939,16 +955,14 @@ accuse_of_decandence_interaction = {
type = secret_homosexual
}
}
trait_is_criminal_in_faith_trigger = { TRAIT = trait:sodomite FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient }
trait_is_criminal_in_rite_trigger = { TRAIT = trait:sodomite RITE = scope:actor.rite GENDER_CHARACTER = scope:recipient }
}
AND = {
scope:recipient = {
has_trait = cannibal
}
NOT = {
is_cannibal_trigger = yes
}
trait_is_criminal_in_faith_trigger = { TRAIT = trait:cannibal FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient }
is_cannibal_trigger = no
trait_is_criminal_in_rite_trigger = { TRAIT = trait:cannibal RITE = scope:actor.rite GENDER_CHARACTER = scope:recipient }
}
}
}
@ -989,10 +1003,21 @@ extoll_virtuousness_interaction = {
desc = extoll_virtuousness_interaction_desc
is_available = {
government_has_flag = government_is_clan
house.house_head ?= this
trigger_if = {
limit = { is_ai = yes }
is_adult = yes
NOT = {
has_trait = paranoid
}
is_at_war = no
}
}
is_shown = {
scope:actor = { government_has_flag = government_is_clan }
scope:recipient != scope:actor
scope:actor.house.house_head ?= scope:actor
scope:recipient.house ?= scope:actor.house
scope:recipient = {
NOT = {
@ -1013,7 +1038,7 @@ extoll_virtuousness_interaction = {
on_accept = {
scope:actor = {
stress_impact = {
stress_and_fulfillment_impact = {
sadistic = minor_stress_impact_gain
callous = minor_stress_impact_gain
}
@ -1086,16 +1111,6 @@ extoll_virtuousness_interaction = {
auto_accept = yes
ai_potential = {
is_at_war = no
government_has_flag = government_is_clan
house.house_head ?= this
is_adult = yes
NOT = {
has_trait = paranoid
}
}
ai_targets = {
ai_recipients = dynasty
max = 30

View file

@ -34,7 +34,7 @@ invite_agent_to_scheme_interaction = {
force_add_to_agent_slot = {
agent_slot = scope:agent_slot
years = 5
}
}
}
else = { add_to_agent_slot = scope:agent_slot }
}
@ -80,7 +80,7 @@ invite_agent_to_scheme_interaction = {
gold = bribe_value
target = scope:recipient
}
stress_impact = { greedy = minor_stress_impact_gain }
stress_and_fulfillment_impact = { greedy = minor_stress_impact_gain }
}
# Big Bribe
if = {
@ -89,7 +89,7 @@ invite_agent_to_scheme_interaction = {
gold = greater_bribe_value
target = scope:recipient
}
stress_impact = { greedy = medium_stress_impact_gain }
stress_and_fulfillment_impact = { greedy = medium_stress_impact_gain }
}
# Treasury Bribe
if = {
@ -110,7 +110,7 @@ invite_agent_to_scheme_interaction = {
# Offer Hook
if = {
limit = { always = scope:offer_hook }
stress_impact = {
stress_and_fulfillment_impact = {
base = minor_stress_impact_gain
paranoid = major_stress_impact_gain
}
@ -124,7 +124,7 @@ invite_agent_to_scheme_interaction = {
# Offer Strong Hook
if = {
limit = { always = scope:offer_hook_strong }
stress_impact = { base = major_stress_impact_gain }
stress_and_fulfillment_impact = { base = major_stress_impact_gain }
scope:recipient = {
add_hook = {
type = strong_favor_hook
@ -294,7 +294,7 @@ invite_agent_to_scheme_interaction = {
modifier = forced_me_to_help_crimes_opinion
opinion = -20
}
stress_impact = {
stress_and_fulfillment_impact = {
just = minor_stress_impact_gain
compassionate = miniscule_stress_impact_gain
}
@ -307,7 +307,7 @@ invite_agent_to_scheme_interaction = {
modifier = forced_me_to_work_opinion
opinion = -10
}
stress_impact = { lazy = miniscule_stress_impact_gain }
stress_and_fulfillment_impact = { lazy = miniscule_stress_impact_gain }
}
}
}
@ -317,7 +317,7 @@ invite_agent_to_scheme_interaction = {
base = 0
scheme_modifier = {
object = scope:scheme
target = scope:recipient
target = scope:recipient
}
# You should not add modifiers here! If you want to add modifiers, they should be added to either:
## - ai_agent_join_chance_hostile_general_suite_modifier
@ -374,7 +374,7 @@ invite_agent_to_scheme_interaction = {
}
trigger_else = { always = no }
}
options_heading = invite_agent_to_scheme_interaction.t.options_header
# Everyone
## Spend opportunities.
@ -433,7 +433,7 @@ invite_agent_to_scheme_interaction = {
scope:scheme = { is_scheme_category = contract }
scope:recipient = { is_courtier_of = scope:actor }
}
scope:actor = {
scope:actor = {
government_has_flag = government_is_mandala
house = { has_house_head_parameter = unlock_force_agent_using_piety }
is_house_head = yes
@ -449,7 +449,7 @@ invite_agent_to_scheme_interaction = {
text = not_two_overrides
trigger_if = {
limit = { scope:hook = yes }
NOT = {
NOT = {
scope:actor = { has_strong_hook = scope:recipient }
}
}
@ -652,7 +652,7 @@ invite_agent_to_scheme_interaction = {
scope:actor = { has_strong_hook = scope:recipient }
}
scope:mandala_trickster = no
}
}
}
would_agent_accept_petty_bribes_against_target_trigger = yes
}
@ -687,14 +687,14 @@ invite_agent_to_scheme_interaction = {
flag = influence
is_shown = {
scope:actor.top_liege ?= scope:recipient.top_liege
scope:actor = { government_allows = administrative }
scope:actor = { government_has_flag = government_has_influence }
scope:recipient = {
OR = {
government_allows = administrative
host = { government_allows = administrative }
government_has_flag = government_has_influence
host = { government_has_flag = government_has_influence }
AND = {
highest_held_title_tier = tier_barony
liege = { government_allows = administrative }
liege = { government_has_flag = government_has_influence }
}
}
}
@ -870,7 +870,7 @@ invite_agent_to_scheme_interaction = {
flag = piety
is_shown = {
trigger_if = { #Mandala override
limit = {
limit = {
scope:actor = { government_has_flag = government_is_mandala }
}
scope:actor = {
@ -910,8 +910,8 @@ invite_agent_to_scheme_interaction = {
is_valid = {
scope:actor.piety >= piety_bribe_value
trigger_if = { #Mandala override
limit = {
scope:actor = {
limit = {
scope:actor = {
NOT = { government_has_flag = government_is_mandala }
}
}

View file

@ -25,7 +25,7 @@ break_up_with_lover_interaction = {
BREAKER = scope:actor
LOVER = scope:recipient
}
stress_impact = {
stress_and_fulfillment_impact = {
lustful = minor_stress_impact_gain
compassionate = minor_stress_impact_gain
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -12,12 +12,40 @@
greeting = positive
notification_text = REQUEST_SPARRING_TEXT
filter_tags = { accolade }
is_available = {
trigger_if = {
limit = { is_ai = yes }
number_of_knights > 0
OR = {
culture ?= {
has_cultural_parameter = can_use_sparring_duel
}
has_personal_tenet_flag = tenet_unrelenting_faith_sparring
}
NOT = { has_trait = craven }
can_start_single_combat_trigger = yes
is_imprisoned = no
}
OR = {
culture ?= {
has_cultural_parameter = can_use_sparring_duel
}
has_personal_tenet_flag = tenet_unrelenting_faith_sparring
top_participant_group:dynastic_cycle ?= {
participant_group_type = expansion_movement
}
}
}
is_shown = {
scope:actor = {
OR = {
culture = {
has_cultural_parameter = can_use_sparring_duel
}
has_personal_tenet_flag = tenet_unrelenting_faith_sparring
top_participant_group:dynastic_cycle ?= {
participant_group_type = expansion_movement
}
@ -137,17 +165,6 @@
}
}
# AI
ai_potential = {
culture = {
has_cultural_parameter = can_use_sparring_duel
}
NOT = { has_trait = craven }
is_imprisoned = no
can_start_single_combat_trigger = yes
number_of_knights > 0
}
ai_target_quick_trigger = {
adult = yes
}
@ -217,25 +234,30 @@ appoint_podesta_interaction = {
greeting = positive
notification_text = REQUEST_REPUBLIC_TEXT
is_shown = {
scope:actor != scope:recipient # Can't make yourself a Podesta.
scope:actor = {
culture = {
is_available = {
trigger_if = {
limit = { is_ai = yes }
culture ?= {
has_cultural_era_or_later = culture_era_high_medieval
has_cultural_parameter = can_make_republican_vassals
}
any_held_title = {
count > 1
}
primary_title.tier > tier_county
}
culture ?= {
has_cultural_parameter = can_make_republican_vassals
}
any_held_title = {
count > 1
}
}
is_shown = {
scope:actor != scope:recipient # Can't make yourself a Podesta.
scope:recipient = {
is_ai = yes
is_landed = yes
target_is_liege_or_above = scope:actor
NOR = {
government_has_flag = government_is_republic
government_has_flag = government_is_prepublic
government_has_flag = government_is_urepublic
}
NOT = { government_has_flag = government_is_republic }
}
}
@ -258,11 +280,7 @@ appoint_podesta_interaction = {
scope:recipient = {
target_is_liege_or_above = scope:actor
NOR = {
government_has_flag = government_is_republic
government_has_flag = government_is_prepublic
government_has_flag = government_is_urepublic
}
NOT = { government_has_flag = government_is_republic }
is_claimant = no
custom_description = {
@ -310,15 +328,9 @@ appoint_podesta_interaction = {
any_held_title = {
count = 1
title_tier = county
OR = {
any_county_province = {
culture = {
has_cultural_parameter = can_make_republican_vassals
}
}
OR = {
government_has_flag = government_is_prepublic
government_has_flag = government_is_urepublic
any_county_province = {
culture = {
has_cultural_parameter = can_make_republican_vassals
}
}
}
@ -350,71 +362,14 @@ appoint_podesta_interaction = {
left_icon = scope:actor
right_icon = scope:recipient
if = {
limit = {
scope:actor = { government_has_flag = government_is_urepublic }
}
scope:recipient = {
show_as_tooltip = {
change_government = urbanrepublic_government
create_title_and_vassal_change = {
type = returned
save_scope_as = change
add_claim_on_loss = no
}
primary_title = {
add_to_global_variable_list = {
name = urepublic_list
target = prev
}
}
every_vassal = {
limit = {
government_has_flag = government_is_republic
}
every_held_title = {
change_title_holder = {
holder = scope:recipient
change = scope:change
take_baronies = yes
}
}
}
resolve_title_and_vassal_change = scope:change
}
}
}
else_if = {
limit = {
scope:actor = { government_has_flag = government_is_prepublic }
}
scope:recipient = {
show_as_tooltip = {
change_government = peasantrepublic_government
create_title_and_vassal_change = {
type = returned
save_scope_as = change
add_claim_on_loss = no
}
primary_title = {
add_to_global_variable_list = {
name = prepublic_list
target = prev
}
}
every_vassal = {
limit = {
government_has_flag = government_is_republic
}
every_held_title = {
change_title_holder = {
holder = scope:recipient
change = scope:change
take_baronies = yes
}
}
}
resolve_title_and_vassal_change = scope:change
scope:recipient = {
show_as_tooltip = {
change_government = republic_government
create_title_and_vassal_change = {
type = returned
save_scope_as = change
add_claim_on_loss = no
}
every_vassal = {
limit = {
@ -468,15 +423,6 @@ appoint_podesta_interaction = {
auto_accept = yes
# AI
ai_potential = {
culture = {
has_cultural_parameter = can_make_republican_vassals
has_cultural_era_or_later = culture_era_high_medieval
}
primary_title.tier > tier_county
}
ai_target_quick_trigger = {
adult = yes
}

View file

@ -10,14 +10,16 @@
auto_accept = yes
is_available = {
NOR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_in_steppe
}
}
is_shown = {
scope:actor = {
this = scope:recipient
NOR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_true_herder
}
}
}
@ -59,65 +61,7 @@
cost = {
treasury_or_gold = {
scope:actor = {
if = {
limit = {
scope:target.county = {
has_variable = was_razed
}
}
add = {
value = 50
desc = BASE
}
}
else_if = {
limit = {
scope:target.county = {
culture = scope:actor.culture
}
}
add = {
value = 200
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
}
}
}
add = feudalize_holding_interaction_cost
}
}
}
@ -127,84 +71,17 @@
send_interface_toast = {
type = event_toast_effect_good
title = feudalize_holding_interaction_notification
right_icon = scope:actor
if = {
limit = {
scope:target.title_province = {
OR = {
has_holding_type = nomad_holding
has_holding_type = herder_holding
}
}
}
if = {
limit = {
OR = {
scope:target.county.culture = scope:actor.culture
scope:target.county = { has_variable = was_razed }
}
}
}
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
}
}
}
# SILK ROAD
scope:target = {
tgp_silk_road_feudalize_holding_effect = yes
}
}
if = {
limit = { exists = scope:target.title_province }
scope:target.title_province = {
set_holding_type = castle_holding
}
}
scope:target ?= {
if = {
limit = {
title_province = {
geographical_region = geographical_region:mpo_region_permafrost
}
}
if = {
limit = { has_county_modifier = mpo_siberian_permafrost_modifier }
remove_county_modifier = mpo_siberian_permafrost_modifier
}
else_if = {
limit = { has_county_modifier = mpo_siberian_permafrost_modifier_bad }
remove_county_modifier = mpo_siberian_permafrost_modifier_bad
}
}
}
scope:target.title_province ?= {
holding_pre_feudalize_effect = yes
set_holding_type = castle_holding
}
}
}
}
# Interaction frequency determined by code, do not change
ai_frequency = 0
# Interaction frequency determined by code, do not set frequency
# Used to determine which holding should be feudalized over another AND how important this AI goal is compared to others, like creating titles and constructing new holdings
ai_will_do = {
@ -224,10 +101,13 @@ tribalize_holding_interaction = {
auto_accept = yes
is_available = {
government_has_flag = government_is_tribal
}
is_shown = {
scope:actor = {
this = scope:recipient
government_has_flag = government_is_tribal
}
}
@ -333,41 +213,17 @@ tribalize_holding_interaction = {
send_interface_toast = {
type = event_toast_effect_good
title = feudalize_holding_interaction_notification
right_icon = scope:actor
if = {
limit = {
OR = {
scope:target.county.culture = scope:actor.culture
scope:target.county = {
has_variable = was_razed
}
}
}
}
else = {
scope:target.county = {
add_county_modifier = {
modifier = mpo_feudalize_nomadic_land_modifier
years = 5
}
}
}
if = {
limit = { exists = scope:target.title_province }
scope:target.title_province = {
set_holding_type = tribal_holding
}
scope:target.title_province ?= {
holding_pre_tribalize_effect = yes
set_holding_type = tribal_holding
}
}
}
}
# Interaction frequency determined by code, do not change
ai_frequency = 0
# Interaction frequency determined by code, do not set frequency
# Used to determine which holding should be feudalized over another AND how important this AI goal is compared to others, like creating titles and constructing new holdings
ai_will_do = {
base = 1500
@ -385,13 +241,27 @@ support_feudalize_tribal_holding_interaction = {
auto_accept = yes
is_shown = {
scope:actor = {
NOR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
}
is_available = {
trigger_if = {
limit = { is_ai = yes }
is_adult = yes
# The AI only does this if they have plenty of gold to spare
gold >= { value = feudalize_holding_interaction_cost multiply = 4 }
# Some basic triggers
is_at_war = no
# Piety and Legitimacy, you say... ?
ai_has_pious_builder_personality = yes
NOT = { has_variable = conqueror }
# Warring AI don't do this - They want to spend their gold on war!
ai_has_warlike_personality = no
}
NOR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
}
}
is_shown = {
scope:recipient = {
target_is_liege_or_above = scope:actor
NOR = {
@ -401,7 +271,7 @@ support_feudalize_tribal_holding_interaction = {
this != scope:actor
any_held_title = {
tier <= tier_county
title_province = {
title_province ?= {
OR = {
has_holding_type = tribal_holding
has_holding_type = nomad_holding
@ -448,170 +318,22 @@ support_feudalize_tribal_holding_interaction = {
}
cost = {
gold = {
value = 0
treasury_or_gold = {
scope:actor = {
if = {
limit = {
has_treasury = no
}
add = {
value = feudalize_holding_interaction_cost
desc = BASE
}
if = {
limit = { # More expensive for admin to make these 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
scope:actor = {
if = {
limit = {
has_treasury = yes
}
add = {
value = feudalize_holding_interaction_cost
desc = BASE
}
if = {
limit = { # More expensive for admin to make these 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
}
}
}
}
add = feudalize_holding_interaction_cost
}
}
}
is_highlighted = {
# Highlight the interaction if we have the gold to spare
scope:actor = {
gold >= {
value = feudalize_holding_interaction_cost
if = {
limit = { # More expensive for admin to convert these... Barbarians...
government_has_flag = government_is_administrative
}
multiply = {
value = 1.25
desc = has_admin_government
}
}
}
treasury_or_gold >= feudalize_holding_interaction_cost
}
}
on_accept = {
scope:recipient = {
# Add some opinion to make it worthwhile
add_opinion = {
target = scope:actor
modifier = grateful_opinion
opinion = 30
}
if = {
limit = {
scope:target.title_province = {
OR = {
has_holding_type = nomad_holding
has_holding_type = herder_holding
}
}
}
if = {
limit = {
OR = {
scope:target.culture = scope:recipient.culture
scope:target = { has_variable = was_razed }
}
}
}
else_if = {
limit = {
OR = {
government_has_flag = government_is_tribal
scope:target.culture = { has_same_culture_heritage = scope:recipient.culture }
}
}
scope:target = {
add_county_modifier = {
modifier = mpo_feudalize_nomadic_land_modifier
years = 5
}
}
}
else = {
scope:target = {
add_county_modifier = {
modifier = mpo_feudalize_nomadic_land_modifier
years = 30
}
}
}
# SILK ROAD
scope:target = {
tgp_silk_road_feudalize_holding_effect = yes
}
}
# Notify actor and recipient
scope:actor = {
if = { #Temple Citadel
@ -623,11 +345,9 @@ support_feudalize_tribal_holding_interaction = {
left_icon = scope:actor
right_icon = scope:target
if = {
limit = { exists = scope:target.title_province }
scope:target.title_province = {
set_holding_type = temple_citadel_holding
}
scope:target.title_province ?= {
holding_pre_feudalize_effect = yes
set_holding_type = temple_citadel_holding
}
mandala_piety_gain_effect = { PIETY_AMOUNT = massive_piety_gain }
add_legitimacy_effect = { LEGITIMACY = medium_legitimacy_gain }
@ -642,11 +362,9 @@ support_feudalize_tribal_holding_interaction = {
right_icon = scope:target
show_as_tooltip = {
if = {
limit = { exists = scope:target.title_province }
scope:target.title_province = {
set_holding_type = temple_citadel_holding
}
scope:target.title_province ?= {
holding_pre_feudalize_effect = yes
set_holding_type = temple_citadel_holding
}
}
}
@ -661,11 +379,9 @@ support_feudalize_tribal_holding_interaction = {
left_icon = scope:actor
right_icon = scope:target
if = {
limit = { exists = scope:target.title_province }
scope:target.title_province = {
set_holding_type = castle_holding
}
scope:target.title_province ?= {
holding_pre_feudalize_effect = yes
set_holding_type = castle_holding
}
add_legitimacy_effect = { LEGITIMACY = medium_legitimacy_gain }
}
@ -679,11 +395,9 @@ support_feudalize_tribal_holding_interaction = {
right_icon = scope:target
show_as_tooltip = {
if = {
limit = { exists = scope:target.title_province }
scope:target.title_province = {
set_holding_type = castle_holding
}
scope:target.title_province ?= {
holding_pre_feudalize_effect = yes
set_holding_type = castle_holding
}
}
}
@ -695,7 +409,7 @@ support_feudalize_tribal_holding_interaction = {
scope:actor = {
# If you are admin, you get some influence for your efforts
if = {
limit = { government_has_flag = government_is_administrative }
limit = { government_has_flag = government_has_influence }
change_influence = medium_influence_gain
}
}
@ -716,19 +430,6 @@ support_feudalize_tribal_holding_interaction = {
max = 10
}
ai_potential = {
# Some basic triggers
is_at_war = no
is_adult = yes
# The AI only does this if they have plenty of gold to spare
gold >= { value = feudalize_holding_interaction_cost multiply = 4 }
# Warring AI don't do this - They want to spend their gold on war!
ai_has_warlike_personality = no
# Piety and Legitimacy, you say... ?
ai_has_pious_builder_personality = yes
NOT = { has_variable = conqueror }
}
ai_will_do = {
base = 25
modifier = {
@ -759,6 +460,9 @@ turn_subject_into_mandala_interaction = {
ai_targets = {
ai_recipients = vassals
}
ai_targets = {
ai_recipients = tributaries
}
ai_target_quick_trigger = {
adult = yes
}
@ -773,6 +477,14 @@ turn_subject_into_mandala_interaction = {
desc = turn_subject_into_mandala_interaction_desc
is_available = {
trigger_if = {
limit = { is_ai = yes }
government_has_flag = government_is_mandala
is_adult = yes
}
}
is_shown = {
scope:actor = { government_has_flag = government_is_mandala }
scope:recipient = {
@ -782,9 +494,9 @@ turn_subject_into_mandala_interaction = {
is_landed = yes
is_ruler = yes
OR = {
liege = scope:actor
liege ?= scope:actor
AND = {
overlord = scope:actor
overlord ?= scope:actor
scope:actor = {
has_realm_law_flag = can_convert_all_subjects_to_mandalas
}
@ -824,9 +536,9 @@ turn_subject_into_mandala_interaction = {
NOT = { scope:actor.diarch ?= scope:recipient }
}
custom_tooltip = {
text = head_of_faith_unable_to_change_government_desc
text = clergy_unable_to_change_government_desc
NOT = {
scope:recipient = { faith.religious_head ?= this }
scope:recipient = { holds_religious_office_trigger = yes }
}
}
}
@ -890,34 +602,28 @@ turn_subject_into_mandala_interaction = {
scope:recipient = { custom_tooltip = demand_mandala_interaction_vassal_refuses }
}
ai_potential = {
government_has_flag = government_is_mandala
is_adult = yes
}
ai_will_do = {
base = 100
modifier = {
factor = 0
scope:recipient = { highest_held_title_tier >= tier_county }
gold >= 300
gold < 300
}
modifier = {
factor = 0
scope:recipient = { highest_held_title_tier >= tier_duchy }
gold >= 600
gold < 600
}
modifier = {
factor = 0
scope:recipient = { highest_held_title_tier >= tier_kingdom }
gold >= 2000
gold < 2000
}
modifier = {
scope:recipient.capital_county.title_province = {
NOR = {
has_holding_type = temple_citadel_holding
has_holding_type = church_holding
has_holding_type = castle_holding
OR = {
has_holding_type = nomad_holding
has_holding_type = herder_holding
}
}
factor = 0

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -11,6 +11,22 @@ fund_inspiration_interaction = {
category = interaction_category_vassal
desc = fund_inspiration_interaction_desc
is_available = {
trigger_if = {
limit = { is_ai = yes }
OR = {
has_royal_court = yes
OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority }
}
is_at_war = no
gold > ai_inspiration_desired_gold_value
ai_should_focus_on_building_in_their_capital = no
save_temporary_scope_as = inspiration_sponsor
NOT = { has_character_flag = recently_fund_inspiration }
NOT = { has_variable = conqueror }
}
}
is_shown = {
scope:recipient = {
is_ruler = no
@ -90,15 +106,18 @@ fund_inspiration_interaction = {
limit = { scope:recipient.inspiration = { has_inspiration_type = bow_inspiration } }
custom_description_no_bullet = { text = bow_inspiration_cost_tt }
}
else_if = {
limit = { scope:recipient.inspiration = { has_inspiration_type = religious_artifact_inspiration } }
custom_description_no_bullet = { text = religious_artifact_inspiration_cost_tt }
}
# Add a flag on AI to have an extra cooldown of 3 years
if = {
limit = {
scope:actor = {
save_temporary_scope_as = inspiration_sponsor
is_ai = yes
NOT = {
gold >= 1000
}
gold < 1000
OR = {
short_term_gold < ai_inspiration_desired_gold_value
ai_greed >= 50
@ -163,18 +182,6 @@ fund_inspiration_interaction = {
adult = yes
}
ai_potential = {
is_at_war = no
OR = {
has_royal_court = yes
OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority }
}
gold > ai_inspiration_desired_gold_value
NOT = { has_character_flag = recently_fund_inspiration }
NOT = { has_variable = conqueror }
ai_should_focus_on_building_in_their_capital = no
}
ai_will_do = {
base = 100
@ -280,9 +287,12 @@ indebt_guest_interaction = {
pre_answer_yes_key = ANSWER_WILL_SUCCEED
pre_answer_maybe_breakdown_key = ANSWER_SUM_CHANCE
ai_potential = {
# Repeat some is_shown triggers for performance gains.
indebt_guest_interaction_basic_checks_trigger = { ACTOR = this }
is_available = {
trigger_if = {
limit = { is_ai = yes }
# Repeat some is_shown triggers for performance gains.
indebt_guest_interaction_basic_checks_trigger = { ACTOR = this }
}
}
is_shown = {

File diff suppressed because it is too large Load diff

View file

@ -43,14 +43,14 @@ offer_hostage_interaction = {
scope:recipient = {
NOR = {
government_has_flag = government_is_landless_adventurer
government_has_flag = government_is_true_herder
government_has_flag = government_is_herder
}
}
#Inside a merit realm vassals won't offer hostages except to your top liege.
trigger_if = {
limit = {
scope:actor.top_liege = { government_has_flag = government_has_merit }
scope:actor.top_liege != scope:actor
scope:actor.top_liege ?= { government_has_flag = government_has_merit }
scope:recipient != scope:actor.top_liege
}
NAND = {
@ -94,16 +94,12 @@ offer_hostage_interaction = {
}
scope:actor = {
OR = {
government_has_flag = government_is_urepublic
government_has_flag = government_is_prepublic
is_landless_ruler = no
is_landless_administrative = yes
}
}
scope:recipient = {
OR = {
government_has_flag = government_is_urepublic
government_has_flag = government_is_prepublic
is_landless_ruler = no
is_landless_administrative = yes
}
@ -465,15 +461,15 @@ offer_hostage_interaction = {
}
is_available = {
NOT = {
government_has_flag = government_is_landless_adventurer
}
trigger_if = {
limit = {
is_ai = yes
}
NOT = { has_variable = conqueror }
}
NOT = {
government_has_flag = government_is_landless_adventurer
}
}
ai_will_do = {
@ -624,11 +620,19 @@ demand_hostage_interaction = {
cooldown_against_recipient = { years = 3 }
is_available = {
trigger_if = {
limit = { is_ai = yes }
highest_held_title_tier >= tier_county
NOT = { has_variable = conqueror }
}
}
is_shown = {
# Cannot exchange hostages with self
scope:recipient != scope:actor
# Cannot exchange hostages with a herder
NOT = { scope:recipient = { government_has_flag = government_is_true_herder } }
NOT = { scope:recipient = { government_has_flag = government_is_herder } }
# Only significant rulers use hostages
scope:actor.highest_held_title_tier > tier_barony
OR = {
@ -650,8 +654,8 @@ demand_hostage_interaction = {
#Inside a merit realm vassals won't demand hostages.
trigger_if = {
limit = {
scope:actor.top_liege = { government_has_flag = government_has_merit }
scope:actor.top_liege != scope:actor
scope:actor.top_liege ?= { government_has_flag = government_has_merit }
}
NAND = {
scope:actor = { government_has_flag = government_has_merit }
@ -681,16 +685,12 @@ demand_hostage_interaction = {
}
scope:actor = {
OR = {
government_has_flag = government_is_urepublic
government_has_flag = government_is_prepublic
is_landless_ruler = no
is_landless_administrative = yes
}
}
scope:recipient = {
OR = {
government_has_flag = government_is_urepublic
government_has_flag = government_is_prepublic
is_landless_ruler = no
is_landless_administrative = yes
}
@ -1208,11 +1208,6 @@ demand_hostage_interaction = {
hegemony = 36
}
ai_potential = {
highest_held_title_tier >= tier_county
NOT = { has_variable = conqueror }
}
ai_will_do = {
base = 0
opinion_modifier = { # Opinion Factor
@ -1328,11 +1323,20 @@ exchange_hostage_interaction = {
cooldown_against_recipient = { years = 3 }
is_available = {
trigger_if = {
limit = { is_ai = yes }
highest_held_title_tier >= tier_county
is_adult = yes
NOT = { has_variable = conqueror }
}
}
is_shown = {
# Cannot exchange hostages with self
scope:recipient != scope:actor
# Cannot exchange hostages with a herder
NOT = { scope:recipient = { government_has_flag = government_is_true_herder } }
NOT = { scope:recipient = { government_has_flag = government_is_herder } }
# Only significant rulers use hostages
scope:actor.highest_held_title_tier > tier_barony
OR = {
@ -1354,8 +1358,8 @@ exchange_hostage_interaction = {
#Inside a merit realm vassals won't exchange hostages.
trigger_if = {
limit = {
scope:actor.top_liege = { government_has_flag = government_has_merit }
scope:actor.top_liege != scope:actor
scope:actor.top_liege ?= { government_has_flag = government_has_merit }
}
NAND = {
scope:actor = { government_has_flag = government_has_merit }
@ -1423,8 +1427,6 @@ exchange_hostage_interaction = {
}
}
OR = {
government_has_flag = government_is_urepublic
government_has_flag = government_is_prepublic
is_landless_ruler = no
is_landless_administrative = yes
}
@ -1903,12 +1905,6 @@ exchange_hostage_interaction = {
hegemony = 36
}
ai_potential = {
is_adult = yes
highest_held_title_tier >= tier_county
NOT = { has_variable = conqueror }
}
ai_will_do = {
base = 0
opinion_modifier = { # Opinion Factor
@ -2057,7 +2053,7 @@ return_hostage_interaction = {
desc = return_hostage_interaction_desc
populate_recipient_list = {
scope:actor = {
scope:puppet_or_actor = {
every_warden_hostage = {
limit = { home_court ?= scope:recipient }
add_to_list = characters
@ -2067,22 +2063,31 @@ return_hostage_interaction = {
cost = {}
is_available = {
# Implied by is_shown, but asked once per character instead of once per recipient
trigger_if = {
limit = { is_ai = yes }
any_warden_hostage = { count >= 1 }
}
}
is_shown = {
# Cannot return hostages to self
scope:recipient != scope:actor
exists = scope:puppet_or_actor
scope:recipient != scope:puppet_or_actor
# Must have a hostage
OR = {
scope:actor = {
scope:puppet_or_actor ?= {
any_warden_hostage = { home_court ?= scope:recipient }
}
scope:recipient.warden ?= scope:actor
scope:recipient.warden ?= scope:puppet_or_actor
}
}
redirect = {
if = {
limit = {
scope:recipient.warden ?= scope:actor
scope:recipient.warden ?= scope:puppet_or_actor
}
scope:recipient = { save_scope_as = secondary_recipient }
scope:recipient.home_court = { save_scope_as = recipient }
@ -2092,9 +2097,9 @@ return_hostage_interaction = {
is_valid_showing_failures_only = {
NOR = {
# Must be at peace
scope:recipient = { is_at_war_with = scope:actor }
scope:recipient = { is_at_war_with = scope:puppet_or_actor }
# Only family oriented governments use hostages
scope:actor = {
scope:puppet_or_actor = {
OR = {
government_has_flag = government_is_theocracy
government_has_flag = government_is_landless_adventurer
@ -2115,7 +2120,7 @@ return_hostage_interaction = {
can_send = {
NOT = {
scope:actor = { is_at_war_with = scope:recipient }
scope:puppet_or_actor = { is_at_war_with = scope:recipient }
}
}
@ -2125,7 +2130,7 @@ return_hostage_interaction = {
on_accept = {
# Save scopes for clarity
scope:actor = { save_scope_as = warden }
scope:puppet_or_actor = { save_scope_as = warden }
scope:recipient = { save_scope_as = home_court }
scope:secondary_recipient = { save_scope_as = hostage }
# Send toast informing sender of acceptance
@ -2203,8 +2208,8 @@ return_hostage_interaction = {
}
NOT = {
scope:recipient = {
has_any_cb_on = scope:actor
scope:recipient.current_strength_with_allies_fifty_percent_value > scope:actor.current_strength_with_allies_value
has_any_cb_on = scope:puppet_or_actor
scope:recipient.current_strength_with_allies_fifty_percent_value > scope:puppet_or_actor.current_strength_with_allies_value
}
}
}
@ -2213,21 +2218,21 @@ return_hostage_interaction = {
}
opinion_modifier = { # Opinion Factor
who = scope:recipient
opinion_target = scope:actor
opinion_target = scope:puppet_or_actor
multiplier = 0.5
desc = AI_OPINION_REASON
}
modifier = {
add = 25
scope:actor = {
scope:puppet_or_actor = {
has_any_cb_on = scope:recipient
scope:actor.current_strength_with_allies_fifty_percent_value > scope:recipient.current_strength_with_allies_value
scope:puppet_or_actor.current_strength_with_allies_fifty_percent_value > scope:recipient.current_strength_with_allies_value
}
}
modifier = {
scope:recipient = {
OR = {
is_allied_to = scope:actor
is_allied_to = scope:puppet_or_actor
is_spouse_of = scope:recipient
}
}
@ -2235,26 +2240,26 @@ return_hostage_interaction = {
}
modifier = {
scope:recipient = {
has_any_cb_on = scope:actor
scope:recipient.current_strength_with_allies_fifty_percent_value > scope:actor.current_strength_with_allies_value
has_any_cb_on = scope:puppet_or_actor
scope:recipient.current_strength_with_allies_fifty_percent_value > scope:puppet_or_actor.current_strength_with_allies_value
}
add = -50
}
bp2_hostage_return_personality_modifier = {
WARDEN = scope:actor
WARDEN = scope:puppet_or_actor
HOME_COURT = scope:recipient
}
# Cultural traditions
modifier = {
scope:actor.culture = { has_cultural_tradition = tradition_equitable }
scope:puppet_or_actor.culture = { has_cultural_tradition = tradition_equitable }
add = 25
}
modifier = {
scope:actor.culture = { has_cultural_tradition = tradition_esteemed_hospitality }
scope:puppet_or_actor.culture = { has_cultural_tradition = tradition_esteemed_hospitality }
add = 25
}
modifier = {
scope:actor = {
scope:puppet_or_actor = {
is_vassal_of = scope:recipient
culture = { has_cultural_tradition = tradition_loyal_soldiers }
}
@ -2756,6 +2761,13 @@ influence_child_personality_interaction = {
desc = influence_child_personality_interaction_desc
is_available = {
trigger_if = {
limit = { is_ai = yes }
any_relation = { type = ward }
}
}
is_shown = { #any ai ward/hostage
has_bp2_dlc_trigger = yes
scope:recipient = {
@ -3990,183 +4002,183 @@ influence_child_personality_interaction = {
switch = {
trigger = yes
scope:sadistic = {
scope:recipient.faith = {
trait_is_virtue = trait:sadistic
scope:recipient.rite = {
trait_is_virtue_rite = trait:sadistic
}
}
scope:lustful = {
scope:recipient.faith = {
trait_is_virtue = trait:lustful
scope:recipient.rite = {
trait_is_virtue_rite = trait:lustful
}
}
scope:chaste = {
scope:recipient.faith = {
trait_is_virtue = trait:chaste
scope:recipient.rite = {
trait_is_virtue_rite = trait:chaste
}
}
scope:gluttonous = {
scope:recipient.faith = {
trait_is_virtue = trait:gluttonous
scope:recipient.rite = {
trait_is_virtue_rite = trait:gluttonous
}
}
scope:temperate = {
scope:recipient.faith = {
trait_is_virtue = trait:temperate
scope:recipient.rite = {
trait_is_virtue_rite = trait:temperate
}
}
scope:greedy = {
scope:recipient.faith = {
trait_is_virtue = trait:greedy
scope:recipient.rite = {
trait_is_virtue_rite = trait:greedy
}
}
scope:generous = {
scope:recipient.faith = {
trait_is_virtue = trait:generous
scope:recipient.rite = {
trait_is_virtue_rite = trait:generous
}
}
scope:lazy = {
scope:recipient.faith = {
trait_is_virtue = trait:lazy
scope:recipient.rite = {
trait_is_virtue_rite = trait:lazy
}
}
scope:diligent = {
scope:recipient.faith = {
trait_is_virtue = trait:diligent
scope:recipient.rite = {
trait_is_virtue_rite = trait:diligent
}
}
scope:wrathful = {
scope:recipient.faith = {
trait_is_virtue = trait:wrathful
scope:recipient.rite = {
trait_is_virtue_rite = trait:wrathful
}
}
scope:calm = {
scope:recipient.faith = {
trait_is_virtue = trait:calm
scope:recipient.rite = {
trait_is_virtue_rite = trait:calm
}
}
scope:patient = {
scope:recipient.faith = {
trait_is_virtue = trait:patient
scope:recipient.rite = {
trait_is_virtue_rite = trait:patient
}
}
scope:impatient = {
scope:recipient.faith = {
trait_is_virtue = trait:impatient
scope:recipient.rite = {
trait_is_virtue_rite = trait:impatient
}
}
scope:arrogant = {
scope:recipient.faith = {
trait_is_virtue = trait:arrogant
scope:recipient.rite = {
trait_is_virtue_rite = trait:arrogant
}
}
scope:humble = {
scope:recipient.faith = {
trait_is_virtue = trait:humble
scope:recipient.rite = {
trait_is_virtue_rite = trait:humble
}
}
scope:deceitful = {
scope:recipient.faith = {
trait_is_virtue = trait:deceitful
scope:recipient.rite = {
trait_is_virtue_rite = trait:deceitful
}
}
scope:honest = {
scope:recipient.faith = {
trait_is_virtue = trait:honest
scope:recipient.rite = {
trait_is_virtue_rite = trait:honest
}
}
scope:craven = {
scope:recipient.faith = {
trait_is_virtue = trait:craven
scope:recipient.rite = {
trait_is_virtue_rite = trait:craven
}
}
scope:brave = {
scope:recipient.faith = {
trait_is_virtue = trait:brave
scope:recipient.rite = {
trait_is_virtue_rite = trait:brave
}
}
scope:shy = {
scope:recipient.faith = {
trait_is_virtue = trait:shy
scope:recipient.rite = {
trait_is_virtue_rite = trait:shy
}
}
scope:gregarious = {
scope:recipient.faith = {
trait_is_virtue = trait:gregarious
scope:recipient.rite = {
trait_is_virtue_rite = trait:gregarious
}
}
scope:ambitious = {
scope:recipient.faith = {
trait_is_virtue = trait:ambitious
scope:recipient.rite = {
trait_is_virtue_rite = trait:ambitious
}
}
scope:content = {
scope:recipient.faith = {
trait_is_virtue = trait:content
scope:recipient.rite = {
trait_is_virtue_rite = trait:content
}
}
scope:arbitrary = {
scope:recipient.faith = {
trait_is_virtue = trait:arbitrary
scope:recipient.rite = {
trait_is_virtue_rite = trait:arbitrary
}
}
scope:just = {
scope:recipient.faith = {
trait_is_virtue = trait:just
scope:recipient.rite = {
trait_is_virtue_rite = trait:just
}
}
scope:cynical = {
scope:recipient.faith = {
trait_is_virtue = trait:cynical
scope:recipient.rite = {
trait_is_virtue_rite = trait:cynical
}
}
scope:zealous = {
scope:recipient.faith = {
trait_is_virtue = trait:zealous
scope:recipient.rite = {
trait_is_virtue_rite = trait:zealous
}
}
scope:paranoid = {
scope:recipient.faith = {
trait_is_virtue = trait:paranoid
scope:recipient.rite = {
trait_is_virtue_rite = trait:paranoid
}
}
scope:trusting = {
scope:recipient.faith = {
trait_is_virtue = trait:trusting
scope:recipient.rite = {
trait_is_virtue_rite = trait:trusting
}
}
scope:compassionate = {
scope:recipient.faith = {
trait_is_virtue = trait:compassionate
scope:recipient.rite = {
trait_is_virtue_rite = trait:compassionate
}
}
scope:callous = {
scope:recipient.faith = {
trait_is_virtue = trait:callous
scope:recipient.rite = {
trait_is_virtue_rite = trait:callous
}
}
scope:stubborn = {
scope:recipient.faith = {
trait_is_virtue = trait:stubborn
scope:recipient.rite = {
trait_is_virtue_rite = trait:stubborn
}
}
scope:fickle = {
scope:recipient.faith = {
trait_is_virtue = trait:fickle
scope:recipient.rite = {
trait_is_virtue_rite = trait:fickle
}
}
scope:eccentric = {
scope:recipient.faith = {
trait_is_virtue = trait:eccentric
scope:recipient.rite = {
trait_is_virtue_rite = trait:eccentric
}
}
scope:vengeful = {
scope:recipient.faith = {
trait_is_virtue = trait:vengeful
scope:recipient.rite = {
trait_is_virtue_rite = trait:vengeful
}
}
scope:forgiving = {
scope:recipient.faith = {
trait_is_virtue = trait:forgiving
scope:recipient.rite = {
trait_is_virtue_rite = trait:forgiving
}
}
}
@ -4730,183 +4742,183 @@ influence_child_personality_interaction = {
switch = {
trigger = yes
scope:sadistic = {
scope:recipient.faith = {
trait_is_sin = trait:sadistic
scope:recipient.rite = {
trait_is_sin_rite = trait:sadistic
}
}
scope:lustful = {
scope:recipient.faith = {
trait_is_sin = trait:lustful
scope:recipient.rite = {
trait_is_sin_rite = trait:lustful
}
}
scope:chaste = {
scope:recipient.faith = {
trait_is_sin = trait:chaste
scope:recipient.rite = {
trait_is_sin_rite = trait:chaste
}
}
scope:gluttonous = {
scope:recipient.faith = {
trait_is_sin = trait:gluttonous
scope:recipient.rite = {
trait_is_sin_rite = trait:gluttonous
}
}
scope:temperate = {
scope:recipient.faith = {
trait_is_sin = trait:temperate
scope:recipient.rite = {
trait_is_sin_rite = trait:temperate
}
}
scope:greedy = {
scope:recipient.faith = {
trait_is_sin = trait:greedy
scope:recipient.rite = {
trait_is_sin_rite = trait:greedy
}
}
scope:generous = {
scope:recipient.faith = {
trait_is_sin = trait:generous
scope:recipient.rite = {
trait_is_sin_rite = trait:generous
}
}
scope:lazy = {
scope:recipient.faith = {
trait_is_sin = trait:lazy
scope:recipient.rite = {
trait_is_sin_rite = trait:lazy
}
}
scope:diligent = {
scope:recipient.faith = {
trait_is_sin = trait:diligent
scope:recipient.rite = {
trait_is_sin_rite = trait:diligent
}
}
scope:wrathful = {
scope:recipient.faith = {
trait_is_sin = trait:wrathful
scope:recipient.rite = {
trait_is_sin_rite = trait:wrathful
}
}
scope:calm = {
scope:recipient.faith = {
trait_is_sin = trait:calm
scope:recipient.rite = {
trait_is_sin_rite = trait:calm
}
}
scope:patient = {
scope:recipient.faith = {
trait_is_sin = trait:patient
scope:recipient.rite = {
trait_is_sin_rite = trait:patient
}
}
scope:impatient = {
scope:recipient.faith = {
trait_is_sin = trait:impatient
scope:recipient.rite = {
trait_is_sin_rite = trait:impatient
}
}
scope:arrogant = {
scope:recipient.faith = {
trait_is_sin = trait:arrogant
scope:recipient.rite = {
trait_is_sin_rite = trait:arrogant
}
}
scope:humble = {
scope:recipient.faith = {
trait_is_sin = trait:humble
scope:recipient.rite = {
trait_is_sin_rite = trait:humble
}
}
scope:deceitful = {
scope:recipient.faith = {
trait_is_sin = trait:deceitful
scope:recipient.rite = {
trait_is_sin_rite = trait:deceitful
}
}
scope:honest = {
scope:recipient.faith = {
trait_is_sin = trait:honest
scope:recipient.rite = {
trait_is_sin_rite = trait:honest
}
}
scope:craven = {
scope:recipient.faith = {
trait_is_sin = trait:craven
scope:recipient.rite = {
trait_is_sin_rite = trait:craven
}
}
scope:brave = {
scope:recipient.faith = {
trait_is_sin = trait:brave
scope:recipient.rite = {
trait_is_sin_rite = trait:brave
}
}
scope:shy = {
scope:recipient.faith = {
trait_is_sin = trait:shy
scope:recipient.rite = {
trait_is_sin_rite = trait:shy
}
}
scope:gregarious = {
scope:recipient.faith = {
trait_is_sin = trait:gregarious
scope:recipient.rite = {
trait_is_sin_rite = trait:gregarious
}
}
scope:ambitious = {
scope:recipient.faith = {
trait_is_sin = trait:ambitious
scope:recipient.rite = {
trait_is_sin_rite = trait:ambitious
}
}
scope:content = {
scope:recipient.faith = {
trait_is_sin = trait:content
scope:recipient.rite = {
trait_is_sin_rite = trait:content
}
}
scope:arbitrary = {
scope:recipient.faith = {
trait_is_sin = trait:arbitrary
scope:recipient.rite = {
trait_is_sin_rite = trait:arbitrary
}
}
scope:just = {
scope:recipient.faith = {
trait_is_sin = trait:just
scope:recipient.rite = {
trait_is_sin_rite = trait:just
}
}
scope:cynical = {
scope:recipient.faith = {
trait_is_sin = trait:cynical
scope:recipient.rite = {
trait_is_sin_rite = trait:cynical
}
}
scope:zealous = {
scope:recipient.faith = {
trait_is_sin = trait:zealous
scope:recipient.rite = {
trait_is_sin_rite = trait:zealous
}
}
scope:paranoid = {
scope:recipient.faith = {
trait_is_sin = trait:paranoid
scope:recipient.rite = {
trait_is_sin_rite = trait:paranoid
}
}
scope:trusting = {
scope:recipient.faith = {
trait_is_sin = trait:trusting
scope:recipient.rite = {
trait_is_sin_rite = trait:trusting
}
}
scope:compassionate = {
scope:recipient.faith = {
trait_is_sin = trait:compassionate
scope:recipient.rite = {
trait_is_sin_rite = trait:compassionate
}
}
scope:callous = {
scope:recipient.faith = {
trait_is_sin = trait:callous
scope:recipient.rite = {
trait_is_sin_rite = trait:callous
}
}
scope:stubborn = {
scope:recipient.faith = {
trait_is_sin = trait:stubborn
scope:recipient.rite = {
trait_is_sin_rite = trait:stubborn
}
}
scope:fickle = {
scope:recipient.faith = {
trait_is_sin = trait:fickle
scope:recipient.rite = {
trait_is_sin_rite = trait:fickle
}
}
scope:eccentric = {
scope:recipient.faith = {
trait_is_sin = trait:eccentric
scope:recipient.rite = {
trait_is_sin_rite = trait:eccentric
}
}
scope:vengeful = {
scope:recipient.faith = {
trait_is_sin = trait:vengeful
scope:recipient.rite = {
trait_is_sin_rite = trait:vengeful
}
}
scope:forgiving = {
scope:recipient.faith = {
trait_is_sin = trait:forgiving
scope:recipient.rite = {
trait_is_sin_rite = trait:forgiving
}
}
}
@ -4944,10 +4956,6 @@ influence_child_personality_interaction = {
}
}
# AI
ai_potential = {
any_relation = { type = ward }
}
ai_frequency_by_tier = {
barony = 0
county = 36
@ -4996,3 +5004,4 @@ influence_child_personality_interaction = {
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -69,18 +69,18 @@ debug_impact_house_relation_interaction = {
custom_tooltip = {
text = action_in_debt_click
NOT = {
house_has_feud_relation_with_trigger = { TARGET = scope:recipient }
scope:actor = { house_has_feud_relation_with_trigger = { TARGET = scope:recipient } }
}
}
}
}
can_send = {
house_relation_is_valid_to_start_trigger = {
HOUSE = scope:actor.house
OTHER_HOUSE = scope:recipient.house
house_relation_is_valid_to_start_trigger = {
HOUSE = scope:actor.house
OTHER_HOUSE = scope:recipient.house
}
}
}
on_accept = {
if = {
limit = { scope:clear_relation = yes }

View file

@ -6,9 +6,14 @@ ep3_hof_ask_for_influence_interaction = {
category = interaction_category_religion
desc = ep3_hof_ask_for_influence_interaction_desc
notification_text = ASK_FOR_INFLUENCE_TEXT
ai_targets = {
ai_recipients = head_of_faith
ai_recipients = realm_priest_superior
ai_recipients = superior
ai_recipients = realm_priest_top_superior
ai_recipients = councillors
}
ai_target_quick_trigger = {
adult = yes
@ -22,51 +27,95 @@ ep3_hof_ask_for_influence_interaction = {
hegemony = 24
}
redirect = {
scope:actor = {
spiritual_hof_or_realm_priest_superior_recipient_redirect_effect = yes
}
}
cooldown_against_recipient = { years = 10 }
is_shown = {
scope:recipient != scope:actor
scope:actor.faith = {
religious_head = scope:recipient
has_doctrine = doctrine_spiritual_head
is_available = {
government_has_mechanic = administrative
trigger_if = {
limit = {
is_ai = yes
}
piety >= massive_piety_value
exists = faith.religious_head
exists = house
NOT = { has_trait = excommunicated }
}
scope:actor = {
is_playable_character = yes
government_allows = administrative
is_lowborn = no
is_playable_character = yes
faith ?= {
OR = {
has_doctrine = doctrine_spiritual_head
has_doctrine_parameter = has_clerical_regions
}
}
is_lowborn = no
}
is_shown = {
scope:recipient != scope:puppet_or_actor
scope:puppet_or_actor ?= {
broader_clergy_show_hof_or_superior_interactions_trigger = yes
}
}
is_valid_showing_failures_only = {
scope:actor = {
spiritual_hof_or_realm_priest_superior_recipient_trigger = yes
piety >= massive_piety_value
custom_description = {
text = "hof_ask_for_gold_excommunicated"
text = hof_ask_for_gold_excommunicated
NOT = { has_trait = excommunicated }
}
NOT = { is_at_war_with = scope:recipient }
custom_description = {
text = "hof_interaction_unreformed_faith"
custom_tooltip = {
text = HOF_INTERACTION_UNREFORMED_FAITH
NOT = {
faith = { has_doctrine_parameter = unreformed }
}
}
custom_description = {
text = "hof_interaction_has_house_modifier"
custom_tooltip = {
text = HOF_INTERACTION_STATE_FAITH
top_liege = {
government_allows = state_faith
exists = primary_title.state_rite
}
rite = {
this = scope:actor.top_liege.primary_title.state_rite
}
}
custom_tooltip = {
text = HOF_INTERACTION_HAS_HOUSE_MODIFIER
house ?= {
NOT = {
NOR = {
has_house_modifier = ep3_requested_faith_support_modifier
has_house_modifier = ep3_requested_faith_support_modifier_small
}
}
}
custom_description = {
text = "hof_interaction_is_house_head"
custom_tooltip = {
text = HOF_INTERACTION_IS_HOUSE_HEAD
house ?= {
house_head = scope:actor
}
}
}
custom_tooltip = {
text = recipient_supports_3_houses_tt
NOT = {
scope:recipient = {
has_variable_list = cleric_houses_support
variable_list_size = {
name = cleric_houses_support
value >= 3
}
}
}
}
}
auto_accept = {
@ -109,19 +158,14 @@ ep3_hof_ask_for_influence_interaction = {
}
on_decline = {
show_as_tooltip = {
scope:actor = { clerical_interaction_refusal_major_effect = yes }
}
scope:actor = {
trigger_event = ep3_interactions_events.0621
}
}
ai_potential = {
is_playable_character = yes
piety >= massive_piety_value
NOT = { has_trait = excommunicated }
exists = faith.religious_head
exists = house
}
ai_accept = {
base = -50
@ -131,6 +175,33 @@ ep3_hof_ask_for_influence_interaction = {
multiplier = 0.5
}
modifier = {
scope:recipient = {
OR = {
ai_greed > 0
ai_greed < 0
}
}
add = {
value = scope:recipient.ai_greed
multiply = 0.5
}
desc = AI_GREED_REASON
}
modifier = {
scope:recipient = {
OR = {
ai_honor > 0
ai_honor < 0
}
}
add = {
value = scope:recipient.ai_honor
multiply = -0.5
}
desc = AI_HONOR_REASON
}
#Doesn't like the emperor... if you're not the emperor
modifier = {
add = 5
@ -270,14 +341,6 @@ ep3_hof_ask_for_influence_interaction = {
}
}
modifier = { # HoF wants the influence for themselves!
add = -10
desc = THEY_ARE_GREEDY
scope:recipient = {
ai_greed >= high_positive_greed
}
}
modifier = { # I am influential already
add = -10
desc = I_AM_INFLUENTIAL
@ -304,11 +367,11 @@ ep3_hof_ask_for_influence_interaction = {
OR = {
AND = {
has_trait = fornicator
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:fornicator GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_rite_trigger = { RITE = rite TRAIT = trait:fornicator GENDER_CHARACTER = scope:actor }
}
AND = {
has_trait = adulterer
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:adulterer GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_rite_trigger = { RITE = rite TRAIT = trait:adulterer GENDER_CHARACTER = scope:actor }
}
}
}
@ -326,7 +389,7 @@ ep3_hof_ask_for_influence_interaction = {
add = -50
desc = I_AM_INCESTOUS
scope:actor = {
NOT = { scope:recipient = { faith = { has_doctrine = doctrine_consanguinity_unrestricted } } }
NOT = { scope:recipient = { rite = { rite_has_doctrine = doctrine_consanguinity_unrestricted } } }
has_trait = incestuous
}
}
@ -338,15 +401,15 @@ ep3_hof_ask_for_influence_interaction = {
OR = {
AND = {
has_trait = kinslayer_1
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:kinslayer_1 GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_rite_trigger = { RITE = rite TRAIT = trait:kinslayer_1 GENDER_CHARACTER = scope:actor }
}
AND = {
has_trait = kinslayer_2
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:kinslayer_2 GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_rite_trigger = { RITE = rite TRAIT = trait:kinslayer_2 GENDER_CHARACTER = scope:actor }
}
AND = {
has_trait = kinslayer_3
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:kinslayer_3 GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_rite_trigger = { RITE = rite TRAIT = trait:kinslayer_3 GENDER_CHARACTER = scope:actor }
}
}
}
@ -496,20 +559,20 @@ ep3_hof_ask_for_influence_interaction = {
scope:actor.num_sinful_traits > 0
desc = I_AM_SINFUL
}
# Admin family attribute bonus
modifier = {
add = {
value = 0
if = {
limit = {
scope:actor.house ?= { has_house_aspiration_parameter= increased_clerical_influence_acceptance_3 }
scope:actor.house ?= { has_house_aspiration_parameter = increased_clerical_influence_acceptance_3 }
}
add = increased_clerical_influence_acceptance_3_value
}
else_if = {
limit = {
scope:actor.house ?= { has_house_aspiration_parameter= increased_clerical_influence_acceptance_2 }
scope:actor.house ?= { has_house_aspiration_parameter = increased_clerical_influence_acceptance_2 }
}
add = increased_clerical_influence_acceptance_2_value
}
@ -519,13 +582,51 @@ ep3_hof_ask_for_influence_interaction = {
}
scope:actor.house ?= {
OR = {
has_house_aspiration_parameter= increased_clerical_influence_acceptance_1
has_house_aspiration_parameter= increased_clerical_influence_acceptance_2
has_house_aspiration_parameter= increased_clerical_influence_acceptance_3
has_house_aspiration_parameter = increased_clerical_influence_acceptance_1
has_house_aspiration_parameter = increased_clerical_influence_acceptance_2
has_house_aspiration_parameter = increased_clerical_influence_acceptance_3
}
}
desc = you_have_faithful_nobles_attribute_with_value_desc
}
secular_to_ecclesiastical_pam_factors_acceptance_modifier = yes
modifier = {
add = -30
scope:recipient = {
has_variable_list = cleric_houses_support
variable_list_size = {
name = cleric_houses_support
value < 2
}
}
desc = supports_other_house_reason
}
modifier = {
add = -75
scope:recipient = {
has_variable_list = cleric_houses_support
variable_list_size = {
name = cleric_houses_support
value >= 2
}
}
desc = supports_other_houses_reason
}
modifier = {
scope:actor.house ?= {
is_powerful_family = yes
}
add = 25
desc = YOUR_FAMILY_IS_POWERFUL
}
modifier = {
scope:actor.house ?= {
is_dominant_family = yes
}
add = 50
desc = YOUR_FAMILY_IS_DOMINANT
}
}
ai_will_do = {
@ -593,5 +694,25 @@ ep3_hof_ask_for_influence_interaction = {
ai_has_cautious_personality = no
}
}
modifier = {
add = -25
scope:recipient = {
has_variable_list = cleric_houses_support
variable_list_size = {
name = cleric_houses_support
value < 2
}
}
}
modifier = {
add = -75
scope:recipient = {
has_variable_list = cleric_houses_support
variable_list_size = {
name = cleric_houses_support
value >= 2
}
}
}
}
}

View file

@ -13,8 +13,8 @@ tribute_mission_gold_interaction = {
#Small Tribute
send_option = {
flag = small_gold_tribute
is_valid = {
scope:actor = {
is_valid = {
scope:actor = {
gold >= {
value = small_gold_tribute_value
if = {
@ -29,7 +29,7 @@ tribute_mission_gold_interaction = {
send_option = {
flag = adequate_gold_tribute
is_valid = {
scope:actor = {
scope:actor = {
gold >= {
value = adequate_gold_tribute_value
if = {
@ -44,7 +44,7 @@ tribute_mission_gold_interaction = {
send_option = {
flag = excessive_gold_tribute
is_valid = {
scope:actor = {
scope:actor = {
gold >= {
value = excessive_gold_tribute_value
if = {
@ -130,9 +130,9 @@ tribute_mission_herd_interaction = {
send_option = {
flag = small_herd_tribute
is_valid = {
is_valid = {
scope:actor = {
domicile ?= {
domicile ?= {
herd >= {
value = {
add = small_herd_tribute_value
@ -151,9 +151,9 @@ tribute_mission_herd_interaction = {
send_option = {
flag = adequate_herd_tribute
is_valid = {
is_valid = {
scope:actor = {
domicile ?= {
domicile ?= {
herd >= {
value = {
add = adequate_herd_tribute_value
@ -171,9 +171,9 @@ tribute_mission_herd_interaction = {
send_option = {
flag = excessive_herd_tribute
is_valid = {
is_valid = {
scope:actor = {
domicile ?= {
domicile ?= {
herd >= {
value = {
add = excessive_herd_tribute_value
@ -266,6 +266,7 @@ tribute_mission_artifact_interaction = {
target_type = artifact
target_filter = actor_artifacts
show_all_targets = no
ai_min_reply_days = 0
ai_max_reply_days = 0
@ -305,7 +306,7 @@ tribute_mission_artifact_interaction = {
scope:recipient = { is_ai = no }
}
}
ai_accept = {
base = 0
modifier = {
@ -326,21 +327,6 @@ tribute_mission_artifact_interaction = {
}
desc = ARTIFACT_NOT_BENEFIT_REASON
}
modifier = {
add = -500
scope:target = {
has_variable = unwanted_artifact
}
#No harm in reusing the wording
desc = ARTIFACT_CURSED_REASON
}
modifier = {
add = -1000
scope:target = {
has_variable = cursed_artifact
}
desc = ARTIFACT_CURSED_REASON
}
modifier = {
add = 100
exists = scope:target.var:banner_dynasty
@ -365,7 +351,7 @@ tribute_mission_artifact_interaction = {
desc = ARTIFACT_USELESS_BANNER_REASON
}
}
ai_will_do = {
base = 50
}
@ -419,6 +405,10 @@ tribute_mission_concubine_interaction = {
flag = cannot_be_diarch # just enough to make sure they don't succeed to the diarchy while en route
years = 2
}
set_variable = {
name = can_not_marry
years = 2
}
}
custom_tooltip = tribute_mission_concubine_interaction.tooltip
#Some Mandala piety
@ -431,7 +421,7 @@ tribute_mission_concubine_interaction = {
ai_accept = {
base = 50
modifier = {
add = {
value = 50
@ -532,7 +522,7 @@ tribute_mission_concubine_interaction = {
modifier = { # A Recipient is unwilling to take a same-sex concubine if their faith doesn't support it
add = -1000
scope:recipient = {
allowed_to_marry_same_sex_trigger = no
sex_same_as = scope:secondary_recipient
@ -711,10 +701,10 @@ tribute_mission_eunuch_interaction = {
populate_recipient_list = {
scope:actor = {
every_courtier = {
limit = {
limit = {
tribute_mission_is_available_eunuch_trigger = yes
NAND = {
faith = { has_doctrine = doctrine_theocracy_temporal }
rite = { rite_has_doctrine = doctrine_theocracy_temporal }
this = scope:actor.cp:councillor_court_chaplain
}
}
@ -749,7 +739,7 @@ tribute_mission_eunuch_interaction = {
value = scope:secondary_recipient
}
custom_tooltip = tribute_mission_eunuch_interaction.tooltip
stress_impact = {
stress_and_fulfillment_impact = {
compassionate = medium_stress_impact_gain
sadistic = minor_stress_impact_loss
}
@ -865,6 +855,7 @@ tribute_mission_bunga_mas_interaction = {
target_type = artifact
target_filter = actor_artifacts
show_all_targets = no
ai_min_reply_days = 0
ai_max_reply_days = 0
@ -899,11 +890,11 @@ tribute_mission_bunga_mas_interaction = {
auto_accept = {
always = yes
}
ai_accept = {
base = 100
}
ai_will_do = {
base = 50
}

View file

@ -91,4 +91,3 @@
# coat_of_arms = k_dai_viet
# }
#}
#

View file

@ -178,4 +178,3 @@
# coat_of_arms = c_monmouthshire_norman
# }
#}
#

View file

@ -0,0 +1,51 @@
# For 2D UI CoA
atlas = {
tile_size = { 230 230 }
nr_of_tiles = 64
actual_size = { {115 115} {115 115} {230 230} {230 230} }
}
atlas = {
tile_size = { 172 172 }
nr_of_tiles = 64
fallback = { { 230 230 } {0 0} {0 0} {0 0} }
}
atlas = {
tile_size = { 124 124 }
nr_of_tiles = 512
fallback = { { 88 88 } {0 0} {0 0} {0 0} }
}
atlas = {
tile_size = { 88 88 }
nr_of_tiles = 1024
actual_size = { {44 44} {44 44} {88 88} {88 88} }
}
atlas = {
tile_size = { 56 56 }
nr_of_tiles = 4096
actual_size = { {28 28} {28 28} {56 56} {56 56} }
}
# For small previews of options in CoA designer
atlas = {
tile_size = { 80 80 }
nr_of_tiles = 128
actual_size = { {40 40} {40 40} {80 80} {80 80} }
}
# For saving a screenshot, needs to be matched in coa_designer.gui save_to_disk
atlas = {
tile_size = { 345 345 }
nr_of_tiles = 1
actual_size = { {345 345} {345 345} {345 345} {345 345} }
}
# For Units
atlas = {
tile_size = { 256 256 }
nr_of_tiles = 128
fallback = { { 88 88 } {0 0} {0 0} {0 0} }
}

View file

@ -185,10 +185,7 @@
}
}
NOT = {
OR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
}
government_has_flag = government_is_in_steppe
}
}
}
@ -696,8 +693,199 @@
}
religious_title = {
# Catch-all for faiths without a dedicated pool below
100 = religious_icon_01
100 = religious_icon_01_metal
special_selection = {
trigger = {
OR = { scope:faith.religion = religion:eastern_orthodox_religion scope:faith.religion = religion:catholic_religion scope:faith.religion = religion:protestant_religion }
}
4000 = christian_religious_icon_01
4000 = christian_religious_icon_01_metal
1500 = christian_religious_border_01
1500 = christian_religious_border_01_metal
1500 = christian_religious_triple_01
1500 = christian_religious_triple_01_metal
6000 = simple_cross_flag
}
# Figurative charges, gated on non-aniconist Christianity
special_selection = {
trigger = {
coa_cross_trigger = yes
}
2500 = christian_religious_figure_01
}
special_selection = {
trigger = {
scope:faith.religion = religion:islam_religion
}
4000 = islamic_religious_icon_01
4000 = islamic_religious_icon_01_metal
1500 = islamic_religious_border_01
1500 = islamic_religious_border_01_metal
1500 = islamic_religious_triple_01
1500 = islamic_religious_triple_01_metal
3000 = islamic_religious_circle_01
3000 = islamic_religious_circle_01_metal
}
special_selection = {
trigger = {
scope:faith.religion = {
save_temporary_scope_as = religion
}
OR = {
scope:religion = religion:hinduism_religion
scope:religion = religion:buddhism_religion
scope:religion = religion:jainism_religion
scope:religion = religion:bon_religion
}
}
4000 = dharmic_religious_icon_01
4000 = dharmic_religious_icon_01_metal
1500 = dharmic_religious_border_01
1500 = dharmic_religious_border_01_metal
1500 = dharmic_religious_triple_01
1500 = dharmic_religious_triple_01_metal
3000 = dharmic_religious_circle_01
3000 = dharmic_religious_circle_01_metal
}
special_selection = {
trigger = {
scope:faith.religion = {
save_temporary_scope_as = religion
}
OR = {
scope:religion = { is_in_family = rf_sinitic }
scope:religion = religion:shintoism_religion
scope:religion = religion:muism_religion
scope:religion = religion:moism_religion
scope:religion = religion:bimoism_religion
scope:religion = religion:dab_qhuas_religion
scope:religion = religion:kamuyism_religion
scope:religion = religion:utaki_religion
scope:religion = religion:qiangic_religion
scope:religion = religion:mundhum_religion
scope:religion = religion:kaharingan_religion
scope:religion = religion:hantuism_religion
scope:religion = religion:aluk_religion
scope:religion = religion:tolotang_religion
scope:religion = religion:dayawism_religion
scope:religion = religion:satsana_phi_religion
scope:religion = religion:biliku_religion
scope:religion = religion:tani_religion
}
}
4000 = eastern_religious_icon_01
4000 = eastern_religious_icon_01_metal
1500 = eastern_religious_border_01
1500 = eastern_religious_border_01_metal
1500 = eastern_religious_triple_01
1500 = eastern_religious_triple_01_metal
3000 = eastern_religious_frame_01
3000 = eastern_religious_frame_01_metal
}
special_selection = {
trigger = {
scope:faith.religion = {
save_temporary_scope_as = religion
}
scope:religion = { is_in_family = rf_pagan }
# Pagan-family religions with their own selection above/below
NOR = {
scope:religion = religion:bon_religion
scope:religion = religion:shintoism_religion
scope:religion = religion:muism_religion
scope:religion = religion:moism_religion
scope:religion = religion:bimoism_religion
scope:religion = religion:dab_qhuas_religion
scope:religion = religion:kamuyism_religion
scope:religion = religion:utaki_religion
scope:religion = religion:qiangic_religion
scope:religion = religion:mundhum_religion
scope:religion = religion:kaharingan_religion
scope:religion = religion:hantuism_religion
scope:religion = religion:aluk_religion
scope:religion = religion:tolotang_religion
scope:religion = religion:dayawism_religion
scope:religion = religion:satsana_phi_religion
scope:religion = religion:biliku_religion
scope:religion = religion:tani_religion
scope:religion = religion:akom_religion
scope:religion = religion:waaqism_religion
scope:religion = religion:west_african_religion
scope:religion = religion:west_african_bori_religion
scope:religion = religion:west_african_orisha_religion
scope:religion = religion:west_african_roog_religion
}
}
4000 = pagan_religious_icon_01
4000 = pagan_religious_icon_01_metal
1500 = pagan_religious_border_01
1500 = pagan_religious_border_01_metal
1500 = pagan_religious_triple_01
1500 = pagan_religious_triple_01_metal
3000 = pagan_religious_circle_01
3000 = pagan_religious_circle_01_metal
}
special_selection = {
trigger = {
scope:faith.religion = religion:judaism_religion
}
4000 = jewish_religious_icon_01
4000 = jewish_religious_icon_01_metal
3000 = jewish_religious_border_01
3000 = jewish_religious_border_01_metal
3000 = jewish_religious_triple_01
3000 = jewish_religious_triple_01_metal
}
special_selection = {
trigger = {
scope:faith.religion = {
save_temporary_scope_as = religion
}
OR = {
scope:religion = religion:zoroastrianism_religion
scope:religion = religion:dualism_religion
scope:religion = religion:yazidi_religion
}
}
4000 = zoroastrian_religious_icon_01
4000 = zoroastrian_religious_icon_01_metal
3000 = zoroastrian_religious_border_01
3000 = zoroastrian_religious_border_01_metal
3000 = zoroastrian_religious_triple_01
3000 = zoroastrian_religious_triple_01_metal
}
special_selection = {
trigger = {
scope:faith.religion = {
save_temporary_scope_as = religion
}
OR = {
scope:religion = religion:akom_religion
scope:religion = religion:waaqism_religion
scope:religion = religion:west_african_religion
scope:religion = religion:west_african_bori_religion
scope:religion = religion:west_african_orisha_religion
scope:religion = religion:west_african_roog_religion
}
}
4000 = african_religious_icon_01
4000 = african_religious_icon_01_metal
3000 = african_religious_border_01
3000 = african_religious_border_01_metal
3000 = african_religious_triple_01
3000 = african_religious_triple_01_metal
}
}
factions = {

File diff suppressed because it is too large Load diff

View file

@ -174,7 +174,7 @@ knight_berserker_attack = {
knight_increase_prowess_chance_effect = yes
berserker_kill_version_randomization_effect = yes
scope:enemy_knight = {
accolade = { add_glory = minimal_glory_gain }
accolade ?= { add_glory = minimal_glory_gain }
}
}
}
@ -185,8 +185,8 @@ knight_become_berserker = {
type = knight
is_valid = {
faith = {
has_doctrine = tenet_warmonger
rite = {
rite_has_tenet = tenet_warmonger
}
OR = {
culture = { has_cultural_pillar = heritage_north_germanic }
@ -588,8 +588,8 @@ knight_wounded = {
}
modifier = {
factor = 1.1
faith = {
has_doctrine_parameter = death_is_glory
rite = {
rite_has_parameter = death_is_glory
}
}
modifier = {
@ -804,8 +804,8 @@ knight_maimed = {
}
modifier = {
factor = 1.1
faith = {
has_doctrine_parameter = death_is_glory
rite = {
rite_has_parameter = death_is_glory
}
}
modifier = {
@ -1005,8 +1005,8 @@ knight_killed = {
}
modifier = {
factor = 1.1
faith = {
has_doctrine_parameter = death_is_glory
rite = {
rite_has_parameter = death_is_glory
}
}
modifier = {
@ -1305,9 +1305,7 @@ knight_killed = {
if = {
limit = {
scope:enemy_knight = {
faith = {
has_doctrine = tenet_cranial_trophies
}
tgp_cranial_trophies_collection_trigger = yes
}
}
tgp_cranial_trophies_beheading_effect = {
@ -1359,9 +1357,9 @@ knight_killed = {
has_relation_blood_brother = liege
}
liege = {
NOR = {
has_variable = beheaded_warrior
has_character_flag = beheaded_warrior_cooldown
has_none_of_variables = {
name = beheaded_warrior
name = beheaded_warrior_cooldown
}
OR = {
faith.religion = faith:tengri_pagan.religion