N3OW/events/dlc/bp1/bp1_yearly_oltner.txt
2026-05-23 20:45:31 -04:00

2305 lines
43 KiB
Text

namespace = bp1_yearly
scripted_trigger appropriate_family_memory = {
has_memory_category = family
has_memory_category = positive
any_memory_participant = {
house ?= root.house
NOT = {
has_relation_rival = root
}
trigger_if = {
limit = {
is_alive = no
exists = killer
}
killer != root
}
}
}
# Reflect over a family memory
bp1_yearly.4000 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.4000.t
desc = {
desc = bp1_yearly.4000.desc
first_valid = {
triggered_desc = {
trigger = {
scope:family_memory_participant = { is_alive = yes }
}
desc = bp1_yearly.4000.desc.alive
}
desc = bp1_yearly.4000.desc.dead
}
desc = bp1_yearly.4000.desc_end
}
theme = family
override_background = {
trigger = {
is_landed = yes
}
reference = corridor_day
}
override_background = {
trigger = {
is_landed = no
}
reference = bp1_bonfire
}
override_background = {
trigger = {
has_government = nomad_government
}
reference = mpo_campfire_steppe
}
left_portrait = {
character = root
triggered_animation = {
trigger = {
scope:family_memory_participant = { is_alive = yes }
}
animation = happiness
}
triggered_animation = {
trigger = {
scope:family_memory_participant = { is_alive = no }
}
animation = grief
}
}
right_portrait = {
character = scope:family_memory_participant
triggered_animation = {
trigger = {
scope:family_memory_participant = { is_alive = yes }
}
animation = happiness
}
triggered_animation = {
trigger = {
scope:family_memory_participant = { is_alive = no }
}
animation = pain
}
}
cooldown = { years = 5 }
trigger = {
has_bp1_dlc_trigger = yes
exists = root.house
stress > 0
NOR = {
# Not a psychopath
has_trait = callous
has_trait = sadistic
}
any_memory = {
appropriate_family_memory = yes
}
}
immediate = {
random_memory = {
limit = {
appropriate_family_memory = yes
}
save_scope_as = family_memory
random_memory_participant = {
limit = {
house ?= root.house
NOT = {
has_relation_rival = root
}
trigger_if = {
limit = {
is_alive = no
exists = killer
}
killer != root
}
}
save_scope_as = family_memory_participant
}
}
}
option = {
name = bp1_yearly.4000.family_first
trait = family_first
trigger = {
has_trait = family_first
}
dynasty = { add_dynasty_prestige = minor_dynasty_prestige_gain }
stress_impact = {
base = minor_stress_impact_loss
#honest = minor_stress_impact_gain
#compassionate = minor_stress_impact_gain
}
ai_chance = {
base = 1000
}
}
option = {
name = bp1_yearly.4000.a
trigger = {
scope:family_memory_participant = {
is_alive = no
}
}
stress_impact = {
base = minor_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = {
name = bp1_yearly.4000.b
trigger = {
scope:family_memory_participant = {
is_alive = yes
}
}
stress_impact = {
base = miniscule_stress_impact_loss
}
ai_chance = {
base = 100
}
}
option = {
name = bp1_yearly.4000.c
trigger = {
scope:family_memory_participant = {
is_alive = no
}
}
duel = {
skill = diplomacy
value = 10
50 = {
desc = bp1_yearly.4000.c.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
save_scope_as = success_poem
trigger_event = bp1_yearly.4001
show_as_tooltip = {
add_stress = minor_stress_impact_loss
every_close_family_member = {
custom = yearly_persian.1101.every_family
limit = { this != root }
add_opinion = {
modifier = pleased_opinion
opinion = 30
target = root
}
}
}
}
50 = {
desc = bp1_yearly.4000.c.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
save_scope_as = fail_poem
trigger_event = bp1_yearly.4001
show_as_tooltip = {
add_stress = medium_stress_impact_gain
}
}
}
stress_impact = {
shy = major_stress_impact_gain
cynical = medium_stress_impact_gain
arrogant = minor_stress_impact_gain
deceitful = minor_stress_impact_gain
lazy = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = shy
has_trait = cynical
}
}
}
}
option = {
name = bp1_yearly.4000.d
trigger = {
scope:family_memory_participant = {
is_alive = yes
}
}
pay_short_term_gold = {
target = scope:family_memory_participant
gold = minor_gold_value
}
scope:family_memory_participant = {
progress_towards_friend_effect = {
CHARACTER = root
OPINION = 0
REASON = friend_gift_house
}
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 30
}
}
stress_impact = {
base = minor_stress_impact_loss
greedy = major_stress_impact_gain
arrogant = minor_stress_impact_gain
arbitrary = minor_stress_impact_gain
}
ai_chance = {
base = 25
modifier = {
factor = 0
gold < major_gold_value
}
modifier = {
factor = 0
OR = {
has_trait = greedy
has_trait = honest
has_trait = arbitrary
}
}
}
}
}
# Family poem
bp1_yearly.4001 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.4000.t
desc = {
desc = bp1_yearly.4001.desc
first_valid = {
triggered_desc = {
trigger = {
exists = scope:success_poem
}
desc = bp1_yearly.4001.desc.success_poem
}
desc = bp1_yearly.4001.desc.fail_poem
}
}
theme = family
override_background = { reference = corridor_day }
left_portrait = {
character = root
triggered_animation = {
trigger = {
exists = scope:success_poem
}
animation = chancellor
}
triggered_animation = {
trigger = {
exists = scope:fail_poem
}
animation = stress
}
}
right_portrait = {
character = scope:family_memory_participant
triggered_animation = {
trigger = {
scope:family_memory_participant = { is_alive = yes }
}
animation = happiness
}
triggered_animation = {
trigger = {
scope:family_memory_participant = { is_alive = no }
}
animation = pain
}
}
immediate = {
select_poem_subject_gender_effect = {
SUBJECT = flag:specific
SUBJECT_TARGET = scope:family_memory_participant
}
select_poem_theme_mourning_effect = yes
}
option = {
name = bp1_yearly.4001.a
trigger = {
exists = scope:success_poem
}
add_stress = minor_stress_impact_loss
every_close_family_member = {
custom = yearly_persian.1101.every_family
limit = { this != root }
add_opinion = {
modifier = pleased_opinion
opinion = 30
target = root
}
}
if = {
limit = {
NOT = {
has_trait = lifestyle_poet
}
}
random = {
chance = 20
add_trait = lifestyle_poet
}
}
}
option = {
name = bp1_yearly.4001.b
trigger = {
exists = scope:fail_poem
}
add_stress = medium_stress_impact_gain
}
}
scripted_trigger appropriate_mother = {
mother ?= {
appropriate_other_parent_trigger = yes
}
}
scripted_trigger appropriate_father = {
father ?= {
appropriate_other_parent_trigger = yes
}
}
scripted_trigger disliked_guardian_trigger = {
NOR = {
this = scope:child_other_parent
has_relation_friend = scope:child_other_parent
has_relation_lover = scope:child_other_parent
reverse_opinion = {
target = scope:child_other_parent
value >= 60
}
}
OR = {
has_relation_rival = scope:child_other_parent
reverse_opinion = {
target = scope:child_other_parent
value <= -30
}
has_trait = intellect_bad
learning < 8
AND = {
has_trait = sadistic
scope:child_other_parent = {
NOT = {
has_trait = sadistic
}
}
}
}
}
scripted_trigger appropriate_other_parent_trigger = {
this != root
is_spouse_of = root
is_courtier_of = root
is_available_ai_adult = yes
save_temporary_scope_as = child_other_parent
OR = {
any_relation = {
type = friend
OR = {
desired_guardian_trigger = yes
any_courtier = {
desired_guardian_trigger = yes
}
any_councillor = {
desired_guardian_trigger = yes
}
}
}
any_relation = {
type = lover
OR = {
desired_guardian_trigger = yes
any_courtier = {
desired_guardian_trigger = yes
}
any_councillor = {
desired_guardian_trigger = yes
}
}
}
any_close_family_member = {
desired_guardian_trigger = yes
}
root = {
any_courtier = {
desired_guardian_trigger = yes
}
}
root = {
any_councillor = {
desired_guardian_trigger = yes
}
}
}
}
scripted_trigger desired_guardian_trigger = {
is_physically_able_adult = yes
num_of_relation_ward < 2
OR = {
is_ruler = yes
exists = liege
}
reverse_opinion = {
target = scope:child_other_parent
value >= 30
}
NOR = {
this = root
this = scope:child_other_parent
has_trait = sadistic
has_relation_rival = scope:child_other_parent
reverse_opinion = {
target = scope:child_other_parent
value <= -30
}
has_trait = intellect_bad
learning < 8
}
OR = {
learning >= 12
has_trait = intellect_good
has_relation_friend = scope:child_other_parent
has_relation_lover = scope:child_other_parent
}
}
scripted_trigger appropriate_guardian_child_trigger = {
age <= 12
is_physically_able = yes
exists = liege
NOT = {
has_character_flag = replaced_guardian
}
OR = {
AND = {
OR = {
root.faith = { has_doctrine = doctrine_gender_male_dominated }
NOR = {
root.faith = { has_doctrine = doctrine_gender_male_dominated }
root.faith = { has_doctrine = doctrine_gender_female_dominated }
}
}
appropriate_mother = yes
any_relation = { type = guardian }
any_relation = {
type = guardian
disliked_guardian_trigger = yes
}
}
AND = {
OR = {
root.faith = { has_doctrine = doctrine_gender_female_dominated }
NOR = {
root.faith = { has_doctrine = doctrine_gender_male_dominated }
root.faith = { has_doctrine = doctrine_gender_female_dominated }
}
}
appropriate_father = yes
any_relation = { type = guardian }
any_relation = {
type = guardian
disliked_guardian_trigger = yes
}
}
}
}
scripted_effect select_new_guardian_effect = {
every_relation = {
type = friend
if = {
limit = {
desired_guardian_trigger = yes
}
add_to_list = proposed_guardians
}
every_courtier = {
limit = {
desired_guardian_trigger = yes
}
add_to_list = proposed_guardians
}
every_councillor = {
limit = {
desired_guardian_trigger = yes
}
add_to_list = proposed_guardians
}
}
every_relation = {
type = lover
if = {
limit = {
desired_guardian_trigger = yes
}
add_to_list = proposed_guardians
}
every_courtier = {
limit = {
desired_guardian_trigger = yes
}
add_to_list = proposed_guardians
}
every_councillor = {
limit = {
desired_guardian_trigger = yes
}
add_to_list = proposed_guardians
}
}
every_close_family_member = {
limit = {
desired_guardian_trigger = yes
}
add_to_list = proposed_guardians
}
root = {
every_courtier = {
limit = {
desired_guardian_trigger = yes
}
add_to_list = proposed_guardians
}
every_councillor = {
limit = {
desired_guardian_trigger = yes
}
add_to_list = proposed_guardians
}
}
random_in_list = {
list = proposed_guardians
weight = {
base = 1
modifier = {
add = 5
OR = {
has_relation_friend = scope:child_other_parent
has_relation_lover = scope:child_other_parent
}
}
modifier = {
add = 5
this.dynasty = scope:child_other_parent.dynasty
}
modifier = {
add = 2
has_education_rank_4_trigger = yes
}
modifier = {
add = 1
has_education_rank_3_trigger = yes
}
}
save_scope_as = proposed_guardian
}
}
# Spouse demands their child gets a better guardian
bp1_yearly.4010 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.4010.t
desc = {
desc = bp1_yearly.4010.desc
first_valid = {
triggered_desc = {
trigger = {
scope:current_guardian = {
this = root
}
}
desc = bp1_yearly.4010.desc.root
}
desc = bp1_yearly.4010.desc.other
}
desc = bp1_yearly.4010.desc_end
}
theme = family
override_background = { reference = throne_room }
left_portrait = {
character = scope:parent_that_want_guardian_change
animation = worry
}
right_portrait = {
character = scope:child_to_change_guardian
animation = personality_irrational
}
lower_left_portrait = scope:proposed_guardian
lower_right_portrait = scope:current_guardian
cooldown = { years = 5 }
trigger = {
trigger_if = {
limit = {
is_ai = yes
}
has_trait = family_first
}
has_bp1_dlc_trigger = yes
any_child = {
appropriate_guardian_child_trigger = yes
}
}
immediate = {
random_child = {
limit = {
appropriate_guardian_child_trigger = yes
}
save_scope_as = child_to_change_guardian
if = {
limit = {
OR = {
root.faith = { has_doctrine = doctrine_gender_male_dominated }
NOR = {
root.faith = { has_doctrine = doctrine_gender_male_dominated }
root.faith = { has_doctrine = doctrine_gender_female_dominated }
}
}
appropriate_mother = yes
any_relation = { type = guardian }
any_relation = {
type = guardian
disliked_guardian_trigger = yes
}
}
mother = {
save_scope_as = parent_that_want_guardian_change
}
}
else = {
father = {
save_scope_as = parent_that_want_guardian_change
}
}
random_relation = {
type = guardian
save_scope_as = current_guardian
}
scope:parent_that_want_guardian_change = {
save_temporary_scope_as = child_other_parent
select_new_guardian_effect = yes
}
}
scope:child_to_change_guardian = {
save_scope_as = ward
scope:proposed_guardian = { save_scope_as = guardian }
scope:child_to_change_guardian.liege = { save_scope_as = ward_liege }
scope:proposed_guardian.liege = { save_scope_as = guardian_liege }
}
hidden_effect = {
scope:parent_that_want_guardian_change = {
progress_towards_rival_effect = {
CHARACTER = scope:current_guardian
REASON = rival_guardian_change
OPINION = 0
}
add_opinion = {
target = scope:current_guardian
modifier = annoyed_opinion
opinion = -30
}
random = { # Become full-on rivals
chance = 25
progress_towards_rival_effect = {
CHARACTER = scope:current_guardian
REASON = rival_guardian_change
OPINION = 0
}
}
}
}
}
option = {
name = bp1_yearly.4010.c
trait = family_first
trigger = {
has_trait = family_first
}
custom_tooltip = bp1_yearly.4010.c_effect
hidden_effect = {
scope:child_to_change_guardian = {
education_point_acquisition_effect = yes
education_point_acquisition_effect = yes
}
}
scope:parent_that_want_guardian_change = {
add_opinion = {
target = root
modifier = relieved_opinion
opinion = 30
}
}
ai_chance = {
base = 1000
}
}
option = { # Agree to switch guardians
name = bp1_yearly.4010.a
remove_guardian_effect = {
GUARDIAN = scope:current_guardian
WARD = scope:child_to_change_guardian
RETURN_WARD = no
HIDE_OPINION = yes
}
if = {
limit = {
scope:child_to_change_guardian.liege != root
scope:current_guardian = {
is_ruler = no
}
}
scope:child_to_change_guardian.liege = {
add_opinion = {
modifier = insulted_opinion
target = root
opinion = -30
}
}
}
scope:current_guardian = {
if = {
limit = {
this != root
}
add_opinion = {
modifier = insult_opinion
target = root
opinion = -30
}
}
}
educate_child_event_effect = yes
hidden_effect = {
send_interface_message = {
type = event_childhood_neutral
title = educate_child_interaction_notification
left_icon = scope:guardian
right_icon = scope:ward
show_as_tooltip = {
educate_child_event_effect = yes
}
}
}
scope:parent_that_want_guardian_change = {
add_opinion = {
target = root
modifier = relieved_opinion
opinion = 30
}
}
scope:child_to_change_guardian = {
random = {
chance = {
value = 0
add = scope:proposed_guardian.learning
multiply = 4
}
custom_tooltip = bp1_yearly.4010.a_effect
hidden_effect = {
education_point_acquisition_effect = yes
}
}
}
hidden_effect = {
scope:proposed_guardian = {
add_character_flag = replaced_guardian
if = { # Chance of ulterior motives
limit = {
can_add_hook = {
type = loyalty_hook
target = scope:child_to_change_guardian
}
}
random = {
chance = {
value = 0
add = scope:proposed_guardian.intrigue
multiply = 2
}
add_hook = {
type = loyalty_hook
target = scope:child_to_change_guardian
}
}
}
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
stubborn = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 75
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = stubborn
has_trait = paranoid
}
}
}
}
option = {
name = bp1_yearly.4010.b
name = {
trigger = { scope:current_guardian = { this != root } }
text = bp1_yearly.4010.b
}
name = {
trigger = { scope:current_guardian = { this = root } }
text = bp1_yearly.4010.b_alt
}
scope:parent_that_want_guardian_change = {
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -25
}
}
stress_impact = {
trusting = massive_stress_impact_gain
compassionate = medium_stress_impact_gain
fickle = medium_stress_impact_gain
}
ai_chance = {
base = 25
modifier = {
factor = 0
OR = {
has_trait = trusting
has_trait = compassionate
has_trait = fickle
}
}
}
}
}
bp1_yearly.4020 = { # Friend commissions a piece of poetry commemorating one of your victories
type = character_event
content_source = dlc_006
title = bp1_yearly.4020.t
desc = bp1_yearly.4020.desc
theme = friend_relation
override_background = { reference = garden }
left_portrait = {
character = root
animation = happiness
}
right_portrait = {
character = scope:poetry_friend
animation = chancellor
}
artifact = { # To display the artifact in the event-window
target = scope:newly_created_artifact
position = lower_center_portrait
}
lower_right_portrait = scope:war_memory_participant
cooldown = { years = 25 }
trigger = {
has_bp1_dlc_trigger = yes
any_relation = {
type = friend
is_available_ai_adult = yes
OR = {
has_trait = lifestyle_poet
diplomacy >= 8
}
save_temporary_scope_as = friend_check
}
any_memory = {
memory_type = war_won
NOT = {
any_memory_participant = {
this = scope:friend_check
}
}
any_memory_participant = {
this != root
}
}
}
immediate = {
random_relation = {
type = friend
limit = {
is_available_ai_adult = yes
OR = {
has_trait = lifestyle_poet
diplomacy >= 8
}
}
weight = {
base = 1
modifier = {
add = 100
has_trait = lifestyle_poet
}
modifier = {
add = 10
is_of_major_interest_to_root_trigger = yes
}
modifier = {
add = 5
is_of_minor_interest_to_root_trigger = yes
}
modifier = {
add = diplomacy
}
}
if = {
limit = {
NOT = {
has_trait = lifestyle_poet
}
}
random = {
chance = {
value = diplomacy
multiply = 2
}
add_trait = lifestyle_poet
}
}
save_scope_as = poetry_friend
}
random_memory = {
memory_type = war_won
limit = {
NOT = {
any_memory_participant = {
this = scope:poetry_friend
}
}
any_memory_participant = {
this != root
}
}
save_scope_as = war_memory
random_memory_participant = {
limit = {
NOR = {
this = scope:poetry_friend
this = root
}
}
save_scope_as = war_memory_participant
}
}
scope:poetry_friend = {
select_poem_subject_gender_effect = {
SUBJECT = flag:specific
SUBJECT_TARGET = root
}
select_poem_theme_strife_effect = yes
}
hidden_effect_new_object = {
create_artifact_poetry_effect = { OWNER = root }
scope:newly_created_artifact = {
save_scope_as = poetry_artifact
}
}
}
option = {
name = bp1_yearly.4020.a
trigger = {
has_royal_court = yes
}
scope:poetry_friend = {
if = {
limit = {
can_set_relation_best_friend_trigger = { CHARACTER = root }
}
set_relation_best_friend = { reason = best_friend_poetry copy_reason = friend target = root }
}
add_opinion = {
target = root
modifier = flattered_opinion
opinion = 30
}
}
custom_tooltip = bp1_yearly.4020.a_effect
remove_short_term_gold = minor_gold_value
hidden_effect_new_object = {
scope:newly_created_artifact = {
add_scaled_artifact_modifier_grandeur_small_effect = yes
reforge_artifact = {
type = pedestal
}
}
}
stress_impact = {
greedy = minor_stress_impact_gain
shy = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
gold < major_gold_value
}
modifier = {
factor = 0
OR = {
has_trait = greedy
has_trait = shy
}
}
}
}
option = {
name = bp1_yearly.4020.b
scope:poetry_friend = {
add_opinion = {
target = root
modifier = friendliness_opinion
opinion = 15
}
}
custom_tooltip = bp1_yearly.4020.b_effect
ai_chance = {
base = 100
}
}
option = {
name = bp1_yearly.4020.c
trigger = {
exists = scope:war_memory_participant
scope:war_memory_participant = {
is_alive = yes
}
}
add_prestige = major_prestige_gain
scope:war_memory_participant = {
progress_towards_rival_effect = {
CHARACTER = root
REASON = rival_war_memory
OPINION = 0
}
add_opinion = {
target = root
modifier = annoyed_opinion
opinion = -30
}
}
custom_tooltip = bp1_yearly.4020.b_effect
stress_impact = {
forgiving = massive_stress_impact_gain
compassionate = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = forgiving
has_trait = compassionate
}
}
}
}
option = {
name = bp1_yearly.4020.d
destroy_artifact = scope:newly_created_artifact
add_piety = major_piety_gain
scope:poetry_friend = {
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -15
}
}
stress_impact = {
arrogant = massive_stress_impact_gain
cynical = medium_stress_impact_gain
ambitious = minor_stress_impact_gain
}
ai_chance = {
base = 25
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = cynical
has_trait = ambitious
}
}
}
}
}
scripted_trigger marriage_rival_trigger = {
is_available_ai_adult = yes
is_married = no
is_concubine = no
can_marry_trigger = yes
OR = {
is_male = yes
age <= 40
}
OR = {
has_trait = seducer
has_trait = schemer
has_trait = diplomat
has_trait = lustful
has_trait = vengeful
has_trait = ambitious
has_trait = beauty_good
has_trait = physique_good
intrigue >= 10
diplomacy >= 10
}
NOR = {
has_trait = honest
AND = {
exists = dynasty
exists = root.dynasty
dynasty = root.dynasty
}
is_child_of = root
is_grandchild_of = root
is_great_grandchild_of = root
}
save_temporary_scope_as = rival_check
}
scripted_trigger appopriate_vassal_trigger = {
primary_title.tier >= tier_county
is_available_ai_adult = yes
OR = {
AND = {
exists = scope:rival_check
is_attracted_to_gender_of = scope:rival_check
}
AND = {
exists = scope:marriage_rival
is_attracted_to_gender_of = scope:marriage_rival
}
}
OR = {
AND = {
exists = scope:rival_check
could_marry_character_trigger = { CHARACTER = scope:rival_check }
}
AND = {
exists = scope:marriage_rival
could_marry_character_trigger = { CHARACTER = scope:marriage_rival }
}
}
NOR = {
has_trait = content
has_trait = chaste
has_trait = loyal
AND = {
exists = scope:rival_check
this = scope:rival_check
}
AND = {
exists = scope:marriage_rival
this = scope:marriage_rival
}
AND = {
exists = dynasty
exists = root.dynasty
dynasty = root.dynasty
}
has_relation_rival = root
has_relation_friend = root
has_relation_lover = root
is_child_of = root
is_grandchild_of = root
is_great_grandchild_of = root
AND = {
primary_spouse ?= {
OR = {
is_child_of = root
is_grandchild_of = root
is_great_grandchild_of = root
AND = {
exists = dynasty
exists = root.dynasty
dynasty = root.dynasty
}
}
}
}
AND = {
betrothed ?= {
OR = {
is_child_of = root
is_grandchild_of = root
is_great_grandchild_of = root
AND = {
exists = dynasty
exists = root.dynasty
dynasty = root.dynasty
}
}
}
}
}
}
bp1_yearly.4030 = { # Rival nestles their way into marrying one of your vassals, turns them disloyal
type = character_event
content_source = dlc_006
title = bp1_yearly.4030.t
desc = {
desc = bp1_yearly.4030.desc
first_valid = {
triggered_desc = {
trigger = {
exists = scope:spurned_partner
}
desc = bp1_yearly.4030.desc_bond_broken
}
desc = bp1_yearly.4030.desc_no_broken_bonds
}
desc = bp1_yearly.4030.desc_end
}
theme = rival_relation
override_background = { reference = throne_room }
left_portrait = {
character = scope:marriage_rival
animation = scheme
}
right_portrait = {
character = scope:marriage_vassal
animation = flirtation
}
lower_right_portrait = scope:spurned_partner
cooldown = { years = 25 }
trigger = {
has_bp1_dlc_trigger = yes
any_relation = {
type = rival
marriage_rival_trigger = yes
}
any_vassal = {
appopriate_vassal_trigger = yes
}
}
immediate = {
random_relation = {
type = rival
limit = {
marriage_rival_trigger = yes
}
weight = {
base = 1
modifier = {
add = 10
is_of_major_interest_to_root_trigger = yes
}
modifier = {
add = 5
is_of_minor_interest_to_root_trigger = yes
}
}
save_scope_as = marriage_rival
}
random_vassal = {
limit = {
appopriate_vassal_trigger = yes
}
weight = {
base = 1
modifier = {
add = 1000
is_married = no
}
modifier = {
add = 10
is_of_major_interest_to_root_trigger = yes
}
modifier = {
add = 5
is_of_minor_interest_to_root_trigger = yes
}
}
save_scope_as = marriage_vassal
}
scope:marriage_vassal = {
if = {
limit = {
is_married = yes
}
primary_spouse = {
save_scope_as = spurned_partner
hidden_effect = {
add_opinion = {
modifier = divorced_me_opinion
target = scope:marriage_vassal
}
}
}
divorce = primary_spouse
}
else_if = {
limit = {
is_betrothed = yes
}
betrothed = {
save_scope_as = spurned_partner
hidden_effect = {
add_opinion = {
modifier = broke_betrothal_opinion
target = scope:marriage_vassal
}
}
}
break_betrothal = betrothed
}
if = {
limit = {
is_female = yes
scope:marriage_rival = {
is_lowborn = yes
}
}
marry_matrilineal = scope:marriage_rival
}
else = {
marry = scope:marriage_rival
}
add_trait = disloyal
add_opinion = {
modifier = distrustful
target = root
}
}
}
option = {
name = bp1_yearly.4030.a
duel = {
skill = diplomacy
value = scope:marriage_vassal.diplomacy
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = bp1_yearly.4030.a.success
send_interface_toast = {
title = bp1_yearly.4030.a.success
left_icon = scope:marriage_vassal
scope:marriage_vassal = {
remove_opinion = {
target = root
modifier = distrustful
}
remove_trait = disloyal
add_trait_force_tooltip = loyal
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = bp1_yearly.4030.a.failure
send_interface_toast = {
title = bp1_yearly.4030.a.failure
left_icon = scope:marriage_vassal
scope:marriage_vassal = {
progress_towards_rival_effect = {
CHARACTER = root
REASON = rival_seduced_vassal
OPINION = 0
}
}
}
}
}
stress_impact = {
shy = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
content = minor_stress_impact_gain
humble = minor_stress_impact_gain
trusting = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = greedy
has_trait = forgiving
}
}
}
}
option = {
name = bp1_yearly.4030.b
trigger = {
exists = scope:spurned_partner
}
duel = {
skill = learning
value = scope:marriage_vassal.learning
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = bp1_yearly.4030.b.success
send_interface_toast = {
title = bp1_yearly.4030.b.success
left_icon = scope:marriage_vassal
scope:marriage_vassal = {
remove_opinion = {
target = root
modifier = distrustful
}
remove_trait = disloyal
add_piety_level = -2
divorce = scope:marriage_rival
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = bp1_yearly.4030.b.failure
send_interface_toast = {
title = bp1_yearly.4030.b.failure
left_icon = scope:marriage_vassal
scope:marriage_vassal = {
progress_towards_rival_effect = {
CHARACTER = root
REASON = rival_seduced_vassal
OPINION = 0
}
}
}
}
}
stress_impact = {
cynical = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
content = minor_stress_impact_gain
trusting = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = cynical
has_trait = arrogant
}
}
}
}
option = {
name = bp1_yearly.4030.c
trigger = {
exists = scope:spurned_partner
}
scope:spurned_partner = {
scope:marriage_vassal = { save_scope_as = relationship_reason_involved_character }
progress_towards_friend_effect = {
CHARACTER = root
OPINION = 0
REASON = friend_supported_me_against_spouse
}
clear_saved_scope = relationship_reason_involved_character
if = {
limit = {
can_set_relation_rival_trigger = { CHARACTER = scope:marriage_rival }
}
set_relation_rival = {
target = scope:marriage_rival
reason = rival_abandoned_marriage
}
}
if = {
limit = {
can_set_relation_rival_trigger = { CHARACTER = scope:marriage_vassal }
}
set_relation_rival = {
target = scope:marriage_vassal
reason = rival_abandoned_marriage
}
}
add_opinion = {
opinion = -40
modifier = hate_opinion
target = scope:marriage_rival
}
add_opinion = {
opinion = -40
modifier = hate_opinion
target = scope:marriage_vassal
}
}
if = {
limit = {
can_add_hook = {
target = scope:spurned_partner
type = loyalty_hook
}
}
add_hook = {
target = scope:spurned_partner
type = loyalty_hook
}
}
stress_impact = {
honest = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
shy = minor_stress_impact_gain
impatient = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = honest
has_trait = paranoid
}
}
}
}
option = {
name = bp1_yearly.4030.d
stress_impact = {
brave = medium_stress_impact_gain
wrathful = medium_stress_impact_gain
vengeful = medium_stress_impact_gain
diligent = minor_stress_impact_gain
impatient = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = brave
has_trait = wrathful
has_trait = vengeful
}
}
}
}
}
bp1_yearly.4040 = { # Kindly grandmother won't stop feeding you snacks; suffer the consequences of overeating, or break her heart?
type = character_event
content_source = dlc_006
title = bp1_yearly.4040.t
desc = {
random_valid = {
triggered_desc = { # Intro desc
trigger = {
scope:kindly_grandmother = {
is_alive = yes
}
exists = var:food_fed_by_grandmother
var:food_fed_by_grandmother <= 1
}
desc = bp1_yearly.4040.desc.intro.1
}
triggered_desc = { # Another snack? Nice!
trigger = {
scope:kindly_grandmother = {
is_alive = yes
}
exists = var:food_fed_by_grandmother
var:food_fed_by_grandmother <= 2
var:food_fed_by_grandmother > 1
}
desc = bp1_yearly.4040.desc.intro.2
}
triggered_desc = { # It's getting a bit much
trigger = {
scope:kindly_grandmother = {
is_alive = yes
}
exists = var:food_fed_by_grandmother
var:food_fed_by_grandmother <= 4
var:food_fed_by_grandmother > 2
}
desc = bp1_yearly.4040.desc.feeding.1
}
triggered_desc = { # It's getting a bit much
trigger = {
scope:kindly_grandmother = {
is_alive = yes
}
exists = var:food_fed_by_grandmother
var:food_fed_by_grandmother <= 4
var:food_fed_by_grandmother > 2
}
desc = bp1_yearly.4040.desc.feeding.2
}
triggered_desc = { # It's getting insane
trigger = {
scope:kindly_grandmother = {
is_alive = yes
}
exists = var:food_fed_by_grandmother
var:food_fed_by_grandmother > 4
}
desc = bp1_yearly.4040.desc.feeding.3
}
triggered_desc = { # It's getting insane
trigger = {
scope:kindly_grandmother = {
is_alive = yes
}
exists = var:food_fed_by_grandmother
var:food_fed_by_grandmother > 4
}
desc = bp1_yearly.4040.desc.feeding.4
}
triggered_desc = { # It's getting insane
trigger = {
scope:kindly_grandmother = {
is_alive = no
}
}
desc = bp1_yearly.4040.desc.dead
}
}
}
theme = family
override_background = { reference = bp1_kitchen_western }
left_portrait = {
character = root
triggered_animation = {
trigger = {
scope:kindly_grandmother = {
is_alive = yes
}
exists = var:food_fed_by_grandmother
var:food_fed_by_grandmother <= 1
}
animation = ecstasy
}
triggered_animation = {
trigger = {
scope:kindly_grandmother = {
is_alive = yes
}
exists = var:food_fed_by_grandmother
var:food_fed_by_grandmother <= 2
var:food_fed_by_grandmother > 1
}
animation = happiness
}
triggered_animation = {
trigger = {
scope:kindly_grandmother = {
is_alive = yes
}
var:food_fed_by_grandmother <= 4
var:food_fed_by_grandmother > 2
}
animation = worry
}
triggered_animation = {
trigger = {
scope:kindly_grandmother = {
is_alive = yes
}
exists = var:food_fed_by_grandmother
var:food_fed_by_grandmother > 4
}
animation = disbelief
}
triggered_animation = {
trigger = {
scope:kindly_grandmother = {
is_alive = no
}
}
animation = grief
}
}
right_portrait = {
character = scope:kindly_grandmother
triggered_animation = {
trigger = {
scope:kindly_grandmother = {
is_alive = yes
}
}
animation = love
}
triggered_animation = {
trigger = {
scope:kindly_grandmother = {
is_alive = no
}
}
animation = pain
}
}
lower_right_portrait = scope:spurned_partner
trigger = {
has_bp1_dlc_trigger = yes
age >= 6
OR = {
exists = scope:kindly_grandmother
AND = {
NOT = {
has_character_flag = had_grandmother_event
}
any_close_family_member = {
is_available_ai_adult = yes
OR = {
is_grandparent_of = root
is_great_grandparent_of = root
}
ai_rationality <= 0
ai_compassion >= 0
is_ruler = no
is_married = no
is_concubine = no
NOR = {
has_trait = sadistic
has_trait = callous
has_relation_rival = root
}
}
}
}
}
immediate = {
set_favorite_treat_effect = yes
add_character_flag = had_grandmother_event
if = {
limit = {
NOT = {
exists = scope:kindly_grandmother
}
}
random_close_family_member = {
limit = {
is_available_ai_adult = yes
OR = {
is_grandparent_of = root
is_great_grandparent_of = root
}
ai_rationality <= 0
ai_compassion >= 0
is_ruler = no
is_married = no
is_concubine = no
NOR = {
has_trait = sadistic
has_trait = callous
has_relation_rival = root
}
}
save_scope_as = kindly_grandmother
}
}
hidden_effect = {
if = {
limit = {
scope:kindly_grandmother = {
is_alive = yes
is_ruler = no
NOT = {
is_courtier_of = root
}
}
}
add_courtier = scope:kindly_grandmother
}
if = {
limit = {
NOT = { has_variable = food_fed_by_grandmother }
}
set_variable = {
name = food_fed_by_grandmother
value = 1
}
}
}
}
option = {
name = bp1_yearly.4040.family_first
trait = family_first
trigger = {
has_trait = family_first
scope:kindly_grandmother = {
is_alive = yes
}
}
add_stress = medium_stress_impact_loss
scope:kindly_grandmother = {
add_opinion = {
target = root
modifier = love_opinion
opinion = 50
}
}
ai_chance = {
base = 100
}
}
option = {
name = bp1_yearly.4040.dead
add_stress = miniscule_stress_impact_gain
trigger = {
scope:kindly_grandmother = {
is_alive = no
}
}
ai_chance = {
base = 100
}
}
option = {
name = bp1_yearly.4040.a
fallback = yes
trigger = {
exists = var:food_fed_by_grandmother
var:food_fed_by_grandmother <= 1
}
hidden_effect = {
change_current_weight = 20
change_variable = {
name = food_fed_by_grandmother
add = 1
}
trigger_event = {
id = bp1_yearly.4040
days = { 50 150 }
}
}
scope:kindly_grandmother = {
add_opinion = {
target = root
modifier = love_opinion
opinion = 20
}
}
stress_impact = {
base = medium_stress_impact_loss
temperate = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = temperate
}
}
}
option = {
name = bp1_yearly.4040.b
trigger = {
exists = var:food_fed_by_grandmother
var:food_fed_by_grandmother <= 1
}
scope:kindly_grandmother = {
add_stress = minor_stress_impact_gain
if = {
limit = {
has_opinion_modifier = {
target = root
modifier = love_opinion
}
}
remove_opinion = {
target = root
modifier = love_opinion
}
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
trusting = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
comfort_eater = medium_stress_impact_gain
gluttonous = medium_stress_impact_gain
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = trusting
has_trait = gregarious
has_trait = comfort_eater
has_trait = gluttonous
has_trait = greedy
}
}
}
}
option = {
name = bp1_yearly.4040.c
trigger = {
scope:kindly_grandmother = {
is_alive = yes
}
exists = var:food_fed_by_grandmother
var:food_fed_by_grandmother <= 4
var:food_fed_by_grandmother > 1
}
hidden_effect = {
change_current_weight = 20
change_variable = {
name = food_fed_by_grandmother
add = 1
}
trigger_event = {
id = bp1_yearly.4040
days = { 50 150 }
}
}
scope:kindly_grandmother = {
add_opinion = {
target = root
modifier = love_opinion
opinion = 20
}
}
stress_impact = {
base = minor_stress_impact_loss
temperate = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = temperate
}
}
}
option = {
name = bp1_yearly.4040.d
trigger = {
scope:kindly_grandmother = {
is_alive = yes
}
exists = var:food_fed_by_grandmother
var:food_fed_by_grandmother <= 4
var:food_fed_by_grandmother > 1
}
scope:kindly_grandmother = {
add_stress = {
value = medium_stress_impact_gain
multiply = root.var:food_fed_by_grandmother
}
if = {
limit = {
has_opinion_modifier = {
target = root
modifier = love_opinion
}
}
remove_opinion = {
target = root
modifier = love_opinion
}
}
}
stress_impact = {
comfort_eater = medium_stress_impact_gain
gluttonous = medium_stress_impact_gain
compassionate = minor_stress_impact_gain
trusting = minor_stress_impact_gain
gregarious = minor_stress_impact_gain
greedy = minor_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = comfort_eater
has_trait = gluttonous
}
}
}
}
option = {
name = bp1_yearly.4040.e
trigger = {
scope:kindly_grandmother = {
is_alive = yes
}
exists = var:food_fed_by_grandmother
var:food_fed_by_grandmother > 4
}
hidden_effect = {
change_current_weight = 20
change_variable = {
name = food_fed_by_grandmother
add = 1
}
trigger_event = {
id = bp1_yearly.4040
days = { 50 150 }
}
}
scope:kindly_grandmother = {
add_opinion = {
target = root
modifier = love_opinion
opinion = 20
}
}
stress_impact = {
base = -1
temperate = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = temperate
}
}
}
option = {
name = bp1_yearly.4040.f
trigger = {
scope:kindly_grandmother = {
is_alive = yes
}
exists = var:food_fed_by_grandmother
var:food_fed_by_grandmother > 4
}
scope:kindly_grandmother = {
add_stress = {
value = medium_stress_impact_gain
multiply = root.var:food_fed_by_grandmother
}
if = {
limit = {
has_opinion_modifier = {
target = root
modifier = love_opinion
}
}
remove_opinion = {
target = root
modifier = love_opinion
}
}
add_opinion = {
target = root
modifier = heartbroken_opinion
opinion = -50
}
}
stress_impact = {
comfort_eater = medium_stress_impact_gain
gluttonous = medium_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = comfort_eater
has_trait = gluttonous
}
}
}
}
}