namespace = fp2_struggle ### SYSTEM EVENTS ################################################################# ## # Parameter Events ## 0001 - 0010 VIP spontaneous relationship management. ## 0011 - 0040 Struggle VIPs spontaneously develop negative relationships with each other. ## 0041 - 0070 Struggle VIPs spontaneously develop postive relationships with each other. ## # Other Events ## 0501 - 0510 Struggle Intro Events ## 0900 - 0999 Struggle ending decision events ### EVENT LIST #################################################################### ## XXXX - XXXX YYY by ZZZ ## 1000 - 1000 Stoking the Fire by Ola Jentzsch ## 1001 - 1001 War Widows by Ola Jentzsch ## 1002 - 1002 Andalusian Advancements by Ola Jentzsch ## 1010 - 1012 Soul of Iron by Ola Jentzsch ## 1020 - 1020 Death of a Councilman by Ola Jentzsch ## 1050 - 1050 The Vision by Ola Jentzsch ## 2000 - 2000 Disorderly Market by Hugo Cortell ## 2001 - 2002 Desperate Villagers Seek New Lord by Hugo Cortell ## 2003 - 2003 Lost Migratory Birds by Hugo Cortell ## 2004 - 2005 Ship building event by Hugo Cortell ## 2006 - 2006 The Borders of Faith by Hugo Cortell ## 2007 - 2007 Castle Worthy of Iberia by Hugo Cortell ## 2008 - 2008 Misdeeds of The Chaplain by Hugo Cortell ## 2009 - 2012 Catching Thieves of Myth by Hugo Cortell ## 2013 - 2014 The Secret to Freedom by Hugo Cortell ## 2015 - 2016 Letter on The Back by Hugo Cortell ## 2021 - 2022 RETURN OF THE THIEF KING by Hugo Cortell ## 3001 - 3010 The Price of War by Veronica Pazos ## 3011 - 3020 Order of the Hatchet by Veronica Pazos ## 3021 - 3030 The Wrath of Heaven by Veronica Pazos ################################################################################### # Setting AI Intent fp2_struggle.0003 = { hidden = yes scope = none scope = struggle trigger = { # Should not need this, but, redundancy check! exists = struggle:iberian_struggle struggle:iberian_struggle = { any_involved_ruler = { } } # For when the conflict is ongoing but nobody is left to fight it } immediate = { # prepare needed variables; they will be destroyed at the end of the immediate set_variable = { name = agents_for_escalation value = 0 } set_variable = { name = agents_for_deescalation value = 0 } # Go through the characters to distribute them between the potential transitions struggle:iberian_struggle = { every_involved_ruler = { limit = { is_alive = yes } ####################### # Play cue track ###################### if = { limit = { is_ai = no } play_music_cue = "mx_Struggle_Opening" } ####################### # Check existing flags ###################### if = { limit = { has_character_flag = agenda_towards_escalation } root = { change_variable = { name = agents_for_escalation add = 1 } } } else_if = { limit = { has_character_flag = agenda_towards_deescalation } root = { change_variable = { name = agents_for_deescalation add = 1 } } } else = { # Set a flag ############################# # Current Phase: Opportunity ############################# if = { limit = { root = { is_struggle_phase = struggle_iberia_phase_opportunity } } random_list = { # Working towards Hostility # It should be for characters looking for direct conflicts and domination, with the will and ability to expand their realms 100 = { # Odds modifiers fp2_struggle_set_ai_agenda_common_modifiers = { PHASE = hostility INTENT = escalation } # Apply effects fp2_struggle_apply_ai_agenda_effect = { INTENT = escalation } } # Working towards Conciliation 100 = { # Odds modifiers fp2_struggle_set_ai_agenda_common_modifiers = { PHASE = conciliation INTENT = deescalation } # Apply effects fp2_struggle_apply_ai_agenda_effect = { INTENT = deescalation } } } } ############################# # Current Phase: Hostility ############################# if = { limit = { root = { is_struggle_phase = struggle_iberia_phase_hostility } } random_list = { # Working towards Hostility: it means that the character wants to stay in 100 = { # Odds modifiers fp2_struggle_set_ai_agenda_common_modifiers = { PHASE = hostility INTENT = escalation } # Apply effects fp2_struggle_apply_ai_agenda_effect = { INTENT = escalation } } # Working towards Compromise 100 = { # Odds modifiers fp2_struggle_set_ai_agenda_common_modifiers = { PHASE = compromise INTENT = deescalation } # Apply effects fp2_struggle_apply_ai_agenda_effect = { INTENT = deescalation } } } } ############################# # Current Phase: Compromise ############################# if = { limit = { root = { is_struggle_phase = struggle_iberia_phase_compromise } } random_list = { # Working towards Opportunity 100 = { # Odds modifiers fp2_struggle_set_ai_agenda_common_modifiers = { PHASE = opportunity INTENT = escalation } # Apply effects fp2_struggle_apply_ai_agenda_effect = { INTENT = escalation } } # Working towards Compromise: they want to stay in the same phase 100 = { # Odds modifiers fp2_struggle_set_ai_agenda_common_modifiers = { PHASE = compromise INTENT = deescalation } # Apply effects fp2_struggle_apply_ai_agenda_effect = { INTENT = deescalation } } } } ############################# # Current Phase: Conciliation ############################# if = { limit = { root = { is_struggle_phase = struggle_iberia_phase_conciliation } } random_list = { # Working towards Compromise 100 = { # Odds modifiers fp2_struggle_set_ai_agenda_common_modifiers = { PHASE = compromise INTENT = escalation } # Apply effects fp2_struggle_apply_ai_agenda_effect = { INTENT = escalation } } # Working towards Conciliation: they want to stay in the same phase 100 = { # Odds modifiers fp2_struggle_set_ai_agenda_common_modifiers = { PHASE = conciliation INTENT = deescalation } # Apply effects fp2_struggle_apply_ai_agenda_effect = { INTENT = deescalation } } } } } } } # Clean variables remove_variable = agents_for_escalation remove_variable = agents_for_deescalation } } # Set AI Intent on join fp2_struggle.004 = { hidden = yes scope = none immediate = { set_variable = { name = agents_for_escalation value = 0 } set_variable = { name = agents_for_deescalation value = 0 } ############################ # Update the variables ############################ every_character_struggle = { every_involved_ruler = { limit = { is_alive = yes } if = { limit = { has_character_flag = agenda_towards_escalation } root = { change_variable = { name = agents_for_escalation add = 1 } } } else_if = { limit = { has_character_flag = agenda_towards_deescalation } root = { change_variable = { name = agents_for_deescalation add = 1 } } } } } if = { limit = { NOR = { has_character_flag = agenda_towards_escalation has_character_flag = agenda_towards_deescalation } } ############################# # Current Phase: Opportunity ############################# if = { limit = { any_character_struggle = { is_struggle_phase = struggle_iberia_phase_opportunity } } random_list = { # Working towards Hostility # It should be for characters looking for direct conflicts and domination, with the will and ability to expand their realms 100 = { # Odds modifiers fp2_struggle_set_ai_agenda_common_modifiers = { PHASE = hostility INTENT = escalation } # Apply effects fp2_struggle_apply_ai_agenda_effect = { INTENT = escalation } } # Working towards Conciliation 100 = { # Odds modifiers fp2_struggle_set_ai_agenda_common_modifiers = { PHASE = conciliation INTENT = deescalation } # Apply effects fp2_struggle_apply_ai_agenda_effect = { INTENT = deescalation } } } } ############################# # Current Phase: Hostility ############################# if = { limit = { any_character_struggle = { is_struggle_phase = struggle_iberia_phase_hostility } } random_list = { # Working towards Hostility: it means that the character wants to stay in 100 = { # Odds modifiers fp2_struggle_set_ai_agenda_common_modifiers = { PHASE = hostility INTENT = escalation } # Apply effects fp2_struggle_apply_ai_agenda_effect = { INTENT = escalation } } # Working towards Compromise 100 = { # Odds modifiers fp2_struggle_set_ai_agenda_common_modifiers = { PHASE = compromise INTENT = deescalation } # Apply effects fp2_struggle_apply_ai_agenda_effect = { INTENT = deescalation } } } } ############################# # Current Phase: Compromise ############################# if = { limit = { any_character_struggle = { is_struggle_phase = struggle_iberia_phase_compromise } } random_list = { # Working towards Opportunity 100 = { # Odds modifiers fp2_struggle_set_ai_agenda_common_modifiers = { PHASE = opportunity INTENT = escalation } # Apply effects fp2_struggle_apply_ai_agenda_effect = { INTENT = escalation } } # Working towards Compromise: they want to stay in the same phase 100 = { # Odds modifiers fp2_struggle_set_ai_agenda_common_modifiers = { PHASE = compromise INTENT = deescalation } # Apply effects fp2_struggle_apply_ai_agenda_effect = { INTENT = deescalation } } } } ############################# # Current Phase: Conciliation ############################# if = { limit = { any_character_struggle = { is_struggle_phase = struggle_iberia_phase_conciliation } } random_list = { # Working towards Compromise 100 = { # Odds modifiers fp2_struggle_set_ai_agenda_common_modifiers = { PHASE = compromise INTENT = escalation } # Apply effects fp2_struggle_apply_ai_agenda_effect = { INTENT = escalation } } # Working towards Conciliation: they want to stay in the same phase 100 = { # Odds modifiers fp2_struggle_set_ai_agenda_common_modifiers = { PHASE = conciliation INTENT = deescalation } # Apply effects fp2_struggle_apply_ai_agenda_effect = { INTENT = deescalation } } } } } # Clean variables remove_variable = agents_for_escalation remove_variable = agents_for_deescalation } } ################################### # Iberian Struggle Intro Events # 0501 - 599 ################################### #fp2_struggle.0501 = { # Fullscreen Intro Event # type = character_event # window = fullscreen_event # title = fp2_struggle.0501.t # desc = { # desc = fp2_struggle.0501.desc # first_valid = { # triggered_desc = { # trigger = { # any_character_struggle = { # involvement = involved # is_struggle_type = iberian_struggle # } # } # desc = fp2_struggle.0501.desc.involved # } # triggered_desc = { # trigger = { # any_character_struggle = { # involvement = interloper # is_struggle_type = iberian_struggle # } # } # desc = fp2_struggle.0501.desc.interloper # } # } # } # theme = realm # trigger = { # we need to prevent this from firing for all players when a new player joins in MP # is_ai = no # NOT = { has_character_flag = fp2_struggle_intro_event_flag } # fp2_character_any_involvement_iberian_struggle_trigger = yes # } # override_background = { reference = fp2_fullscreen_intro } # override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_animate" } # # cooldown = { years = 100 } # # widgets = { # widget = { # gui = "event_window_widget_struggle_info" # container = "dynamic_content_widget" # controller = struggle_info # setup_scope = { struggle:iberian_struggle = { save_scope_as = struggle } } # } # } # immediate = { # play_music_cue = "mx_Struggle_Opening" # add_character_flag = fp2_struggle_intro_event_flag # save_scope_value_as = { # name = start # value = yes # } # } # option = { # name = fp2_struggle.0501.a # clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_start_select" # } #} # #################################### ## Struggle Endings ## by Joe Parkin ## 0900-0912 #################################### #fp2_struggle.0900 = { # Hostility # type = character_event # window = fullscreen_event # title = fp2_struggle.0900.t # desc = { # first_valid = { # triggered_desc = { # trigger = { # culture = { # OR = { # this = culture:basque # any_parent_culture = { this = culture:basque } # has_cultural_pillar = language_basque # } # } # } # desc = fp2_struggle.0900.opening.basque # } # triggered_desc = { # trigger = { # culture = { # OR = { # this = culture:andalusian # any_parent_culture = { this = culture:andalusian } # has_cultural_pillar = language_arabic # } # } # } # desc = fp2_struggle.0900.opening.andalusian # } # triggered_desc = { # trigger = { # culture = { has_cultural_pillar = heritage_iberian } # } # desc = fp2_struggle.0900.opening.iberian # } # desc = fp2_struggle.0900.opening # } # desc = fp2_struggle.0900.desc # } # theme = court # override_background = { reference = fp2_fullscreen_hostility } # override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_end_animate" } # # immediate = { # # Add all involved rulers to a list, for ping event # play_music_cue = "mx_Struggle_ending_hostility" # fp2_struggle_ending_involved_list_effect = yes # give_nickname = nick_the_conquistador # dynasty = { add_dynasty_prestige = 10000 } # } # # # Faith victory # option = { # name = fp2_struggle.0900.a # if = { # limit = { exists = house } # house = { # add_house_modifier = { # modifier = fp2_struggle_hostility_house_faith_modifier # } # } # } # # Piety reward for faith victory # add_piety = 1000 # custom_description_no_bullet = { text = fp2_struggle_house_tt } # custom_tooltip = fp2_struggle_hostility_holy_cb_tt # custom_tooltip = fp2_struggle_hostility_conversion_holy_tt # stress_impact = { # cynical = medium_stress_impact_gain # } # ai_chance = { # base = 100 # ai_value_modifier = { # ai_zeal = 1 # } # } # } # # # Culture victory # option = { # name = fp2_struggle.0900.b # # Renown reward for culture victory # if = { # limit = { exists = house } # dynasty = { add_dynasty_prestige = 1000 } # house = { # add_house_modifier = { # modifier = fp2_struggle_hostility_house_culture_modifier # } # } # } # custom_description_no_bullet = { text = fp2_struggle_house_tt } # custom_tooltip = fp2_struggle_hostility_culture_cb_tt # custom_tooltip = fp2_struggle_hostility_conversion_culture_tt # # All Involved cultures lose acceptance of each other # custom_tooltip = { # text = fp2_struggle_hostility_culture_tt # fp2_struggle_hostility_cultural_acceptance_effect = yes # } # stress_impact = { # humble = medium_stress_impact_gain # } # ai_chance = { # base = 100 # } # } # # # Combined victory # option = { # name = fp2_struggle.0900.c # # Reduced renown and piety rewards for combined # if = { # limit = { exists = house } # house = { # add_house_modifier = { # modifier = fp2_struggle_hostility_house_combined_modifier # years = 200 # } # } # } # add_prestige = 3000 # custom_description_no_bullet = { text = fp2_struggle_house_tt } # custom_tooltip = fp2_struggle_hostility_holy_cb_tt # custom_tooltip = culture_parameter_cb_lower_piety_level_requirement # custom_tooltip = fp2_struggle_hostility_culture_cb_tt # custom_tooltip = fp2_struggle_hostility_conversion_holy_tt # custom_tooltip = fp2_struggle_hostility_conversion_culture_tt # # All Involved cultures lose acceptance of each other # custom_tooltip = { # text = fp2_struggle_hostility_culture_large_tt # fp2_struggle_hostility_cultural_acceptance_large_effect = yes # } # stress_impact = { # humble = medium_stress_impact_gain # cynical = medium_stress_impact_gain # } # ai_chance = { # base = 100 # ai_value_modifier = { # ai_zeal = 2 # ai_boldness = 1 # } # } # } # # after = { # # Notify & End Struggle # save_scope_as = fp2_loc_struggle_ender # Loc used to use root, this fixes it # every_player = { # limit = { fp2_does_this_player_care_about_the_fate_of_iberia = yes } # Needs to be checked before the struggle ends due to race condition issues # add_to_list = player_to_notify # Making a list so stuff is tiggered after the struggle ends, to make extra sure I don't break anything. # } # # struggle:iberian_struggle = { end_struggle = struggle_iberia_ending_hostility_decision } # every_in_list = { # Then we *actually* notify palyers, making sure the struggle has already ended # list = player_to_notify # trigger_event = fp2_struggle.0910 # } # } #} # #fp2_struggle.0910 = { # type = character_event # window = fullscreen_event # title = fp2_struggle.0900.t # desc = { # first_valid = { # triggered_desc = { # trigger = { is_in_list = struggle_involvees } # desc = fp2_struggle.0910.opening.involved # } # desc = fp2_struggle.0910.opening # } # desc = fp2_struggle.0910.desc # first_valid = { # triggered_desc = { # trigger = { # scope:struggle_ender.house = { has_house_modifier = fp2_struggle_hostility_house_faith_modifier } # } # desc = fp2_struggle.0910.closing.faith # } # triggered_desc = { # trigger = { # scope:struggle_ender.house = { has_house_modifier = fp2_struggle_hostility_house_culture_modifier } # } # desc = fp2_struggle.0910.closing.culture # } # desc = fp2_struggle.0910.closing.combined # } # } # theme = court # override_background = { reference = fp2_fullscreen_hostility } # override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_end_animate" } # # immediate = { # play_music_cue = "mx_Struggle_ending_hostility" # ##### Major Effects ##### # show_as_tooltip = { # scope:struggle_ender = { # #dynasty = { add_dynasty_prestige = 10000 } # fp2_struggle_hostility_ender_effect = yes # } # } # # Hispania is available! # custom_tooltip = fp2_struggle_can_create_empire_of_hispania_tt # # Choose Holy War boost, Culture War boost, or both # scope:struggle_ender.house = { # switch = { # trigger = has_house_modifier # fp2_struggle_hostility_house_faith_modifier = { # show_as_tooltip = { add_house_modifier = fp2_struggle_hostility_house_faith_modifier } # custom_description_no_bullet = { text = fp2_struggle_house_tt } # custom_tooltip = fp2_struggle_hostility_holy_cb_tt # } # fp2_struggle_hostility_house_culture_modifier = { # show_as_tooltip = { add_house_modifier = fp2_struggle_hostility_house_culture_modifier } # custom_description_no_bullet = { text = fp2_struggle_house_tt } # custom_tooltip = fp2_struggle_hostility_culture_cb_tt # custom_tooltip = fp2_struggle_hostility_culture_tt # } # fp2_struggle_hostility_house_combined_modifier = { # show_as_tooltip = { add_house_modifier = fp2_struggle_hostility_house_combined_modifier } # custom_description_no_bullet = { text = fp2_struggle_house_tt } # custom_tooltip = fp2_struggle_hostility_holy_cb_tt # custom_tooltip = fp2_struggle_hostility_culture_cb_tt # custom_tooltip = fp2_struggle_hostility_culture_large_tt # } # } # } # } # # # Ok # option = { # name = { # text = fp2_struggle.0910.a # trigger = { is_in_list = struggle_involvees } # } # name = { # text = fp2_struggle.0910.b # trigger = { # NOT = { is_in_list = struggle_involvees } # } # } # } #} # #fp2_struggle.0901 = { # Compromise # type = character_event # window = fullscreen_event # title = fp2_struggle.0901.t # desc = { # first_valid = { # triggered_desc = { # trigger = { # culture = { # OR = { # this = culture:basque # any_parent_culture = { this = culture:basque } # has_cultural_pillar = language_basque # } # } # } # desc = fp2_struggle.0900.opening.basque # } # triggered_desc = { # trigger = { # culture = { # OR = { # this = culture:andalusian # any_parent_culture = { this = culture:andalusian } # has_cultural_pillar = language_arabic # } # } # } # desc = fp2_struggle.0900.opening.andalusian # } # triggered_desc = { # trigger = { # culture = { has_cultural_pillar = heritage_iberian } # } # desc = fp2_struggle.0900.opening.iberian # } # desc = fp2_struggle.0900.opening # } # desc = fp2_struggle.0901.desc # } # theme = court # override_background = { reference = fp2_fullscreen_compromise } # override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_end_animate" } # # immediate = { # play_music_cue = "mx_Struggle_ending_compromise" # # Independent/Split De Jure Duchies will become De Jure Kingdoms # if = { # limit = { # title:e_spain = { # any_in_de_jure_hierarchy = { fp2_struggle_ending_compromise_independent_duchy_trigger = yes } # } # } # custom_tooltip = { # text = fp2_struggle_compromise_create_new_kingdoms_tt # fp2_struggle_compromise_duchies_to_kingdoms_effect = yes # } # } # # Move duchies to right kingdoms # fp2_struggle_compromise_transfer_duchies_effect = yes # # Turn kingdoms to empires # fp2_struggle_compromise_kingdoms_to_empires_effect = yes # # distribute small kingdoms # fp2_struggle_compromise_distribute_kingdoms_to_neighbouring_empires_effect = yes # # assign the new title to existing characters # fp2_struggle_compromise_distribute_the_actual_titles = yes # # # Set up truces # fp2_struggle_compromise_truce_effect = yes # # ##### Major Effects ##### # fp2_struggle_compromise_ender_effect = yes # # # Tooltips! # fp2_struggle_compromise_tooltip_effect = yes # # ##### Minor Effects ##### # # Self-sufficiency modifiers for each independent realm # fp2_struggle_compromise_modifier_rewards_effect = yes # set_global_variable = { # name = fp2_struggle_compromise_ending # value = yes # } # # Add all involved rulers to a list, for ping event # fp2_struggle_ending_involved_list_effect = yes # } # # # Ok # option = { # name = fp2_struggle.0901.a # if = { # limit = { # any_in_list = { # list = kingdom_empire # this = root.primary_title # } # } # custom_tooltip = fp2_struggle.0901.tt # } # } # # after = { # stress_impact = { # arrogant = medium_stress_impact_gain # } # # # Notify & End Struggle # save_scope_as = fp2_loc_struggle_ender # Loc used to use root, this fixes it # every_player = { # limit = { fp2_does_this_player_care_about_the_fate_of_iberia = yes } # Needs to be checked before the struggle ends due to race condition issues # add_to_list = player_to_notify # Making a list so stuff is tiggered after the struggle ends, to make extra sure I don't break anything. # } # # struggle:iberian_struggle = { end_struggle = struggle_iberia_ending_compromise_decision } # every_in_list = { # Then we *actually* notify palyers, making sure the struggle has already ended # list = player_to_notify # trigger_event = fp2_struggle.0911 # } # } #} # #fp2_struggle.0911 = { # type = character_event # window = fullscreen_event # title = fp2_struggle.0901.t # desc = { # first_valid = { # triggered_desc = { # trigger = { is_in_list = struggle_involvees } # desc = fp2_struggle.0910.opening.involved # } # desc = fp2_struggle.0910.opening # } # desc = fp2_struggle.0911.desc # } # theme = court # override_background = { reference = fp2_fullscreen_compromise } # override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_end_animate" } # # immediate = { # play_music_cue = "mx_Struggle_ending_compromise" # ##### Major Effects ##### # show_as_tooltip = { # scope:struggle_ender = { fp2_struggle_compromise_ender_effect = yes } # } # # Independent/Split De Jure Duchies will become De Jure Kingdoms # custom_tooltip = fp2_struggle_compromise_create_new_kingdoms_tt # # RIP Hispania # fp2_struggle_compromise_tooltip_effect = yes # # ##### Minor Effects ##### # if = { # limit = { # any_in_list = { # list = kingdom_empire # OR = { # this = root.primary_title # this = root.primary_title.de_jure_liege # this = root.primary_title.de_jure_liege.de_jure_liege # } # } # } # custom_tooltip = fp2_struggle.0901.tt # } # if = { # limit = { is_in_list = struggle_involvees } # show_as_tooltip = { # fp2_struggle_compromise_modifier_rewards_personal_house_effect = yes # fp2_struggle_compromise_modifier_rewards_personal_county_effect = yes # } # } # } # # # Ok # option = { # name = { # text = fp2_struggle.0911.a # trigger = { is_in_list = struggle_involvees } # } # name = { # text = fp2_struggle.0910.b # trigger = { # NOT = { is_in_list = struggle_involvees } # } # } # } #} # #fp2_struggle.0902 = { # Conciliation # type = character_event # window = fullscreen_event # title = fp2_struggle.0902.t # desc = { # first_valid = { # triggered_desc = { # trigger = { # culture = { # OR = { # this = culture:basque # any_parent_culture = { this = culture:basque } # has_cultural_pillar = language_basque # } # } # } # desc = fp2_struggle.0900.opening.basque # } # triggered_desc = { # trigger = { # culture = { # OR = { # this = culture:andalusian # any_parent_culture = { this = culture:andalusian } # has_cultural_pillar = language_arabic # } # } # } # desc = fp2_struggle.0900.opening.andalusian # } # triggered_desc = { # trigger = { # culture = { has_cultural_pillar = heritage_iberian } # } # desc = fp2_struggle.0900.opening.iberian # } # desc = fp2_struggle.0900.opening # } # desc = fp2_struggle.0902.desc # } # theme = court # override_background = { reference = fp2_fullscreen_conciliation } # override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_end_animate" } # # immediate = { # play_music_cue = "mx_Struggle_ending_conciliation" # set_global_variable = { # name = fp2_struggle_conciliation_ending # value = yes # } # # Add all involved rulers to a list, for ping event # fp2_struggle_ending_involved_list_effect = yes # # # Add all involved cultures with counties to a list, for marriage and holy war checks # fp2_struggle_ending_culture_list_effect = yes # # # Change cultural acceptance # fp2_struggle_conciliation_cultural_acceptance_effect = yes # # ##### Major Effects ##### # fp2_struggle_conciliation_ender_effect = yes # fp2_struggle_conciliation_tooltip_effect = yes # fp2_struggle_conciliation_modifier_rewards_effect = yes # } # # # # option = { # name = fp2_struggle.0902.a # } # # after = { # stress_impact = { # arrogant = medium_stress_impact_gain # zealous = medium_stress_impact_gain # } # # # Notify & End Struggle # save_scope_as = fp2_loc_struggle_ender # Loc used to use root, this fixes it # every_player = { # limit = { fp2_does_this_player_care_about_the_fate_of_iberia = yes } # Needs to be checked before the struggle ends due to race condition issues # add_to_list = player_to_notify # Making a list so stuff is tiggered after the struggle ends, to make extra sure I don't break anything. # } # # struggle:iberian_struggle = { end_struggle = struggle_iberia_ending_conciliation_decision } # every_in_list = { # Then we *actually* notify palyers, making sure the struggle has already ended # list = player_to_notify # trigger_event = fp2_struggle.0912 # } # } #} # #fp2_struggle.0912 = { # type = character_event # window = fullscreen_event # title = fp2_struggle.0902.t # desc = { # first_valid = { # triggered_desc = { # trigger = { is_in_list = struggle_involvees } # desc = fp2_struggle.0910.opening.involved # } # desc = fp2_struggle.0910.opening # } # desc = fp2_struggle.0912.desc # } # theme = court # override_background = { reference = fp2_fullscreen_conciliation } # override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_end_animate" } # # immediate = { # play_music_cue = "mx_Struggle_ending_conciliation" # ##### Major Effects ##### # show_as_tooltip = { # scope:struggle_ender = { fp2_struggle_conciliation_ender_effect = yes } # } # fp2_struggle_conciliation_tooltip_effect = yes # # ##### Minor Effects ##### # # All involved rulers gain diff culture opinion and learn language scheme power # if = { # limit = { is_in_list = struggle_involvees } # show_as_tooltip = { fp2_struggle_conciliation_modifier_rewards_personal_effect = yes } # } # } # # # Ok # option = { # name = { # text = fp2_struggle.0912.a # trigger = { is_in_list = struggle_involvees } # } # name = { # text = fp2_struggle.0910.b # trigger = { # NOT = { is_in_list = struggle_involvees } # } # } # } #} # #################################### ## Stoking the Fire ## By Ola Jentzsch #################################### #scripted_trigger fp2_struggle_1000_tension_county_trigger = { # is_landless_type_title = no # any_county_province = { geographical_region = world_europe_west_iberia } # faith = { save_temporary_scope_as = compare_faith } # root = { # faith = { # faith_hostility_level = { target = scope:compare_faith value > faith_astray_level } # } # } #} #scripted_trigger fp2_struggle_1000_tension_councillor_trigger = { # faith = { this = root.faith } # is_available_healthy_ai_adult = yes # OR = { # has_trait = zealous # has_trait = wrathful # has_trait = deceitful # has_trait = sadistic # has_trait = holy_warrior # has_trait = callous # } # NOR = { # has_trait = compassionate # has_trait = just # } #} # #fp2_struggle.1000 = { # type = character_event # title = fp2_struggle.1000.t # desc = fp2_struggle.1000.desc # theme = dread # # left_portrait = { # character = root # animation = stress # } # right_portrait = { # character = scope:tension_councillor # animation = scheme # } # # # trigger = { # has_fp2_dlc_trigger = yes # fp2_character_involved_in_struggle_trigger = yes # custom_description = { # text = empty_spooky_trigger #This is entirely pointless, but code likes it, so ghost away! # any_held_county = { fp2_struggle_1000_tension_county_trigger = yes } # OR = { # any_councillor = { fp2_struggle_1000_tension_councillor_trigger = yes } # any_vassal = { fp2_struggle_1000_tension_councillor_trigger = yes } # exists = cp:councillor_marshal # } # } # OR = { # capital_province = { geographical_region = world_europe_west_iberia } # culture = { has_cultural_pillar = heritage_iberian } # } # } # # cooldown = { #this shouldn't fire too often # years = 50 # } # # immediate = { #We need a province and a suitable councillor; this fixes that. # random_held_county = { # limit = { fp2_struggle_1000_tension_county_trigger = yes } # save_scope_as = tension_county # } # if = { # limit = { # any_councillor = { # fp2_struggle_1000_tension_councillor_trigger = yes # } # } # random_councillor = { # limit = { # fp2_struggle_1000_tension_councillor_trigger = yes # } # save_scope_as = tension_councillor # } # } # else_if = { # limit = { # any_vassal = { # fp2_struggle_1000_tension_councillor_trigger = yes # } # } # random_vassal = { # limit = { # fp2_struggle_1000_tension_councillor_trigger = yes # } # save_scope_as = tension_councillor # } # } # else = { # random_councillor = { # limit = { # has_council_position = councillor_marshal # } # save_scope_as = tension_councillor # } # } # # if = { #this code checks if there is an eligible person for the 4th option # limit = { # any_vassal = { # is_available_healthy_ai_adult = yes # faith = scope:tension_county.faith # } # } # random_vassal = { # limit = { # is_available_healthy_ai_adult = yes # faith = scope:tension_county.faith # } # save_scope_as = minority_courtier # } # } # else_if = { # limit = { # any_courtier = { # is_available_healthy_ai_adult = yes # faith = scope:tension_county.faith # } # } # random_courtier = { # limit = { # is_available_healthy_ai_adult = yes # faith = scope:tension_county.faith # } # save_scope_as = minority_courtier # } # } # } # # option = { #Let us spread some hatred...discreetly. # name = fp2_struggle.1000.a # # ai_chance = { #Cruel and fanatical characters pick this option # base = 10 # ai_value_modifier = { # ai_zeal = 1 # ai_vengefulness = 0.5 # ai_compassion = -1 # ai_honor = -1 # } # } # # stress_impact = { # # Righteous characters find this a very unappealing option. # compassionate = medium_stress_impact_gain # gallant = medium_stress_impact_gain # honest = medium_stress_impact_gain # just = medium_stress_impact_gain # paragon = medium_stress_impact_gain # # As do lazy ones. # lazy = minor_stress_impact_gain # } # # scope:tension_councillor = { # add_opinion = { # target = root # opinion = 10 # modifier = took_my_advice_opinion # } # } # # # add_character_modifier = { # modifier = fanatical_recruits_modifier # years = 10 # } # # duel = { #You try to create a hate campaign - and get away with it. # skill = intrigue # value = average_skill_rating # # 20 = { # compare_modifier = { # value = scope:duel_value # multiplier = 2 # } # send_interface_toast = { # title = stoke_tension_toast.success # left_icon = root # # add_dread = minor_dread_gain # # scope:tension_county = { # add_county_modifier = { # modifier = riots_and_murders_province_modifier # years = 5 # } # } # } # } # # 20 = { # compare_modifier = { # value = scope:duel_value # multiplier = -1 # } # send_interface_toast = { # title = stoke_tension_toast.failure # left_icon = root # add_character_modifier = { # modifier = hate_monger_modifier # years = 10 # } # # scope:tension_county = { # add_county_modifier = { # modifier = riots_and_murders_province_modifier # years = 5 # } # } # } # } # } # } # # option = { #I trust you to handle it # name = fp2_struggle.1000.b # # trigger = { # intrigue <= medium_skill_rating # } # # show_unlock_reason = no # # ai_chance = { #Cruel and fanatical characters pick this option # base = 10 # ai_value_modifier = { # ai_zeal = 0.5 # ai_rationality = 0.2 # ai_compassion = -0.5 # ai_honor = -1 # } # } # # stress_impact = { # # Righteous characters find this a very unappealing option. # compassionate = medium_stress_impact_gain # gallant = medium_stress_impact_gain # honest = medium_stress_impact_gain # just = medium_stress_impact_gain # paragon = medium_stress_impact_gain # # As do lazy ones. # lazy = miniscule_stress_impact_gain # } # # if = { # limit = { # intrigue <= medium_skill_rating # } # custom_tooltip = bad_intrigue.tt # } # # scope:tension_councillor = { # if = { # limit = { # intrigue >= average_skill_level # } # add_opinion = { # target = root # opinion = 10 # modifier = trusted_me_opinion # } # } # else = { # add_opinion = { # target = root # opinion = -10 # modifier = unfair_expectations_opinion # } # } # } # # add_character_modifier = { # modifier = fanatical_recruits_modifier # years = 10 # } # # # # scope:tension_councillor = { # duel = { # skill = intrigue # value = average_skill_rating # # 20 = { # compare_modifier = { # value = scope:duel_value # multiplier = 2 # } # root = { # send_interface_toast = { # title = delegated_stoke_tension_toast.success # left_icon = scope:tension_councillor # # scope:tension_county = { # add_county_modifier = { # modifier = riots_and_murders_province_modifier # years = 5 # } # } # } # } # } # 20 = { # compare_modifier = { # value = scope:duel_value # multiplier = -1 # } # root = { # send_interface_toast = { # title = stoke_tension_toast.failure # left_icon = scope:tension_councillor # # root = { # add_character_modifier = { # modifier = hate_monger_modifier # years = 10 # } # } # scope:tension_councillor = { # add_character_modifier = { # modifier = hate_monger_modifier # years = 10 # } # } # scope:tension_county = { # add_county_modifier = { # modifier = riots_and_murders_province_modifier # years = 5 # } # } # } # } # } # } # } # } # # option = { #"No, I shall try to ease the tensions." # name = fp2_struggle.1000.c # # ai_chance = { #just and compassionate characters pick this option # base = 10 # ai_value_modifier = { # ai_honor = 0.8 # ai_compassion = 0.7 # ai_rationality = 0.2 # ai_zeal = -0.8 # ai_vengefulness = -0.7 # } # } # # stress_impact = { # # Aggressive characters find this an unappealing option. # wrathful = minor_stress_impact_gain # zealous = minor_stress_impact_gain # sadistic = minor_stress_impact_gain # vengeful = minor_stress_impact_gain # } # # scope:tension_councillor = { # add_opinion = { # target = root # opinion = -10 # modifier = disappointed_opinion # } # } # # duel = { # skill = diplomacy # value = high_skill_rating # # 30 = { # compare_modifier = { # value = scope:duel_value # multiplier = 2 # } # send_interface_toast = { # title = ease_tension_toast.success # left_icon = root # # add_character_modifier = { # modifier = tolerance_gospel_modifier # years = 10 # } # # scope:tension_county = { # add_county_modifier = { # modifier = tensions_eased_province_modifier # years = 5 # } # } # } # } # 20 = { # compare_modifier = { # value = scope:duel_value # multiplier = -1 # } # send_interface_toast = { # title = ease_tension_toast.failure # left_icon = root # scope:tension_county = { # add_county_modifier = { # modifier = riots_and_murders_province_modifier # years = 5 # } # } # } # } # } # } # # option = { #"If I cannot stop this madness... # name = fp2_struggle.1000.d # # trigger = { # exists = scope:minority_courtier # # scope:tension_county = { # this != root.capital_county # } # } # # ai_chance = { #just and compassionate characters pick this option # base = 10 # ai_value_modifier = { # ai_honor = 0.3 # ai_compassion = 0.3 # ai_rationality = 0.8 # ai_zeal = -0.8 # ai_vengefulness = -0.7 # ai_greed = -1 # } # } # # stress_impact = { # # Aggressive characters find this unappealing # wrathful = minor_stress_impact_gain # zealous = major_stress_impact_gain # sadistic = minor_stress_impact_gain # vengeful = minor_stress_impact_gain # # #As do power-mongers, you're giving away a whole province! # ambitious = minor_stress_impact_gain # stubborn = minor_stress_impact_gain # greedy = minor_stress_impact_gain # arrogant = minor_stress_impact_gain # paranoid = minor_stress_impact_gain # # } # # scope:minority_courtier = { # add_opinion = { # target = root # opinion = 20 # modifier = received_title_county # } # } # # create_title_and_vassal_change = { # type = granted # save_scope_as = change # add_claim_on_loss = yes # } # # scope:tension_county = { # change_title_holder = { # holder = scope:minority_courtier # change = scope:change # } # } # # resolve_title_and_vassal_change = scope:change # # add_stress = medium_stress_loss # # scope:tension_councillor = { # add_opinion = { # target = root # opinion = -10 # modifier = disappointed_opinion # } # } # # scope:tension_county = { # add_county_modifier = { # modifier = tensions_eased_province_modifier # years = 10 # } # } # } #} # #################################### ## War Widows ## By Ola Jentzsch #################################### ## Idea by Isabella welch #################################### # #scripted_trigger fp2_struggle.1001_weird_option_traits = { # These, presumably, makes you even more sympathethic to widows and orphans, or likely to take an ill-thought out decision. # OR = { # has_character_modifier = associates_with_strange_peasants_modifier # has_trait = bastard # has_trait = legitimized_bastard # has_trait = intellect_bad_3 # has_trait = intellect_bad_2 # has_trait = improvident # has_trait = lifestyle_reveler # has_trait = pregnant # has_trait = lunatic # has_trait = eccentric # } #} # #scripted_trigger fp2_struggle.1001_expectant_vassal_or_courtier_traits = { # This is about the personality the pregnant courtier should have to get this idea to begin with # has_trait = pregnant # is_available_ai = yes # NOR = { # has_trait = callous # has_trait = content # has_trait = arrogant # has_trait = dull # } #} # #fp2_struggle.1001 = { # type = character_event # title = fp2_struggle.1001.t # desc = fp2_struggle.1001.desc # theme = faith # cooldown = { years = 50 } # # left_portrait = { # character = root # animation = personality_cynical # } # right_portrait = { # character = scope:expectant_courtier # animation = happiness # } # # trigger = { # has_fp2_dlc_trigger = yes # OR = { # any_vassal = { # fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes # } # any_courtier = { # fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes # } # } # gold >= medium_gold_value_check # # any_truce_target = { } # } # # immediate = { # random_vassal = { # limit = { # fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes # is_spouse_of = root # } # # alternative_limit = { # fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes # any_player_heir = { is_spouse_of = prev } # } # alternative_limit = { # fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes # is_councillor = yes # } # alternative_limit = { # fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes # is_powerful_vassal = yes # } # # alternative_limit = { # fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes # } # # save_scope_as = expectant_courtier # } # # if = { # limit = { # NOT = { # exists = scope:expectant_courtier # } # } # random_courtier = { # limit = { # fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes # is_spouse_of = root # } # alternative_limit = { # fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes # any_player_heir = { is_spouse_of = prev } # } # alternative_limit = { # fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes # is_councillor = yes # } # alternative_limit = { # fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes # } # save_scope_as = expectant_courtier # } # } # } # # # # option = { #A good idea! I shall create such a fund. # name = fp2_struggle.1001.a # # stress_impact = { # # Arrogant or cruel characters find this an unappealing option. # arbitrary = medium_stress_impact_gain # arrogant = medium_stress_impact_gain # sadistic = medium_stress_impact_gain # # # As do, of course, greedy ones. # greedy = medium_stress_impact_gain # # # As do callous and content ones, to an extent. # callous = minor_stress_impact_gain # content = minor_stress_impact_gain # # # But generous and compassionate characters like it. # compassionate = minor_stress_impact_loss # generous = medium_stress_impact_loss # } # # ai_chance = { #Just and compassionate characters pick this option # base = 10 # ai_value_modifier = { # ai_honor = 0.5 # ai_compassion = 1 # ai_vengefulness = -0.2 # ai_greed = -0.5 # } # } # # remove_treasury_or_gold = major_treasury_or_gold_value # # scope:expectant_courtier = { # add_opinion = { # target = root # opinion = 20 # modifier = pleased_opinion # } # } # # # add_character_modifier = { # modifier = nursing_salaries_for_single_mothers_modifier # years = 20 # } # } # # option = { #Widows I will support, but not whores! # name = fp2_struggle.1001.b # flavor = fp2_struggle.1001.b.tt # trigger = { # fp2_struggle.1001_weird_option_traits = no # trait_is_shunned_or_criminal_in_faith_trigger = { # FAITH = faith # TRAIT = trait:adulterer # GENDER_CHARACTER = dummy_female # } # } # # stress_impact = { # # Truly righteous characters wouldn't say this. # compassionate = minor_stress_impact_gain # gallant = minor_stress_impact_gain # generous = minor_stress_impact_gain # humble = minor_stress_impact_gain # just = minor_stress_impact_gain # # # And greedy ones still don't wanna pay up # greedy = minor_stress_impact_gain # } # # ai_chance = { #Zealous AI characters pick this option # base = 10 # ai_value_modifier = { # ai_zeal = 1 # ai_compassion = -0.8 # } # } # # remove_treasury_or_gold = medium_treasury_or_gold_value # add_piety = minor_piety_gain # add_character_modifier = { # modifier = widows_and_widowers_amazing_funds_modifier # years = 20 # } # # scope:expectant_courtier = { # if = { # limit = { # has_trait = zealous # } # add_opinion = { # target = root # opinion = 10 # modifier = pleased_opinion # } # } # else = { # add_opinion = { # target = root # opinion = -10 # modifier = slightly_disappointed_opinion # } # } # } # } # # # option = { #But they can come stay at my court! We have food in abundance! # name = fp2_struggle.1001.c # flavor = fp2_struggle.1001.c.tt # trigger = { # fp2_struggle.1001_weird_option_traits = yes # } # # stress_impact = { # # Cheap or shy character's don't like this # greedy = medium_stress_impact_gain # shy = medium_stress_impact_gain # # #Nor do those wo really care about the appearance and glory of their courts # # ambitious = minor_stress_impact_gain # arrogant = medium_stress_impact_gain # temperate = medium_stress_impact_gain # august = medium_stress_impact_gain # born_in_the_purple = minor_stress_impact_gain # # # But hypersocial hippies love it # # humble = minor_stress_impact_loss # gregarious = minor_stress_impact_loss # eccentric = minor_stress_impact_loss # } # # ai_chance = { #Deranged or hypersocial but irrational AI characters pick this option # base = 10 # ai_value_modifier = { # ai_boldness = 0.5 # ai_energy = 0.8 # ai_rationality = -0.8 # } # } # # scope:expectant_courtier = { # if = { # limit = { # OR = { # has_character_modifier = associates_with_strange_peasants_modifier # has_trait = bastard # has_trait = legitimized_bastard # has_trait = intellect_bad_3 # has_trait = intellect_bad_2 # has_trait = improvident # has_trait = gregarious # } has_trait = lunatic # } # add_opinion = { # target = root # opinion = 10 # modifier = pleased_opinion # } # } # else = { # add_opinion = { # target = root # opinion = -10 # modifier = perplexed_opinion # } # } # } # if = { # limit = { # root = { # faith = { # OR = { # trait_is_virtue = gregarious # trait_is_virtue = humble # trait_is_virtue = generous # } # } # } # } # add_piety = medium_piety_gain # } # else = { # add_piety = minor_piety_gain # } # add_character_modifier = { # modifier = destitute_single_mothers_modifier # years = 15 # } # } # # option = { #Surely, my benevolent vassals can help funding this. # name = fp2_struggle.1001.d # # trigger = { # any_vassal = { # count = all # is_ai = yes # } # } # # stress_impact = { # # Careful or dilpomatically minded characters won't do this. # content = medium_stress_impact_gain # diplomat = medium_stress_impact_gain # paranoid = medium_stress_impact_gain # } # # ai_chance = { #Economic AI characters pick this option, while the careful don't. # base = 10 # ai_value_modifier = { # ai_compassion = 0.5 # ai_greed = 0.5 # ai_rationality = -0.5 # } # } # # remove_treasury_or_gold = minor_treasury_or_gold_value # # custom_tooltip = fp2_struggle.1001.specialdescpositive # custom_tooltip = fp2_struggle.1001.specialdescnegative # hidden_effect = { # every_vassal = { # IF = { # limit = { # NOT = { # has_trait = pregnant # } # } # IF = { # limit = { # OR = { # has_trait = compassionate # has_trait = generous # has_trait = just # } # } # add_opinion = { # target = root # opinion = 10 # modifier = funded_righteous_cause_opinion # } # } # ELSE = { # add_opinion = { # target = root # opinion = -10 # modifier = extorted_me_opinion # } # } # } # } # } # # scope:expectant_courtier = { # IF = { # limit = { # is_vassal_of = root #if she is, she gets angry because now SHE is expected to pay for this... # } # add_opinion = { # target = root # opinion = -20 # modifier = extorted_me_opinion # } # } # ELSE = { # add_opinion = { # target = root # opinion = 10 # modifier = pleased_opinion # } # } # } # # add_character_modifier = { # modifier = nursing_salaries_for_single_mothers_modifier # years = 20 # } # } # # option = { #I am your king, not a wet nurse! # name = fp2_struggle.1001.e # # stress_impact = { # # Benevolent characters wouldn't ignore this. # compassionate = medium_stress_impact_gain # gallant = medium_stress_impact_gain # generous = medium_stress_impact_gain # # # nor would those who are truly competent or just. # administrator = minor_stress_impact_gain # ambitious = minor_stress_impact_gain # diligent = minor_stress_impact_gain # just = minor_stress_impact_gain # eccentric = minor_stress_impact_gain # } # # ai_chance = { #Callous or cheap AI characters pick this option # base = 10 # ai_value_modifier = { # ai_rationality = 0.5 # ai_greed = 0.5 # ai_honor = -0.7 # ai_compassion = -0.7 # } # } # # scope:expectant_courtier = { # add_opinion = { # target = root # opinion = -20 # modifier = hurt_opinion # } # } # # random = { # chance = 50 # send_interface_toast = { # left_icon = root # title = not_my_problem_toast # add_character_modifier = { # modifier = starving_single_mothers_and_children_modifier # years = 15 # } # } # } # } #} # #################################### ## Andalusian Advancements ## By Ola Jentzsch #################################### ## Inspired by an idea by Isabella welch ########################################## #scripted_trigger neighboring_ruler_proper_culture_trigger = { # OR = { # culture = culture:andalusian # culture = culture:bedouin # culture = culture:baranis # culture = culture:butr # culture = culture:levantine # culture = culture:sephardi # } #} # #fp2_struggle.1002 = { # type = character_event # title = fp2_struggle.1002.t # desc = { #Different flavor depending on time period # first_valid = { # triggered_desc = { # trigger = { current_date <= 1030.1.1 } # desc = fp2_struggle.1002.desc_early_golden_age # } # triggered_desc = { # trigger = { # current_year >= 1250 # OR = { has_religion = religion:eastern_orthodox_religion has_religion = religion:catholic_religion has_religion = religion:protestant_religion } # } # desc = fp2_struggle.1002.desc_post_golden_age_christian #this triggers the latinized names of the polymaths # } # triggered_desc = { # trigger = { current_year >= 1250 } # desc = fp2_struggle.1002.desc_post_golden_age_unchristian #or their arabic ones # } # triggered_desc = { # trigger = { current_year >= 1030 } # desc = fp2_struggle.1002.desc_late_golden_age # } # } # first_valid = { # triggered_desc = { #tests if the event would fire one of the historical physicians # trigger = { # AND = { # current_year > 976 # current_year < 1010 # } # exists = global_var:albucasis_created # exists = scope:albucasis_physician # scope:great_physician = scope:albucasis_physician #this is a measure taken so that the loc gets tied to the appropriate character # } # desc = fp2_struggle.1002.desc_albucasis #this is the dialogue text if Albucasis spawns # } # triggered_desc = { #tests if the event would fire one of the historical physicians # trigger = { # AND = { # current_year > 1125 # current_year < 1165 # } # exists = global_var:avenzoar_created # exists = scope:avenzoar_physician # scope:great_physician = scope:avenzoar_physician # } # desc = fp2_struggle.1002.desc_avenzoar #this is the dialogue if Avenzoar spawns # } # triggered_desc = { #tests if the event would fire one of the historical physicians # trigger = { # AND = { # current_year > 1140 # current_year < 1180 # } # exists = global_var:tufail_created # exists = scope:tufail_physician # scope:great_physician = scope:tufail_physician # } # desc = fp2_struggle.1002.desc_tufail #this is the dialogue if Ibn Tufail spawns # } # triggered_desc = { #this defaults to a random Andalusian physician # trigger = { current_year >= 1050 } ## # desc = fp2_struggle.1002.desc_no_historical_physician_late # } # desc = fp2_struggle.1002.desc_no_historical_physician_early # } # first_valid = { #if root has a court physician, it changes the narrative a bit. # triggered_desc = { # trigger = { # court_physician_available_trigger = yes # OR = { has_religion = religion:eastern_orthodox_religion has_religion = religion:catholic_religion has_religion = religion:protestant_religion } # } # desc = fp2_struggle.1002.desc_has_physician_and_is_christian #in this case, the slur "heathen" is used # } # triggered_desc = { # trigger = { court_physician_available_trigger = yes } # desc = fp2_struggle.1002.desc_has_physician_but_not_christian #in this case, the slur "eccentric" is used # } # triggered_desc = { # trigger = { OR = { has_religion = religion:eastern_orthodox_religion has_religion = religion:catholic_religion has_religion = religion:protestant_religion } } # desc = fp2_struggle.1002.desc_has_no_physician_but_is_christian #in this case, the slur "heathen" is used # } # desc = fp2_struggle.1002.desc_has_no_physician #default option should all else fail # } # } # # theme = medicine # override_background = { reference = throne_room } # # left_portrait = { # character = root # animation = personality_content # } # right_portrait = { # character = scope:great_physician # animation = personality_rational #polymaths should always have this pose :D # } # # lower_left_portrait = scope:neighboring_ruler #this is the ruler that's angry with the polymath # # lower_right_portrait = scope:scoped_physician #this is your court physician if you have one # # cooldown = { years = 100 } # # trigger = { # has_fp2_dlc_trigger = yes # #any_character_to_title_neighboring_county = { #this searches for a neighboring province that has the xenophilic tradition, which is this event's dynamic way of checking for Andalusian culture or cultures derived from it. # any_neighboring_and_across_water_top_liege_realm_owner = { # culture = { # OR = { # has_cultural_tradition = tradition_xenophilic # has_cultural_tradition = tradition_medicinal_plants # has_cultural_tradition = tradition_fp2_malleable_subjects # } # } # } # # root.capital_province = { #so that it only triggers for people close to Andalusia # OR = { # geographical_region = world_europe_west_iberia # geographical_region = world_europe_west_francia # geographical_region = world_europe_south_italy # } # } # # NOT = { #So that it doesn't fire for the Andalusians themselves, because that'd make the narrative weird # culture = culture:andalusian # } # # NOT = { #So that it doesn't fire for the Umayyads when they control Iberia # AND = { # culture = culture:levantine # root.capital_province = { geographical_region = world_europe_west_iberia } # } # } # # any_neighboring_and_across_water_top_liege_realm_owner = { # is_ai = yes # } # } # # weight_multiplier = { # base = 0.4 # modifier = { # OR = { # AND = { # current_year > 976 # current_year < 1010 # } # AND = { # current_year > 1125 # current_year < 1180 # } # } # add = 1.6 # } # modifier = { # neighboring_ruler_proper_culture_trigger = yes # add = 0.5 # } # } # # # immediate = { # # random_neighboring_and_across_water_top_liege_realm_owner = { #this searches for a neighboring ruler with the proper cultural tradition, which is this event's dynamic way of checking for Andalusian culture or cultures derived from it. # limit = { # culture = { # OR = { # has_cultural_tradition = tradition_xenophilic # has_cultural_tradition = tradition_medicinal_plants # has_cultural_tradition = tradition_fp2_malleable_subjects # } # } # } # culture = { save_scope_as = xenophilic_culture } #this is mostly used for error-checking because the debug log is unclear. # } # # if = { #This looks to see if one of three historical physicians will be used in the event # limit = { #their rough period of activity # AND = { # current_year > 976 # current_year < 1010 # } # NOT = { exists = global_var:albucasis_created } #makes sure that he wasn't already spawned by the event elsewhere # is_ai = no # scope:xenophilic_culture = culture:andalusian # } # create_character = { # age = { 40 70 } #their rough age during the period of their flourishing # location = root.capital_province # name = "Abu al-Qasim Al-Zahrawi" #Albucasis # gender = male # template = scholar_character # trait = intellect_good_3 #He was one of the Middle Ages' greatest geniuses # trait = lifestyle_herbalist # trait = lifestyle_physician # trait = education_learning_4 # random_traits_list = { #his personality, extrapolated from my research # count = 3 # ambitious = {} # compassionate = {} # calm = {} # diligent = {} # humble = {} # patient = {} # } # random_traits_list = { #this is to hint to the player why he was exiled from the previous court # count = 1 # fornicator = {} # deviant = {} # sodomite = {} # } # culture = culture:andalusian # dynasty = none # faith = faith:muwalladi # save_scope_as = albucasis_physician #this is needed to get the loc right # } # set_global_variable = albucasis_created # scope:albucasis_physician = { # save_scope_as = great_physician #this is to create one easy, generic scope for use in the rest of the event # } # } # # else_if = { # limit = { #their rough period of activity # AND = { # current_year > 1125 # current_year < 1165 # } # NOT = { exists = global_var:avenzoar_created } #makes sure that he wasn't already spawned by the event elsewhere # is_ai = no # scope:xenophilic_culture = culture:andalusian # } # create_character = { # age = { 31 71 } #their rough age during the period of their flourishing # location = root.capital_province # name = "Abū Marwān ibn Zuhr" #Avenzoar # gender = male # template = scholar_character # trait = intellect_good_2 # trait = scholar # trait = lifestyle_physician # trait = education_learning_4 # random_traits_list = { #his personality, extrapolated from my research # count = 3 # diligent = {} # cynical = {} # humble = {} # vengeful = {} #He was bitter over having been exiled from Morocco # } # random_traits_list = { #this is to hint to the player why he was exiled from the previous court # count = 1 # fornicator = {} # deviant = {} # sodomite = {} # murderer = {} # } # culture = culture:andalusian # dynasty = none # faith = faith:muwalladi # save_scope_as = avenzoar_physician # } # # set_global_variable = avenzoar_created # scope:avenzoar_physician = { # save_scope_as = great_physician # } # } # # else_if = { # limit = { #their rough period of activity # AND = { # current_year > 1140 # current_year < 1180 # } # NOT = { exists = global_var:tufail_created } #makes sure that he wasn't already spawned by the event elsewhere # is_ai = no # scope:xenophilic_culture = culture:andalusian # } # create_character = { # age = { 35 75 } #their rough age during the period of their flourishing # location = root.capital_province # name = "Abū Bakr ibn Tufail" #Ibn Tufail # gender = male # template = scholar_character # trait = intellect_good_2 # trait = theologian # trait = lifestyle_physician # trait = education_learning_3 # trait = journaller #He was an avid writer # random_traits_list = { #his personality, extrapolated from my research # count = 3 # diligent = {} # calm = {} # humble = {} # trusting = {} # } # random_traits_list = { #this is to hint to the player why he was exiled from the previous court # count = 1 # fornicator = {} # deviant = {} # sodomite = {} # witch = {} # } # culture = culture:andalusian # dynasty = none # faith = faith:muwalladi # save_scope_as = tufail_physician # } # set_global_variable = tufail_created # scope:tufail_physician = { # save_scope_as = great_physician # } # } # # # else = { #or it defaults to a random one # create_character = { # age = { 32 50 } # location = root.capital_province # template = scholar_character # trait = intellect_good_1 # trait = education_learning_3 # trait = lifestyle_physician # random_traits_list = { # count = 3 # ambitious = {} # calm = {} # diligent = {} # cynical = {} # humble = {} # patient = {} # } # random_traits_list = { ##his is to hint to the player why he was exiled from the previous court # count = 1 # fornicator = {} # deviant = {} # sodomite = {} # incestuous = {} # witch = {} # } # culture = scope:xenophilic_culture # faith = faith:muwalladi # save_scope_as = great_physician # } # } # # hidden_effect = { # scope:great_physician = { # add_trait_xp = { # trait = lifestyle_physician # value = 100 # } # } # } # # random_neighboring_and_across_water_top_liege_realm_owner = { # limit = { # AND = { # neighboring_ruler_proper_culture_trigger = yes #the event prefers the neighboring ruler to be of these cultures, since it makes the most sense histrically for the scholar to have been at that court. # is_ai = yes # } # } # alternative_limit = { is_ai = yes} # save_scope_as = neighboring_ruler # } # # if = { #if you have a court physician already, he has a stake in this! # limit = { # court_physician_available_trigger = yes # } # save_court_physician_as_effect = { SCOPE_NAME = scoped_physician } # } # } # # option = { #I could use a new physician... # name = fp2_struggle.1002.a # # ai_chance = { #rational AIs pick this option # base = 10 # ai_value_modifier = { # ai_rationality = 0.7 # ai_zeal = -0.7 # } # } # # stress_impact = { # # Conservative characters don't want to do this. # content = minor_stress_impact_gain # # # Nor do self-absorbed ones # arrogant = minor_stress_impact_gain # callous = minor_stress_impact_gain # greedy = minor_stress_impact_gain # } # # remove_treasury_or_gold = major_treasury_or_gold_value #this guy is expensive! # # add_courtier = scope:great_physician #he's added to root's court # # court_position_grant_effect = { # EMPLOYER = root # CANDIDATE = scope:great_physician # POS = court_physician # } # # scope:great_physician = { #naturally, the polymath likes to get a new job # add_opinion = { # target = root # opinion = 10 # modifier = hired_me_opinion # } # } # # scope:neighboring_ruler = { #but the neighboring ruler gets angry that you harbor him # progress_towards_rival_effect = { # REASON = rival_harbored_polymath # CHARACTER = root # OPINION = 0 # } # } # # add_character_modifier = { #while you get inspired! # modifier = inspired_medicine_modifier # years = 20 # } # } # # option = { #I do not need you, I can read myself. # name = fp2_struggle.1002.b # flavor = fp2_struggle.1002.b.tt # # trigger = { #This only fires after Avicenna's life, as his books are referenced. # current_year >= 1030 # learning >= medium_skill_rating #and you have to be at least somewhat learned to have this option appear, otherwise it'd be superflous # NOT = { # exists = scope:scoped_physician # } # } # # ai_chance = { #energetic, overconfident AI chooses this # base = 10 # ai_value_modifier = { # ai_energy = 0.7 # ai_boldness = 0.6 # ai_rationality = 0.4 # ai_zeal = -0.6 # ai_greed = -0.6 # } # } # # stress_impact = { # # Conservative, dull or cheap characters won't do this # content = minor_stress_impact_gain # greedy = minor_stress_impact_gain # lazy = minor_stress_impact_gain # zealous = minor_stress_impact_gain # dull = medium_stress_impact_gain # } # # custom_tooltip = fp2_struggle.1002.physicianleaves # # remove_short_term_gold = minor_gold_value #books are expensive! # # if = { # limit = { has_lifestyle = learning_lifestyle } # add_learning_lifestyle_xp = medium_lifestyle_experience # } # # if = { #your physician gets disappointed for your lack of trust in them # limit = { exists = scope:scoped_physician } # scope:scoped_physician = { # add_opinion = { # target = root # opinion = -10 # modifier = disappointed_opinion # } # } # } # # duel = { #you try to read Arabic books # skill = learning # value = medium_skill_rating # # 20 = { # compare_modifier = { # value = scope:duel_value # multiplier = 2 # } # send_interface_toast = { #you succeed! # title = reading_avicenna_toast.success # left_icon = root # root = { # add_character_modifier = { # modifier = inspired_medicine_modifier # years = 20 # } # } # } # } # 20 = { # compare_modifier = { # value = scope:duel_value # multiplier = -1 # } # send_interface_toast = { #you misunderstod something! # title = reading_avicenna_toast.failure # left_icon = root # root = { # add_character_modifier = { # modifier = misread_medicine_incompetence_modifier # years = 20 # } # } # } # } # } # } # # # option = { #What do I need you for? I can read Greek myself # name = fp2_struggle.1002.c # flavor = fp2_struggle.1002.c.tt # # trigger = { #This triggers for the early period, before the Canon of Medicine was published. # current_date <= 1030.1.1 # learning >= medium_skill_rating # NOT = { # exists = scope:scoped_physician # } # } # # ai_chance = { #energetic AI are the most likely to attempt this in this early time period # base = 10 # ai_value_modifier = { # ai_energy = 0.8 # ai_rationality = 0.2 # ai_zeal = -0.2 # } # } # # stress_impact = { # # Conservative, dull or cheap characters won't do this # content = minor_stress_impact_gain # greedy = minor_stress_impact_gain # lazy = minor_stress_impact_gain # zealous = minor_stress_impact_gain # dull = medium_stress_impact_gain # } # # custom_tooltip = fp2_struggle.1002.physicianleaves # # remove_short_term_gold = minor_gold_value #books are really expensive in this early period # # if = { # limit = { has_lifestyle = learning_lifestyle } # add_learning_lifestyle_xp = medium_lifestyle_experience # } # # if = { # limit = { exists = scope:scoped_physician } #your physician still gets disappointed in you # scope:scoped_physician = { # add_opinion = { # target = root # opinion = -10 # modifier = disappointed_opinion # } # } # } # # duel = { #this duel is difficult - it's mostly an option for extremely learned or overconfident rulers. # skill = learning # value = high_skill_rating # # 20 = { # compare_modifier = { # value = scope:duel_value # multiplier = 2 # } # send_interface_toast = { # title = reading_hippocrates_toast.success #You can read greek! # left_icon = root # root = { # add_character_modifier = { # modifier = medical_insights_modifier # years = 20 # } # } # } # } # 20 = { # compare_modifier = { # value = scope:duel_value # multiplier = -1 # } # send_interface_toast = { # title = reading_hippocrates_toast.failure #apparently, your Greek skills aren't all you cranked them up to be. # left_icon = root # root = { # add_character_modifier = { # modifier = cannot_read_greek_modifier # years = 20 # } # } # } # } # } # } # # option = { #I will send you back from whence you came...in chains. # name = fp2_struggle.1002.d # # ai_chance = { #but vengeful ones sure love it! # base = 10 # ai_value_modifier = { # ai_vengefulness = 0.8 # ai_honor = -0.2 # } # } # # stress_impact = { # #Caring, carefree or just characters won't do this # generous = minor_stress_impact_gain # gregarious = minor_stress_impact_gain # just = minor_stress_impact_gain # trusting = minor_stress_impact_gain # compassionate = major_stress_impact_gain # forgiving = major_stress_impact_gain # # #But arbitrary bastards love it # arbitrary = minor_stress_impact_loss # } # # scope:great_physician = { #the polymath, naturally, gets sad that you send him back to his disgruntled former employer. # add_opinion = { # target = root # opinion = -40 # modifier = left_me_to_wolves_opinion # } # } # # if = { #but your current physician is very happy! # limit = { exists = scope:scoped_physician } # scope:scoped_physician = { # add_opinion = { # target = root # opinion = 20 # modifier = let_me_keep_my_job_opinion # } # } # } # # scope:neighboring_ruler = { #as is the neighboring ruler, especially if he is your friend # if = { # limit = { # has_relation_friend = root # } # add_opinion = { # target = root # modifier = strengthened_friendship_opinion # } # } # else = { # progress_towards_friend_effect = { # REASON = friend_returned_refugee # CHARACTER = root # OPINION = 0 # } # } # } # # add_dread = minor_dread_gain #you gain some dread for doing this, naturally # # custom_tooltip = fp2_struggle.1001.physician_imprisoned # hidden_effect = { # if = { # limit = { # scope:neighboring_ruler = { # is_ruler = yes # } # } # scope:great_physician = { #while the polymath gets to languish in a dungeon # hard_imprison_character_effect = { # TARGET = this # IMPRISONER = scope:neighboring_ruler # } # } # } # else = { # scope:great_physician = { # silent_disappearance_effect = yes # } # } # } # } # # option = { #Wash my hands? Are you insane?" # name = fp2_struggle.1002.e # # trigger = { #This only triggers for Christianity and similar faiths # faith = { # has_doctrine_parameter = theocracy_temple_lease # NOR = { # has_doctrine_parameter = legalism_modified_law_costs # has_doctrine_parameter = literalist_debate_enabled # } # } # NOT = { has_lifestyle = learning_lifestyle } #So that this doesn't fire if you have the "Wash your hands" perk # } # # ai_chance = { #and fanatics don't care about hygiene...apparently # base = 10 # ai_value_modifier = { # ai_zeal = 0.8 # ai_rationality = -0.8 # } # } # # stress_impact = { # # Innovative or nervous chracters wouldn't pick this option. # ambitious = minor_stress_impact_gain # craven = minor_stress_impact_gain # # #But stubborn or content ones would # content = minor_stress_impact_loss # lazy = minor_stress_impact_loss # stubborn = minor_stress_impact_loss # eccentric = minor_stress_impact_loss # } # # custom_tooltip = fp2_struggle.1002.physicianleaves # # if = { #your physician, again, loves that they get to keep their job # limit = { exists = scope:scoped_physician } # scope:scoped_physician = { # add_opinion = { # target = root # opinion = 20 # modifier = let_me_keep_my_job_opinion # } # } # } # # add_piety = medium_piety_gain #and your faith rewards you for turning away the heathen # # add_character_modifier = { #but you're rolling in filth # modifier = rolling_in_filth_modifier # years = 5 # } # } # # # # option = { #Begone, innovation should only come from God. # name = fp2_struggle.1002.f # # trigger = { # current_year >= 1065 #because this option refers to developments in islam that happened within the Seljuk empire # faith = { #it checks for doctrines, rather than islam itself, to make the event more dynamic # OR = { # has_doctrine_parameter = legalism_modified_law_costs # has_doctrine_parameter = literalist_debate_enabled # has_doctrine_parameter = religious_legal_pronouncements_law_cost_reduction # } # } # } # # ai_chance = { #zealous AIs pick this, but it's not entirely unrational - just hostile to new ideas. # base = 10 # ai_value_modifier = { # ai_zeal = 0.8 # ai_rationality = -0.2 # } # } # # stress_impact = { # #True rationalists abhor this option # ambitious = medium_stress_impact_gain # diligent = medium_stress_impact_gain # # #But stubborn and fanatical ones like it # content = minor_stress_impact_loss # stubborn = minor_stress_impact_loss # zealous = minor_stress_impact_loss # eccentric = minor_stress_impact_loss # } # # custom_tooltip = fp2_struggle.1002.physicianleaves # # if = { #your physician, again, loves that they get to keep their job # limit = { exists = scope:scoped_physician } # scope:scoped_physician = { # add_opinion = { # target = root # opinion = 20 # modifier = let_me_keep_my_job_opinion # } # } # } # # scope:neighboring_ruler = { #the neighboring ruler likes that you rebuked the polymath, at least # add_opinion = { # target = root # opinion = 10 # modifier = rejected_my_enemy_opinion # } # } # # add_character_modifier = { #but you draw closer to the Nizamiyah movement, rejecting innovation. # modifier = anti_innovation_muslim_modifier # years = 15 # } # } #} # #################################### ## Soul of Iron ## By Ola Jentzsch #################################### #fp2_struggle.1010 = { # Soul of Iron, by Ola Jentzsch # type = character_event # title = fp2_struggle.1010.t # desc = fp2_struggle.1010.desc # theme = realm # # left_portrait = { # character = root # animation = happiness #root smells an opportunity! # } # right_portrait = { # character = scope:great_swordsmith # animation = scheme #he's a scheming bastard, kinda # } # # # trigger = { #The province must also be involved in the Iberian struggle # is_ai = no # has_fp2_dlc_trigger = yes # any_held_county = { # any_county_province = { # has_building_or_higher = blacksmiths_01 #This event needs ROOT to have a blacksmith building # } # } # fp2_character_involved_in_struggle_trigger = yes # } # # cooldown = { years = 100 } # # immediate = { # # random_held_county = { #this is to find the county that has the blacksmith # limit = { # any_county_province = { # has_building_or_higher = blacksmiths_01 # } # } # save_scope_as = blacksmith_county #this scopes it - note that it might be the same county as toledo_county; that is intentional. # } # # title:b_toledo = { save_scope_as = toledo_holding } #this is used in the localization # # title:c_toledo = { save_scope_as = toledo_county } #this is used in option c, as well as the localization # # create_character = { #this is the mighty blacksmith that the event needs # age = { 45 55 } #he's experienced and aging, but not old # location = root.capital_province # gender_female_chance = root_faith_dominant_gender_female_chance #could be female, if given the right context. # trait = intellect_good_3 #he's a genius craftsman # trait = strong #and a blacksmith... # trait = arrogant #he's supremely gifted, but also extremely arrogant, Fëanor basically # random_traits_list = { #the rest of his questionable personality # count = 2 # ambitious = {} # diligent = {} # callous = {} # greedy = {} # patient = {} # stubborn = {} # vengeful = {} # } # random_traits_list = { #something fun to give him character! # count = 1 # one_eyed = {} # scarred = {} # } # culture = scope:toledo_county.culture # religion = religion:catholic_religion # dynasty = none # save_scope_as = great_swordsmith #this saves him as a scope so we can get nice effects to bounce off him! # } # # hidden_effect = { # scope:great_swordsmith = { # add_character_modifier = { # modifier = master_smith_npc_modifier #this is a neat modifier he gets as a master smith. it's pretty powerful, giving a boost to Stewardship and gold income, but since he's an NPC, it doesn't matter much. It's mostly to create flavor if the player actually examines his stats. # } # } # } # } # # # option = { #Let us make a compromise # name = fp2_struggle.1010.a # flavor = toledo_compromise_flavor # # trigger = { #root needs to control Toledo, and it needs to have a blacksmith building. # any_held_county = { # any_county_province = { # barony = title:b_toledo # has_building_or_higher = blacksmiths_01 # } # } # scope:toledo_county = { #so that this option doesn't fire twice # NOT = { has_county_modifier = toledo_steel_county_modifier } # } # } # # ai_chance = { #Smart, patient AIs pick this option, others are more likely to go for a bolder approach. # base = 10 # ai_value_modifier = { # ai_rationality = 1 # ai_honor = 0.5 # ai_boldness = -0.5 # ai_zeal = -0.5 # } # } # # stress_impact = { #arrogant or visionless rulers dislike this option # arrogant = minor_stress_impact_gain # callous = minor_stress_impact_gain # content = minor_stress_impact_gain # wrathful = minor_stress_impact_gain # } # # remove_short_term_gold = major_gold_value #someone still has to be bribed here # # scope:toledo_county = { # add_county_modifier = { # modifier = toledo_steel_county_modifier # } # } # # scope:toledo_county = { # add_county_modifier = { # modifier = governance_1041_quarreling_guilds_modifier # years = 20 # } # } # } # # option = { #Whatever knowledge you possess, I shall draw it out. # name = fp2_struggle.1010.b # flavor = fp2_struggle.1010.swordsmith_imprisoned # # trigger = { # OR = { # has_trait = schemer # has_trait = torturer # has_trait = paranoid # dread >= high_dread # } # NAND = { # any_held_county = { # any_county_province = { # barony = title:b_toledo # has_building_or_higher = blacksmiths_01 # } # } # scope:toledo_county = { #so that this option doesn't fire twice # NOT = { has_county_modifier = toledo_steel_county_modifier } # } # } # } # # # scope:great_swordsmith = { #while the great swordsmiths gets to languish in a dungeon # hard_imprison_character_effect = { # TARGET = this # IMPRISONER = root # } # } # # # ai_chance = { #Compassionate or just AI wouldn't do this, but hateful paranoid psychopats, sure! Perhaps the smith even deserved it... # base = 10 # ai_value_modifier = { # ai_vengefulness = 1 # ai_honor = -1 # } # } # # stress_impact = { #this is not what a Buddha would do # compassionate = major_stress_impact_gain # generous = medium_stress_impact_gain # gregarious = medium_stress_impact_gain # just = medium_stress_impact_gain # } # # add_dread = minor_dread_gain #you gain some dread for doing this, naturally # # scope:great_swordsmith = { # add_character_modifier = { # modifier = recently_tortured # years = 5 # } # } # # # add_character_modifier = { # modifier = tortured_smith_spilling_secrets_modifier # years = 25 # } # # custom_tooltip = fp2_struggle.1010.compassionate_courtiers # hidden_effect = { #Compassionate or righteous courtiers will secretly dislike this # every_courtier = { # IF = { # limit = { # OR = { # has_trait = compassionate # has_trait = just # } # } # add_opinion = { # target = root # opinion = -10 # modifier = cruelty_opinion # } # } # } # } # } # # option = { #You shall have it, if you make swords for my armies # name = fp2_struggle.1010.c # flavor = fp2_struggle.1010.smithgoesaway # # ai_chance = { #ambitious AIs pick this option # base = 10 # ai_value_modifier = { # ai_energy = 0.7 # ai_vengefulness = 0.7 # } # } # # stress_impact = { # content = minor_stress_impact_gain # craven = minor_stress_impact_gain # greedy = minor_stress_impact_gain # just = minor_stress_impact_gain # } # # remove_treasury_or_gold = major_treasury_or_gold_value #this guy is expensive! # # add_character_modifier = { #as promised, your armies gets equipped with Toledo steel! # modifier = toledo_steel_armaments_modifier # years = 50 # } # # scope:blacksmith_county = { #the great smith usurps the blacksmiths' guild, with your blessing # add_county_modifier = { # modifier = county_corruption_uncooperative_guilds_modifier # years = 10 # } # } # # custom_tooltip = fp2_struggle.1010.paranoid_rivals #your neighbors gets really paranoid when they learn about this # hidden_effect = { # struggle:iberian_struggle = { # every_involved_ruler = { # limit = { # NOT = { is_allied_to = root } # character_is_realm_neighbor = root # } # add_opinion = { # target = root # opinion = -20 # modifier = threatened_by_buildup_opinion # } # } # } # } # } # # option = { #Make me Iberia's finest blade, and all the smithies shall be yours # name = fp2_struggle.1010.d # # flavor = fp2_struggle.1010.smithmakesweapon #the master swordsmiths stays in your court for the time being, to make the great sword he promised you. # # add_courtier = scope:great_swordsmith # # hidden_effect = { # scope:great_swordsmith = { # set_knight_status = forbid #this is to prevent him being auto-turned into a knight during his stay, as he tends to get quite high prowess. The player can still make him a knight manually if they insist on it. # } # } # # ai_chance = { #Self-absorbed AIs pick this option # base = 10 # ai_value_modifier = { # ai_greed = 0.7 # ai_boldness = 0.7 # } # } # # stress_impact = { #this is an extravagant option, not for the humble or temperate - but just people don't like it either, since it still lets the blacksmith usurp the guilds. # humble = minor_stress_impact_gain # just = minor_stress_impact_gain # temperate = minor_stress_impact_gain # } # # remove_short_term_gold = major_gold_value #this guy knows what he's worth! # # scope:blacksmith_county = { #the guild gets usurped by the arrogant master smith! # add_county_modifier = { # modifier = county_corruption_uncooperative_guilds_modifier # years = 10 # } # } # # hidden_effect = { #this looks weird in the tooltip otherwise! # random_list = { #I recommend increasing the odds for the special cool sword when testing this event! # 25 = { #You have a 25% chance of getting a really cool sword here! # trigger = { is_ai = no } #this option is just for players, to create less inflation on awesume swords. # trigger_event = { # id = fp2_struggle.1011 # days = { 30 60 } # } # } # 75 = { #but you can still get a nice toledo blade! # trigger_event = { # id = fp2_struggle.1012 # days = { 30 60 } # } # } # } # } # } # # option = { #I will not anger the guilds for your vanity. # name = fp2_struggle.1010.e # # flavor = fp2_struggle.1010.swordsmith_leaves # # ai_chance = { #Lazy or worried AI pick this option # base = 10 # ai_value_modifier = { # ai_energy = -0.7 # ai_greed = 0.3 # ai_boldness = -0.5 # } # } # # stress_impact = { #this is not the option for opportunists, but a good option for some humble stress loss # ambitious = major_stress_impact_gain # diligent = medium_stress_impact_gain # content = minor_stress_impact_loss # humble = minor_stress_impact_loss # temperate = minor_stress_impact_loss # paranoid = minor_stress_impact_loss # } # # scope:blacksmith_county = { #You curry favor with the blacksmith's guild # add_county_modifier = { # modifier = guild_rights_protected_modifier # years = 20 # } # } # # scope:great_swordsmith = { # add_opinion = { # target = root # modifier = insulted_opinion # } # } # } #} # #fp2_struggle.1011 = { # The Masterwork, by Ola Jentzsch # type = character_event # title = fp2_struggle.1011.t # desc = fp2_struggle.1011.desc # theme = realm # # left_portrait = { # character = root # animation = admiration # } # right_portrait = { # character = scope:great_swordsmith # animation = marshal # } # # artifact = { # To display the artifact in the event-window # target = scope:amazing_toledo_sword # position = lower_right_portrait # } # # trigger = { # has_fp2_dlc_trigger = yes # scope:great_swordsmith = { # is_available_healthy_ai_adult = yes # } # } # # immediate = { # # save_scope_as = owner # set_artifact_rarity_illustrious = yes # # create_artifact = { # name = awesome_toledo_sword_name # creator = scope:great_swordsmith # description = awesome_toledo_sword_desc # visuals = sword # type = sword # modifier = artifact_amazing_toledo_sword_modifier # wealth = scope:wealth # This comes from the scripted effect above # quality = scope:quality # This comes from the scripted effect above # save_scope_as = amazing_toledo_sword # Allows the sword to be accessed via scope after its creation # } # } # # option = { #Martiello, the hammer # name = fp2_struggle.1011.a # # trigger = { # root = { # culture = { has_cultural_pillar = language_iberian } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = martiello_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Tiniebra, the darkness # name = fp2_struggle.1011.b # # trigger = { # root = { # culture = { has_cultural_pillar = language_iberian } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = tiniebra_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Vermejo, the red # name = fp2_struggle.1011.c # # trigger = { # root = { # culture = { has_cultural_pillar = language_iberian } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = vermejo_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Jargonça, like the blue gemstone. # name = fp2_struggle.1011.d # # trigger = { # root = { # culture = { has_cultural_pillar = language_iberian } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = jargonca_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Suhayl, the glorious. # name = fp2_struggle.1011.e # # trigger = { # root = { # culture = { has_cultural_pillar = language_arabic } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = suhayl_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #al-Battar, the cutter # name = fp2_struggle.1011.f # # trigger = { # root = { # culture = { has_cultural_pillar = language_arabic } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = albattar_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Qazeeb, of the strong handle # name = fp2_struggle.1011.g # # trigger = { # root = { # culture = { has_cultural_pillar = language_arabic } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = qazeeb_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Zumurrud, like the blinding emerald # name = fp2_struggle.1011.h # # trigger = { # root = { # culture = { has_cultural_pillar = language_arabic } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = zumurrud_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Ortzi, like the thunder # name = fp2_struggle.1011.i # # trigger = { # root = { # culture = { has_cultural_pillar = language_basque } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = ortzi_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Gaueko, the night spirit # name = fp2_struggle.1011.j # # trigger = { # root = { # culture = { has_cultural_pillar = language_basque } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = gaueko_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Gorri, the red one # name = fp2_struggle.1011.k # # trigger = { # root = { # culture = { has_cultural_pillar = language_basque } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = gorri_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Aiztoto, the little knife # name = fp2_struggle.1011.l # # trigger = { # root = { # culture = { has_cultural_pillar = language_basque } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = aiztoto_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Escremire, the fencer # name = fp2_struggle.1011.m # # trigger = { # root = { # culture = { has_cultural_pillar = language_occitano_romance } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = escremire_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Folha, the leaf # name = fp2_struggle.1011.n # # trigger = { # root = { # culture = { has_cultural_pillar = language_occitano_romance } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = folha_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Proeza, valour # name = fp2_struggle.1011.o # # trigger = { # root = { # culture = { has_cultural_pillar = language_occitano_romance } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = proeza_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Trebalhar, the tormenter # name = fp2_struggle.1011.p # # trigger = { # root = { # culture = { has_cultural_pillar = language_occitano_romance } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = trebalhar_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Sufax, like the great hero in days of old # name = fp2_struggle.1011.q # # trigger = { # root = { # culture = { has_cultural_pillar = language_berber } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = sufax_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Toumellalt, the white one. # name = fp2_struggle.1011.r # # trigger = { # root = { # culture = { has_cultural_pillar = language_berber } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = toumellalt_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Ayugu, the yoke. # name = fp2_struggle.1011.s # # trigger = { # root = { # culture = { has_cultural_pillar = language_berber } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = ayugu_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Well, "Ironsoul" of course # name = fp2_struggle.1011.u # # trigger = { # root = { # culture = { # NOT = { # has_cultural_pillar = language_iberian # has_cultural_pillar = language_arabic # has_cultural_pillar = language_basque # has_cultural_pillar = language_occitano_romance # has_cultural_pillar = language_berber # } # } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = ironsoul_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #I quite like "Mistletoe"... # name = fp2_struggle.1011.v # # trigger = { # root = { # culture = { # NOT = { # has_cultural_pillar = language_iberian # has_cultural_pillar = language_arabic # has_cultural_pillar = language_basque # has_cultural_pillar = language_occitano_romance # has_cultural_pillar = language_berber # } # } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = mistletoe_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Moor-cleaver, what else? # name = fp2_struggle.1011.w # # trigger = { # OR = { has_religion = religion:eastern_orthodox_religion has_religion = religion:catholic_religion has_religion = religion:protestant_religion } # root = { # culture = { # NOT = { # has_cultural_pillar = language_iberian # has_cultural_pillar = language_arabic # has_cultural_pillar = language_basque # has_cultural_pillar = language_occitano_romance # has_cultural_pillar = language_berber # } # } # } # } # # stress_impact = { # compassionate = minor_stress_impact_gain # } # # scope:amazing_toledo_sword = { set_artifact_name = moormurder_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } # # option = { #Usurper's blade seem fitting, giving what we did to the guilds... # name = fp2_struggle.1011.x # # trigger = { # root = { # culture = { # NOT = { # has_cultural_pillar = language_iberian # has_cultural_pillar = language_arabic # has_cultural_pillar = language_basque # has_cultural_pillar = language_occitano_romance # has_cultural_pillar = language_berber # } # } # } # } # # scope:amazing_toledo_sword = { set_artifact_name = usurperblade_name } # # custom_tooltip = fp2_struggle.1011.swordsmith_leaves # hidden_effect = { # remove_courtier_or_guest = scope:great_swordsmith # } # } #} # #fp2_struggle.1012 = { # Soul of Iron (3), by Ola Jentzsch # type = character_event # title = fp2_struggle.1012.t # desc = fp2_struggle.1012.desc # theme = realm # # left_portrait = { # character = root # animation = admiration # } # right_portrait = { # character = scope:great_swordsmith # animation = marshal # } # # artifact = { # To display the artifact in the event-window # target = scope:toledo_sword # position = lower_right_portrait # } # # trigger = { # has_fp2_dlc_trigger = yes # scope:great_swordsmith = { # is_available_healthy_ai_adult = yes # } # } # # immediate = { # # save_scope_as = owner # set_artifact_rarity_masterwork = yes # # create_artifact = { # name = toledo_sword_name # creator = scope:great_swordsmith # description = toledo_sword_desc # visuals = sword # type = sword # modifier = artifact_masterwork_toledo_sword_modifier # wealth = scope:wealth # This comes from the scripted effect above # quality = scope:quality # This comes from the scripted effect above # save_scope_as = toledo_sword # Allows the sword to be accessed via scope after its creation # } # } # # option = { #It is...exquisite. You may go in peace. # name = fp2_struggle.1012.a # flavor = fp2_struggle.1012.swordsmith_leaves # # ai_chance = { #Only greedy AI wouldn't pick this option. # base = 10 # ai_value_modifier = { # ai_greed = -1 # } # } # # remove_courtier_or_guest = scope:great_swordsmith # } # # option = { #It is as promised. May I not convince you to stay and serve me? # name = fp2_struggle.1012.b # # ai_chance = { #Only greedy would pick this option. # base = 10 # ai_value_modifier = { # ai_greed = 1 # } # } # # custom_tooltip = fp2_struggle.1012_swordsmith_stays # # remove_treasury_or_gold = major_treasury_or_gold_value #this guy is expensive! # } #} # #################################### ## Death of a Councilman ## By Ola Jentzsch #################################### #scripted_trigger fp2_struggle.1020_minority_councillor_faith_trigger = { # save_temporary_scope_as = fp2_struggle_1020_temp_councillor # is_ai = yes # NOT = { is_spouse_of = root } # root.capital_county.faith = { # faith_hostility_level = { # target = scope:fp2_struggle_1020_temp_councillor.faith # value >= faith_hostile_level # } # } #} # #fp2_struggle.1020 = { # type = character_event # title = fp2_struggle.1020.t # desc = { # desc = fp2_struggle.1020_desc_opening # first_valid = { # triggered_desc = { # trigger = { # scope:minority_councillor = { # death_reason = death_beaten_by_mob # } # } # desc = fp2_struggle.1020_desc_beaten_by_mob # } # triggered_desc = { # trigger = { # scope:minority_councillor = { # death_reason = death_burned_by_mob # } # } # desc = fp2_struggle.1020_desc_burned_by_mob # } # triggered_desc = { # trigger = { # scope:minority_councillor = { # death_reason = death_hanged_and_disemboweled_by_mob # } # } # desc = fp2_struggle.1020_desc_hanged_and_disemboweled_by_mob # } # triggered_desc = { # trigger = { # scope:minority_councillor = { # death_reason = death_crucified_by_mob # } # } # desc = fp2_struggle.1020_desc_crucified_by_mob # } # triggered_desc = { # trigger = { # scope:minority_councillor = { # death_reason = death_defenestrated_by_mob # } # } # desc = fp2_struggle.1020_desc_defenestrated_by_mob # } # triggered_desc = { # trigger = { # scope:minority_councillor = { # death_reason = death_molten_silver_by_mob # } # } # desc = fp2_struggle.1020_desc_molten_silver_by_mob # } # triggered_desc = { # trigger = { # scope:minority_councillor = { # death_reason = death_torn_to_pieces_by_mob # } # } # desc = fp2_struggle.1020_desc_torn_to_pieces_by_mob # } # } # first_valid = { # triggered_desc = { # trigger = { # scope:councillor_executor = { # exists = var:relative_created # } # } # desc = fp2_struggle.1020_desc_councillor_had_family # } # triggered_desc = { # trigger = { # scope:minority_councillor = { # fp2_struggle.1020_minority_councillor_faith_trigger = yes # } # } # desc = fp2_struggle.1020_desc_councillor_had_no_family_faith # } # } # } # # theme = dread # cooldown = { years = 15 } # override_background = { reference = council_chamber } # # left_portrait = { # character = root # animation = disbelief # } # right_portrait = { # character = scope:councillor_executor # animation = anger # } # # lower_left_portrait = scope:minority_councillor # # # trigger = { # has_fp2_dlc_trigger = yes # # any_councillor = { fp2_struggle.1020_minority_councillor_faith_trigger = yes } # # capital_county = { county_control < low_county_control_limit } #root's capital having low control isn't strictly necessary, but adds to the emergent feeling here # } # # immediate = { # # random_councillor = { #this is the dead councillor # limit = { fp2_struggle.1020_minority_councillor_faith_trigger = yes } # save_scope_as = minority_councillor # } # # capital_county = { save_scope_as = unrest_capital } #so we can use the capital for loc # # scope:minority_councillor = { #and this is how they met their untimely end # random_list = { # 10 = { # death = { # death_reason = death_beaten_by_mob # } # } # 10 = { # death = { # death_reason = death_burned_by_mob # } # } # 20 = { # death = { # death_reason = death_hanged_and_disemboweled_by_mob # } # } # 20 = { # death = { # death_reason = death_crucified_by_mob # } # } # 10 = { # death = { # death_reason = death_defenestrated_by_mob # } # } # 20 = { # death = { # death_reason = death_molten_silver_by_mob # } # } # 10 = { # death = { # death_reason = death_torn_to_pieces_by_mob # } # } # } # } # # if = { #now let's see if there's any relative of the late councillor that could be considered relevant! # limit = { # any_powerful_vassal = { # is_ai = yes # is_close_or_extended_family_of = scope:minority_councillor # is_powerful_vassal = yes # } # } # random_powerful_vassal = { # limit = { # is_ai = yes # is_close_or_extended_family_of = scope:minority_councillor # is_powerful_vassal = yes # } # save_scope_as = councillor_executor # set_variable = relative_created #this variable is for use in triggers later # } # } # # else_if = { # limit = { # any_powerful_vassal = { # is_ai = yes # is_close_family_of = scope:minority_councillor # } # } # random_powerful_vassal = { # limit = { # is_ai = yes # is_close_family_of = scope:minority_councillor # } # save_scope_as = councillor_executor # set_variable = relative_created # } # } # # else_if = { # limit = { # any_powerful_vassal = { # is_ai = yes # is_close_or_extended_family_of = scope:minority_councillor # } # } # random_powerful_vassal = { # limit = { # is_ai = yes # is_close_or_extended_family_of = scope:minority_councillor # } # save_scope_as = councillor_executor # set_variable = relative_created # } # } # # else_if = { # limit = { # any_neighboring_and_across_water_top_liege_realm_owner = { # is_ai = yes # is_close_or_extended_family_of = scope:minority_councillor # OR = { # fp2_character_involved_in_struggle_trigger = yes # fp2_character_interloper_in_struggle_trigger = yes # } # } # } # random_neighboring_and_across_water_top_liege_realm_owner = { # limit = { # is_ai = yes # is_close_or_extended_family_of = scope:minority_councillor # OR = { # fp2_character_involved_in_struggle_trigger = yes # fp2_character_interloper_in_struggle_trigger = yes # } # } # save_scope_as = councillor_executor # set_variable = relative_created # } # } # # else_if = { # limit = { # any_ruler = { # is_ai = yes # is_close_or_extended_family_of = scope:minority_councillor # } # } # random_ruler = { # limit = { # is_ai = yes # is_close_or_extended_family_of = scope:minority_councillor # } # save_scope_as = councillor_executor # set_variable = relative_created # } # } # # else_if = { # limit = { # any_courtier = { # is_ai = yes # is_close_or_extended_family_of = scope:minority_councillor # } # } # random_courtier = { # limit = { # is_ai = yes # is_close_or_extended_family_of = scope:minority_councillor # } # save_scope_as = councillor_executor # set_variable = relative_created # } # } # # else = { #if no relevant relative was found, we instead create a community leader to fire option b with! # create_character = { # age = { 20 80 } # location = root.capital_province # template = merchant_template # culture = scope:minority_councillor.culture # faith = scope:minority_councillor.faith # save_scope_as = councillor_executor # } # hidden_effect = { # scope:councillor_executor = { #just because, I want more rotund people # add_character_modifier = { # modifier = obese_modifier # } # } # } # } # # scope:minority_councillor = { # every_close_or_extended_family_member = { # custom = all_family_members # if = { # limit = { # is_ai = yes # this != root # } # add_opinion = { # target = root # opinion = -20 # modifier = blames_for_death_of_relative_opinion # } # } # } # } # } # # # option = { #Make amends to councillor's dynasty # name = fp2_struggle.1020.a # # trigger = { # scope:councillor_executor = { # exists = var:relative_created # } # } # # ai_chance = { #rational and somewhat honorable AIs pick this option # base = 10 # ai_value_modifier = { # ai_rationality = 0.5 # ai_honor = 0.3 # #but bold and vengeful ones do not # ai_boldness = -0.5 # ai_vengefulness = -0.5 # } # } # # stress_impact = { # #arrogant characters don't care for this # arrogant = minor_stress_impact_gain # callous = minor_stress_impact_gain # stubborn = minor_stress_impact_gain # # #socially awkward ones aren't fond of it either # paranoid = minor_stress_impact_gain # shy = minor_stress_impact_gain # } # # add_character_modifier = { # modifier = compelling_apology_modifier # years = 10 # } # # scope:minority_councillor = { # every_close_or_extended_family_member = { # custom = all_family_members # if = { # limit = { is_ai = yes } # add_opinion = { # target = root # opinion = 10 # modifier = made_amends_opinion # } # } # } # } # } # # option = { #Pay restitution to councillor's people # name = fp2_struggle.1020.b # # trigger = { # scope:councillor_executor = { # NOT = { exists = var:relative_created } # } # } # # ai_chance = { #compassionate AIs takes this option # base = 10 # ai_value_modifier = { # ai_compassion = 0.7 # ai_honor = 0.3 # #but zealous and vengeful ones do not # ai_zeal = -0.5 # ai_vengefulness = -0.5 # } # } # # stress_impact = { # #arrogant characters don't wanna do this # arrogant = minor_stress_impact_gain # callous = minor_stress_impact_gain # stubborn = minor_stress_impact_gain # # #nor those who hate the people # paranoid = minor_stress_impact_gain # vengeful = minor_stress_impact_gain # } # # remove_treasury_or_gold = medium_treasury_or_gold_value #restitution isn't free! # # add_character_modifier = { # modifier = restitution_to_minorities_modifier # years = 15 # } # } # # option = { #Hunt down the perpetrators # name = fp2_struggle.1020.c # # ai_chance = { #energetic and vengeful AI picks this option. # base = 10 # ai_value_modifier = { # ai_energy = 0.5 # ai_vengefulness = 0.7 # #but compassionate ones might not # ai_compassion = -0.7 # } # } # # stress_impact = { #this is cruel and a lot of effort... # compassionate = minor_stress_impact_gain # forgiving = minor_stress_impact_gain # lazy = minor_stress_impact_gain # } # # # add_character_modifier = { # modifier = memorable_public_execution_modifier # years = 10 # } # # # add_prestige = minor_prestige_gain # # if = { # limit = { exists = var:relative_created } # scope:councillor_executor = { # add_opinion = { # target = root # opinion = 20 # modifier = avenged_relative_opinion # # } # } # } # } # # option = { #Restore order in the capital # name = fp2_struggle.1020.d # # ai_chance = { #rational and compassionate AIs pick this option # base = 10 # ai_value_modifier = { # ai_rationality = 0.9 # ai_compassion = 0.3 # #but bold and zealous ones do not # ai_boldness = -0.5 # ai_zeal = -0.5 # } # } # # stress_impact = { # #cruel or lazy characters don't bother with this # callous = minor_stress_impact_gain # lazy = minor_stress_impact_gain # sadistic = minor_stress_impact_gain # # #and vengeful ones would rather pursue revenge. # vengeful = minor_stress_impact_gain # } # # if = { # limit = { exists = var:relative_created } # scope:councillor_executor = { # add_opinion = { # target = root # opinion = -10 # modifier = ignored_demands_opinion # } # } # } # # add_prestige = minor_prestige_gain # # root.capital_county = { change_county_control = medium_county_control_gain } # } #} # #################################### ## The Vision ## By Ola Jentzsch #################################### #fp2_struggle.1050 = { # type = character_event # title = fp2_struggle.1050.t # desc = { # first_valid = { # desc = fp2_struggle.1050.desc_opening # } # first_valid = { # triggered_desc = { # trigger = { # OR = { has_religion = religion:eastern_orthodox_religion has_religion = religion:catholic_religion has_religion = religion:protestant_religion } # scope:visionary_spouse= { # has_OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion } # } # } # desc = fp2_struggle.1050.desc_christian # } # triggered_desc = { # trigger = { # has_religion = religion:islam_religion # scope:visionary_spouse= { # has_religion = religion:islam_religion # } # } # desc = fp2_struggle.1050.desc_islamic # } # triggered_desc = { # trigger = { # has_religion = religion:folkgerman_religion # scope:visionary_spouse= { # has_religion = religion:folkgerman_religion # } # } # desc = fp2_struggle.1050.desc_rampaging_barbarian_heathen # } # desc = fp2_struggle.1050.desc_non_barbarian_heathen # } # first_valid = { # triggered_desc = { # trigger = { # root = { # OR = { # culture = culture:andalusian # culture = culture:bedouin # } # } # scope:visionary_spouse = { # OR = { # culture = culture:andalusian # culture = culture:bedouin # } # } # } # desc = fp2_struggle.1050.desc_islamic_heritage # } # triggered_desc = { # trigger = { # has_religion = religion:catholic_religion # scope:visionary_spouse= { # has_religion = religion:catholic_religion # } # } # desc = fp2_struggle.1050.desc_christian_bling_reference_drop # } # desc = fp2_struggle.1050.desc_middle_neutral_version # } # first_valid = { # triggered_desc = { # trigger = { # scope:visionary_spouse = { # OR = { # has_relation_lover = root # has_relation_soulmate = root # } # } # } # desc = fp2_struggle.1050.desc_love_and_warmth_ending # } # desc = fp2_struggle.1050.desc_no_love_and_warmth_ending # } # } # # theme = death # override_background = { reference = battlefield } ## # # left_portrait = { # character = root # animation = disapproval # } # right_portrait = { # character = scope:visionary_spouse # animation = paranoia # } # # # trigger = { # has_fp2_dlc_trigger = yes # # is_landed_or_landless_administrative = yes # # any_spouse = { is_courtier = yes } # # fp2_character_involved_in_struggle_trigger = yes # # struggle:iberian_struggle = { is_struggle_phase = struggle_iberia_phase_hostility } # } # # cooldown = { #this event shouldn't fire too often, since the context with the spouse's dream is pretty specific. # years = 100 # } # # # immediate = { # # random_spouse = { # weight = { # base = 1 # modifier = { # factor = 5 # this = primary_spouse # } # } # save_scope_as = visionary_spouse # } # # scope:visionary_spouse = { # add_character_modifier = { # modifier = foreboding_visions_modifier # years = 10 # } # } # # hidden_effect = { # scope:visionary_spouse = { # contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = no } # } # } # } # # option = { # name = fp2_struggle.1050.a # # trigger = { # faith = { # OR = { # has_doctrine_parameter = witchcraft_illegal # has_doctrine_parameter = witchcraft_shunned # } # } # } # # ai_chance = { #bold, vengeful and zealous AI goes for this option # base = 10 # ai_value_modifier = { # ai_boldness = 0.5 # ai_vengefulness = 0.7 # ai_zeal = 0.7 # ai_compassion = -1 #whereas compassionate, rational and honorable ones really, really doesn't # ai_rationality = -1 # ai_honor = -0.5 # } # } # # stress_impact = { # compassionate = major_stress_impact_gain #compassionate people don't accuse their spouse of being a witch # craven = minor_stress_impact_gain #cravens don't dare throw her in jail # trusting = medium_stress_impact_gain #and trusting people don't accuse her either # eccentric = minor_stress_impact_loss # } # # custom_tooltip = fp2_struggle.1050.spouse_imprisoned #you throw your spouse into the dungeon for being a suspected witch # hidden_effect = { # scope:visionary_spouse = { # hard_imprison_character_effect = { # TARGET = this # IMPRISONER = root # } # } # } # } # # option = { # name = fp2_struggle.1050.b # # ai_chance = { #lazy zealous AI pick this option # base = 10 # ai_value_modifier = { # ai_zeal = 0.8 # ai_energy = -0.7 # ai_vengefulness = -0.7 # } # } # # stress_impact = { # cynical = minor_stress_impact_gain #cynics don't really put their faith in God # } # # duel = { #this duel is root trying to make their spouse feel better. # skill = diplomacy # value = medium_skill_rating # # 20 = { # compare_modifier = { # value = scope:duel_value # multiplier = 2 # } # modifier = { # add = 15 # has_trait = compassionate # } # modifier = { # add = 20 # has_trait = zealous # } # send_interface_toast = { # title = comforting_spouse_visionary_toast.success # left_icon = root # right_icon = scope:visionary_spouse # # scope:visionary_spouse = { # add_opinion = { # target = root # modifier = comforted_opinion # } # } # custom_tooltip = fp2_struggle.1050.condition_might_improve # hidden_effect = { # scope:visionary_spouse = { # recover_from_disease_effect = { DISEASE = ill } # } # } # } # } # 20 = { # compare_modifier = { # value = scope:duel_value # multiplier = -1 # } # modifier = { # add = 20 # has_trait = callous # } # modifier = { # add = 10 # has_trait = sadistic # } # send_interface_toast = { # title = comforting_spouse_visionary.failure # left_icon = root # right_icon = scope:visionary_spouse # # scope:visionary_spouse = { # add_opinion = { # target = root # modifier = failed_comfort_opinion # } # } # # custom_tooltip = fp2_struggle.1050.condition_might_get_worse # hidden_effect = { # scope:visionary_spouse = { # add_character_modifier = { # modifier = mysterious_prophetess_illness_modifier # years = 5 # } # } # } # } # } # } # } # # option = { #Come, tell me more of your visions # name = fp2_struggle.1050.c # # ai_chance = { #compassionate AIs pick this option # base = 10 # ai_value_modifier = { # ai_compassion = 1 # ai_energy = 0.5 # ai_vengefulness = -0.5 # } # } # # stress_impact = { #unpleasant types don't pick this option... # arrogant = minor_stress_impact_gain # callous = medium_stress_impact_gain # sadistic = medium_stress_impact_gain # eccentric = minor_stress_impact_loss # } # # scope:visionary_spouse = { # if = { # limit = { # OR = { # has_relation_lover = root # has_relation_soulmate = root # } # } # add_opinion = { # target = root # modifier = listened_opinion # } # } # else = { # progress_towards_lover_effect = { # CHARACTER = root # REASON = lover_comforted_nightmare # OPINION = 0 # } # } # } # # custom_tooltip = fp2_struggle.1050.condition_might_improve # hidden_effect = { # scope:visionary_spouse = { # recover_from_disease_effect = { DISEASE = ill } # } # } # # add_character_modifier = { # modifier = frightened_by_portent_modifier # years = 10 # } # } # # option = { #Leave me be, I am planning my next conquest # name = fp2_struggle.1050.d # # ai_chance = { #Ambitious AIs pick this option # base = 10 # ai_value_modifier = { # ai_boldness = 0.5 # ai_energy = 0.7 # ai_greed = 0.5 # ai_compassion = -0.7 # } # } # # stress_impact = { # compassionate = minor_stress_impact_gain # eccentric = minor_stress_impact_gain # } # # scope:visionary_spouse = { # add_opinion = { # target = root # modifier = failed_comfort_opinion # } # } # # custom_tooltip = fp2_struggle.1050.condition_might_get_very_worse # hidden_effect = { # random = { # chance = 90 # scope:visionary_spouse = { # add_character_modifier = { # modifier = mysterious_prophetess_illness_modifier # years = 5 # } # add_trait = depressed_1 # } # } # } # } #} # #################################### ## Disorderly Market ## By Hugo Cortell #################################### VSCODE: Use control + / to comment/uncomment entire blocks of code. And control + shift + [ (or ]) to fold/unfold a block! #scripted_trigger fp2_struggle_2000_check_holds_city_scripted_trigger = { # title_province = { has_holding_type = city_holding } # exists = holder # holder != root #} # #fp2_struggle.2000 = { # type = character_event # title = fp2_struggle.2000.t # desc = fp2_struggle.2000.desc # theme = stewardship # cooldown = { years = 5 } # override_background = { reference = market } # left_portrait = root # right_portrait = { # character = scope:fp2_2000_market_inspector # animation = anger # } # # trigger = { # has_fp2_dlc_trigger = yes # has_religion = religion:islam_religion # faith = { # OR = { # has_doctrine = tenet_tax_nonbelievers # has_doctrine = special_doctrine_jizya # has_doctrine = tenet_religious_legal_pronouncements # has_doctrine = tenet_legalism # } # } # # exists = cp:councillor_steward # cp:councillor_steward = { is_available_ai_adult = yes } # exists = cp:councillor_court_chaplain # cp:councillor_court_chaplain = { is_available_ai_adult = yes } # # any_sub_realm_barony = { # fp2_struggle_2000_check_holds_city_scripted_trigger = yes # } # # any_pool_character = { # province = root.capital_province # has_no_particular_noble_roots_trigger = yes # is_available_healthy_ai_adult = yes # } # } # # immediate = { # random_sub_realm_barony = { # limit = { fp2_struggle_2000_check_holds_city_scripted_trigger = yes } # county = { save_scope_as = se_2000_county } # } # # cp:councillor_steward = { save_scope_as = 2000_scoped_steward } # cp:councillor_court_chaplain = { save_scope_as = 2000_scoped_chaplain } # # create_character = { # age = { 20 50 } # location = root.capital_province # gender_female_chance = root_faith_dominant_gender_female_chance # trait = just # trait = craven # trait = patient # trait = temperate # culture = root.culture # faith = root.faith # # dynasty = none # after_creation = { # add_gold = { minor_gold_value medium_gold_value } # add_prestige = { minor_prestige_gain medium_prestige_gain } # add_piety = { medium_piety_gain major_piety_gain } # } # # save_scope_as = fp2_2000_market_inspector # } # if = { # RoCo # limit = { # has_dlc_feature = royal_court # employs_court_position = chief_qadi_court_position # any_court_position_holder = { # type = chief_qadi_court_position # is_available_ai_adult = yes # } # } # random_court_position_holder = { # type = chief_qadi_court_position # limit = { # is_available_ai_adult = yes # } # save_scope_as = fp2_2000_chief_qadi # } # } # } # # option = { # Mandatory lunatic option (now rakish) # name = fp2_struggle.2000.f # trigger = { has_trait = rakish } # stress_impact = { # chaste = major_stress_impact_gain # zealous = major_stress_impact_gain # } # # flavor = fp2_struggle.2000.f.desc # send_interface_toast = { # type = event_stewardship_good_with_text # title = fp2_struggle.2000.f.notif # desc = fp2_struggle.2000.f.notif.desc # # stress_impact = { chaste = medium_stress_impact_gain } # # scope:2000_scoped_chaplain = { # add_opinion = { # target = root # modifier = impious_opinion # opinion = -25 # } # } # # add_piety = major_piety_loss # # scope:se_2000_county = { # add_county_modifier = { # modifier = fp2_free_market_boom_modifier # years = 5 # } # } # add_character_modifier = { # modifier = fp2_lenient_towards_foreign_merchants_modifier # years = 5 # } # } # # ai_chance = { # base = 15 # } # } # # option = { # Guards! Purge! # name = fp2_struggle.2000.e # # trigger = { # OR = { # has_trait = reaver # has_trait = order_member # has_trait = aggressive_attacker # } # } # stress_impact = { # just = major_stress_impact_gain # forgiving = major_stress_impact_gain # calm = minor_stress_impact_gain # trusting = medium_stress_impact_gain # } # # if = { # limit = { has_trait = sadistic } # Small detail # send_interface_toast = { # type = event_toast_effect_good # title = fp2_ruthless_market_oversight_modifier # left_icon = root # # add_dread = medium_dread_gain # scope:se_2000_county = { # add_county_modifier = { # modifier = fp2_ruthless_market_oversight_modifier # years = 5 # } # } # } # } # else = { # send_interface_toast = { # type = event_toast_effect_bad # title = fp2_ruthless_market_oversight_modifier # left_icon = root # # add_dread = medium_dread_gain # scope:se_2000_county = { # add_county_modifier = { # modifier = fp2_ruthless_market_oversight_modifier # years = 5 # } # } # } # } # # ai_chance = { # base = 5 # modifier = { # add = 15 # OR = { # has_trait = sadistic # has_trait = zealous # has_trait = wrathful # } # } # modifier = { # add = -40 # has_trait = compassionate # } # } # } # # option = { # Intervene with threat of calling judge # name = fp2_struggle.2000.a # flavor = fp2_struggle.2000.a.desc # # duel = { # skill = diplomacy # value = medium_skill_rating # # 30 = { # desc = fp2_struggle.2000.a.a # # compare_modifier = { # value = scope:duel_value # multiplier = 2.5 # } # modifier = { # add = 5 # has_trait = fickle # } # modifier = { # add = 20 # has_trait = craven # } # modifier = { # add = 3 # has_trait = lazy # } # modifier = { # add = 3 # has_trait = arbitrary # } # # send_interface_toast = { # type = event_toast_effect_bad # title = fp2_struggle.2000.a.a.notif # # if = { # RoCo # limit = { # exists = scope:fp2_2000_chief_qadi # } # reverse_add_opinion = { # target = scope:fp2_2000_chief_qadi # modifier = respect_opinion # opinion = 15 # } # } # # scope:se_2000_county = { # add_county_modifier = { # modifier = fp2_inefficient_market_oversight_modifier # years = 5 # } # } # } # } # 70 = { # desc = fp2_struggle.2000.a.b # # compare_modifier = { # value = scope:duel_value # multiplier = 2.5 # } # # modifier = { # add = 5 # has_trait = humble # } # modifier = { # add = 5 # has_trait = ambitious # } # modifier = { # add = 10 # has_trait = gregarious # } # modifier = { # add = 15 # has_trait = just # } # # send_interface_toast = { # type = event_toast_effect_good # title = fp2_struggle.2000.a.b.notif # left_icon = scope:2000_scoped_steward # # scope:se_2000_county = { # add_county_modifier = { # modifier = fp2_smooth_market_oversight_modifier # years = 5 # } # } # } # } # } # # ai_chance = { # base = 60 # modifier = { # add = 25 # has_trait = just # } # modifier = { # add = -25 # has_trait = arbitrary # } # modifier = { # add = -15 # has_trait = lazy # } # modifier = { # add = -5 # has_trait = arrogant # } # } # } # # option = { # Let the free market decide, free from tradition # name = fp2_struggle.2000.d # flavor = fp2_struggle.2000.d.desc # # stress_impact = { # zealous = major_stress_impact_gain # humble = medium_stress_impact_gain # content = medium_stress_impact_gain # just = minor_stress_impact_gain # temperate = medium_stress_impact_gain # } # # reverse_add_opinion = { # target = scope:2000_scoped_chaplain # modifier = impious_opinion # opinion = -30 # } # reverse_add_opinion = { # target = scope:2000_scoped_steward # modifier = respect_opinion # opinion = 15 # } # # send_interface_toast = { # type = event_toast_effect_good # title = fp2_free_market_boom_modifier # left_icon = scope:2000_scoped_steward # # add_piety = medium_piety_loss # # scope:se_2000_county = { # add_county_modifier = { # modifier = fp2_free_market_boom_modifier # years = 6 # } # } # } # # ai_chance = { # base = 0 # modifier = { # add = 15 # has_trait = greedy # } # modifier = { # add = -40 # has_trait = zealous # } # } # } # # option = { # Reprimand the inspector # name = fp2_struggle.2000.b # flavor = fp2_struggle.2000.b.desc # # stress_impact = { compassionate = medium_stress_impact_gain } # add_dread = miniscule_dread_gain # # send_interface_toast = { # type = event_stewardship_good_with_text # title = fp2_struggle.2000.b.notif # desc = fp2_struggle.2000.b.notif.desc # # scope:se_2000_county = { # add_county_modifier = { # modifier = fp2_smooth_market_oversight_modifier # years = 5 # } # } # # scope:2000_scoped_chaplain = { # add_opinion = { # target = root # modifier = cruelty_opinion # opinion = -15 # } # } # } # # ai_chance = { # base = 34 # modifier = { # add = 15 # OR = { # has_trait = sadistic # has_trait = callous # } # } # modifier = { # add = 5 # has_trait = impatient # } # modifier = { # add = 3 # has_trait = diligent # } # modifier = { # add = -25 # has_trait = compassionate # } # modifier = { # add = -15 # OR = { # has_trait = trusting # has_trait = calm # has_trait = forgiving # } # } # modifier = { # add = -5 # has_trait = humble # } # } # } # # after = { scope:fp2_2000_market_inspector = { silent_disappearance_effect = yes } } #} # #################################### ## Desperate Villagers Seek New Lord ## By Hugo Cortell #################################### #scripted_trigger fp2_struggle_2001_desperate_county_scripted_trigger = { # NOT = { root = { has_claim_on = prev } } # trigger_if = { # Checking that we are not offering up the capital of a duke or higher # limit = { # holder = { # highest_held_title_tier >= tier_duchy # } # } # this != holder.capital_county # } # # holder = { # Balance, malus must not affect players # is_ai = yes # top_liege = { is_ai = yes } # } # # OR = { # county_opinion < 0 # county_control < 81 # Note: if considered too restrictive for normal play, update to != 100 # } # # squared_distance = { # target = root.capital_province # value < squared_distance_medium # } #} # #fp2_struggle.2001 = { # type = character_event # title = fp2_struggle.2001.t # desc = { # desc = fp2_struggle.2001.desc # triggered_desc = { # trigger = { # is_allied_to = scope:fp2_2001_desperate_county.holder # } # desc = fp2_struggle.2001.desc.extra.a # } # triggered_desc = { # trigger = { # has_truce = scope:fp2_2001_desperate_county.holder # } # desc = fp2_struggle.2001.desc.extra.b # } # } # # theme = vassal # cooldown = { years = 20 } # left_portrait = { # character = root # animation = personality_rational # } # right_portrait = { # character = scope:fp2_2001_desperate_elder # animation = beg # } # lower_right_portrait = scope:fp2_2001_desperate_county.holder.top_liege # # trigger = { # has_fp2_dlc_trigger = yes # struggle:iberian_struggle = { # is_struggle_phase = struggle_iberia_phase_hostility # # } # # any_neighboring_and_across_water_top_liege_realm_owner = { # fp2_character_involved_in_struggle_trigger = yes # any_sub_realm_county = { # fp2_struggle_2001_desperate_county_scripted_trigger = yes # } # } # } # # immediate = { # if = { # limit = { exists = cp:councillor_court_chaplain } # cp:councillor_court_chaplain = { save_scope_as = 2001_scoped_chaplain } # } # # random_neighboring_and_across_water_top_liege_realm_owner = { # limit = { # fp2_character_involved_in_struggle_trigger = yes # any_sub_realm_county = { fp2_struggle_2001_desperate_county_scripted_trigger = yes } # } # random_sub_realm_county = { # limit = { fp2_struggle_2001_desperate_county_scripted_trigger = yes } # save_scope_as = fp2_2001_desperate_county # } # } # # create_character = { # age = { 38 71 } # location = scope:fp2_2001_desperate_county.title_province # gender_female_chance = root_faith_dominant_gender_female_chance # trait = peasant_leader # random_traits = yes # culture = scope:fp2_2001_desperate_county.culture # random_faith = { # root.faith = { trigger = { always = yes } } # scope:fp2_2001_desperate_county.faith = { trigger = { always = yes } } # } # dynasty = none # after_creation = { add_gold = medium_gold_value } # # save_scope_as = fp2_2001_desperate_elder # } # # # AI war-savviness calc variables # scope:fp2_2001_desperate_county.holder.top_liege = { save_temporary_scope_as = target_military } # set_variable = { # name = ai_strength_multiplier # This is how much stronger root has to be (could even be used for custom loc! but the script is complex enough as it is) # value = 1.25 # } # if = { # Calculate if AI can win war, decision of war requires traits AND for it to be favourable. This calcs if it is favourable # limit = { # is_ai = yes # Are you AI? # scope:fp2_2001_desperate_county.holder.top_liege = { # NOT = { # is_at_war_with = root # is_ai = no # Enemy must be AI (prevents AI from attacking player characters, otherwise it would feel as if the attack was random) # } # } # # # Actual strength is calc below, thanks to joe # root_military_strength_higher_than_military_target_value > target_military_strength_root_value # } # save_scope_as = fp2_se_2001_ai_war_winnable # Acts as boolean for wether or not the AI has a chance at winning # } # remove_variable = ai_strength_multiplier # # # Option exclusivity stuffs, easier to keep track of logic # if = { # Faith # limit = { # OR = { # has_trait = holy_warrior # has_trait = devoted # has_trait = heresiarch # has_trait = order_member # has_trait = crusader_king # has_trait = faith_warrior # } # NOT = { # faith = scope:fp2_2001_desperate_elder.faith # has_trait = excommunicated # } # } # save_scope_as = fp2_2001_exclusive_option_faith # } # else_if = { # Greedy # limit = { # OR = { # has_trait = greedy # has_trait = avaricious # has_trait = logistician # } # } # save_scope_as = fp2_2001_exclusive_option_greed # } # } # # option = { # Pay tribute to me # name = fp2_struggle.2001.d # custom_tooltip = fp2_struggle.2001.a.desc # # trigger = { # exists = scope:fp2_2001_exclusive_option_greed # NOT = { exists = scope:fp2_2001_exclusive_option_faith } # # OR = { # Tricks autoformatter into showing trait icons (wasteful) # has_trait = greedy # has_trait = avaricious # has_trait = logistician # } # } # # stress_impact = { # compassionate = minor_stress_impact_gain # humble = minor_stress_impact_gain # content = minor_stress_impact_gain # } # # save_scope_value_as = { # name = fp2_se_2001_eventchoiceramifications # value = flag:demand_tribute # } # # send_interface_toast = { # type = event_toast_effect_good # title = fp2_struggle.2001.a.notif # left_icon = root # right_icon = scope:fp2_2001_desperate_elder # # add_unpressed_claim = scope:fp2_2001_desperate_county # } # # send_interface_toast = { # type = event_stewardship_good_with_text # title = fp2_struggle.2001.d.notif # desc = fp2_struggle.2001.d.notif.desc # left_icon = scope:fp2_2001_desperate_elder # # scope:fp2_2001_desperate_elder = { # pay_treasury_or_gold = { # target = root # value = medium_treasury_or_gold_value # } # } # } # # if = { # limit = { exists = cp:councillor_steward } # cp:councillor_steward = { # add_opinion = { # target = root # modifier = pleased_opinion # opinion = 15 # } # } # } # # hidden_effect = { # trigger_event = { # id = fp2_struggle.2002 # years = 5 # } # } # add_character_modifier = { # modifier = fp2_2001_promise_reminder # years = 5 # } # # ai_chance = { # base = 0 # modifier = { # add = 10 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = brave # } # modifier = { # add = 5 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = compassionate # } # modifier = { # add = 40 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = greedy # } # } # } # # option = { # Are you willing to give up your god for it? # trigger = { # exists = scope:fp2_2001_exclusive_option_faith # # OR = { # has_trait = holy_warrior # Tricking the autoformatter into showing relevant trait # has_trait = devoted # has_trait = heresiarch # has_trait = order_member # has_trait = crusader_king # has_trait = faith_warrior # } # } # name = fp2_struggle.2001.b # # custom_tooltip = fp2_struggle.2001.a.desc # if = { # limit = { exists = scope:2001_scoped_chaplain } # custom_tooltip = fp2_struggle.2001.a.a.desc # } # # send_interface_toast = { # type = event_toast_effect_good # title = fp2_struggle.2001.a.notif # left_icon = root # right_icon = scope:fp2_2001_desperate_elder # # add_unpressed_claim = scope:fp2_2001_desperate_county # } # # send_interface_toast = { # type = event_stewardship_good_with_text # title = fp2_struggle.2001.b.notif # desc = fp2_struggle.2001.b.notif.desc # left_icon = scope:fp2_2001_desperate_elder # # if = { # limit = { exists = scope:2001_scoped_chaplain } # scope:2001_scoped_chaplain = { # add_opinion = { # target = root # modifier = pleased_opinion # opinion = 40 # } # } # save_scope_value_as = { # name = fp2_se_2001_eventchoiceramifications # value = flag:demand_conversion_chap # yes # } # } # else = { # save_scope_value_as = { # name = fp2_se_2001_eventchoiceramifications # value = flag:demand_conversion_no_chap # no # } # } # } # # every_powerful_vassal = { # limit = { faith = root.faith } # custom = fp2_every_major_vassal_notifier # add_opinion = { # target = root # modifier = respect_opinion # opinion = 15 # } # } # # scope:fp2_2001_desperate_county = { set_county_faith = root.faith } # # hidden_effect = { # scope:fp2_2001_desperate_elder = { set_character_faith_with_conversion = root.faith } # trigger_event = { # id = fp2_struggle.2002 # years = 5 # } # } # add_character_modifier = { # modifier = fp2_2001_promise_reminder # years = 5 # } # # ai_chance = { # base = 0 # modifier = { # add = 15 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = brave # } # modifier = { # add = 5 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = just # } # modifier = { # add = 50 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = zealous # } # modifier = { # add = -5 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = lazy # } # } # } # # option = { # You have my word # name = fp2_struggle.2001.a # custom_tooltip = fp2_struggle.2001.b.desc # Three extra years for not attaching any strings # # stress_impact = { # craven = minor_stress_impact_gain # shy = minor_stress_impact_gain # lazy = minor_stress_impact_gain # arrogant = major_stress_impact_gain # } # if = { # limit = { # exists = scope:fp2_2001_exclusive_option_greed # NOT = { exists = scope:fp2_2001_exclusive_option_faith } # } # stress_impact = { # greedy = medium_stress_impact_gain # avaricious = minor_stress_impact_gain # } # } # # send_interface_toast = { # type = event_toast_effect_good # title = fp2_struggle.2001.a.notif # left_icon = root # right_icon = scope:fp2_2001_desperate_elder # # add_unpressed_claim = scope:fp2_2001_desperate_county # } # # every_powerful_vassal = { # custom = fp2_every_major_vassal_notifier # add_opinion = { # target = root # modifier = respect_opinion # opinion = 15 # } # } # # hidden_effect = { # trigger_event = { # id = fp2_struggle.2002 # years = 10 # } # } # add_character_modifier = { # modifier = fp2_2001_promise_reminder # years = 10 # } # # ai_chance = { # base = 0 # modifier = { # add = 25 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = brave # } # modifier = { # add = 15 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = just # } # modifier = { # add = 15 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = compassionate # } # modifier = { # add = -35 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = arrogant # } # modifier = { # add = -15 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = lazy # } # } # } # # option = { # Prove it to me, point your spears at your liege (rise up) # name = fp2_struggle.2001.c # custom_tooltip = fp2_struggle.2001.a.desc # # trigger = { # scope:fp2_2001_desperate_county = { # can_title_create_faction = { # type = peasant_faction # target = scope:fp2_2001_desperate_county.holder # } # } # # NOT = { # exists = scope:fp2_2001_exclusive_option_greed # exists = scope:fp2_2001_exclusive_option_faith # } # } # # stress_impact = { # craven = medium_stress_impact_gain # content = minor_stress_impact_gain # } # # save_scope_value_as = { # name = fp2_se_2001_eventchoiceramifications # value = flag:peasant_revolt # } # # send_interface_toast = { # type = event_toast_effect_good # title = fp2_struggle.2001.a.notif # left_icon = root # right_icon = scope:fp2_2001_desperate_elder # # add_unpressed_claim = scope:fp2_2001_desperate_county # } # # every_powerful_vassal = { # custom = fp2_every_major_vassal_notifier # add_opinion = { # target = root # modifier = respect_opinion # opinion = 10 # } # } # # scope:fp2_2001_desperate_county = { # Create faction # title_create_faction = { # type = peasant_faction # target = scope:fp2_2001_desperate_county.holder # } # holder = { # every_targeting_faction = { # go through all existing factions # if = { # limit = { # any_faction_county_member = { this = scope:fp2_2001_desperate_county } # check if least one member belongs to the county # } # save_scope_as = fp2_se_2001_peasant_faction # } # } # } # } # # hidden_effect = { # trigger_event = { # id = fp2_struggle.2002 # years = 5 # } # } # add_character_modifier = { # modifier = fp2_2001_promise_reminder # years = 5 # } # # ai_chance = { # base = 0 # modifier = { # add = 15 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = brave # } # modifier = { # add = 25 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = ambitious # } # modifier = { # add = 10 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = just # } # modifier = { # add = -15 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = arrogant # } # modifier = { # add = -5 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = lazy # } # } # } # # option = { # Betray and inform ruler of treachery # name = fp2_struggle.2001.f # # stress_impact = { # compassionate = major_stress_impact_gain # forgiving = major_stress_impact_gain # } # # scope:fp2_2001_desperate_elder = { # death = { # death_reason = death_execution # killer = root # } # } # # if = { # limit = { is_allied_to = scope:fp2_2001_desperate_county.holder } # You stood by your allies # every_powerful_vassal = { # custom = fp2_every_major_vassal_notifier # add_opinion = { # target = root # modifier = respect_opinion # opinion = 10 # } # } # # if = { # limit = { NOT = { has_trait = arrogant } } # scope:fp2_2001_desperate_county.holder = { # progress_towards_friend_effect = { # REASON = friend_informed_ally_of_betrayal # CHARACTER = root # OPINION = 0 # } # # add_opinion = { # target = root # modifier = pleased_opinion # opinion = 25 # } # } # } # } # else = { # every_powerful_vassal = { # Your vassals question your integrity # custom = fp2_every_major_vassal_notifier # limit = { # NOR = { # has_trait = arbitrary # has_trait = sadistic # has_trait = arrogant # } # } # add_opinion = { # target = root # modifier = disgusted_opinion # opinion = -10 # } # } # # scope:fp2_2001_desperate_county.holder = { # add_opinion = { # target = root # modifier = respect_opinion # opinion = 40 # } # progress_towards_friend_effect = { # REASON = friend_informed_ally_of_betrayal # CHARACTER = root # OPINION = 0 # } # } # } # # ai_chance = { # base = 0 # modifier = { # add = 5 # has_trait = deceitful # is_allied_to = scope:fp2_2001_desperate_county.holder # } # # modifier = { # add = -25 # NOT = { is_allied_to = scope:fp2_2001_desperate_county.holder } # has_trait = brave # } # modifier = { # add = -15 # NOT = { is_allied_to = scope:fp2_2001_desperate_county.holder } # has_trait = just # } # modifier = { # add = -25 # NOT = { is_allied_to = scope:fp2_2001_desperate_county.holder } # has_trait = compassionate # } # modifier = { # add = 35 # NOT = { is_allied_to = scope:fp2_2001_desperate_county.holder } # has_trait = arrogant # } # modifier = { # add = 10 # NOT = { is_allied_to = scope:fp2_2001_desperate_county.holder } # has_trait = sadistic # } # modifier = { # add = 15 # NOT = { is_allied_to = scope:fp2_2001_desperate_county.holder } # has_trait = deceitful # } # } # } # # option = { # Dismiss # name = fp2_struggle.2001.e # custom_tooltip = fp2_struggle.2001.e.desc # stress_impact = { compassionate = minor_stress_impact_gain } # # scope:fp2_2001_desperate_county.holder.top_liege.capital_province.county = { # if = { # limit = { root = { is_allied_to = scope:fp2_2001_desperate_county.holder } } # hidden_effect = { # Hides effect if allied # add_county_modifier = { # modifier = fp2_forsaken_turned_levies_modifier # years = 6 # } # } # } # else = { # add_county_modifier = { # modifier = fp2_forsaken_turned_levies_modifier # years = 5 # } # } # } # # save_scope_as = did_not_call_next_event # # ai_chance = { # base = 100 # modifier = { # add = 25 # exists = scope:fp2_se_2001_ai_war_winnable # has_trait = craven # } # modifier = { # add = -45 # exists = scope:fp2_se_2001_ai_war_winnable # } # } # } # # after = { # if = { # limit = { exists = scope:fp2_se_2001_peasant_faction } # scope:fp2_2001_desperate_elder = { save_scope_as = peasant_leader } # scope:fp2_2001_desperate_county = { save_scope_as = peasant_county } # scope:fp2_se_2001_peasant_faction = { # # setup_peasant_leader_effect = yes # # faction_start_war = {} # faction_spawn_member_county_armies_effect = { # FACTION = scope:fp2_se_2001_peasant_faction # ARMY_OWNER = scope:fp2_2001_desperate_elder # PEASANT_ARMY_NAME = peasant_faction_event_troops # } # } # } # # if = { # limit = { # exists = scope:did_not_call_next_event # scope:fp2_2001_desperate_elder = { is_alive = yes } # } # scope:fp2_2001_desperate_elder = { # silent_disappearance_effect = yes # } # } # } #} # ## QUEST FUNCTION, check if player managed to complete objective #fp2_struggle.2002 = { # hidden = yes # # immediate = { # VICTORY STATE BELOW # if = { # limit = { scope:fp2_2001_desperate_county.holder.top_liege = root.top_liege } # check if lands belong to your state/kingdom/side # send_interface_toast = { # type = event_toast_effect_good # title = fp2_struggle.2002.t.a # left_icon = root # right_icon = scope:fp2_2001_desperate_elder # # # if = { # limit = { exists = scope:fp2_se_2001_eventchoiceramifications } # if = { # limit = { scope:fp2_se_2001_eventchoiceramifications = flag:demand_conversion_chap } # You keet your promise to god # add_piety = major_piety_gain # } # else_if = { # limit = { scope:fp2_se_2001_eventchoiceramifications = flag:demand_conversion_no_chap } # Without a chap, this is more impressive but less pious # add_piety = medium_piety_gain # add_prestige = medium_prestige_gain # } # else_if = { # limit = { scope:fp2_se_2001_eventchoiceramifications = flag:peasant_revolt } # You lead peasants into battle and won # add_prestige = minor_prestige_gain # } # else = { # debug_log = "Scope fp2_se_2001_eventchoiceramifications exists but has not been assigned a valid value!" # debug_log_scopes = yes # } # } # # scope:fp2_2001_desperate_county = { # add_county_modifier = { # modifier = county_listened_to_locals_modifier # years = 12 # } # change_county_control = major_county_control_gain # } # } # } # else = { # FAILURE STATE BELOW # send_interface_toast = { # type = event_toast_effect_bad # title = fp2_struggle.2002.t.b # left_icon = root # right_icon = scope:fp2_2001_desperate_elder # # add_prestige = minor_prestige_loss # # if = { # limit = { exists = scope:fp2_se_2001_eventchoiceramifications } # if = { # limit = { scope:fp2_se_2001_eventchoiceramifications = flag:demand_conversion_chap } # You failed to keep your promise to god # add_piety = medium_piety_loss # scope:2001_scoped_chaplain = { # add_opinion = { # target = root # modifier = impious_opinion # opinion = -40 # } # } # } # else_if = { # limit = { scope:fp2_se_2001_eventchoiceramifications = flag:demand_conversion_no_chap } # Without a chap, this is more impressive but less pious # add_piety = minor_piety_loss # add_prestige = minor_prestige_loss # } # else_if = { # limit = { scope:fp2_se_2001_eventchoiceramifications = flag:demand_tribute } # Being a weasel makes you look petty # add_prestige = medium_prestige_loss # } # else_if = { # limit = { scope:fp2_se_2001_eventchoiceramifications = flag:peasant_revolt } # You took their lives in exchange for freedom, yet returned nothing # add_piety = minor_piety_loss # add_prestige = major_prestige_loss # show_as_tooltip = { # scope:fp2_2001_desperate_county = { # This will happen anyways, but showing it creates more impact # holder = { # top_liege.capital_province.county = { # add_county_modifier = { # modifier = fp2_forsaken_turned_levies_modifier # years = 8 # } # } # } # } # } # } # else = { # debug_log = "Scope fp2_se_2001_eventchoiceramifications exists but has not been assigned a valid value!" # debug_log_scopes = yes # } # } # # every_powerful_vassal = { # add_opinion = { # target = root # modifier = disappointed_opinion # opinion = -10 # } # } # # hidden_effect = { # scope:fp2_2001_desperate_county = { # change_county_control = medium_county_control_gain # holder = { # top_liege.capital_province.county = { # add_county_modifier = { # modifier = fp2_forsaken_turned_levies_modifier # years = 8 # } # } # } # } # } # } # } # # scope:fp2_2001_desperate_elder = { # silent_disappearance_effect = yes # } # } #} # #################################### ## Lost Migratory Birds ## By Hugo Cortell #################################### #scripted_trigger fp2_struggle_2003_check_has_city_scripted_trigger = { # title_province = { has_holding_type = city_holding } # exists = holder #} # #fp2_struggle.2003 = { # type = character_event # title = fp2_struggle.2003.t # desc = fp2_struggle.2003.desc # theme = stewardship # override_background = { reference = army_camp } # cooldown = { years = 50 } # left_portrait = root # right_portrait = { # character = scope:fp2_2003_merc_actor # animation = loss_1 # Note: two_handed_1_aggressive could also be used # } # # trigger = { # has_fp2_dlc_trigger = yes # struggle:iberian_struggle ?= { # OR = { # is_struggle_phase = struggle_iberia_phase_opportunity # is_struggle_phase = struggle_iberia_phase_hostility # } # } # # any_sub_realm_barony = { fp2_struggle_2003_check_has_city_scripted_trigger = yes } # } # # immediate = { # random_sub_realm_barony = { # limit = { fp2_struggle_2003_check_has_city_scripted_trigger = yes } # county = { save_scope_as = fp2_2003_county_town } # } # # create_character = { # age = { 20 50 } # location = root.capital_province # gender_female_chance = root_faith_dominant_gender_female_chance # trait = wrathful # trait = greedy # trait = impatient # trait = callous # trait = wounded_2 # culture = root.culture # faith = root.faith # # dynasty = none # after_creation = { # add_gold = { 0 minor_gold_value } # add_prestige = { minor_prestige_loss minor_prestige_gain } # add_piety = { medium_piety_loss minor_piety_gain } # add_character_flag = single_combat_duel_armor # } # # save_scope_as = fp2_2003_merc_actor # } # } # # option = { # Give them farming work # name = fp2_struggle.2003.d # flavor = fp2_struggle.2003.d.desc # # trigger = { # OR= { # has_trait = lunatic_genetic # has_trait = logistician # has_trait = comfort_eater # has_trait = improvident # stewardship > extremely_high_skill_rating # } # gold > medium_gold_value # Locals need to be paid in advance # } # stress_impact = { greedy = major_stress_impact_gain } # # send_interface_toast = { # title = fp2_struggle.2003.e.notif.c # desc = fp2_struggle.2003.e.notif.c.desc # # remove_treasury_or_gold = medium_treasury_or_gold_value # scope:fp2_2003_county_town = { # add_county_modifier = { # modifier = fp2_mercs_turned_farmers_modifier # years = 20 # } # holder = { # add_character_modifier = { # modifier = fp2_mercenary_acquaintances_modifier # years = 8 # Bonus effect # } # } # } # } # # ai_chance = { # base = 30 # modifier = { # add = 1000 # has_trait = possessed_genetic # } # } # } # # option = { # Offer them a stable job # name = fp2_struggle.2003.b # flavor = fp2_struggle.2003.b.desc # # trigger = { # Locks the lunatic option (remove this trigger if you want more than 4 options) # OR = { # NOR= { # has_trait = lunatic_genetic # has_trait = logistician # has_trait = comfort_eater # has_trait = improvident # stewardship > extremely_high_skill_rating # } # gold < medium_gold_value # Peasants might need to be paid real gold, but mercs do not mind working on debt money # } # } # # stress_impact = { greedy = minor_stress_impact_gain } # # remove_treasury_or_gold = medium_treasury_or_gold_value # send_interface_toast = { # type = event_toast_effect_good # title = fp2_veteran_mercenaries_as_instructors_modifier # left_icon = root # # scope:fp2_2003_county_town = { # add_county_modifier = { # modifier = fp2_veteran_mercenaries_as_instructors_modifier # years = 12 # } # hidden_effect = { # holder = { # add_character_modifier = { # modifier = fp2_mercenary_acquaintances_modifier # years = 12 # } # } # } # } # } # # show_as_tooltip = { # scope:fp2_2003_county_town = { # holder = { # add_character_modifier = { # modifier = fp2_mercenary_acquaintances_modifier # years = 12 # } # } # } # } # # ai_chance = { # base = 25 # modifier = { # add = 5 # has_trait = ambitious # } # modifier = { # add = 5 # has_trait = generous # } # modifier = { # add = -50 # has_trait = greedy # } # } # } # # option = { # Implore them to leave # name = fp2_struggle.2003.a # stress_impact = { shy = minor_stress_impact_gain } # # trigger = { # NOT = { has_trait = lunatic_genetic } # Cuts down the options to four in case of lunacy event, lunatics do not negotiate. # } # # duel = { # skill = diplomacy # value = high_skill_rating # # 10 = { # compare_modifier = { # value = scope:duel_value # multiplier = -1.5 # } # modifier = { # add = 5 # has_trait = fickle # } # modifier = { # add = 20 # has_trait = craven # } # modifier = { # add = 15 # has_trait = lazy # } # modifier = { # add = 10 # has_trait = wrathful # } # modifier = { # add = 10 # has_trait = shy # } # modifier = { # add = 2 # has_trait = trusting # } # modifier = { # add = 3 # has_trait = stubborn # } # # send_interface_toast = { # type = event_toast_effect_bad # title = fp2_struggle.2003.a.a.notif # left_icon = root # # add_prestige = medium_prestige_loss # # scope:fp2_2003_county_town.title_province = { # add_province_modifier = { # modifier = recently_looted_modifier # years = 5 # } # } # } # } # 12 = { # compare_modifier = { # value = scope:duel_value # multiplier = 1.5 # } # # modifier = { # add = 5 # has_trait = calm # } # modifier = { # add = 5 # has_trait = vengeful # } # modifier = { # add = 5 # has_trait = honest # } # modifier = { # add = 10 # has_trait = gregarious # } # modifier = { # add = 15 # has_trait = just # } # modifier = { # add = 15 # has_trait = brave # } # # send_interface_toast = { # type = event_toast_effect_good # title = fp2_struggle.2003.a.b.notif # left_icon = root # # add_prestige = medium_prestige_gain # scope:fp2_2003_county_town = { # add_county_modifier = { # modifier = county_listened_to_locals_modifier # years = 5 # } # } # } # } # } # # ai_chance = { # base = 60 # modifier = { # add = 5 # has_trait = just # } # modifier = { # add = 25 # has_trait = gregarious # } # modifier = { # add = -5 # has_trait = arrogant # } # } # } # # option = { # Preemptive strike # name = fp2_struggle.2003.c # flavor = fp2_struggle.2003.c.desc # # stress_impact = { trusting = minor_stress_impact_gain } # Craven do not suffer a penalty, because they only plan the fight, not partake in it # # duel = { # skill = martial # value = high_skill_rating # # 10 = { # desc = fp2_struggle.2003.c.a # # compare_modifier = { # value = scope:duel_value # multiplier = -2.5 # } # # modifier = { # Relevant skills are those that could be used in urban warfare # add = 5 # has_trait = fickle # } # modifier = { # add = 1 # has_trait = just # } # modifier = { # add = 1 # has_trait = arrogant # } # modifier = { # add = 3 # has_trait = wrathful # } # modifier = { # add = 5 # has_trait = arbitrary # } # modifier = { # add = 3 # has_trait = lazy # } # # modifier = { # add = 5 # has_trait = open_terrain_expert # } # modifier = { # add = 2 # has_trait = reckless # } # modifier = { # "what does an INN even look like anyway?" # add = 3 # has_trait = reclusive # } # # show_as_tooltip = { # scope:fp2_2003_county_town = { # add_county_modifier = { # modifier = fp2_local_garrison_slaughtered_modifier # years = 5 # } # title_province = { # add_province_modifier = { # modifier = recently_looted_modifier # years = 5 # } # } # } # } # # hidden_effect = { # send_interface_toast = { # type = event_toast_effect_bad # title = fp2_local_garrison_slaughtered_modifier # left_icon = root # # scope:fp2_2003_county_town = { # Failure outcome # add_county_modifier = { # modifier = fp2_local_garrison_slaughtered_modifier # years = 5 # } # hidden_effect = { # title_province = { # add_province_modifier = { # modifier = recently_looted_modifier # years = 5 # } # } # } # } # } # } # } # 10 = { # desc = fp2_struggle.2003.c.b # # compare_modifier = { # value = scope:duel_value # multiplier = 2.5 # } # # modifier = { # add = 5 # has_trait = calm # } # modifier = { # add = 5 # has_trait = diligent # } # modifier = { # add = 3 # has_trait = callous # } # # modifier = { # add = 7 # OR = { # has_trait = intellect_good_2 # has_trait = intellect_good_3 # } # } # modifier = { # add = -15 # OR = { # has_trait = intellect_bad_1 # has_trait = intellect_bad_2 # } # } # modifier = { # add = -25 # OR = { # has_trait = intellect_bad_3 # has_trait = dull # } # } # modifier = { # add = 10 # has_trait = shrewd # } # # # modifier = { # add = 20 # has_trait = strategist # } # modifier = { # If you know how buildings are structured, you can raid them better # add = 5 # has_trait = architect # } # modifier = { # add = 5 # has_trait = flexible_leader # } # modifier = { # add = 15 # has_trait = organizer # } # modifier = { # add = 3 # has_trait = cautious_leader # } # # add_gold = minor_gold_value # add_prestige = medium_prestige_gain # send_interface_toast = { # type = event_toast_effect_good # title = fp2_struggle.2003.c.b.notif # left_icon = root # # scope:fp2_2003_county_town = { # Success # add_county_modifier = { # modifier = fp2_elite_tactics_for_civil_guards_modifier # years = 5 # } # } # } # } # } # # ai_chance = { # base = 15 # modifier = { # add = 5 # has_trait = brave # } # modifier = { # add = 15 # has_trait = wrathful # } # modifier = { # add = 5 # has_trait = deceitful # } # modifier = { # add = -25 # has_trait = trusting # } # modifier = { # add = -10 # has_trait = craven # } # } # } # # option = { # Let the local handle it # name = fp2_struggle.2003.e # flavor = fp2_struggle.2003.e.desc # # stress_impact = { # compassionate = major_stress_impact_gain # just = medium_stress_impact_gain # paranoid = minor_stress_impact_gain # } # # random_list = { # 50 = { # Looted # send_interface_toast = { # type = event_toast_effect_bad # title = fp2_struggle.2003.e.notif.a # # scope:fp2_2003_county_town = { # title_province = { # add_province_modifier = { # modifier = recently_looted_modifier # years = 5 # } # } # } # } # } # 25 = { # Massacre # send_interface_toast = { # type = event_toast_effect_bad # title = fp2_struggle.2003.e.notif.b # desc = fp2_struggle.2003.e.notif.b.desc # # scope:fp2_2003_county_town = { # add_county_modifier = { # modifier = fp2_mercs_slaughtered_populance_modifier # years = 5 # } # } # } # } # 25 = { # Farming outcome # send_interface_toast = { # type = event_toast_effect_good # title = fp2_struggle.2003.e.notif.c # desc = fp2_struggle.2003.e.notif.c.desc # # scope:fp2_2003_county_town = { # add_county_modifier = { # modifier = fp2_mercs_turned_farmers_modifier # years = 15 # } # } # } # } # } # } # # after = { # scope:fp2_2003_merc_actor = { silent_disappearance_effect = yes } # } #} # #################################### ## Ship building event ## By Hugo Cortell #################################### #fp2_struggle.2004 = { # type = character_event # title = fp2_struggle.2004.t # desc = fp2_struggle.2004.desc # # theme = crown # override_background = { reference = council_chamber } # left_portrait = { # character = root # animation = personality_rational # } # right_portrait = { # character = cp:councillor_steward # animation = personality_content # } # lower_right_portrait = { character = cp:councillor_marshal } # cooldown = { years = 150 } # # trigger = { # has_fp2_dlc_trigger = yes # current_year > 1025 # top_liege = root # # realm_size >= minor_realm_size # # exists = cp:councillor_marshal # cp:councillor_marshal = { is_available_ai_adult = yes } # exists = cp:councillor_steward # cp:councillor_steward = { # is_available_ai_adult = yes # NOT = { has_character_flag = fp2_2004_critical_success_achieved } # } # # any_sub_realm_county = { # is_coastal_county = yes # NOT = { has_county_modifier = fp2_successful_shipyards_modifier } # } # } # # weight_multiplier = { # modifier = { # add = 5 # current_year > 1066 # } # modifier = { # add = 25 # current_year > 1450 # Caravel time # } # modifier = { # add = 25 # current_year > 1550 # } # } # immediate = { # cp:councillor_marshal = { save_scope_as = 2004_scoped_marshal } # cp:councillor_steward = { # save_scope_as = 2004_scoped_steward # if = { # limit = { has_character_flag = fp2_2004_critical_success_achieved } # remove_character_flag = fp2_2004_critical_success_achieved # For debug # } # } # # random_sub_realm_county = { # limit = { is_coastal_county = yes } # save_scope_as = fp2_2004_dockyards # } # } # option = { # WE WILL BUILD BOATS OF PURE SILVER (MR addition) # name = fp2_struggle.2004.c # flavor = fp2_struggle.2004.c.desc # # remove_treasury_or_gold = major_treasury_or_gold_value # scope:2004_scoped_steward = { # add_opinion = { # target = root # modifier = dismissive_opinion # opinion = -15 # } # } # scope:2004_scoped_marshal = { # add_opinion = { # target = root # modifier = dismissive_opinion # opinion = -20 # } # } # # scope:2004_scoped_steward = { # duel = { # skill = learning # value = high_skill_rating # # 25 = { # Failure Outcome # compare_modifier = { # value = scope:duel_value # multiplier = -1.5 # min = -24 # } # modifier = { # Someone is sneaking in iron powder to cheap out! # add = 5 # has_trait = avaricious # } # # custom_tooltip = fp2_struggle.2005.desc.alt.a # scope:fp2_2004_dockyards = { # add_county_modifier = { # modifier = fp2_successful_shipyards_modifier # years = 20 # } # } # } # 5 = { # Success Outcome # compare_modifier = { # value = scope:duel_value # multiplier = 1.5 # min = -4 # } # modifier = { # add = 5 # has_trait = calm # } # modifier = { # add = 15 # has_trait = diligent # } # modifier = { # add = 2 # has_trait = ambitious # } # modifier = { # add = 3 # has_trait = patient # } # modifier = { # add = 25 # has_trait = shrewd # } # modifier = { # add = 10 # has_trait = overseer # } # modifier = { # add = 8 # has_trait = strategist # } # modifier = { # add = 15 # has_trait = architect # } # modifier = { # add = 10 # has_trait = scholar # } # modifier = { # add = 15 # has_trait = military_engineer # } # modifier = { # add = 3 # has_trait = logistician # } # modifier = { # add = 6 # has_trait = journaller # } # modifier = { # Building a ship of silver means you must know your construction material # add = 5 # has_trait = education_stewardship_1 # You sorta know how silver operates # } # modifier = { # add = 8 # has_trait = education_stewardship_2 # You understand the properties of silver # } # modifier = { # add = 10 # has_trait = education_stewardship_3 # You can bite silver and tell if it is real or not (others can only do it with gold) # } # modifier = { # add = 15 # has_trait = education_stewardship_4 # Your tounge is capable of taking appart the anatomical structure of the silver thanks to your PhD in home economics # } # modifier = { # add = 20 # has_trait = education_stewardship_5 # Like the above, except cooler, and my script comment has better spelling # } # # root = { save_scope_as = fp2_2004_silver_boat_floats } # show_as_tooltip = { # root = { add_prestige = major_prestige_gain } # scope:fp2_2004_dockyards = { # add_county_modifier = { # modifier = fp2_successful_shipyards_modifier # years = 45 # } # } # } # } # } # } # save_scope_as = fp2_2004_alt_option # if = { # limit = { is_developer_testing_trigger = yes } # custom_tooltip = debug_generic_option_shortened_trigger_can_disable # trigger_event = { # id = fp2_struggle.2005 # days = 2 # } # } # else = { # trigger_event = { # id = fp2_struggle.2005 # years = { 4 10 } # } # } # } # # option = { # I will sponsor your endeavour - Side with Steward # name = fp2_struggle.2004.a # # remove_treasury_or_gold = major_treasury_or_gold_value # # scope:2004_scoped_steward = { # add_opinion = { # target = root # modifier = grateful_opinion # opinion = 35 # } # } # scope:2004_scoped_marshal = { # add_opinion = { # target = root # modifier = disappointed_opinion # opinion = -15 # } # } # # scope:2004_scoped_steward = { # duel = { # desc = outcome_in_a_few_years # skill = learning # value = high_skill_rating # # 50 = { # compare_modifier = { # value = scope:duel_value # multiplier = -2.5 # } # desc = fp2_struggle.2004.a.a.desc # # modifier = { # add = 10 # has_trait = lazy # } # modifier = { # add = 10 # has_trait = fickle # } # modifier = { # add = 5 # has_trait = stubborn # } # modifier = { # add = 2 # has_trait = gregarious # } # modifier = { # add = 30 # has_trait = dull # } # modifier = { # add = 5 # has_trait = drunkard # } # modifier = { # add = 7 # has_trait = irritable # } # modifier = { # add = 3 # has_trait = rakish # } # modifier = { # add = 10 # has_trait = profligate # } # # show_as_tooltip = { # root = { # add_character_modifier = { # modifier = fp2_advanced_maritime_technology_modifier # years = 50 # } # } # } # } # 50 = { # compare_modifier = { # value = scope:duel_value # multiplier = 2.5 # } # desc = fp2_struggle.2004.a.b.desc # # modifier = { # add = 5 # has_trait = calm # } # modifier = { # add = 15 # has_trait = diligent # } # modifier = { # add = 2 # has_trait = ambitious # } # modifier = { # add = 3 # has_trait = patient # } # modifier = { # add = 25 # has_trait = shrewd # } # modifier = { # add = 10 # has_trait = overseer # } # modifier = { # add = 8 # has_trait = strategist # } # modifier = { # add = 15 # has_trait = architect # } # modifier = { # add = 10 # has_trait = scholar # } # modifier = { # add = 15 # has_trait = military_engineer # } # modifier = { # add = 3 # has_trait = logistician # } # modifier = { # add = 6 # has_trait = journaller # } # # add_character_flag = fp2_2004_critical_success_achieved # show_as_tooltip = { # root = { # add_character_modifier = { # modifier = fp2_advanced_maritime_technology_modifier # years = 60 # } # } # scope:fp2_2004_dockyards = { # add_county_modifier = { # modifier = fp2_successful_shipyards_modifier # years = 60 # } # } # } # } # } # } # hidden_effect = { # if = { # limit = { is_developer_testing_trigger = yes } # custom_tooltip = debug_generic_option_shortened_trigger_can_disable # trigger_event = { # id = fp2_struggle.2005 # days = 2 # } # } # else = { # trigger_event = { # id = fp2_struggle.2005 # years = { 5 9 } # } # } # } # # ai_chance = { # base = 0 # modifier = { # add = 50 # treasury_or_gold > medium_treasury_or_gold_value # } # ai_value_modifier = { # ai_boldness = 0.2 # ai_greed = -0.3 # ai_rationality = 0.2 # } # } # } # # option = { # No, it is a waste of money - Side with marshal # name = fp2_struggle.2004.b # flavor = fp2_struggle.2004.b.desc # # scope:2004_scoped_marshal = { # add_opinion = { # target = root # modifier = pleased_opinion # opinion = 15 # } # } # # scope:2004_scoped_steward = { # add_opinion = { # target = root # modifier = disappointed_opinion # opinion = -15 # } # add_opinion = { # target = scope:2004_scoped_marshal # modifier = angry_opinion # opinion = -25 # } # } # # ai_chance = { base = 50 } # } #} # #fp2_struggle.2005 = { # type = character_event # title = { # first_valid = { # triggered_desc = { # trigger = { # exists = scope:fp2_2004_alt_option # } # desc = { # first_valid = { # triggered_desc = { # trigger = { # exists = scope:fp2_2004_silver_boat_floats # } # desc = fp2_struggle.2005.desc.alt.b # } # desc = fp2_struggle.2005.desc.alt.a # } # } # } # triggered_desc = { # trigger = { # scope:2004_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved } # } # desc = fp2_struggle.2005.t.alt # } # desc = fp2_struggle.2005.t # } # } # # immediate = { # if = { # limit = { root = root } # Check if scoped port town is still under your control # save_scope_as = port_under_control # } # # # MIA checks # if = { # Assign current steward # limit = { exists = cp:councillor_steward } # cp:councillor_steward = { save_scope_as = 2005_scoped_steward } # } # else_if = { # Otherwise assign chaplain # limit = { exists = cp:councillor_court_chaplain } # cp:councillor_court_chaplain = { save_scope_as = 2005_scoped_steward } # } # else = { # Fallback, get whoever is most qualified in court # random_courtier_or_guest = { # limit = { learning > high_skill_rating } # random = { # chance = 15 # add_character_flag = fp2_2004_critical_success_achieved # } # save_scope_as = 2005_scoped_steward # } # if = { # limit = { # NOT = { exists = scope:2005_scoped_steward } # } # random_courtier_or_guest = { save_scope_as = 2005_scoped_steward } # } # } # # if = { # limit = { # scope:2004_scoped_steward != scope:2005_scoped_steward # OR = { # scope:2005_scoped_steward = cp:councillor_steward # scope:2005_scoped_steward = cp:councillor_court_chaplain # } # } # if = { # limit = { learning > high_skill_rating } # random = { # chance = 25 # add_character_flag = fp2_2004_critical_success_achieved # } # save_scope_as = 2005_scoped_steward # } # } # } # # desc = { # triggered_desc = { # Alt option # trigger = { exists = scope:fp2_2004_alt_option } # desc = { # first_valid = { # triggered_desc = { # trigger = { # exists = scope:fp2_2004_silver_boat_floats # } # desc = fp2_struggle.2005.desc.alt.b.desc # } # desc = fp2_struggle.2005.desc.alt.a.desc # } # triggered_desc = { # Lost dockyards # trigger = { scope:fp2_2004_dockyards.holder.top_liege != root.top_liege } # desc = fp2_struggle.2005.desc.cirt.a.notif # } # } # } # triggered_desc = { # trigger = { NOT = { exists = scope:fp2_2004_alt_option } } # desc = { # triggered_desc = { # Crtitical success explanation # trigger = { # scope:2005_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved } # } # desc = fp2_struggle.2005.desc.cirt.notif # } # triggered_desc = { # Lost dockyards # trigger = { # scope:2005_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved } # scope:fp2_2004_dockyards.holder.top_liege != root.top_liege # } # desc = fp2_struggle.2005.desc.cirt.a.notif # } # # # Original (Steward) designer is MIA # triggered_desc = { # trigger = { # scope:2004_scoped_steward != scope:2005_scoped_steward # } # desc = fp2_struggle.2005.desc.newdesigner.notif # } # # triggered_desc = { # Intro (non-crit) # trigger = { # NOT = { scope:2005_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved } } # } # desc = fp2_struggle.2005.desc.intro # } # # # Describe bottom of the ship # random_valid = { # desc = fp2_struggle.2005.desc.bottom.a # desc = fp2_struggle.2005.desc.bottom.b # desc = fp2_struggle.2005.desc.bottom.c # desc = fp2_struggle.2005.desc.bottom.d # } # # # Describe main feature(s) # random_valid = { # desc = fp2_struggle.2005.desc.unique.a # desc = fp2_struggle.2005.desc.unique.b # desc = fp2_struggle.2005.desc.unique.c # desc = fp2_struggle.2005.desc.unique.d # desc = fp2_struggle.2005.desc.unique.e # } # # # Describe sails (updated to propulsion) # random_valid = { # desc = fp2_struggle.2005.desc.sails.a # desc = fp2_struggle.2005.desc.sails.b # desc = fp2_struggle.2005.desc.sails.c # desc = fp2_struggle.2005.desc.sails.d # } # # first_valid = { # triggered_desc = { # trigger = { scope:2005_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved } } # desc = fp2_struggle.2005.desc.outro.crit # } # desc = fp2_struggle.2005.desc.outro # } # } # } # } # # theme = martial # override_background = { reference = docks } # left_portrait = { # character = root # triggered_animation = { # trigger = { # exists = scope:fp2_2004_alt_option # NOT = { exists = scope:fp2_2004_silver_boat_floats } # } # animation = anger # } # triggered_animation = { # trigger = { exists = scope:fp2_2004_alt_option } # animation = ecstasy # } # animation = war_over_win # } # right_portrait = { # character = scope:2005_scoped_steward # animation = throne_room_writer # } # # option = { # ALT Accept # trigger = { # exists = scope:fp2_2004_alt_option # exists = scope:fp2_2004_silver_boat_floats # } # name = fp2_struggle.2005.a # # add_prestige = major_prestige_gain # scope:fp2_2004_dockyards = { # add_county_modifier = { # modifier = fp2_successful_shipyards_modifier # years = 45 # } # } # } # # option = { # ALT Accept (Failure Version) # trigger = { # exists = scope:fp2_2004_alt_option # NOT = { exists = scope:fp2_2004_silver_boat_floats } # } # name = artifact.4050.a # Reusage of loc key # # scope:fp2_2004_dockyards = { # add_county_modifier = { # modifier = fp2_successful_shipyards_modifier # years = 20 # } # } # } # # option = { # Accept # trigger = { # NOT = { # exists = scope:fp2_2004_alt_option # scope:2005_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved } # } # } # name = fp2_struggle.2005.a # # add_character_modifier = { # modifier = fp2_advanced_maritime_technology_modifier # years = 50 # } # } # # option = { # Crit Accept # trigger = { # NOT = { exists = scope:fp2_2004_alt_option } # scope:2005_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved } # } # name = { # text = { # first_valid = { # triggered_desc = { # trigger = { scope:fp2_2004_dockyards.holder.top_liege = top_liege } # desc = fp2_struggle.2005.a # } # desc = fp2_struggle.2005.a.a # } # } # } # # add_character_modifier = { # modifier = fp2_advanced_maritime_technology_modifier # years = 60 # } # scope:fp2_2004_dockyards = { # add_county_modifier = { # modifier = fp2_successful_shipyards_modifier # years = 60 # } # } # } # # after = { # if = { # limit = { # OR = { # scope:2004_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved } # scope:2005_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved } # } # } # scope:2004_scoped_steward = { remove_character_flag = fp2_2004_critical_success_achieved } # scope:2005_scoped_steward = { remove_character_flag = fp2_2004_critical_success_achieved } # } # } #} # #################################### ## The Borders of Faith ## By Hugo Cortell #################################### #scripted_trigger fp2_event2006_check_if_right_vassal_target = { # holder != root # holder = { # is_available_ai_adult = yes # faith = root.faith # NOT = { has_trait = cynical } # OR = { # any_secret = { type = secret_non_believer } # AND = { # Fallback, get non-devout follower # piety < 51 # NOT = { has_trait = zealous } # } # } # } #} # #fp2_struggle.2006 = { # type = character_event # title = fp2_struggle.2006.t # desc = fp2_struggle.2006.desc # cooldown = { years = 20 } # # theme = faith # override_background = { reference = council_chamber } # left_portrait = { # character = root # animation = shock # } # right_portrait = { # character = scope:fp2_2006_vassal_in_crisis # animation = stress # } # lower_left_portrait = { # trigger = { exists = scope:2006_scoped_chaplain } # character = scope:2006_scoped_chaplain # } # # trigger = { # has_fp2_dlc_trigger = yes # root.top_liege = root # any_sub_realm_county = { # fp2_event2006_check_if_right_vassal_target = yes # # holder = { # any_neighboring_top_liege_realm_owner = { # faith != root.faith # } # } # } # } # # immediate = { # if = { # limit = { exists = cp:councillor_court_chaplain } # cp:councillor_court_chaplain = { save_scope_as = 2006_scoped_chaplain } # } # random_sub_realm_county = { # limit = { fp2_event2006_check_if_right_vassal_target = yes } # holder = { # save_scope_as = fp2_2006_vassal_in_crisis # random_neighboring_top_liege_realm_owner = { # limit = { faith != root.faith } # faith = { save_scope_as = fp2_2006_foreign_faith } # } # } # } # } # # option = { # Im a witch! And you can be one too! # trigger = { # has_trait = witch # OR = { # NOT = { # Not witch # scope:fp2_2006_vassal_in_crisis = { # any_secret = { type = secret_witch } # } # } # scope:fp2_2006_vassal_in_crisis = { # Witch but does not walk the path of witchery with you # any_secret = { # type = secret_witch # NOT = { is_known_by = root } # } # } # } # } # name = fp2_struggle.2006.e # # if = { # limit = { # any_secret = { # type = secret_witch # } # } # random_secret = { # type = secret_witch # reveal_to = scope:fp2_2006_vassal_in_crisis # } # } # send_interface_toast = { # type = event_witchcraft_good # title = fp2_struggle.2006.e.notif.t # left_icon = scope:fp2_2006_vassal_in_crisis # # scope:fp2_2006_vassal_in_crisis = { # if = { # limit = { # any_secret = { type = secret_witch } # has_trait = witch # } # custom_tooltip = fp2_struggle.2006.e.alreadywitch # } # else = { # hidden_effect = { give_witch_secret_or_trait_effect = yes } # show_as_tooltip = { add_trait = witch } # } # show_as_tooltip = { # random_secret = { # type = secret_witch # reveal_to = root # } # } # if = { # limit = { can_set_relation_friend_trigger = { CHARACTER = root } } # set_relation_friend = { reason = friend_guided_right_path target = root } # } # add_opinion = { # target = root # modifier = fp2_tolerated_me_opinion # } # if = { # limit = { # trait_is_criminal_in_faith_trigger = { # TRAIT = trait:witch # GENDER_CHARACTER = scope:fp2_2006_vassal_in_crisis # FAITH = scope:fp2_2006_vassal_in_crisis.faith # } # NOT = { # trait_is_criminal_in_faith_trigger = { # TRAIT = trait:witch # GENDER_CHARACTER = scope:fp2_2006_vassal_in_crisis # FAITH = scope:fp2_2006_foreign_faith # } # } # } # hidden_effect = { set_character_faith_with_conversion = scope:fp2_2006_foreign_faith } # custom_tooltip = fp2_struggle.2006.e.tacticalwitchfaithchange # } # # hidden_effect = { # if = { # limit = { # any_secret = { # type = secret_witch # } # } # random_secret = { # type = secret_witch # reveal_to = root # } # } # root = { # random_secret = { # type = secret_witch # reveal_to = scope:fp2_2006_vassal_in_crisis # } # } # } # } # } # # ai_chance = { # base = 80 # ai_value_modifier = { # ai_honor = -0.3 # ai_rationality = 0.5 # ai_zeal = -0.9 # } # } # } # # option = { # (Threaten to) Denounce heretic # trigger = { # OR = { # has_trait = schemer # has_trait = devoted # intrigue > medium_skill_rating # } # } # name = fp2_struggle.2006.d # stress_impact = { # compassionate = medium_stress_impact_gain # gallant = medium_stress_impact_gain # } # # add_dread = miniscule_dread_gain # hidden_effect = { # scope:fp2_2006_vassal_in_crisis = { # if = { # limit = { any_secret = { NOT = { secret_type = secret_non_believer } } } # add_secret = { type = secret_non_believer } # } # } # } # # add_hook = { # target = scope:fp2_2006_vassal_in_crisis # type = threat_hook # } # random_secret = { # type = secret_non_believer # reveal_to = root # } # # scope:fp2_2006_vassal_in_crisis = { # add_opinion = { # target = root # modifier = betrayed_me_opinion # opinion = -40 # } # } # # ai_chance = { # base = 30 # ai_value_modifier = { # ai_compassion = -0.5 # ai_honor = -0.8 # ai_rationality = 0.1 # ai_zeal = 0.3 # ai_vengefulness = 0.3 # ai_greed = 0.2 # } # } # } # # option = { # I will fix him myself # name = fp2_struggle.2006.b # stress_impact = { # cynical = minor_stress_impact_gain # } # # duel = { # skill = learning # value = medium_skill_rating # # 15 = { # desc = fp2_struggle.2006.b.a.desc # compare_modifier = { # value = scope:duel_value # multiplier = -1.5 # } # modifier = { # add = 10 # has_trait = fickle # } # modifier = { # add = 10 # has_trait = heresiarch # } # modifier = { # add = 2 # has_trait = impotent # } # modifier = { # add = 5 # has_trait = irritable # } # modifier = { # add = 5 # has_trait = dull # } # modifier = { # add = 10 # has_trait = depressed_genetic # } # modifier = { # add = 10 # has_trait = arrogant # } # modifier = { # add = 5 # has_trait = arbitrary # } # modifier = { # add = 10 # has_trait = lazy # } # modifier = { # add = 2 # has_trait = stubborn # } # modifier = { # add = 5 # has_trait = craven # } # # send_interface_toast = { # type = event_toast_effect_bad # title = fp2_struggle.2006.generic.notif.a.t # left_icon = scope:fp2_2006_vassal_in_crisis # # scope:fp2_2006_vassal_in_crisis = { # hidden_effect = { set_character_faith_with_conversion = scope:fp2_2006_foreign_faith } # show_as_tooltip = { set_character_faith = scope:fp2_2006_foreign_faith } # # progress_towards_rival_effect = { # REASON = rival_fraternising_enemy # CHARACTER = root # OPINION = 0 # } # add_opinion = { # target = root # modifier = fp2_questioned_my_faith_opinion # } # } # } # } # 15 = { # desc = fp2_struggle.2006.b.b.desc # compare_modifier = { # value = scope:duel_value # multiplier = 1.5 # } # modifier = { # add = 10 # has_trait = calm # } # modifier = { # add = 10 # has_trait = humble # } # modifier = { # add = 3 # has_trait = forgiving # } # modifier = { # add = 5 # has_trait = honest # } # modifier = { # add = 10 # has_trait = humble # } # modifier = { # add = 3 # has_trait = patient # } # modifier = { # add = 20 # has_trait = zealous # } # modifier = { # add = 4 # has_trait = compassionate # } # modifier = { # add = 20 # has_trait = theologian # Could be it's own option, but I can't think of what argument could be used... # } # modifier = { # add = 10 # has_trait = devoted # } # modifier = { # add = 2 # has_trait = lifestyle_poet # } # modifier = { # add = 10 # has_trait = saint # } # # send_interface_toast = { # type = event_toast_effect_good # title = fp2_struggle.2006.generic.notif.b.t # left_icon = scope:fp2_2006_vassal_in_crisis # # add_piety = medium_piety_gain # progress_towards_friend_effect = { # REASON = friend_guided_right_path # CHARACTER = scope:fp2_2006_vassal_in_crisis # OPINION = 0 # } # if = { # limit = { # this != root # } # add_opinion = { # target = root # modifier = fp2_reassured_faith_opinion # } # } # } # } # } # # ai_chance = { # base = 45 # ai_value_modifier = { # ai_compassion = 0.2 # ai_sociability = 0.3 # ai_zeal = 0.2 # } # } # } # # option = { # One-on-One time # name = fp2_struggle.2006.c # flavor = fp2_struggle.2006.c.desc # # trigger = { # NAND = { # has_trait = witch # OR = { # has_trait = schemer # has_trait = devoted # intrigue > medium_skill_rating # } # } # } # stress_impact = { zealous = minor_stress_impact_gain } # # scope:fp2_2006_vassal_in_crisis = { # progress_towards_friend_effect = { # REASON = friend_religious_tolerance # CHARACTER = root # OPINION = 0 # } # add_opinion = { # target = root # modifier = fp2_tolerated_me_opinion # } # random = { # chance = 50 # hidden_effect = { set_character_faith_with_conversion = scope:fp2_2006_foreign_faith } # show_as_tooltip = { set_character_faith = scope:fp2_2006_foreign_faith } # } # } # # ai_chance = { # base = 10 # ai_value_modifier = { # ai_compassion = 0.1 # ai_rationality = 0.6 # ai_zeal = -0.7 # } # } # } # # option = { # Someone call a priest! # name = fp2_struggle.2006.a # flavor = fp2_struggle.2006.a.desc # show_as_unavailable = { NOT = { exists = scope:2006_scoped_chaplain } } # Replaces trigger, teases player to possibility. # stress_impact = { # honest = medium_stress_impact_gain # humble = minor_stress_impact_gain # trusting = medium_stress_impact_gain # } # # scope:fp2_2006_vassal_in_crisis = { # add_opinion = { # target = root # modifier = betrayed_me_opinion # opinion = -20 # } # } # scope:2006_scoped_chaplain = { # duel = { # skill = learning # value = medium_skill_rating # # 10 = { # desc = fp2_struggle.2006.a.a # compare_modifier = { # value = scope:duel_value # multiplier = -1.25 # } # modifier = { # add = 15 # scope:fp2_2006_vassal_in_crisis = { has_trait = paranoid } # } # modifier = { # add = 10 # has_trait = fickle # } # modifier = { # add = 10 # has_trait = heresiarch # } # modifier = { # add = 2 # has_trait = impotent # } # modifier = { # add = 5 # has_trait = irritable # } # modifier = { # add = 5 # has_trait = dull # } # modifier = { # add = 10 # has_trait = depressed_genetic # } # modifier = { # add = 10 # has_trait = arrogant # } # modifier = { # add = 5 # has_trait = arbitrary # } # modifier = { # add = 10 # has_trait = lazy # } # modifier = { # add = 2 # has_trait = stubborn # } # modifier = { # add = 5 # has_trait = craven # } # modifier = { # factor = 2 # scope:fp2_2006_vassal_in_crisis = { has_trait = paranoid } # } # # root = { # hidden_effect = { # scope:fp2_2006_vassal_in_crisis = { # if = { # limit = { any_secret = { type = secret_non_believer } } # progress_towards_rival_effect = { # "HE MUST BE ON TO ME!" # REASON = rival_faith_tested # CHARACTER = scope:2006_scoped_chaplain # OPINION = 0 # } # add_opinion = { # target = scope:2006_scoped_chaplain # modifier = fp2_questioned_my_faith_opinion # } # } # } # } # send_interface_toast = { # type = event_toast_effect_bad # title = fp2_struggle.2006.generic.notif.a.t # left_icon = scope:fp2_2006_vassal_in_crisis # # scope:fp2_2006_vassal_in_crisis = { # show_as_tooltip = { set_character_faith = scope:fp2_2006_foreign_faith } # hidden_effect = { set_character_faith_with_conversion = scope:fp2_2006_foreign_faith } # # add_opinion = { # target = scope:2006_scoped_chaplain # modifier = fp2_questioned_my_faith_opinion # opinion = -35 # } # } # } # } # } # 5 = { # trigger = { # scope:fp2_2006_vassal_in_crisis = { # NOT = { has_trait = paranoid } # } # } # desc = fp2_struggle.2006.a.b # compare_modifier = { # value = scope:duel_value # multiplier = -1.25 # } # modifier = { # add = 10 # has_trait = fickle # } # modifier = { # add = 10 # has_trait = heresiarch # } # modifier = { # add = 2 # has_trait = impotent # } # modifier = { # add = 5 # has_trait = irritable # } # modifier = { # add = 5 # has_trait = dull # } # modifier = { # add = 10 # has_trait = depressed_genetic # } # modifier = { # add = 10 # has_trait = arrogant # } # modifier = { # add = 5 # has_trait = arbitrary # } # modifier = { # add = 10 # has_trait = lazy # } # modifier = { # add = 2 # has_trait = stubborn # } # modifier = { # add = 5 # has_trait = craven # } # # root = { # hidden_effect = { # scope:fp2_2006_vassal_in_crisis = { # if = { # limit = { any_secret = { type = secret_non_believer } } # progress_towards_rival_effect = { # "HE MUST BE ON TO ME!" # REASON = rival_faith_tested # CHARACTER = scope:2006_scoped_chaplain # OPINION = 0 # } # add_opinion = { # target = scope:2006_scoped_chaplain # modifier = fp2_questioned_my_faith_opinion # } # } # } # } # send_interface_toast = { # type = event_toast_effect_bad # title = fp2_struggle.2006.generic.notif.a.t # left_icon = scope:fp2_2006_vassal_in_crisis # # scope:fp2_2006_vassal_in_crisis = { # remove_trait = trusting # if = { # limit = { is_ai = yes } # add_stress = monumental_stress_gain # Unbalanced for players, fun when seeing it happen to unrelated AI # } # else = { add_stress = medium_stress_gain } # (there is no notification) # add_opinion = { # target = scope:2006_scoped_chaplain # modifier = fp2_questioned_my_faith_opinion # opinion = -25 # } # } # } # } # } # 20 = { # desc = fp2_struggle.2006.a.c # compare_modifier = { # value = scope:duel_value # multiplier = 1.5 # } # modifier = { # add = 10 # has_trait = calm # } # modifier = { # add = 10 # has_trait = humble # } # modifier = { # add = 3 # has_trait = forgiving # } # modifier = { # add = 5 # has_trait = honest # } # modifier = { # add = 10 # has_trait = humble # } # modifier = { # add = 3 # has_trait = patient # } # modifier = { # add = 20 # has_trait = zealous # } # modifier = { # add = 4 # has_trait = compassionate # } # modifier = { # add = 15 # has_trait = theologian # } # modifier = { # add = 10 # has_trait = devoted # } # modifier = { # add = 2 # has_trait = lifestyle_poet # } # modifier = { # add = 10 # has_trait = saint # } # # hidden_effect = { # scope:fp2_2006_vassal_in_crisis = { add_piety = minor_piety_gain } # scope:2006_scoped_chaplain = { add_piety = medium_piety_gain } # } # root = { # send_interface_toast = { # type = event_toast_effect_good # title = fp2_struggle.2006.generic.notif.b.t # left_icon = scope:fp2_2006_vassal_in_crisis # # scope:fp2_2006_vassal_in_crisis = { # progress_towards_friend_effect = { # REASON = friend_guided_right_path # CHARACTER = scope:2006_scoped_chaplain # OPINION = 0 # } # add_opinion = { # target = scope:2006_scoped_chaplain # modifier = fp2_reassured_faith_opinion # } # } # } # } # } # } # } # # ai_chance = { # base = 45 # ai_value_modifier = { # ai_compassion = -0.1 # ai_energy = -0.1 # ai_honor = -0.1 # ai_rationality = 0.2 # ai_sociability = -0.2 # ai_zeal = 0.3 # } # } # } #} # #################################### ## A Castle Worthy of Iberia ## By Hugo Cortell #################################### #scripted_trigger fp2_struggle_2007_can_build_castle_trigger = { # Ensures that the selected building spot adheres to the game's rules on holding placement. # any_county_province = { has_holding = no } # trigger_if = { # limit = { any_county_province = { has_holding_type = castle_holding } } # any_county_province = { has_holding_type = church_holding } # any_county_province = { has_holding_type = city_holding } # } # exists = holder # holder != scope:fp2_2007_scoped_steward #} # #fp2_struggle.2007 = { # type = character_event # title = fp2_struggle.2007.t # desc = { # first_valid = { # triggered_desc = { # trigger = { scope:fp2_2007_castle_holder = ROOT } # desc = fp2_struggle.2007.desc.a # } # desc = fp2_struggle.2007.desc.b # } # } # # theme = realm # cooldown = { years = 20 } # override_background = { reference = garden } # left_portrait = { # character = root # animation = personality_rational # } # right_portrait = { # character = scope:fp2_2007_scoped_steward # animation = chancellor # } # lower_left_portrait = scope:2007_vassal_sponsor # lower_right_portrait = scope:fp2_2007_castle_holder # # trigger = { # has_fp2_dlc_trigger = yes # is_ai = no # Overpowered for AI, player only. # struggle:iberian_struggle = { # is_struggle_phase = struggle_iberia_phase_hostility # # } # # root.top_liege = root # exists = cp:councillor_steward # cp:councillor_steward = { is_available_ai_adult = yes } # # any_vassal = { # Last minute pre RC fixes # NOT = { # religion = root.religion # this = cp:councillor_steward # } # } # any_realm_county = { fp2_struggle_2007_can_build_castle_trigger = yes } # # save_temporary_scope_value_as = { # name = fp2_2007_wealth_barrier # value = { # value = main_building_tier_1_cost # multiply = 0.8 # round = yes # } # } # OR = { # gold > scope:fp2_2007_wealth_barrier # OR = { # has_trait = architect # AND = { # has_royal_court = yes # employs_court_position = royal_architect_court_position # any_court_position_holder = { # type = royal_architect_court_position # is_available_ai_adult = yes # } # } # } # } # } # # immediate = { # cp:councillor_steward = { save_scope_as = fp2_2007_scoped_steward } # if = { # limit = { # any_court_position_holder = { # type = royal_architect_court_position # is_available_ai_adult = yes # } # } # random_court_position_holder = { # type = royal_architect_court_position # save_scope_as = fp2_2007_roco_architect # } # } # random_vassal = { # limit = { # NOT = { # religion = root.religion # this = scope:fp2_2007_scoped_steward # } # } # save_scope_as = 2007_vassal_sponsor # } # # random_realm_county = { # limit = { fp2_struggle_2007_can_build_castle_trigger = yes } # random_county_province = { # limit = { has_holding = no } # save_scope_as = fp2_2007_free_real_estate # } # holder = { save_scope_as = fp2_2007_castle_holder } # } # # # Get Different Faith (updated to whole religion) # struggle:iberian_struggle = { # random_involved_ruler = { # limit = { # religion != root.religion # faith = { save_temporary_scope_as = temp_involved_faith } # struggle:iberian_struggle = { is_faith_involved_in_struggle = scope:temp_involved_faith } # } # religion = { save_scope_as = fp2_2007_foreign_faith } # } # if = { # Fallback # limit = { NOT = { exists = scope:fp2_2007_foreign_faith } } # get_random_faith_effect = { FORBIDROOTFAITH = yes } # scope:random_faith.religion = { save_scope_as = fp2_2007_foreign_faith } # } # } # # # Get castileans or proto-castileans # if = { # limit = { culture = { has_cultural_parameter = architect_trait_prestige } } # culture = { save_scope_as = fp2_2007_allegedprotocastilean } # } # # save_scope_value_as = { # name = fp2_2007_same_faith_construction_cost # value = { # value = main_building_tier_1_cost # multiply = 0.75 # round = yes # } # } # save_scope_value_as = { # name = fp2_2007_different_faith_construction_cost # value = { # value = main_building_tier_1_cost # multiply = 0.65 # round = yes # } # } # save_scope_value_as = { # name = fp2_2007_diy_construction_cost # value = { # value = main_building_tier_1_cost # multiply = 0.6 # round = yes # } # } # # # Set dynamic loc keys for powerful vassals # religion = { save_scope_as = dyloc_powerful_vassal_faith } # culture = { save_scope_as = dyloc_powerful_vassal_culture } # } # # option = { # Same Faith (or) Castilean architect # name = { # text = { # first_valid = { # triggered_desc = { # trigger = { exists = scope:fp2_2007_allegedprotocastilean } # desc = fp2_struggle.2007.a.castile # } # desc = fp2_struggle.2007.a # } # } # } # flavor = { # first_valid = { # triggered_desc = { # trigger = { exists = scope:fp2_2007_allegedprotocastilean } # desc = fp2_struggle.2007.a.castile.favor # } # desc = fp2_struggle.2007.a.major_vassal_flavor # } # } # show_as_unavailable = { gold < scope:fp2_2007_same_faith_construction_cost } # # if = { # Proto-Castilean # limit = { exists = scope:fp2_2007_allegedprotocastilean } # every_powerful_vassal = { # limit = { culture = root.culture } # custom = fp2_every_major_same_culture_vassal_notifier # add_opinion = { # target = root # modifier = pleased_opinion # opinion = 10 # } # } # } # show_as_tooltip = { # remove_treasury_or_gold = scope:fp2_2007_same_faith_construction_cost # scope:fp2_2007_free_real_estate = { # begin_create_holding = { # type = castle_holding # refund_cost = { # gold = 95 # } # } # } # add_hook_if_possible_effect = { # General effect # TARGET = scope:fp2_2007_castle_holder # TYPE = indebted_hook # YEARS = 8 # } # Hooks get their own notifications, therefore I will not show them on the main effect # } # hidden_effect = { # send_interface_toast = { # type = event_toast_effect_good # title = fp2_struggle.2007.t # left_icon = root # right_icon = scope:fp2_2007_castle_holder # # remove_treasury_or_gold = scope:fp2_2007_same_faith_construction_cost # custom_tooltip = fp2_struggle.2007.a.notif # hidden_effect = { # scope:fp2_2007_free_real_estate = { # begin_create_holding = { # type = castle_holding # refund_cost = { # gold = 95 # } # } # } # add_hook_if_possible_effect = { # General effect # TARGET = scope:fp2_2007_castle_holder # TYPE = indebted_hook # YEARS = 8 # } # } # } # } # } # # option = { # Foreign (different faith) architect # name = fp2_struggle.2007.b # flavor = fp2_struggle.2007.b.flavor # show_as_unavailable = { gold < scope:fp2_2007_different_faith_construction_cost } # hidden_effect = { scope:2007_vassal_sponsor = { remove_treasury_or_gold = medium_treasury_or_gold_value } } # # every_powerful_vassal = { # custom = fp2_every_major_same_faith_vassal_notifier # limit = { religion = root.religion } # add_opinion = { # target = root # modifier = disappointed_opinion # opinion = -15 # } # } # every_powerful_vassal = { # custom = fp2_every_major_different_faith_vassal_notifier # limit = { religion != root.religion } # add_opinion = { # target = root # modifier = respect_opinion # opinion = 15 # } # } # scope:fp2_2007_free_real_estate.county = { # if = { # limit = { religion = scope:fp2_2007_foreign_faith } # add_county_modifier = { # modifier = modifier_religious_understanding_modifier # years = 12 # } # } # else_if = { # limit = { religion != root.religion } # add_county_modifier = { # modifier = invested_in_province_modifier # years = 5 # } # } # } # # show_as_tooltip = { # remove_treasury_or_gold = scope:fp2_2007_different_faith_construction_cost # scope:fp2_2007_free_real_estate = { # begin_create_holding = { # type = castle_holding # refund_cost = { # gold = 95 # } # } # } # add_hook_if_possible_effect = { # TARGET = scope:fp2_2007_castle_holder # TYPE = indebted_hook # YEARS = 8 # } # } # hidden_effect = { # send_interface_toast = { # type = event_toast_effect_good # title = fp2_struggle.2007.t # left_icon = scope:2007_vassal_sponsor # right_icon = scope:fp2_2007_castle_holder # # remove_treasury_or_gold = scope:fp2_2007_different_faith_construction_cost # custom_tooltip = fp2_struggle.2007.a.notif # hidden_effect = { # scope:fp2_2007_free_real_estate = { # begin_create_holding = { # type = castle_holding # refund_cost = { # gold = 95 # } # } # } # add_hook_if_possible_effect = { # General effect # TARGET = scope:fp2_2007_castle_holder # TYPE = indebted_hook # YEARS = 8 # } # } # } # } # } # # option = { # I will build it myself # name = fp2_struggle.2007.c # flavor = fp2_struggle.2007.c.flavor # # trigger = { has_trait = architect } # # duel = { # skill = learning # value = very_high_skill_rating # # 60 = { # desc = fp2_struggle.2007.c.notif.a.desc # compare_modifier = { # value = scope:duel_value # multiplier = 1 # Should be -1 but it has already been balanced # } # # send_interface_toast = { # type = event_toast_effect_bad # title = fp2_struggle.2007.c.notif.a.t # left_icon = root # right_icon = scope:fp2_2007_castle_holder # # add_prestige = major_prestige_loss # reverse_add_opinion = { # target = scope:fp2_2007_scoped_steward # modifier = disappointed_opinion # opinion = -10 # } # } # } # 40 = { # desc = fp2_struggle.2007.c.notif.b.desc # compare_modifier = { # value = scope:duel_value # multiplier = 1 # } # modifier = { # add = fp2_2007_calculate_architect_competence # always = yes # } # # show_as_tooltip = { # remove_treasury_or_gold = scope:fp2_2007_diy_construction_cost # if = { # limit = { exists = scope:fp2_2007_allegedprotocastilean } # add_prestige = minor_prestige_gain # } # # scope:fp2_2007_free_real_estate = { # begin_create_holding = { # type = castle_holding # refund_cost = { # gold = medium_gold_value # } # } # } # add_hook_if_possible_effect = { # General effect # TARGET = scope:fp2_2007_castle_holder # TYPE = indebted_hook # YEARS = 8 # } # } # hidden_effect = { # send_interface_toast = { # type = event_toast_effect_good # title = fp2_struggle.2007.t # left_icon = root # right_icon = scope:fp2_2007_castle_holder # # remove_treasury_or_gold = scope:fp2_2007_diy_construction_cost # if = { # limit = { exists = scope:fp2_2007_allegedprotocastilean } # add_prestige = minor_prestige_gain # } # custom_tooltip = fp2_struggle.2007.a.notif # } # hidden_effect = { # scope:fp2_2007_free_real_estate = { # begin_create_holding = { # type = castle_holding # refund_cost = { # gold = medium_gold_value # } # } # } # add_hook_if_possible_effect = { # TARGET = scope:fp2_2007_castle_holder # TYPE = indebted_hook # YEARS = 8 # } # } # } # } # } # } # # option = { # RoCo # name = fp2_struggle.2007.c.roco # # trigger = { # NOT = { has_trait = architect } # exists = scope:fp2_2007_roco_architect # } # scope:fp2_2007_roco_architect = { # duel = { # skill = learning # value = very_high_skill_rating # # 55 = { # desc = fp2_struggle.2007.c.notif.a.desc # # compare_modifier = { # value = scope:duel_value # multiplier = 1 # } # # root = { # send_interface_toast = { # type = event_toast_effect_bad # title = fp2_struggle.2007.c.notif.a.t # left_icon = scope:fp2_2007_roco_architect # right_icon = scope:fp2_2007_castle_holder # # add_prestige = medium_prestige_loss # } # } # hidden_effect = { add_prestige = medium_prestige_loss } # } # 45 = { # compare_modifier = { # value = scope:duel_value # multiplier = 1 # } # modifier = { # add = fp2_2007_calculate_architect_competence # always = yes # } # # root = { # show_as_tooltip = { # remove_treasury_or_gold = scope:fp2_2007_diy_construction_cost # scope:fp2_2007_free_real_estate = { # begin_create_holding = { # type = castle_holding # refund_cost = { # gold = minor_gold_value # } # } # } # add_hook_if_possible_effect = { # TARGET = scope:fp2_2007_castle_holder # TYPE = indebted_hook # YEARS = 8 # } # } # hidden_effect = { # send_interface_toast = { # type = event_toast_effect_good # title = fp2_struggle.2007.t # left_icon = scope:fp2_2007_roco_architect # right_icon = scope:fp2_2007_castle_holder # # remove_treasury_or_gold = scope:fp2_2007_diy_construction_cost # custom_tooltip = fp2_struggle.2007.a.notif # } # hidden_effect = { # scope:fp2_2007_free_real_estate = { # begin_create_holding = { # type = castle_holding # refund_cost = { # gold = minor_gold_value # } # } # } # add_hook_if_possible_effect = { # TARGET = scope:fp2_2007_castle_holder # TYPE = indebted_hook # YEARS = 8 # } # } # } # } # } # } # } # } # # option = { # Leave it be # name = { # text = { # first_valid = { # triggered_desc = { # trigger = { scope:fp2_2007_castle_holder = root } # desc = fp2_struggle.2007.d.alt # } # desc = fp2_struggle.2007.d # } # } # } # # if = { # limit = { scope:fp2_2007_castle_holder != root } # reverse_add_opinion = { # target = scope:fp2_2007_scoped_steward # modifier = disappointed_opinion # opinion = -15 # } # reverse_add_opinion = { # target = scope:fp2_2007_castle_holder # modifier = disappointed_opinion # opinion = -20 # } # } # if = { # limit = { exists = cp:councillor_marshal } # reverse_add_opinion = { # target = cp:councillor_marshal # modifier = disappointed_opinion # opinion = -10 # } # } # } #} # #################################### ## Misdeeds of The Chaplain ## By Hugo Cortell #################################### #scripted_trigger fp2_struggle_2008_check_actor_eligibility_scripted_trigger = { # is_available_ai_adult = yes # intrigue > low_skill_rating # # NOT = { # has_trait = just # has_trait = compassionate # has_trait = generous # has_trait = content # has_trait = honest # has_relation_soulmate = root # } # # trigger_if = { # Instead of an event weight, we just increase the reqs for friends to dicrease overhead # limit = { # has_relation_friend = root # has_relation_lover = root # } # OR = { # has_trait = greedy # has_trait = deceitful # has_trait = callous # } # } #} # #fp2_struggle.2008 = { # type = character_event # title = fp2_struggle.2008.t # desc = fp2_struggle.2008.desc # # theme = secret # cooldown = { years = 30 } # override_background = { reference = study } # left_portrait = { # character = scope:fps_2008_misdeed_actor # animation = fear # } # right_portrait = { # character = root # animation = disapproval # } # # trigger = { # has_fp2_dlc_trigger = yes # root.top_liege = root # # trigger_if = { # limit = { exists = struggle:iberian_struggle } # struggle:iberian_struggle = { # is_struggle_phase = struggle_iberia_phase_hostility # # } # } # # OR = { # This play changes depending on the actor # AND = { # Chaplain # exists = cp:councillor_court_chaplain # cp:councillor_court_chaplain = { fp2_struggle_2008_check_actor_eligibility_scripted_trigger = yes } # } # AND = { # Steward # exists = cp:councillor_steward # cp:councillor_steward = { fp2_struggle_2008_check_actor_eligibility_scripted_trigger = yes } # } # AND = { # Spymaster # exists = cp:councillor_spymaster # cp:councillor_spymaster = { fp2_struggle_2008_check_actor_eligibility_scripted_trigger = yes } # } # } # } # # immediate = { # random_councillor = { # limit = { # OR = { # this = root.cp:councillor_court_chaplain # this = root.cp:councillor_steward # this = root.cp:councillor_spymaster # } # fp2_struggle_2008_check_actor_eligibility_scripted_trigger = yes # } # weight = { # Weight based on personality. In combination with the scripted trigger this means: Must be greedy, dishonourable, not incompetent. # base = 1 # modifier = { # ai_greed > 0 # factor = 1 # } # modifier = { # ai_honor < 0 # factor = 1 # } # } # save_scope_as = fps_2008_misdeed_actor # } # # scope:fps_2008_misdeed_actor = { # if = { # limit = { has_council_position = councillor_steward } # add_gold = medium_gold_value # Small detail # } # else = { add_gold = minor_gold_value } # # if = { # limit = { # faith = { # exists = religious_head # NOT = { # religious_head = root # religious_head = scope:fps_2008_misdeed_actor # } # } # } # faith.religious_head = { # save_scope_as = fp2_2008_relevant_head_of_faith # } # } # } # root.capital_county = { save_scope_as = fp2_2008_capital } # } # # option = { # Special (thanks QA!) option, denounce publicly (might get killed by mob) # name = fp2_struggle.2008.d # flavor = fp2_struggle.2008.d.flavor # trigger = { # OR = { # has_trait = sadistic # has_trait = schemer # has_trait = peasant_leader # has_trait = augustus # has_trait = contrite # has_trait = august # has_trait = diplomat # } # } # stress_impact = { # just = medium_stress_impact_gain # trusting = minor_stress_impact_gain # temperate = minor_stress_impact_gain # patient = minor_stress_impact_gain # shy = minor_stress_impact_gain # compassionate = minor_stress_impact_gain # } # # every_powerful_vassal = { # limit = { faith = root.faith } # custom = fp2_every_major_vassal_notifier # add_opinion = { # target = root # modifier = cruelty_opinion # opinion = -20 # } # } # # random_list = { # 85 = { # hidden_effect = { # scope:fps_2008_misdeed_actor = { save_temporary_scope_as = assassin } # Used for loc # send_interface_toast = { # type = event_toast_effect_good # title = char_interaction.0050.a # left_icon = scope:fps_2008_misdeed_actor # # capital_county = { # add_county_modifier = { # modifier = governance_1054_satisfied_peasants_modifier # years = 15 # } # } # scope:assassin = { custom_tooltip = hold_court.8221.imprison_alone } # This uses that loc # hidden_effect = { # rightfully_imprison_character_effect = { # The autoformatter was a bit (very, very) fiddly with this # TARGET = scope:fps_2008_misdeed_actor # IMPRISONER = root # } # } # } # } # scope:fps_2008_misdeed_actor = { # add_opinion = { # target = root # modifier = publicly_ridiculed # opinion = -30 # } # } # show_as_tooltip = { # rightfully_imprison_character_effect = { # TARGET = scope:fps_2008_misdeed_actor # IMPRISONER = root # } # capital_county = { # add_county_modifier = { # modifier = governance_1054_satisfied_peasants_modifier # years = 15 # } # } # } # } # 15 = { # scope:fps_2008_misdeed_actor = { # add_opinion = { # target = root # modifier = publicly_ridiculed # opinion = -80 # } # } # if = { # limit = { has_trait = sadistic } # Once again, rewarding physcos with little details # send_interface_toast = { # type = event_toast_effect_good # title = char_interaction.0050.a # left_icon = scope:fps_2008_misdeed_actor # # scope:fps_2008_misdeed_actor = { death = { death_reason = death_beaten_by_mob } } # capital_county = { # add_county_modifier = { # modifier = governance_1054_satisfied_peasants_modifier # years = 30 # } # } # } # } # else = { # send_interface_toast = { # type = event_toast_effect_bad # title = char_interaction.0050.a # left_icon = scope:fps_2008_misdeed_actor # # scope:fps_2008_misdeed_actor = { death = { death_reason = death_beaten_by_mob } } # capital_county = { # add_county_modifier = { # modifier = governance_1054_satisfied_peasants_modifier # years = 30 # } # } # } # } # } # } # } # # option = { # Imprison chaplain outright # name = fp2_struggle.2008.a # stress_impact = { trusting = minor_stress_impact_gain } # # rightfully_imprison_character_effect = { # TARGET = scope:fps_2008_misdeed_actor # IMPRISONER = root # } # if = { # limit = { # scope:fps_2008_misdeed_actor = cp:councillor_court_chaplain # exists = scope:fp2_2008_relevant_head_of_faith # } # scope:fps_2008_misdeed_actor.faith = { # religious_head = { # add_opinion = { # target = root # modifier = rude_opinion # opinion = -10 # } # } # } # } # # scope:fp2_2008_capital = { # add_county_modifier = { # modifier = fp2_improved_administrative_checks_modifier # years = 15 # } # } # # ai_chance = { # base = 50 # ai_value_modifier = { # ai_honor = 0.85 # ai_zeal = 0.3 # } # } # } # # # # Threaten, gain hook and modifier for work harder # option = { # Combined general output (threaten into teaching you how to forge like they do) # name = fp2_struggle.2008.b.a # flavor = fp2_struggle.2008.b.flavor # stress_impact = { # just = minor_stress_impact_gain # honest = medium_stress_impact_gain # } # # send_interface_toast = { # type = event_toast_effect_good # title = yearly_0001_improved_intrigue # left_icon = ROOT # right_icon = scope:fps_2008_misdeed_actor # # add_intrigue_lifestyle_xp = major_lifestyle_experience # Originally it gave you the accomplished forger perk. Was removed because it let you bypass the learning tree. # } # reverse_add_opinion = { # target = scope:fps_2008_misdeed_actor # modifier = extorted_me_opinion # opinion = -25 # years = 10 # } # # scope:fps_2008_misdeed_actor = { # progress_towards_rival_effect = { # REASON = rival_defrauded_realm # CHARACTER = root # OPINION = 0 # } # } # # if = { # Has its own notification # limit = { # can_add_hook = { # target = scope:fps_2008_misdeed_actor # type = threat_hook # } # } # add_hook = { # target = scope:fps_2008_misdeed_actor # type = threat_hook # years = 7 # } # } # # ai_chance = { base = 0 } # AI should never use these OP options # } # # # option = { # Go hand in hand stealing state money # name = fp2_struggle.2008.c # flavor = fp2_struggle.2008.c.flavor # # stress_impact = { # just = medium_stress_impact_gain # zealous = minor_stress_impact_gain # } # # scope:fp2_2008_capital = { # add_county_modifier = { # modifier = county_corruption_inefficient_tax_collection_modifier # years = 15 # } # } # # scope:fps_2008_misdeed_actor = { # if = { # limit = { # can_add_hook = { # target = root # type = minor_crime_accomplice_hook # } # } # # if = { # limit = { root = { scope:fps_2008_misdeed_actor = cp:councillor_steward } } # CPs cannot have CPs, therefore must be rescoped into root to access # pay_short_term_gold = { # target = root # gold = minor_gold_value # } # } # add_hook = { # target = root # type = minor_crime_accomplice_hook # years = 15 # } # } # } # if = { # limit = { # can_add_hook = { # target = scope:fps_2008_misdeed_actor # type = minor_crime_accomplice_hook # } # } # add_hook = { # target = scope:fps_2008_misdeed_actor # type = minor_crime_accomplice_hook # years = 15 # } # } # add_gold = medium_gold_value # # ai_chance = { # base = 50 # ai_value_modifier = { # ai_greed = 0.95 # ai_energy = 0.25 # } # } # } #} # #################################### ## Thiefs of Garduna / Catching Thieves of Myth ## By Hugo Cortell #################################### #fp2_struggle.2009 = { # type = character_event # title = fp2_struggle.2009.t # desc = fp2_struggle.2009.desc # # theme = intrigue_skulduggery_focus # cooldown = { years = 150 } # Not actually necessary but adding anyway # override_background = { reference = corridor_night } # left_portrait = { # character = scope:fp2_2009_marshal # animation = marshal # outfit_tags = { emotion_angry_decal } # WAD, the decal does render and functions as intended # } # lower_left_portrait = { # character = root # } # right_portrait = { # character = scope:fp2_2009_garduna_young_thief # animation = fear # hide_info = yes # outfit_tags = { # mena_stealth_hood # religious_zoroastrian_high_clothes # } # } # # trigger = { # is_ai = no # has_fp2_dlc_trigger = yes # top_liege = this # exists = cp:councillor_marshal # fp2_character_any_involvement_iberian_struggle_trigger = yes # # exists = struggle:iberian_struggle # exists = primary_title # struggle:iberian_struggle = { # any_involved_ruler = { # Redundancy check in response to errors on automated tests, should (theoretically) not be necessary # this != root # Alternative point of failure could be "this" being null, but that would cause errors outside my event. # exists = primary_title # top_liege = this # primary_title = { is_mercenary_company = no } # is_landed = yes # count > 1 # Redundancy check in response to more errors on nigtly. Now on the bottom of the block. Reduced by one to total 3. # } # # OR = { # is_struggle_phase = struggle_iberia_phase_opportunity # is_struggle_phase = struggle_iberia_phase_conciliation # } # } # # realm_size > 3 # Needed to get all the realms where corruption can happen # } # # weight_multiplier = { # base = 0.5 # modifier = { # add = 0.5 # is_ai = no # } # } # # immediate = { # struggle:iberian_struggle = { # Struggle existance is already verified by event trigger # random_involved_ruler = { # limit = { # this != root # Otherwise you might be the other involved ruler # exists = primary_title # top_liege = this # primary_title = { is_mercenary_company = no } # is_landed = yes # } # save_scope_as = fp2_2009_involved_ruler # } # } # cp:councillor_marshal = { save_scope_as = fp2_2009_marshal } # create_character = { # age = { 16 27 } # location = root.location # gender_female_chance = 30 # trait = education_intrigue_2 # trait = shy # trait = honest # trait = paranoid # random_traits = yes # diplomacy = { 2 7 } # martial = { 3 6 } # stewardship = { 4 7 } # intrigue = { 8 22 } # culture = culture:basque # religion = religion:catholic_religion # dynasty = none # after_creation = { add_gold = minor_gold_value } # # save_scope_as = fp2_2009_garduna_young_thief # } # # if = { # limit = { # exists = global_var:fp2_struggle_2009_thief_king_char # global_var:fp2_struggle_2009_thief_king_char = { is_available_ai_adult = yes } # } # global_var:fp2_struggle_2009_thief_king_char = { save_scope_as = fp2_2009_garduna_guild_master } # } # else = { # create_character = { # Guild Master # age = { 24 52 } # location = scope:fp2_2009_involved_ruler.location # gender_female_chance = { # if = { # limit = { scope:fp2_2009_involved_ruler.location.county.faith = { has_doctrine = doctrine_gender_male_dominated } } # add = 0 # } # else_if = { # limit = { scope:fp2_2009_involved_ruler.location.county.faith = { has_doctrine = doctrine_gender_female_dominated } } # add = 100 # } # else = { # add = 50 # } # } # trait = education_intrigue_4 # trait = deceitful # trait = shrewd # random_traits = yes # diplomacy = { 6 16 } # martial = { 8 15 } # stewardship = { 10 17 } # intrigue = { 8 16 } # culture = culture:basque # religion = religion:catholic_religion # dynasty = none # after_creation = { # add_gold = major_gold_value # add_prestige = major_prestige_gain # add_piety = minor_piety_gain # random = { # chance = 10 # add_trait = one_eyed # } # random = { # chance = 10 # add_trait = one_legged # } # random = { # chance = 5 # add_trait = schemer # } # random = { # chance = 33 # add_trait = wild_oat # } # if = { # limit = { is_female = yes } # give_nickname = nick_the_Queen_of_Thieves # } # else = { give_nickname = nick_the_King_of_Thieves } # } # # save_scope_as = fp2_2009_garduna_guild_master # } # } # set_global_variable = { # name = fp2_struggle_2009_thief_king_char # value = scope:fp2_2009_garduna_guild_master # } # # if = { # limit = { # any_court_position_holder = { # type = executioner_court_position # is_available_ai_adult = yes # } # } # random_court_position_holder = { # type = executioner_court_position # save_scope_as = fp2_2009_roco_executioner # } # } # # # Get locations # root.capital_county = { save_scope_as = fp2_2009_capital_county } # scope:fp2_2009_involved_ruler.capital_county = { save_scope_as = fp2_2009_involved_capital_county } # random_sub_realm_county = { # limit = { this != scope:fp2_2009_capital_county } # save_scope_as = fp2_2009_random_flavor_county_ichi # } # random_sub_realm_county = { # limit = { # NOT = { # this = scope:fp2_2009_capital_county # this = scope:fp2_2009_random_flavor_county_ichi # } # } # save_scope_as = fp2_2009_random_flavor_county_ni # } # # # Logic for "Hire the guild" option, prevents the AI from acting un-wise # if = { # Player has access by default # limit = { is_ai = no } # save_scope_as = fp2_2009_hire_guild_unlocked # } # else_if = { # Forbid AI on AI agression # limit = { # NOT = { # is_ai = yes # scope:fp2_2009_involved_ruler = { is_ai = yes } # } # } # save_scope_as = fp2_2009_hire_guild_unlocked # } # else_if = { # Ensure AI on Player agression is justified # limit = { # is_ai = yes # scope:fp2_2009_involved_ruler = { # is_ai = no # save_temporary_opinion_value_as = { # name = opinion_of_root_temp_value # target = root # } # } # # # AI behaviour must be on brand with personality and/or circumstance to ensure narrative cohesion # scope:opinion_of_root_temp_value < -10 # OR = { # has_trait = deceitful # has_trait = wrathful # has_trait = ambitious # has_trait = vengeful # has_trait = arrogant # has_trait = callous # is_at_war_with = scope:fp2_2009_involved_ruler # has_relation_nemesis = scope:fp2_2009_involved_ruler # } # } # save_scope_as = fp2_2009_hire_guild_unlocked # } # } # # option = { # BECOME THE KING OF PIRA- err THIEVES!!1! # name = fp2_struggle.2009.a # flavor = fp2_struggle.2009.a.flavor # trigger = { # NOT = { age < 14 } # OR = { # has_trait = gallant # has_trait = adventurer # has_trait = berserker # has_trait = peasant_leader # has_trait = viking # has_trait = reaver # prowess > very_high_skill_rating # has_trait = lunatic_genetic # } # } # scope:fp2_2009_marshal = { # add_opinion = { # target = root # modifier = impressed_opinion # opinion = 20 # } # } # trigger_event = { # id = fp2_struggle.2010 # days = { 6 31 } # } # # stress_impact = { # compassionate = minor_stress_impact_gain # craven = minor_stress_impact_gain # content = medium_stress_impact_gain # eccentric = medium_stress_impact_loss # } # # ai_chance = { # base = 8 # Prevents too many kings of thieves from showing up # modifier = { # add = 25 # has_trait = just # } # ai_value_modifier = { # ai_boldness = 0.7 # ai_compassion = -0.1 # ai_greed = 0.3 # ai_energy = 0.5 # ai_honor = -0.1 # ai_rationality = -0.2 # ai_sociability = 0.3 # ai_vengefulness = 0.5 # } # } # } # # option = { # Demand info # name = fp2_struggle.2009.b # # hidden_effect = { # scope:fp2_2009_garduna_young_thief = { add_trait = depressed_1 } # save_scope_as = fp2_2009_thief_permanence_scope # } # # every_sub_realm_county = { # limit = { # county_control < 100 # } # custom = all_realm_county # change_county_control = 5 # } # add_courtier = scope:fp2_2009_garduna_young_thief # scope:fp2_2009_garduna_young_thief = { # custom_tooltip = fp2_struggle.2009.b.blues # add_opinion = { # target = root # modifier = was_spared # opinion = 20 # } # } # # stress_impact = { # wrathful = minor_stress_impact_gain # vengeful = minor_stress_impact_gain # sadistic = minor_stress_impact_gain # } # ai_chance = { # base = 45 # ai_value_modifier = { # ai_boldness = -0.1 # ai_compassion = 0.65 # ai_honor = 0.2 # ai_rationality = 0.9 # } # } # # hidden_effect = { # save_scope_value_as = { # name = fp2_2009_event_outcome # value = flag:cleared_out # } # trigger_event = { # id = fp2_struggle.2021 # days = { 450 3000 } # } # } # } # # option = { # Ask for a cut # name = fp2_struggle.2009.c # trigger = { # is_ai = no # Option disabled for AI rulers # NOR = { # has_trait = gallant # has_trait = adventurer # has_trait = berserker # has_trait = peasant_leader # has_trait = viking # has_trait = reaver # prowess > very_high_skill_rating # has_trait = lunatic_genetic # } # } # # add_gold = medium_gold_value # scope:fp2_2009_capital_county = { add_thieves_guild_modifier_effect = yes } # scope:fp2_2009_random_flavor_county_ichi = { change_county_control = -15 } # scope:fp2_2009_random_flavor_county_ni = { change_county_control = -15 } # # scope:fp2_2009_marshal = { # if = { # limit = { has_trait = just } # add_opinion = { # target = root # modifier = disgusted_opinion # opinion = -35 # } # } # else = { # if = { # limit = { has_trait = greedy } # add_opinion = { # target = root # modifier = respect_opinion # Greedy people respect "the grind" # opinion = 10 # } # } # else = { # add_opinion = { # target = root # modifier = disappointed_opinion # opinion = -15 # } # } # } # } # # stress_impact = { # generous = medium_stress_impact_gain # content = minor_stress_impact_gain # just = major_stress_impact_gain # } # # hidden_effect = { # save_scope_value_as = { # name = fp2_2009_event_outcome # value = flag:paid_off # } # trigger_event = { # id = fp2_struggle.2021 # days = { 450 3000 } # } # } # } # # option = { # Hire the guild to mess with a foreign ruler (work for me) # name = fp2_struggle.2009.d # trigger = { exists = scope:fp2_2009_hire_guild_unlocked } # Prevents AI from acting un-intelligently # # scope:fp2_2009_involved_capital_county = { add_thieves_guild_modifier_effect = yes } # pay_short_term_gold = { # target = scope:fp2_2009_garduna_young_thief # gold = minor_gold_value # # } # # # Notifies the player on the recieving end of an event outcome that involves them. # scope:fp2_2009_involved_ruler = { # Hopefuly this will encoureage interaction in MP games. # trigger_event = { # id = fp2_struggle.2012 # days = { 1 2 } # } # } # # stress_impact = { # brave = minor_stress_impact_gain # honest = medium_stress_impact_gain # compassionate = minor_stress_impact_gain # } # ai_chance = { # base = 25 # modifier = { # add = 45 # is_at_war_with = scope:fp2_2009_involved_ruler # } # modifier = { # add = 100 # hatred can cloud the mind # has_relation_nemesis = scope:fp2_2009_involved_ruler # } # ai_value_modifier = { # ai_boldness = 0.7 # ai_compassion = -0.2 # ai_greed = -0.1 # ai_honor = -0.4 # ai_rationality = 0.7 # ai_vengefulness = 0.95 # } # } # # hidden_effect = { # save_scope_value_as = { # name = fp2_2009_event_outcome # value = flag:worked_together # } # trigger_event = { # id = fp2_struggle.2021 # days = { 450 3000 } # } # } # } # # option = { # Gift the thieve's the head to the foreign ruler # name = fp2_struggle.2009.e # # scope:fp2_2009_garduna_young_thief = { # if = { # limit = { exists = scope:fp2_2009_roco_executioner } # ROCO flaire # death = { # death_reason = death_execution # killer = scope:fp2_2009_roco_executioner # } # } # else = { # death = { # death_reason = death_execution # killer = scope:fp2_2009_marshal # } # } # save_scope_as = fp2_2009_thief_permanence_scope # } # custom_tooltip = fp2_struggle.2009.e.a # hidden_effect = { # random_list = { # 55 = {} # nothing happens # 45 = { # random_list = { # 33 = { scope:fp2_2009_random_flavor_county_ichi = { change_county_control = -15 } } # 33 = { scope:fp2_2009_random_flavor_county_ni = { change_county_control = -15 } } # 33 = { scope:fp2_2009_capital_county = { change_county_control = -15 } } # } # } # } # } # # scope:fp2_2009_involved_ruler = { # if = { # limit = { # OR = { # has_trait = wrathful # has_trait = vengeful # has_trait = sadistic # } # } # add_opinion = { # target = root # modifier = gift_opinion # opinion = 40 # } # progress_towards_friend_effect = { # very nice # REASON = friend_gave_severed_head # CHARACTER = root # OPINION = 0 # } # } # else = { # add_opinion = { # target = root # modifier = gift_opinion # nice # opinion = 30 # } # } # } # # # Notifies the player on the recieving end that they have recieved a delightful gift # root = { save_scope_as = fp2_2009_has_gifted_head } # scope:fp2_2009_involved_ruler = { # trigger_event = { # id = fp2_struggle.2012 # days = { 1 2 } # } # } # # stress_impact = { # compassionate = medium_stress_impact_gain # forgiving = minor_stress_impact_gain # } # ai_chance = { # base = 35 # ai_value_modifier = { # ai_boldness = 0.2 # ai_compassion = -0.45 # ai_honor = 0.8 # ai_rationality = 0.1 # ai_sociability = 0.5 # } # } # # hidden_effect = { # save_scope_value_as = { # name = fp2_2009_event_outcome # value = flag:lobbed_head # } # trigger_event = { # id = fp2_struggle.2021 # days = { 450 3000 } # } # } # } # # option = { # Debug option to quickly trigger 2021 # name = debug_generic_option # trigger = { is_developer_testing_trigger = yes } # # custom_tooltip = debug_generic_option_shortened_trigger_can_disable # hidden_effect = { # save_scope_value_as = { # name = fp2_2009_event_outcome # value = flag:cleared_out # modify this with the flag you need # } # trigger_event = { id = fp2_struggle.2021 } # } # } # # after = { # if = { # limit = { NOT = { exists = scope:fp2_2009_thief_permanence_scope } } # scope:fp2_2009_garduna_young_thief = { silent_disappearance_effect = yes } # } # } #} # #fp2_struggle.2010 = { # 2009 duel follow-up # type = character_event # title = fp2_struggle.2010.t # desc = fp2_struggle.2010.desc # trigger = { scope:fp2_2009_garduna_guild_master = { is_available_ai_adult = yes } } # # theme = battle # override_background = { reference = corridor_night } # left_portrait = { # character = root # animation = throne_room_one_handed_passive_1 # } # right_portrait = { # character = scope:fp2_2009_garduna_guild_master # animation = war_over_win # outfit_tags = { # western_stealth_hood # sub_saharan_high_nobility # mena_war_legwear # } # } # # option = { # Duel # name = fp2_struggle.2010.b # # root = { save_scope_as = fp2_2010_root_in_duel } # Used in invalidation check for player's death # scope:fp2_2009_garduna_guild_master = { # set_variable = { # name = signature_weapon # value = flag:dagger # } # } # configure_start_single_combat_effect = { # SC_INITIATOR = root # SC_ATTACKER = root # SC_DEFENDER = scope:fp2_2009_garduna_guild_master # FATALITY = always # FIXED = no # LOCALE = temple # OUTPUT_EVENT = fp2_struggle.2011 # INVALIDATION_EVENT = fp2_struggle.2011 # If the thief dies, you still win. If you die, 2011 runs a check and fails to trigger. # } # # ai_chance = { # Stress for craven was already taken when setting off in this quest # base = 50 # ai_value_modifier = { ai_boldness = 0.5 } # } # } # # option = { # Pay protection money # name = fp2_struggle.2010.c # # pay_treasury_or_gold = { # Cowardice tax (costs more than hireing them) # target = scope:fp2_2009_garduna_guild_master # value = major_treasury_or_gold_value # } # # stress_impact = { # brave = major_stress_impact_gain # just = major_stress_impact_gain # arrogant = major_stress_impact_gain # vengeful = medium_stress_impact_gain # } # ai_chance = { # base = 50 # modifier = { # Nobody wants to be indebted to a thief # add = -25 # gold < major_gold_value # } # ai_value_modifier = { ai_greed = -0.5 } # } # # hidden_effect = { # save_scope_value_as = { # name = fp2_2009_event_outcome # value = flag:paid_off # } # trigger_event = { # id = fp2_struggle.2021 # days = { 450 3000 } # } # } # } #} # #fp2_struggle.2011 = { # You become the KING OF THIEVES # hidden = yes # immediate = { # if = { # limit = { # exists = scope:fp2_2011_reuse_gate # root = scope:fp2_2010_root_in_duel # } # send_interface_toast = { # type = event_toast_effect_good # desc = fp2_struggle.2011.desc # title = fp2_struggle.2011.a # right_icon = ROOT # # if = { # Standard practice from EP1 onwards dictates that we ought not to overwrite positive nicknames (?) # limit = { # OR = { # has_any_nickname = no # has_bad_nickname = yes # } # } # give_nickname = nick_the_Thief_Slayer # } # add_prestige = major_prestige_gain # add_gold = minor_gold_value # } # } # else = { # save_scope_as = fp2_2011_reuse_gate # trigger_event = { # id = fp2_struggle.2011 # days = 1 # } # } # } #} # #fp2_struggle.2012 = { # Displays letter notifying involved player/character that an action taken by 2009's root is affecting them # type = letter_event # sender = scope:fp2_2012_sender # Animation is WAD # opening = { # desc = { # first_valid = { # triggered_desc = { # trigger = { exists = scope:fp2_2009_has_gifted_head } # desc = fp2_struggle.2012.t.alt # } # desc = fp2_struggle.2012.t # } # } # } # desc = { # first_valid = { # triggered_desc = { # trigger = { exists = scope:fp2_2009_has_gifted_head } # desc = fp2_struggle.2012.desc.alt # } # desc = fp2_struggle.2012.desc # } # } # # immediate = { # # Logic for deciding who is the author of the letter # if = { # limit = { exists = scope:fp2_2009_has_gifted_head } # If the event is the alt version where you gift the head # scope:fp2_2009_has_gifted_head = { save_scope_as = fp2_2012_sender } # } # else_if = { # limit = { exists = cp:councillor_spymaster } # Else cycle through possible chancellors # cp:councillor_spymaster = { save_scope_as = fp2_2012_sender } # } # else_if = { # limit = { exists = cp:councillor_marshal } # cp:councillor_marshal = { save_scope_as = fp2_2012_sender } # } # else_if = { # limit = { exists = cp:councillor_court_chaplain } # cp:councillor_court_chaplain = { save_scope_as = fp2_2012_sender } # } # else = { root = { save_scope_as = fp2_2012_sender } } # If all fails, you wrote the report yourself, about yourself, for yourself. # } # # option = { # name = fp2_struggle.2012.a # trigger = { NOT = { exists = scope:fp2_2009_has_gifted_head } } # # show_as_tooltip = { scope:fp2_2009_involved_capital_county = { add_thieves_guild_modifier_effect = yes } } # Has already happened, only to display info # } # # option = { # name = fp2_struggle.2012.a.alt # trigger = { exists = scope:fp2_2009_has_gifted_head } # # scope:fp2_2009_involved_capital_county = { change_county_control = 10 } # } #} # #################################### ## The Secret to Freedom ## By Hugo Cortell #################################### #fp2_struggle.2013 = { # type = character_event # title = fp2_struggle.2013.t # desc = fp2_struggle.2013.desc # theme = secret # cooldown = { years = 2 } # override_background = { # trigger = { scope:fp2_2013_prisoner_with_a_secret = { is_in_prison_type = house_arrest } } # reference = sitting_room # } # override_background = { # trigger = { always = yes } # reference = dungeon # } # left_portrait = { # character = root # animation = scheme # } # right_portrait = { # character = scope:fp2_2013_prisoner_with_a_secret # triggered_animation = { # trigger = { scope:fp2_2013_prisoner_with_a_secret = { is_in_prison_type = house_arrest } } # animation = beg # } # animation = prisondungeon # override_imprisonment_visuals = yes # } # # trigger = { # has_fp2_dlc_trigger = yes # any_prisoner = { # save_temporary_scope_as = temp_prisoner_with_secret # Prevents prisoner from revealing their own secret, which would be cool, but would require new loc # any_known_secret = { # secret_owner = { # this != scope:temp_prisoner_with_secret # top_liege = this # fp2_character_any_involvement_iberian_struggle_trigger = yes # } # NOT = { is_known_by = root } # } # } # } # # immediate = { # random_prisoner = { # limit = { # save_temporary_scope_as = temp_prisoner_with_secret # any_known_secret = { # secret_owner = { # this != scope:temp_prisoner_with_secret # top_liege = this # fp2_character_any_involvement_iberian_struggle_trigger = yes # } # NOT = { is_known_by = root } # } # } # save_scope_as = fp2_2013_prisoner_with_a_secret # every_known_secret = { # limit = { # secret_owner = { # this != scope:fp2_2013_prisoner_with_a_secret # top_liege = this # } # NOT = { is_known_by = root } # } # secret_owner = { save_scope_as = fp2_2013_secret_owner } # save_scope_as = fp2_2013_secret_to_tell # } # # stress_impact = { # brave = medium_stress_impact_gain # gallant = medium_stress_impact_gain # confider = major_stress_impact_gain # } # } # } # # option = { # Agree # name = fp2_struggle.2013.a # # show_as_tooltip = { # custom_tooltip = fp2_struggle.2013.a.a # scope:fp2_2013_prisoner_with_a_secret = { release_from_prison = yes } # } # hidden_effect = { # send_interface_toast = { # type = event_toast_effect_good # title = witch.2010.message # left_icon = ROOT # right_icon = scope:fp2_2013_secret_owner # # scope:fp2_2013_secret_to_tell = { reveal_to = root } # scope:fp2_2013_prisoner_with_a_secret = { release_from_prison = yes } # } # } # # ai_chance = { # base = 15 # ai_value_modifier = { # ai_boldness = -0.1 # ai_compassion = 0.2 # ai_honor = 0.1 # ai_rationality = 0.4 # ai_sociability = 0.1 # ai_vengefulness = 0.1 # } # } # } # # option = { # Torture # name = fp2_struggle.2013.b # # add_dread = minor_dread_gain # duel = { # skill = intrigue # value = medium_skill_rating # # 40 = { # Success # modifier = { # add = intrigue # Your intrigue level should make up for most of the 10 missing points to make this a 50 50 # always = yes # } # modifier = { # add = 15 # Enjoy your job and it wont feel like work! # has_trait = sadistic # } # modifier = { # add = 35 # has_trait = torturer # } # modifier = { # add = 5 # Iberia is home to many plants you should not rub against your skin, great for tickle-torture :D # has_trait = lifestyle_herbalist # } # modifier = { # add = 5 # scope:fp2_2013_prisoner_with_a_secret = { has_trait = lazy } # } # modifier = { # add = 15 # Quickly changes their mind about wanting to resist torture # scope:fp2_2013_prisoner_with_a_secret = { has_trait = fickle } # } # # custom_tooltip = fp2_struggle.2013.a.a # hidden_effect = { # send_interface_toast = { # type = event_toast_effect_good # title = witch.2010.message # left_icon = ROOT # right_icon = scope:fp2_2013_secret_owner # # scope:fp2_2013_secret_to_tell = { reveal_to = root } # } # } # } # 60 = { # You fail # desc = fp2_struggle.2013.b.b # modifier = { # add = scope:fp2_2013_prisoner_with_a_secret.prowess # This is a battle of your skill in torture (intrigue) against the will of your oponent (prowess, usually lower) # always = yes # } # modifier = { # add = 5 # scope:fp2_2013_prisoner_with_a_secret = { has_trait = brave } # } # modifier = { # add = 5 # Being stubborn is as much a blessing as it is a curse, in this case, it is the former # scope:fp2_2013_prisoner_with_a_secret = { has_trait = stubborn } # } # modifier = { # add = 5 # scope:fp2_2013_prisoner_with_a_secret = { has_trait = diligent } # } # modifier = { # add = 5 # They know nothing good can come from revealing information, what will the bargain with otherwise? # scope:fp2_2013_prisoner_with_a_secret = { has_trait = paranoid } # } # modifier = { # add = 2 # Maybe god is still on your side? Maybe it is a test? # scope:fp2_2013_prisoner_with_a_secret = { has_trait = zealous } # } # modifier = { # add = 2 # scope:fp2_2013_prisoner_with_a_secret = { has_trait = callous } # } # modifier = { # add = 15 # I imagine this is sort of a lalatina moment # scope:fp2_2013_prisoner_with_a_secret = { has_trait = flagellant } # } # modifier = { # add = 10 # They are used to not revealing info under preassure, though torture is a bit more than they are used to... # scope:fp2_2013_prisoner_with_a_secret = { has_trait = confider } # } # # send_interface_toast = { # type = event_toast_effect_bad # title = ease_tension_toast.failure # left_icon = ROOT # right_icon = scope:fp2_2013_prisoner_with_a_secret # } # } # } # reverse_add_opinion = { # target = scope:fp2_2013_prisoner_with_a_secret # modifier = tortured_me # opinion = -60 # 15 point reduction because there was a weak justification # years = 30 # } # scope:fp2_2013_prisoner_with_a_secret = { # add_character_modifier = { # modifier = recently_tortured # years = 5 # } # } # # stress_impact = { # compassionate = major_stress_impact_gain # just = medium_stress_impact_gain # forgiving = medium_stress_impact_gain # } # ai_chance = { # base = 15 # modifier = { # add = 25 # has_trait = torturer # } # modifier = { # add = 15 # has_trait = sadistic # } # ai_value_modifier = { # ai_boldness = 0.8 # ai_compassion = -0.5 # ai_greed = 0.6 # ai_honor = -0.9 # ai_vengefulness = 0.2 # } # } # } # # option = { # Send as gift # name = fp2_struggle.2013.c # flavor = fp2_struggle.2013.c.desc # trigger = { scope:fp2_2013_secret_owner = { is_ai = yes } } # # custom_tooltip = fp2_struggle.2013.c.a # scope:fp2_2013_prisoner_with_a_secret = { release_from_prison = yes } # trigger_event = { # id = fp2_struggle.2014 # days = { 1 4 } # } # # ai_chance = { # base = 5 # ai_value_modifier = { # ai_boldness = -0.1 # ai_compassion = 0.2 # ai_greed = -0.5 # ai_energy = -0.1 # ai_honor = 0.3 # ai_sociability = 0.3 # ai_vengefulness = -0.2 # ai_zeal = -0.1 # } # } # } # # option = { # Dismiss # name = fp2_struggle.2013.d # # random = { # chance = 5 # modifier = { # add = 10 # has_trait = depressed # } # modifier = { # add = 5 # health < fine_health # } # show_as_tooltip = { custom_tooltip = fp2_struggle.2013.a.a } # hidden_effect = { # if = { # limit = { is_ai = no } # send_interface_toast = { # type = event_toast_effect_good # title = witch.2010.message # left_icon = ROOT # right_icon = scope:fp2_2013_secret_owner # # scope:fp2_2013_secret_to_tell = { reveal_to = root } # } # } # } # } # # ai_chance = { # base = 65 # ai_value_modifier = { # ai_boldness = -0.2 # ai_greed = -0.15 # ai_energy = -0.1 # ai_honor = 0.6 # ai_sociability = 0.1 # ai_vengefulness = -0.1 # } # } # } #} # #fp2_struggle.2014 = { # type = letter_event # sender = scope:fp2_2013_secret_owner # opening = fp2_struggle.2014.t # desc = { # desc = fp2_struggle.2014.desc.start # first_valid = { # triggered_desc = { # trigger = { scope:fp2_2014_ai_secret_outcome = flag:prison } # desc = fp2_struggle.2014.desc.heavy.outcome.prison # } # triggered_desc = { # trigger = { scope:fp2_2014_ai_secret_outcome = flag:death } # desc = fp2_struggle.2014.desc.heavy.outcome.death # } # desc = fp2_struggle.2014.desc.light # } # } # # trigger = { # scope:fp2_2013_secret_owner = { is_available_ai_adult = yes } # scope:fp2_2013_prisoner_with_a_secret = { is_available_ai_adult = yes } # } # # on_trigger_fail = { # if = { # limit = { # Fallback - foreign ruler has died! # NOT = { # scope:fp2_2013_secret_owner = { # is_alive = yes # is_available_ai_adult = yes # } # } # } # send_interface_toast = { # type = event_death_neutral # desc = death_management.1007.t # left_icon = scope:fp2_2013_secret_owner # } # } # if = { # limit = { # Fallback - prisoner has died! # NOT = { scope:fp2_2013_prisoner_with_a_secret = { is_alive = yes } } # } # send_interface_toast = { # scope:fp2_2013_prisoner_with_a_secret = { save_temporary_scope_as = dead_character } # type = event_death_neutral # desc = death_management.1006.desc # left_icon = scope:fp2_2013_prisoner_with_a_secret # } # } # } # # immediate = { # LOGIC FOR AI RESPONSE # save_scope_value_as = { # Calculate how "strong" a secret is # name = fp2_2014_secret_strength # value = { # value = 0 # if = { # limit = { scope:fp2_2013_secret_to_tell = { is_criminal_for = scope:fp2_2013_secret_owner } } # add = 10 # } # if = { # limit = { scope:fp2_2013_secret_to_tell = { is_shunned_for = scope:fp2_2013_secret_owner } } # add = 5 # } # if = { # limit = { scope:fp2_2013_secret_to_tell = { secret_is_always_interesting_trigger = yes } } # add = 5 # } # } # } # if = { # IS THIS SECRET A THREAT TO ME? # limit = { scope:fp2_2014_secret_strength >= 10 } # scope:fp2_2013_secret_owner = { # hidden_effect = { # add_opinion = { # target = scope:fp2_2013_prisoner_with_a_secret # modifier = betrayed_me_opinion # opinion = -50 # } # } # add_opinion = { # target = root # modifier = did_not_tell_my_secret # opinion = 45 # } # progress_towards_friend_effect = { # REASON = friend_kept_my_secret # CHARACTER = root # OPINION = 0 # } # if = { # limit = { # has_dlc_feature = court_artifacts # any_character_artifact = { # NOT = { has_variable = historical_unique_artifact } # artifact_high_rarity_trigger = yes # artifact_can_be_gift_to_trigger = { RECIPIENT = root } # } # } # random_character_artifact = { # limit = { # NOT = { has_variable = historical_unique_artifact } # artifact_high_rarity_trigger = yes # artifact_can_be_gift_to_trigger = { RECIPIENT = root } # } # set_owner = root # If it breaks, use set_artifact_owner # } # } # # save_opinion_value_as = { # name = fp2_2014_opinion_of_swine # target = scope:fp2_2013_prisoner_with_a_secret # } # } # if = { # YES, AND I MUST HIDE IT (prison outcome) # limit = { # scope:fp2_2013_secret_owner = { # NAND = { # has_trait = paranoid # ai_compassion < 30 # } # } # } # save_scope_value_as = { # name = fp2_2014_ai_secret_outcome # value = flag:prison # } # scope:fp2_2013_secret_owner = { # rightfully_imprison_character_effect = { # TARGET = scope:fp2_2013_prisoner_with_a_secret # IMPRISONER = scope:fp2_2013_secret_owner # } # } # } # else = { # YES, AND I WILL TAKE NO CHANCES (execution outcome) # save_scope_value_as = { # name = fp2_2014_ai_secret_outcome # value = flag:death # } # # scope:fp2_2013_prisoner_with_a_secret = { # death = { # death_reason = death_torture # killer = scope:fp2_2013_secret_owner # } # } # } # } # else = { # NO, ACTUALLY THIS IS NOT A BIG DEAL (release outcome) # scope:fp2_2013_secret_owner = { # hidden_effect = { # add_opinion = { # target = scope:fp2_2013_prisoner_with_a_secret # modifier = betrayed_me_opinion # opinion = -25 # } # } # add_opinion = { # target = root # modifier = did_not_tell_my_secret # opinion = 25 # } # if = { # limit = { # has_dlc_feature = court_artifacts # any_character_artifact = { # NOT = { has_variable = historical_unique_artifact } # artifact_low_rarity_trigger = yes # artifact_can_be_gift_to_trigger = { RECIPIENT = root } # } # } # random_character_artifact = { # limit = { # NOT = { has_variable = historical_unique_artifact } # artifact_low_rarity_trigger = yes # artifact_can_be_gift_to_trigger = { RECIPIENT = root } # } # set_owner = root # } # } # else = { # progress_towards_friend_effect = { # REASON = friend_protected_secrets # CHARACTER = root # OPINION = 0 # } # } # } # save_scope_value_as = { # name = fp2_2014_ai_secret_outcome # value = flag:release # } # } # } # # option = { # name = { # text = { # first_valid = { # triggered_desc = { # trigger = { NOT = { scope:fp2_2014_ai_secret_outcome = flag:release } } # desc = south_asia.0039.a # } # desc = fp2_struggle.2014.b # } # } # } # } #} # #################################### ## Letter on The Back ## By Hugo Cortell #################################### ## (a post-it saying kick me) #################################### #scripted_trigger fp2_struggle_2015_vassal_check_trigger = { # is_available_ai_adult = yes # exists = location # Under no circumstance should it be necessary to need to check this # NOT = { has_trait = compassionate } #} # #fp2_struggle.2015 = { # type = character_event # title = fp2_struggle.2015.t # desc = fp2_struggle.2015.desc # cooldown = { years = 25 } # # theme = murder_scheme # override_background = { reference = council_chamber } # left_portrait = { # character = root # animation = chancellor # } # right_portrait = { # character = scope:fp2_struggle_2015_peasant_to_murder # animation = personality_forgiving # } # lower_right_portrait = scope:fp2_struggle_2015_murder_requester_vassal # # trigger = { # is_ai = no # Murder schemes are heavy for performance # has_fp2_dlc_trigger = yes # root.top_liege = root # # any_powerful_vassal = { # fp2_struggle_2015_vassal_check_trigger = yes # opinion = { # Redundant second time around # target = root # value < 30 # } # } # } # # immediate = { # random_vassal = { # From joe # limit = { # is_powerful_vassal = yes # fp2_struggle_2015_vassal_check_trigger = yes # opinion = { # target = root # value < 30 # } # } # save_opinion_value_as = { # name = liege_opinion # target = root # } # # save_scope_as = fp2_struggle_2015_murder_requester_vassal # Makes sure that one exists, even if [ThreadIndex != UINT32_MAX] causes the loop to skip a beat # } # while = { # limit = { # any_powerful_vassal = { # fp2_struggle_2015_vassal_check_trigger = yes # opinion = { # target = root # value < scope:liege_opinion # } # } # } # random_vassal = { # limit = { # is_powerful_vassal = yes # fp2_struggle_2015_vassal_check_trigger = yes # opinion = { # target = root # value < scope:liege_opinion # } # } # save_opinion_value_as = { # name = liege_opinion # target = root # } # save_scope_as = fp2_struggle_2015_murder_requester_vassal # } # } # # create_character = { # location = scope:fp2_struggle_2015_murder_requester_vassal.location # template = generic_peasant_character # diplomacy = { 8 13 } # High stat # trait = trusting # random_traits = yes # faith = scope:fp2_struggle_2015_murder_requester_vassal.location.county.faith # culture = scope:fp2_struggle_2015_murder_requester_vassal.location.county.culture # save_scope_as = fp2_struggle_2015_peasant_to_murder # } # # hidden_effect = { # scope:fp2_struggle_2015_peasant_to_murder = { # reverse_add_opinion = { # target = scope:fp2_struggle_2015_murder_requester_vassal # modifier = annoyed_opinion # opinion = -100 # } # } # # add_courtier = scope:fp2_struggle_2015_peasant_to_murder # } # } # # option = { # Comply and kill the unsuspecting courtier # name = fp2_struggle.2015.a # # trigger = { is_ai = no } # duel = { # skill = intrigue # value = average_skill_rating # # 10 = { # desc = fp2_struggle.2015.a.a # compare_modifier = { # value = scope:duel_value # multiplier = -1.25 # } # # send_interface_toast = { # type = event_intrigue_bad # title = murder_outcome.2302.t # left_icon = scope:fp2_struggle_2015_peasant_to_murder # # reverse_add_opinion = { # target = scope:fp2_struggle_2015_murder_requester_vassal # modifier = disappointed_opinion # opinion = -15 # } # # remove_courtier_or_guest = scope:fp2_struggle_2015_peasant_to_murder # custom_tooltip = fp2_struggle.2015.a.murder_scheme # hidden_effect = { # scope:fp2_struggle_2015_murder_requester_vassal = { # start_scheme = { # type = murder # target_character = scope:fp2_struggle_2015_peasant_to_murder # } # } # } # } # reverse_add_opinion = { # target = scope:fp2_struggle_2015_peasant_to_murder # modifier = suspicion_opinion # opinion = -20 # } # # } # 10 = { # compare_modifier = { # value = scope:duel_value # multiplier = 1.25 # } # # modifier = { # add = { # value = intrigue # multiply = 2 # round = yes # } # always = yes # } # modifier = { # add = 35 # has_trait = lifestyle_herbalist # } # modifier = { # add = 5 # has_trait = drunkard # You know how to disguise drinks # } # modifier = { # add = 15 # has_perk = swift_execution_perk # } # modifier = { # add = 10 # They add up # has_perk = a_job_done_right_perk # } # # send_interface_toast = { # type = event_intrigue_good # title = fp2_struggle.2015.a.b # left_icon = scope:fp2_struggle_2015_murder_requester_vassal # # scope:fp2_struggle_2015_peasant_to_murder = { # death = { # killer = ROOT # death_reason = death_poison # } # } # reverse_add_opinion = { # target = scope:fp2_struggle_2015_murder_requester_vassal # modifier = helped_me_in_time_of_need # opinion = 40 # } # } # add_secret = { # type = secret_murder # target = scope:fp2_struggle_2015_peasant_to_murder # } # random_secret = { # type = secret_murder # limit = { # secret_target = scope:fp2_struggle_2015_peasant_to_murder # } # save_scope_as = fp2_2015_murder_secret # } # # if = { # AHA! YOU FOOL! I TRICKED YOU INTO COMMITING A CRIME! # limit = { # scope:fp2_struggle_2015_murder_requester_vassal = { # OR = { # has_relation_rival = ROOT # has_secret_relation_rival = ROOT # ??? # has_relation_nemesis = ROOT # # AND = { # has_dread_level_towards = { # target = ROOT # level <= 1 # } # OR = { # AND = { # has_trait = deceitful # opinion = { # target = root # value < -25 # } # } # AND = { # ai_boldness > 9 # ai_compassion < 1 # ai_honor < -29 # ai_vengefulness > -1 # } # } # } # } # } # } # # trigger_event = { # Usually I would use a notification but... # id = fp2_struggle.2016 # The narrative impact of a full letter is greater, it makes sure the betrayal stings. This vassal wrote just to rub salt in your eyes. # days = { 3 4 } # } # } # } # } # # stress_impact = { # compassionate = medium_stress_impact_gain # gallant = minor_stress_impact_gain # } # } # # option = { # Ignore the letter # name = fp2_struggle.2015.b # # trigger = { is_ai = no } # send_interface_toast = { # type = event_toast_effect_good # title = murder_outcome.4302.t # left_icon = scope:fp2_struggle_2015_murder_requester_vassal # right_icon = scope:fp2_struggle_2015_peasant_to_murder # # show_as_tooltip = { add_courtier = scope:fp2_struggle_2015_peasant_to_murder } # reverse_add_opinion = { # target = scope:fp2_struggle_2015_murder_requester_vassal # modifier = broke_promise # } # } # # custom_tooltip = fp2_struggle.2015.a.murder_scheme # hidden_effect = { # scope:fp2_struggle_2015_murder_requester_vassal = { # start_scheme = { # type = murder # target_character = scope:fp2_struggle_2015_peasant_to_murder # } # } # } # } # # option = { # Warn the courtier about this (vassal may find out) # name = fp2_struggle.2015.c # # random_list = { # 75 = { # desc = fp2_struggle.2015.c.b # # send_interface_toast = { # type = event_intrigue_good # title = fp2_struggle.2015.c.b # left_icon = scope:fp2_struggle_2015_peasant_to_murder # right_icon = scope:fp2_struggle_2015_murder_requester_vassal # # scope:fp2_struggle_2015_peasant_to_murder = { silent_disappearance_effect = yes } # reverse_add_opinion = { # target = scope:fp2_struggle_2015_murder_requester_vassal # modifier = helped_me_in_time_of_need # opinion = 25 # -15 points for suspicion (where is the body?) # } # } # } # 25 = { # desc = fp2_struggle.2015.c.a # send_interface_toast = { # type = event_intrigue_bad # title = fp2_struggle.2015.c.a # left_icon = scope:fp2_struggle_2015_peasant_to_murder # right_icon = scope:fp2_struggle_2015_murder_requester_vassal # # scope:fp2_struggle_2015_peasant_to_murder = { death = { death_reason = death_mysterious } } # reverse_add_opinion = { # target = scope:fp2_struggle_2015_murder_requester_vassal # modifier = broke_promise # } # # stress_impact = { # forgiving = minor_stress_impact_gain # humble = minor_stress_impact_gain # just = minor_stress_impact_gain # compassionate = minor_stress_impact_gain # trusting = minor_stress_impact_gain # gallant = minor_stress_impact_gain # } # } # } # } # } #} # #fp2_struggle.2016 = { # type = letter_event # sender = scope:fp2_struggle_2015_murder_requester_vassal # opening = fp2_struggle.2016.t # desc = fp2_struggle.2016.desc # # option = { # Tricked, backstabbed and quite possibly, out-smarted by your cunning vassal/rival # name = fp2_struggle.2016.a # # hidden_effect = { scope:fp2_2015_murder_secret = { reveal_to = scope:fp2_struggle_2015_murder_requester_vassal } } # scope:fp2_struggle_2015_murder_requester_vassal = { # blackmail_target_with_secret_effect = { # SECRET = scope:fp2_2015_murder_secret # TARGET = ROOT # } # } # progress_towards_rival_effect = { # CHARACTER = scope:fp2_struggle_2015_murder_requester_vassal # REASON = rival_tricked_murder # OPINION = default_rival_opinion # } # add_opinion = { # target = scope:fp2_struggle_2015_murder_requester_vassal # modifier = betrayed_me_opinion # opinion = -60 # } # } #} # #################################### ## RETURN OF THE THIEF KING ## By Hugo Cortell #################################### ## Directors liked the original very much ########################################### #fp2_struggle.2021 = { # Main event # type = character_event # title = fp2_struggle.2021.t # desc = { # desc = fp2_struggle.2021.desc # first_valid = { # triggered_desc = { # trigger = { scope:fp2_2009_event_outcome = flag:cleared_out } # desc = fp2_struggle.2021.desc.alt.cutout # } # triggered_desc = { # trigger = { scope:fp2_2009_event_outcome = flag:paid_off } # desc = fp2_struggle.2021.desc.alt.paidoff # } # triggered_desc = { # trigger = { scope:fp2_2009_event_outcome = flag:worked_together } # desc = fp2_struggle.2021.desc.alt.work # } # triggered_desc = { # trigger = { scope:fp2_2009_event_outcome = flag:lobbed_head } # desc = fp2_struggle.2021.desc.alt.behead # } # } # desc = { desc = fp2_struggle.2021.desc.outro } # } # theme = secret # override_background = { # trigger = { scope:fp2_2009_event_outcome = flag:cleared_out } # reference = alley_day # } # override_background = { # trigger = { scope:fp2_2009_event_outcome = flag:paid_off } # reference = tavern # } # override_background = { # trigger = { scope:fp2_2009_event_outcome = flag:worked_together } # reference = throne_room # } # override_background = { # trigger = { scope:fp2_2009_event_outcome = flag:lobbed_head } # reference = alley_night # } # left_portrait = { # character = root # animation = personality_rational # } # right_portrait = { # character = scope:fp2_2009_garduna_guild_master # animation = scheme # outfit_tags = { # western_stealth_hood # sub_saharan_high_nobility # mena_war_legwear # } # } # # trigger = { # fp2_character_involved_in_struggle_trigger = yes # To check that the struggle is still going on # exists = primary_title # scope:fp2_2009_garduna_guild_master = { # is_available_ai_adult = yes # OR = { # Is this char still looking for adventure or have they settled down? # is_pool_character = yes # is_pool_guest = yes # } # } # } # # immediate = { # title:c_napoli.title_province = { # Originally, the thieves were going to set up a guild there, but thats not very nice. # county = { # save_scope_as = fp2_2021_old_napoly # holder.top_liege = { # save_scope_as = fp2_2021_angry_italian # So instead you just get an opinion debuff for narrative impact. # } # If this were not such a strange event, I would actually make it affect the character mechanically. But there is little excuse here. # } # } # # # Spy Network Logic, once upon a time used to be elegant. # if = { # limit = { exists = struggle:iberian_struggle } # struggle:iberian_struggle = { # if = { # limit = { # Theoretically, effects which do not meet its conditions (the limit) are skipped over. However, the nightly has proven that wrong. # any_involved_ruler = { # As such we take a _much_ more conservative approach of triple checking everything. # exists = primary_title # has_any_secrets = yes # this != root # } # } # random_involved_ruler = { # limit = { # exists = primary_title # has_any_secrets = yes # this != root # } # random_secret = { save_scope_as = fp2_2021_secreto_numero_ichi } # } # # if = { # limit = { # any_involved_ruler = { # exists = primary_title # has_any_secrets = yes # NOT = { # this = root # any_secret = { this = scope:fp2_2021_secreto_numero_ichi } # } # } # } # random_involved_ruler = { # limit = { # exists = primary_title # has_any_secrets = yes # NOT = { # this = root # any_secret = { this = scope:fp2_2021_secreto_numero_ichi } # } # } # random_secret = { save_scope_as = fp2_2021_secreto_numero_ni } # } # } # } # } # } # # if = { # limit = { exists = cp:councillor_spymaster } # cp:councillor_spymaster = { save_scope_as = fp2_2021_spymaster } # } # # hidden_effect = { # Hides exceptions from players, fix is not necessary # scope:fp2_2009_garduna_guild_master = { # save_scope_as = dueltarget # For Loc # move_to_pool_at = root.location # Fixes endless loop where the thief gets stretched across half the map # } # } # } # # option = { # Send off to italy # name = fp2_struggle.2021.a # # scope:fp2_2009_garduna_guild_master = { # pay_short_term_gold = { # target = ROOT # gold = minor_gold_value # } # } # custom_tooltip = fp2_struggle.2021.a.a # scope:fp2_2021_angry_italian = { # add_opinion = { # target = root # modifier = raided_me_opinion # opinion = -40 # } # } # # hidden_effect = { # Possible random outcomes # random_list = { # 10 = { # "Retires", buys a house in italy and lives as an old man happily ever after (just like your dog went to a farm when it got old) # scope:fp2_2009_garduna_guild_master = { silent_disappearance_effect = yes } # # modifier = { # add = 30 # scope:fp2_2009_event_outcome = flag:lobbed_head # } # modifier = { # add = 20 # scope:fp2_2009_event_outcome = flag:worked_together # } # } # 30 = { # He just sorta roams around italy # scope:fp2_2009_garduna_guild_master = { move_to_pool_at = scope:fp2_2021_angry_italian.location } # # modifier = { # add = 10 # scope:fp2_2009_event_outcome = flag:cleared_out # } # } # 10 = { # Joins napolitan court # scope:fp2_2009_garduna_guild_master = { remove_nickname = yes } # Becomes a functional member of society # scope:fp2_2021_angry_italian = { # add_courtier = scope:fp2_2009_garduna_guild_master # # add_opinion = { # target = scope:fp2_2009_garduna_guild_master # modifier = impressed_opinion # opinion = 20 # } # reverse_add_opinion = { # target = scope:fp2_2009_garduna_guild_master # modifier = opinion_welcomed_with_tea # } # } # # modifier = { # add = 20 # scope:fp2_2009_event_outcome = flag:paid_off # } # } # } # } # } # # option = { # Recruit into court (cures courtier's depression if they were a member of the thief-king's gang) # name = fp2_struggle.2021.b # # pay_short_term_gold = { # target = scope:fp2_2009_garduna_guild_master # gold = medium_gold_value # } # every_powerful_vassal = { # limit = { NOT = { has_trait = forgiving } } # custom = fp2_every_major_vassal_notifier # add_opinion = { # target = root # modifier = suspicion_opinion # opinion = -15 # } # } # add_courtier = scope:fp2_2009_garduna_guild_master # if = { # limit = { exists = scope:fp2_2009_garduna_young_thief } # remove_trait = depressed_1 # My old boss survived! (though the rest are dead but shhh) # } # # hidden_effect = { # scope:fp2_2009_garduna_guild_master = { # add_opinion = { # target = root # modifier = hired_me_opinion # opinion = 15 # } # # if = { # There can only be one top dog, one master of the shadows. # limit = { scope:fp2_2021_spymaster != scope:fp2_2009_garduna_young_thief } # random = { # chance = 25 # set_relation_rival = { # target = scope:fp2_2021_spymaster # reason = rival_garduna_young_thief # } # } # } # } # } # } # # option = { # Establish a spy network # name = fp2_struggle.2021.c # flavor = fp2_struggle.2021.c.flavor # # trigger = { # OR = { # exists = scope:fp2_2021_secreto_numero_ichi # exists = scope:fp2_2021_secreto_numero_ni # } # } # # pay_short_term_gold = { # target = scope:fp2_2009_garduna_guild_master # gold = major_gold_value # } # # custom_tooltip = fp2_struggle.2021.c.a # Perhaps it can mention the spymaster? # hidden_effect = { # Note: You might end up learning secrets you already know, this is WAD # if = { # limit = { # exists = scope:fp2_2021_secreto_numero_ichi # exists = scope:fp2_2021_secreto_numero_ni # } # # send_interface_toast = { # type = event_intrigue_good # title = fp2_struggle.2021.c.spynet.a # # scope:fp2_2021_secreto_numero_ichi = { reveal_to = root } # scope:fp2_2021_secreto_numero_ni = { reveal_to = root } # } # } # else = { # if = { # limit = { exists = scope:fp2_2021_secreto_numero_ichi } # send_interface_toast = { # type = event_intrigue_good # title = fp2_struggle.2021.c.spynet.a # # scope:fp2_2021_secreto_numero_ichi = { reveal_to = root } # } # } # else_if = { # limit = { exists = scope:fp2_2021_secreto_numero_ni } # send_interface_toast = { # type = event_intrigue_good # title = fp2_struggle.2021.c.spynet.a # # scope:fp2_2021_secreto_numero_ni = { reveal_to = root } # } # } # } # } # # scope:fp2_2009_garduna_guild_master = { silent_disappearance_effect = yes } # } # # option = { # Duel option (get title late) # name = { # text = { # first_valid = { # triggered_desc = { # trigger = { scope:fp2_2009_event_outcome = flag:lobbed_head } # desc = fp2_struggle.2021.d.alt # } # desc = fp2_struggle.2021.d # } # } # } # trigger = { NOT = { age < 14 } } # # custom_tooltip = fp2_struggle.2021.d.b # show_as_tooltip = { # if = { # limit = { # OR = { # has_any_nickname = no # has_bad_nickname = yes # } # } # give_nickname = nick_the_Thief_Slayer # } # } # ROOT = { save_scope_as = fp2_2021_root_in_duel } # scope:fp2_2009_garduna_guild_master = { # set_variable = { # name = signature_weapon # value = flag:dagger # } # } # # if = { # Changes the background to match, you cannot use conditional values on scripted effects # limit = { scope:fp2_2009_event_outcome = flag:cleared_out } # configure_start_single_combat_effect = { # SC_INITIATOR = root # SC_ATTACKER = root # SC_DEFENDER = scope:fp2_2009_garduna_guild_master # FATALITY = always # FIXED = no # LOCALE = alley_day # OUTPUT_EVENT = fp2_struggle.2022 # INVALIDATION_EVENT = fp2_struggle.2022 # } # } # else_if = { # limit = { scope:fp2_2009_event_outcome = flag:paid_off } # configure_start_single_combat_effect = { # SC_INITIATOR = root # SC_ATTACKER = root # SC_DEFENDER = scope:fp2_2009_garduna_guild_master # FATALITY = always # FIXED = no # LOCALE = tavern # OUTPUT_EVENT = fp2_struggle.2022 # INVALIDATION_EVENT = fp2_struggle.2022 # } # } # else_if = { # limit = { scope:fp2_2009_event_outcome = flag:worked_together } # configure_start_single_combat_effect = { # SC_INITIATOR = root # SC_ATTACKER = root # SC_DEFENDER = scope:fp2_2009_garduna_guild_master # FATALITY = always # FIXED = no # LOCALE = throne_room # OUTPUT_EVENT = fp2_struggle.2022 # INVALIDATION_EVENT = fp2_struggle.2022 # } # } # else_if = { # limit = { scope:fp2_2009_event_outcome = flag:lobbed_head } # configure_start_single_combat_effect = { # SC_INITIATOR = root # SC_ATTACKER = root # SC_DEFENDER = scope:fp2_2009_garduna_guild_master # FATALITY = always # FIXED = no # LOCALE = alley_night # OUTPUT_EVENT = fp2_struggle.2022 # INVALIDATION_EVENT = fp2_struggle.2022 # } # } # } # # after = { remove_global_variable = fp2_struggle_2009_thief_king_char } #} # #fp2_struggle.2022 = { # You become the KING OF THIEVES again, well, late is better than never... # hidden = yes # immediate = { # if = { # limit = { # exists = scope:fp2_2022_reuse_gate # root = scope:fp2_2021_root_in_duel # } # send_interface_toast = { # type = event_toast_effect_good # title = fp2_struggle.2021.d.a # right_icon = ROOT # if = { # limit = { # OR = { # has_any_nickname = no # has_bad_nickname = yes # } # } # give_nickname = nick_the_Thief_Slayer # } # add_prestige = medium_prestige_gain # Penalty for finishing the job late # add_gold = minor_gold_value # } # } # else = { # save_scope_as = fp2_2022_reuse_gate # trigger_event = { # id = fp2_struggle.2022 # days = 1 # } # } # } #} # #################################### ## The Price of War ## by Veronica Pazos #################################### ## You pawn your crown to get some gold to help in your war ############################################################### #fp2_struggle.3001 = { # type = character_event # title = fp2_struggle.3001.t # desc = { # desc = fp2_struggle.3001.desc # first_valid = { # triggered_desc = { # trigger = { # is_at_war = yes # } # desc = fp2_struggle.3001.desc_war_intro # } # triggered_desc = { # trigger = { # is_at_war = no # } # desc = fp2_struggle.3001.desc_no_war_intro # } # } # desc = fp2_struggle.3001.desc_outro # } # # theme = crown # cooldown = { years = 5 } #in case you don't sell your crown you'll have to wait to get the chance again # override_background = { reference = council_chamber } # left_portrait = { # character = root # animation = worry # } # right_portrait = { # character = cp:councillor_steward # animation = personality_rational # } # # trigger = { # has_fp2_dlc_trigger = yes #dlc check # is_available_even_at_war_adult = yes # primary_title.tier >= tier_kingdom #so we make sure you have an actual crown # OR = { #someone has to suggest this # exists = cp:councillor_steward # any_courtier = { # stewardship >= medium_skill_rating # } # } # gold < minor_gold_value #you don't have much gold # NOT = { has_character_flag = sold_crown_charmod } #you haven't sold your crown before # struggle:iberian_struggle = { # NOT = { is_struggle_phase = struggle_iberia_phase_compromise } #you're not in the compromise phase # } # } # # weight_multiplier = { #more likely to trigger the poorer you are # modifier = { # add = 0.25 # gold <= 25 # } # modifier = { # add = 0.25 # gold <= 20 # } # modifier = { # add = 0.5 # gold <= 15 # } # modifier = { # add = 0.5 # gold <= 10 # } # } # # immediate = { # play_music_cue = "mx_cue_touching_moment" # if = { # limit = { # exists = cp:councillor_steward # } # cp:councillor_steward = { save_scope_as = struggle_3001_steward } # } # else = { # random_courtier = { # limit = { # stewardship >= medium_skill_rating # } # save_scope_as = struggle_3001_steward # } # } # if = { # limit = { # has_any_artifact = yes # any_character_artifact = { artifact_type = helmet } #we check if you have a crown artifact # } # random_character_artifact = { # limit = { artifact_type = helmet } # save_scope_as = struggle_3001_crown_artifact # } # } # if = { # limit = { # is_married = yes # } # primary_spouse = { # save_scope_as = struggle_3001_spouse # } # } # } # # option = { #sell your own crown # name = fp2_struggle.3001.a # flavor = fp2_struggle.3001.a_flavour # add_character_flag = sold_crown_charmod #you lose your crown # give_nickname = nick_the_crownless #now everyone knows # add_gold = medium_gold_max_value # add_prestige = major_prestige_loss # stress_impact = { # arrogant = medium_stress_impact_gain # humble = minor_stress_loss # } # # ai_chance = { # base = 5 # modifier = { # add = 5 # gold <= 15 # } # ai_value_modifier = { # ai_greed = 0.15 # ai_rationality = 0.2 # } # } # } # # option = { #sell artifact crown instead # name = fp2_struggle.3001.b # trigger = { #triggers if you actually have one # any_character_artifact = { # artifact_slot_type = helmet # } # } # add_gold = medium_gold_value # add_prestige = minor_prestige_loss # destroy_artifact = scope:struggle_3001_crown_artifact # stress_impact = { # greedy = minor_stress_impact_gain # } # # ai_chance = { # base = 5 # modifier = { # add = 5 # gold <= 15 # } # ai_value_modifier = { # ai_greed = -0.3 # ai_rationality = 0.2 # } # } # } # # option = { #but my spouse also has a crown... # name = fp2_struggle.3001.c # flavor = fp2_struggle.3001.c_flavour # trigger = { # is_married = yes #you have a spouse # scope:struggle_3001_spouse = { # NOT = { has_character_flag = sold_crown_charmod } #and you didn't sell their crown # } # } # add_gold = medium_gold_value # add_prestige = minor_prestige_loss # if = { # limit = { # scope:struggle_3001_spouse = { # has_trait = humble # } # } # scope:struggle_3001_spouse = { # add_opinion = { # target = ROOT # opinion = -25 #they are displeased # modifier = struggle_3001_spouse_crown_modifier # } # add_character_flag = sold_crown_charmod #your spouse loses their crown # } # } # else = { # scope:struggle_3001_spouse = { # add_opinion = { # target = ROOT # opinion = -75 #they REALLY hate you # modifier = struggle_3001_spouse_crown_modifier # } # add_character_flag = sold_crown_charmod #your spouse loses their crown # } # } # stress_impact = { # generous = medium_stress_impact_gain # compassionate = medium_stress_impact_gain # } # # ai_chance = { # base = 10 # modifier = { # add = 5 # gold <= 15 # } # ai_value_modifier = { # ai_greed = 0.5 # } # } # } # # option = { #I'll be dead before losing my crown # name = fp2_struggle.3001.d # stress_impact = { # base = medium_stress_gain #you really need money # } # # ai_chance = { # base = 5 # } # } #} # #################################### ## Order of the Hatchet ## By Veronica Pazos #################################### ## Order of the Hachet - Woman are defending your city ######################################################## #fp2_struggle.3011 = { # type = character_event # title = fp2_struggle.3011.t # desc = { # first_valid = { # triggered_desc = { # trigger = { # faith = { has_doctrine = doctrine_gender_female_dominated } # } # desc = fp2_struggle.3011.desc_men #reverse genre event # } # desc = fp2_struggle.3011.desc # } # desc = fp2_struggle.3011.desc_outro # } # # theme = realm # cooldown = { years = 20 } # left_portrait = { # character = root # animation = personality_rational # } # right_portrait = { # character = cp:councillor_marshal # animation = marshal # } # lower_right_portrait = scope:bishop # # trigger = { # has_fp2_dlc_trigger = yes # fp2_character_any_involvement_iberian_struggle_trigger = yes #there's an ongoing struggle (includes dlc check) # is_available_even_at_war_adult = yes # is_landed_or_landless_administrative = yes # any_character_war = { # war_days >= 30 #a battle has likely happened # } # exists = cp:councillor_marshal #someone tells you about the incident # exists = cp:councillor_court_chaplain # faith = { # NOT = { has_doctrine = doctrine_gender_equal } #checks that this is unusual # } # OR = { #checks again that this makes sense, Ola Jentzsch's note # has_game_rule = default_gender_equality # has_game_rule = inversed_gender_equality # } # struggle:iberian_struggle = { #there's a struggle going on # OR = { # is_struggle_phase = struggle_iberia_phase_hostility # is_struggle_phase = struggle_iberia_phase_opportunity # } # } # any_sub_realm_barony = { # exists = holder # title_province = { has_holding_type = city_holding } # } # } # # weight_multiplier = { # base = 1 # } # # immediate = { # cp:councillor_marshal = { save_scope_as = struggle_3011_marshal } # cp:councillor_court_chaplain = { save_scope_as = bishop } # random_sub_realm_barony = { # limit = { # exists = holder # title_province = { has_holding_type = city_holding } # } # county = { save_scope_as = struggle_3011_county_town } # } # } # # option = { #that's dope # name = fp2_struggle.3011.a # scope:struggle_3011_county_town = { # add_county_modifier = { # modifier = fp2_order_of_the_hachet_modifier # years = 5 # } # } # scope:bishop = { # add_opinion = { # target = ROOT # opinion = -25 # modifier = angry_opinion # } # } # every_vassal = { # custom = custom.every_zealous_callous_or_sadistic_vassal # limit = { # OR = { # has_trait = zealous # has_trait = callous # } # } # add_opinion = { # target = ROOT # opinion = -10 # modifier = annoyed_opinion # } # } # stress_impact = { # zealous = medium_stress_impact_gain # } # # ai_chance = { # base = 10 # ai_value_modifier = { # ai_zeal = -1 #zealous AI will never pick this # ai_compassion = 0.2 # ai_honor = 0.2 # } # } # } # # option = { #ridiculous # name = { # trigger = { # faith = { has_doctrine = doctrine_gender_male_dominated } # } # text = fp2_struggle.3011.b # } # name = { # trigger = { # faith = { has_doctrine = doctrine_gender_female_dominated } # } # text = fp2_struggle.3011.b_men # } # scope:bishop = { # add_opinion = { # target = ROOT # opinion = 10 # modifier = grateful_opinion # } # } # if = { # limit = { # faith = { has_doctrine = doctrine_gender_male_dominated } # } # every_courtier = { # custom = custom.every_female_courtier # limit = { # is_female = yes # } # add_opinion = { # target = ROOT # opinion = -10 # modifier = insult_opinion # } # } # } # else_if = { # limit = { # faith = { has_doctrine = doctrine_gender_female_dominated } # } # every_courtier = { # custom = custom.every_male_courtier # limit = { # is_male = yes # } # add_opinion = { # target = ROOT # opinion = -10 # modifier = insult_opinion # } # } # } # stress_impact = { # cynical = medium_stress_impact_gain # } # # ai_chance = { # base = 10 # ai_value_modifier = { # ai_zeal = 0.2 # ai_rationality = -0.2 # } # } # } # # option = { #witches! # name = fp2_struggle.3011.c # trigger = { # has_trait = zealous # } # add_dread = medium_dread_gain # add_character_modifier = { # modifier = fp2_punished_order_of_the_hachet_modifier # years = 5 # } # # ai_chance = { #zealous AI will pick this option # base = 1 # ai_value_modifier = { # ai_zeal = 0.8 # ai_energy = -0.7 # ai_vengefulness = 0.5 # } # } # } # # option = { #I shall save these damsels in distress! # name = fp2_struggle.3011.d # trigger = { # faith = { has_doctrine = doctrine_gender_male_dominated } # OR = { # has_trait = gallant # has_trait = arrogant # culture = { # has_cultural_tradition = tradition_chanson_de_geste # } # } # } # random_list = { #how does that go # 75 = { # add_stress = medium_stress_gain # } # 25 = { # add_stress = medium_stress_impact_loss # } # } # # ai_chance = { # base = 10 # } # } #} # #################################### ## The Wrath of Heaven ## By Veronica Pazos #################################### ## "Lightning stones" in a siege #################################### #fp2_struggle.3021 = { # type = character_event # title = fp2_struggle.3021.t # desc = fp2_struggle.3021.desc # # theme = martial # left_portrait = { # character = root # animation = personality_cynical # } # right_portrait = { # character = scope:struggle_3021_knight # animation = shock # } # lower_right_portrait = scope:struggle_3021_courtier # # trigger = { # has_fp2_dlc_trigger = yes # fp2_character_any_involvement_iberian_struggle_trigger = yes # is_available_even_at_war_adult = yes # NOT = { has_character_flag = had_event_struggle_3021 } #so you don't research the same thing again # struggle:iberian_struggle = { #there's some kind of hostility going on # is_struggle_phase = struggle_iberia_phase_hostility # # } # any_knight = { #someone sees this # is_available_healthy_ai_adult = yes # } # any_courtier = { #someone will research this # is_available_healthy_ai_adult = yes # count > 0 # } # any_directly_owned_province = { #we have a castle to use it on # has_holding_type = castle_holding # NOT = { has_province_modifier = fp2_lightning_stones_modifier } # } # } # # weight_multiplier = { # base = 1 # modifier = { # add = 1 # is_at_war = yes # } # } # # immediate = { # add_character_flag = had_event_struggle_3021 # random_knight = { # limit = { # is_available_healthy_ai_adult = yes # } # save_scope_as = struggle_3021_knight # } # every_courtier = { #get your courtiers # limit = { # is_available_ai_adult = yes # this != root.primary_spouse #you shouldn't lose your spouse or heir because of this # this != root.player_heir # } # add_to_list = struggle_3021_courtier_list # } # ordered_in_list = { #sort through to pick the one with highest learning # list = struggle_3021_courtier_list # order_by = learning # max = 1 # save_scope_as = struggle_3021_courtier # } # random_directly_owned_province = { #this is where we can try it # limit = { # has_holding_type = castle_holding # } # save_scope_as = lightning_stones_province # } # } # # option = { #we need to research this stuff # name = fp2_struggle.3021.a # # scope:struggle_3021_courtier = { #This is who is doing the research # duel = { # skill = learning #The skill needed for research # value = average_skill_rating #Found in 00_basic_values.txt - An 8 in this case # 12 = { #Success - We keep the weight values fairly close to our skill values so they can be affected. 20 is a good max. # compare_modifier = { # value = scope:duel_value # multiplier = 2 #This multiplies the *difference* between the skill and the target. Meaning folks with good skills will be much more likely to get it. # min = -5 #This prevents truly terrible people from completely losing the chance to succeed. # } # desc = good_struggle_3021_courtier_desc # root = { # send_interface_toast = { # title = good_stone_research_title # left_icon = scope:struggle_3021_courtier # scope:lightning_stones_province = { # add_province_modifier = { # modifier = fp2_lightning_stones_modifier # } # } # } # } # } # 14 = { #Failure! # compare_modifier = { # value = scope:duel_value # multiplier = -2 #This multiplies and inverts the *difference* between the skill and the target. Meaning folks with bad skills will be much more likely to get this. # } # desc = bad_struggle_3021_courtier_desc # root = { # send_interface_toast = { #send a toast # title = bad_stone_research_title # desc = bad_struggle_3021_courtier_desc # left_icon = scope:struggle_3021_courtier # scope:struggle_3021_courtier = { # death = { death_reason = death_accident } # } # } # } # } # } # } # # stress_impact = { # zealous = medium_stress_impact_gain # } # } # # option = { #this is not the greatest idea # name = fp2_struggle.3021.b # reverse_add_opinion = { # target = scope:struggle_3021_courtier # modifier = insulted_opinion # opinion = -15 # } # stress_impact = { # base = minor_stress_impact_loss # zealous = medium_stress_impact_gain # craven = minor_stress_impact_loss # brave = medium_stress_impact_gain # } # } # # option = { #we can maybe use this in a feast # name = fp2_struggle.3021.c # trigger = { # OR = { # has_trait = vengeful # has_trait = deceitful # has_trait = arbitrary # has_trait = callous # intrigue >= high_skill_rating # has_lifestyle = intrigue_lifestyle # } # } # # duel = { # skill = learning # target = scope:struggle_3021_courtier # 30 = { #it works # compare_modifier = { # value = scope:duel_value # multiplier = 0.5 # } # desc = good_struggle_3021_courtier_desc # root = { # send_interface_toast = { # title = good_stone_research_title # left_icon = scope:struggle_3021_courtier # # add_character_modifier = { # modifier = fp2_lightning_stones_poison_modifier # years = 5 # } # } # } # } # 70 = { #it doesnt work # compare_modifier = { # value = scope:duel_value # } # desc = bad_struggle_3021_courtier_desc # root = { # send_interface_toast = { #send a toast # title = bad_stone_research_title # desc = bad_struggle_3021_courtier_desc # left_icon = scope:struggle_3021_courtier # # scope:struggle_3021_courtier = { # death = { death_reason = death_accident } # } # } # } # } # } # # stress_impact = { # forgiving = medium_stress_impact_gain # honest = medium_stress_impact_gain # compassionate = medium_stress_impact_gain # zealous = medium_stress_impact_gain # } # ai_chance = { # base = 10 # ai_value_modifier = { # ai_boldness = 0.2 # ai_vengefulness = 1 # } # } # } # # option = { #god's punihsment! # name = fp2_struggle.3021.d # trigger = { # OR = { # has_trait = zealous # stress >= high_medium_stress # } # } # add_piety = minor_piety_gain # stress_impact = { # zealous = minor_stress_loss # } # } # # option = { #lightning stones for the lightning stone god # name = fp2_struggle.3021.e # trigger = { # religion = { is_in_family = rf_pagan } # } # add_piety = medium_piety_gain # } #} #