# Events for the Coronation activity namespace = ach_coronation ################################################################################################################################ ## Coronation Activity System Events ## 0000-0010 ## by Jay Zaborowski ################################ # ach_coronation.0001 - Enter passive state - you arrived, establish the mood # ach_coronation.0010 - The HoF arrives ###################### # Enter passive state - you arrived, establish the mood # 0001 ach_coronation.0001 = { type = activity_event title = ach_coronation.0001.t desc = { # Opening first_valid = { triggered_desc = { trigger = { location = this.capital_province } desc = ach_coronation.0001.notravel } desc = ach_coronation.0001.travel } # Intro first_valid = { # You are the Host triggered_desc = { trigger = { this = scope:host } desc = { first_valid = { triggered_desc = { trigger = { scope:host = { primary_title = title:e_hre } this = scope:host } desc = ach_coronation.0001.intro.hre_host } triggered_desc = { trigger = { scope:host = { primary_title = title:e_byzantium } this = scope:host } desc = ach_coronation.0001.intro.byzantine_host } triggered_desc = { trigger = { this = scope:host location = this.capital_province } desc = ach_coronation.0001.intro.notravel_host } desc = ach_coronation.0001.intro.host } } } # You are a Guest triggered_desc = { trigger = { this != scope:host } desc = { first_valid = { triggered_desc = { trigger = { scope:host = { primary_title = title:e_hre } } desc = ach_coronation.0001.intro.hre } triggered_desc = { trigger = { scope:host = { primary_title = title:e_byzantium } } desc = ach_coronation.0001.intro.byzantine } } } } } # Ending first_valid = { # Host - Eccentric (so that it matches the rest of the loc) triggered_desc = { trigger = { this = scope:host has_trait = eccentric } desc = ach_coronation.0001.ending.host_eccentric } # Host triggered_desc = { trigger = { this = scope:host } desc = { random_valid = { triggered_desc = { trigger = { has_trait = cynical OR = { scope:priest ?= { is_important_hof_trigger = yes } faith = { has_doctrine_parameter = theocratic_coronation } # To give something to complain about } } desc = { first_valid = { triggered_desc = { trigger = { scope:priest ?= { is_important_hof_trigger = yes } } desc = ach_coronation.0001.ending.host_cynical_hof } triggered_desc = { trigger = { faith = { has_doctrine_parameter = theocratic_coronation } } desc = ach_coronation.0001.ending.host_cynical } } } } triggered_desc = { trigger = { has_trait = impatient } desc = ach_coronation.0001.ending.host_impatient } triggered_desc = { trigger = { has_trait = just } desc = ach_coronation.0001.ending.host_just } triggered_desc = { trigger = { has_trait = ambitious } desc = ach_coronation.0001.ending.host_ambitious } triggered_desc = { trigger = { has_trait = compassionate } desc = ach_coronation.0001.ending.host_compassionate } triggered_desc = { trigger = { has_trait = trusting } desc = ach_coronation.0001.ending.host_trusting } triggered_desc = { trigger = { has_trait = paranoid } desc = ach_coronation.0001.ending.host_paranoid } triggered_desc = { trigger = { has_trait = zealous } desc = ach_coronation.0001.ending.host_zealous } triggered_desc = { trigger = { has_trait = content } desc = ach_coronation.0001.ending.host_content } triggered_desc = { trigger = { has_trait = gregarious } desc = ach_coronation.0001.ending.host_gregarious } triggered_desc = { trigger = { has_trait = craven } desc = ach_coronation.0001.ending.host_craven } triggered_desc = { trigger = { has_trait = shy } desc = ach_coronation.0001.ending.host_shy } triggered_desc = { trigger = { has_trait = arrogant } desc = ach_coronation.0001.ending.host_arrogant } triggered_desc = { trigger = { OR = { has_trait = calm has_trait = lazy } } desc = ach_coronation.0001.ending.host_calm } triggered_desc = { trigger = { has_trait = gluttonous } desc = ach_coronation.0001.ending.host_gluttonous } triggered_desc = { trigger = { has_trait = arbitrary } desc = ach_coronation.0001.ending.host_arbitrary } desc = ach_coronation.0001.ending.host_neutral } } } # Guest triggered_desc = { trigger = { this != scope:host } desc = { first_valid = { triggered_desc = { trigger = { scope:host = { has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } } desc = ach_coronation.0001.ending.hostile_host } triggered_desc = { trigger = { scope:host = { has_any_good_relationship_with_character_trigger = { CHARACTER = root } } } desc = ach_coronation.0001.ending.friendly_host } desc = ach_coronation.0001.ending.neutral_host } } } } } center_portrait = { character = scope:host animation = idle camera = camera_center_large } lower_left_portrait = { character = root trigger = { this != scope:host } } lower_center_portrait = { character = scope:priest trigger = { this != scope:host scope:host.involved_activity ?= { has_activity_option = { category = special_type option = coronation_type_anointment } } } } theme = coronation_activity override_background = { reference = throne_room } immediate = { play_music_cue = mx_cue_majesty involved_activity = { activity_host = { save_scope_as = host } var:officiator ?= { save_scope_as = priest } if = { limit = { has_activity_option = { category = special_type option = coronation_type_anointment } } scope:host.faith.religious_head = { save_scope_as = priest } } } # Send out the papal fanfare if = { limit = { # Is the host's religious head scope:host.faith.religious_head ?= this # The HoF actually matters for the ceremony scope:activity = { has_activity_option = { category = special_type option = coronation_type_anointment } } #HoF doesn't own or live there scope:activity.activity_location.county = { OR = { holder = scope:host holder = { any_liege_or_above = { this = scope:host } } } NOR = { holder = scope:priest holder = { any_liege_or_above = { this = scope:priest } } } } #tricksy patriarch trigger_if = { limit = { scope:priest = { is_landed = no liege ?= scope:host } } NOT = { scope:activity.activity_location.county = scope:host.capital_county } } } save_scope_as = hof coronation_hof_visit_effect = yes involved_activity = { every_attending_character = { limit = { OR = { # Only bother for player's and the Host is_ai = no this = scope:host # And anyone who might want to beg the pope for pardon has_trait = excommunicated } } trigger_event = ach_coronation.0010 } } } scope:host = { if = { limit = { any_targeting_faction = { count > 1 } any_targeting_faction = { OR = { faction_power >= 200 discontent_per_month > 0 trigger_if = { limit = { discontent_per_month > 0 } months_until_max_discontent <= 8 } AND = { OR = { faction_is_type = nation_fracturing_faction faction_is_type = claimant_faction } faction_power >= 100 } } } } custom_tooltip = magnificence_badly_reduced_by_factions_tt } else_if = { limit = { any_targeting_faction = { count = 1 } any_targeting_faction = { OR = { faction_power >= 200 discontent_per_month > 0 trigger_if = { limit = { discontent_per_month > 0 } months_until_max_discontent <= 8 } AND = { OR = { faction_is_type = nation_fracturing_faction faction_is_type = claimant_faction } faction_power >= 100 } } } } custom_tooltip = magnificence_badly_reduced_by_faction_tt } else_if = { limit = { any_targeting_faction = { count > 1 } } custom_tooltip = magnificence_reduced_by_factions_tt } else_if = { limit = { any_targeting_faction = { count = 1 } } custom_tooltip = magnificence_reduced_by_faction_tt } } if = { limit = { this = scope:host involved_activity = { var:activity_special_type_progression >= 50 } } scope:host.dynasty = { add_dynasty_prestige = minor_dynasty_prestige_gain } } else_if = { limit = { this = scope:host involved_activity = { var:activity_special_type_progression >= 25 } } scope:host.dynasty = { add_dynasty_prestige = miniscule_dynasty_prestige_gain } } } option = { name = { trigger = { NOT = { this = scope:host } opinion = { target = scope:host value < 0 } } text = ach_coronation.0001.a.bad } name = { trigger = { NOT = { this = scope:host } opinion = { target = scope:host value >= 0 } } text = ach_coronation.0001.a.good } name = { trigger = { this = scope:host has_trait = eccentric } text = ach_coronation.0001.a.eccentric } name = { trigger = { this = scope:host NOT = { has_trait = eccentric } } text = ach_coronation.0001.a } } } ###################### # The HoF Arrives # 0010 scripted_trigger ach_coronation_0010_appropriate_hof_follower = { # Find a clergy member of the hof's religion faith.religion = scope:hof.faith.religion this != scope:hof this != scope:host this != scope:greeter # Who isn't the player is_physically_able_ai = yes } scripted_trigger ach_coronation_0010_friendly_hof_and_host = { scope:host = { OR = { has_any_good_relationship_with_character_trigger = { CHARACTER = scope:hof } reverse_opinion = { target = scope:hof value > medium_positive_opinion } } } } scripted_trigger ach_coronation_0010_hostile_hof_and_host = { OR = { scope:host = { has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:hof } } reverse_opinion = { target = scope:hof value < medium_negative_opinion } } } scripted_effect ach_coronation_0010_choose_greeters = { # Barons are underutilized and it is *their* city, and the Host is probably busy, so they get to meet the HoF if = { limit = { scope:coronation_site.barony.holder != scope:host } scope:coronation_site.barony.holder = { save_scope_as = greeter } } # If the host owns the province we still want the world to feel lively, try the local count instead else_if = { limit = { scope:coronation_site.barony.county.holder != scope:host } scope:coronation_site.barony.holder = { save_scope_as = greeter } } # If all else fails, the Host gets to be the greeter else = { limit = { scope:host.location = scope:coronation_site } scope:host = { save_scope_as = greeter } } if = { limit = { # Grab the greeter's court chaplain if they exist exists = scope:greeter.cp:councillor_court_chaplain # Make sure it isn't the player scope:greeter.cp:councillor_court_chaplain = { is_physically_able_ai = yes } } scope:greeter.cp:councillor_court_chaplain = { save_scope_as = greeter_2 } } else = { involved_activity = { ordered_attending_character = { # Grab the most zealous priest of the hof's religion at the activity limit = { ach_coronation_0010_appropriate_hof_follower = yes is_clergy = yes } # Or any valid follower of their religion alternative_limit = { ach_coronation_0010_appropriate_hof_follower = yes } # Fallback alternative_limit = { this != scope:host this != scope:hof this != scope:greeter } order_by = ai_zeal save_scope_as = greeter_2 } } } } ach_coronation.0010 = { type = activity_event title = ach_coronation.0010.t desc = { # Should have a lot of variety for different pope-analities desc = ach_coronation.0010.desc.desc_opening first_valid = { triggered_desc = { trigger = { this = scope:greeter } desc = ach_coronation.0010.desc.desc_greeting.first_person } triggered_desc = { trigger = { this = scope:host } desc = ach_coronation.0010.desc.desc_greeting.host } desc = ach_coronation.0010.desc.desc_greeting.baron } random_valid = { triggered_desc = { trigger = { scope:hof = { OR = { has_trait = generous has_trait = profligate ai_greed < medium_negative_greed } } } desc = ach_coronation.0010.desc.desc_first.generous } triggered_desc = { trigger = { scope:hof = { OR = { has_trait = greedy has_trait = avaricious ai_greed > medium_positive_greed } } } desc = ach_coronation.0010.desc.desc_first.greedy } triggered_desc = { trigger = { scope:hof = { OR = { has_trait = compassionate ai_compassion > medium_positive_compassion } } } desc = ach_coronation.0010.desc.desc_first.compassionate } triggered_desc = { trigger = { scope:hof = { OR = { has_trait = cynical ai_zeal < medium_negative_zeal } } } desc = ach_coronation.0010.desc.desc_first.cynical } desc = ach_coronation.0010.desc.desc_first } random_valid = { triggered_desc = { trigger = { scope:hof = { OR = { has_trait = zealous ai_zeal > medium_positive_zeal } } } desc = ach_coronation.0010.desc.desc_second.zealous } triggered_desc = { trigger = { scope:hof = { OR = { has_trait = wrathful has_trait = irritable has_trait = vengeful ai_vengefulness > medium_positive_vengefulness } } } desc = ach_coronation.0010.desc.desc_second.wrathful } triggered_desc = { trigger = { scope:hof = { OR = { has_trait = lustful has_trait = rakish is_incestuous_trigger = yes is_deviant_trigger = yes } } } desc = ach_coronation.0010.desc.desc_second.lustful } triggered_desc = { trigger = { scope:hof = { has_trait = gluttonous } } desc = ach_coronation.0010.desc.desc_second.gluttonous } triggered_desc = { trigger = { scope:hof = { OR = { has_trait = giant has_trait = strong has_trait = physique_good_3 has_trait = physique_good_2 } } } desc = ach_coronation.0010.desc.desc_second.strong } desc = ach_coronation.0010.desc.desc_second } first_valid = { # Universal triggered_desc = { trigger = { scope:hof.faith = { fervor <= 30 } } desc = ach_coronation.0010.desc.desc_ending.low_fervor } # Host triggered_desc = { trigger = { this = scope:host } desc = { first_valid = { triggered_desc = { trigger = { has_trait = excommunicated } desc = ach_coronation.0010.desc.desc_ending.excommunicated_first_person } triggered_desc = { trigger = { ach_coronation_0010_friendly_hof_and_host = yes scope:hof = { opinion = { target = root value >= high_positive_opinion } } } desc = ach_coronation.0010.desc.desc_ending.opinion_very_good_first_person } triggered_desc = { trigger = { ach_coronation_0010_friendly_hof_and_host = yes } desc = ach_coronation.0010.desc.desc_ending.opinion_good_first_person } triggered_desc = { trigger = { ach_coronation_0010_hostile_hof_and_host = yes } desc = ach_coronation.0010.desc.desc_ending.opinion_bad_first_person } desc = ach_coronation.0010.desc.desc_ending.neutral_first_person } } } # Guest triggered_desc = { trigger = { this != scope:host } desc = { first_valid = { triggered_desc = { trigger = { scope:host = { has_trait = excommunicated } } desc = ach_coronation.0010.desc.desc_ending.excommunicated } triggered_desc = { trigger = { ach_coronation_0010_friendly_hof_and_host = yes scope:hof = { opinion = { target = scope:host value >= high_positive_opinion } } } desc = ach_coronation.0010.desc.desc_ending.opinion_very_good } triggered_desc = { trigger = { ach_coronation_0010_friendly_hof_and_host = yes } desc = ach_coronation.0010.desc.desc_ending.opinion_good } triggered_desc = { trigger = { ach_coronation_0010_hostile_hof_and_host = yes } desc = ach_coronation.0010.desc.desc_ending.opinion_bad } desc = ach_coronation.0010.desc.desc_ending.neutral } } } } } left_portrait = { character = scope:greeter_2 animation = horse_conversing_right camera = camera_event_horse_left_facing_left_far } center_portrait = { character = scope:greeter animation = horse_conversing_left camera = camera_event_horse_left_facing_left_very_far } right_portrait = { character = scope:hof # Are they the type to wave at peasants? triggered_animation = { trigger = { ai_compassion >= medium_positive_compassion } animation = jockey_wave } triggered_animation = { trigger = { always = yes } animation = jockey_idle } camera = camera_event_horse_right_facing_left_close } theme = coronation_activity override_background = { reference = market } override_effect_2d = { reference = legend_glow } # Horse and crowd noises instead of normal activity ones override_sound = { reference = "event:/DLC/EP3/SFX/Events/Event_Moments/ep3_evn_eventmoment_chariot_race_pivotal_moment" } immediate = { # Make it sound momentous play_sound_effect = "event:/DLC/EP2/SFX/Events/Grand_Activities/Tournaments/ep2_event_grand_tournament_win" play_sound_effect = "event:/DLC/EP3/SFX/Stingers/Byzantine_Flavor/ep3_mx_sting_byzantineflavor_hold_triumph" involved_activity.var:officiator ?= { save_scope_as = hof } scope:hof.location = { save_scope_as = coronation_site } hidden_effect = { ach_coronation_0010_choose_greeters = yes } show_as_tooltip = { coronation_hof_visit_effect = yes } } option = { # Beg him to unexcommunicate you name = ach_coronation.0010.a trigger = { has_trait = excommunicated faith.religious_head = scope:hof # Not getting off so easy this != scope:host } trait = excommunicated duel = { skill = diplomacy target = scope:hof 50 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -49 } modifier = { # I got a soft spot and not much hate in my heart add = 20 scope:hof = { ai_compassion >= high_positive_compassion opinion = { value >= low_negative_opinion target = root } } } modifier = { add = 5 scope:hof = { has_trait = generous } } modifier = { factor = 2 scope:hof = { has_trait = forgiving } } modifier = { factor = 0.5 scope:hof = { has_trait = vengeful } } min = 5 desc = ach_coronation.0010.a.tt.success send_interface_toast = { title = ach_coronation.0010.a.tt.success left_icon = scope:hof remove_trait = excommunicated stress_impact = { base = major_stress_loss arrogant = minor_stress_loss zealous = major_stress_loss } hidden_effect = { add_opinion = { target = scope:hof modifier = grateful_opinion opinion = 30 } } } } 50 = { # They ignore you compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } modifier = { add = 5 has_trait = arrogant } opinion_modifier = { who = scope:hof opinion_target = scope:host multiplier = 0.5 } min = 5 desc = ach_coronation.0010.a.tt.failure send_interface_toast = { title = ach_coronation.0010.a.tt.failure left_icon = scope:hof add_prestige = minor_prestige_loss if = { limit = { is_ai = yes } } stress_impact = { base = minor_stress_gain shy = minor_stress_loss # Honestly? Thank HighGod } } } 20 = { # They're offended you even asked compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } modifier = { add = 20 OR = { has_trait = shy has_trait = reclusive } } modifier = { add = 5 has_trait = impatient } opinion_modifier = { who = scope:hof opinion_target = root multiplier = -1 } modifier = { factor = 1.5 has_trait = wrathful } min = 5 desc = ach_coronation.0010.a.tt.anger send_interface_toast = { title = ach_coronation.0010.a.tt.anger left_icon = scope:hof reverse_add_opinion = { target = scope:hof modifier = annoyed_opinion opinion = -30 } add_prestige = minor_prestige_loss stress_impact = { base = medium_stress_gain arrogant = minor_stress_gain zealous = minor_stress_gain cynical = medium_stress_loss # Got one good thing out of it at least } } } } ai_chance = { base = 150 modifier = { has_trait = shy factor = 0.5 } modifier = { has_trait = zealous factor = 0.5 } modifier = { has_trait = gregarious factor = 2 } modifier = { has_trait = cynical factor = 2 } # More likely if skilled at diplomacy modifier = { diplomacy > medium_skill_rating factor = 2 } # Less likely if not modifier = { diplomacy <= medium_skill_rating factor = 0.5 } # Way less likely if way not modifier = { diplomacy <= low_skill_rating # Unless you have zero ability to conceive your own diplomatic inferiority NOT = { has_trait = arrogant } factor = 0.5 } } } option = { # "Neat" name = { text = { first_valid = { triggered_desc = { trigger = { has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:hof } } desc = ach_coronation.0010.b.rival } triggered_desc = { trigger = { has_relation_lover = scope:hof } desc = ach_coronation.0010.b.lover } triggered_desc = { trigger = { has_any_good_relationship_with_character_trigger = { CHARACTER = scope:hof } } desc = ach_coronation.0010.b.friend } triggered_desc = { trigger = { faith.religion != scope:hof.faith.religion } desc = ach_coronation.0010.b.heathen } triggered_desc = { trigger = { faith != scope:hof.faith } desc = ach_coronation.0010.b.heretic } triggered_desc = { trigger = { OR = { is_witch_trigger = yes # Also fits if you're hiding your faith any_secret = { secret_type = secret_crypto_religionist } } } desc = ach_coronation.0010.b.witch } triggered_desc = { trigger = { has_trait = cynical } desc = ach_coronation.0010.b.cynical } triggered_desc = { trigger = { has_trait = zealous } desc = ach_coronation.0010.b.zealous } desc = ach_coronation.0010.b } } } if = { limit = { this = scope:host } custom_tooltip = ach_coronation_0010_hof_desc_host.tt } else = { custom_tooltip = ach_coronation_0010_hof_desc_guest.tt } ai_chance = { base = 100 } } } #################################### # Random coronation events # 0011-0499 ## by Jay Zaborowski #################################### # ach_coronation.0011 - Host: You see some potential plotters whispering # ach_coronation.0012 - Host: Vassals squabble over coronation roles # ach_coronation.0013 - Host: You eavesdrop on some peasants # ach_coronation.0014 - Guest: Opportunity to cause a crowd crush # ach_coronation.0015 - Host: There is a crowd crush # ach_coronation.0016 - Guest: You present your host a gift # ach_coronation.0017 - Guest: faith_warrior reacts to the coronation of a non-crusader_king # ach_coronation.0018 - Guest: Close family member of Host sees opportunity # ach_coronation.0020 - Host: Close family member helps manage the coronation # ach_coronation.0022 - Guest: An ongoing plague has shaken a zealous guest # ach_coronation.0023 - Host: An exotic foreign warrior pledges themselves to you # ach_coronation.0025 - Open up drinks to the locals # ach_coronation.0027 - A guest offers some hashish # ach_coronation.0028 - Host: Drinking contest with a detractor # ach_coronation.0029 - Host: Guests offer to help get a hunt going ###################### # Host: You see some potential plotters whispering # 0011 scripted_trigger ach_coronation_0011_eligible_vassal_trigger = { is_physically_able_ai_adult = yes is_vassal_of = involved_activity.activity_host trigger_if = { # Should be someone you'd actually suspect limit = { scope:host = { # But what if they're in on it? NOT = { has_trait = paranoid } } } NOR = { has_any_best_good_relationship_with_character_trigger = { CHARACTER = root } has_trait = loyal } } } scripted_trigger ach_coronation_0011_is_suitable_active_scheme_trigger = { is_scheme_exposed = no hostile_scheme_trigger = yes scheme_target_character = { is_participant_in_activity = involved_activity } } scripted_effect ach_coronation_0011_coward_setup_effect = { save_scope_as = coward if = { # If the plotter has a scheme and the coward's in on it, grab that limit = { scope:hostile_scheme ?= { any_scheme_agent_character = { this = scope:coward } } } scope:hostile_scheme = { save_scope_as = coward_scheme } } else_if = { # If the coward has a scheme of their own, grab that limit = { any_scheme = { ach_coronation_0011_is_suitable_active_scheme_trigger = yes } } random_scheme = { limit = { # Grab any targetting the Host ach_coronation_0011_is_suitable_active_scheme_trigger = yes scheme_target_character = scope:host } alternative_limit = { # Else just one targetting someone at the activity ach_coronation_0011_is_suitable_active_scheme_trigger = yes } save_scope_as = coward_scheme } } else = { # If there is no scheme, they will babble about whatever skeleton they have in their closet if = { limit = { # If they don't have a secret, generate one NOT = { any_secret = { NOT = { is_known_by = scope:host } } } } hidden_effect = { give_random_likely_secret_effect = yes } } random_secret = { limit = { NOT = { is_known_by = scope:host } } save_scope_as = uncovered_secret } } } ach_coronation.0011 = { type = activity_event title = ach_coronation.0011.t desc = ach_coronation.0011.desc left_portrait = { character = root animation = eavesdrop camera = camera_event_very_left } right_portrait = { character = scope:plotter animation = dismissal camera = camera_event_center_pointing_left } center_portrait = { character = scope:coward animation = worry } cooldown = { years = 1 } theme = coronation_activity override_background = { reference = throne_room } trigger = { involved_activity = { any_attending_character = { ach_coronation_0011_eligible_vassal_trigger = yes count >= 2 } } } immediate = { involved_activity = { activity_host = { save_scope_as = host } # Grab a likely ringleader random_attending_character = { limit = { is_powerful_vassal = yes ach_coronation_0011_eligible_vassal_trigger = yes any_scheme = { ach_coronation_0011_is_suitable_active_scheme_trigger = yes } } alternative_limit = { is_powerful_vassal = yes ach_coronation_0011_eligible_vassal_trigger = yes } alternative_limit = { ach_coronation_0011_eligible_vassal_trigger = yes } weight = { base = 1 ach_likely_plotter_modifier = yes modifier = { # Weighted up if there is actually a scheme against a guest any_targeting_scheme = { ach_coronation_0011_is_suitable_active_scheme_trigger = yes } factor = { value = 2 if = { # And ofc if that guest is you limit = { any_targeting_scheme = { scheme_target_character = scope:host } } add = 1 } } } } if = { limit = { any_scheme = { ach_coronation_0011_is_suitable_active_scheme_trigger = yes } } random_scheme = { limit = { ach_coronation_0011_is_suitable_active_scheme_trigger = yes scheme_target_character = scope:host } alternative_limit = { ach_coronation_0011_is_suitable_active_scheme_trigger = yes } save_scope_as = hostile_scheme } } save_scope_as = plotter } # Grab a likely weak-link random_attending_character = { limit = { NOT = { this = scope:plotter } ach_coronation_0011_eligible_vassal_trigger = yes OR = { any_scheme = { ach_coronation_0011_is_suitable_active_scheme_trigger = yes } has_any_secrets = yes # Grab someone with secrets if possible } } alternative_limit = { NOT = { this = scope:plotter } ach_coronation_0011_eligible_vassal_trigger = yes } weight = { base = 1 ach_unlikely_plotter_modifier = yes modifier = { # Grab them if they are actually an agent against you scope:hostile_scheme ?= { any_scheme_agent_character = { this = root } } factor = 4 } } ach_coronation_0011_coward_setup_effect = yes } } } option = { # Break the coward name = ach_coronation.0011.b skill = intrigue flavor = ach_coronation.0011.b.flavor custom_tooltip = ach_coronation.0011.b.tt trigger = { intrigue >= very_high_skill_rating } hidden_effect = { if = { limit = { exists = scope:coward_scheme } send_interface_toast = { type = event_toast_effect_good title = ach_coronation.0011.coward.success left_icon = root right_icon = scope:coward scope:coward_scheme = { expose_scheme = yes } } } else = { send_interface_toast = { type = event_toast_effect_good title = ach_coronation.0011.coward.success left_icon = root right_icon = scope:coward scope:uncovered_secret = { reveal_to = root } } } } if = { limit = { can_add_hook = { target = scope:host type = manipulation_hook } } add_hook = { type = manipulation_hook target = scope:host } } scope:coward = { add_opinion = { target = root modifier = scared_opinion opinion = -20 } add_stress = major_stress_gain add_prestige = minor_prestige_loss } stress_impact = { sadistic = medium_stress_loss trusting = medium_stress_gain compassionate = medium_stress_gain } ai_chance = { base = 100 modifier = { add = { value = 0 add = intrigue multiply = 5 } } opinion_modifier = { opinion_target = scope:coward multiplier = -1 } modifier = { OR = { has_trait = compassionate has_any_good_relationship_with_character_trigger = { CHARACTER = scope:coward } } factor = 0 } modifier = { has_trait = sadistic factor = 2.5 } modifier = { has_trait = callous factor = 2 } modifier = { has_trait = schemer factor = 2 } modifier = { has_trait = trusting factor = 0.5 } modifier = { has_trait = compassionate factor = 0.5 } } } option = { # Arrest the traitors! name = { trigger = { has_trait = paranoid } text = ach_coronation.0011.c.paranoid } name = { trigger = { has_trait = wrathful } text = ach_coronation.0011.c.wrathful } name = ach_coronation.0011.c trait = paranoid trait = arbitrary trigger = { OR = { has_trait = paranoid has_trait = arbitrary has_activity_intent = coronation_weaken_detractors } } imprison_character_effect = { IMPRISONER = root TARGET = scope:plotter } imprison_character_effect = { IMPRISONER = root TARGET = scope:coward } add_dread = medium_dread_gain if = { limit = { scope:activity = { any_attending_character = { is_vassal_of = root has_vassal_stance = belligerent NOT = { is_in_guest_subset = { name = detractor } } NOR = { this = scope:plotter this = scope:coward } } } } coronation_weaken_detractors_opinion_effect = yes } stress_impact = { wrathful = medium_stress_loss arbitrary = medium_stress_loss paranoid = major_stress_loss just = major_stress_gain calm = major_stress_gain } ai_chance = { base = 0 modifier = { add = { value = 0 add = intrigue multiply = 5 } } opinion_modifier = { opinion_target = scope:plotter multiplier = -1 } modifier = { has_trait = irritable add = 25 } modifier = { has_trait = wrathful add = 25 } modifier = { has_trait = arbitrary add = 25 } modifier = { has_trait = paranoid add = 50 } modifier = { has_trait = calm factor = 0.5 } modifier = { OR = { has_trait = just has_trait = compassionate has_any_good_relationship_with_character_trigger = { CHARACTER = scope:plotter } } factor = 0 } } } option = { # Catch HerHim in a lie! name = ach_coronation.0011.a skill = intrigue reverse_add_opinion = { target = scope:plotter modifier = insult_opinion opinion = -20 } duel = { skill = intrigue target = scope:plotter 20 = { compare_modifier = { value = scope:duel_value multiplier = 1 min = -19 } desc = ach_coronation.0011.a.success custom_tooltip = ach_coronation.0011.a.success.tt hidden_effect = { if = { limit = { exists = scope:hostile_scheme } send_interface_toast = { type = event_toast_effect_good title = ach_coronation.0011.scheme.plotter.toast left_icon = root right_icon = scope:plotter scope:hostile_scheme = { expose_scheme = yes } } } else = { send_interface_toast = { type = event_toast_effect_good title = ach_coronation.0011.false.toast left_icon = root right_icon = scope:plotter add_prestige = minor_prestige_loss } } } } 10 = { compare_modifier = { value = scope:duel_value multiplier = -1 min = -9 } desc = ach_coronation.0011.a.failure send_interface_toast = { type = event_toast_effect_good title = ach_coronation.0011.false.toast left_icon = root right_icon = scope:plotter add_prestige = minor_prestige_loss } } } stress_impact = { trusting = medium_stress_gain paranoid = medium_stress_loss } ai_chance = { base = 150 modifier = { intrigue <= mediocre_skill_rating add = -50 } modifier = { has_trait = paranoid factor = 2 } # Don't weight up by a crazy amount - it's already high modifier = { has_trait = schemer factor = 1.25 } modifier = { has_trait = diligent factor = 1.25 } modifier = { OR = { intrigue <= low_skill_rating has_trait = trusting } factor = 0 } } } option = { # Move on name = ach_coronation.0011.d if = { limit = { has_trait = paranoid } add_character_modifier = { modifier = ach_coronation_trusts_nobody_modifier years = 10 } } else_if = { limit = { has_trait = trusting } add_character_modifier = { modifier = ach_coronation_blissful_ignorance_modifier years = 10 } } reverse_add_opinion = { target = scope:plotter modifier = relieved_opinion opinion = 10 } reverse_add_opinion = { target = scope:coward modifier = relieved_opinion opinion = 10 } stress_impact = { # This is somewhat worrying base = minor_stress_gain # Doesn't actually care lazy = minor_stress_loss trusting = minor_stress_loss # Really really cares paranoid = major_stress_gain } ai_chance = { base = 75 opinion_modifier = { opinion_target = scope:plotter } modifier = { OR = { has_trait = paranoid has_trait = deceitful has_intrigue_lifestyle_trait_trigger = yes } factor = 0.1 } modifier = { has_trait = trusting factor = 2 } modifier = { has_trait = lazy factor = 2 } modifier = { has_trait = schemer factor = 0.5 } } } } ###################### # Host: Vassals squabble over coronation roles # 0012 scripted_effect get_random_coronation_object = { # Decided here so the loc is consistent between the description and the options random_list = { # Cultural objects - weighted higher since they're more interesting 10 = { trigger = { OR = { has_culture = culture:irish has_title = title:k_ireland } } set_variable = { name = random_coronation_object value = flag:white_rod } } 10 = { trigger = { has_title = title:e_hre } set_variable = { name = random_coronation_object value = flag:coronation_cloak } } 10 = { trigger = { any_equipped_character_artifact = { artifact_slot_type = regalia } } set_variable = { name = random_coronation_object value = flag:equipped_regalia } } 1 = { trigger = { OR = { faith.religion = religion:eastern_orthodox_religion faith.religion = religion:catholic_religion faith.religion = religion:protestant_religion } } set_variable = { name = random_coronation_object value = flag:apostolic_cross } } 1 = { trigger = { faith = { NOR = { has_doctrine_parameter = unreformed_syncretic_actor_opinion_active has_doctrine_parameter = unreformed } } } set_variable = { name = random_coronation_object value = flag:royal_religioustext } } 1 = { set_variable = { name = random_coronation_object value = flag:sceptre_and_orb } } 1 = { set_variable = { name = random_coronation_object value = flag:coronation_spoon } } 1 = { set_variable = { name = random_coronation_object value = flag:coronation_sword } } 1 = { set_variable = { name = random_coronation_object value = flag:coronation_rings } } } } scripted_trigger is_eligible_random_squabbler = { location = root.location is_physically_able_ai_adult = yes NOR = { this = root involved_activity.var:officiator ?= this } OR = { AND = { is_vassal_of = root highest_held_title_tier >= tier_county } is_close_family_of = root is_councillor_of = root AND = { is_allied_to = root highest_held_title_tier >= tier_county } } } scripted_trigger ach_coronation_0012_mutual_enmity = { save_temporary_scope_as = squabbler_temp scope:activity = { any_attending_character = { NOT = { this = scope:squabbler_temp } is_eligible_random_squabbler = yes #Check that they don't love each other opinion = { target = scope:squabbler_temp value <= 20 } reverse_opinion = { target = scope:squabbler_temp value <= 20 } } } } ach_coronation.0012 = { type = activity_event title = ach_coronation.0012.t desc = ach_coronation.0012.desc left_portrait = { character = root animation = disapproval } center_portrait = { character = scope:first animation = debating } right_portrait = { character = scope:second animation = rage } cooldown = { years = 1 } theme = coronation_activity override_background = { reference = study } trigger = { involved_activity = { has_current_phase = coronation_phase_preparations any_attending_character = { is_eligible_random_squabbler = yes count >= 1 ach_coronation_0012_mutual_enmity = yes } } } immediate = { get_random_coronation_object = yes involved_activity = { activity_host = { save_scope_as = host } random_attending_character = { # Grab two random attendees to be used in loc limit = { is_eligible_random_squabbler = yes highest_held_title_tier >= tier_duchy ach_coronation_0012_mutual_enmity = yes } alternative_limit = { is_eligible_random_squabbler = yes save_temporary_scope_as = squabbler_temp ach_coronation_0012_mutual_enmity = yes } weight = { base = 1 ach_squabbler_modifier = yes # Try to get someone who has a rivalry with another vassal already if possible modifier = { factor = 4 any_relation = { type = rival is_participant_in_activity = scope:activity is_eligible_random_squabbler = yes is_vassal_of = scope:host } } } save_scope_as = first } random_attending_character = { limit = { is_eligible_random_squabbler = yes this != scope:first # Try and get the rival of the first character has_relation_rival = scope:first highest_held_title_tier >= tier_duchy ach_coronation_0012_mutual_enmity = yes } alternative_limit = { is_eligible_random_squabbler = yes this != scope:first # Try and get the rival of the first character has_relation_rival = scope:first ach_coronation_0012_mutual_enmity = yes } alternative_limit = { is_eligible_random_squabbler = yes this != scope:first highest_held_title_tier >= tier_duchy ach_coronation_0012_mutual_enmity = yes } alternative_limit = { is_eligible_random_squabbler = yes this != scope:first ach_coronation_0012_mutual_enmity = yes } weight = { base = 1 ach_squabbler_modifier = yes # Prefer those who hate the first vassal opinion_modifier = { opinion_target = scope:first multiplier = -0.01 } # And those likewise hated by opinion_modifier = { who = scope:first opinion_target = this multiplier = -0.01 } # And a final boost if they have any sort of negative relationship, just in case modifier = { factor = 2 has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:first } } } save_scope_as = second } } } option = { # Vassal 1 is my favorite! name = ach_coronation.0012.a coronation_move_towards_supporter_effect = { CHARACTER = scope:first } coronation_move_towards_detractor_effect = { CHARACTER = scope:second } scope:first = { add_opinion = { target = root modifier = grateful_opinion opinion = 40 } add_prestige = medium_prestige_gain } scope:second = { add_opinion = { target = root modifier = insulted_opinion opinion = -20 } add_prestige = medium_prestige_loss hidden_effect = { if = { limit = { is_ai = yes scope:first = { is_ai = yes } } progress_towards_rival_effect = { REASON = rival_stole_coronation_role CHARACTER = scope:first OPINION = -40 } } } } stress_impact = { fickle = minor_stress_gain } ai_chance = { base = 0 opinion_modifier = { opinion_target = scope:first } opinion_modifier = { opinion_target = scope:second multiplier = -1 } modifier = { has_trait = fickle factor = 0.5 } } } option = { # Vassal 2 so 2 deserves my support! name = ach_coronation.0012.b coronation_move_towards_supporter_effect = { CHARACTER = scope:second } coronation_move_towards_detractor_effect = { CHARACTER = scope:first } scope:second = { add_opinion = { target = root modifier = grateful_opinion opinion = 40 } add_prestige = medium_prestige_gain } scope:first = { add_opinion = { target = root modifier = insulted_opinion opinion = -20 } add_prestige = medium_prestige_loss hidden_effect = { if = { limit = { is_ai = yes scope:second = { is_ai = yes } } progress_towards_rival_effect = { REASON = rival_stole_coronation_role CHARACTER = scope:second OPINION = -40 } } } } stress_impact = { fickle = minor_stress_gain } ai_chance = { base = 0 opinion_modifier = { opinion_target = scope:second } opinion_modifier = { opinion_target = scope:first multiplier = -1 } modifier = { has_trait = fickle factor = 0.5 } } } option = { # You can both do it together! name = ach_coronation.0012.c flavor = ach_coronation.0012.c.flavor trigger = { NOR = { has_trait = diplomatic_court trigger_if = { limit = { has_royal_court = yes } court_grandeur_current_level >= 8 } } } duel = { skill = diplomacy value = 10 50 = { desc = ach_coronation.0012.c.tt.success compare_modifier = { value = scope:duel_value multiplier = 1.5 min = -49 } send_interface_toast = { type = event_toast_effect_good title = ach_coronation.0012.c.tt.success left_icon = root custom_tooltip = coronation_tt_positive_tiny scope:activity = { activity_special_type_progression_tiny = yes } add_diplomacy_lifestyle_xp = medium_lifestyle_experience } coronation_add_magnificence_log_effect = { VALUE = flag:positive_tiny CHAR = root } } 50 = { desc = ach_coronation.0012.c.tt.failure compare_modifier = { value = scope:duel_value multiplier = -1.5 min = -49 } send_interface_toast = { type = event_toast_effect_bad title = ach_coronation.0012.c.tt.failure left_icon = root add_prestige = minor_prestige_loss } scope:first = { if = { limit = { can_set_relation_rival_trigger = { CHARACTER = scope:second } is_ai = yes scope:second = { is_ai = yes } } set_relation_rival = { target = scope:second reason = rival_ruined_coronation_role } } } } } stress_impact = { craven = minor_stress_loss fickle = minor_stress_loss } ai_chance = { base = 0 modifier = { add = 25 OR = { has_trait = craven has_trait = fickle } } modifier = { add = 50 AND = { opinion = { target = scope:first value >= low_positive_opinion } opinion = { target = scope:second value >= low_positive_opinion } } } opinion_modifier = { opinion_target = scope:first multiplier = 0.5 } opinion_modifier = { opinion_target = scope:second multiplier = 0.5 } modifier = { factor = 0 diplomacy < low_skill_rating } } } option = { # I have the perfect idea! name = ach_coronation.0012.d flavor = ach_coronation.0012.d.flavor trigger = { OR = { has_trait = diplomatic_court trigger_if = { # This ain't your first rodeo limit = { has_royal_court = yes } court_grandeur_current_level >= 8 } } } trait = diplomatic_court_1 # Legitimacy gets a lil bump add_legitimacy_effect = { LEGITIMACY = minor_legitimacy_gain } # And the activity gets a small bump as well custom_tooltip = coronation_tt_positive_medium scope:activity = { activity_special_type_progression_medium = yes add_activity_log_entry = { key = coronation_elaborate_ceremony_log score = 25 tags = { positive } character = scope:first target = scope:second } } scope:first = { add_opinion = { target = root modifier = impressed_opinion opinion = 20 } } scope:second = { add_opinion = { target = root modifier = impressed_opinion opinion = 20 } } stress_impact = { arrogant = medium_stress_loss } ai_chance = { base = 150 modifier = { AND = { opinion = { target = scope:first value <= low_negative_opinion } opinion = { target = scope:second value <= low_negative_opinion } } add = -50 } modifier = { has_trait = arrogant factor = 1.5 } modifier = { AND = { opinion = { target = scope:first value < medium_negative_opinion } opinion = { target = scope:second value < medium_negative_opinion } } factor = 0.5 } } } option = { # Neither of you are worthy of touching my random_coronation_object! name = ach_coronation.0012.e scope:first = { add_opinion = { target = root modifier = insulted_opinion opinion = -10 } } scope:second = { add_opinion = { target = root modifier = insulted_opinion opinion = -10 } } add_character_modifier = { modifier = ach_imperious_modifier years = 5 } add_prestige = minor_prestige_gain stress_impact = { impatient = minor_stress_loss lazy = minor_stress_loss arrogant = minor_stress_loss } ai_chance = { base = 50 modifier = { add = 50 AND = { opinion = { target = scope:first value >= low_positive_opinion } opinion = { target = scope:second value >= low_positive_opinion } } } modifier = { add = -50 AND = { opinion = { target = scope:first value <= low_positive_opinion } opinion = { target = scope:second value <= low_positive_opinion } } } modifier = { OR = { has_trait = impatient has_trait = lazy has_trait = callous has_trait = arrogant has_trait = wrathful } factor = 1.5 } opinion_modifier = { opinion_target = scope:first multiplier = 0.5 } opinion_modifier = { opinion_target = scope:second multiplier = 0.5 } } } } ###################### # Host: You eavesdrop on some peasants # 0013 scripted_trigger ach_coronation_0013_claimant_trigger = { # Shouldn't be friendly has_any_good_relationship_with_root_trigger = no is_alive = yes is_adult = yes NOT = { is_courtier_of = scope:host } # Don't include your kids (unless you hate the little bastards) trigger_if = { limit = { has_any_bad_relationship_with_root_trigger = no } NOT = { is_child_of = scope:host } } } scripted_effect ach_coronation_0013_get_eligible_pretender_effect = { scope:host = { if = { limit = { any_held_title = { any_claimant = { ach_coronation_0013_claimant_trigger = yes } } } random_held_title = { # Prefer strong claimants (Who you're thus more likely to also hate) limit = { any_claimant = { has_strong_claim_on = prev ach_coronation_0013_claimant_trigger = yes } } alternative_limit = { any_claimant = { ach_coronation_0013_claimant_trigger = yes } } weight = { # Prefer primary title modifier = { this = scope:host.primary_title factor = 4 } # Prefer higher tier titles modifier = { factor = tier } } random_claimant = { limit = { ach_coronation_0013_claimant_trigger = yes } save_scope_as = claimant } } } } } scripted_effect ach_coronation_0013_get_gossip_type_effect = { random_list = { # More likely to get nice modifiers 200 = { save_scope_value_as = { name = gossip_type value = flag:nice } # Unless you're a tyrant (but some people still like tyrants) modifier = { add = { value = tyranny multiply = -1 } } } 100 = { save_scope_value_as = { name = gossip_type value = flag:mean } modifier = { add = { value = tyranny } } } } } ach_coronation.0013 = { type = activity_event title = ach_coronation.0013.t desc = { desc = ach_coronation.0013.intro first_valid = { triggered_desc = { trigger = { exists = scope:rain_day } desc = ach_coronation.0013.desc_opening.rainy_day } desc = ach_coronation.0013.desc_opening.dry_day } desc = ach_coronation.0013.desc_opening first_valid = { triggered_desc = { trigger = { scope:gossip_type = flag:mean } desc = { random_valid = { desc = ach_coronation.0013.desc_conversation.mean.1 desc = ach_coronation.0013.desc_conversation.mean.2 desc = ach_coronation.0013.desc_conversation.mean.3 desc = { desc = ach_coronation.0013.desc_conversation.mean.4 first_valid = { triggered_desc = { trigger = { has_trait = lustful } desc = ach_coronation.0013.desc_conversation.mean.4.lustful.host } triggered_desc = { trigger = { has_trait = chaste } desc = ach_coronation.0013.desc_conversation.mean.4.chaste } desc = ach_coronation.0013.desc_conversation.mean.4.not_lustful } } desc = ach_coronation.0013.desc_conversation.mean.5 } } } triggered_desc = { trigger = { scope:gossip_type = flag:nice } desc = { random_valid = { desc = ach_coronation.0013.desc_conversation.nice.1 desc = ach_coronation.0013.desc_conversation.nice.2 desc = ach_coronation.0013.desc_conversation.nice.3 desc = ach_coronation.0013.desc_conversation.nice.4 triggered_desc = { trigger = { exists = scope:claimant } desc = ach_coronation.0013.desc_conversation.nice.5 } } } } } } left_portrait = { character = root animation = interested camera = camera_event_table_center_background triggered_animation = { trigger = { scope:gossip_type = flag:mean } animation = shock } triggered_animation = { trigger = { scope:gossip_type = flag:nice } animation = happiness } } center_portrait = { character = scope:peasant animation = wedding_drunk camera = camera_event_table_left_2 hide_info = yes } right_portrait = { character = scope:peasant_2 animation = drink camera = camera_event_table_right_far_2 hide_info = yes } cooldown = { years = 1 } theme = coronation_activity override_background = { reference = alley_day } override_effect_2d = { trigger = { exists = scope:rain_day } reference = rain } trigger = { OR = { involved_activity.var:activity_special_type_progression < 25 location.county = { county_control < 25 } } #V Serious roots NOR = { coronation_host_east_asian_trigger = yes highest_held_title_tier > tier_empire } } # Peasants are less likely to spread rumors about rulers they fear weight_multiplier = { base = 1 compare_modifier = { value = dread multiplier = -0.01 # But sometimes you drink a bit too much with the lads and get y'allselves killed. Opsec, people! min = -0.9 } } immediate = { save_scope_as = host involved_activity = { activity_location.barony.holder = { save_scope_as = baron } } # Generate some gossipy peasants create_character = { location = root.location template = drunken_peasant_character culture = root.location.county.culture faith = root.location.county.faith save_scope_as = peasant after_creation = { # To make sure they fit the event window if = { limit = { has_trait = giant } remove_trait = giant } if = { limit = { has_trait = dwarf } remove_trait = dwarf } } } create_character = { location = root.location template = drunken_peasant_character culture = root.location.county.culture faith = root.location.county.faith save_scope_as = peasant_2 after_creation = { if = { limit = { has_trait = giant } remove_trait = giant } if = { limit = { has_trait = dwarf } remove_trait = dwarf } } } # And stuff for loc random_dummy_gender_effect = yes random_rain_snow_chance_effect = yes ach_coronation_0013_get_eligible_pretender_effect = yes ach_coronation_0013_get_gossip_type_effect = yes } option = { # Weaken Detractors: Focus them on your opponents name = ach_coronation.0013.a.weaken_detractors reason = activity_intent flavor = ach_coronation.0013.a.weaken_detractors.flavor add_internal_flag = special trigger = { has_activity_intent = coronation_weaken_detractors involved_activity = { any_guest_subset = { # There are actually enough people to do this to name = detractor count >= 2 } } } custom_tooltip = two_detractors_get_negative_rumors_tt hidden_effect = { involved_activity = { random_guest_subset = { name = detractor weight = { base = 1 is_of_major_interest_to_weight_up_modifier = { CHARACTER = root } is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root } # Less likely to get rumors to stick on proper political operators modifier = { add = { value = intrigue multiply = -5 } add = { value = diplomacy multiply = -5 } } } add_character_modifier = { modifier = ach_negative_rumors_modifier years = 5 } save_scope_as = detractor_1 } random_guest_subset = { name = detractor weight = { base = 1 is_of_major_interest_to_weight_up_modifier = { CHARACTER = root } is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root } # Less likely to get rumors to stick on proper political operators modifier = { add = { value = intrigue multiply = -5 } add = { value = diplomacy multiply = -5 } } } add_character_modifier = { modifier = ach_negative_rumors_modifier years = 5 } save_scope_as = detractor_2 } } send_interface_toast = { title = ach_coronation.0013.a.weaken_detractors.tt left_icon = scope:detractor_1 right_icon = scope:detractor_2 scope:detractor_1 = { add_character_modifier = { modifier = ach_negative_rumors_modifier years = 5 } } scope:detractor_2 = { add_character_modifier = { modifier = ach_negative_rumors_modifier years = 5 } } } } remove_short_term_gold = minor_gold_value highlight_portrait = scope:peasant highlight_portrait = scope:peasant_2 coronation_weaken_detractors_opinion_effect = yes stress_impact = { arrogant = minor_stress_gain # Talking to peasants shy = minor_stress_gain # Talking to anyone } ai_chance = { base = 100 ai_value_modifier = { ai_rationality = 1 } modifier = { has_trait = arrogant add = -25 } modifier = { has_trait = shy add = -25 } modifier = { has_trait = greedy add = -25 } modifier = { has_trait = profligate add = 25 } modifier = { has_trait = generous add = 25 } modifier = { has_trait = lifestyle_reveler add = 25 } modifier = { has_trait = gregarious factor = 2 } modifier = { has_trait = schemer factor = 2 } modifier = { has_trait = honest factor = 0.5 } } } option = { # Host: Do they have any idea who you are!? name = ach_coronation.0013.c trigger = { scope:gossip_type = flag:mean } skill = diplomacy duel = { skills = { diplomacy prowess } value = medium_skill_rating # you manage to win them over 50 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -49 } desc = ach_coronation.0013.c.tt.success send_interface_toast = { title = ach_coronation.0013.c.tt.success left_icon = root add_prestige = medium_prestige_gain custom_tooltip = coronation_tt_positive_tiny scope:activity = { activity_special_type_progression_tiny = yes } } coronation_add_magnificence_log_effect = { VALUE = flag:positive_tiny CHAR = root } } # The rumors spread further 50 = { compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } desc = ach_coronation.0013.c.tt.failure send_interface_toast = { title = ach_coronation.0013.c.tt.failure left_icon = root add_prestige = minor_prestige_loss add_dread = minor_dread_loss add_character_modifier = { modifier = ach_negative_rumors_modifier years = 5 } } } } stress_impact = { forgiving = minor_stress_gain just = minor_stress_loss wrathful = minor_stress_loss vengeful = minor_stress_loss } ai_chance = { base = 10 modifier = { has_trait = wrathful add = 25 } ai_value_modifier = { ai_boldness = 0.5 ai_sociability = 0.5 } } } option = { # Set the guards on them name = ach_coronation.0013.b trigger = { scope:gossip_type = flag:mean } add_character_modifier = { modifier = ach_negative_rumors_modifier years = 5 } rightfully_imprison_character_less_verbose_effect = { TARGET = scope:peasant IMPRISONER = root } rightfully_imprison_character_less_verbose_effect = { TARGET = scope:peasant_2 IMPRISONER = root } add_tyranny = minor_tyranny_gain add_dread = minor_dread_gain root.location = { add_province_modifier = { modifier = ach_arrested_rumormongers_modifier years = 5 } } add_character_modifier = { modifier = ach_arrested_rumormongers_character_modifier years = 5 } highlight_portrait = scope:peasant stress_impact = { forgiving = medium_stress_gain compassionate = minor_stress_gain calm = miniscule_stress_gain irritable = minor_stress_loss wrathful = medium_stress_loss vengeful = medium_stress_loss } ai_chance = { base = 20 modifier = { has_trait = wrathful add = 25 } modifier = { has_trait = vengeful add = 50 } ai_value_modifier = { ai_boldness = 1 ai_energy = 1 ai_compassion = -1 } } } option = { # Join them name = ach_coronation.0013.d trigger = { scope:gossip_type = flag:nice } add_character_modifier = { modifier = ach_positive_rumors_modifier years = 10 } if = { limit = { has_trait = lifestyle_reveler has_trait_xp = { trait = lifestyle_reveler value < 100 } } add_trait_xp = { trait = lifestyle_reveler value = 10 } } else = { random = { chance = 25 if = { limit = { NOT = { has_trait = lifestyle_reveler } } add_trait = lifestyle_reveler } } } add_prestige = minor_prestige_loss highlight_portrait = scope:peasant highlight_portrait = scope:peasant_2 stress_impact = { base = medium_stress_loss gregarious = minor_stress_loss lifestyle_reveler = minor_stress_loss shy = major_stress_gain arrogant = major_stress_gain } ai_chance = { base = 100 ai_value_modifier = { ai_sociability = 1 } } } option = { # Who cares? name = ach_coronation.0013.e name = { trigger = { scope:gossip_type = flag:mean } text = ach_coronation.0013.e.disagrees } flavor = { first_valid = { triggered_desc = { trigger = { scope:gossip_type = flag:mean } desc = ach_coronation.0013.e.flavor.mean } desc = ach_coronation.0013.e.flavor.nice } } if = { limit = { scope:gossip_type = flag:nice } add_character_modifier = { modifier = ach_positive_rumors_modifier years = 5 } stress_impact = { base = minor_stress_loss } } else = { add_character_modifier = { modifier = ach_negative_rumors_modifier years = 5 } stress_impact = { base = minor_stress_loss vengeful = medium_stress_gain wrathful = minor_stress_gain forgiving = medium_stress_loss } } ai_chance = { base = 10 ai_value_modifier = { ai_boldness = -0.5 ai_sociability = -0.5 ai_energy = -0.5 } } } after = { if = { limit = { scope:peasant = { is_imprisoned = no } } hidden_effect = { scope:peasant = { silent_disappearance_effect = yes } scope:peasant_2 = { silent_disappearance_effect = yes } } } } } ###################### # Guest: Yell fire # 0014 scripted_trigger ach_coronation_0014_random_attendee_trigger = { NOR = { this = scope:host this = scope:crush_initiator involved_activity.var:officiator ?= this } is_available_in_activity_trigger = yes } scripted_effect ach_coronation_0015_crushed_guest_effect = { involved_activity = { # Wound X characters and kill Y % while = { count = $COUNT$ random_attending_character = { limit = { ach_coronation_0014_random_attendee_trigger = yes NOT = { is_in_list = in_crowd_crush } } add_to_list = in_crowd_crush increase_wounds_effect = { REASON = crowd_stampede } create_character_memory = { type = injured_in_crowd_crush_at_coronation_memory participants = { coronation_host = scope:host } } random = { chance = $DEATH_CHANCE$ death = { death_reason = death_crowd_stampede } } } } # Add the stampede modifier root.location = { if = { limit = { NOT = { has_province_modifier = ach_coronation_stampede_modifier } } add_province_modifier = { modifier = ach_coronation_stampede_modifier years = 5 } county = { change_county_control = minor_county_control_loss } } } } } # Crowd crush effects used in tooltips in 0014 and the effects of 0015 scripted_effect ach_coronation_0015_minor_crush_effect = { custom_tooltip = few_guests_wounded hidden_effect = { ach_coronation_0015_crushed_guest_effect = { COUNT = 2 DEATH_CHANCE = 0 } } } scripted_effect ach_coronation_0015_medium_crush_effect = { custom_tooltip = many_guests_wounded hidden_effect = { ach_coronation_0015_crushed_guest_effect = { COUNT = 8 DEATH_CHANCE = 0 } } } scripted_effect ach_coronation_0015_major_crush_effect = { custom_tooltip = many_guests_wounded_or_killed hidden_effect = { ach_coronation_0015_crushed_guest_effect = { COUNT = 12 DEATH_CHANCE = 4 } } } ach_coronation.0014 = { type = activity_event title = ach_coronation.0014.t desc = { desc = ach_coronation.0014.desc first_valid = { triggered_desc = { trigger = { scope:crush_scenario = flag:rain } desc = ach_coronation.0014.desc.weather.rain } triggered_desc = { trigger = { scope:crush_scenario = flag:generic_indoors } desc = ach_coronation.0014.desc.weather.indoors } desc = ach_coronation.0014.desc.weather.clear } first_valid = { triggered_desc = { trigger = { scope:crush_scenario = flag:rain } desc = ach_coronation.0014.desc.reason.rain } triggered_desc = { trigger = { scope:crush_scenario = flag:local_discontent } desc = ach_coronation.0014.desc.reason.local_discontent } triggered_desc = { trigger = { scope:crush_scenario = flag:low_control } desc = ach_coronation.0014.desc.reason.low_control } triggered_desc = { trigger = { scope:crush_scenario = flag:generic_indoors } desc = ach_coronation.0014.desc.reason.generic_indoors } triggered_desc = { trigger = { scope:crush_scenario = flag:generic_outdoors } desc = ach_coronation.0014.desc.reason.generic_outdoors } } first_valid = { triggered_desc = { trigger = { culture = { has_cultural_pillar = language_greek } OR = { has_title = title:e_byzantium top_liege = { has_title = title:e_byzantium } } } desc = ach_coronation.0014.desc.ending.byzantine } triggered_desc = { desc = ach_coronation.0014.desc.ending } } first_valid = { triggered_desc = { trigger = { scope:crush_scenario = flag:generic_indoors } desc = ach_coronation.0014.desc.ending.indoors } desc = ach_coronation.0014.desc.ending.outdoors } } left_portrait = { character = root animation = thinking } center_portrait = { character = scope:peasant animation = rage camera = camera_event_center_pointing_right hide_info = yes } right_portrait = { character = scope:guard animation = threatening camera = camera_event_right_pointing_right hide_info = yes } lower_left_portrait = { character = scope:first } cooldown = { years = 10 } theme = coronation_activity override_background = { trigger = { scope:crush_scenario = flag:generic_indoors } reference = throne_room } override_background = { reference = alley_day } override_effect_2d = { trigger = { exists = scope:rain_day NOT = { scope:crush_scenario = flag:generic_indoors } } reference = rain } trigger = { involved_activity = { activity_host != root # Coronation Splendor is low var:activity_special_type_progression < 25 OR = { # County has low control activity_location.county = { county_control < low_county_control_limit } # County is part of a faction activity_host = { any_targeting_faction = { any_faction_county_member = { this = scope:activity.activity_location.county } } } # There are many powerful detractors any_guest_subset = { name = detractor OR = { # Is a threat to the host AND = { liege = involved_activity.activity_host is_powerful_vassal = yes } highest_held_title_tier >= involved_activity.activity_host.highest_held_title_tier current_military_strength > involved_activity.activity_host.current_military_strength } count >= 4 } } } # You have a reason to do this, or at least consider it coronation_hostile_to_host_trigger = yes involved_activity = { # There are enough people to be impacted by a crush any_attending_character = { is_physically_able_ai = yes this != root count >= 12 } # There is a character we can use for the arrival any_attending_character = { is_landed = yes location = involved_activity.activity_location NOR = { this = involved_activity.activity_host this = root involved_activity.var:officiator ?= this } is_available_in_activity_trigger = yes } # Once per activity NOT = { has_variable = crowd_crush_happened } } } weight_multiplier = { base = 1 # More likely if the coronation isn't going great modifier = { involved_activity = { any_guest_subset = { name = detractor OR = { # Is a powerful vassal AND = { liege = scope:host is_powerful_vassal = yes } # Or a threat to the host highest_held_title_tier >= scope:host.highest_held_title_tier } count >= 3 } } add = 1 } modifier = { involved_activity = { any_guest_subset = { name = detractor OR = { # Is a powerful vassal AND = { liege = scope:host is_powerful_vassal = yes } # Or a threat to the host highest_held_title_tier >= scope:host.highest_held_title_tier } count >= 5 } } add = 1 } modifier = { involved_activity = { any_guest_subset = { name = detractor OR = { # Is a powerful vassal AND = { liege = scope:host is_powerful_vassal = yes } # Or a threat to the host highest_held_title_tier >= scope:host.highest_held_title_tier } count >= 7 } } add = 1 } } immediate = { save_scope_as = crush_initiator involved_activity = { activity_host = { save_scope_as = host } # Grab a random landed attendee to be used in loc random_attending_character = { limit = { ach_coronation_0014_random_attendee_trigger = yes is_landed = yes } weight = { base = 1 modifier = { factor = highest_held_title_tier } # Grab someone important } save_scope_as = first } } # Generate a bodyguard create_character = { location = root.location template = soldier_friend_character culture = scope:first.culture faith = scope:first.faith save_scope_as = guard } create_character = { location = root.location template = servant_character culture = root.location.county.culture faith = root.location.county.faith save_scope_as = peasant } random_rain_snow_chance_effect = yes # Choose a scenario random_list = { 1 = { trigger = { exists = scope:rain_day } save_scope_value_as = { name = crush_scenario value = flag:rain } } 1 = { save_scope_value_as = { name = crush_scenario value = flag:generic_indoors } } 1 = { save_scope_value_as = { name = crush_scenario value = flag:generic_outdoors } } # Prefer non-generic ones 4 = { trigger = { scope:host = { any_targeting_faction = { any_faction_county_member = { this = scope:activity.activity_location.county } } } } save_scope_value_as = { name = crush_scenario value = flag:local_discontent } } 4 = { trigger = { location.county = { county_control < low_county_control_limit } } save_scope_value_as = { name = crush_scenario value = flag:low_control } } } } option = { # Yell fire name = { trigger = { scope:crush_scenario = flag:generic_indoors } text = ach_coronation.0014.a.indoors } name = ach_coronation.0014.a.outdoors add_internal_flag = dangerous duel = { skill = intrigue value = very_high_skill_rating # You spark a riot. 35 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -49 } min = 5 desc = ach_coronation.0014.a.tt.success if = { limit = { scope:crush_scenario != flag:generic_indoors } custom_tooltip = ach_coronation.0014.a.rock hidden_effect = { scope:first = { increase_wounds_effect = { REASON = fight } } } } else = { scope:first = { increase_wounds_effect = { REASON = fight } } } # Effect is fired from the host event hidden_effect = { scope:host = { trigger_event = ach_coronation.0015 } involved_activity = { set_variable = { name = crowd_crush_happened } } } custom_description_no_bullet = { text = if_host_calms_crowd_desc object = scope:host } show_as_tooltip = { ach_coronation_0015_minor_crush_effect = yes } custom_tooltip = ach_coronation.0014.a.tt.host.success custom_description_no_bullet = { text = if_crush_happens_desc object = scope:host } custom_tooltip = many_guests_may_be_wounded_or_killed custom_tooltip = ach_coronation.0014.a.tt.host.failure.magnificence custom_tooltip = ach_coronation.0014.a.tt.host.failure.host custom_tooltip = ach_coronation.0014.a.tt.host.failure.crackdown } # Nobody notices 65 = { compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } min = 10 desc = ach_coronation.0014.a.tt.failure send_interface_toast = { title = ach_coronation.0014.a.tt.failure desc = { desc = ach_coronation.0014.a.tt.failure triggered_desc = { trigger = { scope:crush_scenario = flag:generic_indoors } desc = ach_coronation.0014.a.tt.failure.indoors } } } } } ai_chance = { base = 25 # More likely if you actually have a chance modifier = { intrigue > high_skill_rating add = 25 } modifier = { intrigue > very_high_skill_rating add = 50 } modifier = { has_trait = schemer add = 25 } modifier = { has_trait = callous add = 25 } modifier = { has_trait = sadistic factor = 2 } } stress_impact = { sadistic = medium_stress_impact_loss callous = minor_stress_impact_loss honest = minor_stress_impact_gain content = minor_stress_impact_gain just = medium_stress_impact_gain compassionate = massive_stress_gain } } option = { # These crowds could be useful... name = ach_coronation.0014.b trigger = { custom_tooltip = { text = ach_coronation.0014.b.tt OR = { intrigue >= very_high_skill_rating has_trait = deceitful has_trait = schemer } } } show_as_unavailable = { always = yes } skill = intrigue trait = schemer trait = deceitful add_character_modifier = { modifier = ach_useful_crowds_modifier years = 5 } ai_chance = { base = 150 } } option = { # Go schmooze with the oncoming lord instead name = ach_coronation.0014.c reverse_add_opinion = { modifier = charmed_opinion opinion = 10 target = scope:first } ai_chance = { base = 100 } } after = { hidden_effect = { scope:guard = { silent_disappearance_effect = yes } scope:peasant = { silent_disappearance_effect = yes } } } } ###################### # Host: There is a crowd crush # 0015 ach_coronation.0015 = { type = activity_event title = ach_coronation.0015.t desc = ach_coronation.0015.desc left_portrait = { character = root animation = fear } center_portrait = { character = scope:peasant animation = rage camera = camera_event_crowd hide_info = yes } right_portrait = { character = scope:filthy_peasant animation = beg camera = camera_event_ground hide_info = yes } cooldown = { years = 10 } theme = coronation_activity override_background = { trigger = { location.county.holder = { government_has_flag = government_is_tribal } } reference = market_tribal } override_background = { reference = alley_day } override_effect_2d = { trigger = { exists = scope:rain_day } reference = rain } trigger = { involved_activity = { # Once per activity NOT = { has_variable = crowd_crush_happened } } } immediate = { create_character = { location = root.location template = diseased_peasant_character culture = root.location.county.culture faith = root.location.county.faith save_scope_as = filthy_peasant } create_character = { location = root.location template = servant_character culture = root.location.county.culture faith = root.location.county.faith save_scope_as = peasant } ach_coronation_0015_minor_crush_effect = yes custom_tooltip = ach_coronation.0015.has_happened } option = { # Diplomacy Challenge - Talk them down name = { trigger = { has_trait = august } text = ach_coronation.0015.a.august } name = ach_coronation.0015.a trigger = { diplomacy >= low_skill_rating } show_as_unavailable = { always = yes } skill = diplomacy trait = august duel = { skill = diplomacy value = medium_skill_rating # Your speech stuns the crowd to awed silence 10 = { compare_modifier = { value = scope:duel_value multiplier = 2 min = -49 } modifier = { diplomacy >= high_skill_rating add = 10 } modifier = { has_trait = diplomat add = 20 } desc = ach_coronation.0015.a.tt.critical_success custom_tooltip = coronation_tt_positive_major scope:activity = { activity_special_type_progression_major = yes } coronation_add_magnificence_log_effect = { VALUE = flag:positive_major CHAR = root } # The commoners will remember this add_character_modifier = { modifier = ach_awed_peasantry_modifier years = 10 } # You'll also remember this create_character_memory = { type = calmed_the_crowd_memory } show_as_tooltip = { add_diplomacy_lifestyle_perk_points = 1 } hidden_effect = { send_interface_toast = { title = ach_coronation.0015.a.tt.critical_success custom_tooltip = ach_coronation.0015.a.tt.critical_success.desc left_icon = root type = event_toast_effect_good # Everyone is very impressed add_diplomacy_lifestyle_perk_points = 1 custom_tooltip = { text = coronation_tt_positive_major scope:activity = { activity_special_type_progression_major = yes } } scope:activity = { every_attending_character = { limit = { this != root this != scope:crush_initiator } add_opinion = { target = root modifier = impressed_opinion opinion = 10 } custom = custom.every_activity_guest } } } # Remove the stampede modifier early root.location.county = { remove_county_modifier = ach_coronation_stampede_modifier } # Inform the initiator they failed in a critical persuasian scope:crush_initiator = { send_interface_toast = { title = ach_coronation.0015.a.tt.initiator.critical_failure custom_tooltip = ach_coronation.0015.a.tt.initiator.critical_failure.desc left_icon = root right_icon = scope:host stress_impact = { base = medium_stress_impact_gain irritable = medium_stress_impact_gain } show_as_tooltip = { scope:host = { custom_tooltip = { text = coronation_tt_positive_major scope:activity = { activity_special_type_progression_major = yes } } add_diplomacy_lifestyle_perk_points = 1 } scope:activity = { every_attending_character = { limit = { this != scope:host this != scope:crush_initiator } add_opinion = { target = scope:host modifier = impressed_opinion opinion = 10 } custom = custom.every_activity_guest } } } } } } } # Your speech calms the people 40 = { # If you have the August trait (and higher than low_skill_rating), critical success is free trigger = { NOT = { has_trait = august } } compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -49 } modifier = { has_trait = diplomat add = 30 } desc = ach_coronation.0015.a.tt.success ach_coronation_0015_minor_crush_effect = yes # You'll remember this create_character_memory = { type = calmed_the_crowd_memory } custom_tooltip = coronation_tt_positive_medium scope:activity = { activity_special_type_progression_medium = yes } coronation_add_magnificence_log_effect = { VALUE = flag:positive_medium CHAR = root } hidden_effect = { send_interface_toast = { title = ach_coronation.0015.a.tt.success custom_tooltip = ach_coronation.0015.a.tt.success.desc left_icon = root type = event_toast_effect_good # Everyone is impressed custom_tooltip = coronation_tt_positive_medium scope:activity = { activity_special_type_progression_medium = yes } } # Inform the initiator they failed scope:crush_initiator = { send_interface_toast = { title = ach_coronation.0015.a.tt.initiator.failure custom_tooltip = ach_coronation.0015.a.tt.initiator.failure.desc left_icon = root right_icon = scope:host scope:host = { custom_tooltip = coronation_tt_positive_medium } } } } } # The fools do not listen 40 = { # If you have the August trait (and higher than low_skill_rating), critical success is free trigger = { NOT = { has_trait = august } } compare_modifier = { value = scope:duel_value multiplier = -4 min = -49 } modifier = { # Hard to ignore has_trait = august add = -20 } modifier = { # Hard to get people to listen OR = { has_trait = stuttering has_trait = lisping } add = 10 } desc = ach_coronation.0015.a.tt.failure ach_coronation_0015_medium_crush_effect = yes custom_tooltip = coronation_tt_negative scope:activity = { activity_special_type_progression_negative = yes } coronation_add_magnificence_log_effect = { VALUE = flag:negative CHAR = root } hidden_effect = { send_interface_toast = { title = ach_coronation.0015.a.tt.failure.title desc = ach_coronation.0015.a.tt.failure left_icon = root type = event_toast_effect_bad stress_impact = { base = medium_stress_impact_gain irritable = medium_stress_impact_gain } custom_tooltip = coronation_tt_negative } # Inform the initiator they succeeded scope:crush_initiator = { send_interface_toast = { title = ach_coronation.0015.a.tt.initiator.success desc = ach_coronation.0015.a.tt.initiator.success.desc left_icon = root right_icon = scope:host show_as_tooltip = { scope:host = { stress_impact = { base = medium_stress_impact_gain irritable = medium_stress_impact_gain } custom_tooltip = coronation_tt_negative } } } } } } } if = { limit = { exists = scope:new_memory } scope:new_memory = { set_variable = { name = memory_location value = root.location } } } stress_impact = { callous = minor_stress_impact_gain # Doesn't care shy = minor_stress_impact_gain # Talk to people!? } ai_chance = { base = 200 modifier = { add = -25 has_trait = callous } modifier = { add = -25 has_trait = shy } modifier = { add = -50 has_trait = sadistic } modifier = { add = 25 has_trait = calm } modifier = { add = 50 has_trait = compassionate } modifier = { add = 50 has_trait = gregarious } } } option = { # Physician / Learning - Tend to the wounded name = ach_coronation.0015.b flavor = ach_coronation.0015.b.flavor trigger = { OR = { learning >= high_skill_rating has_trait = lifestyle_physician } } skill = learning trait = lifestyle_physician random = { chance = 25 custom_tooltip = coronation_tt_negative scope:activity = { activity_special_type_progression_negative = yes } coronation_add_magnificence_log_effect = { VALUE = flag:negative CHAR = root } } add_piety = major_piety_gain add_learning_lifestyle_xp = medium_lifestyle_experience show_as_tooltip = { scope:activity = { every_attending_character = { limit = { is_ai = yes } custom = every_wounded_guest_in_crowd_scope_tt show_as_tooltip = { add_character_modifier = { modifier = ach_coronation_treated_wound_modifier years = 5 } add_opinion = { target = root modifier = thankful_opinion opinion = 20 } } } } } hidden_effect = { every_in_list = { list = in_crowd_crush add_opinion = { target = root modifier = thankful_opinion opinion = 20 } add_character_modifier = { modifier = ach_coronation_treated_wound_modifier years = 5 } } # Inform the initiator they failed scope:crush_initiator = { send_interface_toast = { title = ach_coronation.0015.a.tt.initiator.failure custom_tooltip = ach_coronation.0015.a.tt.initiator.failure.physician.desc left_icon = root right_icon = scope:host show_as_tooltip = { scope:host = { custom_tooltip = coronation_tt_positive_medium add_piety = major_piety_gain } } } } } stress_impact = { arrogant = medium_stress_impact_gain # "Peasant blood? On *my* hands?" sadistic = medium_stress_impact_gain # "No wait this is great let's just watch" compassionate = major_stress_impact_loss # "Mass casualty events are bad :(((" ~ local buzzkill } ai_chance = { base = 300 modifier = { add = 100 has_trait = compassionate } modifier = { add = -100 has_trait = sadistic } modifier = { add = -100 has_trait = arrogant } } } option = { # Set the guards on them! name = { trigger = { primary_title = { has_variable = founded_varangian_guard } } text = ach_coronation.0015.d.byzantines } name = ach_coronation.0015.d trait = overseer add_internal_flag = dangerous add_dread = miniscule_dread_gain random_list = { 1 = { # The soldiers go too far ach_coronation_0015_major_crush_effect = yes add_tyranny = medium_tyranny_gain hidden_effect = { # Inform the initiator they succeeded scope:crush_initiator = { send_interface_toast = { title = ach_coronation.0015.a.tt.initiator.critical_success custom_tooltip = ach_coronation.0015.a.tt.initiator.critical_success.desc left_icon = root right_icon = scope:host show_as_tooltip = { scope:host = { ach_coronation_0015_major_crush_effect = yes add_tyranny = medium_tyranny_gain add_dread = miniscule_dread_gain } } } } } } 2 = { # The soldiers kill a bunch of people but restore order ach_coronation_0015_medium_crush_effect = yes add_tyranny = minor_tyranny_gain hidden_effect = { # Inform the initiator they failed scope:crush_initiator = { send_interface_toast = { title = ach_coronation.0015.a.tt.initiator.failure custom_tooltip = ach_coronation.0015.a.tt.initiator.failure.crackdown.desc left_icon = root right_icon = scope:host show_as_tooltip = { scope:host = { ach_coronation_0015_medium_crush_effect = yes add_dread = miniscule_dread_gain add_character_modifier = { modifier = ach_coronation_crackdown_character_modifier years = 5 } } } } } } } 3 = { # The crowds disperse before many are killed ach_coronation_0015_minor_crush_effect = yes hidden_effect = { # Inform the initiator they failed scope:crush_initiator = { send_interface_toast = { title = ach_coronation.0015.a.tt.initiator.failure custom_tooltip = ach_coronation.0015.a.tt.initiator.failure.crackdown.desc left_icon = root right_icon = scope:host show_as_tooltip = { scope:host = { ach_coronation_0015_minor_crush_effect = yes add_character_modifier = { modifier = ach_coronation_crackdown_character_modifier years = 5 } add_dread = miniscule_dread_gain } } } } } } } if = { limit = { NOT = { has_trait = overseer } } custom_tooltip = coronation_tt_negative scope:activity = { activity_special_type_progression_negative = yes } coronation_add_magnificence_log_effect = { VALUE = flag:negative CHAR = root } } else = { custom_tooltip = because_you_have_overseer_tt } add_character_modifier = { modifier = ach_coronation_crackdown_character_modifier years = 5 } root.location = { add_province_modifier = { modifier = ach_coronation_crackdown_modifier years = 5 } county = { change_development_progress = medium_development_progress_loss } } stress_impact = { compassionate = medium_stress_impact_gain arrogant = minor_stress_impact_loss # Loves calling guards on the commons # Loves seeing guards beat people callous = medium_stress_impact_loss sadistic = medium_stress_impact_loss overseer = minor_stress_impact_loss } ai_chance = { base = 100 modifier = { add = -50 has_trait = compassionate } modifier = { add = 25 has_trait = arbitrary } modifier = { add = 25 has_trait = arrogant } modifier = { add = 50 has_trait = sadistic } modifier = { add = 50 has_trait = callous } modifier = { add = 50 has_trait = overseer } } } option = { # Getting coronated - Who cares name = ach_coronation.0015.e random = { chance = 50 custom_tooltip = coronation_tt_negative scope:activity = { activity_special_type_progression_negative = yes } coronation_add_magnificence_log_effect = { VALUE = flag:negative CHAR = root } } ach_coronation_0015_medium_crush_effect = yes add_prestige = minor_prestige_loss hidden_effect = { # Inform the initiator they succeeded scope:crush_initiator = { send_interface_toast = { title = ach_coronation.0015.a.tt.initiator.success custom_tooltip = ach_coronation.0015.a.tt.initiator.success.desc left_icon = root right_icon = scope:host show_as_tooltip = { scope:host = { stress_impact = { base = medium_stress_impact_gain irritable = medium_stress_impact_gain } add_prestige = minor_prestige_loss add_piety = minor_piety_loss custom_tooltip = coronation_tt_negative } } } } } stress_impact = { arrogant = minor_stress_impact_loss callous = minor_stress_impact_loss sadistic = medium_stress_impact_loss craven = medium_stress_impact_loss brave = medium_stress_impact_gain compassionate = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { add = -50 has_trait = compassionate } modifier = { add = -50 has_trait = brave } modifier = { add = 25 has_trait = craven } modifier = { add = 25 has_trait = sadistic } modifier = { add = 25 has_trait = callous } modifier = { add = 25 has_trait = arrogant } } } after = { hidden_effect = { scope:peasant = { silent_disappearance_effect = yes } scope:filthy_peasant = { silent_disappearance_effect = yes } } } } ###################### # Guest: You present your host a gift # 0016 scripted_trigger ach_coronation_0016_eligible_artifact = { NOR = { artifact_slot_type = helmet artifact_slot_type = regalia has_variable = banner_house has_variable = banner_dynasty has_variable = 1025_treasure_map } artifact_durability > 10 } scripted_trigger ach_coronation_0016_can_be_swayed_trigger = { NOR = { is_in_guest_subset = { name = detractor } is_in_guest_subset = { name = supporter } } is_ai = yes is_vassal_of = involved_activity.activity_host NOR = { has_trait = disloyal has_trait = loyal } } scripted_effect liege_reward_effect = { switch = { trigger = has_activity_intent coronation_bear_witness = { if = { limit = { has_legitimacy = yes } add_legitimacy = minor_legitimacy_gain } else_if = { limit = { government_allows = administrative top_liege = involved_activity.activity_host } change_influence = medium_influence_gain } else = { add_prestige = medium_prestige_gain } } coronation_offer_support = { reverse_add_opinion = { target = scope:host modifier = thankful_opinion opinion = 30 years = 10 } custom_tooltip = { text = coronation_tt_positive_medium scope:activity = { activity_special_type_progression_medium = yes } } coronation_add_magnificence_log_effect = { VALUE = flag:positive CHAR = root } } coronation_advocate_domain = { capital_county = { add_county_modifier = { modifier = ach_liege_subsidies_modifier years = 10 } } } coronation_profess_rights = { if = { limit = { can_add_hook = { target = scope:host type = favor_hook } } random = { chance = 33 add_hook = { target = scope:host type = favor_hook } } } else = { reverse_add_opinion = { target = scope:host modifier = thankful_opinion opinion = 10 years = 10 } if = { limit = { has_lifestyle = stewardship_lifestyle } add_stewardship_lifestyle_xp = minor_lifestyle_xp } else = { add_diplomacy_lifestyle_xp = minor_lifestyle_xp } } } coronation_seize_advantages = { if = { limit = { government_allows = administrative top_liege = involved_activity.activity_host } change_influence = medium_influence_gain } else = { add_prestige = medium_prestige_gain } } } if = { limit = { NOT = { has_activity_intent = coronation_offer_support } } reverse_add_opinion = { modifier = grateful_opinion target = scope:host opinion = 15 } } custom_tooltip = ach_coronation.0016.reward.tt } ach_coronation.0016 = { type = activity_event title = ach_coronation.0016.t desc = ach_coronation.0016.desc theme = coronation_activity left_portrait = { character = root animation = obsequious_bow } right_portrait = { character = scope:host animation = interested } artifact = { trigger = { exists = scope:gifted_artifact } target = scope:gifted_artifact position = lower_center_portrait } cooldown = { years = 1 } override_background = { reference = throne_room } trigger = { is_physically_able = yes involved_activity = { activity_host = { this != root is_ai = yes } any_attending_character = { ach_coronation_0016_can_be_swayed_trigger = yes this != root } } NOR = { trigger_if = { limit = { is_ai = yes } is_in_guest_subset = { name = detractor } } trigger_else = { involved_activity = { is_target_in_variable_list = { name = major_detractor target = root } } } has_activity_intent = coronation_disrupt_loyalists } } immediate = { involved_activity = { activity_host = { save_scope_as = host } ordered_attending_character = { limit = { ach_coronation_0016_can_be_swayed_trigger = yes this != root } order_by = { value = 0 add = "opinion(root)" subtract = "opinion(scope:host)" if = { # Prefer powerful vassals limit = { is_powerful_vassal = no } multiply = 0.75 } } save_scope_as = detractor } } if = { limit = { any_character_artifact = { ach_coronation_0016_eligible_artifact = yes } } ordered_character_artifact = { # Try and give away the worst one first order_by = { value = 1 if = { limit = { is_equipped = no } add = 100 } if = { limit = { rarity = common } add = 15 } if = { limit = { rarity = masterwork } add = 10 } if = { limit = { rarity = famed } add = 5 } if = { limit = { NOT = { creator = root } } add = 10 } } save_scope_as = gifted_artifact } } } option = { # A: Martial - Promise Troops name = ach_coronation.0016.a.martial trigger = { highest_skill = martial martial >= good_skill_level } scope:host = { if = { limit = { root = { government_has_flag = government_is_nomadic } } spawn_army = { name = event_troop_default_name location = capital_province inheritable = no men_at_arms = { type = nomadic_riders stacks = { value = gok_nomadic_riders_small_value divide = 6 } } men_at_arms = { type = steppe_raiders stacks = 2 } } } else = { spawn_army = { name = event_troop_default_name location = capital_province inheritable = no levies = { add = max_military_strength multiply = 0.20 } men_at_arms = { type = pikemen_unit stacks = 2 } } } } if = { limit = { government_has_flag = government_is_nomadic } add_character_modifier = { modifier = ach_coronation_expended_resources_martial_nomad_modifier years = 5 } } else = { add_character_modifier = { modifier = ach_coronation_expended_resources_martial_modifier years = 5 } } add_martial_lifestyle_xp = minor_lifestyle_xp liege_reward_effect = yes ai_chance = { base = 100 } } option = { # A: Stewardship - Organize Donations name = ach_coronation.0016.a.stewardship trigger = { highest_skill = stewardship stewardship >= good_skill_level } if = { limit = { has_trait = greedy } # Custom tooltip since flavor text isn't triggerable custom_tooltip = ach_coronation.0016.a.stewardship.greedy.tt } else = { pay_short_term_gold = { target = scope:host gold = tiny_gold_value } } involved_activity = { every_attending_character = { limit = { is_ai = yes this != root is_vassal_or_below_of = scope:host NOT = { has_trait = disloyal } } custom = every_non_disloyal_vassal_attendee_tt pay_short_term_gold = { target = scope:host gold = tiny_gold_value } add_opinion = { target = root modifier = annoyed_opinion opinion = -10 } } } liege_reward_effect = yes ai_chance = { base = 100 } } option = { # A: Diplomacy - Turn a Detractor name = ach_coronation.0016.a.diplomacy trigger = { highest_skill = diplomacy diplomacy >= good_skill_level exists = scope:detractor } involved_activity = { every_attending_character = { custom = every_detractor_tt limit = { is_in_guest_subset = { name = detractor } } add_opinion = { target = root modifier = annoyed_opinion opinion = -15 } } } coronation_move_towards_supporter_effect = { CHARACTER = scope:detractor } scope:detractor = { add_opinion = { target = scope:host modifier = impressed_opinion opinion = 20 } } liege_reward_effect = yes } option = { # A: Intrigue - Offer Spies name = ach_coronation.0016.a.intrigue trigger = { highest_skill = intrigue intrigue >= good_skill_level } scope:host = { add_character_modifier = { modifier = ach_coronation_little_birds_modifier years = 5 } if = { limit = { has_trait = paranoid } add_stress = medium_stress_loss } } add_character_modifier = { modifier = ach_coronation_expended_resources_intrigue_modifier years = 5 } liege_reward_effect = yes add_intrigue_lifestyle_xp = minor_lifestyle_xp ai_chance = { base = 100 modifier = { has_trait = schemer add = 25 } } } option = { # A: Learning - Appeal to Church name = ach_coronation.0016.a.learning trigger = { highest_skill = learning learning >= good_skill_level } scope:host = { add_character_modifier = { modifier = ach_coronation_theocratic_allies_modifier years = 5 } } liege_reward_effect = yes add_piety = medium_piety_loss ai_chance = { base = 100 modifier = { has_trait = zealous add = 50 } } } option = { # A: Fallback - Become Loyal and give a hook name = ach_coronation.0016.a.loyal trigger = { NOR = { martial >= good_skill_level stewardship >= good_skill_level diplomacy >= good_skill_level intrigue >= good_skill_level learning >= good_skill_level } NOR = { has_trait = loyal has_trait = disloyal } } add_trait = loyal scope:host = { add_hook = { type = loyalty_hook target = root } } liege_reward_effect = yes ai_chance = { base = 100 modifier = { has_trait = ambitious add = 75 } modifier = { has_trait = content add = 75 } modifier = { has_trait = lazy add = 50 } } stress_impact = { base = minor_stress_impact_gain ambitious = medium_stress_impact_gain content = medium_stress_impact_loss lazy = medium_stress_impact_loss } } option = { # B: Host has Impress Attendees name = ach_coronation.0016.b.impress_attendees name = { trigger = { OR = { has_trait = lifestyle_poet has_court_position = court_musician_court_position has_court_position = court_poet_court_position } } text = ach_coronation.0016.b.impress_attendees.writer } trigger = { scope:host = { has_activity_intent = coronation_impress_attendees } prestige_level >= high_prestige_level } involved_activity = { every_attending_character = { custom = activity_every_attendee_tt add_opinion = { target = scope:host modifier = impressed_opinion opinion = 10 } } } reason = prestige_level reason = host_activity_intent liege_reward_effect = yes if = { limit = { NOT = { has_activity_intent = coronation_seize_advantages } } add_prestige = medium_prestige_loss } else = { add_stress = minor_stress_gain } } option = { # B: Host has Embrace Supporters name = ach_coronation.0016.b.bonds trigger = { scope:host = { has_activity_intent = coronation_embrace_supporters } OR = { diplomacy > medium_skill_rating has_trait = gregarious } is_in_guest_subset = { name = supporter } } reason = host_activity_intent scope:host = { add_prestige = minor_prestige_gain } liege_reward_effect = yes involved_activity = { every_attending_character = { custom = every_supporter_activity limit = { is_in_guest_subset = { name = supporter } } add_prestige = minor_prestige_gain } } if = { limit = { NOT = { has_activity_intent = coronation_seize_advantages } } add_prestige = medium_prestige_loss } else = { add_stress = minor_stress_gain } } option = { # C: Give artifact name = ach_coronation.0016.c.artifact trigger = { exists = scope:gifted_artifact } scope:gifted_artifact = { set_variable = { name = suppress_artifact_notifications value = yes days = 1 } set_variable = { name = gifted_artifact value = yes days = 1825 } set_owner = { target = scope:host history = { location = root.location actor = root recipient = scope:host type = given } } } liege_reward_effect = yes if = { limit = { scope:gifted_artifact = { OR = { rarity = illustrious rarity = famed } } } dynasty ?= { add_dynasty_prestige = minor_dynasty_prestige_gain } } else_if = { limit = { scope:gifted_artifact = { rarity = masterwork } } dynasty ?= { add_dynasty_prestige = miniscule_dynasty_prestige_gain } } ai_chance = { base = 100 modifier = { has_trait = greedy add = -25 } modifier = { has_trait = avaricious add = -25 } modifier = { has_trait = disloyal add = -50 } modifier = { has_trait = loyal add = 50 } } stress_impact = { greedy = minor_stress_impact_gain avaricious = minor_stress_impact_gain disloyal = medium_stress_impact_gain loyal = medium_stress_impact_loss } } option = { # C: Fallback: Give gold name = ach_coronation.0016.c.gold trigger = { NOT = { exists = scope:gifted_artifact } } pay_short_term_gold = { gold = medium_gold_value target = scope:host } liege_reward_effect = yes ai_chance = { base = 100 # More likely if you actually have a chance modifier = { has_trait = avaricious add = -50 } modifier = { has_trait = generous add = 25 } modifier = { has_trait = greedy add = -25 } modifier = { has_trait = loyal add = 50 } modifier = { has_trait = disloyal add = -50 } modifier = { has_trait = improvident add = 50 } } stress_impact = { generous = minor_stress_impact_loss greedy = minor_stress_impact_gain avaricious = minor_stress_impact_gain improvident = medium_stress_impact_loss loyal = medium_stress_impact_loss disloyal = medium_stress_impact_gain } } option = { # D: I'm good, thanks name = { trigger = { has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:host } } text = ach_coronation.0016.d.hate } name = ach_coronation.0016.d if = { limit = { has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:host } } reverse_add_opinion = { target = scope:host modifier = insulted_opinion opinion = -5 } } ai_chance = { base = 100 # More likely if you actually have a chance modifier = { has_trait = greedy add = 25 } modifier = { has_trait = disloyal add = 25 } modifier = { has_trait = loyal add = -25 } } stress_impact = { greedy = minor_stress_impact_loss disloyal = minor_stress_impact_loss loyal = minor_stress_impact_gain } } } ###################### # Guest: faith_warrior reacts to the coronation of a non-crusader_king # by Jay Zaborowski # 0017 scripted_trigger ach_coronation_0017_crusader_trigger = { OR = { has_trait = faith_warrior has_trait = crusader_king } } ach_coronation.0017 = { type = activity_event title = ach_coronation.0017.t desc = { desc = ach_coronation.0017.desc first_valid = { triggered_desc = { # You're the host and not in immediate danger trigger = { scope:guest = { ach_coronation_0017_crusader_trigger = yes } } desc = ach_coronation.0017.ending.crusader } desc = ach_coronation.0017.ending.civilian } } left_portrait = { character = root animation = dismissal camera = camera_event_group_talking_left_left } center_portrait = { character = scope:guest animation = interested_left camera = camera_event_group_talking_left_center } right_portrait = { character = scope:host animation = prayer camera = camera_event_kneeling } theme = coronation_activity cooldown = { years = 1 } override_background = { reference = temple } trigger = { # Crusades are a thing religion = { exists = var:variable_ghw_unlocked } # You're some brand of crusader ach_coronation_0017_crusader_trigger = yes involved_activity = { # This beta-ruler dork is not activity_host = { is_ai = yes religion = root.religion # Can be a Faith Warrior but isn't can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = this } ach_coronation_0017_crusader_trigger = no # And is of fighting age is_adult = yes is_old_character = no } # Make sure there's actually someone to talk to any_attending_character = { is_available_in_activity_trigger = yes this != root this != involved_activity.activity_host } } } immediate = { involved_activity = { activity_host = { save_scope_as = host } random_attending_character = { limit = { is_available_in_activity_trigger = yes this != root this != scope:host } weight = { base = 1 # Prefer interesting characters modifier = { add = 10 is_of_major_interest_to_root_trigger = yes } modifier = { add = 5 is_of_minor_interest_to_root_trigger = yes } # Prefer pot-stirrers modifier = { OR = { has_trait = deceitful has_trait = education_intrigue has_trait = schemer has_activity_intent = coronation_disrupt_loyalists AND = { is_ai = yes is_in_guest_subset = { name = detractor } } } add = 10 } # And someone who's willing to talk to you opinion_modifier = { opinion_target = root multiplier = 0.5 } # And who's willing to talk trash about the Host opinion_modifier = { opinion_target = scope:host multiplier = -1 } # And who isn't also a crusader modifier = { factor = 0.5 ach_coronation_0017_crusader_trigger = yes } } save_scope_as = guest } } } option = { # Offer Support - You give an endorsement name = { trigger = { OR = { faith.religion = religion:eastern_orthodox_religion faith.religion = religion:catholic_religion faith.religion = religion:protestant_religion } } text = ach_coronation.0017.a.christian } name = ach_coronation.0017.a trigger = { has_activity_intent = coronation_offer_support prestige_level >= 3 } show_as_unavailable = { has_activity_intent = coronation_offer_support } reason = activity_intent add_internal_flag = special add_prestige = medium_prestige_gain # Good publicity add_piety = medium_piety_loss scope:host = { add_opinion = { target = root modifier = appreciation_opinion opinion = 20 } if = { limit = { opinion = { target = root value > 20 } OR = { is_ai = yes AND = { root = { is_ai = no } is_ai = no } } } progress_towards_friend_effect = { REASON = friend_crusader_endorsement CHARACTER = root OPINION = 0 } } else = { add_opinion = { target = root modifier = friendliness_opinion opinion = 20 } } add_prestige = major_prestige_gain add_piety = medium_piety_gain } involved_activity = { every_attending_character = { limit = { is_vassal_of = scope:host has_vassal_stance = zealot # They don't know what it's really like out there, man ach_coronation_0017_crusader_trigger = no } custom = every_zealot_vassal_guest_tt add_opinion = { target = scope:host modifier = crusader_endorsement_opinion } } every_attending_character = { limit = { # Thinks this is sort of denigrating ach_coronation_0017_crusader_trigger = yes this != root } custom = every_faith_warrior_guest_tt add_opinion = { target = root modifier = crusader_sellout_opinion } } } ai_chance = { base = 200 # Offer Support means they probably want to do this opinion_modifier = { opinion_target = scope:host } # Cynical character's are less likely to do this modifier = { has_trait = cynical factor = { value = 0.5 # But hey, politics # But some still won't misrepresent themselves if = { limit = { has_trait = honest } add = -0.5 } # "What do you mean I was in it for the money? Me?" if = { limit = { OR = { has_trait = deceitful has_trait = schemer } } add = 0.5 } } } } } option = { # Disrupt Loyalists - You publicly shame HerHim name = ach_coronation.0017.b trigger = { piety_level >= scope:host.piety_level has_activity_intent = coronation_disrupt_loyalists } show_as_unavailable = { has_activity_intent = coronation_disrupt_loyalists } reason = activity_intent custom_tooltip = available_because_piety_vs_host_tt add_prestige = medium_prestige_gain add_piety = major_piety_gain involved_activity = { every_attending_character = { limit = { is_vassal_of = scope:host has_vassal_stance = zealot } custom = every_zealot_vassal_guest_tt add_opinion = { target = scope:host modifier = impious_opinion opinion = -15 } } } scope:host = { add_opinion = { target = root modifier = shamed_me_opinion opinion = -25 } add_prestige = medium_prestige_loss add_piety = medium_piety_loss } ai_chance = { base = 0 opinion_modifier = { opinion_target = scope:host multiplier = -1 } # Far more likely if Arrogant or Wrathful and they dislike the person modifier = { OR = { has_trait = arrogant has_trait = wrathful } opinion = { target = root value < 0 } factor = 2 } # Opinion matters more than these but might tip the scales modifier = { has_trait = zealous add = 15 } # Far less likely in general modifier = { has_trait = shy factor = 0.5 } modifier = { has_trait = humble factor = 0.5 } modifier = { has_trait = calm factor = 0.5 } modifier = { has_trait = compassionate factor = 0.5 } # Cynical characters might just refuse to even think of it modifier = { has_trait = cynical factor = { value = 0 # Would never # Would consider lying for clout if = { limit = { intrigue >= low_skill_rating NOT = { has_trait = honest } } add = 0.5 } # Would actually *looove* to lie about, like, anything really if = { limit = { OR = { has_trait = deceitful has_trait = schemer } # But probably won't if they're chill opinion = { target = root value > low_positive_opinion } } multiply = 4 } } } } stress_impact = { # Doesn't care that much, but can be doing this cynically cynical = minor_stress_impact_gain # Doesn't like the attention shy = minor_stress_impact_gain humble = medium_stress_impact_gain # Conflict-averse calm = minor_stress_impact_gain compassionate = medium_stress_impact_gain # Not so much arrogant = medium_stress_impact_loss wrathful = medium_stress_impact_loss zealous = minor_stress_impact_loss } } option = { # Bah, I shall focus on prayer name = ach_coronation.0017.c add_piety = medium_piety_gain add_character_modifier = { modifier = ach_focusing_on_prayer_modifier years = 5 } stress_impact = { # Is annoyed by it base = medium_stress_impact_gain # Does *not* want to pray, actually cynical = major_stress_impact_gain # Is *very* annoyed by it arrogant = minor_stress_impact_gain # But it's not all bad humble = minor_stress_impact_loss # Because I don't care *that* much zealous = minor_stress_impact_loss # Because I love prayer shy = minor_stress_impact_loss # Because if I pray you'll shut up } ai_chance = { base = 100 modifier = { has_trait = arrogant factor = 0.5 } modifier = { has_trait = humble factor = 2 } modifier = { has_trait = zealous factor = 2 } modifier = { has_trait = shy factor = 2 } modifier = { has_trait = cynical factor = 0 } } } option = { # It's not a competition, fool! name = ach_coronation.0017.d name = { trigger = { OR = { has_trait = cynical has_trait = humble has_trait = shy } NOT = { has_trait = arrogant } } text = ach_coronation.0017.d.cynical # Literally who cares } # Not making a big deal of it is respected add_prestige = minor_prestige_gain add_piety = minor_piety_gain scope:guest = { add_opinion = { target = root modifier = respect_opinion opinion = 10 } } stress_impact = { # No Zealot impact because the player can interpret this either way arrogant = medium_stress_impact_gain # You *do* deserve it more humble = medium_stress_impact_loss shy = medium_stress_impact_loss # Actually it's sort of nice } ai_chance = { base = 100 modifier = { has_trait = arrogant factor = 0.5 } modifier = { has_trait = humble factor = 2 } modifier = { has_trait = shy factor = 2 } } } } ###################### # Guest: Close family member of Host sees opportunity # 0018 scripted_trigger ach_coronation_0018_eligible_family_member_trigger = { #You can't just give stress and stuff to players is_ai = yes is_available_in_activity_trigger = yes this != scope:host is_close_or_extended_family_of = scope:host NOT = { has_trait = disloyal } trigger_if = { # For ach_coronation.0020 limit = { is_ai = yes } opinion = { target = scope:host value >= low_positive_opinion } } } scripted_trigger ach_coronation_0018_grantable_title_trigger = { tier = tier_county this != scope:host.capital_county } scripted_effect ach_coronation_0018_choose_title_effect = { scope:host = { random_held_title = { limit = { ach_coronation_0018_grantable_title_trigger = yes } weight = { base = 100 # Prefer worse titles modifier = { add = { value = development_level multiply = -1 } } # Even more if it's some backwards other-language hellhole modifier = { culture != scope:host.culture factor = 2 } modifier = { faith != scope:host.faith factor = 2 } } save_scope_as = grantable_title } } } ach_coronation.0018 = { type = activity_event title = ach_coronation.0018.t desc = { desc = ach_coronation.0018.desc first_valid = { triggered_desc = { # There's a Seneschal trigger = { scope:servant_boss = { has_court_position = seneschal_court_position } } desc = ach_coronation.0018.desc.seneschal } triggered_desc = { # There's a Steward trigger = { scope:servant_boss = { has_council_position = councillor_steward } } desc = ach_coronation.0018.desc.steward } triggered_desc = { # There is no Seneschal or Steward trigger = { NOT = { exists = scope:servant_boss } } desc = ach_coronation.0018.desc.fallback } } first_valid = { triggered_desc = { trigger = { exists = scope:servant_boss } desc = ach_coronation.0018.desc.ending.servant_boss } desc = ach_coronation.0018.desc.ending.no_servant_boss } } left_portrait = { character = root animation = thinking camera = camera_event_left } center_portrait = { character = scope:servant triggered_animation = { trigger = { exists = scope:servant_boss } animation = throne_room_messenger_3 } animation = stress camera = camera_event_right_pointing_left_fov50 hide_info = yes } right_portrait = { character = scope:servant_boss animation = stress camera = camera_event_very_right_fov50 } lower_left_portrait = { character = scope:host } weight_multiplier = { base = 1 # Far more likely if there is no Seneschal modifier = { NOT = { exists = court_position:seneschal_court_position } factor = 3 } # If there is a Seneschal than low Aptitude raises likeliness activity_court_position_aptitude_negative_modifier = { LIEGE = root POS = seneschal } } theme = coronation_activity cooldown = { years = 1 } override_background = { trigger = { #Do not want generic courtyard calling up Constantinople for this one location.county = title:c_byzantion } reference = bp2_courtyard } override_background = { reference = courtyard } override_effect_2d = { trigger = { exists = scope:rain_day } reference = rain } trigger = { ach_coronation_0018_eligible_family_member_trigger = yes coronation_hostile_to_host_trigger = no involved_activity = { activity_host = { # Don't potentially screw over a player Seneschal trigger_if = { limit = { exists = court_position:seneschal_court_position } court_position:seneschal_court_position = { is_ai = yes } } # If we need a Steward but they're absent, make sure they're not a player so we can teleport them trigger_else = { cp:councillor_steward ?= { is_ai = yes } } } } } immediate = { # For the event art create_character = { save_scope_as = servant employer = involved_activity.activity_host template = servant_character gender_female_chance = root_faith_dominant_gender_adjusted_female_chance } random_rain_snow_chance_effect = yes involved_activity = { hidden_effect = { if = { # Grab a secret for the opt-out option limit = { any_attending_character = { this != root is_available_in_activity_trigger = yes any_secret = { NOT = { is_known_by = root } } } } random_attending_character = { limit = { this != root is_available_in_activity_trigger = yes any_secret = { NOT = { is_known_by = root } } } save_scope_as = secret_holder random_secret = { limit = { NOT = { is_known_by = root } } save_scope_as = secret_to_reveal } } } else = { # Create one if you can't find one random_attending_character = { limit = { this != root is_available_in_activity_trigger = yes } weight = { base = 1 # Prefer interesting characters (but not by too much) modifier = { add = 4 is_of_major_interest_to_root_trigger = yes } modifier = { add = 2 is_of_minor_interest_to_root_trigger = yes } } give_random_likely_secret_effect = yes save_scope_as = secret_holder random_secret = { limit = { NOT = { is_known_by = root } } save_scope_as = secret_to_reveal } } } activity_host = { save_scope_as = host if = { # If the Seneschal exists and isn't AI then they're the Servant Boss limit = { court_position:seneschal_court_position ?= { is_ai = yes } } court_position:seneschal_court_position = { save_scope_as = servant_boss } } else = { # Else it's the Steward cp:councillor_steward = { save_scope_as = servant_boss } } } scope:servant_boss = { if = { # Teleport them if they're not at the coronation limit = { location != scope:host.involved_activity.activity_location } set_location = { location = scope:host.involved_activity.activity_location } } if = { # And add them to the activity if they're not in it limit = { can_join_activity = scope:host.involved_activity } add_to_activity_without_travel = scope:host.involved_activity } } } } } option = { # A: Seize Advantages | Offer Support: Take charge of the servants name = ach_coronation.0018.a.intent reason = activity_intent add_internal_flag = special trigger = { OR = { has_activity_intent = coronation_seize_advantages has_activity_intent = coronation_offer_support } } if = { limit = { has_trait = diligent } custom_tooltip = because_you_have_diligent_tt } else = { add_character_modifier = { modifier = exhausted_modifier years = 10 } } duel = { skill = stewardship value = average_skill_rating 8 = { compare_modifier = { value = scope:duel_value multiplier = 2 } desc = ach_coronation.0018.a.tt_success custom_tooltip = ach_can_refuse_reward if = { # Offer a title limit = { # Host has a title to give scope:host = { any_held_title = { ach_coronation_0018_grantable_title_trigger = yes } # And doesn't hate you NOR = { opinion = { target = scope:host value <= medium_negative_opinion } has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } } # Host can actually give you the title can_be_granted_titles_by = { RULER = scope:host } # Host isn't giving a vassal more land just for being mildly helpful is_landed = no } custom_tooltip = ach_coronation.0018.a.tt.vassal hidden_effect = { save_scope_value_as = { name = reward_type value = flag:title } } } else_if = { # Offer the Seneschal spot limit = { scope:host = { can_appoint_char_to_court_position = { CHAR = scope:host COURT_POS = seneschal_court_position } } } show_as_tooltip = { court_position_grant_effect = { POS = seneschal EMPLOYER = scope:host CANDIDATE = root } } hidden_effect = { save_scope_value_as = { name = reward_type value = flag:court_position } } } else = { # Give public praise show_as_tooltip = { add_prestige = medium_prestige_gain involved_activity = { every_attending_character = { limit = { this != root this != scope:host } custom = every_guest_scope_tt add_opinion = { target = root modifier = impressed_opinion opinion = 10 } } } } hidden_effect = { save_scope_value_as = { name = reward_type value = flag:praise } } } send_interface_toast = { title = ach_coronation.0018.a.tt_success reverse_add_opinion = { modifier = helpful_opinion target = scope:host opinion = 15 } hidden_effect = { # Player gets a chance to refuse the reward trigger_event = ach_coronation.0019 } } } 12 = { compare_modifier = { value = scope:duel_value multiplier = -2 min = -9 } desc = ach_coronation.0018.a.tt_failure send_interface_toast = { title = ach_coronation.0018.a.tt_failure stress_impact = { base = medium_stress_impact_gain arrogant = minor_stress_impact_gain } } } } stress_impact = { base = minor_stress_impact_gain arrogant = minor_stress_impact_gain lazy = medium_stress_impact_gain diligent = medium_stress_impact_loss } ai_chance = { base = 150 modifier = { has_trait = diligent add = 100 } modifier = { has_trait = lazy add = -50 } modifier = { has_trait = arrogant add = -25 } } } option = { # A: Try to help with preparations name = ach_coronation.0018.a skill = stewardship highlight_portrait = scope:servant_boss trigger = { NOR = { has_activity_intent = coronation_seize_advantages has_activity_intent = coronation_offer_support } } if = { limit = { NOT = { has_trait = diligent } } add_character_modifier = { modifier = exhausted_modifier years = 10 } } # Does servant_boss feel like you did them a solid or tried to steal their job? if = { limit = { exists = scope:servant_boss } if = { limit = { # You're diplomatic and smooth things over OR = { has_trait = gregarious has_trait = diplomat } } custom_tooltip = ach_coronation.0018.diplomacy_trait.tt send_interface_toast = { title = ach_coronation.0018.d.pleased_servant_boss left_icon = scope:servant_boss reverse_add_opinion = { modifier = thankful_opinion target = scope:servant_boss opinion = 25 } } } else_if = { limit = { # They're not the type of person to perceive this as a slight scope:servant_boss = { NOR = { has_trait = arrogant has_trait = ambitious has_trait = diligent has_trait = vengeful } } } send_interface_toast = { title = ach_coronation.0018.d.pleased_servant_boss left_icon = scope:servant_boss reverse_add_opinion = { modifier = thankful_opinion target = scope:servant_boss opinion = 20 } } } else = { # Else they get annoyed custom_tooltip = ach_coronation.0018.d.annoyed_servant_boss send_interface_toast = { title = ach_coronation.0018.d.annoyed_servant_boss left_icon = scope:servant_boss reverse_add_opinion = { modifier = annoyed_opinion target = scope:servant_boss opinion = -20 } } } } duel = { skill = stewardship value = average_skill_rating 8 = { compare_modifier = { value = scope:duel_value multiplier = 2 } desc = ach_coronation.0018.a.tt_success send_interface_toast = { title = ach_coronation.0018.a.tt_success scope:host = { add_opinion = { modifier = helpful_opinion target = root opinion = 15 } } } } 12 = { compare_modifier = { value = scope:duel_value multiplier = -2 min = -9 } desc = ach_coronation.0018.a.tt_failure send_interface_toast = { title = ach_coronation.0018.a.tt_failure stress_impact = { base = minor_stress_impact_gain arrogant = minor_stress_impact_gain } } } } stress_impact = { # Work is hard base = minor_stress_impact_gain # But not for some diligent = medium_stress_impact_loss # And for others it's worth it ambitious = minor_stress_impact_loss # Doesn't want the clout content = minor_stress_impact_gain # This sounds a lot like labor arrogant = minor_stress_impact_gain lazy = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = diligent add = 25 } modifier = { has_trait = ambitious add = 25 } modifier = { has_trait = content add = -25 } modifier = { has_trait = arrogant add = -25 } modifier = { has_trait = lazy add = -50 } } } option = { # B: Gossip with the servants instead name = ach_coronation.0018.b skill = intrigue highlight_portrait = scope:servant duel = { skill = intrigue value = average_skill_rating 75 = { desc = ach_coronation.0018.b.tt.gossip_with_servants compare_modifier = { value = scope:duel_value multiplier = 5 } show_chance = no send_interface_toast = { title = ach_coronation.0018.b.tt.gossip_with_servants left_icon = root add_character_modifier = { modifier = ach_coronation_gossips_with_servants_modifier years = 5 } } } 25 = { compare_modifier = { value = scope:duel_value multiplier = -5 } min = 10 show_chance = no desc = ach_coronation.0018.b.tt.secret_unknown_desc custom_tooltip = ach_coronation.0018.b.tt.secret_unknown hidden_effect = { send_interface_toast = { title = ach_coronation.0018.b.tt.secret left_icon = root scope:secret_to_reveal = { expose_secret = root } } } } } stress_impact = { gregarious = minor_stress_impact_loss # Sitting around and talking sucks, actually impatient = minor_stress_impact_gain shy = minor_stress_impact_gain diligent = minor_stress_impact_gain # Doesn't want to talk to poors arrogant = medium_stress_impact_gain # Looooves gossip schemer = medium_stress_impact_loss deceitful = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { has_trait = lazy add = 25 } modifier = { has_trait = gregarious add = 25 } modifier = { has_trait = impatient factor = 0.5 } modifier = { has_trait = diligent NOR = { # Only wasting time if gossiping isn't your whole deal has_trait = education_intrigue has_trait = deceitful has_trait = schemer } factor = 0.5 } modifier = { has_trait = shy factor = 0.5 } modifier = { has_trait = arrogant factor = 0.5 } modifier = { OR = { has_trait = education_intrigue has_trait = deceitful has_trait = schemer } factor = 2 } } } option = { # C: Stewardship Lifestyle: Study the ceremony name = ach_coronation.0018.c trigger = { has_lifestyle = stewardship_lifestyle } skill = stewardship reason = lifestyle highlight_portrait = scope:servant highlight_portrait = scope:servant_boss add_stewardship_lifestyle_xp = minor_lifestyle_xp add_character_modifier = { modifier = ach_coronation_studying_ceremony_modifier years = 5 } stress_impact = { diligent = minor_stress_impact_loss # Super down for not talking shy = minor_stress_impact_loss } ai_chance = { base = 100 modifier = { has_trait = diligent add = 25 } modifier = { has_trait = shy add = 25 } } } option = { # D: Just chill name = ach_coronation.0018.d highlight_portrait = root stress_impact = { base = medium_stress_impact_loss # Wants to do something diligent = minor_stress_impact_gain # Who really wants Host's approval? content = minor_stress_impact_loss # Super down for not talking shy = minor_stress_impact_loss # Doing *absolutely* nothing is based lazy = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { has_trait = content add = 25 } modifier = { has_trait = shy add = 25 } modifier = { has_trait = lazy add = 50 } modifier = { has_trait = diligent factor = 0.5 } } } after = { hidden_effect = { scope:servant = { silent_disappearance_effect = yes } } } } ach_coronation.0019 = { type = letter_event opening = { desc = ach_coronation.0019.opening } desc = { # Opening desc = ach_coronation.0019.desc first_valid = { triggered_desc = { trigger = { scope:reward_type = flag:title } desc = ach_coronation.0019.desc.title } triggered_desc = { trigger = { scope:reward_type = flag:court_position } desc = ach_coronation.0019.desc.court_position } desc = ach_coronation.0019.desc.praise } } sender = scope:host immediate = { ach_coronation_0018_choose_title_effect = yes } option = { # Accept name = ach_coronation.0019.a switch = { trigger = scope:reward_type flag:title = { create_title_and_vassal_change = { type = granted save_scope_as = change add_claim_on_loss = no } scope:grantable_title = { change_title_holder = { holder = root change = scope:change } } resolve_title_and_vassal_change = scope:change custom_tooltip = { text = your_title_cannot_be_revoked_10_tt root = { add_character_flag = { flag = titles_protected years = 10 } } } } flag:court_position = { court_position_grant_effect = { POS = seneschal EMPLOYER = scope:host CANDIDATE = root } if = { limit = { scope:servant_boss = { has_court_position = seneschal_court_position } OR = { scope:servant_boss = { is_ai = yes } AND = { scope:servant_boss = { is_ai = no } is_ai = no } } } scope:servant_boss = { progress_towards_rival_effect = { REASON = rival_jealousy_at_court CHARACTER = root OPINION = -30 } } } } flag:praise = { add_prestige = medium_prestige_gain involved_activity = { every_attending_character = { limit = { this != root this != scope:host } custom = every_guest_scope_tt add_opinion = { target = root modifier = impressed_opinion opinion = 10 } } } } } ai_chance = { base = 150 modifier = { add = -50 scope:reward_type = flag:title has_trait = content } modifier = { add = -50 scope:reward_type = flag:court_position has_trait = lazy } modifier = { add = -50 scope:reward_type = flag:praise has_trait = shy } } } option = { # Ask for gold instead name = ach_coronation.0019.b trigger = { scope:host = { is_ai = yes } # The player doesn't need a multi-event back and forth over this } scope:host = { add_opinion = { target = root modifier = disappointed_opinion opinion = -10 } pay_short_term_gold = { gold = minor_gold_value target = root } } ai_chance = { base = 50 modifier = { add = 50 scope:reward_type = flag:praise has_trait = greedy # No money in praise } modifier = { add = 50 scope:reward_type = flag:praise has_activity_intent = coronation_seize_advantages } } } option = { # Their friendship is enough name = ach_coronation.0019.c if = { limit = { reverse_opinion = { target = scope:host value > 20 } OR = { scope:host = { is_ai = yes } AND = { scope:host = { is_ai = no } is_ai = no } } } progress_towards_friend_effect = { CHARACTER = scope:host REASON = friend_supported_host_during_coronation OPINION = default_friend_opinion } } else = { reverse_add_opinion = { target = scope:host modifier = friendliness_opinion opinion = 25 } } ai_chance = { base = 0 modifier = { add = 100 has_trait = humble } modifier = { add = 50 scope:reward_type = flag:praise has_trait = shy } modifier = { add = 50 has_activity_intent = coronation_offer_support } } } } ###################### # Host: Close family member helps manage the coronation # by Jay Zaborowski # 0020 ach_coronation.0020 = { type = activity_event title = ach_coronation.0020.t desc = ach_coronation.0020.desc left_portrait = { character = scope:annoying_servant animation = stunned camera = camera_event_very_right_pointing_very_left hide_info = yes } center_portrait = { character = scope:helpful_family animation = stayback camera = camera_event_right_pointing_very_right } right_portrait = { character = scope:host triggered_animation = { trigger = { OR = { scope:host.religion = religion:eastern_orthodox_religion scope:host.religion = religion:catholic_religion scope:host.religion = religion:protestant_religion } } animation = emotion_thinking_scepter } triggered_animation = { trigger = { NOT = { OR = { scope:host.religion = religion:eastern_orthodox_religion scope:host.religion = religion:catholic_religion scope:host.religion = religion:protestant_religion } } } animation = thinking } camera = camera_event_very_left_pointing_right } theme = coronation_activity cooldown = { years = 1 } override_background = { reference = corridor_day } trigger = { involved_activity = { any_attending_character = { ach_coronation_0018_eligible_family_member_trigger = yes } } } immediate = { involved_activity = { activity_host = { save_scope_as = host } random_attending_character = { limit = { ach_coronation_0018_eligible_family_member_trigger = yes } weight = { base = 1 opinion_modifier = { opinion_target = scope:host multiplier = 0.25 } modifier = { add = sum_of_all_skills_value } modifier = { # Prefer close family is_close_family_of = root add = 20 } modifier = { has_trait = ambitious add = 10 } modifier = { has_trait = diligent add = 10 } # If making them a vassal is on the table, try and get someone who is eligible modifier = { trigger_if = { limit = { root = { has_activity_intent = coronation_embrace_supporters any_held_title = { ach_coronation_0018_grantable_title_trigger = yes } } NOT = { can_be_granted_titles_by = { RULER = root } } } } factor = 0.1 } } save_scope_as = helpful_family add_character_modifier = { modifier = exhausted_modifier years = 10 } if = { limit = { has_trait = diligent } add_stress = minor_stress_gain } else = { add_stress = major_stress_gain } } } ach_coronation_0018_choose_title_effect = yes if = { # Grab a courtier for the background limit = { any_courtier_or_guest = { this != scope:helpful_family this != root is_available_in_activity_trigger = yes } } random_courtier_or_guest = { limit = { this != scope:helpful_family this != root is_available_in_activity_trigger = yes } save_scope_as = annoying_servant } } else_if = { # If there wasn't one grab a pool char limit = { any_pool_character = { province = involved_activity.activity_location this != scope:helpful_family this != root is_available_in_activity_trigger = yes } } random_pool_character = { province = involved_activity.activity_location limit = { this != scope:helpful_family this != root is_available_in_activity_trigger = yes } save_scope_as = annoying_servant } } else = { # Else, make one create_character = { save_scope_as = annoying_servant employer = root template = servant_character gender_female_chance = root_faith_dominant_gender_adjusted_female_chance } add_character_flag = created_character_ach_coronation_0020 } } option = { # A: Embrace Supporters: They would be a loyal vassal! name = ach_coronation.0020.a reason = activity_intent add_internal_flag = special trigger = { has_activity_intent = coronation_embrace_supporters exists = scope:grantable_title scope:helpful_family = { can_be_granted_titles_by = { RULER = root } } } show_as_unavailable = { AND = { has_activity_intent = coronation_embrace_supporters exists = scope:grantable_title } } create_title_and_vassal_change = { type = granted save_scope_as = change add_claim_on_loss = no } scope:grantable_title = { change_title_holder = { holder = scope:helpful_family change = scope:change } } resolve_title_and_vassal_change = scope:change coronation_move_towards_supporter_effect = { CHARACTER = scope:helpful_family } custom_tooltip = { text = character_title_cannot_be_revoked_tt scope:helpful_family = { add_character_flag = { flag = titles_protected years = 10 } } } scope:helpful_family = { add_trait = loyal add_opinion = { modifier = loyalty_opinion target = scope:host opinion = 25 } } add_hook = { target = scope:helpful_family type = loyalty_hook } coronation_embrace_supporters_opinion_effect = yes } option = { # B: Family First: This is how we do things in my dynasty! name = ach_coronation.0020.b trait = family_first trigger = { has_trait = family_first } show_as_unavailable = { always = yes } every_close_family_member = { custom = every_family_member_tt limit = { NOT = { this = root } } add_opinion = { target = root modifier = love_opinion opinion = 20 } } dynasty ?= { add_dynasty_modifier = { modifier = ach_familial_support_modifier years = 10 } } } option = { # C: They truly are a great GetRelationToMe name = ach_coronation.0020.c if = { limit = { can_set_relation_potential_friend_trigger = { CHARACTER = scope:helpful_family } reverse_opinion = { target = scope:helpful_family value > 20 } OR = { scope:helpful_family = { is_ai = yes } AND = { scope:helpful_family = { is_ai = no } is_ai = no } } } set_relation_potential_friend = scope:helpful_family } coronation_move_towards_supporter_effect = { CHARACTER = scope:helpful_family } scope:helpful_family = { add_opinion = { target = root modifier = love_opinion opinion = 20 } } } option = { # D: They're a model for all my subjects name = ach_coronation.0020.d add_prestige = minor_prestige_gain } after = { add_stress = medium_stress_loss if = { limit = { has_character_flag = created_character_ach_coronation_0020 } hidden_effect = { scope:annoying_servant = { silent_disappearance_effect = yes } remove_character_flag = created_character_ach_coronation_0020 } } } } ###################### # Guest: An ongoing plague has shaken a zealous guest # by Jay Zaborowski # 0022 scripted_trigger ach_coronation_0022_valid_zealot_trigger = { is_ai = yes faith = scope:host.faith highest_held_title_tier >= tier_county OR = { has_trait = zealous trigger_if = { limit = { is_vassal_or_below_of = scope:host } has_vassal_stance = zealot } } NOR = { this = scope:host this = root has_trait = cynical has_trait = loyal # Don't want anyone who wouldn't listen to you has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } } scripted_trigger ach_coronation_0022_loose_zealot_trigger = { is_ai = yes faith = involved_activity.activity_host.faith highest_held_title_tier >= tier_county OR = { ai_zeal >= low_positive_ai_value has_trait = zealous trigger_if = { limit = { is_vassal_or_below_of = involved_activity.activity_host } has_vassal_stance = zealot } has_trait = lifestyle_mystic has_trait = paranoid has_trait = craven has_trait = devoted } NOR = { this = involved_activity.activity_host this = root has_trait = cynical # Don't want anyone who wouldn't listen to you has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } } ach_coronation.0022 = { type = activity_event title = ach_coronation.0022.t desc = { desc = ach_coronation.0022.desc first_valid = { triggered_desc = { trigger = { scope:host = { primary_title = title:e_byzantium } } desc = ach_coronation.0022.desc.whisper.byzantine } triggered_desc = { trigger = { scope:host = { primary_title = title:e_hre } } desc = ach_coronation.0022.desc.whisper.hre } triggered_desc = { trigger = { scope:host = { num_sinful_traits >= 2 } } desc = ach_coronation.0022.desc.whisper.sinner } triggered_desc = { trigger = { scope:host.culture = { has_innovation = innovation_divine_right } } desc = ach_coronation.0022.desc.whisper.divine_right } desc = ach_coronation.0022.desc.whisper.fallback } desc = ach_coronation.0022.desc.ending } theme = coronation_activity override_background = { reference = temple } cooldown = { years = 1 } left_portrait = { character = root triggered_animation = { trigger = { has_activity_intent = coronation_disrupt_loyalists } animation = interested } animation = thinking } right_portrait = { character = scope:zealot animation = prayer camera = camera_event_very_right_close } trigger = { involved_activity = { activity_host = { save_temporary_scope_as = host_temp is_ai = yes # Ongoing plague any_sub_realm_county = { count >= 3 any_county_province = { any_province_epidemic = { count >= 1 outbreak_intensity > minor } } } } any_attending_character = { ach_coronation_0022_loose_zealot_trigger = yes } } } weight_multiplier = { base = 1 modifier = { has_activity_intent = coronation_disrupt_loyalists factor = 2 } modifier = { has_activity_intent = coronation_offer_support factor = 2 } modifier = { involved_activity = { activity_host = { # Ongoing plague any_sub_realm_county = { count >= 10 any_county_province = { any_province_epidemic = { count >= 1 outbreak_intensity > minor } } } } } factor = 2 } modifier = { involved_activity = { activity_host = { # Ongoing plague any_sub_realm_county = { count >= 3 any_county_province = { any_province_epidemic = { count >= 1 outbreak_intensity > major } } } } } factor = 2 } modifier = { involved_activity = { activity_location = { any_province_epidemic = { count >= 1 outbreak_intensity > minor } } } factor = 2 } } immediate = { involved_activity = { activity_host = { save_scope_as = host # Get the ongoing plague if = { limit = { any_sub_realm_county = { count >= 4 any_county_province = { any_province_epidemic = { count >= 1 outbreak_intensity = apocalyptic } } } } get_random_realm_epidemic = { INTENSITY = apocalyptic } } else = { get_random_realm_epidemic = { INTENSITY = major } } # Get the Faction if that's part of it if = { limit = { root = { has_activity_intent = coronation_disrupt_loyalists } } random_targeting_faction = { limit = { any_faction_member = { this = root } #Won't join a bunch of heretics trigger_if = { limit = { faction_is_type = claimant_faction } special_character.faith ?= scope:host.faith } trigger_if = { limit = { faction_is_type = populist_faction } var:faction_faith ?= scope:host.faith } } save_scope_as = faction } } } # Grab yer zealot random_attending_character = { # Try and get someone who can join the faction if that's relevant limit = { exists = scope:faction can_join_faction = scope:faction ach_coronation_0022_valid_zealot_trigger = yes } alternative_limit = { ach_coronation_0022_valid_zealot_trigger = yes } alternative_limit = { ach_coronation_0022_loose_zealot_trigger = yes } weight = { base = 1 # Prefer vassals modifier = { add = { value = 5 if = { limit = { is_powerful_vassal_of = scope:host } add = 10 } } is_vassal_of = scope:host } # Prefer interesting characters modifier = { add = 10 is_of_major_interest_to_root_trigger = yes } modifier = { add = 5 is_of_minor_interest_to_root_trigger = yes } # Who would also likely be afeared modifier = { add = 5 has_trait = craven } # And not those who wouldn't be modifier = { add = -15 has_trait = brave } # Clergy members are also nice modifier = { add = 5 is_clergy = yes } # As are Zealot Vassal Stancers modifier = { add = 5 is_vassal_of = scope:host has_vassal_stance = zealot } # Weightings for zealotry modifier = { add = { value = ai_zeal multiply = 0.2 # Don't want it to overwhelm other factors } } # Prefer rulers who already dislike the host opinion_modifier = { opinion_target = scope:host multiplier = -0.2 # Don't want it to overwhelm other factors } } save_scope_as = zealot assign_quirk_effect = yes } } } option = { # This is that bastard host's fault! name = ach_coronation.0022.a.coronation_disrupt_loyalists trigger = { has_activity_intent = coronation_disrupt_loyalists exists = scope:faction scope:zealot = { can_join_faction = scope:faction opinion = { target = scope:host value <= 60 } } } custom_tooltip = available_because_intent_tt flavor = ach_coronation.0022.a.coronation_disrupt_loyalists.flavor reason = activity_intent skill = diplomacy add_piety = medium_piety_loss reverse_add_opinion = { target = scope:host modifier = opposition_opinion opinion = -20 } duel = { skills = { diplomacy learning } target = scope:zealot 50 = { # You convert them! desc = ach_coronation.0022.a.coronation_disrupt_loyalists.success compare_modifier = { value = scope:duel_value multiplier = 0.5 } modifier = { has_perk = theologian_perk add = 25 } modifier = { has_trait = zealous add = 25 } modifier = { scope:zealot = { opinion = { target = scope:host value < -50 } } add = 25 } modifier = { scope:zealot = { opinion = { target = scope:host value < 0 } } add = 15 } send_interface_toast = { title = ach_coronation.0022.a.coronation_disrupt_loyalists.success left_icon = root right_icon = scope:zealot scope:zealot = { join_faction = scope:faction } coronation_move_towards_detractor_effect = { CHARACTER = scope:zealot } } } 50 = { # You fail desc = ach_coronation.0022.a.coronation_disrupt_loyalists.failure compare_modifier = { value = scope:duel_value multiplier = -0.5 } modifier = { scope:zealot = { opinion = { target = scope:host value > 0 } } add = 25 } modifier = { scope:zealot = { opinion = { target = scope:host value > 30 } } add = 25 } send_interface_toast = { title = ach_coronation.0022.a.coronation_disrupt_loyalists.failure left_icon = root right_icon = scope:zealot reverse_add_opinion = { target = scope:zealot modifier = outraged_opinion opinion = -20 } } } } ai_chance = { base = 150 modifier = { has_trait = disloyal add = 50 } modifier = { has_trait = schemer add = 50 } } } option = { # It's not our goodly Host's fault! name = ach_coronation.0022.a.offer_support trigger = { has_activity_intent = coronation_offer_support } custom_tooltip = available_because_intent_tt flavor = ach_coronation.0022.a.offer_support.flavor add_piety = medium_piety_loss duel = { skills = { diplomacy learning } target = scope:zealot 50 = { # They are more loyal than ever desc = ach_coronation.0022.a.offer_support.success compare_modifier = { value = scope:duel_value multiplier = 0.5 } modifier = { has_perk = theologian_perk add = 25 } modifier = { has_trait = zealous add = 25 } send_interface_toast = { title = ach_coronation.0022.a.offer_support.success left_icon = root right_icon = scope:zealot random = { chance = 20 scope:zealot = { add_trait = loyal } } reverse_add_opinion = { target = scope:zealot modifier = comforted_opinion opinion = 10 } reverse_add_opinion = { target = scope:host modifier = helpful_opinion opinion = 20 } scope:zealot = { add_opinion = { target = scope:host modifier = loyalty_opinion opinion = 30 } } coronation_move_towards_supporter_effect = { CHARACTER = scope:zealot } } } 50 = { # You fail desc = ach_coronation.0022.a.offer_support.failure compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = ach_coronation.0022.a.offer_support.failure left_icon = root right_icon = scope:zealot reverse_add_opinion = { target = scope:zealot modifier = annoyed_opinion opinion = -20 } coronation_move_towards_detractor_effect = { CHARACTER = scope:zealot } } } } stress_impact = { fickle = minor_stress_impact_gain } ai_chance = { base = 150 modifier = { has_trait = loyal add = 50 } } } option = { # Pray with HerHim name = ach_coronation.0022.b trigger = { root.faith.religion ?= scope:zealot.faith.religion } show_as_unavailable = { always = yes } reason = faith trait = zealous custom_tooltip = available_because_of_shared_religion_tt add_piety = medium_piety_gain if = { limit = { scope:zealot = { opinion = { target = root value > 0 } } OR = { scope:zealot = { is_ai = yes } AND = { scope:zealot = { is_ai = no } is_ai = no } } } progress_towards_friend_effect = { CHARACTER = scope:zealot OPINION = 20 REASON = friend_religious_comfort } } else = { reverse_add_opinion = { target = scope:zealot modifier = kindness_opinion opinion = 20 } } stress_impact = { cynical = medium_stress_impact_gain zealous = medium_stress_impact_loss compassionate = minor_stress_impact_loss callous = medium_stress_impact_gain sadistic = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = zealous add = 100 } modifier = { has_trait = compassionate add = 50 } modifier = { has_trait = sadistic add = -25 } modifier = { has_trait = callous add = -100 } modifier = { OR = { has_trait = cynical has_trait = callous has_trait = sadistic } factor = 0 } } } option = { # I'm not getting near anyone rn, thanks name = ach_coronation.0022.d flavor = ach_coronation.0022.d.flavor add_character_modifier = { modifier = ach_social_distancing_modifier years = 4 } stress_impact = { gregarious = miniscule_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = cynical add = 25 } modifier = { has_trait = shy add = 25 } modifier = { has_trait = paranoid add = 25 } modifier = { has_trait = trusting add = -25 } modifier = { has_trait = callous add = -25 } modifier = { has_trait = gregarious add = -25 } } } } ###################### # Host: An exotic foreign warrior pledges themselves to you # by Jay Zaborowski # 0023 scripted_trigger ach_coronation_0023_foreign_holder_trigger = { NOR = { # Make sure they're from afar in_diplomatic_range = prev # And suitably foreign faith = prev.faith culture = prev.culture } save_temporary_scope_as = foreign_ruler_temp prev = { # They're not that exotic if you already rule a bunch of them any_realm_county = { NOR = { faith = scope:foreign_ruler_temp.faith culture = scope:foreign_ruler_temp.culture } } } } scripted_trigger ach_coronation_0023_eligible_clergy_trigger = { is_available_in_activity_trigger = yes faith = involved_activity.activity_host.faith } scripted_effect ach_coronation_0023_generic_acceptance_effect = { if = { limit = { faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } } } # Fundamentalists won't be happy about this every_vassal = { limit = { faith = root.faith has_vassal_stance = zealot } custom = every_zealot_vassal add_opinion = { target = root modifier = fp1_honoured_heathen_opinion opinion = -10 } } add_piety = medium_piety_loss if = { limit = { has_trait = zealous } stress_impact = { zealous = medium_stress_impact_gain } } } culture = { change_cultural_acceptance = { target = scope:foreign_warrior.culture value = low_positive_culture_acceptance desc = cultural_acceptance_gain_accepted_foreign_warrior } } stress_impact = { trusting = medium_stress_loss # Trusts this strange foreigner implicitly paranoid = medium_stress_loss # Is very happy to have less incompetent guards } } ach_coronation.0023 = { type = activity_event title = ach_coronation.0023.t desc = { desc = ach_coronation.0023.desc first_valid = { triggered_desc = { trigger = { exists = scope:clergy scope:clergy.faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } } } desc = ach_coronation.0023.desc.clergy.angry } triggered_desc = { trigger = { exists = scope:clergy } desc = ach_coronation.0023.desc.clergy } } } left_portrait = { character = root animation = thinking camera = camera_event_very_left } center_portrait = { character = scope:foreign_warrior animation = obsequious_bow camera = camera_event_center_pointing_left } right_portrait = { trigger = { exists = scope:clergy } triggered_animation = { trigger = { scope:clergy.faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } } } animation = disapproval } animation = interested character = scope:clergy } cooldown = { years = 1 } theme = coronation_activity override_background = { reference = throne_room } trigger = { has_activity_intent = coronation_embrace_supporters any_independent_ruler = { ach_coronation_0023_foreign_holder_trigger = yes } involved_activity = { any_attending_character = { ach_coronation_0023_eligible_clergy_trigger = yes is_vassal_or_below_of = root OR = { is_clergy = yes has_trait = devoted is_theocratic_lessee = yes government_has_flag = government_is_theocracy } } } } # Exotic warriors won't be attracted by lords who aren't some level of famous weight_multiplier = { base = 0 # Court Grandeur attracts adventurers modifier = { has_royal_court = yes court_grandeur_current_level > 2 add = { value = court_grandeur_current_level divide = 4 } } modifier = { prestige_level > 2 add = { value = prestige_level divide = 2 } } } immediate = { # Get a foreign court for the warrior to arrive from random_independent_ruler = { # Make sure they're from afar limit = { ach_coronation_0023_foreign_holder_trigger = yes } weight = { base = 1 # Like, really afar modifier = { add = 1000 capital_province = { squared_distance = { target = root.capital_province value >= squared_distance_massive } } } # More militaristic cultures with cool warrior folks are preferred modifier = { add = 500 culture = { OR = { has_cultural_pillar = ethos_stoic has_cultural_pillar = ethos_bellicose has_cultural_parameter = wanderers_gain_extra_combat_skills has_cultural_parameter = high_prowess_ignores_knight_restrictions has_cultural_parameter = prowess_from_martial_education has_cultural_parameter = martial_education_more_valued has_cultural_parameter = strong_traits_more_valued } } } # Cultures that don't tend to like foreigners are not modifier = { add = -500 culture = { OR = { has_cultural_parameter = courtiers_less_likely_to_leave_same_culture_court has_cultural_parameter = dislikes_marrying_outside_of_culture } } } } save_scope_as = foreign_ruler } # Create your new BFF create_character = { template = bp1_yearly_2021_martial_person_template location = root.location faith = scope:foreign_ruler.faith culture = scope:foreign_ruler.culture trait = loyal save_scope_as = foreign_warrior } scope:foreign_warrior = { hidden_effect = { # Give them an opinion bump so they don't hate you add_opinion = { target = root modifier = impressed_opinion opinion = 30 } # And make sure they speak your language learn_language_of_culture = root.culture # Add them now so the can_appoint triggers work add_courtier = scope:foreign_warrior } } # Grab a clergy person to be angry (or curious) involved_activity = { random_attending_character = { limit = { # Grab the Court Chaplain if they're attending ach_coronation_0023_eligible_clergy_trigger = yes has_council_position = councillor_court_chaplain is_councillor_of = root } alternative_limit = { # Any Zealot vassal if not ach_coronation_0023_eligible_clergy_trigger = yes is_vassal_of = root has_vassal_stance = zealot } alternative_limit = { # Find any sort of clergy-type as a fallback ach_coronation_0023_eligible_clergy_trigger = yes is_vassal_or_below_of = root OR = { is_clergy = yes has_trait = devoted is_theocratic_lessee = yes government_has_flag = government_is_theocracy } } save_scope_as = clergy } } ordered_court_position_holder = { type = bodyguard_court_position order_by = { # Get the worst bodyguard you have value = 0 subtract = "aptitude(bodyguard_court_position)" } save_scope_as = worst_bodyguard } } option = { # Make them your bodyguard name = ach_coronation.0023.a trigger = { can_employ_court_position_type = bodyguard_court_position any_court_position_holder = { type = bodyguard_court_position has_court_position = bodyguard_court_position count < 2 } } court_position_grant_effect = { POS = bodyguard CANDIDATE = scope:foreign_warrior EMPLOYER = root } scope:foreign_warrior = { add_opinion = { modifier = hired_me_opinion target = root opinion = 30 } hidden_effect = { add_prestige = medium_prestige_gain } } ach_coronation_0023_generic_acceptance_effect = yes ai_chance = { base = 100 opinion_modifier = { trigger = { exists = scope:worst_bodyguard } who = scope:worst_bodyguard opinion_target = root multiplier = -1 } # Faith modifiers modifier = { faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } } NOT = { has_trait = cynical } add = -50 } modifier = { faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } } has_trait = zealous factor = 0 } # If you have a Champion slot then make them that instead of replacing modifier = { employs_court_position = bodyguard_court_position NOT = { employs_court_position = champion_court_position } factor = 0 } } } option = { # Make them your Champion name = ach_coronation.0023.b trigger = { can_employ_court_position_type = champion_court_position NOT = { employs_court_position = champion_court_position } } if = { limit = { can_employ_court_position_type = champion_court_position NOT = { employs_court_position = champion_court_position } } court_position_grant_effect = { POS = champion CANDIDATE = scope:foreign_warrior EMPLOYER = root } } scope:foreign_warrior = { # Grant the position add_opinion = { modifier = hired_me_opinion target = root opinion = 30 } hidden_effect = { add_prestige = medium_prestige_gain } } ach_coronation_0023_generic_acceptance_effect = yes ai_chance = { base = 100 opinion_modifier = { trigger = { employs_court_position = champion_court_position } who = court_position:champion_court_position opinion_target = root multiplier = -1 } # Faith modifiers modifier = { faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } } NOT = { has_trait = cynical } add = -50 } modifier = { faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } } has_trait = zealous factor = 0 } } } option = { # Courtier fallback name = ach_coronation.0023.c trigger = { NOR = { can_employ_court_position_type = bodyguard_court_position can_employ_court_position_type = champion_court_position } } ach_coronation_0023_generic_acceptance_effect = yes add_courtier = scope:foreign_warrior ai_chance = { base = 100 # Faith modifiers modifier = { faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } } NOT = { has_trait = cynical } add = -50 } modifier = { faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } } has_trait = zealous factor = 0 } } } option = { # Reject them name = ach_coronation.0023.d if = { limit = { faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } } } every_vassal = { limit = { faith = root.faith has_vassal_stance = zealot } custom = every_zealot_vassal add_opinion = { target = root modifier = respect_opinion opinion = 10 } } if = { limit = { exists = scope:clergy } reverse_add_opinion = { target = scope:clergy modifier = grateful_opinion opinion = 20 } } } hidden_effect = { scope:foreign_warrior = { silent_disappearance_effect = yes } } ai_chance = { base = 100 } } } ###################### # Open up drinks to the locals # by Jay Zaborowski # 0025 ach_coronation.0025 = { type = activity_event title = ach_coronation.0025.t desc = { desc = ach_coronation.0025.desc first_valid = { triggered_desc = { trigger = { root = scope:host } desc = ach_coronation.0025.desc.host } desc = ach_coronation.0025.desc.guest } } left_portrait = { character = root animation = thinking } center_portrait = { trigger = { root != scope:host } character = scope:host animation = scepter } right_portrait = { trigger = { scope:baron != scope:host root != scope:baron } character = scope:baron animation = thinking } theme = feast_activity cooldown = { years = 1 } override_background = { reference = garden } trigger = { OR = { has_activity_intent = coronation_offer_support has_activity_intent = coronation_impress_attendees } involved_activity = { activity_location = { # Has a settlement has_holding = yes # Has locals NOR = { has_holding_type = nomad_holding has_holding_type = herder_holding } # The barony has willing drinkers barony.holder = { faith_forbids_alcohol_trigger = no faith = prev.county.faith trigger_if = { limit = { is_ai = no } this = root } } } # And a willing host activity_host = { faith_forbids_alcohol_trigger = no } } # And a willing you faith_forbids_alcohol_trigger = no } immediate = { involved_activity = { activity_host = { save_scope_as = host } activity_location = { save_scope_as = feast_location barony.holder = { save_scope_as = baron } } } } weight_multiplier = { base = 1 modifier = { OR = { has_trait = drunkard has_trait = lifestyle_reveler } add = 2 } modifier = { involved_activity.activity_host = { OR = { has_trait = drunkard has_trait = lifestyle_reveler } } add = 2 } } option = { # You'll pay for it name = ach_coronation.0025.a trigger = { short_term_gold >= medium_gold_value } show_as_unavailable = { always = yes } remove_short_term_gold = medium_gold_value involved_activity.activity_location = { add_province_modifier = { modifier = ach_drunk_province_1_modifier years = 1 } } if = { limit = { this != scope:host } reverse_add_opinion = { target = scope:host modifier = grateful_opinion opinion = 20 } } scope:host = { every_vassal = { limit = { has_vassal_stance = courtly NOT = { this = root } } custom = every_courtly_vassal add_opinion = { target = root modifier = respect_opinion opinion = 5 } } } custom_tooltip = coronation_tt_positive_medium involved_activity = { activity_special_type_progression_medium = yes } coronation_add_magnificence_log_effect = { VALUE = flag:positive_medium CHAR = root } stress_impact = { base = medium_stress_impact_loss temperate = medium_stress_impact_gain # Doesn't partake } ai_chance = { base = 100 modifier = { has_trait = temperate factor = 0.5 } } } option = { # Drunkard / Reveler: We should *both* pay for it! name = ach_coronation.0025.b flavor = ach_coronation.0025.b.flavor trigger = { custom_tooltip = { text = ach_coronation.0025.b.tt short_term_gold >= minor_gold_value OR = { has_trait = drunkard has_trait = lifestyle_reveler } scope:baron != root # Only available if there's a local baron to go splitsies scope:baron != scope:host # And if they're not the Host } } show_as_unavailable = { scope:baron != root scope:baron != scope:host } trait = drunkard trait = lifestyle_reveler duel = { skill = diplomacy target = scope:baron 40 = { # The Baron agrees to pay compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -49 } desc = ach_coronation.0025.b.tt.success involved_activity.activity_location = { add_province_modifier = { modifier = ach_drunk_province_2_modifier years = 1 } } scope:baron = { remove_short_term_gold = root.minor_gold_value hidden_effect = { add_prestige = medium_prestige_gain } } remove_short_term_gold = minor_gold_value if = { limit = { this != scope:host } scope:host = { add_opinion = { target = root modifier = grateful_opinion opinion = 10 } add_opinion = { target = scope:baron modifier = grateful_opinion opinion = 10 } hidden_effect = { add_prestige = medium_prestige_gain } } } send_interface_toast = { title = ach_coronation.0025.b.tt.success left_icon = scope:baron if = { limit = { has_trait = lifestyle_reveler } add_trait_xp = { trait = lifestyle_reveler value = { integer_range = { min = small_lifestyle_random_xp_low max = small_lifestyle_random_xp_high } } } } add_prestige = medium_prestige_gain if = { limit = { OR = { root = { is_ai = no } } scope:activity = { is_target_in_variable_list = { name = major_supporter target = root } } } scope:host = { custom_tooltip = coronation_tt_positive_medium involved_activity = { activity_special_type_progression_medium = yes } } coronation_add_magnificence_log_effect = { VALUE = flag:positive_medium CHAR = root } } stress_impact = { base = medium_stress_impact_loss temperate = medium_stress_impact_gain # Doesn't partake } } create_character_memory = { type = got_the_city_drunk_memory participants = { coronation_host = scope:host baron = scope:baron } } # Used in loc scope:new_memory = { save_scope_as = drunk_city_memory } scope:drunk_city_memory = { #set_variable = { #name = drunk_city_location #value = scope:feast_location #} set_variable = { name = drunk_city_location value = scope:feast_location } if = { #startup error suppression limit = { has_variable = drunk_city_location } } } } 60 = { # The Baron refuses your *extremely* awesome idea compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } desc = ach_coronation.0025.b.tt.failure send_interface_toast = { title = ach_coronation.0025.b.tt.failure left_icon = scope:baron scope:baron = { # Very lame of them add_prestige = minor_prestige_loss } hidden_effect = { add_opinion = { target = scope:baron modifier = disappointed_opinion opinion = -10 } } stress_impact = { # Disappointment drunkard = minor_stress_impact_gain lifestyle_reveler = minor_stress_impact_gain } } } } ai_chance = { base = 100 modifier = { has_trait = drunkard add = 50 } modifier = { has_trait = lifestyle_reveler add = 50 } } } option = { # Just focus on having fun name = ach_coronation.0025.c name = { trigger = { has_trait = temperate } text = ach_coronation.0025.c.temperate } flavor = ach_coronation.0025.c.flavor # Stress loss stress_impact = { base = minor_stress_impact_loss drunkard = minor_stress_impact_gain lifestyle_reveler = minor_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = temperate factor = 2 } } } } ###################### # Host: Struggle to hide a cold so that your tribal vassals don't take it as an omen # by Jay Zaborowski # 0026 ach_coronation.0026 = { type = activity_event title = ach_coronation.0026.t desc = ach_coronation.0026.desc left_portrait = { character = scope:second animation = dancing camera = camera_event_very_left_fov35 } center_portrait = { character = root animation = stress camera = camera_event_center_very_large } right_portrait = { character = scope:vassal animation = toast_goblet camera = camera_event_very_right_fov35 } theme = feast_activity cooldown = { years = 1 } trigger = { can_contract_disease_trigger = { DISEASE = ill } government_has_flag = government_is_tribal involved_activity = { any_attending_character = { government_has_flag = government_is_tribal coronation_hostile_to_host_trigger = no can_add_hook = { target = root type = favor_hook } } } } immediate = { involved_activity = { random_attending_character = { limit = { government_has_flag = government_is_tribal coronation_hostile_to_host_trigger = no can_add_hook = { target = root type = favor_hook } } weight = { base = 1 # Prefer vassals modifier = { add = { value = 5 if = { limit = { is_powerful_vassal_of = root } add = 10 } } is_vassal_of = root } # Prefer interesting characters modifier = { add = 10 is_of_major_interest_to_root_trigger = yes } modifier = { add = 5 is_of_minor_interest_to_root_trigger = yes } # Try and get someone who'd be willing to help you out opinion_modifier = { opinion_target = root multiplier = 0.25 } } save_scope_as = vassal } random_attending_character = { limit = { NOR = { this = root this = scope:vassal } } save_scope_as = second } } } option = { # Hold it in hold it in hold it in name = ach_coronation.0026.a custom_tooltip = ach_coronation.0026.a.tt random_list = { 40 = { # Your vassals notice you're sick desc = ach_coronation.0026.a.tt.sick.failure send_interface_toast = { title = ach_coronation.0026.a.tt.sick.failure left_icon = root add_prestige = minor_prestige_loss contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = yes } custom_tooltip = coronation_tt_negative involved_activity = { activity_special_type_progression_negative = yes } coronation_add_magnificence_log_effect = { VALUE = flag:negative CHAR = root } } } 40 = { # Nobody notices desc = ach_coronation.0026.a.tt.sick.success send_interface_toast = { title = ach_coronation.0026.a.tt.sick.success left_icon = root reverse_add_opinion = { target = scope:vassal modifier = feast_had_good_time_together_opinion opinion = 15 } contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = yes } } } 20 = { # The feeling's pass desc = ach_coronation.0026.a.tt.critical_success send_interface_toast = { title = ach_coronation.0026.a.tt.critical_success reverse_add_opinion = { target = scope:vassal modifier = feast_had_good_time_together_opinion opinion = 15 } stress_impact = { base = minor_stress_loss } } } } } option = { # Vassal, help me! name = ach_coronation.0026.b custom_tooltip = ach_coronation.0026.b.tt random = { chance = 50 contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = yes } } hidden_effect = { add_opinion = { target = scope:vassal modifier = grateful_opinion opinion = 15 } } scope:vassal = { add_hook = { target = root type = favor_hook } } ai_chance = { base = 100 modifier = { has_trait = arrogant factor = 0.5 } modifier = { has_trait = shy factor = 0.5 } } } option = { # Bail on the feast name = ach_coronation.0026.c flavor = ach_coronation.0026.c.flavor random = { chance = 25 contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = yes } } every_vassal = { limit = { OR = { government_has_flag = government_is_tribal government_has_flag = government_is_nomadic } } custom = custom.every_tribal_nomadic_vassal add_opinion = { target = root modifier = opinion_acting_strange opinion = -10 } } ai_chance = { base = 100 modifier = { has_trait = arrogant factor = 0.5 } modifier = { has_trait = stubborn factor = 0.5 } } } } ###################### # An attendee brings some hashish # by Jay Zaborowski # 0027 scripted_trigger can_be_hashishiyah_ignoring_region_trigger = { # You meet all the Hashishiyah triggers besides geographic_region is_adult = yes NOR = { has_trait = drunkard has_trait = hashishiyah has_trait = temperate } NAND = { faith = { trait_is_sin = hashishiyah } has_trait = zealous } } scripted_trigger eligible_to_join_stoner_trigger = { is_available_in_activity_trigger = yes OR = { has_trait = hashishiyah can_be_hashishiyah_ignoring_region_trigger = yes } } ach_coronation.0027 = { type = activity_event title = ach_coronation.0027.t desc = { desc = ach_coronation.0027.desc first_valid = { triggered_desc = { trigger = { scope:stoner = { OR = { has_trait = faith_warrior has_trait = crusader_king } } } desc = ach_coronation.0027.desc.char.crusader } triggered_desc = { trigger = { scope:stoner = { has_trait = varangian exists = title:e_byzantium.holder } } desc = ach_coronation.0027.desc.char.varangian } desc = ach_coronation.0027.desc.char.other } } left_portrait = { character = root animation = interested } center_portrait = { character = scope:partaker animation = interested_left } right_portrait = { character = scope:stoner animation = wedding_drunk } cooldown = { years = 1 } theme = feast_activity trigger = { OR = { # If you can't normally be a Hashishiyah, look for some exceptions can_be_hashishiyah = yes AND = { # If a European Christian, the crusades are going on location = { geographical_region = world_europe } religion = { this = religion:christianity_religion exists = var:variable_ghw_unlocked } } AND = { # If in Scandinavia, you have access to Varangians and they still exist location = { geographical_region = world_europe_north } title:e_byzantium ?= { has_variable = founded_varangian_guard } OR = { culture = { has_cultural_pillar = heritage_north_germanic } dynasty ?= { has_dynasty_perk = fp1_adventure_legacy_1 } } } } involved_activity = { any_attending_character = { eligible_to_join_stoner_trigger = yes this != root count > 1 # In case the Stoner also meets the trigger } } } weight_multiplier = { base = 1 modifier = { factor = 2 OR = { can_be_hashishiyah_ignoring_region_trigger = yes has_trait = hashishiyah } } modifier = { factor = 2 involved_activity = { any_attending_character = { has_trait = hashishiyah } } } modifier = { factor = 3 faith = { has_variable = variable_ghw_cooldown # There was a recent crusade religion = { this = religion:christianity_religion } } } } immediate = { play_music_cue = "middleeasterncourt_cue" involved_activity = { random_attending_character = { limit = { this != root this != prev.activity_host is_ai = yes is_available_in_activity_trigger = yes has_trait = hashishiyah } alternative_limit = { this != root this != prev.activity_host is_ai = yes is_available_in_activity_trigger = yes can_be_hashishiyah_ignoring_region_trigger = yes OR = { can_be_hashishiyah = yes can_be_hashishiyah_ignoring_region_trigger = yes } OR = { has_trait = faith_warrior has_trait = crusader_king has_trait = varangian } } save_scope_as = stoner } root = { if = { # If the stoner does not exist, generate a... limit = { NOT = { exists = scope:stoner } } if = { # Varangian (if you're Scandinavian) limit = { location = { geographical_region = world_europe_north } title:e_byzantium ?= { has_variable = founded_varangian_guard } OR = { culture = { has_cultural_pillar = heritage_north_germanic } dynasty = { has_dynasty_perk = fp1_adventure_legacy_1 } } } create_character = { save_scope_as = stoner culture = root.culture faith = root.faith location = root.location template = varangian_template trait = hashishiyah } title:e_byzantium.holder.culture = { save_scope_as = emperor_culture } } else_if = { # Crusader (if you're Christian) limit = { location = { geographical_region = world_europe } faith = { has_variable = variable_ghw_cooldown } OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion } } create_character = { save_scope_as = stoner culture = root.culture faith = root.faith location = root.location template = knight trait = hashishiyah trait = faith_warrior } } else = { # Some Reveler type of person create_character = { save_scope_as = stoner culture = root.culture faith = root.faith location = root.location template = diplomacy_court_position_holder_template trait = hashishiyah trait = lifestyle_traveler } } scope:stoner = { add_to_activity = root.involved_activity } add_character_flag = created_character_ach_coronation_0027 } } random_attending_character = { limit = { eligible_to_join_stoner_trigger = yes has_trait = hashishiyah this != scope:stoner this != root } alternative_limit = { eligible_to_join_stoner_trigger = yes this != scope:stoner this != root } save_scope_as = partaker } } } option = { # If Hashish is not available, purchase a supply name = ach_coronation.0027.a trigger = { NOT = { has_trait = hashishiyah } # You aren't already a Hashishiyah can_be_hashishiyah = no # You can't be a Hashishiyah can_be_hashishiyah_ignoring_region_trigger = yes # But only because of your region } reverse_add_opinion = { target = scope:stoner modifier = purchased_hashish_opinion opinion = 20 } pay_short_term_gold = { target = scope:stoner gold = medium_gold_value } add_character_modifier = { modifier = ach_secret_stash_modifier years = 4 } random = { chance = 20 add_trait = hashishiyah } if = { limit = { faith = { trait_is_sin = hashishiyah } } add_piety = major_piety_loss stress_impact = { zealous = major_stress_impact_gain cynical = minor_stress_impact_loss } } else_if = { limit = { faith = { trait_is_virtue = hashishiyah } } add_piety = minor_piety_gain stress_impact = { cynical = medium_stress_impact_gain zealous = minor_stress_impact_loss } } stress_impact = { greedy = minor_stress_impact_gain avaricious = minor_stress_impact_gain temperate = medium_stress_impact_gain } ai_chance = { modifier = { OR = { has_trait = lifestyle_reveler has_trait = gluttonous has_trait = gregarious } factor = 2 } base = 100 modifier = { OR = { has_trait = greedy has_trait = avaricious } factor = 0.5 } modifier = { has_trait = temperate factor = 0 } } } option = { # Join in name = ach_coronation.0027.b name = { trigger = { has_trait = hashishiyah } text = ach_coronation.0027.b.hashishiyah } trait = hashishiyah reverse_add_opinion = { target = scope:stoner modifier = camp_party_reveled_opinion opinion = 10 } reverse_add_opinion = { target = scope:partaker modifier = camp_party_reveled_opinion opinion = 10 } if = { limit = { has_trait = lifestyle_reveler } add_trait_xp = { trait = lifestyle_reveler value = 5 } } if = { # You already love hashish - let's be smoke buddies! limit = { has_trait = hashishiyah } if = { limit = { reverse_opinion = { target = scope:stoner value > 0 } OR = { scope:stoner = { is_ai = yes } AND = { scope:stoner = { is_ai = no } is_ai = no } } } set_relation_friend = { target = scope:stoner reason = friend_got_high_together } } else = { reverse_add_opinion = { target = scope:stoner modifier = pleased_opinion opinion = 30 } } } else_if = { # Else, if Hashish is available, chance to become a Hashiyah limit = { can_be_hashishiyah = yes # You can be a Hahishiyah } random = { chance = 20 add_trait = hashishiyah } } add_character_modifier = { modifier = stress_hashish_stupor years = 1 } if = { limit = { faith = { trait_is_sin = hashishiyah } } add_piety = minor_piety_loss stress_impact = { zealous = medium_stress_impact_gain cynical = minor_stress_impact_loss } } else_if = { limit = { faith = { trait_is_virtue = hashishiyah } } add_piety = minor_piety_gain stress_impact = { cynical = medium_stress_impact_gain zealous = minor_stress_impact_loss } } stress_impact = { base = medium_stress_impact_loss temperate = medium_stress_impact_gain shy = minor_stress_impact_gain hashishiyah = minor_stress_impact_loss # Bonus stress loss if you're already a fan } ai_chance = { base = 100 modifier = { NOT = { has_trait = cynical } faith = { trait_is_virtue = hashishiyah } factor = 2 } modifier = { OR = { has_trait = lifestyle_reveler has_trait = gluttonous has_trait = gregarious } factor = 2 } modifier = { has_trait = shy factor = 0.5 } } } option = { # Host: Get this person out of here - drugs are bad!!! name = ach_coronation.0027.c trigger = { this = involved_activity.activity_host } add_prestige = medium_prestige_gain reverse_add_opinion = { target = scope:stoner modifier = angry_opinion opinion = -25 } reverse_add_opinion = { target = scope:partaker modifier = disappointed_opinion opinion = -10 } scope:stoner = { remove_from_activity = involved_activity } if = { limit = { faith = { trait_is_sin = hashishiyah } } add_piety = medium_piety_gain stress_impact = { cynical = minor_stress_impact_gain zealous = medium_stress_impact_loss } } else_if = { limit = { faith = { trait_is_virtue = hashishiyah } } add_piety = medium_piety_loss stress_impact = { zealous = minor_stress_impact_gain cynical = medium_stress_impact_loss } } stress_impact = { gregarious = minor_stress_impact_gain lifestyle_reveler = minor_stress_impact_gain hashishiyah = major_stress_impact_gain } ai_chance = { base = 50 modifier = { has_trait = zealous faith = { trait_is_sin = hashishiyah } factor = 4 } modifier = { has_trait = cynical faith = { trait_is_virtue = hashishiyah } factor = 4 } } } option = { # I'm good name = ach_coronation.0027.d flavor = { triggered_desc = { trigger = { this = involved_activity.activity_host } desc = ach_coronation.0027.d.host } } if = { limit = { this = involved_activity.activity_host } custom_tooltip = coronation_tt_positive_tiny involved_activity = { activity_special_type_progression_miniscule = yes } coronation_add_magnificence_log_effect = { VALUE = flag:positive_miniscule CHAR = root } } else = { add_prestige = minor_prestige_gain } if = { limit = { faith = { trait_is_sin = hashishiyah } } add_piety = minor_piety_gain } else_if = { limit = { faith = { trait_is_virtue = hashishiyah } } add_piety = minor_piety_loss } stress_impact = { lifestyle_reveler = minor_stress_impact_gain gregarious = minor_stress_impact_gain temperate = minor_stress_impact_loss hashishiyah = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = temperate NOT = { has_trait = hashishiyah } factor = 2 } modifier = { OR = { has_trait = lifestyle_reveler has_trait = gluttonous } factor = 0.5 } modifier = { has_trait = hashishiyah factor = 0.25 } } } after = { if = { limit = { has_character_flag = created_character_ach_coronation_0027 scope:stoner = { NOT = { has_relation_friend = root } } } hidden_effect = { scope:stoner = { silent_disappearance_effect = yes } } } } } ###################### # Host: Drinking contest with a detractor # by Jay Zaborowski # 0028 scripted_effect ach_coronation_0028_success_effect = { add_prestige = minor_prestige_gain custom_tooltip = coronation_tt_positive_medium involved_activity = { activity_special_type_progression_medium = yes } coronation_add_magnificence_log_effect = { VALUE = flag:positive_medium CHAR = root } if = { limit = { has_activity_intent = coronation_impress_attendees } every_vassal = { limit = { OR = { government_has_flag = government_is_tribal government_has_flag = government_is_nomadic } } custom = custom.every_tribal_nomadic_vassal add_opinion = { target = root modifier = impressed_opinion opinion = 10 } } } else_if = { limit = { has_activity_intent = coronation_weaken_detractors } every_vassal = { limit = { OR = { government_has_flag = government_is_tribal government_has_flag = government_is_nomadic } } custom = custom.every_tribal_nomadic_vassal add_opinion = { target = scope:drinker modifier = failure_opinion opinion = -15 } } } create_character_memory = { type = defeated_detractor_in_drinking_contest_memory participants = { detractor = scope:drinker } } } ach_coronation.0028 = { type = activity_event title = ach_coronation.0028.t desc = ach_coronation.0028.desc left_portrait = { character = root animation = disapproval camera = camera_event_left_pointing_back_fov20 } center_portrait = { character = scope:drinker animation = rage camera = camera_event_center_pointing_forward_fov35 } right_portrait = { character = scope:onlooker animation = interested camera = camera_event_very_right_forward_fov30 } theme = feast_activity cooldown = { years = 1 } trigger = { OR = { has_activity_intent = coronation_impress_attendees has_activity_intent = coronation_weaken_detractors } government_has_flag = government_is_tribal faith_forbids_alcohol_trigger = no involved_activity = { any_guest_subset = { name = detractor is_available_in_activity_trigger = yes faith_forbids_alcohol_trigger = no } } } immediate = { # Grab the highest prowess Detractor involved_activity = { random_guest_subset = { name = detractor limit = { is_available_in_activity_trigger = yes faith_forbids_alcohol_trigger = no } weight = { base = 1 is_of_major_interest_to_weight_up_modifier = { CHARACTER = root } is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root } modifier = { add = { value = prowess multiply = 5 } } modifier = { has_trait = temperate factor = 0.5 } modifier = { has_trait = drunkard factor = 1.5 } } save_scope_as = drinker } random_attending_character = { limit = { this != root this != scope:drinker is_available_in_activity_trigger = yes faith_forbids_alcohol_trigger = no } save_scope_as = onlooker } } } option = { # I'll outdrink them all! name = ach_coronation.0028.a skill = prowess duel = { skills = { prowess } target = scope:drinker 50 = { # Drink them under the table compare_modifier = { value = scope:duel_value multiplier = 3.5 } modifier = { add = 10 has_trait = drunkard } modifier = { factor = 1.5 health > scope:drinker.health } modifier = { # Chonky people can take their alcohol better factor = 1.5 current_weight > scope:drinker.current_weight } desc = ach_coronation.0028.a.win scope:drinker = { if = { limit = { has_activity_intent = coronation_weaken_detractors } add_prestige = major_prestige_loss } else = { add_prestige = medium_prestige_loss } } send_interface_toast = { title = ach_coronation.0028.a.win type = event_toast_effect_good left_icon = root right_icon = scope:drinker ach_coronation_0028_success_effect = yes } } 50 = { # You fail compare_modifier = { value = scope:duel_value multiplier = -3.5 } modifier = { add = 10 scope:drinker = { has_trait = drunkard } } modifier = { factor = 1.5 health < scope:drinker.health } modifier = { factor = 1.5 current_weight < scope:drinker.current_weight } desc = ach_coronation.0028.a.lose scope:drinker = { add_prestige = minor_prestige_gain } send_interface_toast = { title = ach_coronation.0028.a.lose type = event_toast_effect_good left_icon = root right_icon = scope:drinker add_prestige = medium_prestige_loss every_vassal = { limit = { OR = { government_has_flag = government_is_tribal government_has_flag = government_is_nomadic } } custom = custom.every_tribal_nomadic_vassal add_opinion = { target = root modifier = unimpressed_opinion opinion = -10 } } } } } random = { chance = 5 add_trait = drunkard } stress_impact = { drunkard = medium_stress_impact_loss lifestyle_reveler = minor_stress_impact_loss gregarious = minor_stress_impact_loss temperate = minor_stress_impact_gain } ai_chance = { base = 75 ai_value_modifier = { ai_sociability = 1 } modifier = { factor = 1.5 OR = { has_trait = gregarious has_trait = drunkard has_trait = gluttonous } } modifier = { factor = 0.5 has_trait = temperate } } } option = { # Maybe if I slipped something into HerHis drink... name = ach_coronation.0028.b skill = intrigue duel = { skill = intrigue value = 12 50 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -49 } desc = ach_coronation.0028.b.win scope:drinker = { if = { limit = { has_activity_intent = coronation_weaken_detractors } add_prestige = major_prestige_loss } else = { add_prestige = medium_prestige_loss } } send_interface_toast = { title = ach_coronation.0028.b.win type = event_toast_effect_good left_icon = root right_icon = scope:drinker ach_coronation_0028_success_effect = yes } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } scope:drinker = { add_opinion = { target = root modifier = tried_to_poison_me_opinion opinion = -40 } if = { limit = { OR = { is_ai = yes AND = { root = { is_ai = no } is_ai = no } } } progress_towards_rival_effect = { REASON = rival_tried_to_poison CHARACTER = root OPINION = 0 } } } coronation_move_towards_detractor_effect = { CHARACTER = scope:drinker } desc = ach_coronation.0028.b.lose send_interface_toast = { title = ach_coronation.0028.b.lose type = event_toast_effect_good left_icon = root right_icon = scope:drinker custom_tooltip = coronation_tt_negative involved_activity = { activity_special_type_progression_negative = yes } coronation_add_magnificence_log_effect = { VALUE = flag:negative CHAR = root } every_vassal = { limit = { OR = { government_has_flag = government_is_tribal government_has_flag = government_is_nomadic } } custom = custom.every_tribal_nomadic_vassal add_opinion = { target = root modifier = dishonorable_liege_opinion opinion = -20 } } } create_character_memory = { type = was_caught_cheating_in_drinking_contest_memory participants = { detractor = scope:drinker } } } } scope:drinker = { if = { limit = { can_contract_disease_trigger = { DISEASE = ill } } random = { chance = { value = 50 add = { value = prowess multiply = -1 } } contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = yes } } } } stress_impact = { honest = massive_stress_impact_gain just = medium_stress_impact_gain temperate = minor_stress_impact_gain } ai_chance = { base = 50 ai_value_modifier = { ai_honor = -1 } opinion_modifier = { opinion_target = scope:drinker } modifier = { factor = 0 OR = { intrigue <= 8 ai_honor >= low_positive_ai_value } } } } option = { # I'll be fine name = ach_coronation.0028.c scope:drinker = { add_opinion = { target = root modifier = disappointed_opinion opinion = -10 } } add_legitimacy = minor_legitimacy_loss stress_impact = { temperate = minor_stress_impact_loss drunkard = medium_stress_impact_gain lifestyle_reveler = minor_stress_impact_gain } ai_chance = { base = 50 ai_value_modifier = { ai_sociability = -1 } modifier = { factor = 2 has_trait = temperate } } } } ###################### # Host: Guests offer to help get a hunt going # by Jay Zaborowski # 0029 scripted_trigger ach_coronation_0029_friend_trigger = { this != involved_activity.activity_host is_available_in_activity_trigger = yes can_hunt_trigger = yes is_vegetarian_trigger = no likes_character_trigger = { CHARACTER = involved_activity.activity_host } } ach_coronation.0029 = { type = activity_event title = ach_coronation.0029.t desc = ach_coronation.0029.desc left_portrait = { character = root animation = thinking camera = camera_event_table_left } center_portrait = { character = scope:second triggered_animation = { trigger = { use_goblet_in_tavern_trigger = yes } animation = drink_goblet } triggered_animation = { trigger = { use_goblet_in_tavern_trigger = no } animation = drink } camera = camera_event_table_center } right_portrait = { character = scope:first triggered_animation = { trigger = { use_goblet_in_tavern_trigger = yes } animation = toast_goblet } triggered_animation = { trigger = { use_goblet_in_tavern_trigger = no } animation = toast } camera = camera_event_table_right_far } theme = feast_activity cooldown = { years = 1 } trigger = { OR = { has_activity_intent = coronation_impress_attendees has_activity_intent = coronation_embrace_supporters has_activity_intent = coronation_exalt_crown } has_trait = lifestyle_hunter is_vegetarian_trigger = no involved_activity = { any_attending_character = { ach_coronation_0029_friend_trigger = yes count >= 2 } } } weight_multiplier = { base = 1 modifier = { has_trait = lifestyle_hunter has_trait_xp = { trait = lifestyle_hunter track = hunter value >= 50 } add = 1 } modifier = { has_trait = lifestyle_hunter has_trait_xp = { trait = lifestyle_hunter track = hunter value = 100 } add = 1 } } immediate = { involved_activity = { activity_host = { save_scope_as = host } random_attending_character = { limit = { # Is your buddy and a hunter ach_coronation_0029_friend_trigger = yes has_trait = lifestyle_hunter has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = root } } alternative_limit = { # Or one of those, at least ach_coronation_0029_friend_trigger = yes OR = { has_trait = lifestyle_hunter has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = root } } } alternative_limit = { # Or exists, at least ach_coronation_0029_friend_trigger = yes } weight = { base = 1 modifier = { has_trait = lifestyle_hunter add = 4 } modifier = { add = 1 reverse_opinion = { target = root value > 0 } } modifier = { add = 2 reverse_opinion = { target = root value > 20 } } modifier = { add = 3 reverse_opinion = { target = root value > 40 } } modifier = { add = 5 reverse_opinion = { target = root value > 60 } } modifier = { add = 8 reverse_opinion = { target = root value > 80 } } } save_scope_as = first } random_attending_character = { limit = { ach_coronation_0029_friend_trigger = yes this != scope:first has_trait = lifestyle_hunter has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = root } } alternative_limit = { ach_coronation_0029_friend_trigger = yes this != scope:first OR = { has_trait = lifestyle_hunter has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = root } } } alternative_limit = { ach_coronation_0029_friend_trigger = yes this != scope:first } weight = { base = 1 modifier = { has_trait = lifestyle_hunter add = 4 } modifier = { add = 1 reverse_opinion = { target = root value > 0 } } modifier = { add = 2 reverse_opinion = { target = root value > 20 } } modifier = { add = 3 reverse_opinion = { target = root value > 40 } } modifier = { add = 5 reverse_opinion = { target = root value > 60 } } modifier = { add = 8 reverse_opinion = { target = root value > 80 } } } save_scope_as = second } } } option = { # Let's get a Hunt ready name = ach_coronation.0029.a reason = activity_intent flavor = { first_valid = { triggered_desc = { trigger = { has_activity_intent = coronation_impress_attendees } desc = ach_coronation.0029.a.flavor.impress_attendees } triggered_desc = { trigger = { has_activity_intent = coronation_embrace_supporters } desc = ach_coronation.0029.a.flavor.embrace_supporters } triggered_desc = { trigger = { has_activity_intent = coronation_exalt_crown } desc = ach_coronation.0029.a.flavor.exalt_crown } } } switch = { trigger = has_activity_intent coronation_impress_attendees = { custom_tooltip = ach_coronation.0029.a.impressive_hunt add_character_flag = impressive_hunt } coronation_embrace_supporters = { custom_tooltip = ach_coronation.0029.a.personal_hunt add_character_flag = personal_hunt } coronation_exalt_crown = { custom_tooltip = ach_coronation.0029.a.glorious_hunt add_character_flag = glorious_hunt } } } option = { # Want to try falconry? name = ach_coronation.0029.b trigger = { has_dlc_feature = tours_and_tournaments } flavor = ach_coronation.0029.b.flavor custom_tooltip = ach_coronation.0029.b.free_falconry add_character_flag = free_falconry } option = { # Is Temperance not a virtue? name = { trigger = { faith = { trait_is_virtue = temperate } NOR = { has_trait = gluttonous has_trait = cynical } } text = ach_coronation.0029.c.virtuous } name = ach_coronation.0029.c if = { limit = { faith = { trait_is_virtue = temperate } NOR = { has_trait = gluttonous has_trait = cynical } } custom_tooltip = ach_coronation.0029.c.virtuous.tt add_piety = medium_piety_gain every_vassal = { limit = { has_vassal_stance = zealot } custom = every_zealot_vassal add_opinion = { modifier = pious_opinion target = root opinion = 5 } } } else = { add_prestige = minor_prestige_gain } ai_chance = { base = 150 } } }