namespace = tgp_dynastic_cycle ### EVENT LIST #################################################################### ## 0001 - 0020 Internal Management Events ## 0021 - 0030 Invalidation Events ## 0051 - 0060 TGP situation Intro Events ## 0061 - 0070 Realm Shattering Events ## 0071 - 0300 situation Endings ## XXXX - XXXX Event Name Here by Author Name Here ## 9980 - 9999 Integrity Validation Tools ################################################################################### ################################### # TGP Maintenance Events # By Joe Parkin ################################### scripted_trigger tgp_dynastic_cycle_0001_valid_ai_situation_char_trigger = { # Basic checks. is_ai = yes } tgp_dynastic_cycle.0001 = { hidden = yes scope = situation # If the situation ends, break the loop. trigger = { exists = situation:dynastic_cycle } immediate = { # Cue this event up again for the next time around. trigger_event = { id = tgp_dynastic_cycle.0001 years = { 3 5 } } } } ################################### # TGP Intro Events # By Joe Parkin ################################### tgp_dynastic_cycle.0051 = { # BOOKMARK EVENT type = character_event window = fullscreen_event title = tgp_dynastic_cycle.0051.t desc = { first_valid = { triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } } desc = tgp_dynastic_cycle.0051.desc.advancement } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion } } desc = tgp_dynastic_cycle.0051.desc.expansion } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_instability_conquest } } desc = tgp_dynastic_cycle.0051.desc.conquest } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_instability } } desc = tgp_dynastic_cycle.0051.desc.corruption } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_chaos } } desc = tgp_dynastic_cycle.0051.desc.consolidation } } first_valid = { triggered_desc = { trigger = { top_participant_group:dynastic_cycle ?= { participant_group_type = hegemon_ruler } } desc = tgp_dynastic_cycle.0051.desc.emperor } triggered_desc = { trigger = { top_participant_group:dynastic_cycle ?= { participant_group_type = advancement_movement } } desc = tgp_dynastic_cycle.0051.desc.advancement_movement } triggered_desc = { trigger = { top_participant_group:dynastic_cycle ?= { participant_group_type = expansion_movement } } desc = tgp_dynastic_cycle.0051.desc.expansion_movement } triggered_desc = { trigger = { top_participant_group:dynastic_cycle ?= { participant_group_type = pro_hegemon_movement } } desc = tgp_dynastic_cycle.0051.desc.pro_hegemon_movement } triggered_desc = { trigger = { top_participant_group:dynastic_cycle ?= { participant_group_type = conservative_movement } } desc = tgp_dynastic_cycle.0051.desc.conservative_movement } triggered_desc = { trigger = { top_participant_group:dynastic_cycle ?= { participant_group_type = undecided_movement } } desc = tgp_dynastic_cycle.0051.desc.unaligned_movement } desc = tgp_dynastic_cycle.0051.desc.interloper } } theme = dynastic_cycle trigger = { # we need to prevent this from firing for all players when a new player joins in MP is_ai = no is_player_tutorial_character = no NOT = { has_character_flag = tgp_dynastic_cycle_intro_event_flag } tgp_is_hegemon_or_below_in_dynastic_cycle_trigger = yes } #chaos override_background = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_chaos } } reference = tgp_fullscreen_dynastic_cycle_chaos } #conquest & instability override_background = { trigger = { situation:dynastic_cycle = { OR = { situation_current_phase = situation_dynastic_cycle_phase_instability_conquest situation_current_phase = situation_dynastic_cycle_phase_instability } } } reference = tgp_fullscreen_dynastic_cycle_instability } #expansion & advancement override_background = { trigger = { situation:dynastic_cycle = { OR = { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } } } reference = tgp_fullscreen_dynastic_cycle_stability } cooldown = { years = 100 } widgets = { widget = { gui = "event_window_widget_situation_info_dynastic_cycle" container = "dynamic_content_widget" controller = situation_info setup_scope = { situation:dynastic_cycle = { save_scope_as = situation } } } } immediate = { play_music_cue = mx_cue_tgp_dynastic_cycle_start add_character_flag = tgp_dynastic_cycle_intro_event_flag save_scope_value_as = { name = start value = yes } } option = { name = { text = tgp_dynastic_cycle.0051.a.emperor trigger = { title:h_china.holder ?= root } } name = { text = tgp_dynastic_cycle.0051.a.involved trigger = { top_participant_group:dynastic_cycle ?= { NOR = { participant_group_type = hegemon_ruler participant_group_type = other_rulers } } } } name = { text = tgp_dynastic_cycle.0051.a.interloper trigger = { top_participant_group:dynastic_cycle ?= { participant_group_type = other_rulers } } } clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_start_select" } } tgp_dynastic_cycle.0052 = { # JOINED MOVEMENT - Unaligned type = character_event window = fullscreen_event title = tgp_dynastic_cycle.0052.t desc = { desc = tgp_dynastic_cycle.0052.desc.intro first_valid = { triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } } desc = tgp_dynastic_cycle.0052.desc.advancement } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion } } desc = tgp_dynastic_cycle.0052.desc.expansion } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_instability_conquest } } desc = tgp_dynastic_cycle.0052.desc.conquest } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_instability } } desc = tgp_dynastic_cycle.0052.desc.instability } } } theme = dynastic_cycle trigger = { is_ai = no current_date_is_start_date_trigger = no } #conquest & instability override_background = { trigger = { situation:dynastic_cycle = { OR = { situation_current_phase = situation_dynastic_cycle_phase_instability_conquest situation_current_phase = situation_dynastic_cycle_phase_instability } } } reference = tgp_fullscreen_dynastic_cycle_instability } #expansion & advancement override_background = { trigger = { situation:dynastic_cycle = { OR = { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } } } reference = tgp_fullscreen_dynastic_cycle_stability } widgets = { widget = { gui = "event_window_widget_situation_info_dynastic_cycle" container = "dynamic_content_widget" controller = situation_info setup_scope = { situation:dynastic_cycle = { save_scope_as = situation } } } } immediate = { top_participant_group:dynastic_cycle = { save_scope_as = my_movement } custom_tooltip = intro_event_joined_movement } option = { name = tgp_dynastic_cycle.0052.a clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_start_select" } } tgp_dynastic_cycle.0053 = { # JOINED MOVEMENT - Expansion type = character_event window = fullscreen_event title = tgp_dynastic_cycle.0053.t desc = { desc = tgp_dynastic_cycle.0053.desc.intro first_valid = { triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } } desc = tgp_dynastic_cycle.0053.desc.advancement } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion } } desc = tgp_dynastic_cycle.0053.desc.expansion } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_instability_conquest } } desc = tgp_dynastic_cycle.0053.desc.conquest } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_instability } } desc = tgp_dynastic_cycle.0053.desc.instability } } } theme = dynastic_cycle trigger = { is_ai = no current_date_is_start_date_trigger = no } #conquest & instability override_background = { trigger = { situation:dynastic_cycle = { OR = { situation_current_phase = situation_dynastic_cycle_phase_instability_conquest situation_current_phase = situation_dynastic_cycle_phase_instability } } } reference = tgp_fullscreen_dynastic_cycle_instability } #expansion & advancement override_background = { trigger = { situation:dynastic_cycle = { OR = { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } } } reference = tgp_fullscreen_dynastic_cycle_stability } widgets = { widget = { gui = "event_window_widget_situation_info_dynastic_cycle" container = "dynamic_content_widget" controller = situation_info setup_scope = { situation:dynastic_cycle = { save_scope_as = situation } } } } immediate = { top_participant_group:dynastic_cycle = { save_scope_as = my_movement } custom_tooltip = intro_event_joined_movement } option = { name = tgp_dynastic_cycle.0053.a clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_start_select" } } tgp_dynastic_cycle.0054 = { # JOINED MOVEMENT - Advancement type = character_event window = fullscreen_event title = tgp_dynastic_cycle.0054.t desc = { desc = tgp_dynastic_cycle.0054.desc.intro first_valid = { triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } } desc = tgp_dynastic_cycle.0054.desc.advancement } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion } } desc = tgp_dynastic_cycle.0054.desc.expansion } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_instability_conquest } } desc = tgp_dynastic_cycle.0054.desc.conquest } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_instability } } desc = tgp_dynastic_cycle.0054.desc.instability } } } theme = dynastic_cycle trigger = { is_ai = no current_date_is_start_date_trigger = no } #conquest & instability override_background = { trigger = { situation:dynastic_cycle = { OR = { situation_current_phase = situation_dynastic_cycle_phase_instability_conquest situation_current_phase = situation_dynastic_cycle_phase_instability } } } reference = tgp_fullscreen_dynastic_cycle_instability } #expansion & advancement override_background = { trigger = { situation:dynastic_cycle = { OR = { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } } } reference = tgp_fullscreen_dynastic_cycle_stability } widgets = { widget = { gui = "event_window_widget_situation_info_dynastic_cycle" container = "dynamic_content_widget" controller = situation_info setup_scope = { situation:dynastic_cycle = { save_scope_as = situation } } } } immediate = { top_participant_group:dynastic_cycle = { save_scope_as = my_movement } custom_tooltip = intro_event_joined_movement } option = { name = tgp_dynastic_cycle.0054.a clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_start_select" } } tgp_dynastic_cycle.0055 = { # JOINED MOVEMENT - Pro-Hegemon type = character_event window = fullscreen_event title = tgp_dynastic_cycle.0055.t desc = { desc = tgp_dynastic_cycle.0055.desc.intro first_valid = { triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } } desc = tgp_dynastic_cycle.0055.desc.advancement } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion } } desc = tgp_dynastic_cycle.0055.desc.expansion } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_instability_conquest } } desc = tgp_dynastic_cycle.0055.desc.conquest } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_instability } } desc = tgp_dynastic_cycle.0055.desc.instability } } } theme = dynastic_cycle trigger = { is_ai = no current_date_is_start_date_trigger = no } #conquest & instability override_background = { trigger = { situation:dynastic_cycle = { OR = { situation_current_phase = situation_dynastic_cycle_phase_instability_conquest situation_current_phase = situation_dynastic_cycle_phase_instability } } } reference = tgp_fullscreen_dynastic_cycle_instability } #expansion & advancement override_background = { trigger = { situation:dynastic_cycle = { OR = { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } } } reference = tgp_fullscreen_dynastic_cycle_stability } widgets = { widget = { gui = "event_window_widget_situation_info_dynastic_cycle" container = "dynamic_content_widget" controller = situation_info setup_scope = { situation:dynastic_cycle = { save_scope_as = situation } } } } immediate = { top_participant_group:dynastic_cycle = { save_scope_as = my_movement } custom_tooltip = intro_event_joined_movement } option = { name = tgp_dynastic_cycle.0055.a clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_start_select" } } tgp_dynastic_cycle.0056 = { # JOINED MOVEMENT - Conservative type = character_event window = fullscreen_event title = tgp_dynastic_cycle.0056.t desc = { desc = tgp_dynastic_cycle.0056.desc.intro first_valid = { triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } } desc = tgp_dynastic_cycle.0056.desc.advancement } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion } } desc = tgp_dynastic_cycle.0056.desc.expansion } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_instability_conquest } } desc = tgp_dynastic_cycle.0056.desc.conquest } triggered_desc = { trigger = { situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_instability } } desc = tgp_dynastic_cycle.0056.desc.instability } } } theme = dynastic_cycle trigger = { is_ai = no current_date_is_start_date_trigger = no } #conquest & instability override_background = { trigger = { situation:dynastic_cycle = { OR = { situation_current_phase = situation_dynastic_cycle_phase_instability_conquest situation_current_phase = situation_dynastic_cycle_phase_instability } } } reference = tgp_fullscreen_dynastic_cycle_instability } #expansion & advancement override_background = { trigger = { situation:dynastic_cycle = { OR = { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } } } reference = tgp_fullscreen_dynastic_cycle_stability } widgets = { widget = { gui = "event_window_widget_situation_info_dynastic_cycle" container = "dynamic_content_widget" controller = situation_info setup_scope = { situation:dynastic_cycle = { save_scope_as = situation } } } } immediate = { top_participant_group:dynastic_cycle = { save_scope_as = my_movement } custom_tooltip = intro_event_joined_movement } option = { name = tgp_dynastic_cycle.0056.a clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_start_select" } } ### ENTER CONQUEST - NEW DYNASTY ### 0061 - 0070 ### tgp_dynastic_cycle.0061 = { type = character_event window = fullscreen_event title = tgp_dynastic_cycle.0061.t desc = tgp_dynastic_cycle.0061.desc theme = dynastic_cycle override_background = { reference = tgp_fullscreen_dynastic_cycle_instability } widgets = { widget = { gui = "event_window_widget_situation_info_dynastic_cycle" container = "dynamic_content_widget" controller = situation_info setup_scope = { situation:dynastic_cycle = { save_scope_as = situation } } } } trigger = { current_date_is_start_date_trigger = no situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_instability_conquest } } immediate = { add_character_flag = tgp_dynastic_cycle_intro_event_flag play_music_cue = mx_cue_tgp_dynastic_cycle_end save_scope_as = mandate_claimant show_as_tooltip = { tgp_claim_mandate_of_heaven_effect = yes } custom_tooltip = dynastic_cycle_entered_conquest_tt } option = { name = tgp_dynastic_cycle.0061.c show_as_tooltip = { situation:dynastic_cycle = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_instability_conquest } } } } clicksound = "event:/DLC/EP4/MX/CueTracks/mx_mtgp_dynastic_cycle_end" } after = { every_player = { limit = { tgp_does_this_player_care_about_the_dynastic_cycle = yes } # Needs to be checked before the situation ends due to race condition issues add_to_list = player_to_notify # Making a list so stuff is tiggered after the situation ends, to make extra sure I don't break anything. } every_in_list = { # Then we *actually* notify players, making sure the situation has already ended list = player_to_notify limit = { NOT = { this = root } } trigger_event = tgp_dynastic_cycle.0062 } } } tgp_dynastic_cycle.0062 = { # Notification for relevant people type = character_event window = fullscreen_event title = tgp_dynastic_cycle.0061.t desc = { first_valid = { triggered_desc = { trigger = { tgp_is_hegemon_or_below_in_dynastic_cycle_trigger = yes } desc = tgp_dynastic_cycle.0062.desc.involved } triggered_desc = { trigger = { top_participant_group:dynastic_cycle ?= { participant_group_type = other_rulers } } desc = tgp_dynastic_cycle.0062.desc.interloper } desc = tgp_dynastic_cycle.0062.desc.uninvolved } } theme = dynastic_cycle override_background = { reference = tgp_fullscreen_dynastic_cycle_instability } widgets = { widget = { gui = "event_window_widget_situation_info_dynastic_cycle" container = "dynamic_content_widget" controller = situation_info setup_scope = { situation:dynastic_cycle = { save_scope_as = situation } } } } trigger = { is_ai = no NOT = { has_character_flag = situation_phase_notification } } immediate = { add_character_flag = situation_phase_notification show_as_tooltip = { scope:mandate_claimant = { tgp_claim_mandate_of_heaven_effect = yes } situation:dynastic_cycle = { switch = { trigger = situation_current_phase situation_dynastic_cycle_phase_stability_expansion = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_stability_expansion } } } situation_dynastic_cycle_phase_stability_advancement = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_stability_advancement } } } situation_dynastic_cycle_phase_stability_advancement = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_instability_conquest } } } } } } play_music_cue = mx_cue_tgp_dynastic_cycle_end } option = { name = tgp_dynastic_cycle.0062.a clicksound = "event:/DLC/EP4/MX/CueTracks/mx_mtgp_dynastic_cycle_end" custom_tooltip = tgp_china_consolidation.remain_independent } option = { name = tgp_dynastic_cycle.0062.b clicksound = "event:/DLC/EP4/MX/CueTracks/mx_mtgp_dynastic_cycle_end" save_scope_as = actor title:h_china.holder = { save_scope_as = recipient } offer_fealty_interaction_effect = yes } after = { remove_character_flag = situation_phase_notification } } ### ENTER STABILITY - EXISTING DYNASTY ### 0071 - 0080 ### tgp_dynastic_cycle.0071 = { type = character_event window = fullscreen_event title = tgp_dynastic_cycle.0071.t desc = tgp_dynastic_cycle.0071.desc theme = dynastic_cycle override_background = { reference = tgp_fullscreen_dynastic_cycle_stability } cooldown = { days = 1 } widgets = { widget = { gui = "event_window_widget_situation_info_dynastic_cycle" container = "dynamic_content_widget" controller = situation_info setup_scope = { situation:dynastic_cycle = { save_scope_as = situation } } } } trigger = { current_date_is_start_date_trigger = no } immediate = { if = { limit = { has_variable = new_son_of_heaven } save_scope_as = new_son_of_heaven show_as_tooltip = { tgp_claim_mandate_of_heaven_effect = yes } } play_music_cue = mx_cue_tgp_dynastic_cycle_end } option = { name = tgp_dynastic_cycle.0071.a if = { limit = { OR = { has_variable = new_son_of_heaven situation:dynastic_cycle = { NOT = { situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } } } } custom_tooltip = dynastic_cycle_entered_stability_advancement_tt situation:dynastic_cycle = { # Prevent dup entry in history. if = { limit = { NOT = { situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } } situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_stability_advancement } } } } if = { limit = { trigger_if = { limit = { has_variable = new_son_of_heaven } has_variable = favor_era var:favor_era != flag:advancement } trigger_else = { situation:dynastic_cycle = { NOT = { situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } } } } # Lose legitimacy, but only if it's not getting you into Chaos if = { limit = { legitimacy_level > 2 } add_legitimacy = monumental_legitimacy_loss } situation:dynastic_cycle = { situation_participant_group:expansion_movement = { every_situation_group_participant = { custom = tgp_hegemon_picked_different_era_opinion_advancement_tt add_opinion = { modifier = tgp_hegemon_picked_different_era_opinion target = root } } } hidden_effect = { situation_participant_group:conservative_movement = { every_situation_group_participant = { add_opinion = { modifier = tgp_hegemon_picked_different_era_opinion target = root } } } } } } } else = { custom_tooltip = dynastic_cycle_entered_stability_advancement_past_tt } clicksound = "event:/DLC/EP4/MX/CueTracks/mx_mtgp_dynastic_cycle_start" ai_chance = { base = 0 # no need to add any other modifiers here # if you want more add them to hegemon_favored_stability_phase_value instead modifier = { hegemon_favored_stability_phase_value >= 0 add = 1 } #in case the catalysts pushed to expansion, pick advancement only if you really wanted it modifier = { hegemon_favored_stability_phase_value >= 199 situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion } add = 1 } } } option = { name = tgp_dynastic_cycle.0071.b if = { limit = { OR = { has_variable = new_son_of_heaven situation:dynastic_cycle = { NOT = { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion } } } } custom_tooltip = dynastic_cycle_entered_stability_expansion_tt situation:dynastic_cycle = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_stability_expansion } } } if = { limit = { trigger_if = { limit = { has_variable = new_son_of_heaven } # You didn't do as what you promised before has_variable = favor_era var:favor_era != flag:expansion } # or you want change current phase trigger_else = { situation:dynastic_cycle = { NOT = { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion } } } } # Lose legitimacy, but only if it's not getting you into Chaos if = { limit = { legitimacy_level > 2 } add_legitimacy = monumental_legitimacy_loss } situation:dynastic_cycle = { situation_participant_group:advancement_movement = { every_situation_group_participant = { custom = tgp_hegemon_picked_different_era_opinion_expansion_tt add_opinion = { modifier = tgp_hegemon_picked_different_era_opinion target = root } } } hidden_effect = { situation_participant_group:conservative_movement = { every_situation_group_participant = { add_opinion = { modifier = tgp_hegemon_picked_different_era_opinion target = root } } } } } } } else = { custom_tooltip = dynastic_cycle_entered_stability_expansion_past_tt } clicksound = "event:/DLC/EP4/MX/CueTracks/mx_mtgp_dynastic_cycle_start" ai_chance = { base = 0 # no need to add any other modifiers here # if you want more add them to hegemon_favored_stability_phase_value instead modifier = { hegemon_favored_stability_phase_value < 0 add = 1 } #in case the catalysts pushed to advancement, pick expansion only if you really wanted it modifier = { hegemon_favored_stability_phase_value < -199 situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } add = 1 } } } after = { every_player = { limit = { tgp_does_this_player_care_about_the_dynastic_cycle = yes } # Needs to be checked before the situation ends due to race condition issues add_to_list = player_to_notify # Making a list so stuff is tiggered after the situation ends, to make extra sure I don't break anything. } every_in_list = { # Then we *actually* notify players, making sure the situation has already ended list = player_to_notify limit = { NOT = { this = root } } trigger_event = tgp_dynastic_cycle.0072 } } } tgp_dynastic_cycle.0072 = { # Notification for relevant people type = character_event window = fullscreen_event title = tgp_dynastic_cycle.0071.t desc = { triggered_desc = { trigger = { situation:dynastic_cycle ?= { situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } } desc = tgp_dynastic_cycle.0072.desc.advancement } triggered_desc = { trigger = { situation:dynastic_cycle ?= { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion } } desc = tgp_dynastic_cycle.0072.desc.expansion } triggered_desc = { trigger = { situation:dynastic_cycle ?= { situation_current_phase = situation_dynastic_cycle_phase_instability_conquest } } desc = tgp_dynastic_cycle.0072.desc.conquest } desc = double_line_break first_valid = { triggered_desc = { trigger = { tgp_is_hegemon_or_below_in_dynastic_cycle_trigger = yes } desc = tgp_dynastic_cycle.0072.desc.involved } triggered_desc = { trigger = { top_participant_group:dynastic_cycle ?= { participant_group_type = other_rulers } } desc = tgp_dynastic_cycle.0072.desc.interloper } desc = tgp_dynastic_cycle.0072.desc.uninvolved } } theme = dynastic_cycle override_background = { reference = tgp_fullscreen_dynastic_cycle_stability } widgets = { widget = { gui = "event_window_widget_situation_info_dynastic_cycle" container = "dynamic_content_widget" controller = situation_info setup_scope = { situation:dynastic_cycle = { save_scope_as = situation } } } } trigger = { is_ai = no NOT = { has_character_flag = situation_phase_notification } } immediate = { add_character_flag = situation_phase_notification show_as_tooltip = { if = { limit = { exists = scope:new_son_of_heaven } scope:new_son_of_heaven = { tgp_claim_mandate_of_heaven_effect = yes } } situation:dynastic_cycle = { switch = { trigger = situation_current_phase situation_dynastic_cycle_phase_stability_expansion = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_stability_expansion } } } situation_dynastic_cycle_phase_stability_advancement = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_stability_advancement } } } } } } play_music_cue = mx_cue_tgp_dynastic_cycle_end } option = { name = tgp_dynastic_cycle.0072.a clicksound = "event:/DLC/EP4/MX/CueTracks/mx_mtgp_dynastic_cycle_start" custom_tooltip = tgp_china_consolidation.remain_independent } option = { name = tgp_dynastic_cycle.0072.b clicksound = "event:/DLC/EP4/MX/CueTracks/mx_mtgp_dynastic_cycle_start" save_scope_as = actor title:h_china.holder = { save_scope_as = recipient } offer_fealty_interaction_effect = yes } after = { remove_character_flag = situation_phase_notification } } ### ENTER CHAOS tgp_dynastic_cycle.0081 = { type = character_event window = fullscreen_event title = tgp_dynastic_cycle.0081.t desc = tgp_dynastic_cycle.0081.desc theme = dynastic_cycle override_background = { reference = tgp_fullscreen_dynastic_cycle_chaos } widgets = { widget = { gui = "event_window_widget_situation_info_dynastic_cycle" container = "dynamic_content_widget" controller = situation_info setup_scope = { situation:dynastic_cycle = { save_scope_as = situation } } } } trigger = { current_date_is_start_date_trigger = no } immediate = { play_music_cue = mx_cue_tgp_dynastic_cycle_end custom_tooltip = dynastic_cycle_entered_chaos_tt every_player = { limit = { tgp_does_this_player_care_about_the_dynastic_cycle = yes } # Needs to be checked before the tgp_chaos_shattering_effect in case they get booted out of the Cycle from it add_to_list = player_to_notify # save variables to display correct desc in the follow up event if = { limit = { tgp_is_hegemon_or_below_in_dynastic_cycle_trigger = yes } set_variable = { name = involvement_in_cycle value = flag:involved days = 1 } } else_if = { limit = { top_participant_group:dynastic_cycle ?= { participant_group_type = other_rulers } } set_variable = { name = involvement_in_cycle value = flag:interloper days = 1 } } else = { # don't need to save anything, there is a fallback desc for it } } tgp_chaos_shattering_effect = yes every_in_list = { # Then we *actually* notify players, making sure the Division already started list = player_to_notify limit = { NOT = { this = root } } trigger_event = tgp_dynastic_cycle.0082 } } option = { name = tgp_dynastic_cycle.0081.a clicksound = "event:/DLC/EP4/MX/CueTracks/mx_mtgp_dynastic_cycle_end" } } tgp_dynastic_cycle.0082 = { # Notification for relevant people type = character_event window = fullscreen_event title = tgp_dynastic_cycle.0081.t desc = { first_valid = { triggered_desc = { trigger = { var:involvement_in_cycle ?= flag:involved } desc = tgp_dynastic_cycle.0082.desc.involved } triggered_desc = { trigger = { var:involvement_in_cycle ?= flag:interloper } desc = tgp_dynastic_cycle.0082.desc.interloper } desc = tgp_dynastic_cycle.0082.desc.uninvolved } } theme = dynastic_cycle override_background = { reference = tgp_fullscreen_dynastic_cycle_chaos } widgets = { widget = { gui = "event_window_widget_situation_info_dynastic_cycle" container = "dynamic_content_widget" controller = situation_info setup_scope = { situation:dynastic_cycle = { save_scope_as = situation } } } } trigger = { is_ai = no NOT = { has_character_flag = situation_phase_notification } } immediate = { add_character_flag = situation_phase_notification save_scope_as = relevant_character custom_tooltip = dynastic_cycle_entered_chaos_tt custom_tooltip = dynastic_cycle_entered_chaos_hunagdi_tt show_as_tooltip = { switch = { trigger = root title:e_minister_chancellor.previous_holder = { destroy_title = title:e_minister_chancellor } title:e_minister_censor.previous_holder = { destroy_title = title:e_minister_censor } title:e_minister_grand_marshal.previous_holder = { destroy_title = title:e_minister_grand_marshal } title:e_minister_of_personnel.previous_holder = { destroy_title = title:e_minister_of_personnel } title:e_minister_of_revenue.previous_holder = { destroy_title = title:e_minister_of_revenue } title:e_minister_of_rites.previous_holder = { destroy_title = title:e_minister_of_rites } title:e_minister_of_war.previous_holder = { destroy_title = title:e_minister_of_war } title:e_minister_of_justice.previous_holder = { destroy_title = title:e_minister_of_justice } title:e_minister_of_works.previous_holder = { destroy_title = title:e_minister_of_works } } } save_scope_value_as = { name = chaos_new_vassals_count value = { every_in_list = { variable = chaos_new_vassals add = 1 } } } save_scope_value_as = { name = chaos_new_tributaries_count value = { every_in_list = { variable = chaos_new_tributaries add = 1 } } } if = { limit = { scope:chaos_new_vassals_count > 0 } if = { limit = { has_variable = former_movement_leader } every_in_list = { variable = chaos_new_vassals custom = custom.chaos_new_vassals custom_tooltip = chaos_new_vassals_tt } } else = { every_in_list = { variable = chaos_new_vassals custom = custom.chaos_new_vassals_disciples custom_tooltip = chaos_new_vassals_tt } } } if = { limit = { scope:chaos_new_tributaries_count > 0 } if = { limit = { has_variable = former_movement_leader } every_in_list = { variable = chaos_new_tributaries custom = custom.chaos_new_tributaries custom_tooltip = chaos_new_tributaries_tt } } else = { every_in_list = { variable = chaos_new_tributaries custom = custom.chaos_new_tributaries_disciples custom_tooltip = chaos_new_tributaries_tt } } } } option = { name = tgp_dynastic_cycle.0082.a clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_positive" if = { limit = { top_liege = scope:relevant_character } custom_tooltip = dynastic_cycle_entered_chaos_became_independent_tt } else = { top_liege = { save_scope_as = new_top_liege } custom_tooltip = dynastic_cycle_entered_chaos_changed_top_liege_tt } } after = { remove_character_flag = situation_phase_notification clear_variable_list = chaos_new_vassals clear_variable_list = chaos_new_tributaries } } ### ENTER INSTABILITY tgp_dynastic_cycle.0091 = { type = character_event window = fullscreen_event title = tgp_dynastic_cycle.0091.t desc = tgp_dynastic_cycle.0091.desc theme = dynastic_cycle override_background = { reference = tgp_fullscreen_dynastic_cycle_instability } widgets = { widget = { gui = "event_window_widget_situation_info_dynastic_cycle" container = "dynamic_content_widget" controller = situation_info setup_scope = { situation:dynastic_cycle = { save_scope_as = situation } } } } trigger = { current_date_is_start_date_trigger = no } immediate = { play_music_cue = mx_cue_tgp_dynastic_cycle_end custom_tooltip = dynastic_cycle_entered_instability_tt every_player = { limit = { tgp_does_this_player_care_about_the_dynastic_cycle = yes } # Needs to be checked before the situation ends due to race condition issues add_to_list = player_to_notify # Making a list so stuff is tiggered after the situation ends, to make extra sure I don't break anything. } every_in_list = { # Then we *actually* notify players, making sure the situation has already ended list = player_to_notify limit = { NOT = { this = root } } trigger_event = tgp_dynastic_cycle.0092 } } option = { name = tgp_dynastic_cycle.0091.a clicksound = "event:/DLC/EP4/MX/CueTracks/mx_mtgp_dynastic_cycle_end" } } tgp_dynastic_cycle.0092 = { # Notification for relevant people type = character_event window = fullscreen_event title = tgp_dynastic_cycle.0091.t desc = { first_valid = { triggered_desc = { trigger = { tgp_is_hegemon_or_below_in_dynastic_cycle_trigger = yes } desc = tgp_dynastic_cycle.0092.desc.involved } triggered_desc = { trigger = { top_participant_group:dynastic_cycle ?= { participant_group_type = other_rulers } } desc = tgp_dynastic_cycle.0092.desc.interloper } desc = tgp_dynastic_cycle.0092.desc.uninvolved } } theme = dynastic_cycle override_background = { reference = tgp_fullscreen_dynastic_cycle_instability } widgets = { widget = { gui = "event_window_widget_situation_info_dynastic_cycle" container = "dynamic_content_widget" controller = situation_info setup_scope = { situation:dynastic_cycle = { save_scope_as = situation } } } } trigger = { is_ai = no NOT = { has_character_flag = situation_phase_notification } } immediate = { add_character_flag = situation_phase_notification show_as_tooltip = { situation:dynastic_cycle = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_instability } } } } play_music_cue = mx_cue_tgp_dynastic_cycle_end } option = { name = tgp_dynastic_cycle.0092.a clicksound = "event:/DLC/FP3/SFX/UI/Notifications/Toasts/struggle_end_negative" } after = { remove_character_flag = situation_phase_notification } } ################################### # Integrity Validation Events # By Joe Parkin ################################### tgp_dynastic_cycle.9982 = { # Nav event, to make QA's life easier and avoid unecessary crashes type = character_event title = MENU desc = MENU orphan = yes theme = mental_break option = { # Dynamically start a situation trigger = { NOT = { exists = situation:dynastic_cycle } } name = FRONTEND_MP_GAME_SETUP_HOST_NEW_GAME random_ruler = { limit = { this = top_liege exists = location # TIL, we are somehow generating *a lot* of top lieges without a location set location = { geographical_region = world_asia_north_east } } primary_title = { save_scope_as = debug_emperor } } start_situation = { type = dynastic_cycle start_phase = situation_dynastic_cycle_phase_stability_advancement } 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_emperor right_icon = scope:debug_emperor.holder } } option = { # Go forward in the situation flow name = dynn_Daflos_motto trigger = { exists = situation:dynastic_cycle } situation:dynastic_cycle = { switch = { trigger = situation_current_phase situation_dynastic_cycle_phase_stability_expansion = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_instability } } } situation_dynastic_cycle_phase_stability_advancement = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_instability } } } situation_dynastic_cycle_phase_instability_conquest = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_instability } } } situation_dynastic_cycle_phase_instability = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_chaos } } } situation_dynastic_cycle_phase_chaos = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_stability } } } } } } option = { # Go backwards in the situation flow name = default_retreat trigger = { exists = situation:dynastic_cycle } show_as_unavailable = { always = yes } situation:dynastic_cycle = { switch = { trigger = situation_current_phase situation_dynastic_cycle_phase_stability_expansion = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_chaos } } } situation_dynastic_cycle_phase_stability_advancement = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_chaos } } } situation_dynastic_cycle_phase_instability_conquest = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_chaos } } } situation_dynastic_cycle_phase_instability = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_stability } } } situation_dynastic_cycle_phase_chaos = { situation_top_sub_region = { change_phase = { phase = situation_dynastic_cycle_phase_instability } } } } } } option = { name = EXIT_TO_DESKTOP } # Exit event without doing anything } tgp_dynastic_cycle.9999 = { hidden = yes scope = character orphan = yes immediate = { create_title_and_vassal_change = { type = conquest save_scope_as = change add_claim_on_loss = yes } random_player = { save_scope_as = player } title:h_china = { every_in_de_jure_hierarchy = { limit = { exists = holder holder = { is_ai = yes } NOT = { holder.top_liege = scope:player } } holder = { if = { limit = { highest_held_title_tier = scope:player.highest_held_title_tier } every_held_title = { limit = { tier = scope:player.highest_held_title_tier } change_title_holder_include_vassals = { holder = scope:player change = scope:change } } } change_liege = { liege = scope:player change = scope:change } } } } resolve_title_and_vassal_change = scope:change } } # This is a centralized middleman event to pass the actual renaming event through, because we run the original checks from on_actions, but when China shatters the gamestate can and does change between the on_action and the actual event running tgp_dynastic_cycle.9000 = { hidden = yes trigger = { liege = root is_landed = yes tgp_chinese_naming_tier_trigger = yes NOT = { has_character_flag = received_chinese_hegemonic_ascension_event } } immediate = { if = { limit = { OR = { primary_title = { has_custom_title_name = no } dynasty != primary_title.previous_holder.dynasty } } add_character_flag = received_chinese_hegemonic_ascension_event trigger_event = { id = tgp_dynastic_cycle.9001 } } else = { save_scope_as = already_has_custom_title_name if = { limit = { highest_held_title_tier = tier_hegemony } add_character_flag = received_chinese_hegemonic_ascension_event trigger_event = { id = tgp_dynastic_cycle.9002 } } if = { limit = { is_ai = no has_title = title:h_china } add_achievement_global_variable_effect = { VARIABLE = finished_ep4_06_mandate_of_heaven_achievement_trigger VALUE = yes } } if = { limit = { has_title = title:h_china current_date >= 960.1.1 } set_global_variable = { name = chinese_fashion_change value = 1 } } remove_character_flag = received_chinese_hegemonic_ascension_event } } } scripted_effect tgp_ascension_rewards_effect = { if = { limit = { highest_held_title_tier = tier_hegemony } add_prestige = monumental_prestige_gain change_influence = massive_influence_gain add_legitimacy_effect = { LEGITIMACY = massive_legitimacy_gain } } if = { limit = { highest_held_title_tier = tier_empire } add_prestige = massive_prestige_gain change_influence = massive_influence_gain add_legitimacy_effect = { LEGITIMACY = massive_legitimacy_gain } } if = { limit = { highest_held_title_tier = tier_kingdom } add_prestige = major_prestige_gain change_influence = major_influence_gain add_legitimacy_effect = { LEGITIMACY = major_legitimacy_gain } } dynasty = { if = { limit = { root.highest_held_title_tier = tier_hegemony } add_dynasty_prestige = monumental_dynasty_prestige_gain } if = { limit = { root.highest_held_title_tier = tier_empire } add_dynasty_prestige = massive_dynasty_prestige_gain } if = { limit = { root.highest_held_title_tier = tier_kingdom } add_dynasty_prestige = major_dynasty_prestige_gain } } } tgp_dynastic_cycle.9001 = { type = character_event title = tgp_dynastic_cycle.9001.t desc = tgp_dynastic_cycle.9001.desc theme = dynastic_cycle left_portrait = { character = root animation = emperor } # tier check done in tgp_dynastic_cycle.9000 #NAMING WIDGET widget = { gui = "event_window_widget_enter_text" container = "dynamic_birth_name" controller = { type = text data = { key = new_realm_title_name # Cultural default = { localization_key = dynn_title_nan trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_nan } } } default = { localization_key = dynn_title_he trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_he } } } default = { localization_key = dynn_title_zhuang_li trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_zhuang_li } } } default = { localization_key = dynn_title_bo trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_bo } } } default = { localization_key = dynn_title_zhen trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_zhen } } } default = { localization_key = dynn_title_rui trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_rui } } } default = { localization_key = dynn_title_li trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_li } } } default = { localization_key = dynn_title_fu trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_fu } } } default = { localization_key = dynn_title_yuan trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_yuan } } } default = { localization_key = dynn_title_jurchen_jin trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_jurchen_jin } } } default = { localization_key = dynn_title_han_korea trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_han_korea } } } default = { localization_key = dynn_title_miao trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_miao } } } default = { localization_key = dynn_title_luo trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_luo } } } default = { localization_key = dynn_title_le trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_le } } } default = { localization_key = dynn_title_zhan trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_zhan } } } # Regional default = { localization_key = dynn_title_ba trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_ba } } } default = { localization_key = dynn_title_bao trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_bao } } } default = { localization_key = dynn_title_bi trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_bi } } } default = { localization_key = dynn_title_cai trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_cai } } } default = { localization_key = dynn_title_cao trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_cao } } } default = { localization_key = dynn_title_chen trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_chen } } } default = { localization_key = dynn_title_cheng trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_cheng } } } default = { localization_key = dynn_title_chu trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_chu } } } default = { localization_key = dynn_title_dai trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_dai } } } default = { localization_key = dynn_title_dao trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_dao } } } default = { localization_key = dynn_title_deng trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_deng } } } default = { localization_key = dynn_title_di trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_di } } } default = { localization_key = dynn_title_dian trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_dian } } } default = { localization_key = dynn_title_e trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_e } } } default = { localization_key = dynn_title_gan trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_gan } } } default = { localization_key = dynn_title_gui trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_gui } } } default = { localization_key = dynn_title_guo trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_guo } } } default = { localization_key = dynn_title_han trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_han } } } default = { localization_key = dynn_title_han_henan trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_han_henan } } } default = { localization_key = dynn_title_hua trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_hua } } } default = { localization_key = dynn_title_huai trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_huai } } } default = { localization_key = dynn_title_huang trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_huang } } } default = { localization_key = dynn_title_huo trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_huo } } } default = { localization_key = dynn_title_ji trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_ji } } } default = { localization_key = dynn_title_ji_hebei trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_ji_hebei } } } default = { localization_key = dynn_title_jiao trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_jiao } } } default = { localization_key = dynn_title_jin trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_jin } } } default = { localization_key = dynn_title_jing trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_jing } } } default = { localization_key = dynn_title_ju trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_ju } } } default = { localization_key = dynn_title_kang trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_kang } } } default = { localization_key = dynn_title_lai trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_lai } } } default = { localization_key = dynn_title_liang trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_liang } } } default = { localization_key = dynn_title_liang_west trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_liang_west } } } default = { localization_key = dynn_title_liao trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_liao } } } default = { localization_key = dynn_title_lu trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_lu } } } default = { localization_key = dynn_title_min trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_min } } } default = { localization_key = dynn_title_ou trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_ou } } } default = { localization_key = dynn_title_peng trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_peng } } } default = { localization_key = dynn_title_qi trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_qi } } } default = { localization_key = dynn_title_qi_guannei trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_qi_guannei } } } default = { localization_key = dynn_title_qian trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_qian } } } default = { localization_key = dynn_title_qin trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_qin } } } default = { localization_key = dynn_title_qiong trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_qiong } } } default = { localization_key = dynn_title_shang trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_shang } } } default = { localization_key = dynn_title_shen trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_shen } } } default = { localization_key = dynn_title_shu trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_shu } } } default = { localization_key = dynn_title_song trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_song } } } default = { localization_key = dynn_title_sui trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_sui } } } default = { localization_key = dynn_title_tan trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_tan } } } default = { localization_key = dynn_title_tang trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_tang } } } default = { localization_key = dynn_title_teng trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_teng } } } default = { localization_key = dynn_title_wei trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_wei } } } default = { localization_key = dynn_title_wey trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_wey } } } default = { localization_key = dynn_title_wu trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_wu } } } default = { localization_key = dynn_title_xi trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_xi } } } default = { localization_key = dynn_title_xia trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_xia } } } default = { localization_key = dynn_title_xiang trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_xiang } } } default = { localization_key = dynn_title_xing trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_xing } } } default = { localization_key = dynn_title_xu trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_xu } } } default = { localization_key = dynn_title_xu_shandong trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_xu_shandong } } } default = { localization_key = dynn_title_yan trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_yan } } } default = { localization_key = dynn_title_yang trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_yang } } } default = { localization_key = dynn_title_yin trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_yin } } } default = { localization_key = dynn_title_ying trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_ying } } } default = { localization_key = dynn_title_yong trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_yong } } } default = { localization_key = dynn_title_you trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_you } } } default = { localization_key = dynn_title_yu trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_yu } } } default = { localization_key = dynn_title_yuan_ferghana trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_yuan_ferghana } } } default = { localization_key = dynn_title_yue trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_yue } } } default = { localization_key = dynn_title_yue_2 trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_yue_2 } } } default = { localization_key = dynn_title_zhao trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_zhao } } } default = { localization_key = dynn_title_zheng trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_zheng } } } default = { localization_key = dynn_title_zhou trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_zhou } } } default = { localization_key = dynn_title_zou trigger = { is_target_in_variable_list = { name = realm_title_names target = flag:dynn_title_zou } } } ### OTHER default = { localization_key = capital_duchy_name trigger = { exists = scope:duchy_name } } default = { localization_key = capital_kingdom_name trigger = { exists = scope:kingdom_name } } } } setup_scope = { root = { save_scope_as = text_target } } } immediate = { hidden_effect = { clear_variable_list = realm_title_names tgp_assign_china_realm_name_options_effect = yes if = { limit = { OR = { NOT = { has_variable_list = realm_title_names } variable_list_size = { name = realm_title_names value <= 1 } } } capital_county ?= { duchy = { save_scope_as = duchy_name } if = { limit = { root.highest_held_title_tier >= tier_kingdom } kingdom = { save_scope_as = kingdom_name } } } } } if = { limit = { is_ai = yes } random_in_list = { variable = realm_title_names save_scope_as = new_realm_title_name root = { set_variable = { name = new_realm_title_name value = scope:new_realm_title_name } } } if = { limit = { NOT = { exists = root.var:new_realm_title_name } } root = { set_variable = { name = new_realm_title_name value = flag:capital_duchy_name } } } } play_music_cue = mx_cue_tgp_dynastic_cycle_end } option = { name = tgp_dynastic_cycle.9001.a tgp_ascension_rewards_effect = yes } after = { clear_variable_list = realm_title_names if = { limit = { is_ai = yes NOT = { is_title_localization_key_used = dynn_title_yuan } highest_held_title_tier >= tier_empire culture = { has_cultural_pillar = heritage_mongolic } } primary_title = { set_title_name_dynamic = dynn_title_yuan } } else_if = { limit = { var:new_realm_title_name ?= flag:capital_duchy_name } primary_title = { set_title_name_dynamic = capital_duchy_name } } else_if = { limit = { var:new_realm_title_name ?= flag:capital_kingdom_name } primary_title = { set_title_name_dynamic = capital_kingdom_name } } else_if = { limit = { has_variable = new_realm_title_name } primary_title = { set_title_name_dynamic = new_realm_title_name_from_var } } else = { # We entered custom text into the pop up primary_title = { set_title_name_dynamic = new_realm_title_name_entered_text } } if = { limit = { highest_held_title_tier = tier_hegemony } trigger_event = { id = tgp_dynastic_cycle.9002 } } if = { limit = { is_ai = no has_title = title:h_china } add_achievement_global_variable_effect = { VARIABLE = finished_ep4_06_mandate_of_heaven_achievement_trigger VALUE = yes } } if = { limit = { has_title = title:h_china current_date >= 960.1.1 } set_global_variable = { name = chinese_fashion_change value = 1 } } remove_character_flag = received_chinese_hegemonic_ascension_event create_artifact_dynastic_imperial_seal_effect = { OWNER = root SMITH = root } } } # "peace" changes scripted_trigger china_transfered_peacefully_trigger= { title:h_china = { OR = { recent_history = { type = inheritance days = 7 } recent_history = { type = abdication days = 7 } recent_history = { type = granted days = 7 } recent_history = { type = usurped days = 7 } recent_history = { type = election days = 7 } recent_history = { type = faction_demand days = 7 } recent_history = { type = stepped_down days = 7 } recent_history = { type = appointment days = 7 } recent_history = { type = appointment_succession days = 7 } } } } tgp_dynastic_cycle.9002 = { type = character_event title = tgp_dynastic_cycle.9002.t desc = tgp_dynastic_cycle.9002.desc theme = dynastic_cycle left_portrait = { character = root animation = emperor } immediate = { if = { limit = { exists = scope:already_has_custom_title_name } tgp_ascension_rewards_effect = yes } } option = { name = tgp_dynastic_cycle.9002.green title:h_china = { set_title_color = { 0 60 60 } } tgp_set_wuking_element_effect = { ELEMENT = wood } ai_chance = { base = 0 modifier = { add = 100 NOT = { exists = dynasty.var:wuking_element } china_transfered_peacefully_trigger= yes situation:dynastic_cycle.var:wuking_element ?= flag:earth } modifier = { add = 100 NOT = { exists = dynasty.var:wuking_element } china_transfered_peacefully_trigger= no situation:dynastic_cycle.var:wuking_element ?= flag:water } modifier = { add = 100 dynasty.var:wuking_element ?= flag:wood } } } option = { name = tgp_dynastic_cycle.9002.red title:h_china = { set_title_color = { 125 0 0 } } tgp_set_wuking_element_effect = { ELEMENT = fire } ai_chance = { base = 0 modifier = { add = 100 NOT = { exists = dynasty.var:wuking_element } china_transfered_peacefully_trigger= yes situation:dynastic_cycle.var:wuking_element ?= flag:wood } modifier = { add = 100 NOT = { exists = dynasty.var:wuking_element } china_transfered_peacefully_trigger= no situation:dynastic_cycle.var:wuking_element ?= flag:metal } modifier = { add = 100 dynasty.var:wuking_element ?= flag:fire } } } option = { name = tgp_dynastic_cycle.9002.yellow title:h_china = { set_title_color = { 250 180 0 } } tgp_set_wuking_element_effect = { ELEMENT = earth } ai_chance = { base = 0 modifier = { add = 100 NOT = { exists = dynasty.var:wuking_element } china_transfered_peacefully_trigger= yes situation:dynastic_cycle.var:wuking_element ?= flag:fire } modifier = { add = 100 NOT = { exists = dynasty.var:wuking_element } china_transfered_peacefully_trigger= no situation:dynastic_cycle.var:wuking_element ?= flag:water } modifier = { add = 100 dynasty.var:wuking_element ?= flag:earth } } } option = { name = tgp_dynastic_cycle.9002.white title:h_china = { set_title_color = { 180 200 200 } } tgp_set_wuking_element_effect = { ELEMENT = metal } ai_chance = { base = 0 modifier = { add = 100 NOT = { exists = dynasty.var:wuking_element } china_transfered_peacefully_trigger= yes situation:dynastic_cycle.var:wuking_element ?= flag:earth } modifier = { add = 100 NOT = { exists = dynasty.var:wuking_element } china_transfered_peacefully_trigger= no situation:dynastic_cycle.var:wuking_element ?= flag:wood } modifier = { add = 100 dynasty.var:wuking_element ?= flag:metal } } } option = { name = tgp_dynastic_cycle.9002.black title:h_china = { set_title_color = { 15 15 15 } } tgp_set_wuking_element_effect = { ELEMENT = water } ai_chance = { base = 0 modifier = { add = 100 NOT = { exists = dynasty.var:wuking_element } china_transfered_peacefully_trigger= yes situation:dynastic_cycle.var:wuking_element ?= flag:metal } modifier = { add = 100 NOT = { exists = dynasty.var:wuking_element } china_transfered_peacefully_trigger= no situation:dynastic_cycle.var:wuking_element ?= flag:fire } modifier = { add = 100 dynasty.var:wuking_element ?= flag:water } } } }