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