N3OW/events/dlc/fp3/fp3_struggle_events.txt
2026-05-26 01:52:03 -04:00

1340 lines
No EOL
34 KiB
Text

namespace = fp3_struggle
### EVENT LIST ####################################################################
## 0001 - 0020 Internal Management Events by Hugo Cortell
## 0021 - 0030 Invalidation Events by Hugo Cortell
## 0031 - 0040 Empty block by Hugo Cortell
## 0051 - 0060 FP3 Struggle Intro Events by Hugo Cortell
## 0061 - 0070 Realm Shattering Events by Hugo Cortell
## 0071 - 0300 Struggle Endings by Thalassic Design Dept (Ola, Eren, Hugo)
## XXXX - XXXX Event Name Here by Author Name Here
## XXXX - XXXX Event Name Here by Author Name Here
## XXXX - XXXX Event Name Here by Author Name Here
## 9980 - 9999 Integrity Validation Tools by Hugo Cortell
###################################################################################
###################################
# FP3 Maintenance Events
# By Ewan Cowhig Croft
###################################
#
#scripted_trigger fp3_struggle_0001_valid_ai_struggle_char_trigger = {
# # Basic checks.
# can_execute_decision = fp3_name_read_in_friday_prayer_decision
# is_ai = yes
# # Suitability for switchin' checks.
# OR = {
# # If they're gonna become a supporter, it should make sense.
# AND = {
# opinion = {
# target = title:d_sunni.holder
# value >= low_positive_opinion
# }
# OR = {
# # We check for the opposite, since you're flipflopping.
# has_trait = fp3_struggle_detractor
# NOR = {
# has_trait = fp3_struggle_supporter
# has_trait = fp3_struggle_detractor
# }
# }
# }
# # If they're gonna become a detractor, that should make sense too.
# AND = {
# opinion = {
# target = title:d_sunni.holder
# value <= low_negative_opinion
# }
# OR = {
# # We check for the opposite, since you're flipflopping.
# has_trait = fp3_struggle_supporter
# NOR = {
# has_trait = fp3_struggle_supporter
# has_trait = fp3_struggle_detractor
# }
# }
# }
# }
#}
#
#fp3_struggle.0001 = {
# hidden = yes
# scope = none
# scope = struggle
#
# # If the struggle ends, break the loop.
# trigger = { exists = struggle:persian_struggle }
#
# immediate = {
# if = {
# # If there isn't a caliph at present, then stop trying to make people talk about them.
# limit = { exists = title:d_sunni.holder }
# struggle:persian_struggle = {
# every_involved_ruler = {
# limit = { fp3_struggle_0001_valid_ai_struggle_char_trigger = yes }
# random = {
# chance = fp3_struggle_switch_sides_value
# execute_decision = fp3_name_read_in_friday_prayer_decision
# }
# }
# every_interloper_ruler = {
# limit = { fp3_struggle_0001_valid_ai_struggle_char_trigger = yes }
# random = {
# chance = fp3_struggle_switch_sides_value
# execute_decision = fp3_name_read_in_friday_prayer_decision
# }
# }
# }
# }
#
# # Cue this event up again for the next time around.
# trigger_event = {
# id = fp3_struggle.0001
# years = { 3 5 }
# }
# }
#}
#
####################################
## FP3 Intro Events
## By Hugo Cortell, reworked by Ewan Cowhig Croft
####################################
#fp3_struggle.0051 = { # BOOKMARK EVENT
# type = character_event
# window = fullscreen_event
# title = fp3_struggle.0051.t
# desc = {
# first_valid = {
# triggered_desc = {
# trigger = {
# any_character_struggle = {
# is_struggle_type = persian_struggle
# is_struggle_phase = struggle_persia_phase_unrest
# }
# }
# desc = fp3_struggle.0051.desc.unrest
# }
# desc = fp3_struggle.0051.desc.stabilization
# }
# first_valid = {
# triggered_desc = {
# trigger = {
# any_character_struggle = {
# is_struggle_type = persian_struggle
# is_struggle_phase = struggle_persia_phase_stabilisation
# }
# }
# desc = fp3_struggle.0051.desc.stabilization_actor
# }
# triggered_desc = {
# trigger = {
# has_trait = fp3_struggle_supporter
# }
# desc = fp3_struggle.0051.desc.supporter
# }
# triggered_desc = {
# trigger = {
# has_trait = fp3_struggle_detractor
# }
# desc = fp3_struggle.0051.desc.detractor
# }
# triggered_desc = {
# trigger = {
# fp3_struggle_is_the_caliph = yes
# }
# desc = fp3_struggle.0051.desc.caliph
# }
# triggered_desc = {
# trigger = {
# any_character_struggle = {
# involvement = involved
# is_struggle_type = persian_struggle
# }
# }
# desc = fp3_struggle.0051.desc.involved
# }
# triggered_desc = {
# trigger = {
# any_character_struggle = {
# involvement = interloper
# is_struggle_type = persian_struggle
# }
# }
# desc = fp3_struggle.0051.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 = fp3_struggle_intro_event_flag }
# any_character_struggle = { is_struggle_type = persian_struggle }
# }
# override_background = { reference = fp3_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:persian_struggle = { save_scope_as = struggle } }
# }
# }
# immediate = {
# play_music_cue = strugglestart_cue
# add_character_flag = fp3_struggle_intro_event_flag
# add_to_global_variable_list = { # List is only checked for removal, comparing it in the trigger would be needlessly expensive
# name = fp3_intro_flag_character_list
# target = root
# }
# save_scope_value_as = {
# name = start
# value = yes
# }
#
# # LOC SCOPES
# character:34010 = { save_scope_as = Mutawakkil } # Stabbed by guards
# character:34012 = { save_scope_as = Muntasir } # Poisoned probably
# character:34013 = { save_scope_as = Mustain } # Betrayed by bookmark character (?) (Note: this char is listed as 3933 in some other files for some reason)
# character:34014 = { save_scope_as = Mostaza } # Bookmark ruler
# }
# option = {
# name = {
# text = {
# first_valid = {
# triggered_desc = {
# trigger = {
# any_character_struggle = { is_struggle_type = persian_struggle }
# has_title = character:34014.primary_title
# }
# desc = fp3_struggle.0051.b
# }
# desc = fp3_struggle.0051.a
# }
# }
# }
# clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_start_select"
# }
#}
#
##################################################
## Struggle Endings #
## By Hugo Cortell, Maxence Voleau, Ola Jentzsch & Eren Humphrey #
####################################################################
## Script is set up in this way to prevent out of order executions #
####################################################################
#
#### STRENGTHEN CALIPHATE ENDING ### 0071 = 0080 ###
#fp3_struggle.0071 = { # Strengthen the Caliphate Ending
# type = character_event
# window = fullscreen_event
# title = fp3_struggle.0071.t
# desc = {
# first_valid = {
# triggered_desc = {
# trigger = {
# fp3_struggle_is_the_caliph = yes
# }
# desc = fp3_struggle.0071.desc.caliph
# }
# triggered_desc = {
# trigger = {
# has_trait = fp3_struggle_supporter
# }
# desc = fp3_struggle.0071.desc.supporter
# }
# }
# }
# theme = court
# override_background = { reference = fp3_fullscreen_strength }
# override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_animate" }
#
# immediate = {
# fp3_ending_effects_assertion = yes
# character:34014 = { save_scope_as = Mostaza } # Bookmark ruler
# play_music_cue = struggleend_cue
# }
#
# option = {
# name = fp3_struggle.0071.a
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_positive"
#
# ai_chance = {
# base = 75
#
# modifier = {
# factor = 0.1
# realm_size >= 250
# }
# }
# }
#
# option = {
# trigger = {
# has_dlc_feature = roads_to_power
# fp3_struggle_is_the_caliph = yes
# NOT = { government_has_flag = government_is_administrative }
# }
# name = fp3_struggle.0071.b
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_positive"
#
# convert_to_administrative_from_feudalism_effect = { GOVERNMENT_TO_ADOPT = flag:administrative }
# add_legitimacy_effect = { LEGITIMACY = admin_convert_legitimacy_value } #One Time Legitimacy Boost
#
# ai_chance = {
# base = 0
#
# modifier = {
# add = 25
# realm_size >= 75
# }
# modifier = {
# add = 25
# realm_size >= 100
# }
# modifier = {
# add = 25
# realm_size >= 125
# }
# modifier = {
# add = 25
# realm_size >= 150
# }
# modifier = {
# add = 50
# realm_size >= 200
# }
# }
# }
#
# after = {
# fp3_end_persian_struggle_effect = {
# ENDING = struggle_persia_ending_assertion_decision
# EVENT = fp3_struggle.0072
# FLAG = flag:fp3_struggle_strengthen_caliphate_ending
# }
# }
#}
#
#fp3_struggle.0072 = { # Notification for relevant people
# type = character_event
# window = fullscreen_event
# title = fp3_struggle.0071.t
# desc = {
# first_valid = {
# triggered_desc = {
# trigger = {
# fp3_struggle_is_the_caliph = yes
# }
# desc = fp3_struggle.0072.desc.caliph
# }
# triggered_desc = {
# trigger = {
# has_trait = fp3_struggle_supporter
# }
# desc = fp3_struggle.0072.desc.supporter
# }
# triggered_desc = {
# trigger = {
# has_trait = fp3_struggle_detractor
# }
# desc = fp3_struggle.0072.desc.detractor
# }
#
# triggered_desc = {
# trigger = {
# any_character_struggle = {
# involvement = involved
# is_struggle_type = persian_struggle
# }
# }
# desc = fp3_struggle.0072.desc.involved
# }
# triggered_desc = {
# trigger = {
# any_character_struggle = {
# involvement = interloper
# is_struggle_type = persian_struggle
# }
# }
# desc = fp3_struggle.0072.desc.interloper
# }
# desc = fp3_struggle.0072.desc.uninvolved
# }
# }
# theme = court
# override_background = { reference = fp3_fullscreen_strength }
# override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_animate" }
#
# trigger = {
# NOT = { has_character_flag = struggle_end_notification }
# }
#
# immediate = {
# show_as_tooltip = { struggle:persian_struggle = { end_struggle = yes } }
# add_character_flag = struggle_end_notification
#
# play_music_cue = struggleend_cue
# }
#
# option = {
# name = fp3_struggle.0072.a
# trigger = {
# OR = {
# fp3_struggle_is_the_caliph = yes
# has_trait = fp3_struggle_supporter
# }
# }
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_positive"
# }
#
# option = {
# name = fp3_struggle.0072.a
# trigger = {
# NOR = {
# fp3_struggle_is_the_caliph = yes
# has_trait = fp3_struggle_supporter
# }
# }
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_negative"
# }
# after = {
# remove_character_flag = struggle_end_notification
# }
#}
#
#### CONCESSION ENDING ### 0081 = 0090 ###
#
#fp3_struggle.0081 = { #
# type = character_event
# window = fullscreen_event
# title = fp3_struggle.0082.t
# desc = {
# first_valid = {
# triggered_desc = {
# trigger = { has_trait = fp3_struggle_supporter }
# desc = fp3_struggle.0082.desc.supporter
# }
# triggered_desc = {
# trigger = { has_trait = fp3_struggle_detractor }
# desc = fp3_struggle.0082.desc.detractor
# }
# triggered_desc = {
# trigger = {
# any_character_struggle = {
# involvement = involved
# is_struggle_type = persian_struggle
# }
# }
# desc = {
# desc = fp3_struggle.0082.desc.intro
# desc = fp3_struggle.0082.desc.involved
# }
# }
# triggered_desc = {
# trigger = {
# any_character_struggle = {
# involvement = interloper
# is_struggle_type = persian_struggle
# }
# }
# desc = {
# desc = fp3_struggle.0082.desc.intro
# desc = fp3_struggle.0082.desc.interloper
# }
# }
# desc = fp3_struggle.0082.desc.uninvolved
# }
# }
# theme = court
# override_background = { reference = fp3_fullscreen_concession }
# override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_animate" }
#
# immediate = {
# play_music_cue = struggleend_cue
# }
#
# option = {
# name = fp3_struggle.0082.a
# show_as_tooltip = {
# struggle:persian_struggle = { end_struggle = yes }
# fp3_struggle_ending_concession_effects = yes
# }
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_negative"
# }
#
# after = {
# fp3_end_persian_struggle_effect = {
# ENDING = yes
# EVENT = fp3_struggle.0082
# FLAG = flag:fp3_struggle_concession_ending
# }
# }
#}
#
#fp3_struggle.0082 = { # Notification for relevant people
# type = character_event
# window = fullscreen_event
# title = fp3_struggle.0082.t
# desc = {
# first_valid = {
# triggered_desc = {
# trigger = { has_trait = fp3_struggle_supporter }
# desc = fp3_struggle.0082.desc.supporter
# }
# triggered_desc = {
# trigger = { has_trait = fp3_struggle_detractor }
# desc = fp3_struggle.0082.desc.detractor
# }
# triggered_desc = {
# trigger = { exists = scope:involved }
# desc = {
# desc = fp3_struggle.0082.desc.intro
# desc = fp3_struggle.0082.desc.involved
# }
# }
# triggered_desc = {
# trigger = { exists = scope:interloper }
# desc = {
# desc = fp3_struggle.0082.desc.intro
# desc = fp3_struggle.0082.desc.interloper
# }
# }
# desc = fp3_struggle.0082.desc.uninvolved
# }
# }
# theme = court
# override_background = { reference = fp3_fullscreen_concession }
# override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_animate" }
# # There could, and should, be a event_window_widget_struggle_info widget here
#
# immediate = {
# if = {
# limit = {
# any_character_struggle = {
# involvement = involved
# is_struggle_type = persian_struggle
# }
# }
# save_scope_as = involved
# }
# else_if = {
# limit = {
# any_character_struggle = {
# involvement = interloper
# is_struggle_type = persian_struggle
# }
# }
# save_scope_as = interloper
# }
# show_as_tooltip = {
# struggle:persian_struggle ?= { end_struggle = yes }
# fp3_struggle_ending_concession_effects = yes
# }
# play_music_cue = struggleend_cue
# }
#
# option = {
# name = fp3_struggle.0082.b
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_negative"
# }
#}
#
#### FOUNDATION ENDINGS ### 0091 = 0180 ###
#fp3_struggle.0091 = { # Rekindle Iran
# type = character_event
# window = fullscreen_event
# title = fp3_struggle.0091.t
# desc = {
# first_valid = {
# triggered_desc = {
# trigger = {
# has_trait = fp3_struggle_supporter
# }
# desc = fp3_struggle.0091.desc.supporter
# }
# triggered_desc = {
# trigger = {
# has_trait = fp3_struggle_detractor
# }
# desc = fp3_struggle.0091.desc.detractor
# }
# }
# }
# theme = court
# override_background = { reference = fp3_fullscreen_rekindle }
# override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_animate" }
#
# immediate = {
# save_scope_as = struggle_ender
# # Save Sunni caliph or previous one as scope:struggle_liege
# fp3_save_sunni_caliph_or_previous_effect = yes
# title:e_persia = { save_scope_as = persia_loc } # Persia gets renamed under clan govs
#
# fp3_struggle_rekindle_iran_effects = yes
#
# play_music_cue = struggleend_cue
#
# dynasty:1029100 = { save_scope_as = sassanid_dynasty }
# }
#
# option = {
# name = fp3_struggle.0091.a
#
# show_as_tooltip = { struggle:persian_struggle = { end_struggle = yes } }
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_positive"
# }
#
# after = {
# fp3_end_persian_struggle_effect = {
# ENDING = struggle_persia_ending_rekindle_iran_decision
# EVENT = fp3_struggle.0092
# FLAG = flag:fp3_struggle_rekindle_iran_ending
# }
# }
#}
#
#fp3_struggle.0092 = { # Notification for relevant people
# type = character_event
# window = fullscreen_event
# title = fp3_struggle.0091.t
# desc = {
# desc = fp3_struggle.0092.intro
# first_valid = {
# triggered_desc = {
# trigger = {
# culture = { has_cultural_pillar = heritage_iranian }
# }
# desc = fp3_struggle.0092.desc.iranian
# }
# desc = fp3_struggle.0092.desc.non-iranian
# }
# }
# theme = court
# override_background = { reference = fp3_fullscreen_rekindle }
# override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_animate" }
# # There could, and should, be a event_window_widget_struggle_info widget here
#
# immediate = {
# show_as_tooltip = {
# struggle:persian_struggle = { end_struggle = yes }
# fp3_struggle_rekindle_iran_effects = yes
# }
# play_music_cue = struggleend_cue
# }
#
# option = {
# name = fp3_struggle.0092.a
# trigger = {
# culture = { has_cultural_pillar = heritage_iranian }
# }
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_positive"
# }
#
# option = {
# name = fp3_struggle.0092.a
# trigger = {
# NOT = {
# culture = { has_cultural_pillar = heritage_iranian }
# }
# }
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_negative"
# }
#}
#
#fp3_struggle.0095 = { # Temper the Caliphate, Shia Ending
# type = character_event
# window = fullscreen_event
# title = fp3_struggle.0095.t
# desc = {
# first_valid = {
# triggered_desc = {
# trigger = {
# faith = {
# OR = {
# has_doctrine = muhammad_succession_shia_doctrine
# has_doctrine = muhammad_succession_zandaqa_doctrine
# }
# }
# }
# desc = fp3_struggle.0095.desc.shia_and_zandaqa
# }
# triggered_desc = {
# trigger = {
# faith = {
# has_doctrine = muhammad_succession_muhakkima_doctrine
# }
# }
# desc = fp3_struggle.0095.desc.muhakkima
# }
# desc = fp3_struggle.0095.desc.fallback
# }
# }
# theme = court
# override_background = { reference = fp3_fullscreen_temper }
# override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_animate" }
#
# immediate = {
# root = { save_scope_as = struggle_ender }
# # Save Sunni caliph or previous one as scope:struggle_liege
# fp3_save_sunni_caliph_or_previous_effect = yes
# character:34005 = { save_scope_as = harun_the_rightly_guided }
#
# fp3_struggle_ending_shia_caliphate_effects = yes
#
# play_music_cue = struggleend_cue
#
# character:33911 = { save_scope_as = ali }
#
# }
#
# option = {
# name = fp3_struggle.0095.a
# show_as_tooltip = { struggle:persian_struggle = { end_struggle = yes } }
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_positive"
# }
#
# after = {
# fp3_end_persian_struggle_effect = {
# ENDING = struggle_persia_ending_foundation_decision
# EVENT = fp3_struggle.0096
# FLAG = flag:fp3_struggle_shia_caliphate_ending
# }
# }
#}
#
#fp3_struggle.0096 = { # Notification for relevant people
# type = character_event
# window = fullscreen_event
# title = fp3_struggle.0095.t
# desc = {
# first_valid = {
# triggered_desc = {
# trigger = {
# has_trait = fp3_struggle_supporter
# }
# desc = fp3_struggle.0096.desc.supporter
# }
# triggered_desc = {
# trigger = {
# has_trait = fp3_struggle_detractor
# }
# desc = fp3_struggle.0096.desc.detractor
# }
#
# triggered_desc = {
# trigger = {
# any_character_struggle = {
# involvement = involved
# is_struggle_type = persian_struggle
# }
# }
# desc = fp3_struggle.0096.desc.involved
# }
# triggered_desc = {
# trigger = {
# any_character_struggle = {
# involvement = interloper
# is_struggle_type = persian_struggle
# }
# }
# desc = fp3_struggle.0096.desc.interloper
# }
# desc = fp3_struggle.0096.desc.uninvolved
# }
# }
# theme = court
# override_background = { reference = fp3_fullscreen_temper }
# override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_animate" }
# # There could, and should, be a event_window_widget_struggle_info widget here
#
# immediate = {
# play_music_cue = struggleend_cue
# show_as_tooltip = {
# fp3_struggle_ending_shia_caliphate_effects = yes
# struggle:persian_struggle = { end_struggle = yes }
# }
# }
#
# option = {
# name = fp3_struggle.0096.a
# trigger = {
# NOR = {
# has_trait = fp3_struggle_supporter
# faith = { has_doctrine = muhammad_succession_sunni_doctrine }
# }
# }
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_positive"
# }
#
# option = {
# name = fp3_struggle.0096.a
# trigger = {
# OR = {
# has_trait = fp3_struggle_supporter
# faith = { has_doctrine = muhammad_succession_sunni_doctrine }
# }
# }
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_negative"
# }
#}
#
#fp3_struggle.0100 = { # Temper the Caliphate, Vassalize Caliphate Ending
# type = character_event
# window = fullscreen_event
# title = fp3_struggle.0100.t
# desc = {
# first_valid = {
# triggered_desc = {
# trigger = {
# faith = {
# OR = {
# has_doctrine = muhammad_succession_shia_doctrine
# has_doctrine = muhammad_succession_zandaqa_doctrine
# }
# }
# }
# desc = fp3_struggle.0100.desc.shia_and_zandaqa
# }
# triggered_desc = {
# trigger = {
# faith = { has_doctrine = muhammad_succession_muhakkima_doctrine }
# }
# desc = fp3_struggle.0100.desc.muhakkima
# }
# desc = fp3_struggle.0100.desc
# }
# }
#
# theme = court
# override_background = { reference = fp3_fullscreen_temper }
# override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_animate" }
#
# immediate = {
# root = { save_scope_as = struggle_ender }
# title:d_sunni.holder = { save_scope_as = struggle_liege }
# fp3_struggle_ending_vassalize_caliph_effects = yes
#
# play_music_cue = struggleend_cue
# }
#
# option = {
# name = fp3_struggle.0100.a
# show_as_tooltip = { struggle:persian_struggle = { end_struggle = yes } }
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_positive"
# }
#
# after = {
# fp3_end_persian_struggle_effect = {
# ENDING = struggle_persia_ending_foundation_decision
# EVENT = fp3_struggle.0101
# FLAG = flag:fp3_struggle_vassalize_caliph_ending
# }
# }
#}
#
#fp3_struggle.0101 = { # Notification for relevant people
# type = character_event
# window = fullscreen_event
# title = fp3_struggle.0100.t
# desc = {
# first_valid = {
# triggered_desc = {
# trigger = {
# has_trait = fp3_struggle_supporter
# }
# desc = fp3_struggle.0101.desc.supporter
# }
# triggered_desc = {
# trigger = {
# has_trait = fp3_struggle_detractor
# }
# desc = fp3_struggle.0101.desc.detractor
# }
#
# triggered_desc = {
# trigger = {
# any_character_struggle = {
# involvement = involved
# is_struggle_type = persian_struggle
# }
# }
# desc = fp3_struggle.0101.desc.involved
# }
# triggered_desc = {
# trigger = {
# any_character_struggle = {
# involvement = interloper
# is_struggle_type = persian_struggle
# }
# }
# desc = fp3_struggle.0101.desc.interloper
# }
# desc = fp3_struggle.0101.desc.uninvolved
# }
# }
# theme = court
# override_background = { reference = fp3_fullscreen_temper }
# override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_animate" }
#
# immediate = {
# show_as_tooltip = { struggle:persian_struggle = { end_struggle = yes } }
#
# play_music_cue = struggleend_cue
# }
#
# option = {
# name = fp3_struggle.0101.a
# trigger = {
# NOR = {
# has_trait = fp3_struggle_supporter
# faith = { has_doctrine = muhammad_succession_sunni_doctrine }
# }
# }
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_positive"
# }
#
# option = {
# name = fp3_struggle.0101.a
# trigger = {
# OR = {
# has_trait = fp3_struggle_supporter
# faith = { has_doctrine = muhammad_succession_sunni_doctrine }
# }
# }
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_negative"
# }
#}
#
#### SUNDERING THE CALIPHATE ### 0191 = 0200 ###
#fp3_struggle.0191 = { # Sunder the Caliphate
# type = character_event
# title = fp3_struggle.0191.t
# desc = fp3_struggle.0191.desc
# theme = court
# left_portrait = {
# character = scope:sunderer
# animation = war_over_win
# }
# lower_right_portrait = scope:struggle_liege
#
# immediate = {
# # Select the caliph and destroy their title
# fp3_sundered_caliphate_effects = yes
# }
#
# option = {
# name = fp3_struggle.0191.a
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_positive"
# }
#}
#
#fp3_struggle.0192 = { # Notification for relevant people
# type = character_event
# title = fp3_struggle.0192.t
#
# desc = {
# first_valid = {
# triggered_desc = {
# trigger = {
# fp3_struggle_is_the_caliph = yes
# }
# desc = fp3_struggle.0192.desc.caliph
# }
# triggered_desc = {
# trigger = {
# OR = {
# has_trait = fp3_struggle_supporter
# is_vassal_of = scope:struggle_liege
# }
# }
# desc = fp3_struggle.0192.desc.supporter_or_vassal
# }
# triggered_desc = {
# trigger = {
# has_trait = fp3_struggle_detractor
# }
# desc = fp3_struggle.0192.desc.detractor
# }
# }
# }
#
#
# theme = court
# override_background = { reference = fp3_fullscreen_sunder }
# override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_animate" }
# left_portrait = {
# character = scope:sunderer
# animation = war_over_win
# }
# lower_right_portrait = scope:struggle_liege
#
# option = {
# name = fp3_struggle.0192.c
# trigger = {
# NOR = {
# fp3_struggle_is_the_caliph = yes
# has_trait = fp3_struggle_supporter
# }
# }
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_positive"
# }
#
# option = {
# name = fp3_struggle.0192.b
# trigger = {
# OR = {
# fp3_struggle_is_the_caliph = yes
# has_trait = fp3_struggle_supporter
# }
# }
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_negative"
# }
#}
#
####################################
## FP3 casus belli events
## By Joe Parkin
####################################
#
## Install loyal puppet - declared puppet ping
#fp3_struggle.8000 = {
# type = letter_event
# opening = fp3_struggle.8000.t
# desc = {
# desc = fp3_struggle.8000.desc
# }
# sender = scope:attacker
#
# immediate = {
# send_interface_message = {
# type = event_struggle_neutral
# title = install_loyalist_puppet_declared_puppet
# left_icon = scope:attacker
# right_icon = scope:defender
# show_as_tooltip = {
# scope:attacker = {
# start_war = {
# casus_belli = "fp3_install_loyalist_cb"
# target = scope:defender
# }
# }
# }
# }
# }
#
# # Indeed?
# option = {
# name = fp3_struggle.8000.a
# }
#}
#
## Install loyal puppet - declared defender ping
#fp3_struggle.8001 = {
# type = letter_event
# opening = fp3_struggle.8000.t
# desc = {
# desc = fp3_struggle.8001.desc
# }
# sender = scope:attacker
#
# immediate = {
# send_interface_message = {
# type = event_struggle_bad
# title = install_loyalist_puppet_declared_defender
# left_icon = scope:attacker
# right_icon = scope:loyalist_puppet
# show_as_tooltip = {
# scope:attacker = {
# start_war = {
# casus_belli = "fp3_install_loyalist_cb"
# target = scope:defender
# }
# }
# }
# }
# }
#
# # Outrageous!
# option = {
# name = fp3_struggle.8001.a
# }
#}
#
## Install loyal puppet - won puppet ping
#fp3_struggle.8002 = {
# type = letter_event
# opening = fp3_struggle.8000.t
# desc = {
# desc = fp3_struggle.8002.desc
# }
# sender = scope:attacker
#
# immediate = {
# send_interface_message = {
# type = event_struggle_good
# title = install_loyalist_puppet_won_puppet
# left_icon = scope:attacker
# right_icon = scope:defender
# show_as_tooltip = {
# every_in_list = {
# list = title_to_steal
# save_scope_as = stolen_title
# root = { get_title = scope:stolen_title }
# }
# custom_tooltip = fp3_struggle.8002.alliance_tt
# if = {
# limit = { scope:defender.imprisoner ?= root }
# imprison = {
# target = scope:defender
# type = house_arrest
# }
# }
# }
# }
# }
#
# # Ok!
# option = {
# name = fp3_struggle.8002.a
# }
#}
#
####################################
## Integrity Validation Events
## By Hugo Cortell
####################################
#fp3_struggle.9980 = { # Validation of title
# type = character_event
# orphan = yes
# title = {
# desc = Hugo
# desc = game_concept_struggle_struggles
# desc = number_two
# desc = debug
# }
# desc = {
# desc = historical_commander_trait.0003.d
# desc = stress_threshold.3201.depressed.effect
# }
#
# theme = mental_break
# left_portrait = title:e_arabia.holder
#
# immediate = { title:e_arabia.holder = { add_piety = 30000 } } # Hard title validation
#
# option = {
# name = {
# text = {
# desc = martial_chivalry.2015.a
# desc = rivalry.1016.a.exposed
# }
# }
# }
#}
#
#fp3_struggle.9981 = { # Destroy e_arabia (used mostly for checking invalidations)
# hidden = yes
# orphan = yes
# immediate = { destroy_title = title:e_arabia }
#}
#
#fp3_struggle.9982 = { # Revision 2 nav event, to make QA's life easier and avoid unecessary crashes
# type = character_event
# title = {
# desc = Hugo
# desc = CHARACTER_POSS
# desc = intrigue_broken_modifier
# desc = game_concept_struggle
# desc = MENU
# }
# desc = {
# desc = bp1_yearly.9018.c
# desc = double_line_break
# desc = childhood.7400_mother_dead
# desc = double_line_break
# desc = yearly.7021.b
# }
#
# orphan = yes
# theme = mental_break
#
# option = { # Dynamically start a struggle
# trigger = { NOT = { exists = struggle:persian_struggle } }
# name = FRONTEND_MP_GAME_SETUP_HOST_NEW_GAME
#
# random_ruler = {
# limit = {
# top_liege = this
# location ?= { geographical_region = world_persian_empire }
# }
# primary_title = { save_scope_as = debug_caliph }
# }
# start_struggle = {
# struggle_type = persian_struggle
# start_phase = struggle_persia_phase_stabilisation
# }
#
# send_interface_message = { # Informs you of who the "debug caliph" is
# type = event_martial_bad
# title = trait_beauty_bad_1_desc
# left_icon = scope:debug_caliph
# right_icon = scope:debug_caliph.holder
# }
# }
# option = { # Go forward in the struggle flow
# name = dynn_Daflos_motto
# trigger = { exists = struggle:persian_struggle }
#
# if = {
# limit = { struggle:persian_struggle = { is_struggle_phase = struggle_persia_phase_unrest } }
# struggle:persian_struggle = { change_struggle_phase = { struggle_phase = struggle_persia_ending_phase_concession } }
# }
# else_if = {
# limit = { struggle:persian_struggle = { is_struggle_phase = struggle_persia_phase_stabilisation } }
# struggle:persian_struggle = { change_struggle_phase = { struggle_phase = struggle_persia_phase_unrest with_transition = yes } }
# }
# }
# option = { # Go backwards in the struggle flow
# name = default_retreat
# trigger = { exists = struggle:persian_struggle }
#
# if = {
# limit = { struggle:persian_struggle = { is_struggle_phase = struggle_persia_phase_unrest } }
# struggle:persian_struggle = { change_struggle_phase = { struggle_phase = struggle_persia_phase_stabilisation } }
# }
# }
# option = { name = EXIT_TO_DESKTOP } # Exit event without doing anything
#}
#
#fp3_struggle.9983 = { # Create Persian Empire Test
# hidden = yes
# orphan = yes
# immediate = {
# create_title_and_vassal_change = {
# type = created
# save_scope_as = change
# }
# title:e_persia = {
# change_title_holder = {
# holder = root
# change = scope:change
# }
# }
# resolve_title_and_vassal_change = scope:change
# }
#}
#
#fp3_struggle.9984 = { # Ending simulator - Allows you to end the struggle in a clean way, works better/is safer than commands
# type = character_event
# window = fullscreen_event
# title = ENDING_DECISION_AVAILABLE
# desc = ENDING_DECISION_BUTTON_LABEL_MULTIPLE
# orphan = yes
# theme = realm
# override_background = { reference = fp3_fullscreen_strength }
# override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_animate" }
#
# widgets = {
# widget = {
# gui = "event_window_widget_struggle_info"
# container = "dynamic_content_widget"
# controller = struggle_info
# setup_scope = { struggle:persian_struggle = { save_scope_as = struggle } }
# }
# }
#
# immediate = {
# # Save Sunni caliph or previous one as scope:struggle_liege
# fp3_save_sunni_caliph_or_previous_effect = yes
# }
#
# option = { # Concession
# name = struggle_persia_ending_phase_concession
# save_scope_value_as = {
# name = ending_to_simulate
# value = flag:concession
# }
# trigger_event = fp3_struggle.9985
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_positive"
# }
#
#
# option = { # Assertion (Strengthen)
# name = struggle_persia_ending_assertion
# save_scope_value_as = {
# name = ending_to_simulate
# value = flag:strength
# }
# trigger_event = fp3_struggle.9985
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_positive"
# }
#
# option = { # Sunni Caliphate
# name = struggle_persia_ending_foundation_decision_option_shia
# save_scope_value_as = {
# name = ending_to_simulate
# value = flag:sunni
# }
# trigger_event = fp3_struggle.9985
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_positive"
# }
#
# option = { # Consume/Vassalize
# name = struggle_persia_ending_foundation_decision_option_vassalize
# save_scope_value_as = {
# name = ending_to_simulate
# value = flag:vassal
# }
# trigger_event = fp3_struggle.9985
# clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_positive"
# }
#
# option = { name = EXIT_TO_DESKTOP }
#}
#
#fp3_struggle.9985 = { # Simulator Follow-up (keeps it hidden and clean to prevent QA panic)
# hidden = yes
# immediate = {
# struggle:persian_struggle = {
# # Ensure we are in the correct position to fire the ending
# if = {
# limit = {
# scope:ending_to_simulate = flag:strength
# is_struggle_phase = struggle_persia_phase_unrest
# }
# change_struggle_phase = { struggle_phase = struggle_persia_phase_stabilisation }
# }
# else_if = {
# limit = {
# OR = {
# scope:ending_to_simulate = flag:sunni
# scope:ending_to_simulate = flag:vassal
# }
# is_struggle_phase = struggle_persia_phase_stabilisation
# }
# change_struggle_phase = { struggle_phase = struggle_persia_phase_unrest }
# }
# }
# # Cases for firing the correct phase
# switch = {
# trigger = scope:ending_to_simulate
# flag:concession = { trigger_event = fp3_struggle.0081 }
# flag:sunni = { trigger_event = fp3_struggle.0095 }
# flag:vassal = { trigger_event = fp3_struggle.0100 }
# flag:strength = { trigger_event = fp3_struggle.0071 }
#
# fallback = {
# assert_if = {
# limit = { always = yes }
# text = "FP3 ENDING SIMULATION DEBUG TOOL ERROR: NO VALID scope:ending_to_simulate STATE!"
# }
# }
# }
# }
#}
#