namespace = tgp_movement_events ################################################################################### ## By Veronica Pazos ## tgp_movement_events.0001 - Marshal urges you to prepare for Expansion ## tgp_movement_events.0010 - Try to convince an undecided ruler to join your movement ## tgp_movement_events.0020 - Another Advancement member wants to focus on innovations ## tgp_movement_events.0030 - Movement member sends you a letter asking for support ## tgp_movement_events.0040 - Hegemon sends envoy thanking you for being Pro-Song ## tgp_movement_events.0050 - Elder takes interest in you ## tgp_movement_events.0060 - Antagonize another movement ## tgp_movement_events.0070 - Councillor of your highest skill helps you study ## tgp_movement_events.0080 - Family member asks you to focus on your family ## tgp_movement_events.0090 - Movement member wants to make amends ## tgp_movement_events.0100 - Ask a Movement Leader to abandon their Movement ## tgp_movement_events.0110 - Movement member sends you some books ## tgp_movement_events.0120 - Movement member teaches you Confucianism ## tgp_movement_events.0130 - Movement member teaches you the language of the capital ## tgp_movement_events.0140 - Disciple brings you a gift ## tgp_movement_events.0150 - Shinto visitor at court ## tgp_movement_events.0160 - Promise Movement leader to not scheme against each other ################################################################################### # Marshal urges you to prepare for Expansion tgp_movement_events.0001 = { type = character_event title = tgp_movement_events.0001.t desc = tgp_movement_events.0001.desc left_portrait = { character = root animation = interested } right_portrait = { character = scope:marshal animation = relaxed_spear } theme = dynastic_cycle override_background = { reference = courtyard } cooldown = { years = 10 } trigger = { is_available_adult = yes has_tgp_dlc_trigger = yes government_has_flag = government_is_celestial top_participant_group:dynastic_cycle ?= { participant_group_type = expansion_movement } NOT = { situation:dynastic_cycle ?= { situation_current_phase = situation_dynastic_cycle_phase_stability_expansion } } } immediate = { top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } if = { limit = { exists = cp:councillor_marshal cp:councillor_marshal = { is_available_healthy_ai_adult = yes is_ruler = no } } cp:councillor_marshal = { save_scope_as = marshal } } else_if = { limit = { any_knight = { is_available_healthy_ai_adult = yes is_ruler = no } } ordered_knight = { limit = { is_available_healthy_ai_adult = yes is_ruler = no } order_by = martial save_scope_as = marshal } } else = { hidden_effect_new_object = { create_character = { template = knight dynasty = none location = root.location culture = root.location.culture faith = root.location.faith gender_female_chance = root_soldier_female_chance save_scope_as = marshal } } } scope:marshal = { assign_quirk_effect = yes add_character_flag = need_military_outfit hidden_effect = { if = { limit = { NOT = { is_courtier_of = root } } root = { add_courtier = prev } } } } } option = { # Get a military trait name = tgp_movement_events.0001.aa trigger = { vassal_contract_has_flag = celestial_military_appointment number_of_commander_traits < 3 } add_internal_flag = special reason = celestial_military_appointment custom_tooltip = { text = tgp_movement_events.0001.c.tt give_random_commander_trait_effect = yes } stress_impact = { diligent = medium_stress_impact_loss brave = medium_stress_impact_loss lazy = major_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_trait = diligent has_trait = brave } factor = 2 } modifier = { OR = { has_trait = ambitious has_trait = lazy } factor = 0 } } } option = { # Get movement power name = tgp_movement_events.0001.a custom_tooltip = event_increase_movement_power_medium_effect_tooltip scope:my_movement = { event_change_movement_power_effect = { VALUE = event_increase_movement_power_medium_value } } stress_impact = { ambitious = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { has_trait = ambitious factor = 2 } } } option = { # Get influence name = tgp_movement_events.0001.b change_influence = medium_influence_gain stress_impact = { deceitful = medium_stress_impact_loss honest = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = deceitful factor = 2 } modifier = { has_trait = honest factor = 0 } } } option = { # Just some martial XP name = tgp_movement_events.0001.c trigger = { NOT = { vassal_contract_has_flag = celestial_military_appointment } } add_martial_lifestyle_xp = medium_lifestyle_xp stress_impact = { ambitious = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { has_lifestyle = martial_lifestyle factor = 3 } modifier = { has_trait = ambitious factor = 0 } } } } # Try to convince an undecided ruler to join your movement scripted_trigger tpg_movement_events_0010_valid_ruler = { is_available_healthy_ai_adult = yes government_has_flag = government_is_celestial top_participant_group:dynastic_cycle ?= { participant_group_type = undecided_movement } opinion = { target = root value >= 0 } } scripted_trigger tgp_movement_events_0010_valid_courtier = { is_available_healthy_ai_adult = yes is_councillor = no NOT = { is_close_family_or_spouse_trigger = { CHARACTER = scope:other_ruler } } } tgp_movement_events.0010 = { type = character_event title = tgp_movement_events.0010.t desc = tgp_movement_events.0010.desc left_portrait = { character = root animation = debating } right_portrait = { character = scope:courtier animation = interested } lower_right_portrait = scope:other_ruler theme = dynastic_cycle override_background = { reference = courtyard } cooldown = { years = 10 } trigger = { is_available_adult = yes has_tgp_dlc_trigger = yes government_has_flag = government_is_celestial top_participant_group:dynastic_cycle ?= { OR = { participant_group_type = expansion_movement participant_group_type = advancement_movement participant_group_type = pro_hegemon_movement participant_group_type = conservative_movement } } any_ruler = { tpg_movement_events_0010_valid_ruler = yes } } immediate = { assign_quirk_effect = yes top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } random_ruler = { limit = { tpg_movement_events_0010_valid_ruler = yes } weight = { base = 1 modifier = { is_close_family_of = root add = 10 } modifier = { is_extended_family_of = root add = 5 } modifier = { OR = { has_relation_friend = root has_relation_lover = root } add = 5 } } save_scope_as = other_ruler if = { limit = { any_courtier = { tgp_movement_events_0010_valid_courtier = yes } } ordered_courtier = { limit = { tgp_movement_events_0010_valid_courtier = yes } order_by = diplomacy set_location = root.location save_scope_as = courtier } } else = { hidden_effect_new_object = { create_character = { location = root.location template = diplomacy_court_position_holder_template gender_female_chance = root_soldier_female_chance faith = scope:other_ruler.capital_county.faith culture = scope:other_ruler.capital_county.culture save_scope_as = courtier } } hidden_effect = { add_courtier = scope:courtier } } } } option = { # They switch movements name = tgp_movement_events.0010.a change_influence = medium_influence_gain duel = { skill = diplomacy value = average_skill_rating 50 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 } desc = tgp_movement_events.0010.a.success send_interface_toast = { title = tgp_movement_events.0010.a.success left_icon = scope:other_ruler tgp_dynastic_cycle_add_to_movement_effect = { CHAR = scope:other_ruler } } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -3.5 } desc = tgp_movement_events.0010.a.failure send_interface_toast = { title = tgp_movement_events.0010.a.failure left_icon = scope:other_ruler scope:other_ruler = { add_opinion = { target = root modifier = annoyed_opinion opinion = -5 } } } } } stress_impact = { arrogant = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { has_trait = arrogant factor = 2 } } } option = { # You get Movement Power name = tgp_movement_events.0010.b custom_tooltip = event_increased_personal_movement_power_tt event_change_movement_power_effect = { VALUE = event_increase_movement_power_major_value } stress_impact = { ambitious = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { has_trait = ambitious factor = 2 } } } option = { # Get Merit name = tgp_movement_events.0010.c change_merit = medium_merit_gain scope:other_ruler = { add_opinion = { target = root modifier = grateful_opinion opinion = 15 } } stress_impact = { ambitious = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { has_trait = ambitious factor = 2 } } } } # Another Advancement member wants to focus on innovations scripted_trigger tpg_movement_events_0020_valid_ruler = { this != root is_available_healthy_ai_adult = yes government_has_flag = government_is_celestial top_participant_group:dynastic_cycle ?= { participant_group_type = advancement_movement } culture = root.culture } tgp_movement_events.0020 = { type = character_event title = tgp_movement_events.0020.t desc = tgp_movement_events.0020.desc left_portrait = { character = root triggered_animation = { trigger = { OR = { has_trait = arbitrary has_trait = arrogant has_trait = ambitious } } animation = dismissal } animation = interested camera = camera_event_crowd } right_portrait = { character = scope:courtier animation = gongshou } lower_right_portrait = scope:other_ruler theme = dynastic_cycle override_background = { reference = throne_room } cooldown = { years = 10 } trigger = { is_available_adult = yes has_tgp_dlc_trigger = yes government_has_flag = government_is_celestial top_participant_group:dynastic_cycle ?= { participant_group_type = advancement_movement } any_ruler = { tpg_movement_events_0020_valid_ruler = yes } } immediate = { culture = { save_scope_as = my_culture } top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } random_ruler = { limit = { tpg_movement_events_0020_valid_ruler = yes } save_scope_as = other_ruler if = { limit = { any_courtier = { tgp_movement_events_0010_valid_courtier = yes } } ordered_courtier = { limit = { tgp_movement_events_0010_valid_courtier = yes } order_by = diplomacy set_location = root.location save_scope_as = courtier } } else = { hidden_effect_new_object = { create_character = { location = root.location template = diplomacy_court_position_holder_template gender_female_chance = root_soldier_female_chance faith = scope:other_ruler.capital_county.faith culture = scope:other_ruler.capital_county.culture save_scope_as = courtier } } hidden_effect = { add_courtier = scope:courtier } } } scope:courtier = { assign_quirk_effect = yes } } option = { # Get extra bonuses name = tgp_movement_events.0020.aa trigger = { has_trait = architect NOT = { has_character_modifier = tgp_advancement_innovations_modifier } } add_character_modifier = tgp_advancement_innovations_modifier # Forever scope:my_culture = { add_fascination_progress = 5 } if = { limit = { is_ai = no has_any_nickname = no } random = { chance = 25 give_nickname = nick_the_wise } } stress_impact = { diligent = medium_stress_impact_loss brave = medium_stress_impact_loss ambitious = medium_stress_impact_gain lazy = major_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_trait = diligent has_trait = brave } factor = 2 } modifier = { OR = { has_trait = ambitious has_trait = lazy } factor = 0 } } } option = { # Get Innovation Progress name = tgp_movement_events.0020.a trigger = { NOT = { has_trait = architect } } scope:my_culture = { add_fascination_progress = 5 } custom_tooltip = event_decrease_movement_power_minor_effect_tooltip scope:my_movement = { event_change_movement_power_effect = { VALUE = event_decrease_movement_power_minor_value } } stress_impact = { ambitious = medium_stress_impact_gain arrogant = medium_stress_impact_gain diligent = medium_stress_impact_loss humble = medium_stress_impact_loss } ai_chance = { base = 50 modifier = { OR = { has_trait = ambitious has_trait = arrogant } factor = 2 } modifier = { OR = { has_trait = diligent has_trait = humble } factor = 0 } } } option = { # Focus on movement name = tgp_movement_events.0020.b custom_tooltip = event_increase_movement_power_medium_effect_tooltip scope:my_movement = { event_change_movement_power_effect = { VALUE = event_increase_movement_power_medium_value } } stress_impact = { ambitious = medium_stress_impact_loss arrogant = medium_stress_impact_loss diligent = medium_stress_impact_gain humble = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_trait = ambitious has_trait = arrogant } factor = 0 } modifier = { OR = { has_trait = diligent has_trait = humble } factor = 2 } } } option = { # Get Merit name = tgp_movement_events.0020.c change_merit = medium_merit_gain stress_impact = { diligent = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { has_lifestyle = learning_lifestyle factor = 2 } modifier = { has_trait = diligent factor = 2 } } } } # Movement member sends you a letter asking for support scripted_trigger tpg_movement_events_0030_valid_ruler = { this != root is_available_healthy_ai_adult = yes government_has_flag = government_is_celestial top_participant_group:dynastic_cycle ?= root.top_participant_group:dynastic_cycle opinion = { target = root value >= 0 } } tgp_movement_events.0030 = { type = letter_event opening = tgp_movement_events.0030.opening desc = tgp_movement_events.0030.desc sender = scope:other_ruler cooldown = { years = 5 } trigger = { is_available_adult = yes has_tgp_dlc_trigger = yes government_has_flag = government_is_celestial exists = top_participant_group:dynastic_cycle any_ruler = { tpg_movement_events_0030_valid_ruler = yes } } immediate = { top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } random_ruler = { limit = { tpg_movement_events_0030_valid_ruler = yes } weight = { base = 1 modifier = { has_relation_potential_friend = root add = 25 } modifier = { is_close_family_of = root add = 10 } modifier = { is_extended_family_of = root add = 5 } modifier = { OR = { has_relation_friend = root has_relation_lover = root has_relation_disciple = root } add = 5 } } save_scope_as = other_ruler } } option = { # Sure name = tgp_movement_events.0030.a change_merit = medium_merit_gain scope:other_ruler = { change_merit = medium_merit_gain } progress_towards_friend_effect = { REASON = friend_same_movement_reason CHARACTER = scope:other_ruler OPINION = default_friend_opinion } ai_chance = { base = 100 modifier = { OR = { has_trait = gregarious has_trait = generous } factor = 2 } } } option = { # Nah name = tgp_movement_events.0030.b change_influence = major_influence_gain ai_chance = { base = 100 modifier = { OR = { has_trait = deceitful has_trait = callous has_trait = arrogant } factor = 2 } } } } # Hegemon sends envoy thanking you for being Pro-Song scripted_trigger tgp_movement_events_0040_valid_courtier = { is_available_healthy_ai_adult = yes is_councillor = no NOT = { is_close_family_or_spouse_trigger = { CHARACTER = scope:hegemon } } can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:hegemon } } tgp_movement_events.0040 = { type = character_event title = tgp_movement_events.0040.t desc = tgp_movement_events.0040.desc left_portrait = { character = root triggered_animation = { trigger = { OR = { has_trait = arbitrary has_trait = arrogant has_trait = ambitious } } animation = dismissal } animation = interested camera = camera_event_left_crowning_observation } right_portrait = { character = scope:courtier animation = gongshou_with_hu } lower_right_portrait = scope:hegemon theme = dynastic_cycle override_background = { reference = throne_room } cooldown = { years = 10 } trigger = { is_available_adult = yes has_tgp_dlc_trigger = yes government_has_flag = government_is_celestial top_participant_group:dynastic_cycle ?= { participant_group_type = pro_hegemon_movement } exists = title:h_china.holder # There's an Hegemon } immediate = { top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } title:h_china.holder = { save_scope_as = hegemon if = { limit = { any_courtier = { tgp_movement_events_0040_valid_courtier = yes } } ordered_courtier = { limit = { tgp_movement_events_0040_valid_courtier = yes } order_by = diplomacy set_location = root.location save_scope_as = courtier } } else = { hidden_effect_new_object = { create_character = { location = root.location template = diplomacy_court_position_holder_template gender_female_chance = root_soldier_female_chance faith = scope:hegemon.capital_county.faith culture = scope:hegemon.capital_county.culture save_scope_as = courtier } } hidden_effect = { add_courtier = scope:courtier } } } } option = { # Yippieeee name = tgp_movement_events.0040.a custom_tooltip = event_increase_movement_power_major_effect_tooltip change_influence = minor_influence_gain scope:my_movement = { event_change_movement_power_effect = { VALUE = event_increase_movement_power_major_value } } stress_impact = { ambitious = medium_stress_impact_gain arrogant = medium_stress_impact_gain diligent = medium_stress_impact_loss humble = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { OR = { has_trait = ambitious has_trait = arrogant } factor = 2 } modifier = { OR = { has_trait = diligent has_trait = humble } factor = 0 } } } option = { # I will always be loyal! name = tgp_movement_events.0040.b custom_tooltip = { text = dynastic_cycle_cannot_leave_movement_tt set_variable = { name = dynastic_cycle_cannot_leave_movement_var years = 15 } } add_character_modifier = { modifier = tgp_loyal_subject_modifier years = 15 } stress_impact = { ambitious = medium_stress_impact_loss arrogant = medium_stress_impact_loss diligent = medium_stress_impact_gain humble = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_trait = ambitious has_trait = arrogant } factor = 0 } modifier = { OR = { has_trait = diligent has_trait = humble } factor = 2 } } } option = { # Please please please tell everyone name = tgp_movement_events.0040.c add_prestige = medium_prestige_gain every_vassal = { limit = { has_vassal_stance = courtly } custom = every_courtly_vassal add_opinion = { target = root modifier = admiration_opinion opinion = 15 } } stress_impact = { diligent = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { has_lifestyle = learning_lifestyle factor = 2 } modifier = { has_trait = diligent factor = 2 } } } } # Elder takes interest in you scripted_trigger tgp_movement_events_0050_valid_elder = { is_available_healthy_ai_adult = yes government_allows = merit merit_level >= root.merit_level OR = { merit_level >= merit_level_expected_empire_value has_trait = confucian_education } top_liege = root.top_liege # Someone that makes sense NOR = { this = root.liege this = root.top_liege } } tgp_movement_events.0050 = { type = character_event title = tgp_movement_events.0050.t desc = { desc = tgp_movement_events.0050.desc.intro first_valid = { triggered_desc = { trigger = { highest_skill = diplomacy } desc = tgp_movement_events.0050.desc.diplomacy } triggered_desc = { trigger = { highest_skill = stewardship } desc = tgp_movement_events.0050.desc.stewardship } triggered_desc = { trigger = { highest_skill = intrigue } desc = tgp_movement_events.0050.desc.intrigue } triggered_desc = { trigger = { highest_skill = learning } desc = tgp_movement_events.0050.desc.learning } triggered_desc = { trigger = { highest_skill = martial } desc = tgp_movement_events.0050.desc.martial } } desc = tgp_movement_events.0050.desc.outro } left_portrait = { character = root triggered_animation = { trigger = { OR = { has_trait = content has_trait = craven stress_level >= 1 } } animation = worry } animation = interested } right_portrait = { character = scope:new_elder animation = debating } lower_left_portrait = { trigger = { exists = scope:old_elder } character = scope:old_elder } theme = merit override_background = { reference = study } cooldown = { years = 10 } trigger = { is_available_adult = yes has_tgp_dlc_trigger = yes government_allows = merit # Not Celestial specific OR = { # You're good or a player AND = { is_ai = no has_any_decent_skill_rating = yes } has_any_high_skill_rating = yes } NOT = { any_relation = { type = disciple } } # You're not an elder yourself OR = { # You don't have an elder or they're pretty bad NOT = { any_relation = { type = elder } } any_relation = { type = elder OR = { merit_level <= root.merit_level merit_level <= merit_level_expected_empire_value } } } any_ruler = { tgp_movement_events_0050_valid_elder = yes } } immediate = { top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } if = { limit = { any_relation = { type = elder } } random_relation = { type = elder save_scope_as = old_elder } } random_ruler = { limit = { tgp_movement_events_0050_valid_elder = yes } weight = { base = 1 modifier = { has_same_highest_skill = { CHARACTER = root } add = 100 } } save_scope_as = new_elder } } option = { # Get a new Elder name = tgp_movement_events.0050.a if = { limit = { exists = scope:old_elder } remove_relation_disciple = scope:old_elder scope:old_elder = { add_opinion = { target = root modifier = disappointed_opinion opinion = -10 } } } scope:new_elder = { set_relation_disciple = root } change_merit = medium_merit_gain stress_impact = { ambitious = medium_stress_impact_gain arrogant = medium_stress_impact_gain diligent = medium_stress_impact_loss humble = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { OR = { has_trait = ambitious has_trait = arrogant } factor = 2 } modifier = { OR = { has_trait = diligent has_trait = humble } factor = 0 } } } option = { # I will ALWAYS be loyal to old_elder name = tgp_movement_events.0050.b trigger = { exists = scope:old_elder } add_prestige = minor_prestige_gain scope:old_elder = { add_opinion = { target = root modifier = grateful_opinion opinion = 20 } } if = { limit = { NOT = { has_trait = loyal } } add_trait = loyal } stress_impact = { ambitious = medium_stress_impact_loss arrogant = medium_stress_impact_loss diligent = medium_stress_impact_gain humble = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_trait = ambitious has_trait = arrogant } factor = 0 } modifier = { OR = { has_trait = diligent has_trait = humble } factor = 2 } } } option = { # I need to focus on STUDYING name = tgp_movement_events.0050.c gain_appropriate_lifestyle_major_xp_effect = yes stress_impact = { diligent = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { has_lifestyle = learning_lifestyle factor = 2 } modifier = { has_trait = diligent factor = 2 } } } } # Antagonize another movement scripted_trigger tgp_movement_events_0060_valid_rival = { is_available_healthy_ai_adult = yes government_has_flag = government_is_celestial top_participant_group:dynastic_cycle ?= { NOT = { participant_group_type = undecided_movement } trigger_if = { limit = { exists = root.top_participant_group:dynastic_cycle } this != root.top_participant_group:dynastic_cycle } } opinion = { target = root value <= -10 } } tgp_movement_events.0060 = { type = character_event title = tgp_movement_events.0060.t desc = tgp_movement_events.0060.desc left_portrait = { character = root triggered_animation = { trigger = { OR = { has_trait = compassionate has_trait = calm } } animation = stress } animation = scheme } lower_right_portrait = { character = scope:rival } theme = dynastic_cycle override_background = { reference = study } cooldown = { years = 10 } trigger = { is_available_adult = yes has_tgp_dlc_trigger = yes government_has_flag = government_is_celestial top_participant_group:dynastic_cycle ?= { NOT = { participant_group_type = undecided_movement } } any_ruler = { tgp_movement_events_0060_valid_rival = yes } } immediate = { assign_quirk_effect = yes top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } random_ruler = { limit = { tgp_movement_events_0060_valid_rival = yes } weight = { base = 1 modifier = { OR = { has_relation_potential_rival = root has_relation_rival = root } add = 25 } modifier = { is_any_movement_leader = yes add = 15 } } top_participant_group:dynastic_cycle ?= { save_scope_as = rival_movement } save_scope_as = rival } } option = { # You convince everyone name = tpg_movement_events.0060.aa trigger = { has_focus_or_focus_trait_trigger = { FOCUS = intrigue_skulduggery_focus } } reason = lifestyle_focus add_internal_flag = special custom_tooltip = tgp_movement_events.0060.a.rival_tt scope:rival_movement = { event_change_movement_power_effect = { VALUE = event_decrease_movement_power_medium_value } } custom_tooltip = event_increase_movement_power_major_effect_tooltip scope:my_movement = { event_change_movement_power_effect = { VALUE = event_increase_movement_power_major_value } } add_intrigue_lifestyle_xp = medium_lifestyle_xp stress_impact = { deceitful = major_stress_impact_loss honest = major_stress_impact_gain forgiving = major_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = deceitful factor = 2 } modifier = { OR = { has_trait = honest has_trait = forgiving } factor = 0 } } } option = { # Scheme against them name = tgp_movement_events.0060.a if = { limit = { NOT = { any_scheme = { is_hostile = yes scheme_target_character = scope:rival } } } start_scheme = { type = challenge_status target_character = scope:rival } custom_tooltip = { text = tgp_movement_events.0060.a.tt random_scheme = { limit = { scheme_type = challenge_status scheme_target_character = scope:rival } add_scheme_modifier = { type = extra_success_chance_modifier } } } } else = { random_scheme = { limit = { is_hostile = yes scheme_target_character = scope:guest } add_scheme_modifier = { type = massive_extra_success_chance_modifier } } } custom_tooltip = tgp_movement_events.0060.a.rival_tt scope:rival_movement = { event_change_movement_power_effect = { VALUE = event_decrease_movement_power_medium_value } } stress_impact = { deceitful = medium_stress_impact_loss vengeful = medium_stress_impact_loss honest = medium_stress_impact_gain compassionate = medium_stress_impact_gain forgiving = major_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_trait = deceitful has_trait = vengeful } factor = 2 } modifier = { OR = { has_trait = honest has_trait = compassionate has_trait = forgiving } factor = 0 } } } option = { # Focus on getting Movement Power name = tgp_movement_events.0060.b custom_tooltip = event_increase_movement_power_medium_effect_tooltip scope:my_movement = { event_change_movement_power_effect = { VALUE = event_increase_movement_power_medium_value } } stress_impact = { ambitious = medium_stress_impact_loss deceitful = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = ambitious factor = 2 } modifier = { has_trait = deceitful factor = 0 } } } option = { # Forgive and forget name = tgp_movement_events.0060.c if = { limit = { faith = { OR = { trait_is_virtue = calm trait_is_virtue = compassionate } } } add_piety = medium_piety_gain if = { limit = { exists = cp:councillor_court_chaplain } cp:councillor_court_chaplain = { add_opinion = { target = root modifier = pious_opinion opinion = 15 } } } } else = { add_prestige = minor_prestige_gain } stress_impact = { forgiving = major_stress_impact_loss callous = major_stress_impact_gain vengeful = major_stress_impact_gain deceitful = major_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = forgiving factor = 2 } modifier = { OR = { has_trait = callous has_trait = vengeful has_trait = deceitful } factor = 2 } } } } # Councillor of your highest skill helps you study scripted_trigger tgp_movement_events_0070_valid_councillor = { is_available_healthy_ai_adult = yes government_has_flag = government_is_celestial has_same_highest_skill = { CHARACTER = root } opinion = { target = root value >= 10 } } tgp_movement_events.0070 = { type = character_event title = tgp_movement_events.0070.t desc = tgp_movement_events.0070.desc left_portrait = { character = root triggered_animation = { trigger = { OR = { has_trait = lazy has_trait = intellect_bad } } animation = stress } animation = interested } right_portrait = { character = scope:councillor animation = happy_teacher } theme = merit override_background = { reference = study } cooldown = { years = 10 } trigger = { is_available_adult = yes has_tgp_dlc_trigger = yes government_has_flag = government_is_celestial any_councillor = { tgp_movement_events_0070_valid_councillor = yes } } immediate = { top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } random_councillor = { limit = { tgp_movement_events_0070_valid_councillor = yes } weight = { base = 1 modifier = { has_relation_potential_friend = root add = 5 } } assign_quirk_effect = yes save_scope_as = councillor } } option = { # Become friends name = tgp_movement_events.0070.a progress_towards_friend_effect = { REASON = friend_studied_together CHARACTER = scope:councillor OPINION = default_friend_opinion } stress_impact = { base = medium_stress_impact_loss gregarious = medium_stress_impact_loss lazy = medium_stress_impact_loss diligent = major_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_trait = gregarious has_trait = lazy } factor = 2 } modifier = { has_trait = diligent factor = 0 } } } option = { # Encourage _them_ to focus on their job name = { trigger = { scope:councillor = { is_spouse_of = root } } text = tgp_movement_events.0070.b.spouse } name = { trigger = { NOT = { scope:councillor = { is_spouse_of = root } } } text = tgp_movement_events.0070.b.councillor } if = { limit = { scope:councillor = { is_spouse_of = root } } scope:councillor = { add_highest_skill_two_points_effect = yes } } else = { scope:councillor = { councillor_increase_relevant_skill_two_points_effect = yes } } stress_impact = { callous = medium_stress_impact_loss lazy = medium_stress_impact_loss diligent = major_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_trait = callous has_trait = lazy } factor = 2 } modifier = { has_trait = diligent factor = 0 } } } option = { # Study name = tgp_movement_events.0070.c add_highest_skill_point_effect = yes scope:councillor = { add_highest_skill_point_effect = yes } stress_impact = { base = medium_stress_impact_gain diligent = medium_stress_impact_loss lazy = major_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_lifestyle = learning_lifestyle has_trait = diligent } factor = 2 } modifier = { has_trait = lazy factor = 0 } } } } # Family member asks you to focus on your family scripted_trigger tgp_movement_events_0080_valid_family_member = { is_available_healthy_ai_adult = yes government_has_flag = government_is_celestial house = root.house # Just in case opinion = { target = root value >= 10 } gold >= major_gold_value NOT = { has_trait = greedy } OR = { # Someone that'd want you to focus on Family top_participant_group:dynastic_cycle ?= { participant_group_type = conservative_movement } influence_level >= 2 prestige_level >= 2 has_trait = ambitious has_trait = arrogant has_trait = generous has_relation_friend = root has_relation_lover = root } } tgp_movement_events.0080 = { type = character_event title = tgp_movement_events.0080.t desc = tgp_movement_events.0080.desc left_portrait = { character = root triggered_animation = { trigger = { OR = { has_trait = humble has_trait = content has_trait = lazy } } animation = dismissal } animation = interested } right_portrait = { character = scope:family_member animation = fanning } theme = administrative override_background = { reference = relaxing_room } cooldown = { years = 10 } trigger = { is_available_adult = yes has_tgp_dlc_trigger = yes government_has_flag = government_is_celestial any_close_or_extended_family_member = { tgp_movement_events_0080_valid_family_member = yes } } weight_multiplier = { base = 1 modifier = { top_participant_group:dynastic_cycle ?= { participant_group_type = conservative_movement } add = 1 } } immediate = { save_scope_as = root_scope top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } random_close_or_extended_family_member = { limit = { tgp_movement_events_0080_valid_family_member = yes } weight = { base = 1 modifier = { OR = { has_relation_potential_friend = root has_relation_friend = root } add = 5 } } assign_quirk_effect = yes save_scope_as = family_member } domicile ?= { set_variable = { name = subsidised_estate_var value = 3 } } } option = { # Get extra stuff if you are a Conservative name = tgp_movement_events.0080.aa trigger = { top_participant_group:dynastic_cycle ?= { participant_group_type = conservative_movement } } add_internal_flag = special reason = movement add_character_modifier = tgp_subsidised_estate_buildings_modifier scope:family_member = { remove_short_term_gold = medium_gold_value } add_prestige = medium_prestige_gain stress_impact = { generous = medium_stress_impact_gain humble = medium_stress_impact_gain content = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = diligent factor = 2 } modifier = { has_trait = arrogant factor = 0 } } } option = { # Thank you mate name = tgp_movement_events.0080.a trigger = { NOT = { top_participant_group:dynastic_cycle ?= { participant_group_type = conservative_movement } } } add_character_modifier = tgp_subsidised_estate_buildings_modifier scope:family_member = { remove_short_term_gold = medium_gold_value } stress_impact = { generous = medium_stress_impact_gain humble = medium_stress_impact_gain content = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_trait = gregarious has_trait = lazy } factor = 2 } modifier = { has_trait = diligent factor = 0 } } } option = { # This is not the way, focus on our movement name = tpg_movement_events.0080.b change_influence = medium_influence_gain custom_tooltip = event_increase_movement_power_medium_effect_tooltip scope:my_movement = { event_change_movement_power_effect = { VALUE = event_increase_movement_power_medium_value } } scope:family_member = { remove_short_term_gold = medium_gold_value add_opinion = { target = root modifier = annoyed_opinion opinion = -10 } } stress_impact = { generous = medium_stress_impact_gain humble = medium_stress_impact_gain content = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_trait = callous has_trait = lazy } factor = 2 } modifier = { has_trait = diligent factor = 0 } } } option = { # Keep the money, bestie name = tgp_movement_events.0080.c progress_towards_friend_effect = { REASON = friend_rejected_funds CHARACTER = scope:family_member OPINION = default_friend_opinion } if = { limit = { faith = { OR = { trait_is_virtue = generous trait_is_virtue = humble } } } add_piety = medium_piety_gain every_vassal = { limit = { has_vassal_stance = zealot } custom = every_zealot_vassal add_opinion = { target = root modifier = pious_opinion opinion = 5 } } } stress_impact = { gregarious = medium_stress_impact_loss generous = medium_stress_impact_loss content = medium_stress_impact_loss humble = medium_stress_impact_loss arrogant = major_stress_impact_gain greedy = major_stress_impact_gain avaricious = major_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_lifestyle = learning_lifestyle has_trait = diligent } factor = 2 } modifier = { has_trait = lazy factor = 0 } } } } # Movement member wants to make ammnds scripted_trigger tpg_movement_events_0090_valid_ruler = { this != root is_available_healthy_ai_adult = yes government_has_flag = government_is_celestial top_participant_group:dynastic_cycle ?= root.top_participant_group:dynastic_cycle opinion = { target = root value <= -10 } NOT = { has_trait = vengeful } # They would NEVER } tgp_movement_events.0090 = { type = character_event title = tgp_movement_events.0090.t desc = tgp_movement_events.0090.desc left_portrait = { character = root triggered_animation = { trigger = { OR = { has_trait = callous has_trait = vengeful has_trait = wrathful } } animation = dismissal } triggered_animation = { trigger = { OR = { has_trait = arrogant has_trait = brave } } animation = laugh } animation = japanese_war_fan camera = camera_event_left_pointing_right } right_portrait = { character = scope:courtier animation = gongshou } lower_right_portrait = scope:other_ruler theme = dynastic_cycle override_background = { reference = garden } cooldown = { years = 10 } trigger = { is_available_adult = yes has_tgp_dlc_trigger = yes government_has_flag = government_is_celestial top_participant_group:dynastic_cycle ?= { NOT = { participant_group_type = undecided_movement } } situation:dynastic_cycle ?= { NOT = { situation_current_phase = situation_dynastic_cycle_phase_chaos } } any_ruler = { tpg_movement_events_0090_valid_ruler = yes } } weight_multiplier = { base = 1 modifier = { any_relation = { type = rival } add = 1 } } immediate = { top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } random_ruler = { limit = { tpg_movement_events_0090_valid_ruler = yes } weight = { base = 1 modifier = { has_relation_nemesis = root add = 100 } modifier = { has_relation_rival = root add = 100 } modifier = { any_memory = { has_memory_category = negative any_memory_participant = { this = root } } add = 50 } modifier = { has_trait = forgiving add = 10 } modifier = { opinion = { target = root value < -25 } add = 5 } modifier = { opinion = { target = root value < -50 } add = 5 } } assign_quirk_effect = yes save_scope_as = other_ruler if = { limit = { any_courtier = { tgp_movement_events_0010_valid_courtier = yes } } ordered_courtier = { limit = { tgp_movement_events_0010_valid_courtier = yes } order_by = diplomacy set_location = root.location save_scope_as = courtier } } else = { hidden_effect_new_object = { create_character = { location = root.location template = diplomacy_court_position_holder_template gender_female_chance = root_soldier_female_chance faith = scope:other_ruler.capital_county.faith culture = scope:other_ruler.capital_county.culture save_scope_as = courtier } } hidden_effect = { add_courtier = scope:courtier } } } } option = { # They should KNEEL name = tgp_movement_events.0090.aa trigger = { OR = { has_trait = callous has_trait = vengeful has_trait = wrathful } } add_dread = medium_dread_gain scope:other_ruler = { add_opinion = { target = root modifier = humiliated_opinion opinion = -15 } } every_vassal = { limit = { has_vassal_stance = belligerent } custom = every_belligerent_vassal add_opinion = { target = root modifier = respect_opinion opinion = 10 } } stress_impact = { ambitious = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { has_trait = ambitious factor = 2 } } } option = { # Nah name = tgp_movement_events.0090.a change_influence = major_influence_gain stress_impact = { ambitious = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { has_trait = ambitious factor = 2 } } } option = { # I do this ONLY for our party name = tgp_movement_events.0090.b custom_tooltip = event_increase_movement_power_medium_effect_tooltip scope:my_movement = { event_change_movement_power_effect = { VALUE = event_increase_movement_power_medium_value } } stress_impact = { deceitful = medium_stress_impact_loss honest = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = deceitful factor = 2 } modifier = { has_trait = honest factor = 0 } } } option = { # Apology accepted name = tgp_movement_events.0090.c if = { limit = { has_relation_nemesis = scope:other_ruler } remove_relation_nemesis = scope:other_ruler } else_if = { limit = { has_relation_rival = scope:other_ruler } remove_relation_rival = scope:other_ruler } progress_towards_friend_effect = { REASON = friend_same_movement_reason CHARACTER = scope:other_ruler OPINION = default_friend_opinion } stress_impact = { ambitious = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { has_lifestyle = martial_lifestyle factor = 3 } modifier = { has_trait = ambitious factor = 0 } } } } # Ask a Movement Leader to abandon their Movement scripted_trigger tgp_movement_events_0100_valid_rival = { this != root is_available_healthy_ai_adult = yes government_has_flag = government_is_celestial is_any_movement_leader = yes NOR = { top_participant_group:dynastic_cycle ?= root.top_participant_group:dynastic_cycle top_participant_group:dynastic_cycle ?= { participant_group_type = undecided_movement } } } scripted_trigger tgp_movement_events_0100_valid_spymaster = { is_available_healthy_ai_adult = yes intrigue >= decent_skill_rating } scripted_effect tgp_movement_events_0100_remove_from_movement_effect = { custom_tooltip = tgp_movement_events_0100_remove_from_movement_effect_tt set_variable = { name = movement_member value = flag:undecided } scope:rival_movement = { set_variable = { name = movement_power value = movement_power_value } } } tgp_movement_events.0100 = { type = character_event title = tgp_movement_events.0100.t desc = tgp_movement_events.0100.desc left_portrait = { character = root triggered_animation = { trigger = { OR = { has_trait = compassionate has_trait = forgiving has_trait = content } } animation = worry } animation = spymaster camera = camera_event_very_left } right_portrait = { character = scope:spymaster animation = scheme camera = camera_event_very_right } lower_right_portrait = scope:rival theme = dynastic_cycle override_background = { reference = corridor_night } cooldown = { years = 10 } trigger = { is_available_adult = yes has_tgp_dlc_trigger = yes government_has_flag = government_is_celestial top_participant_group:dynastic_cycle ?= { NOT = { participant_group_type = undecided_movement } } situation:dynastic_cycle = { any_situation_participant = { tgp_movement_events_0100_valid_rival = yes } } OR = { # You are important enough is_any_movement_leader = yes influence_level >= 4 merit_level >= 4 } OR = { # You have someone that can do the job exists = cp:councillor_spymaster any_courtier = { tgp_movement_events_0100_valid_spymaster = yes } } } weight_multiplier = { base = 1 modifier = { any_relation = { type = rival } add = 1 } } immediate = { top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } if = { limit = { exists = cp:councillor_spymaster } cp:councillor_spymaster = { save_scope_as = spymaster } } else = { ordered_courtier = { limit = { tgp_movement_events_0100_valid_spymaster = yes } order_by = intrigue save_scope_as = spymaster } } scope:spymaster = { assign_quirk_effect = yes } situation:dynastic_cycle = { random_situation_participant = { limit = { tgp_movement_events_0100_valid_rival = yes } weight = { base = 1 modifier = { has_relation_nemesis = root add = 100 } modifier = { has_relation_rival = root add = 100 } modifier = { any_memory = { has_memory_category = negative any_memory_participant = { this = root } } add = 50 } modifier = { has_trait = forgiving add = 10 } modifier = { opinion = { target = root value < -25 } add = 5 } modifier = { opinion = { target = root value < -50 } add = 5 } } assign_quirk_effect = yes save_scope_as = rival top_participant_group:dynastic_cycle = { save_scope_as = rival_movement } } } } option = { # If you have a hook/secret on them, insta win name = tgp_movement_events.0100.aa trigger = { OR = { has_hook = scope:rival scope:rival = { any_secret = { is_known_by = root } } } } add_internal_flag = special reason = hook remove_hook = { target = scope:rival } scope:rival = { tgp_movement_events_0100_remove_from_movement_effect = yes } } option = { # Ask them to leave name = tgp_movement_events.0100.a change_influence = major_influence_loss scope:spymaster = { duel = { skill = intrigue target = scope:rival 25 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 } desc = tgp_movement_events.0100.a.success root = { send_interface_toast = { title = tgp_movement_events.0100.a.success left_icon = scope:rival scope:rival = { tgp_movement_events_0100_remove_from_movement_effect = yes } } } } 75 = { compare_modifier = { value = scope:duel_value multiplier = -3.5 } desc = tgp_movement_events.0100.a.failure root = { send_interface_toast = { title = tgp_movement_events.0100.a.failure left_icon = root add_prestige = medium_prestige_loss } } } } } stress_impact = { ambitious = medium_stress_impact_loss deceitful = medium_stress_impact_loss honest = major_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_trait = ambitious has_trait = deceitful } factor = 2 } modifier = { has_trait = honest factor = 0 } } } option = { # Pay them to leave name = tgp_movement_events.0100.b pay_short_term_gold = { target = scope:rival gold = major_gold_value } duel = { skills = { diplomacy intrigue } target = scope:rival 50 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 } modifier = { scope:rival = { has_trait = greedy } add = 25 } modifier = { scope:rival = { gold <= medium_gold_value } add = 10 } desc = tgp_movement_events.0100.a.success send_interface_toast = { title = tgp_movement_events.0100.a.success left_icon = scope:rival scope:rival = { tgp_movement_events_0100_remove_from_movement_effect = yes } } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -3.5 } desc = tgp_movement_events.0100.a.failure send_interface_toast = { title = tgp_movement_events.0100.a.failure left_icon = root root = { add_prestige = medium_prestige_loss } } } } stress_impact = { ambitious = medium_stress_impact_loss honest = major_stress_impact_gain greedy = major_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = deceitful factor = 2 } modifier = { OR = { gold <= massive_gold_value has_trait = greedy has_trait = honest } factor = 0 } } } option = { # Just undermine them name = tgp_movement_events.0100.c custom_tooltip = tgp_movement_events.0060.a.rival_tt scope:rival_movement = { event_change_movement_power_effect = { VALUE = event_decrease_movement_power_medium_value } } stress_impact = { ambitious = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = ambitious factor = 0 } } } } # Movement member sends you some books scripted_trigger tpg_movement_events_0110_valid_ruler = { this != root is_available_healthy_ai_adult = yes government_has_flag = government_is_celestial trigger_if = { limit = { exists = top_participant_group:dynastic_cycle } top_participant_group:dynastic_cycle ?= root.top_participant_group:dynastic_cycle } top_participant_group:dynastic_cycle ?= { NOT = { participant_group_type = undecided_movement } } learning >= decent_skill_rating opinion = { target = root value >= 0 } } tgp_movement_events.0110 = { type = letter_event opening = tgp_movement_events.0110.opening desc = tgp_movement_events.0110.desc sender = scope:other_ruler cooldown = { years = 5 } trigger = { is_available_adult = yes has_tgp_dlc_trigger = yes government_has_flag = government_is_celestial exists = top_participant_group:dynastic_cycle any_ruler = { tpg_movement_events_0110_valid_ruler = yes } } immediate = { save_scope_as = root_scope top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } random_ruler = { limit = { tpg_movement_events_0110_valid_ruler = yes } weight = { base = 1 modifier = { has_relation_potential_friend = root add = 25 } modifier = { is_close_family_of = root add = 10 } modifier = { is_extended_family_of = root add = 5 } modifier = { OR = { has_relation_friend = root has_relation_lover = root has_relation_disciple = root } add = 5 } } save_scope_as = other_ruler hidden_effect_new_object = { create_artifact_book_effect = { OWNER = scope:other_ruler CREATOR = scope:other_ruler SET_SUBJECT = flag:no SET_TOPIC = flag:no } } } hidden_effect = { scope:newly_created_artifact = { set_artifact_description = artifact_movement_gift_desc set_artifact_rarity = masterwork } } } option = { # So nice of you! name = tgp_movement_events.0110.a gain_appropriate_lifestyle_medium_xp_effect = yes progress_towards_friend_effect = { REASON = friend_sent_books_reason CHARACTER = scope:other_ruler OPINION = default_friend_opinion } ai_chance = { base = 100 modifier = { OR = { has_trait = gregarious has_trait = diligent } factor = 2 } } } option = { # I'll put it in my library name = tgp_movement_events.0110.b add_prestige = medium_prestige_gain ai_chance = { base = 100 modifier = { OR = { has_trait = arrogant has_trait = lazy } factor = 2 } } } after = { scope:newly_created_artifact = { set_owner = root } } } # Movement member teaches you Confucianism scripted_trigger tpg_movement_events_0120_valid_ruler = { this != root is_ai = yes is_adult = yes government_has_flag = government_is_celestial top_participant_group:dynastic_cycle ?= root.top_participant_group:dynastic_cycle has_trait = confucian_education opinion = { target = root value >= 0 } } scripted_effect tpg_movement_events_0120_confucian_education_effect = { if = { limit = { NOT = { has_trait = confucian_education } } add_trait_force_tooltip = confucian_education } else = { add_trait_xp = { trait = confucian_education value = lifestyle_confucian_education_xp_gain_medium_value } } } scripted_effect tpg_movement_events_0120_lifestyle_reveler_effect = { if = { limit = { NOT = { has_trait = lifestyle_reveler } } random = { chance = 25 add_trait_force_tooltip = lifestyle_reveler } } else = { add_trait_xp = { trait = lifestyle_reveler value = lifestyle_confucian_education_xp_gain_medium_value } } } tgp_movement_events.0120 = { type = activity_event title = tgp_movement_events.0120.t desc = tgp_movement_events.0120.desc left_portrait = { character = root triggered_animation = { trigger = { OR = { has_trait = arrogant has_trait = callous } } animation = eyeroll } triggered_animation = { trigger = { OR = { has_trait = lazy learning <= decent_skill_rating } NOT = { has_trait = diligent } } animation = boredom } animation = drink } right_portrait = { character = scope:other_ruler animation = debating } theme = feast_activity cooldown = { years = 10 } trigger = { is_available_adult = yes has_tgp_dlc_trigger = yes government_has_flag = government_is_celestial exists = top_participant_group:dynastic_cycle OR = { # You don't have the trait or you don't have the trait maxed out NOT = { has_trait = confucian_education } has_trait_xp = { trait = confucian_education value <= 75 } } involved_activity = { any_attending_character = { tpg_movement_events_0120_valid_ruler = yes } } } immediate = { top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } involved_activity = { save_scope_as = activity activity_host = { save_scope_as = host } random_attending_character = { limit = { tpg_movement_events_0120_valid_ruler = yes } weight = { base = 1 modifier = { has_relation_potential_friend = root add = 25 } modifier = { is_close_family_of = root add = 10 } modifier = { is_extended_family_of = root add = 5 } modifier = { OR = { has_relation_friend = root has_relation_lover = root has_relation_disciple = root } add = 5 } } save_scope_as = other_ruler assign_quirk_effect = yes } } } option = { # Teach me! name = tgp_movement_events.0120.a tpg_movement_events_0120_confucian_education_effect = yes stress_impact = { diligent = major_stress_impact_loss arrogant = major_stress_impact_gain lazy = major_stress_impact_gain lifestyle_reveler = major_stress_impact_gain drunkard = major_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_trait = arrogant has_trait = lifestyle_reveler has_trait = lazy has_trait = drunkard } factor = 0 } modifier = { has_trait = diligent factor = 2 } } } option = { # We are here to spread the word of my_movement name = tgp_movement_events.0120.b custom_tooltip = event_increase_movement_power_minor_effect_tooltip scope:my_movement = { event_change_movement_power_effect = { VALUE = event_increase_movement_power_minor_value } } stress_impact = { ambitious = medium_stress_impact_loss diligent = medium_stress_impact_gain lifestyle_reveler = major_stress_impact_gain drunkard = major_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = ambitious factor = 2 } modifier = { OR = { has_trait = diligent has_trait = lifestyle_reveler has_trait = drunkard } factor = 0 } } } option = { # This is a FEAST name = tgp_movement_events.0120.c tpg_movement_events_0120_lifestyle_reveler_effect = yes scope:activity = { every_attending_character = { limit = { NOT = { this = root } } custom = custom.every_attending_character add_opinion = { target = root modifier = amused_opinion opinion = 5 } } } stress_impact = { base = medium_stress_impact_loss lifestyle_reveler = medium_stress_impact_loss drunkard = medium_stress_impact_loss diligent = major_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_trait = lifestyle_reveler has_trait = drunkard } factor = 2 } modifier = { has_trait = diligent factor = 0 } } } } # Movement member teaches you the language of the capital scripted_trigger tpg_movement_events_0130_valid_ruler = { this != root is_ai = yes is_adult = yes government_has_flag = government_is_celestial top_participant_group:dynastic_cycle ?= root.top_participant_group:dynastic_cycle opinion = { target = root value >= 0 } knows_language_of_culture = top_liege.capital_county.culture # They are of the same culture } scripted_trigger tgp_movement_events_0130_valid_courtier = { is_available_healthy_ai_adult = yes is_councillor = no NOT = { is_close_family_or_spouse_trigger = { CHARACTER = scope:other_ruler } } knows_language_of_culture = scope:capital_culture } tgp_movement_events.0130 = { type = character_event title = tgp_movement_events.0130.t desc = tgp_movement_events.0130.desc left_portrait = { character = root triggered_animation = { trigger = { OR = { has_trait = arrogant has_trait = callous } } animation = eyeroll } triggered_animation = { trigger = { OR = { has_trait = lazy learning <= decent_skill_rating } NOT = { has_trait = diligent } } animation = worry } animation = interested camera = camera_event_crowd } right_portrait = { character = scope:courtier animation = obsequious_bow } lower_right_portrait = scope:other_ruler theme = dynastic_cycle override_background = { reference = throne_room } cooldown = { years = 10 } trigger = { is_available_adult = yes has_tgp_dlc_trigger = yes government_has_flag = government_is_celestial exists = top_participant_group:dynastic_cycle NOT = { knows_language_of_culture = top_liege.capital_county.culture } any_ruler = { tpg_movement_events_0130_valid_ruler = yes } } immediate = { top_liege.capital_county.culture = { save_scope_as = capital_culture } top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } random_ruler = { limit = { tpg_movement_events_0130_valid_ruler = yes } weight = { base = 1 modifier = { has_relation_potential_friend = root add = 25 } modifier = { is_close_family_of = root add = 10 } modifier = { is_extended_family_of = root add = 5 } modifier = { OR = { has_relation_friend = root has_relation_lover = root has_relation_disciple = root } add = 5 } } save_scope_as = other_ruler if = { limit = { any_courtier = { tgp_movement_events_0130_valid_courtier = yes } } ordered_courtier = { limit = { tgp_movement_events_0130_valid_courtier = yes } order_by = diplomacy set_location = root.location save_scope_as = courtier } } else = { hidden_effect_new_object = { create_character = { location = root.location template = diplomacy_court_position_holder_template gender_female_chance = root_soldier_female_chance faith = scope:other_ruler.faith culture = scope:capital_culture save_scope_as = courtier } } hidden_effect = { add_courtier = scope:courtier } } scope:courtier = { assign_quirk_effect = yes } } } option = { # Learn the language! name = tgp_movement_events.0130.a start_scheme = { type = learn_language target_character = scope:other_ruler } custom_tooltip = diplomacy_family.2250.b.tt hidden_effect = { random_scheme = { limit = { scheme_type = learn_language scheme_target_character = scope:other_ruler } add_scheme_modifier = { type = extra_success_chance_modifier } } } stress_impact = { diligent = medium_stress_impact_loss humble = medium_stress_impact_loss lazy = medium_stress_impact_gain arrogant = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_trait = humble has_trait = diligent } factor = 0 } modifier = { OR = { has_trait = arrogant has_trait = lazy } factor = 0 } } } option = { # Convert name = tgp_movement_events.0130.b add_prestige = major_prestige_loss set_culture = scope:capital_culture stress_impact = { base = massive_stress_impact_gain arrogant = medium_stress_impact_gain } ai_chance = { base = 25 modifier = { has_trait = humble add = 75 } modifier = { has_trait = arrogant factor = 0 } } } option = { # I'm good tyyyy name = tgp_movement_events.0130.c culture = { change_cultural_acceptance = { target = scope:capital_culture value = minor_cultural_acceptance_gain desc = cultural_acceptance_gain_event } } add_character_modifier = { modifier = tgp_cultural_harmony_modifier years = 15 } stress_impact = { arrogant = medium_stress_impact_loss lazy = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { OR = { has_trait = arrogant has_trait = lazy } factor = 2 } } } } # Disciple brings you a gift scripted_trigger tgp_movement_events_0140_valid_disciple = { is_available_healthy_ai_adult = yes opinion = { target = root value >= 10 } } scripted_trigger tgp_movement_events_0140_valid_artifact = { is_equipped = no NOT = { rarity = common } artifact_can_be_gift_to_trigger = { RECIPIENT = root } } scripted_effect tgp_movement_events_0140_create_artifact_effect = { random_list = { 10 = { create_artifact_weapon_effect = { OWNER = scope:disciple CREATOR = scope:disciple SET_WEAPON_TYPE = flag:no } } 10 = { create_artifact_armor_effect = { OWNER = scope:disciple CREATOR = scope:disciple SET_ARMOR_TYPE = flag:no } } 10 = { create_artifact_book_effect = { OWNER = scope:disciple CREATOR = scope:disciple SET_SUBJECT = flag:no SET_TOPIC = flag:no } } } hidden_effect = { scope:newly_created_artifact = { save_scope_as = disciple_gift set_artifact_description = disciple_gift_desc set_artifact_rarity = masterwork } } } tgp_movement_events.0140 = { type = character_event title = tgp_movement_events.0140.t desc = tgp_movement_events.0140.desc left_portrait = { character = root animation = happiness camera = camera_event_crowd } right_portrait = { character = scope:disciple animation = gongshou } artifact = { position = lower_right_portrait target = scope:disciple_gift } theme = dynastic_cycle override_background = { reference = garden } cooldown = { years = 10 } trigger = { is_available_adult = yes has_tgp_dlc_trigger = yes government_has_flag = government_is_celestial top_participant_group:dynastic_cycle ?= { NOT = { participant_group_type = undecided_movement } } any_relation = { type = disciple tgp_movement_events_0140_valid_disciple = yes } } immediate = { save_scope_as = root_scope top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } ordered_relation = { type = disciple limit = { tgp_movement_events_0140_valid_disciple = yes } order_by = "opinion(root)" assign_quirk_effect = yes save_scope_as = disciple if = { limit = { any_character_artifact = { tgp_movement_events_0140_valid_artifact = yes } } ordered_character_artifact = { limit = { tgp_movement_events_0140_valid_artifact = yes } order_by = artifact_rarity save_scope_as = disciple_gift } } else = { tgp_movement_events_0140_create_artifact_effect = yes } } } option = { # Thank you for the gift! name = tgp_movement_events.0140.a scope:disciple_gift = { set_owner = root } scope:disciple = { add_opinion = { target = root modifier = grateful_opinion opinion = 15 } } stress_impact = { humble = medium_stress_impact_loss greedy = medium_stress_impact_loss diligent = medium_stress_impact_gain ambitious = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_trait = humble has_trait = greedy } factor = 2 } modifier = { OR = { has_trait = diligent has_trait = ambitious } factor = 0 } } } option = { # Remember we do this for the MOVEMENT name = tgp_movement_events.0140.b custom_tooltip = event_increase_movement_power_medium_effect_tooltip scope:my_movement = { event_change_movement_power_effect = { VALUE = event_increase_movement_power_medium_value } } stress_impact = { greedy = medium_stress_impact_gain ambitious = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { has_trait = ambitious factor = 2 } modifier = { has_trait = greedy factor = 0 } } } option = { # No time to waste, we must study!!!! name = tgp_movement_events.0140.c change_merit = medium_merit_gain scope:disciple = { change_merit = medium_merit_gain } if = { limit = { has_trait = confucian_education } add_trait_xp = { trait = confucian_education value = lifestyle_confucian_education_xp_gain_medium_value } } stress_impact = { ambitious = medium_stress_impact_gain greedy = medium_stress_impact_gain diligent = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { has_trait = diligent factor = 2 } modifier = { OR = { has_trait = greedy has_trait = ambitious } factor = 0 } } } } # Shinto visitor at court scripted_trigger tgp_movement_events_0150_valid_monk = { is_available_healthy_ai_adult = yes has_trait = devoted religion = religion:shintoism_religion is_councillor = no # Don't steal someone important } scripted_trigger tgp_movement_events_0150_valid_ruler = { is_available_healthy_ai_adult = yes is_landed = yes primary_title.tier >= tier_county religion = religion:shintoism_religion } tgp_movement_events.0150 = { type = character_event title = tgp_movement_events.0150.t desc = { desc = tgp_movement_events.0150.desc.intro first_valid = { triggered_desc = { trigger = { exists = scope:other_ruler } desc = tgp_movement_events.0150.desc.other_ruler } triggered_desc = { trigger = { NOT = { exists = scope:other_ruler } } desc = tgp_movement_events.0150.desc.alone } } desc = tgp_movement_events.0150.desc.outro } left_portrait = { character = root triggered_animation = { trigger = { has_trait = cynical } animation = dismissal } triggered_animation = { trigger = { has_trait = zealous } animation = anger } animation = interested camera = camera_event_crowd } right_portrait = { character = scope:monk animation = prayer } lower_right_portrait = { trigger = { exists = scope:other_ruler } character = scope:other_ruler } theme = faith override_background = { reference = throne_room } cooldown = { years = 10 } trigger = { is_available_adult = yes has_tgp_dlc_trigger = yes government_has_flag = government_is_celestial exists = top_participant_group:dynastic_cycle NOT = { religion = religion:shintoism_religion } highest_held_title_tier >= tier_duchy # You need to be somewhat important } weight_multiplier = { base = 0.5 modifier = { highest_held_title_tier >= tier_duchy add = root.primary_title.tier } } immediate = { if = { # If there's a valid ruler they're an envoy from them limit = { faith:shinto = { any_faith_ruler = { tgp_movement_events_0150_valid_ruler = yes } } } faith:shinto = { random_faith_ruler = { limit = { tgp_movement_events_0150_valid_ruler = yes } weight = { base = 1 modifier = { highest_held_title_tier >= tier_kingdom add = 50 } modifier = { any_courtier = { tgp_movement_events_0150_valid_monk = yes } add = 20 } } save_scope_as = other_ruler if = { limit = { any_courtier = { tgp_movement_events_0150_valid_monk = yes } } random_courtier = { limit = { tgp_movement_events_0150_valid_monk = yes } save_scope_as = monk } } else = { create_character = { location = root.capital_province template = monk_character_template gender_female_chance = root_faith_dominant_gender_adjusted_female_chance faith = scope:other_ruler.faith culture = scope:other_ruler.capital_county.culture save_scope_as = monk after_creation = { add_character_flag = created } } hidden_effect = { add_courtier = scope:monk } } } } } else = { # Otherwise they're a random monk create_character = { location = root.capital_province template = monk_character_template gender_female_chance = root_faith_dominant_gender_adjusted_female_chance faith = faith:shinto culture = culture:japanese save_scope_as = monk after_creation = { add_character_flag = created } } } scope:monk = { assign_quirk_effect = yes } } option = { # Get an alliance out of this name = tgp_movement_events.0150.aa trigger = { has_trait = diplomat exists = scope:other_ruler } add_opinion = { target = scope:other_ruler modifier = event_negotiated_alliance_opinion } custom_tooltip = tgp_movement_events.0150.aa.alliance create_alliance = { target = scope:other_ruler allied_through_owner = root allied_through_target = scope:other_ruler } stress_impact = { humble = medium_stress_impact_loss greedy = medium_stress_impact_loss diligent = medium_stress_impact_gain ambitious = medium_stress_impact_gain } ai_chance = { base = 100 } } option = { # Get Faith discount name = tgp_movement_events.0150.a custom_tooltip = cheaper_to_convert_to_monk_faith_tt set_variable = { name = discounted_faith_to_convert_to_var value = scope:monk.faith } add_courtier = scope:monk every_vassal = { limit = { has_vassal_stance = zealot } custom = every_zealot_vassal add_opinion = { target = root modifier = impious_opinion opinion = -20 } } stress_impact = { humble = medium_stress_impact_loss zealous = major_stress_impact_gain cynical = major_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = humble factor = 2 } modifier = { OR = { has_trait = zealous has_trait = cynical } factor = 0 } } } option = { # Try to convert them name = tgp_movement_events.0150.b duel = { skill = diplomacy target = scope:monk 35 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 } desc = tgp_movement_events.0150.b.success send_interface_toast = { title = tgp_movement_events.0150.b.success left_icon = scope:monk scope:monk = { set_character_faith = root.faith } add_courtier = scope:monk } } 65 = { compare_modifier = { value = scope:duel_value multiplier = -3.5 } desc = tgp_movement_events.0150.b.failure send_interface_toast = { title = tgp_movement_events.0150.b.failure left_icon = scope:monk scope:monk = { add_opinion = { target = root modifier = disrespect_opinion opinion = -25 } } } } } add_piety = medium_piety_gain stress_impact = { zealous = major_stress_impact_loss cynical = major_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = zealous factor = 2 } modifier = { has_trait = cynical factor = 0 } } } option = { # You're welcome here name = tgp_movement_events.0150.c add_courtier = scope:monk if = { limit = { has_lifestyle = diplomacy_lifestyle } add_diplomacy_lifestyle_xp = medium_lifestyle_xp } else = { add_prestige = medium_prestige_gain } if = { limit = { exists = scope:other_ruler } scope:other_ruler = { add_opinion = { target = root modifier = respect_opinion opinion = 15 } } } stress_impact = { gregarious = medium_stress_impact_loss callous = medium_stress_impact_gain zealous = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = gregarious factor = 2 } modifier = { OR = { has_trait = callous has_trait = zealous } factor = 0 } } } after = { scope:monk = { silent_disappearance_ai_if_created_effect = yes } } } # Ask a Movement Leader to abandon their Movement scripted_trigger tgp_movement_events_0160_valid_rival = { this != root is_available_healthy_ai_adult = yes government_has_flag = government_is_celestial is_any_movement_leader = yes NOR = { top_participant_group:dynastic_cycle ?= root.top_participant_group:dynastic_cycle top_participant_group:dynastic_cycle ?= { participant_group_type = undecided_movement } } NOT = { has_trait = deceitful } } scripted_effect tgp_movement_events_0160_scheme_blocking_effect = { custom_tooltip = tgp_movement_events_0160_scheme_blocking_effect_tt set_variable = { name = no_scheming_allowed_var value = scope:rival years = 15 } scope:rival = { set_variable = { name = no_scheming_allowed_var value = root years = 15 } } } tgp_movement_events.0160 = { type = character_event title = tgp_movement_events.0160.t desc = tgp_movement_events.0160.desc left_portrait = { character = root animation = writing } lower_right_portrait = scope:rival theme = dynastic_cycle override_background = { reference = study } cooldown = { years = 10 } trigger = { NOT = { has_variable = no_scheming_allowed_var } is_available_adult = yes has_tgp_dlc_trigger = yes government_has_flag = government_is_celestial top_participant_group:dynastic_cycle ?= { NOT = { participant_group_type = undecided_movement } } any_ruler = { tgp_movement_events_0160_valid_rival = yes } OR = { # You are important enough is_any_movement_leader = yes influence_level >= 3 merit_level >= 3 } } weight_multiplier = { base = 1 modifier = { any_relation = { type = rival } add = 1 } } immediate = { assign_quirk_effect = yes top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } random_ruler = { limit = { tgp_movement_events_0160_valid_rival = yes } weight = { base = 1 modifier = { has_relation_nemesis = root add = 100 } modifier = { has_relation_rival = root add = 100 } modifier = { any_memory = { has_memory_category = negative any_memory_participant = { this = root } } add = 50 } modifier = { has_trait = greedy add = 5 } } save_scope_as = rival top_participant_group:dynastic_cycle = { save_scope_as = rival_movement } } } option = { # Try to convince them name = tgp_movement_events.0160.a duel = { skill = diplomacy target = scope:rival 50 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 } modifier = { scope:rival = { has_trait = greedy } add = 25 } modifier = { scope:rival = { gold <= medium_gold_value } add = 10 } desc = tgp_movement_events.0100.a.success send_interface_toast = { title = tgp_movement_events.0100.a.success left_icon = scope:rival tgp_movement_events_0160_scheme_blocking_effect = yes } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -3.5 } desc = tgp_movement_events.0100.a.failure send_interface_toast = { title = tgp_movement_events.0100.a.failure left_icon = scope:rival } } } stress_impact = { ambitious = medium_stress_impact_loss deceitful = major_stress_impact_gain honest = major_stress_impact_gain } ai_chance = { base = 100 modifier = { OR = { has_trait = ambitious has_trait = deceitful } factor = 2 } modifier = { has_trait = honest factor = 0 } } } option = { # Pay them money lol name = tgp_movement_events.0160.b pay_short_term_gold = { target = scope:rival gold = medium_gold_value } tgp_movement_events_0160_scheme_blocking_effect = yes stress_impact = { honest = medium_stress_impact_loss deceitful = major_stress_impact_gain greedy = major_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = honest factor = 2 } modifier = { OR = { gold <= major_gold_value has_trait = greedy has_trait = deceitful } factor = 0 } } } option = { # I'm good name = tgp_movement_events.0160.c add_intrigue_lifestyle_xp = minor_lifestyle_xp stress_impact = { ambitious = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { has_trait = ambitious factor = 0 } } } }