N3OW/events/dlc/fp2/fp2_struggle_events.txt

11763 lines
No EOL
292 KiB
Text

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