#Events run from the bp1_yearly_pulse on_action namespace = bp1_yearly # List of events in this file: # # 9001-9005 Someone ruins your favourite toy # # 9007-9015 doppelganger shenanigans # 9016 Second-in-line wants to fight for the throne (and your attention) # 9017 Different faith/culture child is feeling insecure # ##################################### # Destroying toy # # by James Beaumont # # 9001 # ##################################### bp1_yearly.9001 = { type = character_event content_source = dlc_006 title = bp1_yearly.9001.t desc = { desc = bp1_yearly.9001.opening #What text we display depends on the relationship to the child first_valid = { triggered_desc = { trigger = { any_relation = { type = bully is_available = yes } } desc = bp1_yearly.9001.desc.bully } triggered_desc = { trigger = { any_relation = { type = guardian is_available = yes } } desc = bp1_yearly.9001.desc.mentor } } } theme = family left_portrait = { character = root animation = fear } right_portrait = { character = scope:bp1_yearly_9001_toy_hater animation = personality_vengeful } trigger = { has_dlc_feature = friends_and_foes NOT = { has_character_flag = had_event_bp1_yearly_9001 } is_adult = no # Should already be covered, but sanity checks never hurt NOR = { # Isn't already shy or the opposite has_trait = shy has_trait = gregarious } OR = { any_relation = { type = bully is_available = yes } any_relation = { type = guardian is_available = yes } } } weight_multiplier = { base = 1 } immediate = { if = { limit = { any_relation = { type = bully is_available = yes } } random_relation = { # Bullies are slightly rarer, try to get that version of the event if possible type = bully limit = { is_available = yes } save_scope_as = bp1_yearly_9001_toy_hater } } else = { random_relation = { type = guardian limit = { is_available = yes } save_scope_as = bp1_yearly_9001_toy_hater } } save_scope_as = bp1_yearly_9001_shy_kid add_character_flag = had_event_bp1_yearly_9001 } option = { # Throw the toy away with minimal provocation name = bp1_yearly.9001.a scope:bp1_yearly_9001_toy_hater = { progress_towards_rival_effect = { REASON = rival_threw_away_toy CHARACTER = scope:bp1_yearly_9001_shy_kid OPINION = default_rival_opinion } } stress_impact = { base = minor_stress_impact_gain pensive = minor_stress_impact_gain bossy = minor_stress_impact_gain } } option = { name = bp1_yearly.9001.b scope:bp1_yearly_9001_toy_hater = { trigger_event = { id = bp1_yearly.9002 days = 5 } } custom_tooltip = may_lead_to_vengeful custom_tooltip = may_lead_to_forgiving custom_tooltip = may_lead_to_shy } } bp1_yearly.9002 = { type = character_event content_source = dlc_006 title = bp1_yearly.9001.t desc = { desc = bp1_yearly.9002.desc.opening #What text we display depends on the relationship to the child first_valid = { triggered_desc = { trigger = { is_adult = no } desc = bp1_yearly.9002.desc.bully } triggered_desc = { trigger = { is_adult = yes } desc = bp1_yearly.9002.desc.mentor } } } theme = family left_portrait = { character = scope:bp1_yearly_9001_toy_hater animation = personality_vengeful } right_portrait = { character = scope:bp1_yearly_9001_shy_kid animation = fear } weight_multiplier = { base = 1 } option = { # Trash the toy! name = bp1_yearly.9002.a if = { limit = { OR = { # Leave the trait decision to the kid if the kid is a player or they have no guardian scope:bp1_yearly_9001_shy_kid = { is_ai = no } NOT = { scope:bp1_yearly_9001_shy_kid = { any_relation = { type = guardian } } } } } scope:bp1_yearly_9001_shy_kid = { trigger_event = { id = bp1_yearly.9004 # End event, kid can choose to get one of two traits days = 5 } } } else_if = { limit = { # Leave it to the guardian if the current scope is a bully is_adult = no } scope:bp1_yearly_9001_shy_kid = { random_relation = { type = guardian trigger_event = { id = bp1_yearly.9004 # End event, kid can choose to get one of two traits days = 5 } } } } else = { # Current scope is the guardian scope:bp1_yearly_9001_shy_kid = { add_trait = vengeful create_character_memory = { type = destroyed_my_toy participants = { destroyer = scope:bp1_yearly_9001_toy_hater } } } } progress_towards_rival_effect = { REASON = rival_threw_away_toy CHARACTER = scope:bp1_yearly_9001_shy_kid OPINION = default_rival_opinion } stress_impact = { just = minor_stress_impact_gain compassionate = minor_stress_impact_gain forgiving = minor_stress_impact_gain } ai_chance = { base = 30 modifier = { factor = 0 OR = { has_trait = just has_trait = compassionate has_trait = forgiving } } } } option = { # Leave them alone name = bp1_yearly.9002.b if = { limit = { OR = { # Leave the trait decision to the kid if the kid is a player or they have no guardian scope:bp1_yearly_9001_shy_kid = { is_ai = no } NOT = { scope:bp1_yearly_9001_shy_kid = { any_relation = { type = guardian } } } } } scope:bp1_yearly_9001_shy_kid = { trigger_event = { id = bp1_yearly.9003 # End event, kid can choose to get one of two traits days = 5 } } } else_if = { limit = { # Leave it to the guardian if the current scope is a bully is_adult = no } scope:bp1_yearly_9001_shy_kid = { random_relation = { type = guardian trigger_event = { id = bp1_yearly.9003 # End event, kid can choose to get one of two traits days = 5 } } } } else = { # Current scope is the guardian scope:bp1_yearly_9001_shy_kid = { add_trait = shy } } stress_impact = { diligent = minor_stress_impact_gain sadistic = minor_stress_impact_gain callous = minor_stress_impact_gain vengeful = minor_stress_impact_gain bossy = minor_stress_impact_gain } ai_chance = { base = 30 modifier = { factor = 0 OR = { has_trait = diligent has_trait = sadistic has_trait = callous has_trait = vengeful has_trait = bossy } } } } option = { # Leave them alone, but teach them the importance of forgiveness name = bp1_yearly.9002.c trigger = { scope:bp1_yearly_9001_shy_kid = { is_ai = yes } is_adult = yes } scope:bp1_yearly_9001_shy_kid = { add_trait = forgiving } stress_impact = { sadistic = minor_stress_impact_gain callous = minor_stress_impact_gain vengeful = minor_stress_impact_gain bossy = minor_stress_impact_gain } ai_chance = { base = 30 modifier = { factor = 0 OR = { has_trait = sadistic has_trait = callous has_trait = vengeful has_trait = bossy } } } } } bp1_yearly.9003 = { type = character_event content_source = dlc_006 title = bp1_yearly.9001.t desc = { first_valid = { triggered_desc = { trigger = { is_adult = no } desc = bp1_yearly.9003.desc.child } triggered_desc = { trigger = { is_adult = yes } desc = bp1_yearly.9003.desc.mentor } } } theme = family left_portrait = { character = scope:bp1_yearly_9001_shy_kid animation = grief } right_portrait = { character = scope:bp1_yearly_9001_toy_hater animation = schadenfreude } option = { # I've learned that people are nice sometimes name = { trigger = { is_adult = no } text = bp1_yearly.9003.a.child } name = { trigger = { is_adult = yes } text = bp1_yearly.9003.a.mentor } scope:bp1_yearly_9001_shy_kid = { add_trait = compassionate } progress_towards_friend_effect = { CHARACTER = scope:bp1_yearly_9001_toy_hater OPINION = 0 REASON = friend_not_destroy_toy } ai_chance = { base = 10 } } option = { # I don't need people anymore! name = { trigger = { is_adult = no } text = bp1_yearly.9003.b.child } name = { trigger = { is_adult = no } text = bp1_yearly.9003.b.mentor } scope:bp1_yearly_9001_shy_kid = { add_trait = shy } ai_chance = { base = 10 } } } bp1_yearly.9004 = { type = character_event content_source = dlc_006 title = bp1_yearly.9004.t desc = bp1_yearly.9004.desc theme = family left_portrait = { character = scope:bp1_yearly_9001_shy_kid animation = fear } right_portrait = { character = scope:bp1_yearly_9001_toy_hater animation = ecstasy } option = { # I will never forgive them! name = bp1_yearly.9004.a scope:bp1_yearly_9001_shy_kid = { add_trait = vengeful # Set up follow-up create_character_memory = { type = destroyed_my_toy participants = { destroyer = scope:bp1_yearly_9001_toy_hater } } } ai_chance = { base = 10 } } option = { # I forgive them for what they did name = bp1_yearly.9004.b scope:bp1_yearly_9001_shy_kid = { add_trait = forgiving } stress_impact = { base = major_stress_impact_gain bossy = medium_stress_impact_gain } ai_chance = { base = 10 } } option = { # I'll never talk to anyone again! name = bp1_yearly.9004.c scope:bp1_yearly_9001_shy_kid = { add_trait = shy } stress_impact = { base = medium_stress_impact_gain } ai_chance = { base = 10 } } } bp1_yearly.9005 = { type = character_event content_source = dlc_006 title = bp1_yearly.9005.t desc = { first_valid = { triggered_desc = { trigger = { scope:bp1_yearly_9001_toy_hater = { is_imprisoned_by = root } } desc = bp1_yearly.9005.desc.imprisoned } triggered_desc = { trigger = { scope:bp1_yearly_9001_toy_hater = { is_foreign_court_or_pool_guest_of = root } } desc = bp1_yearly.9005.desc.guest } } desc = bp1_yearly.9005.desc.outro } theme = family left_portrait = { character = root animation = schadenfreude } right_portrait = { character = scope:bp1_yearly_9001_toy_hater animation = fear } trigger = { any_memory = { memory_type = destroyed_my_toy memory_participant:destroyer = { is_available_ai_adult = yes OR = { is_imprisoned_by = root is_foreign_court_or_pool_guest_of = root } } } NOT = { any_memory = { memory_type = avenged_my_toy } } is_available_adult = yes NOT = { has_trait = forgiving } } immediate = { random_memory = { memory_type = destroyed_my_toy save_scope_as = destroyed_toy_memory memory_participant:destroyer = { save_scope_as = bp1_yearly_9001_toy_hater } } } option = { # Time for revenge! name = bp1_yearly.9005.a scope:bp1_yearly_9001_toy_hater = { random_list = { 10 = { add_trait = one_legged } 10 = { apply_maimed_trait_and_modifier_effect = yes } 10 = { modifier = { # I won't go for the eyes if people think it's virtuous factor = 0.5 faith = { trait_is_virtue = one_eyed } } add_trait = one_eyed } } } if = { limit = { NOT = { has_relation_rival = scope:bp1_yearly_9001_toy_hater } } set_relation_rival = { target = scope:bp1_yearly_9001_toy_hater reason = rival_toy_destruction } } else = { set_relation_nemesis = { target = scope:bp1_yearly_9001_toy_hater reason = rival_toy_destruction copy_reason = rival } } create_character_memory = { type = avenged_my_toy participants = { destroyer = scope:bp1_yearly_9001_toy_hater } } stress_impact = { compassionate = major_stress_impact_gain vengeful = medium_stress_impact_loss just = minor_stress_impact_gain wrathful = minor_stress_impact_loss } ai_chance = { base = 10 modifier = { factor = 0.5 OR = { has_trait = compassionate has_trait = just } } } } option = { # I will literally become a murderer for this childhood trauma name = bp1_yearly.9005.b trigger = { has_relation_rival = scope:bp1_yearly_9001_toy_hater scope:bp1_yearly_9001_toy_hater = { is_imprisoned_by = root } } scope:bp1_yearly_9001_toy_hater = { death = { killer = root death_reason = death_murder } } create_character_memory = { type = avenged_my_toy participants = { destroyer = scope:bp1_yearly_9001_toy_hater } } stress_impact = { compassionate = major_stress_impact_gain vengeful = medium_stress_impact_loss just = major_stress_impact_gain wrathful = medium_stress_impact_loss } ai_chance = { base = 10 modifier = { factor = 0 NOT = { has_trait = wrathful } OR = { has_trait = compassionate has_trait = just } } } } option = { # Turn the other cheek like a beta name = bp1_yearly.9005.c destroy_character_memory = scope:destroyed_toy_memory stress_impact = { vengeful = massive_stress_impact_gain } ai_chance = { base = 0 } } } ############################################ #### Becoming friends over a common sin #### ############################################ scripted_trigger bp1_yearly_9006_both_have_same_sin = { faith = { trait_is_sin = $SINFUL_TRAIT$ } $SINFUL_COURTIER$.faith = { trait_is_sin = $SINFUL_TRAIT$ } has_trait = $SINFUL_TRAIT$ $SINFUL_COURTIER$ = { has_trait = $SINFUL_TRAIT$ } } # You and a courtier bond over sin bp1_yearly.9006 = { type = character_event content_source = dlc_006 title = bp1_yearly.9006.t desc = { desc = bp1_yearly.9006.desc.intro first_valid = { triggered_desc = { trigger = { # You both love sex bp1_yearly_9006_both_have_same_sin = { SINFUL_TRAIT = lustful SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier } } desc = bp1_yearly.9006.desc.lustful } triggered_desc = { trigger = { # You're both closet foodies bp1_yearly_9006_both_have_same_sin = { SINFUL_TRAIT = gluttonous SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier } } desc = bp1_yearly.9006.desc.gluttonous } triggered_desc = { trigger = { bp1_yearly_9006_both_have_same_sin = { SINFUL_TRAIT = vengeful SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier } } desc = bp1_yearly.9006.desc.vengeful } triggered_desc = { trigger = { bp1_yearly_9006_both_have_same_sin = { SINFUL_TRAIT = sadistic SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier } } desc = bp1_yearly.9006.desc.sadistic } triggered_desc = { trigger = { # You're both nerds in a religion of himbos bp1_yearly_9006_both_have_same_sin = { SINFUL_TRAIT = craven SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier } } desc = bp1_yearly.9006.desc.craven } triggered_desc = { trigger = { bp1_yearly_9006_both_have_same_sin = { SINFUL_TRAIT = arbitrary SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier } } desc = bp1_yearly.9006.desc.arbitrary } triggered_desc = { trigger = { bp1_yearly_9006_both_have_same_sin = { SINFUL_TRAIT = deceitful SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier } } desc = bp1_yearly.9006.desc.deceitful } triggered_desc = { trigger = { bp1_yearly_9006_both_have_same_sin = { SINFUL_TRAIT = chaste SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier } } desc = bp1_yearly.9006.desc.chaste } triggered_desc = { trigger = { bp1_yearly_9006_both_have_same_sin = { SINFUL_TRAIT = greedy SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier } } desc = bp1_yearly.9006.desc.greedy } triggered_desc = { trigger = { bp1_yearly_9006_both_have_same_sin = { SINFUL_TRAIT = wrathful SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier } } desc = bp1_yearly.9006.desc.wrathful } triggered_desc = { trigger = { bp1_yearly_9006_both_have_same_sin = { SINFUL_TRAIT = cynical SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier } } desc = bp1_yearly.9006.desc.cynical } triggered_desc = { trigger = { bp1_yearly_9006_both_have_same_sin = { SINFUL_TRAIT = ambitious SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier } } desc = bp1_yearly.9006.desc.ambitious } triggered_desc = { trigger = { bp1_yearly_9006_both_have_same_sin = { SINFUL_TRAIT = shy SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier } } desc = bp1_yearly.9006.desc.shy } triggered_desc = { trigger = { bp1_yearly_9006_both_have_same_sin = { SINFUL_TRAIT = callous SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier } } desc = bp1_yearly.9006.desc.callous } desc = bp1_yearly.9006.desc.generic } desc = bp1_yearly.9006.desc.outro } theme = crown override_background = { reference = corridor_day } left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:bp1_yearly_9006_sinful_courtier animation = admiration } trigger = { has_dlc_feature = friends_and_foes num_sinful_traits >= 1 is_valid_for_narrow_yearly_events_adult = yes OR = { liege= { any_vassal = { this != root NOR = { has_any_good_relationship_with_character_trigger = { CHARACTER = root } has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } has_same_sinful_trait = root } } any_vassal = { NOR = { has_any_good_relationship_with_character_trigger = { CHARACTER = root } has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } has_same_sinful_trait = root } any_courtier = { NOR = { has_any_good_relationship_with_character_trigger = { CHARACTER = root } has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } has_same_sinful_trait = root } } } immediate = { if = { limit = { has_trait = craven } select_local_animal_effect = { TYPE = any } # Save scope to limit possible animals: any/big/small/dangerous/harmless/prowling } if = { limit = { liege = { any_vassal = { this != root NOR = { has_any_good_relationship_with_character_trigger = { CHARACTER = root } has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } has_same_sinful_trait = root } } } liege = { random_vassal = { limit = { this != root NOR = { has_any_good_relationship_with_character_trigger = { CHARACTER = root } has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } has_same_sinful_trait = root } save_scope_as = bp1_yearly_9006_sinful_courtier } } } else_if = { limit = { any_vassal = { NOR = { has_any_good_relationship_with_character_trigger = { CHARACTER = root } has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } highest_held_title_tier > 1 # Barons are barely people has_same_sinful_trait = root } } random_vassal = { limit = { NOR = { has_any_good_relationship_with_character_trigger = { CHARACTER = root } has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } highest_held_title_tier > 1 has_same_sinful_trait = root } save_scope_as = bp1_yearly_9006_sinful_courtier } } else_if = { limit = { any_vassal = { NOR = { has_any_good_relationship_with_character_trigger = { CHARACTER = root } has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } has_same_sinful_trait = root } } random_vassal = { limit = { NOR = { has_any_good_relationship_with_character_trigger = { CHARACTER = root } has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } has_same_sinful_trait = root } save_scope_as = bp1_yearly_9006_sinful_courtier } } else_if = { limit = { any_courtier = { NOR = { has_any_good_relationship_with_character_trigger = { CHARACTER = root } has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } has_same_sinful_trait = root } } random_courtier = { limit = { NOR = { has_any_good_relationship_with_character_trigger = { CHARACTER = root } has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } has_same_sinful_trait = root } save_scope_as = bp1_yearly_9006_sinful_courtier } } } option = { name = bp1_yearly.9006.a if = { limit = { opinion = { target = scope:bp1_yearly_9006_sinful_courtier value >= -20 } } set_relation_friend = { reason = friend_bonded_over_sins target = scope:bp1_yearly_9006_sinful_courtier } } else = { progress_towards_friend_effect = { CHARACTER = scope:bp1_yearly_9006_sinful_courtier OPINION = default_friend_opinion REASON = friend_bonded_over_sins } } add_piety = medium_piety_loss stress_impact = { zealous = massive_stress_impact_gain paranoid = massive_stress_impact_gain } if = { limit = { has_trait = shy scope:bp1_yearly_9006_sinful_courtier = { NOT = { has_trait = shy } } } stress_impact = { shy = massive_stress_impact_gain } } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = zealous has_trait = paranoid AND = { has_trait = shy scope:bp1_yearly_9006_sinful_courtier = { NOT = { has_trait = shy } } } } } } } option = { name = bp1_yearly.9006.b add_piety = minor_piety_gain stress_impact = { base = medium_stress_impact_gain gregarious = medium_stress_impact_gain cynical = medium_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = cynical has_trait = gregarious } } } } } ############################## #### doppelganger peasant #### ############################## # You find the peasant on the street bp1_yearly.9007 = { type = character_event content_source = dlc_006 title = bp1_yearly.9007.t desc = bp1_yearly.9007.desc theme = crown override_background = market left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:bp1_yearly_9007_doppelganger animation = beg triggered_outfit = { remove_default_outfit = no outfit_tags = { beggar_rags } } } trigger = { has_dlc_feature = friends_and_foes is_valid_for_narrow_yearly_events_adult = yes exists = house NOT = { has_character_flag = had_event_bp1_yearly_9007 } #Disabling the story for landless is_landless_adventurer = no is_landless_administrative = no } weight_multiplier = { base = 1 modifier = { factor = 2 has_trait = eccentric } } immediate = { create_character = { template = bp1_doppelganger_template dynasty = none location = root.capital_province save_scope_as = bp1_yearly_9007_doppelganger } scope:bp1_yearly_9007_doppelganger = { add_character_flag = blocked_from_leaving } } option = { # They should join me at court! trigger = { is_landed = yes } name = bp1_yearly.9007.a add_courtier = scope:bp1_yearly_9007_doppelganger progress_towards_friend_effect = { CHARACTER = scope:bp1_yearly_9007_doppelganger OPINION = default_friend_opinion REASON = friend_curiously_similar } # Set up follow-up hidden_effect = { set_variable = { name = my_doppelganger value = scope:bp1_yearly_9007_doppelganger } } create_story = story_doppelganger random_owned_story = { type = story_doppelganger set_variable = { name = doppelganger_character value = scope:bp1_yearly_9007_doppelganger } } stress_impact = { arrogant = medium_stress_impact_gain paranoid = medium_stress_impact_gain eccentric = medium_stress_impact_loss } ai_chance = { base = 10 } } option = { name = bp1_yearly.9007.b trigger = { has_trait = sadistic } unknown_murder_effect = { VICTIM = scope:bp1_yearly_9007_doppelganger MURDERER = root REASON = death_murder } stress_impact = { compassionate = massive_stress_impact_gain lustful = medium_stress_impact_gain calm = medium_stress_impact_gain just = major_stress_impact_gain arrogant = medium_stress_impact_loss wrathful = medium_stress_impact_loss sadistic = medium_stress_impact_loss vengeful = medium_stress_impact_loss } ai_chance = { base = 10 } } option = { name = bp1_yearly.9007.c scope:bp1_yearly_9007_doppelganger = { silent_disappearance_effect = yes } stress_impact = { eccentric = medium_stress_impact_gain compassionate = medium_stress_impact_gain paranoid = medium_stress_impact_gain } ai_chance = { base = 10 } } after = { add_character_flag = had_event_bp1_yearly_9007 create_character_memory = { type = found_my_clone participants = { doppelganger = scope:bp1_yearly_9007_doppelganger } } } } # The peasant proposes a lifestyle swap for fun bp1_yearly.9008 = { type = character_event content_source = dlc_006 title = bp1_yearly.9008.t desc = bp1_yearly.9008.desc theme = family left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:bp1_yearly_9007_doppelganger animation = ecstasy } trigger = { is_valid_for_narrow_yearly_events_adult = yes exists = house NOT = { has_character_flag = had_event_bp1_yearly_9008 } exists = var:my_doppelganger var:my_doppelganger = { is_available_ai_adult = yes } NOR = { has_relation_nemesis = var:my_doppelganger has_relation_rival = var:my_doppelganger } } immediate = { var:my_doppelganger = { save_scope_as = bp1_yearly_9007_doppelganger } } option = { # Go ahead with it name = bp1_yearly.9008.a set_relation_best_friend = { reason = best_friend_switch_places copy_reason = friend target = scope:bp1_yearly_9007_doppelganger } add_character_modifier = { modifier = bp1_living_as_peasant_modifier years = 5 } stress_impact = { arrogant = massive_stress_impact_gain ambitious = major_stress_impact_gain diligent = medium_stress_impact_gain paranoid = medium_stress_impact_gain honest = minor_stress_impact_gain lazy = minor_stress_impact_gain gluttonous = minor_stress_impact_gain } ai_chance = { base = 10 } } option = { # Refuse name = bp1_yearly.9008.b stress_impact = { trusting = massive_stress_impact_gain humble = medium_stress_impact_gain content = medium_stress_impact_gain temperate = medium_stress_impact_gain } ai_chance = { base = 10 } } after = { add_character_flag = had_event_bp1_yearly_9008 } } # The doppelganger is found sleeping with your spouse or lover bp1_yearly.9009 = { type = character_event content_source = dlc_006 title = bp1_yearly.9009.t desc = { desc = bp1_yearly.9009.desc.intro first_valid = { triggered_desc = { trigger = { scope:bp1_yearly_9009_lover = { has_trait = lustful } } desc = bp1_yearly.9009.desc.lustful } desc = bp1_yearly.9009.desc } } theme = family override_background = { reference = bedchamber } left_portrait = { character = scope:bp1_yearly_9009_lover animation = shock } right_portrait = { character = scope:bp1_yearly_9007_doppelganger animation = shock } lower_left_portrait = { character = root animation = shock } trigger = { is_valid_for_narrow_yearly_events_adult = yes exists = house NOT = { has_character_flag = had_event_bp1_yearly_9009 } exists = var:my_doppelganger var:my_doppelganger = { is_available_ai_adult = yes } OR = { any_relation = { type = lover save_temporary_scope_as = lover_1_scope is_available_ai_adult = yes NOT = { has_trait = pregnant } NOT = { scope:lover_1_scope = root.var:my_doppelganger } matching_gender_and_sexuality_trigger = { CHARACTER_1 = scope:lover_1_scope CHARACTER_2 = root.var:my_doppelganger } } any_spouse = { save_temporary_scope_as = spouse_1_scope is_available_ai_adult = yes NOT = { has_trait = pregnant } NOT = { scope:spouse_1_scope = root.var:my_doppelganger } matching_gender_and_sexuality_trigger = { CHARACTER_1 = scope:spouse_1_scope CHARACTER_2 = root.var:my_doppelganger } } } } immediate = { var:my_doppelganger = { save_scope_as = bp1_yearly_9007_doppelganger } if = { limit = { any_relation = { type = lover save_temporary_scope_as = lover_1_scope is_available_ai_adult = yes NOT = { has_trait = pregnant } scope:lover_1_scope != root.var:my_doppelganger matching_gender_and_sexuality_trigger = { CHARACTER_1 = scope:lover_1_scope CHARACTER_2 = root.var:my_doppelganger } } } random_relation = { type = lover limit = { save_temporary_scope_as = lover_1_scope is_available_ai_adult = yes NOT = { has_trait = pregnant } scope:lover_1_scope != root.var:my_doppelganger matching_gender_and_sexuality_trigger = { CHARACTER_1 = scope:lover_1_scope CHARACTER_2 = root.var:my_doppelganger } } save_scope_as = bp1_yearly_9009_lover } } else = { random_spouse = { limit = { save_temporary_scope_as = spouse_1_scope is_available_ai_adult = yes NOT = { has_trait = pregnant } scope:spouse_1_scope != root.var:my_doppelganger matching_gender_and_sexuality_trigger = { CHARACTER_1 = scope:spouse_1_scope CHARACTER_2 = root.var:my_doppelganger } } save_scope_as = bp1_yearly_9009_lover } } scope:bp1_yearly_9007_doppelganger = { set_relation_lover = { reason = lover_doppelganger_cucked target = scope:bp1_yearly_9009_lover involved_character = root } hidden_effect = { had_sex_with_effect = { CHARACTER = scope:bp1_yearly_9009_lover PREGNANCY_CHANCE = 50 } } } create_character_memory = { type = spouse_committed_adultery participants = { spouse = scope:bp1_yearly_9009_lover adulterer = scope:bp1_yearly_9007_doppelganger } } scope:bp1_yearly_9009_lover = { add_character_flag = is_naked } scope:bp1_yearly_9007_doppelganger = { add_character_flag = is_naked } } option = { # Break it off with both of them name = bp1_yearly.9009.a if = { limit = { has_relation_best_friend = scope:bp1_yearly_9007_doppelganger } remove_relation_best_friend = scope:bp1_yearly_9007_doppelganger } else_if = { limit = { has_relation_friend = scope:bp1_yearly_9007_doppelganger } remove_relation_friend = scope:bp1_yearly_9007_doppelganger } if = { limit = { has_relation_lover = scope:bp1_yearly_9007_doppelganger } remove_relation_lover = scope:bp1_yearly_9007_doppelganger } if = { limit = { has_relation_lover = scope:bp1_yearly_9009_lover } remove_relation_lover = scope:bp1_yearly_9009_lover } progress_towards_rival_effect = { REASON = rival_slept_with_lover CHARACTER = scope:bp1_yearly_9007_doppelganger OPINION = default_rival_opinion } progress_towards_rival_effect = { REASON = rival_slept_with_doppelganger CHARACTER = scope:bp1_yearly_9009_lover OPINION = default_rival_opinion } stress_impact = { base = minor_stress_impact_gain } ai_chance = { base = 10 } } option = { # Have the doppelganger imprisoned name = bp1_yearly.9009.b rightfully_imprison_character_effect = { TARGET = scope:bp1_yearly_9007_doppelganger IMPRISONER = root } stress_impact = { humble = medium_stress_impact_gain } ai_chance = { base = 10 } } option = { # Let them be name = bp1_yearly.9009.c if = { limit = { accepts_adultery_without_penalty_trigger = no } stress_impact = { base = major_stress_impact_gain diligent = major_stress_impact_gain arrogant = massive_stress_impact_gain } } ai_chance = { base = 10 } } option = { # Become a polycule name = bp1_yearly.9009.d trigger = { accepts_adultery_without_penalty_trigger = yes matching_gender_and_sexuality_trigger = { CHARACTER_1 = root CHARACTER_2 = scope:bp1_yearly_9007_doppelganger } } set_relation_lover = { reason = lover_my_own_clone_now_neither_of_us_will_be_virgins target = scope:bp1_yearly_9007_doppelganger } if = { limit = { NOT = { has_relation_lover = scope:bp1_yearly_9009_lover } matching_gender_and_sexuality_trigger = { CHARACTER_1 = root CHARACTER_2 = scope:bp1_yearly_9009_lover } } set_relation_lover = { reason = lover_doppelganger_threesome target = scope:bp1_yearly_9009_lover involved_character = scope:bp1_yearly_9007_doppelganger } } had_sex_with_effect = { CHARACTER = scope:bp1_yearly_9007_doppelganger PREGNANCY_CHANCE = 0 } had_sex_with_effect = { CHARACTER = scope:bp1_yearly_9009_lover PREGNANCY_CHANCE = 50 } stress_impact = { } ai_chance = { base = 10 } } after = { add_character_flag = had_event_bp1_yearly_9009 scope:bp1_yearly_9009_lover = { remove_character_flag = is_naked } scope:bp1_yearly_9007_doppelganger = { remove_character_flag = is_naked } } } # The doppelganger challenges you to a fight, claiming to be the real you bp1_yearly.9010 = { type = character_event content_source = dlc_006 title = bp1_yearly.9010.t desc = { desc = bp1_yearly.9010.desc.intro first_valid = { triggered_desc = { trigger = { scope:bp1_yearly_9007_doppelganger = { drinks_alcohol_trigger = yes } } desc = bp1_yearly.9010.desc.drunk } desc = bp1_yearly.9010.desc.stoner } desc = bp1_yearly.9010.desc.outro } theme = family left_portrait = { character = root animation = shock } right_portrait = { character = scope:bp1_yearly_9007_doppelganger animation = personality_vengeful } trigger = { is_valid_for_narrow_yearly_events_adult = yes exists = house NOT = { has_character_flag = had_event_bp1_yearly_9010 } exists = var:my_doppelganger var:my_doppelganger = { is_available_ai_adult = yes } NOR = { has_relation_friend = var:my_doppelganger has_relation_best_friend = var:my_doppelganger has_relation_lover = var:my_doppelganger has_relation_soulmate = var:my_doppelganger } } immediate = { var:my_doppelganger = { save_scope_as = bp1_yearly_9007_doppelganger } if = { limit = { NOT = { has_relation_nemesis = scope:bp1_yearly_9007_doppelganger } } set_relation_nemesis = { target = scope:bp1_yearly_9007_doppelganger reason = nemesis_doppelganger } } } option = { # Fight them for the throne! name = bp1_yearly.9010.a custom_tooltip = bp1_yearly.9010.a_tt # Scopes for duel fallback scope:bp1_yearly_9007_doppelganger = { save_scope_as = recipient } save_scope_as = actor configure_start_single_combat_effect = { SC_INITIATOR = root SC_ATTACKER = scope:bp1_yearly_9007_doppelganger SC_DEFENDER = root FATALITY = no FIXED = no LOCALE = throne_room OUTPUT_EVENT = bp1_yearly.9011 INVALIDATION_EVENT = fp1_tbc.0102 } stress_impact = { craven = medium_stress_impact_gain wrathful = minor_stress_impact_loss } ai_chance = { base = 10 modifier = { factor = 0 has_trait = craven } } } option = { # Have the doppelganger imprisoned name = bp1_yearly.9010.b rightfully_imprison_character_effect = { TARGET = scope:bp1_yearly_9007_doppelganger IMPRISONER = root } add_trait = disputed_heritage random_owned_story = { type = story_doppelganger end_story = yes } stress_impact = { brave = medium_stress_impact_gain arrogant = medium_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = brave has_trait = arrogant } } } } after = { add_character_flag = had_event_bp1_yearly_9010 } } # doppelganger duel outcome bp1_yearly.9011 = { hidden = yes immediate = { # Event for victorious doppelganger if = { limit = { scope:sc_victor = scope:recipient } scope:actor = { trigger_event = { id = bp1_yearly.9012 days = 1 } } } # The real you wins else = { trigger_event = { id = bp1_yearly.9013 days = 1 } } } } # The doppelganger wins bp1_yearly.9012 = { type = character_event content_source = dlc_006 title = bp1_yearly.9012.t desc = bp1_yearly.9012.desc theme = crown left_portrait = { character = root animation = pain } right_portrait = { character = scope:bp1_yearly_9007_doppelganger animation = schadenfreude } trigger = { exists = var:my_doppelganger exists = house } immediate = { every_held_title = { add_to_list = titles_to_pressed_claim } every_claim = { pressed = yes add_to_list = titles_to_pressed_claim } every_claim = { pressed = no add_to_list = titles_to_unpressed_claim } var:my_doppelganger = { save_scope_as = bp1_yearly_9007_doppelganger } create_character_memory = { type = doppelganger_claimed_my_throne participants = { doppelganger = scope:bp1_yearly_9007_doppelganger } } } option = { # Show the player the outcome name = bp1_yearly.9012.a scope:bp1_yearly_9007_doppelganger = { give_nickname = nick_the_real change_first_name = { template_character = root } house ?= { set_house_name_from_house = root.house } } every_in_list = { list = titles_to_pressed_claim limit = { tier > tier_barony } #No baronies save_scope_as = title_to_claim scope:bp1_yearly_9007_doppelganger = { add_pressed_claim = scope:title_to_claim } } every_in_list = { list = titles_to_unpressed_claim save_scope_as = title_to_claim scope:bp1_yearly_9007_doppelganger = { add_unpressed_claim = scope:title_to_claim } } add_trait = disputed_heritage stress_impact = { } ai_chance = { base = 10 } } } # You win bp1_yearly.9013 = { type = character_event content_source = dlc_006 title = bp1_yearly.9012.t desc = bp1_yearly.9013.desc theme = crown left_portrait = { character = root animation = schadenfreude } right_portrait = { character = scope:bp1_yearly_9007_doppelganger animation = pain } trigger = { exists = var:my_doppelganger exists = house } immediate = { var:my_doppelganger = { save_scope_as = bp1_yearly_9007_doppelganger } create_character_memory = { type = doppelganger_claimed_my_throne_failed participants = { doppelganger = scope:bp1_yearly_9007_doppelganger } } } option = { # Good name = bp1_yearly.9013.a rightfully_imprison_character_effect = { TARGET = scope:bp1_yearly_9007_doppelganger IMPRISONER = root } stress_impact = { } ai_chance = { base = 10 } } } # You have a romantic encounter with your double bp1_yearly.9014 = { type = character_event content_source = dlc_006 title = bp1_yearly.9014.t desc = { first_valid = { triggered_desc = { trigger = { has_relation_lover = scope:bp1_yearly_9007_doppelganger can_set_relation_soulmate_trigger = { CHARACTER = scope:bp1_yearly_9007_doppelganger } } desc = bp1_yearly.9014.desc.soulmate } desc = bp1_yearly.9014.desc.lover } } theme = marriage left_portrait = { character = root animation = flirtation_left } right_portrait = { character = scope:bp1_yearly_9007_doppelganger animation = love } trigger = { is_valid_for_narrow_yearly_events_adult = yes exists = house NOT = { has_character_flag = had_event_bp1_yearly_9010 } exists = var:my_doppelganger var:my_doppelganger = { is_available_ai_adult = yes } OR = { NOT = { # Doesn't already have a relation to the doppelganger has_any_scripted_relation = var:my_doppelganger } has_relation_lover = var:my_doppelganger # Become soulmates has_relation_friend = var:my_doppelganger } OR = { # You are attracted to the same-sex matching_gender_and_sexuality_trigger = { CHARACTER_1 = root CHARACTER_2 = var:my_doppelganger } # You love yourself so much it doesn't matter has_trait = arrogant } NOT = { has_character_flag = rejected_advances_bp1_yearly_9014 } # Allows the event to repeat from Lover to Soulmate, but prevents it from repeating for people who opted out } immediate = { var:my_doppelganger = { save_scope_as = bp1_yearly_9007_doppelganger } } option = { # Embrace these feelings name = { trigger = { has_trait = arrogant } text = bp1_yearly.9014.a.arrogant } name = bp1_yearly.9014.a trigger = { NOT = { has_relation_soulmate = scope:bp1_yearly_9007_doppelganger } } if = { limit = { has_relation_lover = scope:bp1_yearly_9007_doppelganger can_set_relation_soulmate_trigger = { CHARACTER = scope:bp1_yearly_9007_doppelganger } } set_relation_soulmate = { reason = soulmate_doppelganger copy_reason = lover target = scope:bp1_yearly_9007_doppelganger } } else = { if = { limit = { NOT = { has_relation_lover = scope:bp1_yearly_9007_doppelganger } } set_relation_lover = { reason = lover_my_own_clone_now_neither_of_us_will_be_virgins target = scope:bp1_yearly_9007_doppelganger } } } stress_impact = { humble = medium_stress_impact_gain chaste = medium_stress_impact_gain zealous = medium_stress_impact_gain } ai_chance = { base = 10 } } option = { # Suppress the feelings name = bp1_yearly.9014.b reverse_add_opinion = { target = scope:bp1_yearly_9007_doppelganger modifier = hurt_opinion opinion = -25 } add_character_flag = rejected_advances_bp1_yearly_9014 stress_impact = { lustful = major_stress_impact_gain arrogant = massive_stress_impact_gain } ai_chance = { base = 10 } } } # Turns out you're long-lost twins bp1_yearly.9015 = { type = character_event content_source = dlc_006 title = bp1_yearly.9015.t desc = bp1_yearly.9015.desc theme = family left_portrait = { character = root animation = disbelief } right_portrait = { character = scope:bp1_yearly_9015_living_parent animation = grief } trigger = { is_valid_for_narrow_yearly_events_adult = yes exists = house NOT = { has_character_flag = had_event_bp1_yearly_9015 } exists = var:my_doppelganger var:my_doppelganger = { is_available_ai_adult = yes } any_parent = { is_available_ai_adult = yes has_trait = honest } } weight_multiplier = { base = 0.1 # This should be very very rare modifier = { # Even rarer if it results in incest factor = 0.1 var:my_doppelganger = { OR = { is_consort_of = root has_relation_lover = root has_relation_soulmate = root } } NOT = { faith = { has_doctrine_parameter = consanguinity_unrestricted_incest } } } } immediate = { random_parent = { limit = { is_available_ai_adult = yes has_trait = honest } save_scope_as = bp1_yearly_9015_living_parent } var:my_doppelganger = { save_scope_as = bp1_yearly_9007_doppelganger set_real_father = root.father } if = { limit = { scope:bp1_yearly_9007_doppelganger = { OR = { is_consort_of = root has_relation_lover = root has_relation_soulmate = root } } } if = { limit = { NOR = { has_trait = incestuous any_secret = { type = secret_incest } } is_adult = yes trait_is_shunned_or_criminal_in_faith_trigger = { TRAIT = incestuous GENDER_CHARACTER = scope:bp1_yearly_9007_doppelganger FAITH = root.faith } } add_secret = { type = secret_incest } random_secret = { type = secret_incest reveal_to = root reveal_to = scope:bp1_yearly_9015_living_parent } } scope:bp1_yearly_9007_doppelganger = { if = { limit = { NOR = { has_trait = incestuous any_secret = { type = secret_incest } } is_adult = yes trait_is_shunned_or_criminal_in_faith_trigger = { TRAIT = incestuous GENDER_CHARACTER = root FAITH = scope:bp1_yearly_9007_doppelganger.faith } } add_secret = { type = secret_incest } random_secret = { type = secret_incest reveal_to = root reveal_to = scope:bp1_yearly_9015_living_parent } } } } } option = { # Announce the news publicly! name = bp1_yearly.9015.a scope:bp1_yearly_9007_doppelganger = { if = { limit = { exists = root.father } set_father = root.father } if = { limit = { exists = root.mother } set_mother = root.mother } if = { limit = { exists = root.house } set_house = root.house } add_trait = twin } add_trait = twin if = { # My clone is known to be my lover, become incestuous limit = { scope:bp1_yearly_9007_doppelganger = { is_consort_of = root } } random_secret = { type = secret_incest expose_secret = root } scope:bp1_yearly_9007_doppelganger = { random_secret = { type = secret_incest expose_secret = root } } } if = { # Your religion thinks your incest is cool, give piety limit = { faith = { has_doctrine_parameter = divine_marriage_piety_gain_active } OR = { scope:bp1_yearly_9007_doppelganger = { is_consort_of = root } NOT = { sexual_activity_with_partner_is_criminal_in_faith_trigger = { PARTNER = scope:bp1_yearly_9007_doppelganger FAITH = root.faith } } } } add_piety = major_piety_gain } if = { # I'm not having sexual relations with my clone, become friends limit = { NOT = { has_any_scripted_relation = scope:bp1_yearly_9007_doppelganger scope:bp1_yearly_9007_doppelganger = { is_consort_of = root } } } if = { limit = { NOT = { has_relation_friend = scope:bp1_yearly_9007_doppelganger } } set_relation_friend = { reason = friend_long_lost_twin target = scope:bp1_yearly_9007_doppelganger } } } else_if = { # We're enemies, move closer to not being enemies limit = { NOT = { scope:bp1_yearly_9007_doppelganger = { is_consort_of = root } } OR = { has_relation_rival = scope:bp1_yearly_9007_doppelganger has_relation_nemesis = scope:bp1_yearly_9007_doppelganger } } scope:bp1_yearly_9007_doppelganger = { progress_towards_friend_effect = { CHARACTER = root OPINION = default_friend_opinion REASON = friend_curiously_similar } } } if = { # Stress gain for incest limit = { scope:bp1_yearly_9007_doppelganger = { OR = { is_consort_of = root has_relation_lover = root has_relation_soulmate = root } } } stress_impact = { humble = medium_stress_impact_gain deceitful = medium_stress_impact_gain chaste = medium_stress_impact_gain } if = { limit = { NOT = { faith = { has_doctrine_parameter = divine_marriage_piety_gain_active } } } stress_impact = { base = major_stress_impact_gain zealous = major_stress_impact_gain } } } else = { # Stress gain for not incest stress_impact = { deceitful = medium_stress_impact_gain humble = medium_stress_impact_gain } } ai_chance = { base = 10 modifier = { factor = 0 scope:bp1_yearly_9007_doppelganger = { OR = { is_consort_of = root has_relation_lover = root has_relation_soulmate = root } } NOT = { faith = { has_doctrine_parameter = consanguinity_unrestricted_incest } } } } } option = { # Suppress information name = bp1_yearly.9015.b stress_impact = { arrogant = major_stress_impact_gain humble = major_stress_impact_gain content = major_stress_impact_gain honest = massive_stress_impact_gain trusting = massive_stress_impact_gain } if = { # Stress gain for incest limit = { scope:bp1_yearly_9007_doppelganger = { OR = { is_consort_of = root has_relation_lover = root has_relation_soulmate = root } } faith = { has_doctrine_parameter = divine_marriage_piety_gain_active } } stress_impact = { zealous = massive_stress_impact_gain } } ai_chance = { base = 10 modifier = { factor = 0 scope:bp1_yearly_9007_doppelganger = { OR = { is_consort_of = root has_relation_lover = root has_relation_soulmate = root } } faith = { has_doctrine_parameter = consanguinity_unrestricted_incest } } modifier = { factor = 0 has_trait = honest } } } after = { add_character_flag = had_event_bp1_yearly_9015 } } ##################################### # Uppity heir wants the throne # # by James Beaumont # # 9016 # ##################################### bp1_yearly.9016 = { type = character_event content_source = dlc_006 title = bp1_yearly.9016.t desc = { desc = bp1_yearly.9016.desc.intro first_valid = { # Different descs to challenge why they think they deserve the throne more triggered_desc = { trigger = { NOT = { root.player_heir = { is_child_of = root } } } desc = bp1_yearly.9016.desc.not_a_child } triggered_desc = { trigger = { scope:bp1_yearly_9016_uppity_child = { NOR = { has_trait = legitimized_bastard has_trait = bastard } } root.player_heir = { OR = { has_trait = legitimized_bastard has_trait = bastard } } } desc = bp1_yearly.9016.desc.bastard } triggered_desc = { trigger = { scope:bp1_yearly_9016_uppity_child = { NOR = { has_trait = child_of_concubine has_trait = legitimized_bastard has_trait = bastard } } root.player_heir = { has_trait = child_of_concubine } } desc = bp1_yearly.9016.desc.child_of_concubine } triggered_desc = { trigger = { scope:bp1_yearly_9016_uppity_child = { NOT = { has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } } root.player_heir = { has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } } desc = bp1_yearly.9016.desc.rival } desc = bp1_yearly.9016.desc.fallback } desc = bp1_yearly.9016.desc.outro } theme = family override_background = feast left_portrait = { character = scope:bp1_yearly_9016_heir animation = shock } right_portrait = { character = scope:bp1_yearly_9016_uppity_child animation = rage } trigger = { has_dlc_feature = friends_and_foes is_landed = yes is_available_at_peace_adult = yes NOT = { has_character_flag = had_event_bp1_yearly_9016 } exists = root.player_heir root.player_heir = { is_available_ai_adult = yes # Consider if this should only be valid for your offspring or if uncles should be valid as well } any_child = { is_available_ai_adult = yes this != root.player_heir # Any of your children dislike or are indifferent to your current heir NOT = { has_any_good_relationship_with_character_trigger = { CHARACTER = root.player_heir } } OR = { has_trait = ambitious has_any_bad_relationship_with_character_trigger = { CHARACTER = root.player_heir } } root.primary_title = { # They must be close to succession place_in_line_of_succession = { target = prev value <= 4 } } } } weight_multiplier = { base = 1 modifier = { # Less rare if they hate your current heir factor = 10 any_child = { is_available_ai_adult = yes has_any_bad_relationship_with_character_trigger = { CHARACTER = root.player_heir } } } modifier = { # Less rare if they think they could take your current heir in a fight factor = 2 any_child = { is_available_ai_adult = yes prowess > root.player_heir.prowess } } } immediate = { random_child = { limit = { is_available_ai_adult = yes this != root.player_heir NOT = { has_any_good_relationship_with_character_trigger = { CHARACTER = root.player_heir } } root.primary_title = { # They must be close to succession place_in_line_of_succession = { target = prev value <= 4 } } } weight = { modifier = { factor = 10 any_child = { is_available_ai_adult = yes has_any_bad_relationship_with_character_trigger = { CHARACTER = root.player_heir } } } modifier = { factor = 2 any_child = { is_available_ai_adult = yes prowess > root.player_heir.prowess } } } progress_towards_rival_effect = { REASON = rival_heir_wants_throne CHARACTER = root.player_heir OPINION = default_rival_opinion } save_scope_as = bp1_yearly_9016_uppity_child } root.player_heir = { save_scope_as = bp1_yearly_9016_heir } } option = { # Let them fight! name = bp1_yearly.9016.a trigger = { NOT = { culture ?= { has_cultural_tradition = tradition_mystical_ancestors } } } scope:bp1_yearly_9016_uppity_child = { progress_towards_rival_effect = { REASON = rival_heir_wants_throne CHARACTER = root.player_heir OPINION = default_rival_opinion } duel = { skill = prowess target = scope:bp1_yearly_9016_heir 50 = { compare_modifier = { value = scope:duel_value multiplier = 2.5 } root = { send_interface_toast = { title = 9016_uppity_child_wins left_icon = root right_icon = scope:bp1_yearly_9016_uppity_child set_designated_heir = scope:bp1_yearly_9016_uppity_child } } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -2.5 } root = { send_interface_toast = { title = 9016_uppity_child_wins left_icon = root right_icon = scope:bp1_yearly_9016_heir scope:bp1_yearly_9016_uppity_child = { disinherit_effect = { DISINHERITOR = root } } } } } } } stress_impact = { arrogant = major_stress_impact_gain just = major_stress_impact_gain compassionate = major_stress_impact_gain craven = major_stress_impact_gain family_first = massive_stress_impact_gain # I hate it when you guys fight! } ai_chance = { base = 10 } } option = { # Send the uppity heir to their room with no supper name = bp1_yearly.9016.b scope:bp1_yearly_9016_uppity_child = { progress_towards_rival_effect = { REASON = rival_heir_sent_to_bed CHARACTER = root OPINION = default_rival_opinion } } stress_impact = { arbitrary = major_stress_impact_gain brave = major_stress_impact_gain honest = massive_stress_impact_gain family_first = minor_stress_impact_gain } } after = { add_character_flag = had_event_bp1_yearly_9016 } } ################################################# # Uppity child is insecure about culture # # by James Beaumont # # 9017 # ################################################# scripted_trigger bp1_yearly_9017_child_is_valid_trigger = { is_available_ai_adult = yes OR = { # They feel like they don't belong culture != root.culture faith != root.faith } root.primary_title = { # They must be relevant at least somewhat place_in_line_of_succession = { target = prev value <= 4 } } OR = { # They must be in your realm is_courtier_of = root any_liege_or_above = { this = root } } } bp1_yearly.9017 = { type = character_event content_source = dlc_006 title = { first_valid = { triggered_desc = { trigger = { scope:bp1_yearly_9017_uppity_child = { culture != root.culture } } desc = bp1_yearly.9017.t.culture } triggered_desc = { trigger = { scope:bp1_yearly_9017_uppity_child = { faith != root.faith } } desc = bp1_yearly.9017.t.faith } } } desc = { desc = bp1_yearly.9017.desc.intro first_valid = { triggered_desc = { trigger = { scope:bp1_yearly_9017_uppity_child = { culture != root.culture } } desc = bp1_yearly.9017.desc.culture } triggered_desc = { trigger = { scope:bp1_yearly_9017_uppity_child = { faith != root.faith } } desc = bp1_yearly.9017.desc.faith } } desc = bp1_yearly.9017.desc.outro } theme = family left_portrait = { character = root animation = personality_compassionate } right_portrait = { character = scope:bp1_yearly_9017_uppity_child animation = grief } trigger = { has_dlc_feature = friends_and_foes is_landed = yes is_available_at_peace_adult = yes NOT = { has_character_flag = had_event_bp1_yearly_9017 } any_child = { bp1_yearly_9017_child_is_valid_trigger = yes } } weight_multiplier = { base = 1 modifier = { # More likely if faith is hostile or higher add = 5 any_child = { bp1_yearly_9017_child_is_valid_trigger = yes faith = { faith_hostility_level = { target = root.faith value >= 2 } } } } modifier = { # More likely if cultures don't get along add = 2 any_child = { bp1_yearly_9017_child_is_valid_trigger = yes culture = { cultural_acceptance = { target = root.culture value <= 25 } } } } modifier = { # More likely if cultures *really* don't get along add = 3 any_child = { bp1_yearly_9017_child_is_valid_trigger = yes culture = { cultural_acceptance = { target = root.culture value <= 5 } } } } } immediate = { random_child = { limit = { bp1_yearly_9017_child_is_valid_trigger = yes } weight = { modifier = { factor = 2 culture != root.culture faith != root.faith } } save_scope_as = bp1_yearly_9017_uppity_child } } option = { # We should celebrate our differences! name = bp1_yearly.9017.a trigger = { root.culture != scope:bp1_yearly_9017_uppity_child.culture } if = { limit = { root.culture != scope:bp1_yearly_9017_uppity_child.culture } root.culture = { change_cultural_acceptance = { target = scope:bp1_yearly_9017_uppity_child.culture value = medium_cultural_acceptance_gain desc = cultural_acceptance_embraced_child } } } scope:bp1_yearly_9017_uppity_child = { progress_towards_friend_effect = { CHARACTER = root OPINION = default_friend_opinion REASON = friend_encouraged_differences } } stress_impact = { arrogant = major_stress_impact_gain callous = major_stress_impact_gain sadistic = major_stress_impact_gain vengeful = major_stress_impact_gain } if = { limit = { faith = { faith_hostility_level = { target = scope:bp1_yearly_9017_uppity_child.faith value >= 2 } } } stress_impact = { zealous = massive_stress_impact_gain } } ai_chance = { base = 10 } } option = { # We are different, but you're still my daughter/son name = { trigger = { scope:bp1_yearly_9017_uppity_child = { culture != root.culture } } text = bp1_yearly.9017.b.culture } name = { trigger = { scope:bp1_yearly_9017_uppity_child = { faith != root.faith } } text = bp1_yearly.9017.b.faith } scope:bp1_yearly_9017_uppity_child = { progress_towards_friend_effect = { CHARACTER = root OPINION = default_friend_opinion REASON = friend_encouraged_differences } } stress_impact = { arrogant = major_stress_impact_gain callous = major_stress_impact_gain sadistic = major_stress_impact_gain vengeful = major_stress_impact_gain } if = { limit = { faith = { faith_hostility_level = { target = scope:bp1_yearly_9017_uppity_child.faith value >= 2 } } } stress_impact = { zealous = major_stress_impact_gain } } } option = { # The differences are too great, disinherit them name = bp1_yearly.9017.c trigger = { NOT = { culture ?= { has_cultural_tradition = tradition_mystical_ancestors } } } scope:bp1_yearly_9017_uppity_child = { disinherit_effect = { DISINHERITOR = root } } scope:bp1_yearly_9017_uppity_child = { progress_towards_rival_effect = { REASON = rival_was_disinherited CHARACTER = root OPINION = default_rival_opinion } } if = { limit = { root.culture != scope:bp1_yearly_9017_uppity_child.culture } root.culture = { change_cultural_acceptance = { target = scope:bp1_yearly_9017_uppity_child.culture value = medium_cultural_acceptance_loss desc = cultural_acceptance_rejected_child } } } stress_impact = { just = massive_stress_impact_gain compassionate = massive_stress_impact_gain forgiving = major_stress_impact_gain trusting = major_stress_impact_gain family_first = massive_stress_impact_gain } } after = { add_character_flag = had_event_bp1_yearly_9017 } } ################################################# # Illegitimate child feels excluded # # by James Beaumont # # 9018 # ################################################# bp1_yearly.9018 = { type = character_event content_source = dlc_006 title = bp1_yearly.9018.t desc = { desc = bp1_yearly.9018.desc.intro first_valid = { triggered_desc = { trigger = { scope:bp1_yearly_9018_illegitimate_child = { OR = { has_trait = bastard has_trait = legitimized_bastard } } } desc = bp1_yearly.9018.desc.bastard } triggered_desc = { trigger = { scope:bp1_yearly_9018_illegitimate_child = { has_trait = child_of_concubine } } desc = bp1_yearly.9018.desc.child_of_concubine } } first_valid = { triggered_desc = { trigger = { NOT = { has_trait = compassionate } OR = { has_trait = callous opinion = { target = scope:bp1_yearly_9018_illegitimate_child value <= -20 } } } desc = bp1_yearly.9018.desc.outro.callous } desc = bp1_yearly.9018.desc.outro } } theme = family left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:bp1_yearly_9018_illegitimate_child animation = grief } lower_right_portrait = { character = scope:bp1_yearly_9018_bully animation = schadenfreude } trigger = { has_dlc_feature = friends_and_foes is_available_at_peace_adult = yes NOT = { has_character_flag = had_event_bp1_yearly_9018 } any_child = { is_adult = no age >= 6 OR = { has_trait = bastard has_trait = legitimized_bastard has_trait = child_of_concubine } save_temporary_scope_as = bastard_scope } any_child = { is_adult = no age >= 6 age >= scope:bastard_scope.age NOR = { has_trait = bastard has_trait = legitimized_bastard has_trait = child_of_concubine has_trait = compassionate has_trait = trusting } } } weight_multiplier = { base = 1 } immediate = { random_child = { limit = { is_adult = no age >= 6 OR = { has_trait = bastard has_trait = legitimized_bastard has_trait = child_of_concubine } } save_scope_as = bp1_yearly_9018_illegitimate_child } random_child = { limit = { is_adult = no age >= 6 NOR = { has_trait = bastard has_trait = legitimized_bastard has_trait = child_of_concubine has_trait = compassionate has_trait = trusting } } save_scope_as = bp1_yearly_9018_bully } } option = { # You two should get along! name = bp1_yearly.9018.a scope:bp1_yearly_9018_illegitimate_child = { root = { save_scope_as = relationship_reason_involved_character } progress_towards_friend_effect = { CHARACTER = scope:bp1_yearly_9018_bully OPINION = default_friend_opinion REASON = friend_motivated_by_parent } clear_saved_scope = relationship_reason_involved_character progress_towards_friend_effect = { CHARACTER = root OPINION = default_friend_opinion REASON = friend_good_chats } } scope:bp1_yearly_9018_bully = { progress_towards_friend_effect = { CHARACTER = root OPINION = default_friend_opinion REASON = friend_good_chats } } stress_impact = { base = medium_stress_impact_gain arrogant = major_stress_impact_gain callous = major_stress_impact_gain sadistic = major_stress_impact_gain vengeful = major_stress_impact_gain family_first = major_stress_impact_loss } ai_chance = { base = 10 } } option = { # GetGirlBoys will be GetGirlBoys name = bp1_yearly.9018.b scope:bp1_yearly_9018_illegitimate_child = { set_relation_victim = scope:bp1_yearly_9018_bully add_opinion = { target = root modifier = betrayed_me_opinion opinion = -25 } } scope:bp1_yearly_9018_bully = { add_opinion = { target = root modifier = love_opinion opinion = 25 } } stress_impact = { just = major_stress_impact_gain compassionate = major_stress_impact_gain forgiving = major_stress_impact_gain family_first = major_stress_impact_gain } } option = { # Let them fight for your compassion name = bp1_yearly.9018.c trigger = { OR = { has_trait = arbitrary has_trait = callous } NOT = { culture ?= { has_cultural_tradition = tradition_mystical_ancestors } } } scope:bp1_yearly_9018_illegitimate_child = { set_relation_nemesis = { target = scope:bp1_yearly_9018_bully involved_character = root copy_reason = rival reason = nemesis_fought_for_parents_compassion } duel = { skill = prowess target = scope:bp1_yearly_9018_bully 50 = { compare_modifier = { value = scope:duel_value multiplier = 2.5 } root = { send_interface_toast = { title = 9018_uppity_child_wins left_icon = root right_icon = scope:bp1_yearly_9018_illegitimate_child scope:bp1_yearly_9018_bully = { disinherit_effect = { DISINHERITOR = root } } } } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -2.5 } root = { send_interface_toast = { title = 9018_bully_child_wins left_icon = root right_icon = scope:bp1_yearly_9018_bully scope:bp1_yearly_9018_illegitimate_child = { disinherit_effect = { DISINHERITOR = root } } } } } } } stress_impact = { just = massive_stress_impact_gain compassionate = massive_stress_impact_gain forgiving = major_stress_impact_gain trusting = major_stress_impact_gain family_first = massive_stress_impact_gain } } after = { add_character_flag = had_event_bp1_yearly_9018 } } ################################################# # Spouse proposes a gay threesome # # by James Beaumont # # 9019 # ################################################# scripted_trigger bp1_yearly_9019_spouse_trigger = { is_available_at_peace_ai_adult = yes is_eunuch_trigger = no NOR = { has_trait = chaste has_trait = celibate has_trait = pregnant } OR = { # Many things can motivate this, desire for children, compassion for your partner's desires, just wanting a threesom, etc. has_trait = compassionate has_trait = deceitful has_trait = lustful has_trait = ambitious has_trait = arbitrary AND = { faith = { has_doctrine_parameter = homosexuality_accepted } NOT = { trait_is_shunned_in_faith_trigger = { TRAIT = adulterer FAITH = root.faith GENDER_CHARACTER = root } } } } # Zealous spouses generally shouldn't want to do this if their faith shuns it NAND = { OR = { faith = { has_doctrine_parameter = homosexuality_illegal } faith = { has_doctrine_parameter = homosexuality_shunned } } has_trait = zealous } } scripted_trigger bp1_yearly_9019_relation_trigger = { NOR = { is_close_family_of = root is_consort_of = root has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } OR = { AND = { is_male = yes root = { is_male = yes } } AND = { is_female = yes root = { is_female = yes } } } might_cheat_on_every_partner_trigger = yes } scripted_trigger bp1_yearly_9019_courtier_trigger = { is_adult = yes NAND = { OR = { faith = { has_doctrine_parameter = homosexuality_illegal } faith = { has_doctrine_parameter = homosexuality_shunned } } has_trait = zealous } NOR = { has_trait = chaste is_close_family_of = root is_consort_of = root has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } OR = { has_sexuality = homosexual has_sexuality = bisexual } OR = { AND = { is_male = yes root = { is_male = yes } } AND = { is_female = yes root = { is_female = yes } } } might_cheat_on_every_partner_trigger = yes } bp1_yearly.9019 = { type = character_event content_source = dlc_006 title = bp1_yearly.9019.t desc = { first_valid = { triggered_desc = { trigger = { has_sexuality = homosexual } desc = bp1_yearly.9019.desc.intro.gay } triggered_desc = { trigger = { has_sexuality = bisexual } desc = bp1_yearly.9019.desc.intro.bi } } desc = bp1_yearly.9019.desc.bridge first_valid = { triggered_desc = { trigger = { has_sexuality = homosexual } desc = bp1_yearly.9019.desc.bridge.gay } triggered_desc = { trigger = { has_sexuality = bisexual } desc = bp1_yearly.9019.desc.bridge.bi } } first_valid = { triggered_desc = { trigger = { scope:bp1_yearly_9019_spouse = { has_trait = compassionate } } desc = bp1_yearly.9019.desc.compassionate } triggered_desc = { trigger = { scope:bp1_yearly_9019_spouse = { has_trait = lustful } } desc = bp1_yearly.9019.desc.lustful } desc = bp1_yearly.9019.desc.cynical } first_valid = { triggered_desc = { trigger = { OR = { has_relation_lover = scope:bp1_yearly_9019_lover has_relation_soulmate = scope:bp1_yearly_9019_lover } } desc = bp1_yearly.9019.desc.lover } triggered_desc = { trigger = { has_relation_friend = scope:bp1_yearly_9019_lover } desc = bp1_yearly.9019.desc.friend } desc = bp1_yearly.9019.desc.stranger } desc = bp1_yearly.9019.desc.outro } theme = family override_background = bedchamber left_portrait = { character = scope:bp1_yearly_9019_spouse animation = personality_compassionate } right_portrait = { character = scope:bp1_yearly_9019_lover animation = flirtation_left } lower_left_portrait = { character = root animation = shock } trigger = { has_dlc_feature = friends_and_foes is_available_at_peace_adult = yes OR = { has_sexuality = homosexual has_sexuality = bisexual } is_eunuch_trigger = no NOR = { # Can have sex and isn't already pregnant has_trait = celibate has_trait = pregnant } any_spouse = { bp1_yearly_9019_spouse_trigger = yes } } weight_multiplier = { base = 1 } immediate = { random_spouse = { limit = { bp1_yearly_9019_spouse_trigger = yes } save_scope_as = bp1_yearly_9019_spouse } # Grab an existing lover if possible if = { limit = { any_relation = { type = lover bp1_yearly_9019_relation_trigger = yes } } random_relation = { type = lover limit = { bp1_yearly_9019_relation_trigger = yes } save_scope_as = bp1_yearly_9019_lover } } # Otherwise grab a courtier else_if = { limit = { any_courtier_or_guest = { bp1_yearly_9019_courtier_trigger = yes } } random_courtier_or_guest = { limit = { bp1_yearly_9019_courtier_trigger = yes } save_scope_as = bp1_yearly_9019_lover } } # Otherwise create a beautiful bisexual else = { create_character = { template = bp1_bisexual_partner_template location = root.capital_province save_scope_as = bp1_yearly_9019_lover } } # We're gonna have some monogamous threesomes happenin'. save_scope_as = ignore_cheating_error_check scope:bp1_yearly_9019_lover = { add_character_flag = is_naked } } option = { # Let's do this thing! name = bp1_yearly.9019.a had_sex_with_effect = { CHARACTER = scope:bp1_yearly_9019_lover PREGNANCY_CHANCE = 20 } had_sex_with_effect = { CHARACTER = scope:bp1_yearly_9019_spouse PREGNANCY_CHANCE = 80 } hidden_effect = { # Hidden to prevent tooltip errors, also largely implied by the event content scope:bp1_yearly_9019_lover = { had_sex_with_effect = { CHARACTER = scope:bp1_yearly_9019_spouse PREGNANCY_CHANCE = 50 } } } if = { limit = { NOT = { has_relation_lover = scope:bp1_yearly_9019_lover } } set_relation_lover = { reason = lover_threesome_with_spouse target = scope:bp1_yearly_9019_lover involved_character = scope:bp1_yearly_9019_spouse } } progress_towards_friend_effect = { CHARACTER = scope:bp1_yearly_9019_spouse OPINION = default_friend_opinion REASON = friend_deviant_fun } create_character_memory = { type = had_a_threesome_memory participants = { partner_1 = scope:bp1_yearly_9019_spouse partner_2 = scope:bp1_yearly_9019_lover } } stress_impact = { chaste = major_stress_impact_gain shy = major_stress_impact_gain lustful = major_stress_impact_loss } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = chaste has_trait = shy } } } } option = { # Leave me and my new boyfriend alone! name = bp1_yearly.9019.b trigger = { OR = { has_trait = callous has_trait = arbitrary has_trait = lustful } NOT = { has_relation_lover = scope:bp1_yearly_9019_lover } } had_sex_with_effect = { CHARACTER = scope:bp1_yearly_9019_lover PREGNANCY_CHANCE = 50 } set_relation_lover = { reason = lover_ignored_spouse target = scope:bp1_yearly_9019_lover involved_character = scope:bp1_yearly_9019_spouse } progress_towards_rival_effect = { REASON = rival_rejected_marital_bed CHARACTER = scope:bp1_yearly_9019_spouse OPINION = default_rival_opinion } stress_impact = { just = major_stress_impact_gain compassionate = major_stress_impact_gain family_first = major_stress_impact_gain lustful = major_stress_impact_loss } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = just has_trait = compassionate has_trait = family_first } } } } option = { # Refuse the threesom name = bp1_yearly.9019.c if = { # Lose piety if in gay-accepting Carnal Exaltation faith limit = { faith = { has_doctrine_parameter = homosexuality_accepted trait_is_virtue = lustful } } add_piety = minor_piety_loss } else = { add_piety = medium_piety_gain } reverse_add_opinion = { target = scope:bp1_yearly_9019_spouse modifier = hurt_opinion opinion = -25 } stress_impact = { lustful = massive_stress_impact_gain family_first = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = lustful has_trait = family_first } } modifier = { factor = 2 has_trait = chaste } modifier = { factor = 2 NOT = { faith = { has_doctrine_parameter = homosexuality_accepted } } has_trait = zealous } } } after = { scope:bp1_yearly_9019_lover = { remove_character_flag = is_naked } } } ################################################# # Spouse wants to do something kinky # # by James Beaumont # # 9020 # ################################################# bp1_yearly.9020 = { type = character_event content_source = dlc_006 title = bp1_yearly.9020.t desc = { desc = bp1_yearly.9020.desc.intro random_valid = { desc = bp1_yearly.9020.desc.goat desc = bp1_yearly.9020.desc.vegetable desc = bp1_yearly.9020.desc.bondage desc = bp1_yearly.9020.desc.feet triggered_desc = { trigger = { exists = faith.religious_head NOT = { faith.religious_head = root faith.religious_head = scope:bp1_yearly_9020_spouse } } desc = bp1_yearly.9020.desc.hof } } desc = bp1_yearly.9020.desc.outro } theme = family override_background = bedchamber left_portrait = { character = root animation = shock } right_portrait = { character = scope:bp1_yearly_9020_spouse animation = flirtation } trigger = { has_dlc_feature = friends_and_foes is_available_at_peace_adult = yes is_eunuch_trigger = no NOR = { # Can have sex and isn't already pregnant has_trait = celibate has_trait = pregnant } any_spouse = { is_available_at_peace_ai_adult = yes is_eunuch_trigger = no NOR = { has_trait = chaste has_trait = celibate has_trait = pregnant } is_deviant_trigger = yes # Zealous spouses generally shouldn't want to do this if their faith shuns it NAND = { OR = { faith = { has_doctrine_parameter = deviancy_illegal } faith = { has_doctrine_parameter = deviancy_shunned } } has_trait = zealous } } } weight_multiplier = { base = 1 } immediate = { random_spouse = { limit = { is_eunuch_trigger = no NOR = { has_trait = chaste has_trait = celibate has_trait = pregnant } is_deviant_trigger = yes # Zealous spouses generally shouldn't want to do this if their faith shuns it NAND = { OR = { faith = { has_doctrine_parameter = deviancy_illegal } faith = { has_doctrine_parameter = deviancy_shunned } } has_trait = zealous } } if = { limit = { any_secret = { type = secret_deviant } } random_secret = { type = secret_deviant reveal_to = root save_scope_as = bp1_yearly_9020_spouse_secret } } save_scope_as = bp1_yearly_9020_spouse } scope:bp1_yearly_9020_spouse = { add_character_flag = is_naked } } option = { # I would do anything for love name = bp1_yearly.9020.a give_deviant_secret_or_trait_effect = yes had_sex_with_effect = { CHARACTER = scope:bp1_yearly_9020_spouse PREGNANCY_CHANCE = 75 } progress_towards_lover_effect = { CHARACTER = scope:bp1_yearly_9020_spouse REASON = lover_spouse_indulged OPINION = default_lover_opinion } stress_impact = { chaste = major_stress_impact_gain shy = major_stress_impact_gain lustful = major_stress_impact_loss } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = chaste has_trait = shy } } } } option = { # but I won't do that name = bp1_yearly.9020.b reverse_add_opinion = { target = scope:bp1_yearly_9020_spouse modifier = disappointed_opinion opinion = -25 } stress_impact = { lustful = massive_stress_impact_gain family_first = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = lustful has_trait = family_first } } modifier = { factor = 2 has_trait = chaste } } } option = { # I would report you to the authorities for love name = bp1_yearly.9020.c trigger = { trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = { TRAIT = deviant GENDER_CHARACTER = root } exists = scope:bp1_yearly_9020_spouse_secret } scope:bp1_yearly_9020_spouse_secret = { expose_secret = root } progress_towards_rival_effect = { REASON = rival_accused_of_perversion CHARACTER = scope:bp1_yearly_9020_spouse OPINION = default_rival_opinion } stress_impact = { lustful = massive_stress_impact_gain family_first = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = lustful has_trait = family_first } } modifier = { factor = 2 has_trait = chaste } modifier = { factor = 2 NOT = { faith = { has_doctrine_parameter = homosexuality_accepted } } has_trait = zealous } } } after = { scope:bp1_yearly_9020_spouse = { remove_character_flag = is_naked } } } ################################################# # Rival spouse is good in the bedroom # # by James Beaumont # # 9021 # ################################################# bp1_yearly.9021 = { type = character_event content_source = dlc_006 title = bp1_yearly.9021.t desc = bp1_yearly.9021.desc theme = family override_background = bedchamber left_portrait = { character = root animation = anger } right_portrait = { character = scope:bp1_yearly_9021_rival_spouse animation = rage } trigger = { has_dlc_feature = friends_and_foes is_available_at_peace_adult = yes is_eunuch_trigger = no NOR = { # Can have sex and isn't already pregnant has_trait = celibate has_trait = pregnant } any_spouse = { is_available_at_peace_ai_adult = yes is_eunuch_trigger = no NOR = { has_trait = chaste has_trait = celibate has_trait = pregnant } has_relation_rival = root NOT = { has_relation_lover = root } } } weight_multiplier = { base = 1 } immediate = { random_spouse = { limit = { is_available_at_peace_ai_adult = yes is_eunuch_trigger = no NOR = { has_trait = chaste has_trait = celibate has_trait = pregnant } has_relation_rival = root } save_scope_as = bp1_yearly_9021_rival_spouse } had_sex_with_effect = { CHARACTER = scope:bp1_yearly_9021_rival_spouse PREGNANCY_CHANCE = 50 } add_character_flag = is_naked scope:bp1_yearly_9021_rival_spouse = { add_character_flag = is_naked } } option = { # We should do that again! name = bp1_yearly.9021.a set_relation_lover = { reason = lover_rival_spouse target = scope:bp1_yearly_9021_rival_spouse } stress_impact = { base = major_stress_impact_gain chaste = major_stress_impact_gain shy = major_stress_impact_gain lustful = major_stress_impact_loss } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = chaste has_trait = shy } } } } option = { # Try not to think about it too hard name = bp1_yearly.9021.b reverse_add_opinion = { target = scope:bp1_yearly_9021_rival_spouse modifier = disappointed_opinion opinion = -5 } stress_impact = { lustful = massive_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 has_trait = lustful } } } after = { remove_character_flag = is_naked scope:bp1_yearly_9021_rival_spouse = { remove_character_flag = is_naked } } } ################################################# # Friend holds an intervention # # by James Beaumont # # 9022 # ################################################# bp1_yearly.9022 = { type = character_event content_source = dlc_006 title = bp1_yearly.9022.t desc = { desc = bp1_yearly.9022.desc.intro first_valid = { triggered_desc = { trigger = { has_trait = hashishiyah } desc = bp1_yearly.9022.desc.hashishiyah } triggered_desc = { trigger = { has_trait = drunkard } desc = bp1_yearly.9022.desc.drunkard } triggered_desc = { trigger = { has_trait = rakish } desc = bp1_yearly.9022.desc.rakish } triggered_desc = { trigger = { has_trait = comfort_eater } desc = bp1_yearly.9022.desc.comfort_eater } triggered_desc = { trigger = { has_trait = inappetetic } desc = bp1_yearly.9022.desc.inappetetic } triggered_desc = { trigger = { has_trait = flagellant } desc = bp1_yearly.9022.desc.flagellant } triggered_desc = { trigger = { has_trait = reclusive } desc = bp1_yearly.9022.desc.reclusive } } desc = bp1_yearly.9022.desc.outro } theme = family override_background = bedchamber left_portrait = { character = root animation = paranoia } right_portrait = { character = scope:bp1_yearly_9022_friend animation = personality_compassionate } trigger = { has_dlc_feature = friends_and_foes is_available_at_peace_adult = yes NOT = { has_character_flag = had_event_bp1_yearly_9022 } OR = { has_trait = hashishiyah has_trait = drunkard has_trait = rakish has_trait = comfort_eater has_trait = inappetetic has_trait = flagellant has_trait = reclusive } any_relation = { type = friend is_available_at_peace_ai_adult = yes OR = { has_trait = compassionate ai_compassion >= 50 } } } weight_multiplier = { base = 1 } immediate = { random_relation = { type = friend limit = { is_available_at_peace_ai_adult = yes OR = { has_trait = compassionate ai_compassion >= 50 } } save_scope_as = bp1_yearly_9022_friend } } option = { # Attempt to give up your vice name = bp1_yearly.9022.a if = { limit = { NOT = { has_relation_best_friend = scope:bp1_yearly_9022_friend } } set_relation_best_friend = { reason = best_friend_help_overcome_vice copy_reason = friend target = scope:bp1_yearly_9022_friend } } duel = { skill = diplomacy # A battle of willpower target = scope:bp1_yearly_9022_friend 50 = { compare_modifier = { value = scope:duel_value multiplier = 2.5 } stress_impact = { base = medium_stress_impact_gain arrogant = medium_stress_impact_gain } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -2.5 } if = { limit = { has_trait = hashishiyah } remove_trait = hashishiyah } else_if = { limit = { has_trait = drunkard } remove_trait = drunkard } else_if = { limit = { has_trait = rakish } remove_trait = rakish } else_if = { limit = { has_trait = comfort_eater } remove_trait = comfort_eater } else_if = { limit = { has_trait = inappetetic } remove_trait = inappetetic } else_if = { limit = { has_trait = flagellant } remove_trait = flagellant } else_if = { limit = { has_trait = reclusive } remove_trait = reclusive } create_character_memory = { type = lost_my_addiction_memory participants = { interventioner = scope:bp1_yearly_9022_friend } } stress_impact = { base = major_stress_impact_gain arrogant = major_stress_impact_gain } } } ai_chance = { base = 10 modifier = { factor = 0 has_trait = arrogant } } } option = { # What is this? Get out! name = bp1_yearly.9022.b reverse_add_opinion = { target = scope:bp1_yearly_9022_friend modifier = disappointed_opinion opinion = -25 } stress_impact = { humble = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 has_trait = humble } } } after = { add_character_flag = had_event_bp1_yearly_9022 } } ################################################# # You realise you don't speak the same language # # by James Beaumont # # 9023 # ################################################# bp1_yearly.9023 = { type = character_event content_source = dlc_006 title = bp1_yearly.9023.t desc = bp1_yearly.9023.desc theme = diplomacy override_background = feast left_portrait = { character = root animation = beg } right_portrait = { character = scope:bp1_yearly_9023_friend animation = rage } trigger = { has_dlc_feature = friends_and_foes is_available_at_peace_adult = yes NOT = { has_character_flag = had_event_bp1_yearly_9023 } any_relation = { type = friend is_available_at_peace_ai_adult = yes NOT = { knows_language_of_culture = root.culture } NOT = { root = { knows_language_of_culture = prev.culture } } NOT = { any_scheme = { type = learn_language } } } NOT = { any_scheme = { type = learn_language } } } weight_multiplier = { base = 1 } immediate = { random_relation = { type = friend limit = { is_available_at_peace_ai_adult = yes NOT = { knows_language_of_culture = root.culture } NOT = { root = { knows_language_of_culture = prev.culture } } } save_scope_as = bp1_yearly_9023_friend } set_variable = { name = wrong_language_friend value = scope:bp1_yearly_9023_friend } } option = { # Uhhhh... como te llamas? name = bp1_yearly.9023.a duel = { skill = diplomacy target = scope:bp1_yearly_9023_friend 50 = { compare_modifier = { value = scope:duel_value multiplier = 2.5 } reverse_add_opinion = { target = scope:bp1_yearly_9023_friend modifier = flattered_opinion opinion = 5 } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -2.5 } progress_towards_rival_effect = { REASON = rival_linguistic_mishap CHARACTER = scope:bp1_yearly_9023_friend OPINION = default_rival_opinion } } } stress_impact = { diligent = major_stress_impact_gain compassionate = major_stress_impact_gain gregarious = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = diligent has_trait = compassionate has_trait = gregarious has_trait = shy } } } } option = { # Maybe I should learn their language name = bp1_yearly.9023.b start_scheme = { type = learn_language target_character = scope:bp1_yearly_9023_friend } stress_impact = { lazy = major_stress_impact_gain shy = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = lazy has_trait = shy } } } } option = { # Maybe they should learn my language! name = bp1_yearly.9023.c trigger = { has_trait = lazy } duel = { skill = diplomacy target = scope:bp1_yearly_9023_friend 50 = { compare_modifier = { value = scope:duel_value multiplier = 2.5 } scope:bp1_yearly_9023_friend = { start_scheme = { type = learn_language target_character = root } } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -2.5 } progress_towards_rival_effect = { REASON = rival_linguistic_request CHARACTER = scope:bp1_yearly_9023_friend OPINION = default_rival_opinion } } } stress_impact = { diligent = major_stress_impact_gain compassionate = major_stress_impact_gain gregarious = major_stress_impact_gain just = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 2 has_trait = lazy } } } after = { add_character_flag = had_event_bp1_yearly_9023 } } ################################################# # A friend visits you while you're sick # # by James Beaumont # # 9024 # ################################################# bp1_yearly.9024 = { type = character_event content_source = dlc_006 title = bp1_yearly.9024.t desc = bp1_yearly.9024.desc theme = diplomacy override_background = feast left_portrait = { character = root animation = sick } right_portrait = { character = scope:bp1_yearly_9024_friend animation = personality_compassionate } trigger = { has_dlc_feature = friends_and_foes is_available_at_peace_adult = yes has_short_disease_trigger = yes any_relation = { type = friend is_available_at_peace_ai_adult = yes OR = { has_trait = compassionate has_trait = diligent has_trait = trusting } } NOT = { has_character_modifier = bp1_sickness_being_doted_on } } weight_multiplier = { base = 1 } immediate = { random_relation = { type = friend limit = { is_available_at_peace_ai_adult = yes OR = { has_trait = compassionate has_trait = diligent has_trait = trusting } } save_scope_as = bp1_yearly_9024_friend } } option = { # Relax name = bp1_yearly.9024.a add_character_modifier = { modifier = bp1_sickness_being_doted_on years = 5 } if = { limit = { NOR = { has_trait = diligent has_trait = paranoid } } stress_impact = { base = major_stress_impact_loss } } stress_impact = { shy = major_stress_impact_gain diligent = major_stress_impact_gain paranoid = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = diligent has_trait = paranoid } } } } option = { # Tell them to leave you alone name = bp1_yearly.9024.b trigger = { OR = { has_trait = diligent has_trait = shy has_trait = paranoid } } progress_towards_rival_effect = { REASON = rival_told_to_go_away CHARACTER = scope:bp1_yearly_9024_friend OPINION = default_rival_opinion } stress_impact = { trusting = major_stress_impact_gain lazy = major_stress_impact_gain gregarious = major_stress_impact_gain compassionate = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = trusting has_trait = lazy has_trait = gregarious has_trait = compassionate } } } } } ################################################# # You realise you hate your friend # # by James Beaumont # # 9025 # ################################################# bp1_yearly.9025 = { type = character_event content_source = dlc_006 title = bp1_yearly.9025.t desc = bp1_yearly.9025.desc theme = friendly left_portrait = { character = root animation = disapproval } right_portrait = { character = scope:bp1_yearly_9025_friend animation = happiness } trigger = { has_dlc_feature = friends_and_foes is_available_at_peace_adult = yes exists = var:wrong_language_friend has_relation_friend = var:wrong_language_friend # You now know a common language OR = { knows_language_of_culture = var:wrong_language_friend.culture var:wrong_language_friend = { knows_language_of_culture = root.culture } } var:wrong_language_friend = { is_available_ai_adult = yes } # You have a reason to hate them number_of_opposing_personality_traits = { target = var:wrong_language_friend value >= 1 } } weight_multiplier = { base = 1 } immediate = { var:wrong_language_friend = { save_scope_as = bp1_yearly_9025_friend } } option = { # Wow, I hate this guy! name = bp1_yearly.9025.a downgrade_to_rival_effect = { CHARACTER = scope:bp1_yearly_9025_friend REASON = rival_better_understanding } stress_impact = { gregarious = major_stress_impact_gain trusting = major_stress_impact_gain loyal = major_stress_impact_gain compassionate = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = gregarious has_trait = trusting #has_trait = loyal has_trait = compassionate } } } } option = { # Try to fix the relationship name = bp1_yearly.9025.b duel = { skill = diplomacy target = scope:bp1_yearly_9025_friend 50 = { compare_modifier = { value = scope:duel_value multiplier = 2.5 } progress_towards_friend_effect = { CHARACTER = scope:bp1_yearly_9025_friend OPINION = default_friend_opinion REASON = friend_fix_relationship_success } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -2.5 } progress_towards_rival_effect = { REASON = rival_fix_relationship_fail CHARACTER = scope:bp1_yearly_9025_friend OPINION = default_rival_opinion } } } stress_impact = { base = major_stress_impact_gain shy = major_stress_impact_gain lazy = medium_stress_impact_gain arrogant = medium_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = shy has_trait = lazy has_trait = arrogant } } } } after = { remove_variable = wrong_language_friend } } ################################################# # Totally not Marley's ghost # # by James Beaumont # # 9026 # ################################################# bp1_yearly.9026 = { type = character_event content_source = dlc_006 title = bp1_yearly.9026.t desc = { desc = bp1_yearly.9026.desc.intro first_valid = { triggered_desc = { trigger = { any_secret = { type = secret_murder } exists = scope:bp1_yearly_9026_murder_victim } desc = bp1_yearly.9026.desc.secret_murderer } triggered_desc = { trigger = { has_trait = murderer exists = scope:bp1_yearly_9026_murder_victim } desc = bp1_yearly.9026.desc.murderer } triggered_desc = { trigger = { exists = scope:bp1_yearly_9026_murder_victim } desc = bp1_yearly.9026.desc.killer } # Traits should be in descending order of severity. These should largely be sins that are very directly harmful to others. Greedy, wrathful, etc should be high while lustful and gluttonous should be low. # High impact sins triggered_desc = { trigger = { has_trait = greedy faith = { trait_is_sin = greedy } } desc = bp1_yearly.9026.desc.greedy } triggered_desc = { trigger = { has_trait = wrathful faith = { trait_is_sin = wrathful } } desc = bp1_yearly.9026.desc.wrathful } triggered_desc = { trigger = { has_trait = torturer faith = { trait_is_sin = deceitful } # We don't make lifestyle traits sins/virtues so best to check an adjacent trait } desc = bp1_yearly.9026.desc.torturer } triggered_desc = { trigger = { has_trait = arbitrary faith = { trait_is_sin = arbitrary } } desc = bp1_yearly.9026.desc.arbitrary } triggered_desc = { # Let's assume callous is basically always bad trigger = { has_trait = callous NOT = { faith = { trait_is_virtue = callous } } } desc = bp1_yearly.9026.desc.callous } triggered_desc = { # Same for sadistic trigger = { has_trait = sadistic NOT = { faith = { trait_is_virtue = sadistic } } } desc = bp1_yearly.9026.desc.sadistic } triggered_desc = { trigger = { has_trait = vengeful faith = { trait_is_sin = vengeful } } desc = bp1_yearly.9026.desc.vengeful } # Medium impact sins triggered_desc = { trigger = { has_trait = deceitful faith = { trait_is_sin = deceitful } } desc = bp1_yearly.9026.desc.deceitful } triggered_desc = { trigger = { has_trait = impatient faith = { trait_is_sin = impatient } } desc = bp1_yearly.9026.desc.impatient } triggered_desc = { trigger = { has_trait = arrogant faith = { trait_is_sin = arrogant } } desc = bp1_yearly.9026.desc.arrogant } triggered_desc = { trigger = { has_trait = craven faith = { trait_is_sin = craven } } desc = bp1_yearly.9026.desc.craven } triggered_desc = { trigger = { has_trait = ambitious faith = { trait_is_sin = ambitious } } desc = bp1_yearly.9026.desc.ambitious } triggered_desc = { trigger = { has_trait = lazy faith = { trait_is_sin = lazy } } desc = bp1_yearly.9026.desc.lazy } # Low impact sins triggered_desc = { trigger = { has_trait = cynical faith = { trait_is_sin = cynical } } desc = bp1_yearly.9026.desc.cynical } triggered_desc = { trigger = { has_trait = shy faith = { trait_is_sin = shy } } desc = bp1_yearly.9026.desc.shy } triggered_desc = { trigger = { has_trait = gluttonous faith = { trait_is_sin = gluttonous } } desc = bp1_yearly.9026.desc.gluttonous } triggered_desc = { trigger = { has_trait = lustful faith = { trait_is_sin = lustful } } desc = bp1_yearly.9026.desc.lustful } triggered_desc = { trigger = { has_trait = temperate faith = { trait_is_sin = temperate } } desc = bp1_yearly.9026.desc.temperate } triggered_desc = { trigger = { has_trait = chaste faith = { trait_is_sin = chaste } } desc = bp1_yearly.9026.desc.chaste } triggered_desc = { trigger = { has_trait = honest faith = { trait_is_sin = honest } } desc = bp1_yearly.9026.desc.honest } desc = bp1_yearly.9026.desc.fallback } desc = bp1_yearly.9026.desc.outro } theme = skull override_background = corridor_night left_portrait = { character = root animation = lantern outfit_tags = { nightgown } } right_portrait = { character = scope:bp1_yearly_9026_dead_friend animation = laugh animate_if_dead = yes } trigger = { has_dlc_feature = friends_and_foes is_available_at_peace_adult = yes NOT = { has_character_flag = had_event_bp1_yearly_9026 } OR = { any_killed_character = { } num_sinful_traits >= 1 AND = { has_trait = sadistic NOT = { faith = { trait_is_virtue = sadistic } } } AND = { has_trait = callous NOT = { faith = { trait_is_virtue = callous } } } } any_memory = { memory_type = friend_died } } immediate = { if = { limit = { any_killed_character = { } } if = { limit = { any_secret = { type = secret_murder } } random_secret = { type = secret_murder secret_target = { save_scope_as = bp1_yearly_9026_murder_victim } } } else_if = { limit = { has_trait = murderer any_killed_character = { death_reason = death_murder } } random_killed_character = { limit = { death_reason = death_murder } save_scope_as = bp1_yearly_9026_murder_victim } } else = { random_killed_character = { save_scope_as = bp1_yearly_9026_murder_victim } } } random_memory = { memory_type = friend_died limit = { exists = memory_participant:dead_relation } save_scope_as = dead_friend_memory memory_participant:dead_relation = { save_scope_as = bp1_yearly_9026_dead_friend } } create_story = story_being_visited_by_angry_ghosts random_owned_story = { type = story_being_visited_by_angry_ghosts set_variable = { name = first_ghost value = scope:bp1_yearly_9026_dead_friend } set_variable = { name = good_deeds value = 0 } save_scope_as = marley_story_cycle_scope } create_character_memory = { type = haunted_by_a_friend_memory participants = { dead_relation = scope:bp1_yearly_9026_dead_friend } } } option = { # I repent! I repent! name = bp1_yearly.9026.a add_piety = medium_piety_gain bp1_yearly_9026_determine_sin_and_virtue = yes stress_impact = { base = major_stress_impact_gain arrogant = major_stress_impact_gain cynical = major_stress_impact_gain zealous = major_stress_impact_loss } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = arrogant has_trait = cynical } } } } option = { # There's more of gravy than of grave about you! name = bp1_yearly.9026.b duel = { skill = learning target = scope:bp1_yearly_9026_dead_friend 50 = { compare_modifier = { value = scope:duel_value multiplier = 2.5 } stress_impact = { cynical = major_stress_impact_loss } scope:marley_story_cycle_scope = { end_story = yes } custom_tooltip = end_marley_ghost_story_tt } 50 = { compare_modifier = { value = scope:duel_value multiplier = -2.5 } add_piety = medium_piety_loss bp1_yearly_9026_determine_sin_and_virtue = yes } } stress_impact = { base = minor_stress_impact_gain zealous = major_stress_impact_gain just = medium_stress_impact_gain compassionate = medium_stress_impact_gain humble = medium_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = zealous has_trait = just has_trait = compassionate } } } } after = { add_character_flag = had_event_bp1_yearly_9026 } } # Your act of repentance: generosity bp1_yearly.9027 = { type = character_event content_source = dlc_006 title = bp1_yearly.9027.t desc = { desc = bp1_yearly.9027.desc.intro first_valid = { triggered_desc = { trigger = { has_trait = greedy faith = { trait_is_sin = greedy } } desc = bp1_yearly.9027.desc.greedy } desc = bp1_yearly.9027.desc.fallback } desc = bp1_yearly.9027.desc.outro } theme = stewardship override_background = market left_portrait = { character = root animation = stress } right_portrait = { character = scope:bp1_yearly_9027_peasant_begger animation = beg } trigger = { is_available_at_peace_adult = yes has_character_flag = had_event_bp1_yearly_9026 NOT = { has_character_flag = had_event_bp1_yearly_9027 } } immediate = { create_character = { template = generic_peasant_character location = root.capital_province save_scope_as = bp1_yearly_9027_peasant_begger } random_owned_story = { type = story_being_visited_by_angry_ghosts var:first_ghost = { save_scope_as = bp1_yearly_9027_dead_friend } } } option = { # Stay true to your repentance name = bp1_yearly.9027.a remove_short_term_gold = medium_gold_value add_piety = medium_piety_gain root.capital_county = { add_county_modifier = { modifier = invested_in_province_modifier years = 5 } } # For determining final event bp1_increase_good_deeds = yes stress_impact = { arrogant = medium_stress_impact_gain greedy = major_stress_impact_gain cynical = major_stress_impact_gain zealous = major_stress_impact_loss } ai_chance = { base = 10 modifier = { short_term_gold < medium_gold_value factor = 0 } modifier = { factor = 0 OR = { has_trait = arrogant has_trait = greedy has_trait = cynical } } } } option = { # Take advantage of their desperate situation name = bp1_yearly.9027.b trigger = { OR = { has_trait = greedy has_trait = callous } } remove_short_term_gold = minor_gold_value add_piety = medium_piety_loss root.capital_county = { add_county_modifier = { modifier = exploitative_lord_modifier years = 5 } } # For determining final event bp1_decrease_good_deeds = yes stress_impact = { just = medium_stress_impact_gain humble = medium_stress_impact_gain compassionate = major_stress_impact_gain generous = massive_stress_impact_gain } ai_chance = { base = 10 modifier = { short_term_gold < minor_gold_value factor = 0 } modifier = { factor = 0 OR = { has_trait = just has_trait = compassionate has_trait = humble has_trait = generous } } } } option = { # You want HOW much?? name = bp1_yearly.9027.c add_piety = medium_piety_loss stress_impact = { just = medium_stress_impact_gain compassionate = medium_stress_impact_gain humble = medium_stress_impact_gain generous = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = just has_trait = compassionate has_trait = humble has_trait = generous } } } } after = { add_character_flag = had_event_bp1_yearly_9027 scope:bp1_yearly_9027_peasant_begger = { silent_disappearance_effect = yes } } } # Ghostly visit: rival bp1_yearly.9028 = { type = character_event content_source = dlc_006 title = bp1_yearly.9028.t desc = { desc = bp1_yearly.9028.desc.intro first_valid = { triggered_desc = { trigger = { any_killed_character = { this = scope:bp1_yearly_9028_dead_rival } } desc = bp1_yearly.9028.desc.murderer } desc = bp1_yearly.9028.desc.murderer.fallback } first_valid = { triggered_desc = { trigger = { OR = { has_trait = callous has_trait = sadistic has_trait = vengeful } } desc = bp1_yearly.9028.desc.callous } desc = bp1_yearly.9028.desc.fallback } desc = bp1_yearly.9028.desc.outro } theme = skull override_background = corridor_night left_portrait = { character = root animation = fear outfit_tags = { nightgown } } right_portrait = { character = scope:bp1_yearly_9028_dead_rival animation = anger animate_if_dead = yes } trigger = { is_available_at_peace_adult = yes has_character_flag = had_event_bp1_yearly_9027 NOT = { has_character_flag = had_event_bp1_yearly_9028 } OR = { any_memory = { memory_type = rival_died memory_participant:dead_relation = { any_close_or_extended_family_member = { is_alive = yes } } } any_memory = { memory_type = successful_murder memory_participant:victim = { any_close_or_extended_family_member = { is_alive = yes } } } } any_owned_story = { type = story_being_visited_by_angry_ghosts NOT = { exists = var:second_ghost } } } immediate = { if = { limit = { any_memory = { memory_type = rival_died memory_participant:dead_relation = { any_close_or_extended_family_member = { is_alive = yes } } } } random_memory = { memory_type = rival_died save_scope_as = dead_rival_memory memory_participant:dead_relation = { save_scope_as = bp1_yearly_9028_dead_rival } } } else_if = { limit = { any_memory = { memory_type = successful_murder memory_participant:victim = { any_close_or_extended_family_member = { is_alive = yes } } } } random_memory = { memory_type = successful_murder save_scope_as = dead_rival_memory memory_participant:victim = { save_scope_as = bp1_yearly_9028_dead_rival } } } random_owned_story = { type = story_being_visited_by_angry_ghosts set_variable = { name = second_ghost value = scope:bp1_yearly_9028_dead_rival } } create_character_memory = { type = haunted_by_a_rival_memory participants = { dead_relation = scope:bp1_yearly_9028_dead_rival } } } option = { # I repent! I repent! name = bp1_yearly.9028.a add_piety = medium_piety_gain add_character_flag = had_event_bp1_promised_to_ammend_rivalry bp1_increase_good_deeds = yes stress_impact = { arrogant = medium_stress_impact_gain vengeful = major_stress_impact_gain zealous = minor_stress_impact_loss forgiving = minor_stress_impact_loss } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = arrogant has_trait = vengeful has_trait = cynical } } } } option = { # Not a chance! name = bp1_yearly.9028.b bp1_decrease_good_deeds = yes stress_impact = { zealous = major_stress_impact_gain just = medium_stress_impact_gain compassionate = medium_stress_impact_gain humble = medium_stress_impact_gain forgiving = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = zealous has_trait = just has_trait = compassionate has_trait = forgiving } } } } after = { add_character_flag = had_event_bp1_yearly_9028 } } # Ghostly visit: parent bp1_yearly.9029 = { type = character_event content_source = dlc_006 title = bp1_yearly.9029.t desc = { desc = bp1_yearly.9029.desc.intro first_valid = { triggered_desc = { trigger = { any_sibling = { any_parent = { this = scope:bp1_yearly_9029_dead_parent } has_relation_rival = root } } desc = bp1_yearly.9029.desc.rival_sibling } triggered_desc = { trigger = { any_sibling = { has_relation_rival = root } } desc = bp1_yearly.9029.desc.rival_sibling_unrelated } triggered_desc = { trigger = { any_relation = { type = rival } } desc = bp1_yearly.9029.desc.rival } } desc = bp1_yearly.9029.desc.outro } theme = skull override_background = corridor_night left_portrait = { character = root animation = shock outfit_tags = { nightgown } } right_portrait = { character = scope:bp1_yearly_9029_dead_parent animation = personality_compassionate animate_if_dead = yes } trigger = { is_available_at_peace_adult = yes has_character_flag = had_event_bp1_yearly_9027 NOT = { has_character_flag = had_event_bp1_yearly_9029 } any_parent = { even_if_dead = yes is_alive = no } any_relation = { type = rival } any_owned_story = { type = story_being_visited_by_angry_ghosts NOT = { exists = var:second_ghost } } } immediate = { random_parent = { even_if_dead = yes limit = { is_alive = no } save_scope_as = bp1_yearly_9029_dead_parent } if = { limit = { any_sibling = { any_parent = { this = scope:bp1_yearly_9029_dead_parent } has_relation_rival = root } } random_sibling = { limit = { any_parent = { this = scope:bp1_yearly_9029_dead_parent } has_relation_rival = root } save_scope_as = bp1_yearly_9029_rival } } else_if = { limit = { any_sibling = { has_relation_rival = root } } random_sibling = { limit = { has_relation_rival = root } save_scope_as = bp1_yearly_9029_rival } } else_if = { limit = { any_relation = { type = rival } } random_relation = { type = rival save_scope_as = bp1_yearly_9029_rival } } create_character_memory = { type = haunted_by_parent_memory participants = { dead_relation = scope:bp1_yearly_9029_dead_parent } } } option = { # I'll go be nice to my rival name = bp1_yearly.9029.a add_piety = medium_piety_gain random_owned_story = { type = story_being_visited_by_angry_ghosts set_variable = { name = second_ghost value = scope:bp1_yearly_9029_dead_parent } set_variable = { name = rival_ammends value = scope:bp1_yearly_9029_rival } } stress_impact = { arrogant = medium_stress_impact_gain vengeful = major_stress_impact_gain zealous = minor_stress_impact_loss forgiving = minor_stress_impact_loss } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = arrogant has_trait = vengeful } } } } option = { # Not a chance! name = bp1_yearly.9029.b random_owned_story = { type = story_being_visited_by_angry_ghosts set_variable = { name = second_ghost value = scope:bp1_yearly_9029_dead_parent } } bp1_decrease_good_deeds = yes stress_impact = { zealous = major_stress_impact_gain just = medium_stress_impact_gain compassionate = medium_stress_impact_gain humble = medium_stress_impact_gain forgiving = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = zealous has_trait = just has_trait = compassionate has_trait = forgiving } } } } after = { add_character_flag = had_event_bp1_yearly_9029 } } # Ghostly visit: dead friend again bp1_yearly.9030 = { type = character_event content_source = dlc_006 title = bp1_yearly.9030.t desc = { desc = bp1_yearly.9030.desc.intro first_valid = { triggered_desc = { trigger = { #Check Pilgrimage triggers is_available_adult = yes is_at_war = no is_landed = yes faith = { NOT = { has_doctrine_parameter = forbidden_from_pilgrimage } any_holy_site = { exists = this } } #Check if all of your holy sites are on cooldown trigger_if = { limit = { any_memory = { has_variable = pilgrimage_destination memory_age_years < 5 } } faith = { any_holy_site = { save_temporary_scope_as = site_check NOT = { root = { any_memory = { has_variable = pilgrimage_destination memory_age_years < 5 var:pilgrimage_destination.barony = scope:site_check } } } add_to_temporary_list = holy_sites_not_on_cooldown } } any_in_list = { list = holy_sites_not_on_cooldown count > 0 } } trigger_else = { always = yes } } desc = bp1_yearly.9030.desc.pilgrimage } desc = bp1_yearly.9030.desc.fallback } } theme = skull override_background = corridor_night left_portrait = { character = root animation = beg outfit_tags = { nightgown } } right_portrait = { character = scope:bp1_yearly_9026_dead_friend animation = anger animate_if_dead = yes } trigger = { is_available_at_peace_adult = yes has_character_flag = had_event_bp1_yearly_9027 NOT = { has_character_flag = had_event_bp1_yearly_9030 } any_owned_story = { type = story_being_visited_by_angry_ghosts NOT = { exists = var:second_ghost } } } immediate = { random_owned_story = { type = story_being_visited_by_angry_ghosts var:first_ghost = { save_scope_as = bp1_yearly_9026_dead_friend } set_variable = { name = second_ghost value = scope:bp1_yearly_9026_dead_friend } } } option = { # I'll go on pilgrimage/become a big charity guy name = bp1_yearly.9030.a if = { limit = { #Only one modifier for _you_ NOR = { has_character_modifier = ghost_pilgrimage_promised_modifier has_character_modifier = hajj_promised_modifier has_character_modifier = pilgrimage_promised_modifier } #Check Pilgrimage triggers is_available_adult = yes is_at_war = no is_landed = yes faith = { NOT = { has_doctrine_parameter = forbidden_from_pilgrimage } any_holy_site = { exists = this } } #Check if all of your holy sites are on cooldown trigger_if = { limit = { any_memory = { has_variable = pilgrimage_destination memory_age_years < 5 } } faith = { any_holy_site = { save_temporary_scope_as = site_check NOT = { root = { any_memory = { has_variable = pilgrimage_destination memory_age_years < 5 var:pilgrimage_destination.barony = scope:site_check } } } add_to_temporary_list = holy_sites_not_on_cooldown } } any_in_list = { list = holy_sites_not_on_cooldown count > 0 } } trigger_else = { always = yes } } custom_tooltip = { text = bp1_yearly.9030.a.tt_pilgrimage add_character_modifier = ghost_pilgrimage_promised_modifier } } else = { add_trait = profligate remove_short_term_gold = medium_gold_value add_stress = medium_stress_loss } bp1_increase_good_deeds = yes stress_impact = { arrogant = medium_stress_impact_gain vengeful = major_stress_impact_gain zealous = minor_stress_impact_loss forgiving = minor_stress_impact_loss } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = arrogant has_trait = vengeful } } } } option = { # Not a chance! name = bp1_yearly.9030.b bp1_decrease_good_deeds = yes stress_impact = { zealous = major_stress_impact_gain just = medium_stress_impact_gain compassionate = medium_stress_impact_gain humble = medium_stress_impact_gain forgiving = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = zealous has_trait = just has_trait = compassionate has_trait = forgiving } } } } after = { add_character_flag = had_event_bp1_yearly_9030 } } # Redemption: making ammends with rival's family bp1_yearly.9031 = { type = character_event content_source = dlc_006 title = bp1_yearly.9031.t desc = { desc = bp1_yearly.9031.desc.intro first_valid = { triggered_desc = { trigger = { scope:bp1_yearly_9031_rival_family = { OR = { has_trait = sadistic has_trait = torturer has_trait = flagellant } } } desc = bp1_yearly.9031.desc.flagellant } triggered_desc = { trigger = { scope:bp1_yearly_9031_rival_family = { OR = { has_trait = vengeful has_trait = just has_trait = zealous } } } desc = bp1_yearly.9031.desc.debate } triggered_desc = { trigger = { scope:bp1_yearly_9031_rival_family = { OR = { has_trait = lazy has_trait = arbitrary } } } desc = bp1_yearly.9031.desc.cleanup } triggered_desc = { trigger = { scope:bp1_yearly_9031_rival_family = { has_trait = forgiving } } desc = bp1_yearly.9031.desc.unconditional } desc = bp1_yearly.9031.desc.fallback } } theme = skull override_background = corridor_night left_portrait = { character = root animation = beg } right_portrait = { character = scope:bp1_yearly_9031_rival_family animation = anger } trigger = { is_available_at_peace_adult = yes has_character_flag = had_event_bp1_yearly_9028 any_owned_story = { type = story_being_visited_by_angry_ghosts exists = var:second_ghost var:second_ghost = { any_close_or_extended_family_member = { } } } has_character_flag = had_event_bp1_promised_to_ammend_rivalry } immediate = { random_owned_story = { type = story_being_visited_by_angry_ghosts var:second_ghost = { save_scope_as = bp1_yearly_9031_rival random_close_or_extended_family_member = { save_scope_as = bp1_yearly_9031_rival_family } } } } option = { # Grit my teeth and apologise name = { trigger = { scope:bp1_yearly_9031_rival_family = { has_trait = forgiving } } text = bp1_yearly.9031.a.forgiven } name = bp1_yearly.9031.a bp1_increase_good_deeds = yes progress_towards_friend_effect = { CHARACTER = scope:bp1_yearly_9031_rival_family OPINION = default_friend_opinion REASON = friend_forgiven_transgression } if = { limit = { scope:bp1_yearly_9031_rival_family = { OR = { has_trait = sadistic has_trait = torturer has_trait = flagellant } } } increase_wounds_effect = { REASON = whipping } } else_if = { limit = { scope:bp1_yearly_9031_rival_family = { OR = { has_trait = vengeful has_trait = just has_trait = zealous } } } duel = { skill = learning target = scope:bp1_yearly_9031_rival_family 50 = { compare_modifier = { value = scope:duel_value multiplier = 2.5 } add_piety = medium_piety_gain progress_towards_friend_effect = { CHARACTER = scope:bp1_yearly_9031_rival_family OPINION = default_friend_opinion REASON = friend_debate_win } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -2.5 } add_piety = medium_piety_loss } } } else_if = { limit = { scope:bp1_yearly_9031_rival_family = { NOT = { has_trait = forgiving } } NOT = { has_trait = humble } } add_prestige = medium_prestige_loss } stress_impact = { base = medium_stress_impact_loss arrogant = medium_stress_impact_gain vengeful = major_stress_impact_gain zealous = minor_stress_impact_loss forgiving = medium_stress_impact_loss } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = arrogant has_trait = vengeful } } } } option = { # I will not grovel! name = { trigger = { scope:bp1_yearly_9031_rival_family = { has_trait = forgiving } } text = bp1_yearly.9031.b.forgiven } name = bp1_yearly.9031.b bp1_decrease_good_deeds = yes progress_towards_rival_effect = { REASON = rival_not_grovel CHARACTER = scope:bp1_yearly_9031_rival_family OPINION = default_rival_opinion } stress_impact = { zealous = major_stress_impact_gain just = medium_stress_impact_gain compassionate = medium_stress_impact_gain humble = medium_stress_impact_gain forgiving = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = zealous has_trait = just has_trait = compassionate has_trait = forgiving } } } } after = { add_character_flag = had_event_bp1_yearly_9031 } } # Redemption: making ammends with rival bp1_yearly.9032 = { type = character_event content_source = dlc_006 title = bp1_yearly.9032.t desc = bp1_yearly.9032.desc theme = skull override_background = corridor_night left_portrait = { character = root animation = beg } right_portrait = { character = scope:bp1_yearly_9032_rival animation = anger } trigger = { is_available_at_peace_adult = yes has_character_flag = had_event_bp1_yearly_9028 any_owned_story = { type = story_being_visited_by_angry_ghosts exists = var:second_ghost exists = var:rival_ammends } } immediate = { random_owned_story = { type = story_being_visited_by_angry_ghosts var:rival_ammends = { save_scope_as = bp1_yearly_9032_rival } } } option = { # Grit my teeth and apologise name = bp1_yearly.9032.a bp1_increase_good_deeds = yes progress_towards_friend_effect = { CHARACTER = scope:bp1_yearly_9032_rival OPINION = default_friend_opinion REASON = friend_apologise } stress_impact = { base = medium_stress_impact_loss arrogant = medium_stress_impact_gain vengeful = major_stress_impact_gain zealous = minor_stress_impact_loss forgiving = medium_stress_impact_loss } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = arrogant has_trait = vengeful } } } } option = { # I will not grovel! name = bp1_yearly.9032.b bp1_decrease_good_deeds = yes progress_towards_rival_effect = { REASON = rival_not_grovel CHARACTER = scope:bp1_yearly_9032_rival OPINION = default_rival_opinion } scope:bp1_yearly_9032_rival = { increase_wounds_effect = { REASON = fight } } stress_impact = { zealous = major_stress_impact_gain just = medium_stress_impact_gain compassionate = medium_stress_impact_gain humble = medium_stress_impact_gain forgiving = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = zealous has_trait = just has_trait = compassionate has_trait = forgiving } } } } after = { add_character_flag = had_event_bp1_yearly_9032 } } # Ending event, first ghost tells you how you did bp1_yearly.9033 = { type = character_event content_source = dlc_006 title = bp1_yearly.9033.t desc = { desc = bp1_yearly.9033.desc.intro first_valid = { triggered_desc = { trigger = { scope:ghost_story_scope = { var:good_deeds >= 1 } } desc = bp1_yearly.9033.desc.did_well } triggered_desc = { trigger = { scope:ghost_story_scope = { var:good_deeds <= 0 } } desc = bp1_yearly.9033.desc.did_bad } desc = bp1_yearly.9033.desc.did_okay } desc = bp1_yearly.9033.desc.outro } theme = skull override_background = corridor_night left_portrait = { character = root animation = beg outfit_tags = { nightgown } } right_portrait = { character = scope:bp1_yearly_9026_dead_friend triggered_animation = { trigger = { scope:ghost_story_scope = { var:good_deeds <= 0 } } animation = anger } triggered_animation = { trigger = { scope:ghost_story_scope = { var:good_deeds > 0 } } animation = personality_compassionate } animate_if_dead = yes } trigger = { is_available_at_peace_adult = yes OR = { has_character_flag = had_event_bp1_yearly_9030 has_character_flag = had_event_bp1_yearly_9031 has_character_flag = had_event_bp1_yearly_9032 } any_owned_story = { type = story_being_visited_by_angry_ghosts exists = var:second_ghost } } immediate = { random_owned_story = { type = story_being_visited_by_angry_ghosts save_scope_as = ghost_story_scope var:first_ghost = { save_scope_as = bp1_yearly_9026_dead_friend } } } option = { # I did it! name = bp1_yearly.9033.a trigger = { scope:ghost_story_scope = { var:good_deeds > 0 } } add_piety = medium_piety_gain stress_impact = { base = massive_stress_impact_loss cynical = medium_stress_impact_gain # Offset if you're cynical; you believe it less } } option = { # I failed name = bp1_yearly.9033.b trigger = { scope:ghost_story_scope = { var:good_deeds <= 0 } } add_piety = medium_piety_loss stress_impact = { zealous = major_stress_impact_gain just = medium_stress_impact_gain compassionate = medium_stress_impact_gain humble = medium_stress_impact_gain forgiving = major_stress_impact_gain } } option = { # I will live every day like it's spooky ghost day! name = bp1_yearly.9033.c trigger = { scope:ghost_story_scope = { var:good_deeds > 1 } } add_piety = major_piety_gain if = { limit = { any_owned_story = { type = story_being_visited_by_angry_ghosts var:trait_to_gain = 1 } } if = { limit = { has_trait = greedy } remove_trait = greedy } add_trait = generous } else_if = { limit = { any_owned_story = { type = story_being_visited_by_angry_ghosts var:trait_to_gain = 2 } } if = { limit = { has_trait = vengeful } remove_trait = vengeful } add_trait = forgiving } else_if = { limit = { any_owned_story = { type = story_being_visited_by_angry_ghosts var:trait_to_gain = 3 } } if = { limit = { has_trait = callous } remove_trait = callous } if = { limit = { has_trait = sadistic } remove_trait = sadistic } add_trait = compassionate } stress_impact = { base = medium_stress_impact_gain cynical = medium_stress_impact_gain # Offset if you're cynical; you believe it less } } after = { scope:ghost_story_scope ?= { end_story = yes } } } # End of ghostly visit chain ##################################### # Watery bog witch # # by James Beaumont # # 9034 # ##################################### bp1_yearly.9034 = { type = character_event content_source = dlc_006 title = bp1_yearly.9034.t desc = { desc = bp1_yearly.9034.desc.intro #What text we display depends on the relationship to the child first_valid = { triggered_desc = { trigger = { scope:bp1_yearly_9034_witch = { has_trait = giant } } desc = bp1_yearly.9034.desc.giant } triggered_desc = { trigger = { scope:bp1_yearly_9034_witch = { has_trait = hunchbacked } } desc = bp1_yearly.9034.desc.hunchbacked } triggered_desc = { trigger = { scope:bp1_yearly_9034_witch = { has_trait = beauty_bad } } desc = bp1_yearly.9034.desc.beauty_bad } triggered_desc = { trigger = { scope:bp1_yearly_9034_witch = { has_trait = albino } } desc = bp1_yearly.9034.desc.albino } triggered_desc = { trigger = { scope:bp1_yearly_9034_witch = { has_trait = scaly } } desc = bp1_yearly.9034.desc.scaly } } desc = bp1_yearly.9034.desc.outro } theme = witchcraft override_background = wilderness_wetlands left_portrait = { character = root animation = fear } lower_left_portrait = { character = scope:bp1_yearly_9034_friend animation = fear } right_portrait = { character = scope:bp1_yearly_9034_witch animation = rage } trigger = { has_dlc_feature = friends_and_foes is_available = yes is_adult = no OR = { any_held_county = { county_has_province_with_terrain = { terrain = wetlands } } location = { terrain = wetlands } } any_relation = { type = friend is_adult = no is_available_ai = yes } any_relation = { type = guardian is_available_ai_adult = yes } } weight_multiplier = { base = 1 } immediate = { if = { limit = { any_held_county = { county_has_province_with_terrain = { terrain = wetlands } } } random_held_county = { limit = { county_has_province_with_terrain = { terrain = wetlands } } random_county_province = { limit = { terrain = wetlands } save_scope_as = bp1_yearly_9034_swampy_location } } } else = { location = { save_scope_as = bp1_yearly_9034_swampy_location } } random_relation = { type = friend limit = { is_adult = no is_available_ai = yes } save_scope_as = bp1_yearly_9034_friend } random_relation = { type = guardian limit = { is_available_ai_adult = yes } save_scope_as = bp1_yearly_9034_guardian } create_character = { template = witchy_template random_traits_list = { count = 1 giant = {} hunchbacked = {} beauty_bad_1 = {} beauty_bad_2 = {} beauty_bad_3 = {} albino = {} scaly = {} } location = scope:bp1_yearly_9034_swampy_location save_scope_as = bp1_yearly_9034_witch } } option = { # Run from the horrifying bog witch! name = bp1_yearly.9034.a duel = { skill = prowess target = scope:bp1_yearly_9034_witch 50 = { compare_modifier = { value = scope:duel_value multiplier = 2.5 } send_interface_toast = { title = 9034_escaped_witch left_icon = root right_icon = scope:bp1_yearly_9034_witch } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -1 } send_interface_toast = { title = 9034_failed_to_escape left_icon = root right_icon = scope:bp1_yearly_9034_witch increase_wounds_no_death_effect = { REASON = duel } } } } create_character_memory = { type = chased_by_bog_witch_memory participants = { witch = scope:bp1_yearly_9034_witch } } scope:bp1_yearly_9034_witch = { silent_disappearance_effect = yes } stress_impact = { brave = medium_stress_impact_gain rowdy = medium_stress_impact_gain curious = minor_stress_impact_gain } } option = { # Stand your ground like you're facing down a wolf name = bp1_yearly.9034.b custom_tooltip = { text = bp1_yearly_9034_witchy_goodbad_tt random_list = { # The good witch of the bog 60 = { modifier = { factor = 0 has_trait = wrathful } modifier = { factor = 2 OR = { has_trait = honest has_trait = generous has_trait = forgiving has_trait = calm has_trait = patient } } trigger_event = bp1_yearly.9035 } # The wicked witch of the bog 40 = { modifier = { factor = 0 has_trait = compassionate } modifier = { factor = 0.5 OR = { has_trait = honest has_trait = generous has_trait = forgiving has_trait = calm has_trait = patient } } trigger_event = bp1_yearly.9036 } } } stress_impact = { craven = massive_stress_impact_gain pensive = major_stress_impact_gain bossy = minor_stress_impact_gain zealous = minor_stress_impact_gain } } } # Good witch event bp1_yearly.9035 = { type = character_event content_source = dlc_006 title = bp1_yearly.9035.t desc = bp1_yearly.9035.desc theme = witchcraft override_background = wilderness_wetlands left_portrait = { character = root animation = fear } right_portrait = { character = scope:bp1_yearly_9034_witch animation = personality_forgiving } immediate = { scope:bp1_yearly_9034_witch = { add_trait = lifestyle_herbalist } if = { limit = { employs_court_position = court_physician_court_position } random_court_position_holder = { type = court_physician_court_position save_scope_as = current_physician } } create_character_memory = { type = met_a_nice_witch_memory participants = { witch = scope:bp1_yearly_9034_witch } } } option = { # Employ the witch as your physician name = bp1_yearly.9035.a add_courtier = scope:bp1_yearly_9034_witch court_position_grant_effect = { POS = court_physician CANDIDATE = scope:bp1_yearly_9034_witch EMPLOYER = root } stress_impact = { pensive = major_stress_impact_gain bossy = minor_stress_impact_gain zealous = minor_stress_impact_gain } ai_chance = { base = 30 modifier = { factor = 0 OR = { has_trait = pensive has_trait = bossy has_trait = zealous } } modifier = { factor = 0 employs_court_position = court_physician_court_position } } } option = { # Teach me how to witch name = bp1_yearly.9035.b trigger = { # Only players should be able to override their guardian is_ai = no } add_courtier = scope:bp1_yearly_9034_witch give_witch_secret_or_trait_effect = yes set_relation_guardian = scope:bp1_yearly_9034_witch set_relation_friend = { reason = friend_deviant_fun target = scope:bp1_yearly_9034_witch } stress_impact = { pensive = major_stress_impact_gain bossy = minor_stress_impact_gain zealous = minor_stress_impact_gain } } option = { # kbye name = bp1_yearly.9035.c scope:bp1_yearly_9034_witch = { silent_disappearance_effect = yes } ai_chance = { base = 30 modifier = { factor = 0 NOT = { employs_court_position = court_physician_court_position } } } } } # Evil witch event bp1_yearly.9036 = { type = character_event content_source = dlc_006 title = bp1_yearly.9036.t desc = bp1_yearly.9036.desc theme = witchcraft override_background = wilderness_wetlands left_portrait = { character = root animation = fear } right_portrait = { character = scope:bp1_yearly_9034_witch animation = rage } option = { # Guardian, help me! name = bp1_yearly.9036.a scope:bp1_yearly_9034_guardian = { duel = { skill = prowess target = scope:bp1_yearly_9034_witch 50 = { compare_modifier = { value = scope:duel_value multiplier = 2.5 } root = { send_interface_toast = { title = bp1_yearly.9036.guardian_wins scope:bp1_yearly_9034_guardian = { if = { limit = { can_add_hook = { target = root type = favor_hook } } add_hook = { target = root type = favor_hook } } } } } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -2.5 } root = { send_interface_toast = { title = bp1_yearly.9036.guardian_loses increase_wounds_effect = { REASON = duel } } } } } } create_character_memory = { type = assaulted_by_a_witch_memory participants = { witch = scope:bp1_yearly_9034_witch } } ai_chance = { base = 10 } } } ##################################### # Bog mummy # # by James Beaumont # # 9037 # ##################################### bp1_yearly.9037 = { type = character_event content_source = dlc_006 title = bp1_yearly.9037.t desc = bp1_yearly.9037.desc theme = skull override_background = wilderness_wetlands left_portrait = { character = root animation = fear } right_portrait = { character = scope:bp1_yearly_9037_corpse animation = idle } lower_left_portrait = scope:bp1_yearly_9037_guardian trigger = { has_dlc_feature = friends_and_foes is_available = yes is_adult = no NOT = { has_character_flag = had_event_bp1_yearly_9037 } OR = { any_held_county = { county_has_province_with_terrain = { terrain = wetlands } } location = { terrain = wetlands } } any_relation = { type = guardian is_available_ai_adult = yes } } weight_multiplier = { base = 1 } immediate = { if = { limit = { any_held_county = { county_has_province_with_terrain = { terrain = wetlands } } } random_held_county = { limit = { county_has_province_with_terrain = { terrain = wetlands } } random_county_province = { limit = { terrain = wetlands } save_scope_as = bp1_yearly_9037_swampy_location } } } else = { location = { save_scope_as = bp1_yearly_9037_swampy_location } } random_relation = { type = guardian limit = { is_available_ai_adult = yes } save_scope_as = bp1_yearly_9037_guardian } if = { # If the guardian has killed anyone, use their body limit = { scope:bp1_yearly_9037_guardian = { any_secret = { type = secret_murder } } } scope:bp1_yearly_9037_guardian = { random_secret = { type = secret_murder save_scope_as = bp1_yearly_9037_guardian_secret secret_target = { save_scope_as = bp1_yearly_9037_corpse } } } } else = { # Otherwise make a new body create_character = { template = servant_character location = scope:bp1_yearly_9037_swampy_location save_scope_as = bp1_yearly_9037_corpse } scope:bp1_yearly_9037_corpse = { death = { death_reason = death_drowned } } } create_character_memory = { type = found_a_bog_corpse_memory participants = { corpse = scope:bp1_yearly_9037_corpse } } } option = { # Guardian, I found a body! name = bp1_yearly.9037.a custom_tooltip = bp1_yearly.9037.custom hidden_effect = { random_list = { 50 = { trigger = { scope:bp1_yearly_9037_guardian = { any_secret = { type = secret_murder } } } modifier = { factor = 2 scope:bp1_yearly_9037_guardian = { has_trait = vengeful } } modifier = { factor = 2 scope:bp1_yearly_9037_guardian = { has_trait = honest } } modifier = { factor = 2 scope:bp1_yearly_9037_guardian = { has_trait = sadistic } } modifier = { factor = 2 scope:bp1_yearly_9037_guardian = { has_trait = callous } } trigger_event = bp1_yearly.9038 } 50 = { modifier = { factor = 2 scope:bp1_yearly_9037_guardian = { has_trait = forgiving } } modifier = { factor = 2 scope:bp1_yearly_9037_guardian = { has_trait = deceitful } } modifier = { factor = 2 scope:bp1_yearly_9037_guardian = { has_trait = compassionate } } trigger_event = bp1_yearly.9039 } } } stress_impact = { craven = massive_stress_impact_gain pensive = major_stress_impact_gain bossy = minor_stress_impact_gain zealous = minor_stress_impact_gain } ai_chance = { base = 10 } } option = { # Run away in terror name = bp1_yearly.9037.b stress_impact = { base = 5 brave = medium_stress_impact_gain rowdy = medium_stress_impact_gain curious = minor_stress_impact_gain } ai_chance = { base = 10 } } after = { add_character_flag = had_event_bp1_yearly_9037 } } # Guardian admits they killed someone bp1_yearly.9038 = { type = character_event content_source = dlc_006 title = bp1_yearly.9038.t desc = { desc = bp1_yearly.9038.desc.intro first_valid = { triggered_desc = { trigger = { scope:bp1_yearly_9037_guardian = { has_character_flag = bp1_yearly_9037_killer_guardian } } desc = bp1_yearly.9038.desc.killer } desc = bp1_yearly.9038.desc.not_killer } } theme = skull override_background = wilderness_wetlands left_portrait = { character = root animation = fear } right_portrait = { character = scope:bp1_yearly_9037_guardian animation = rage } lower_left_portrait = scope:bp1_yearly_9037_corpse weight_multiplier = { base = 1 } immediate = { random_list = { 50 = { modifier = { add = 50 scope:bp1_yearly_9037_guardian = { has_trait = vengeful } } modifier = { add = 50 scope:bp1_yearly_9037_guardian = { has_trait = callous } } modifier = { add = 50 scope:bp1_yearly_9037_guardian = { has_trait = sadistic } } modifier = { add = 50 scope:bp1_yearly_9037_guardian = { has_trait = wrathful } } modifier = { add = 50 scope:bp1_yearly_9037_guardian = { has_trait = arbitrary } } modifier = { add = 50 scope:bp1_yearly_9037_guardian = { has_trait = craven } } scope:bp1_yearly_9037_guardian = { add_character_flag = { flag = bp1_yearly_9037_killer_guardian years = 1 } } } 50 = { modifier = { factor = 0 scope:bp1_yearly_9037_guardian = { has_trait = paranoid } } modifier = { add = 50 scope:bp1_yearly_9037_guardian = { has_trait = compassionate } } modifier = { add = 50 scope:bp1_yearly_9037_guardian = { has_trait = forgiving } } modifier = { add = 50 scope:bp1_yearly_9037_guardian = { has_trait = trusting } } modifier = { add = 50 scope:bp1_yearly_9037_guardian = { has_trait = just } } modifier = { add = 50 scope:bp1_yearly_9037_guardian = { has_trait = content } } modifier = { add = 50 scope:bp1_yearly_9037_guardian = { has_trait = calm } } } } } option = { # Wow, thanks for telling me that. name = bp1_yearly.9038.a trigger = { NOT = { scope:bp1_yearly_9037_guardian = { has_character_flag = bp1_yearly_9037_killer_guardian } } } scope:bp1_yearly_9037_guardian_secret = { reveal_to = root } ai_chance = { base = 10 } } option = { # Run! name = bp1_yearly.9038.b trigger = { scope:bp1_yearly_9037_guardian = { has_character_flag = bp1_yearly_9037_killer_guardian } } scope:bp1_yearly_9037_guardian_secret = { expose_secret = root } add_prestige = minor_prestige_loss stress_impact = { brave = medium_stress_impact_gain trusting = medium_stress_impact_gain vengeful = medium_stress_impact_gain wrathful = medium_stress_impact_gain curious = minor_stress_impact_gain } ai_chance = { base = 10 } } option = { # Try to throw them in the bog instead name = bp1_yearly.9038.c trigger = { scope:bp1_yearly_9037_guardian = { has_character_flag = bp1_yearly_9037_killer_guardian } } scope:bp1_yearly_9037_guardian_secret = { reveal_to = root } duel = { skill = prowess target = scope:bp1_yearly_9037_guardian 70 = { compare_modifier = { value = scope:duel_value multiplier = 2.5 } send_interface_toast = { title = 9038_killed_guardian left_icon = root right_icon = scope:bp1_yearly_9037_guardian scope:bp1_yearly_9037_guardian = { death = { death_reason = death_drowned } } create_character_memory = { type = successful_murder participants = { victim = scope:bp1_yearly_9037_guardian } } add_prestige = major_prestige_gain } } 30 = { compare_modifier = { value = scope:duel_value multiplier = -2.5 } send_interface_toast = { title = 9038_guardian_kills_you left_icon = root right_icon = scope:bp1_yearly_9037_guardian unknown_murder_effect = { VICTIM = root MURDERER = scope:bp1_yearly_9037_guardian REASON = death_murder } } } } stress_impact = { craven = major_stress_impact_gain forgiving = medium_stress_impact_gain compassionate = medium_stress_impact_gain calm = medium_stress_impact_gain pensive = medium_stress_impact_gain rowdy = minor_stress_impact_gain } ai_chance = { base = 10 } } } bp1_yearly.9039 = { type = character_event content_source = dlc_006 title = bp1_yearly.9039.t desc = bp1_yearly.9039.desc theme = skull override_background = wilderness_wetlands left_portrait = { character = root animation = disbelief } right_portrait = { character = scope:bp1_yearly_9037_guardian animation = disbelief } lower_left_portrait = scope:bp1_yearly_9037_corpse option = { # Throw the bones in a box! name = bp1_yearly.9039.a create_artifact = { name = box_of_boggy_bones description = box_of_boggy_bones_desc type = miscellaneous visuals = small_box modifier = artifact_dread_gain_mult_2_modifier modifier = artifact_intrigue_per_stress_level_1_modifier } ai_chance = { base = 10 } } option = { # Spread ghost stories about the bog man name = bp1_yearly.9039.b scope:bp1_yearly_9037_swampy_location = { county = { add_county_modifier = { modifier = ghost_stories_modifier years = 10 } } } ai_chance = { base = 10 } } } ##################################### # Haunted by your lover # # by James Beaumont # # 9040 # ##################################### bp1_yearly.9040 = { type = character_event content_source = dlc_006 title = bp1_yearly.9040.t desc = bp1_yearly.9040.desc theme = seduction override_background = corridor_night left_portrait = { character = root animation = disbelief } right_portrait = { character = scope:bp1_yearly_9040_dead_lover animation = flirtation_left animate_if_dead = yes } trigger = { has_dlc_feature = friends_and_foes is_available_adult = yes any_memory = { OR = { has_memory_type = lover_died has_memory_type = soulmate_died } } NOT = { has_character_flag = had_event_bp1_yearly_9040 } } weight_multiplier = { base = 1 } immediate = { random_memory = { limit = { OR = { has_memory_type = lover_died has_memory_type = soulmate_died } } memory_participant:dead_relation = { save_scope_as = bp1_yearly_9040_dead_lover } } } option = { # Shag the sexy ghost name = bp1_yearly.9040.a add_character_modifier = { modifier = bp1_indulging_ghost_sex years = 5 } stress_impact = { base = major_stress_impact_loss lustful = major_stress_impact_loss chaste = minor_stress_impact_gain loyal = minor_stress_impact_gain } ai_chance = { base = 10 } } option = { # Withhold your desires, save yourself for your new spouse/lover name = bp1_yearly.9040.b add_character_modifier = { modifier = bp1_withholding_ghost_sex years = 5 } stress_impact = { base = minor_stress_impact_gain lustful = major_stress_impact_gain compassionate = medium_stress_impact_gain chaste = minor_stress_impact_loss } ai_chance = { base = 10 } } after = { add_character_flag = had_event_bp1_yearly_9040 } } ##################################### # Bonding over a dead parent # # by James Beaumont # # 9041 # ##################################### bp1_yearly.9041 = { type = character_event content_source = dlc_006 title = bp1_yearly.9041.t desc = bp1_yearly.9041.desc theme = family override_background = { reference = corridor_day } left_portrait = { character = root animation = personality_compassionate } right_portrait = { character = scope:bp1_yearly_9041_sibling animation = grief } trigger = { has_dlc_feature = friends_and_foes is_available = yes is_adult = no age >= 6 NOT = { has_character_flag = had_event_bp1_yearly_9041 } any_sibling = { is_available_ai = yes # Check that they have had a potential friendship-building event already, else this will be extremely common has_relation_potential_friend = root age >= 6 any_parent = { even_if_dead = yes # Check that they're dead is_alive = no # Make sure it's a shared parent is_parent_of = root } } } weight_multiplier = { base = 1 } immediate = { random_sibling = { limit = { is_available_ai = yes has_relation_potential_friend = root age >= 6 any_parent = { even_if_dead = yes # Check that they're dead is_alive = no # Make sure it's a shared parent is_parent_of = root } } save_scope_as = bp1_yearly_9041_sibling random_parent = { even_if_dead = yes limit = { # Check that they're dead is_alive = no # Make sure it's a shared parent is_parent_of = root } save_scope_as = bp1_yearly_9041_parent } } } option = { # Bond and become friends name = bp1_yearly.9041.a scope:bp1_yearly_9041_parent = { save_scope_as = relationship_reason_involved_character } upgrade_to_friend_effect = { CHARACTER = scope:bp1_yearly_9041_sibling REASON = generic_familial_bonding } stress_impact = { shy = major_stress_impact_gain pensive = major_stress_impact_gain bossy = minor_stress_impact_gain rowdy = medium_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = shy has_trait = pensive has_trait = bossy has_trait = rowdy } } } } option = { # Make fun of them for crying name = bp1_yearly.9041.b if = { limit = { NOT = { scope:bp1_yearly_9041_sibling = { has_relation_bully = root } } } scope:bp1_yearly_9041_sibling = { set_relation_bully = root } } stress_impact = { gregarious = medium_stress_impact_gain compassionate = medium_stress_impact_gain forgiving = medium_stress_impact_gain loyal = medium_stress_impact_gain curious = minor_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = gregarious has_trait = compassionate has_trait = forgiving has_trait = loyal has_trait = curious } } } } after = { add_character_flag = had_event_bp1_yearly_9041 } } ##################################### # Food that looks like Jesus # # by James Beaumont # # 9042 # ##################################### bp1_yearly.9042 = { type = character_event content_source = dlc_006 title = bp1_yearly.9042.t desc = bp1_yearly.9042.desc theme = faith override_background = throne_room left_portrait = { character = root animation = personality_cynical } right_portrait = { character = scope:bp1_yearly_9042_chaplain animation = ecstasy } trigger = { has_dlc_feature = friends_and_foes is_available_adult = yes faith_is_aniconic_trigger = no NOT = { has_character_flag = had_event_bp1_yearly_9042 } exists = cp:councillor_court_chaplain cp:councillor_court_chaplain = { is_available_ai_adult = yes OR = { learning <= 7 has_trait = intellect_bad has_trait = dull has_trait = trusting } } } weight_multiplier = { base = 1 } immediate = { cp:councillor_court_chaplain = { save_scope_as = bp1_yearly_9042_chaplain } } option = { # Woah it *does* look like Jesus! name = bp1_yearly.9042.a upgrade_to_friend_effect = { CHARACTER = scope:bp1_yearly_9042_chaplain REASON = generic_desserts_in_shape_of_jesus } scope:bp1_yearly_9042_chaplain = { add_trait = loyal } create_artifact = { name = dessert_looks_like_god description = dessert_looks_like_god_desc type = miscellaneous visuals = small_box modifier = artifact_monthly_piety_1_modifier modifier = artifact_clergy_opinion_penalty_2_modifier save_scope_as = jesus_food_scope } scope:jesus_food_scope = { flag_as_trash_artifact = yes flag_as_unwanted_artifact = yes } add_piety = minor_piety_loss stress_impact = { zealous = major_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 has_trait = zealous } } } option = { # Accuse them of heresy name = bp1_yearly.9042.b trigger = { scope:bp1_yearly_9042_chaplain = { can_be_fired_from_council_trigger = { COURT_OWNER = root } } } downgrade_to_rival_effect = { CHARACTER = scope:bp1_yearly_9042_chaplain REASON = rival_accusations_of_heresy } duel = { skill = learning target = scope:bp1_yearly_9042_chaplain 50 = { compare_modifier = { value = scope:duel_value multiplier = 2.5 } root = { send_interface_toast = { title = 9042_you_win left_icon = root right_icon = scope:bp1_yearly_9042_chaplain fire_councillor = scope:bp1_yearly_9042_chaplain scope:bp1_yearly_9042_chaplain = { banish = yes } add_piety = medium_piety_gain } } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -2.5 } root = { send_interface_toast = { title = 9042_you_lose left_icon = root right_icon = scope:bp1_yearly_9042_chaplain add_piety = medium_piety_loss } } } } stress_impact = { gregarious = medium_stress_impact_gain forgiving = medium_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = gregarious has_trait = forgiving } } } } option = { # Eat it name = bp1_yearly.9042.c trigger = { OR = { has_trait = cynical has_trait = gluttonous has_trait = comfort_eater has_trait = sadistic } } downgrade_to_rival_effect = { CHARACTER = scope:bp1_yearly_9042_chaplain REASON = rival_ate_jesus } add_character_modifier = { modifier = full_of_jesus_modifier years = 5 } stress_impact = { zealous = minor_stress_impact_gain gluttonous = minor_stress_impact_gain comfort_eater = minor_stress_impact_gain } ai_chance = { base = 10 modifier = { factor = 0 has_trait = zealous } } } after = { add_character_flag = had_event_bp1_yearly_9042 } } ##################################################### # The Baby Eating Bishop of County and Kingdom # # by James Beaumont # # 9043 # ##################################################### bp1_yearly.9043 = { type = character_event content_source = dlc_006 title = bp1_yearly.9043.t desc = bp1_yearly.9043.desc theme = secret override_background = temple left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:bp1_yearly_9043_chaplain animation = ecstasy } trigger = { has_dlc_feature = friends_and_foes is_available_adult = yes NOT = { has_character_flag = had_event_bp1_yearly_9043 } exists = cp:councillor_court_chaplain cp:councillor_court_chaplain = { is_available_ai_adult = yes OR = { AND = { is_deviant_trigger = yes trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = { TRAIT = deviant GENDER_CHARACTER = cp:councillor_court_chaplain } } AND = { is_cannibal_trigger = yes trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = { TRAIT = cannibal GENDER_CHARACTER = cp:councillor_court_chaplain } } } } } weight_multiplier = { base = 1 } immediate = { cp:councillor_court_chaplain = { save_scope_as = bp1_yearly_9043_chaplain if = { limit = { NOT = { is_cannibal_trigger = yes } } if = { limit = { trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = { TRAIT = cannibal GENDER_CHARACTER = cp:councillor_court_chaplain } } add_secret = { type = secret_cannibal } } else = { add_trait = cannibal } } if = { limit = { NOT = { is_deviant_trigger = yes } } if = { limit = { trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = { TRAIT = deviant GENDER_CHARACTER = cp:councillor_court_chaplain } } add_secret = { type = secret_deviant } } else = { add_trait = deviant } } every_secret = { limit = { OR = { secret_type = secret_cannibal secret_type = secret_deviant } } reveal_to = root } } } option = { # Show me your ways name = bp1_yearly.9043.a if = { limit = { AND = { OR = { is_attracted_to_gender_of = scope:bp1_yearly_9043_chaplain has_perk = unshackled_lust_perk } scope:bp1_yearly_9043_chaplain = { OR = { is_attracted_to_gender_of = root has_perk = unshackled_lust_perk } } } NOT = { has_relation_lover = scope:bp1_yearly_9043_chaplain } } set_relation_lover = { reason = lover_induled_in_forbidden_pleasures target = scope:bp1_yearly_9043_chaplain } } else = { upgrade_to_friend_effect = { CHARACTER = scope:bp1_yearly_9043_chaplain REASON = generic_ate_a_baby_together } } if = { limit = { NOT = { is_cannibal_trigger = yes } } if = { limit = { trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = { TRAIT = cannibal GENDER_CHARACTER = root } } add_secret = { type = secret_cannibal } } else = { add_trait = cannibal } } if = { limit = { NOT = { is_deviant_trigger = yes } } if = { limit = { trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = { TRAIT = deviant GENDER_CHARACTER = root } } add_secret = { type = secret_deviant } } else = { add_trait = deviant } } stress_impact = { calm = major_stress_impact_gain patient = major_stress_impact_gain brave = major_stress_impact_gain just = major_stress_impact_gain trusting = major_stress_impact_gain paranoid = major_stress_impact_gain compassionate = major_stress_impact_gain chaste = major_stress_impact_gain zealous = major_stress_impact_gain lustful = major_stress_impact_loss deviant = massive_stress_impact_loss } ai_chance = { base = 10 modifier = { factor = 0 OR = { has_trait = calm has_trait = patient has_trait = brave has_trait = just has_trait = trusting has_trait = paranoid has_trait = compassionate has_trait = chaste has_trait = zealous } } } } option = { # Expose them! name = bp1_yearly.9043.b downgrade_to_rival_effect = { CHARACTER = scope:bp1_yearly_9043_chaplain REASON = rival_ate_baby } scope:bp1_yearly_9043_chaplain = { every_secret = { limit = { OR = { secret_type = secret_cannibal secret_type = secret_deviant } } expose_secret = root } give_nickname = nick_baby_eating } stress_impact = { lustful = medium_stress_impact_gain deviant = medium_stress_impact_gain forgiving = medium_stress_impact_gain } ai_chance = { base = 10 modifier = { add = -10 OR = { has_trait = lustful has_trait = gregarious has_trait = forgiving } } modifier = { add = 100 OR = { has_trait = just has_trait = honest has_trait = zealous } } } } option = { # Keep it to yourself name = bp1_yearly.9043.c stress_impact = { honest = medium_stress_impact_gain deviant = medium_stress_impact_gain } ai_chance = { base = 10 modifier = { add = -10 OR = { has_trait = honest has_trait = deviant } } } } after = { add_character_flag = had_event_bp1_yearly_9043 } } ################################# # Executing a friend # # by James Beaumont # # 9044 # ################################# bp1_yearly.9044 = { type = character_event content_source = dlc_006 title = bp1_yearly.9044.t desc = { desc = bp1_yearly.9044.desc first_valid = { triggered_desc = { trigger = { exists = scope:bp1_yearly_9044_memory_scope } desc = bp1_yearly.9044.desc.outro.memory } desc = bp1_yearly.9044.desc.outro.no_memory } } theme = skull override_background = gallows left_portrait = { character = root triggered_animation = { trigger = { OR = { has_trait = callous has_trait = sadistic has_trait = disloyal } } animation = schadenfreude } triggered_animation = { trigger = { NOR = { has_trait = callous has_trait = sadistic has_trait = disloyal } } animation = sadness } } right_portrait = { character = scope:recipient animation = grief triggered_outfit = { remove_default_outfit = no outfit_tags = { beggar_rags } } animate_if_dead = yes } trigger = { has_dlc_feature = friends_and_foes is_available_adult = yes } weight_multiplier = { base = 1 } immediate = { show_as_tooltip = { execute_prisoner_effect = { VICTIM = scope:recipient EXECUTIONER = scope:actor } } if = { limit = { any_memory = { has_memory_category = positive any_memory_participant = { this = scope:recipient } NOT = { has_memory_type = became_friends } } } random_memory = { limit = { has_memory_category = positive any_memory_participant = { this = scope:recipient } NOT = { has_memory_type = became_friends } } save_scope_as = bp1_yearly_9044_memory_scope } } } option = { # I feel bad about this name = { trigger = { OR = { has_trait = callous has_trait = sadistic has_trait = disloyal } } text = bp1_yearly.9044.a.indifferent } name = bp1_yearly.9044.a.guilty } } ################################# # Seeing an execution as a child# # by James Beaumont # # 9045 # ################################# bp1_yearly.9045 = { type = character_event content_source = dlc_006 title = bp1_yearly.9045.t desc = { desc = bp1_yearly.9045.desc.intro first_valid = { triggered_desc = { trigger = { scope:recipient = { has_strong_religious_conviction_trigger = yes } } desc = bp1_yearly.9045.desc.zealous } triggered_desc = { trigger = { scope:recipient = { has_trait = brave } } desc = bp1_yearly.9045.desc.brave } desc = bp1_yearly.9045.desc.fallback } desc = bp1_yearly.9045.desc.outro } theme = skull override_background = gallows left_portrait = { character = root triggered_animation = { trigger = { OR = { has_trait = callous has_trait = sadistic } } animation = schadenfreude } triggered_animation = { trigger = { NOR = { has_trait = callous has_trait = sadistic } } animation = shock } } right_portrait = { character = scope:recipient animation = grief triggered_outfit = { remove_default_outfit = no outfit_tags = { beggar_rags } } animate_if_dead = yes } trigger = { has_dlc_feature = friends_and_foes is_available = yes any_relation = { is_available_ai_adult = yes type = guardian } } weight_multiplier = { base = 1 } immediate = { show_as_tooltip = { execute_prisoner_effect = { VICTIM = scope:recipient EXECUTIONER = scope:actor } } random_relation = { type = guardian save_scope_as = bp1_yearly_9045_guardian } add_character_flag = witnessed_execution_flag create_character_memory = { type = was_shown_execution_memory participants = { guardian = scope:bp1_yearly_9045_guardian victim = scope:recipient } } } option = { # How do I feel about this? name = { trigger = { has_trait = callous } text = bp1_yearly.9045.a.indifferent } name = { trigger = { has_trait = sadistic } text = bp1_yearly.9045.a.sadistic } name = bp1_yearly.9045.a.guilty if = { limit = { OR = { has_trait = callous has_trait = sadistic } } progress_towards_friend_effect = { CHARACTER = scope:bp1_yearly_9045_guardian OPINION = default_friend_opinion REASON = friend_appreciated_good_entertainment } } else = { progress_towards_rival_effect = { REASON = rival_child_saw_execution CHARACTER = scope:bp1_yearly_9045_guardian OPINION = default_rival_opinion } } stress_impact = { calm = major_stress_impact_gain patient = major_stress_impact_gain just = major_stress_impact_gain trusting = major_stress_impact_gain charming = major_stress_impact_gain compassionate = major_stress_impact_gain zealous = major_stress_impact_gain sadistic = massive_stress_impact_loss } } } ################################# # Child poops during baptism # # by James Beaumont # # 9046 # ################################# bp1_yearly.9046 = { type = character_event content_source = dlc_006 title = bp1_yearly.9046.t desc = { desc = bp1_yearly.9046.desc.intro first_valid = { triggered_desc = { trigger = { OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion } } desc = bp1_yearly.9046.desc.christian } desc = bp1_yearly.9046.desc.not_christian } desc = bp1_yearly.9046.desc.outro } theme = family override_background = temple left_portrait = { character = root triggered_animation = { trigger = { OR = { has_trait = callous has_trait = sadistic } } animation = schadenfreude } triggered_animation = { trigger = { NOR = { has_trait = callous has_trait = sadistic } } animation = shock } } right_portrait = { character = scope:bp1_yearly_9046_chaplain animation = anger } lower_right_portrait = { character = scope:bp1_yearly_9046_poopy_child } trigger = { has_dlc_feature = friends_and_foes is_available = yes any_child = { age <= 2 is_available_ai = yes } exists = cp:councillor_court_chaplain cp:councillor_court_chaplain = { is_available_ai_adult = yes } NOR = { any_close_family_member = { even_if_dead = yes has_nickname = nick_the_dung_named } has_nickname = nick_the_dung_named } } weight_multiplier = { base = 1 } immediate = { random_child = { limit = { age <= 2 is_available_ai = yes } save_scope_as = bp1_yearly_9046_poopy_child } cp:councillor_court_chaplain = { save_scope_as = bp1_yearly_9046_chaplain } } option = { # That's hilarious name = { trigger = { OR = { has_trait = callous has_trait = sadistic } } text = bp1_yearly.9046.a.indifferent } name = bp1_yearly.9046.a scope:bp1_yearly_9046_poopy_child = { give_nickname = nick_the_dung_named progress_towards_rival_effect = { REASON = rival_laughed_at_child_pooping CHARACTER = root OPINION = default_rival_opinion } } stress_impact = { calm = minor_stress_impact_gain patient = minor_stress_impact_gain just = minor_stress_impact_gain trusting = minor_stress_impact_gain charming = minor_stress_impact_gain compassionate = minor_stress_impact_gain zealous = minor_stress_impact_gain family_first = major_stress_impact_gain sadistic = major_stress_impact_loss } ai_chance = { base = 10 modifier = { add = -10 OR = { has_trait = calm has_trait = patient has_trait = just has_trait = trusting has_trait = charming has_trait = zealous } } modifier = { add = 10 OR = { has_trait = sadistic has_trait = callous } } } } option = { # We gotta cover this up name = bp1_yearly.9046.b stress_impact = { base = minor_stress_impact_gain honest = major_stress_impact_gain sadistic = major_stress_impact_gain } ai_chance = { base = 10 modifier = { add = -10 OR = { has_trait = sadistic has_trait = callous has_trait = honest } } } } } ######################################### # Lover wants you to wear their hair # # by James Beaumont # # 9047 # ######################################### bp1_yearly.9047 = { type = character_event content_source = dlc_006 title = bp1_yearly.9047.t desc = bp1_yearly.9047.desc theme = love left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:bp1_yearly_9047_lover animation = flirtation_left } trigger = { has_dlc_feature = friends_and_foes is_available = yes any_relation = { is_available_ai_adult = yes type = lover NOR = { has_trait = loyal has_trait = disloyal } } OR = { has_any_nickname = no has_bad_nickname = yes } NOT = { has_character_flag = had_event_bp1_yearly_9047 } } weight_multiplier = { base = 1 } immediate = { random_relation = { type = lover limit = { is_available_ai_adult = yes NOR = { has_trait = loyal has_trait = disloyal } } save_scope_as = bp1_yearly_9047_lover } add_character_flag = had_event_bp1_yearly_9047 } option = { # Of course I will wear your hair! name = bp1_yearly.9047.a if = { limit = { is_ai = yes } random = { chance = 10 if = { limit = { scope:bp1_yearly_9047_lover = { is_female = yes } } give_nickname = nick_with_the_tress } else = { give_nickname = nick_with_the_lock } } } else = { if = { limit = { scope:bp1_yearly_9047_lover = { is_female = yes } } give_nickname = nick_with_the_tress } else = { give_nickname = nick_with_the_lock } } if = { limit = { has_trait = disloyal } remove_trait = disloyal } else = { add_trait = loyal } scope:bp1_yearly_9047_lover = { if = { limit = { has_trait = disloyal } remove_trait = disloyal } else = { add_trait = loyal } } stress_impact = { humble = medium_stress_impact_gain disloyal = medium_stress_impact_gain } ai_chance = { base = 10 modifier = { add = -10 OR = { has_trait = humble has_trait = disloyal } } } } option = { # What? That's gross name = bp1_yearly.9047.b reverse_add_opinion = { target = scope:bp1_yearly_9047_lover modifier = hurt_opinion opinion = -25 } stress_impact = { loyal = major_stress_impact_gain lustful = major_stress_impact_gain sadistic = major_stress_impact_gain } ai_chance = { base = 10 modifier = { add = -10 OR = { has_trait = loyal has_trait = lustful has_trait = sadistic } } } } } ######################################### # Wrestling a rival # # by James Beaumont # # 9048 # ######################################### bp1_yearly.9048 = { type = character_event content_source = dlc_006 title = bp1_yearly.9048.t desc = bp1_yearly.9048.desc theme = love left_portrait = { character = root animation = rage } right_portrait = { character = scope:bp1_yearly_9048_nemesis animation = personality_irrational } trigger = { has_dlc_feature = friends_and_foes is_available = yes OR = { # Is interested in war and fighting to some extent perks_in_martial_lifestyle >= 2 has_trait = education_martial_prowess } any_relation = { type = nemesis is_available_ai_adult = yes OR = { has_trait = brave has_trait = impatient has_trait = wrathful has_trait = sadistic } } NOT = { has_character_flag = had_event_bp1_yearly_9048 } } weight_multiplier = { base = 1 } immediate = { random_relation = { type = nemesis limit = { is_available_ai_adult = yes OR = { has_trait = brave has_trait = impatient has_trait = wrathful has_trait = sadistic } } save_scope_as = bp1_yearly_9048_nemesis } add_character_flag = had_event_bp1_yearly_9048 } option = { # U wot m8 name = bp1_yearly.9048.a if = { limit = { root.faith = { trait_is_virtue = brave } } add_piety = medium_piety_gain } duel = { skill = prowess target = scope:bp1_yearly_9048_nemesis 50 = { compare_modifier = { value = scope:duel_value multiplier = 2.5 } add_prestige = medium_prestige_gain trigger_event = bp1_yearly.9049 } 50 = { compare_modifier = { value = scope:duel_value multiplier = -2.5 } send_interface_toast = { title = 9048_you_lose left_icon = root right_icon = scope:bp1_yearly_9048_nemesis add_prestige = minor_prestige_loss increase_wounds_no_death_effect = { REASON = duel } } } } stress_impact = { patient = medium_stress_impact_gain calm = medium_stress_impact_gain craven = medium_stress_impact_gain } ai_chance = { base = 10 modifier = { add = -10 OR = { has_trait = patient has_trait = calm has_trait = craven } } modifier = { add = 10 OR = { has_trait = brave has_trait = arrogant } } modifier = { add = 10 prowess >= scope:bp1_yearly_9048_nemesis.prowess NOT = { has_trait = craven } } } } option = { # Don't hit me! name = bp1_yearly.9048.b add_prestige = minor_prestige_loss if = { limit = { root.faith = { trait_is_virtue = brave } } add_piety = minor_piety_loss } stress_impact = { brave = major_stress_impact_gain impatient = major_stress_impact_gain wrathful = major_stress_impact_gain arrogant = major_stress_impact_gain } ai_chance = { base = 10 modifier = { add = -10 OR = { has_trait = brave has_trait = impatient has_trait = wrathful has_trait = arrogant } } } } } # Follow-up event, bite a chunk out of them? bp1_yearly.9049 = { type = character_event content_source = dlc_006 title = bp1_yearly.9049.t desc = bp1_yearly.9049.desc theme = love left_portrait = { character = root animation = rage } right_portrait = { character = scope:bp1_yearly_9048_nemesis animation = shock } weight_multiplier = { base = 1 } immediate = { scope:bp1_yearly_9048_nemesis = { increase_wounds_no_death_effect = { REASON = duel } } } option = { # Say goodbye to your flesh name = bp1_yearly.9049.a give_nickname = nick_irontooth scope:bp1_yearly_9048_nemesis = { increase_wounds_effect = { REASON = duel } } stress_impact = { patient = medium_stress_impact_gain calm = medium_stress_impact_gain craven = medium_stress_impact_gain forgiving = massive_stress_impact_gain } ai_chance = { base = 10 modifier = { add = -10 OR = { has_trait = patient has_trait = calm has_trait = craven has_trait = forgiving } } } } option = { # This rivalry is over name = bp1_yearly.9049.b remove_relation_nemesis = scope:bp1_yearly_9048_nemesis stress_impact = { brave = major_stress_impact_gain impatient = major_stress_impact_gain wrathful = major_stress_impact_gain arrogant = major_stress_impact_gain forgiving = major_stress_impact_loss } ai_chance = { base = 10 modifier = { add = -10 OR = { has_trait = brave has_trait = impatient has_trait = wrathful has_trait = arrogant } } modifier = { add = 10 has_trait = forgiving } } } option = { # This rivalry is over... forever name = bp1_yearly.9049.c trigger = { has_trait = vengeful } scope:bp1_yearly_9048_nemesis = { death = { killer = root death_reason = death_duel } } stress_impact = { just = major_stress_impact_gain patient = medium_stress_impact_gain calm = medium_stress_impact_gain vengeful = major_stress_impact_loss wrathful = major_stress_impact_loss } ai_chance = { base = 10 modifier = { add = -10 OR = { has_trait = just has_trait = patient has_trait = calm } } } } } ######################################### # Sharing war stories # # by James Beaumont # # 9050 # ######################################### bp1_yearly.9050 = { type = character_event content_source = dlc_006 title = bp1_yearly.9050.t desc = bp1_yearly.9050.desc theme = martial left_portrait = { character = root animation = rage } right_portrait = { character = scope:bp1_yearly_9050_friend animation = shock } weight_multiplier = { base = 1 } trigger = { has_dlc_feature = friends_and_foes is_available_adult = yes any_memory = { has_memory_category = war has_memory_category = positive } any_relation = { type = friend is_available_ai_adult = yes OR = { root = { has_royal_court = yes has_court_type = court_warlike } has_trait = education_martial_prowess has_trait = education_martial has_trait = brave } any_memory = { has_memory_category = war has_memory_category = positive } } NOT = { has_character_flag = had_event_bp1_yearly_9050 } } immediate = { add_character_flag = had_event_bp1_yearly_9050 random_memory = { limit = { has_memory_category = war has_memory_category = positive } save_scope_as = bp1_yearly_9050_my_memory } random_relation = { type = friend limit = { is_available_ai_adult = yes OR = { root = { has_royal_court = yes has_court_type = court_warlike } has_trait = education_martial_prowess has_trait = education_martial has_trait = brave } any_memory = { has_memory_category = war has_memory_category = positive } } save_scope_as = bp1_yearly_9050_friend random_memory = { limit = { has_memory_category = war has_memory_category = positive } save_scope_as = bp1_yearly_9050_friend_memory } } } option = { # Hahaha, what a story bp1_yearly_9050_friend name = bp1_yearly.9050.a reverse_add_opinion = { target = scope:bp1_yearly_9050_friend modifier = flattered_opinion opinion = 25 } stress_impact = { brave = major_stress_impact_gain impatient = major_stress_impact_gain wrathful = major_stress_impact_gain arrogant = major_stress_impact_gain } ai_chance = { base = 10 modifier = { add = -10 OR = { has_trait = brave has_trait = impatient has_trait = wrathful has_trait = arrogant } } } } option = { # MY story is clearly better name = bp1_yearly.9050.b reverse_add_opinion = { target = scope:bp1_yearly_9050_friend modifier = insult_opinion opinion = -25 } duel = { skill = martial target = scope:bp1_yearly_9050_friend 50 = { compare_modifier = { value = scope:duel_value multiplier = 2.5 } add_prestige = medium_prestige_gain } 50 = { compare_modifier = { value = scope:duel_value multiplier = -2.5 } add_prestige = medium_prestige_loss } } stress_impact = { patient = medium_stress_impact_gain calm = medium_stress_impact_gain craven = medium_stress_impact_gain forgiving = massive_stress_impact_gain loyal = massive_stress_impact_gain } ai_chance = { base = 10 modifier = { add = -10 OR = { has_trait = patient has_trait = calm has_trait = craven has_trait = forgiving has_trait = loyal } } } } }