# Find debate target set_debate_target_effect = { save_scope_as = debate_contender if = { limit = { scope:activity = { has_activity_option = { category = special_type option = debate_type_favor } } } #Save current empowered movement. situation:dynastic_cycle ?= { random_participant_group = { limit = { exists = var:movement_favored } save_scope_as = current_empowered_movement } } if = { # Grab the movement leader if available limit = { scope:current_empowered_movement = { var:movement_leader = { involved_activity = scope:activity } } } scope:current_empowered_movement = { var:movement_leader = { save_scope_as = challenged_movement_leader } } } else_if = { # Else grab a proxy limit = { scope:activity = { any_attending_character = { top_participant_group:dynastic_cycle ?= scope:current_empowered_movement } } } scope:activity = { ordered_attending_character = { order_by = movement_power_character_value check_range_bounds = no limit = { top_participant_group:dynastic_cycle ?= scope:current_empowered_movement } save_scope_as = challenged_movement_leader } } } else_if = { # Else grab a character from _another_ movement limit = { scope:activity = { any_attending_character = { NOR = { top_participant_group:dynastic_cycle ?= { participant_group_type = undecided_movement } top_participant_group:dynastic_cycle ?= scope:host.top_participant_group:dynastic_cycle } } } } scope:activity = { ordered_attending_character = { order_by = movement_power_character_value check_range_bounds = no limit = { NOR = { top_participant_group:dynastic_cycle ?= { participant_group_type = undecided_movement } top_participant_group:dynastic_cycle ?= scope:host.top_participant_group:dynastic_cycle } } save_scope_as = challenged_movement_leader } } } else = { # Invalidate activity trigger_event = activity_system.0552 } } else_if = { limit = { scope:activity = { has_activity_option = { category = special_type option = debate_type_leadership } } } scope:activity.special_guest:movement_leader ?= { save_scope_as = challenged_movement_leader } } scope:activity = { set_variable = { name = challenged_movement_leader value = scope:challenged_movement_leader } set_variable = { name = debate_contender value = scope:debate_contender } } } # > 0 contender won and will become new leader # <= 0 movement leader won and defended position debate_determine_outcome_effect = { random_list = { 10 = { # Contender is winner modifier = { add = 240 scope:activity.debate_outcome_value = 3 } modifier = { add = 70 scope:activity.debate_outcome_value = 2 } modifier = { add = 10 scope:activity.debate_outcome_value = 1 } modifier = { # If opponents score is TOO high, you cannot win factor = 0 scope:activity.debate_outcome_value <= -3 } scope:activity.var:debate_contender = { save_scope_as = debate_winner } scope:activity.var:challenged_movement_leader = { save_scope_as = debate_loser } if = { limit = { scope:activity.debate_outcome_value < 0 } save_scope_as = debate_unexpected_win } } 10 = { # challenged leader is winner modifier = { add = 240 scope:activity.debate_outcome_value = -3 } modifier = { add = 70 scope:activity.debate_outcome_value = -2 } modifier = { add = 10 scope:activity.debate_outcome_value = -1 } modifier = { # If opponents score is TOO high, you cannot win factor = 0 scope:activity.debate_outcome_value >= 3 } scope:activity.var:debate_contender = { save_scope_as = debate_loser } scope:activity.var:challenged_movement_leader = { save_scope_as = debate_winner } if = { limit = { scope:activity.debate_outcome_value > 0 } save_scope_as = debate_unexpected_win } } } # Apply effects # Seize movement leadership success if = { limit = { scope:activity = { has_activity_option = { category = special_type option = debate_type_leadership } } } # Set variables for activity conclusion desc - note that for the favor special option, these are set in the hegemon's follow up event. scope:activity = { set_variable = { name = debate_winner value = scope:debate_winner } } scope:activity = { set_variable = { name = debate_loser value = scope:debate_loser } } # Record it involved_activity = { if = { limit = { scope:debate_winner = { is_any_movement_leader = no } } add_activity_log_entry = { key = debate_become_movement_leader_reward score = 80 tags = { completed } character = scope:debate_winner location = scope:debate_winner.location } } else = { add_activity_log_entry = { key = debate_remain_movement_leader_reward score = 80 tags = { completed } character = scope:debate_winner location = scope:debate_winner.location } } } } } debate_disburse_activity_ai_guest_rewards = { if = { limit = { NOT = { exists = var:tgp_debate_success_score } } set_variable = { name = tgp_debate_success_score value = tgp_debate_success_score_value } } if = { limit = { has_activity_intent = debate_increase_movement_power_intent } top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } random = { chance = { value = 25 if = { limit = { var:tgp_debate_success_score >= 100 } add = 75 } else_if = { limit = { var:tgp_debate_success_score >= 75 } add = 50 } else_if = { limit = { var:tgp_debate_success_score >= 50 } add = 25 } } if = { limit = { var:tgp_debate_success_score >= 100 } change_influence = major_influence_gain scope:my_movement = { event_change_movement_power_effect = { VALUE = event_increase_movement_power_major_value } } } else_if = { limit = { var:tgp_debate_success_score >= 75 } change_influence = medium_influence_gain scope:my_movement = { event_change_movement_power_effect = { VALUE = event_increase_movement_power_medium_value } } } else = { change_influence = minor_influence_gain scope:my_movement = { event_change_movement_power_effect = { VALUE = event_increase_movement_power_minor_value } } } } } else = { save_scope_as = ai_guest if = { limit = { NOT = { any_relation = { type = elder is_ai = no } } } random = { chance = { value = 25 } scope:activity = { random_attending_character = { limit = { is_ai = yes merit > scope:ai_guest.merit num_of_relation_disciple < disciples_limit_value NOR = { has_relation_elder = scope:ai_guest has_relation_disciple = scope:ai_guest } # Not busy with their own things. this != scope:host this != scope:activity.var:challenged_movement_leader } weight = { base = 100 modifier = { any_relation = { type = disciple count > 0 } # even out the distribution of disciples add = { every_relation = { type = disciple add = -5 } } } } save_scope_as = elder set_elder_relation_effect = { ELDER = scope:elder DISCIPLE = scope:ai_guest MERIT = minor_merit_gain } } } } } } } debate_host_rewards_effect = { if = { # Host won debate limit = { this = scope:activity.var:debate_winner } # Activity is imperial debate (determines favored movement) if = { limit = { scope:activity = { has_activity_option = { category = special_type option = debate_type_favor } } } root.top_participant_group:dynastic_cycle ?= { # Make favored movement save_scope_as = my_movement } # We raise our own Movement Power custom_tooltip = event_increase_movement_power_major_effect_tooltip scope:my_movement = { make_movement_favored_effect = yes event_change_movement_power_effect = { VALUE = event_increase_movement_power_major_value } switch = { trigger = participant_group_type pro_hegemon_movement = { if = { limit = { situation:dynastic_cycle = { situation_top_has_catalyst = catalyst_movement_gained_power_pro_hegemon } } trigger_situation_catalyst = catalyst_movement_gained_power_pro_hegemon } } advancement_movement = { if = { limit = { situation:dynastic_cycle = { situation_top_has_catalyst = catalyst_movement_gained_power_advancement } } trigger_situation_catalyst = catalyst_movement_gained_power_advancement } } expansion_movement = { if = { limit = { situation:dynastic_cycle = { situation_top_has_catalyst = catalyst_movement_gained_power_expansion } } trigger_situation_catalyst = catalyst_movement_gained_power_expansion } } conservative_movement = { if = { limit = { situation:dynastic_cycle = { situation_top_has_catalyst = catalyst_movement_gained_power_conservative } } trigger_situation_catalyst = catalyst_movement_gained_power_conservative } } } } } else = { make_movement_leader_effect = yes } } # Then dole out secondary rewards if = { # We have the intent to gain disciples and gained at least one. limit = { has_variable_list = debate_disciples } if = { # Code math starts at 0 limit = { variable_list_size = { name = debate_disciples value = 1 } num_of_relation_disciple >= 1 } ordered_in_list = { variable = debate_disciples order_by = learning save_scope_as = disciple_1 } } if = { limit = { variable_list_size = { name = debate_disciples value = 2 } num_of_relation_disciple >= 2 } ordered_in_list = { variable = debate_disciples order_by = learning position = 1 save_scope_as = disciple_2 } } if = { limit = { variable_list_size = { name = debate_disciples value = 3 } num_of_relation_disciple >= 3 } ordered_in_list = { variable = debate_disciples order_by = learning position = 2 save_scope_as = disciple_3 } } if = { limit = { exists = scope:disciple_3 } custom_tooltip = gained_many_disciples } else_if = { limit = { exists = scope:disciple_2 } custom_tooltip = gained_few_disciples } else_if = { limit = { exists = scope:disciple_1 } custom_tooltip = gained_one_disciple } } change_influence = { # Modest reward as a base - you're the host after all! value = major_influence_value if = { limit = { scope:activity = { has_activity_option = { category = special_type option = debate_type_favor } } this = scope:activity.var:debate_winner } add = monumental_influence_value } if = { limit = { scope:activity = { has_activity_option = { category = special_type option = debate_type_leadership } } this = scope:activity.var:debate_winner } add = major_influence_value } } add_prestige = { # Modest reward as a base - you're the host after all! value = major_prestige_value if = { limit = { scope:activity = { has_activity_option = { category = special_type option = debate_type_favor } } this = scope:activity.var:debate_winner } add = monumental_prestige_value } if = { limit = { scope:activity = { has_activity_option = { category = special_type option = debate_type_leadership } } this = scope:activity.var:debate_winner } add = major_prestige_value } } } debate_disburse_activity_host_rewards = { # Regardless of outcome for intents, you should receive some influence and prestige from having hosted debate. if = { limit = { this = scope:host } # Record it involved_activity = { add_activity_log_entry = { key = debate_host_rewards score = 80 tags = { completed } show_in_conclusion = yes character = scope:host location = scope:host.location scope:host = { debate_host_rewards_effect = yes } } } } else = { show_as_tooltip = { debate_host_rewards_effect = yes } } } debate_guest_rewards = { if = { limit = { this = scope:activity.var:challenged_movement_leader this = scope:activity.var:debate_winner } add_prestige = major_prestige_value change_influence = major_influence_value } if = { limit = { has_activity_intent = debate_gain_elder_intent } if = { limit = { has_variable = new_elder } custom_tooltip = gained_new_elder_tt } change_influence = debate_guest_influence_reward_value } if = { limit = { has_activity_intent = debate_increase_movement_power_intent exists = var:tgp_debate_success_score } top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement } random = { chance = { value = 25 if = { limit = { var:tgp_debate_success_score >= 100 } add = 75 } else_if = { limit = { var:tgp_debate_success_score >= 75 } add = 50 } else_if = { limit = { var:tgp_debate_success_score >= 50 } add = 25 } } if = { limit = { var:tgp_debate_success_score >= 100 } change_influence = major_influence_gain scope:my_movement = { event_change_movement_power_effect = { VALUE = event_increase_movement_power_major_value } } } else_if = { limit = { var:tgp_debate_success_score >= 75 } change_influence = medium_influence_gain scope:my_movement = { event_change_movement_power_effect = { VALUE = event_increase_movement_power_medium_value } } } else = { change_influence = minor_influence_gain scope:my_movement = { event_change_movement_power_effect = { VALUE = event_increase_movement_power_minor_value } } } } change_influence = debate_guest_influence_reward_value } add_trait_xp = { trait = confucian_education value = { value = lifestyle_confucian_education_xp_gain_minor_value #High Score if = { limit = { has_variable = tgp_debate_success_score var:tgp_debate_success_score >= 75 } multiply = 3 } #Good Score else_if = { limit = { has_variable = tgp_debate_success_score var:tgp_debate_success_score < 75 var:tgp_debate_success_score >= 50 } multiply = 1.5 } #Poor Score else_if = { limit = { has_variable = tgp_debate_success_score var:tgp_debate_success_score < 50 } multiply = 0.8 } } } } debate_disburse_activity_guest_rewards = { save_scope_as = guest involved_activity = { add_activity_log_entry = { key = debate_guest_rewards score = 80 tags = { completed } show_in_conclusion = yes character = scope:guest location = scope:guest.location scope:guest = { debate_guest_rewards = yes } } } } debate_cleanup_effect = { if = { limit = { has_variable = tgp_debate_success_score } set_variable = { name = tgp_debate_success_score value = var:tgp_debate_success_score days = 60 } } # Debates remove_variable ?= debate_selected_tactic remove_variable ?= debate_crowd_sentiment }