namespace = ep3_laamps #### # ep3_laamps.0001-0003 - Become Adventurer - Conquest # ep3_laamps.0010-0012 - Become Adventurer - Succession # ep3_laamps.0020-0021 - Become Adventurer - Exile # ep3_laamps.0030-0032 - Become Adventurer - Voluntary # ep3_laamps.0040-0042 - Become Adventurer - Revocation # ep3_laamps.0050-0051 - Become Adventurer - Runaway # ep3_laamps.0100-0102 - Become Landed - Purchase # ep3_laamps.0200-0201 - Become Landed - Sponsored Invasion # ep3_laamps.0300-0302 - Become Landed - Negotiated # ep3_laamps.0400-0412 - Become Landed - Seize Realm ## # 5000-5998 - Generalist LAAMP events ### # //\ /\\ # || * \ . . / * || # \\____\X/____// # / * /O\ * \ # \__/ " \__/ # BRÖTHER # I CRAVE THE LAAMP scripted_effect adventurer_prestige_reset_effect = { hidden_effect = { #Save Prestige save_scope_value_as = { name = prestige_amount value = { value = prestige add = -100 } } #Invert it, then take it away add_prestige = { value = scope:prestige_amount multiply = -1 } #Take away 3 prestige levels add_prestige_level = -3 } # Tooltips custom_tooltip = lose_all_prestige_tt custom_tooltip = lose_all_prestige_level_tt } ################################################## # Become Adventurer - Conquest # by Joe Parkin # 0001-0002 ################################################## # Big comeback scripted_trigger ep3_laamp_conquest_title_trigger = { OR = { recent_history = { type = conquest days = 1 } recent_history = { type = conquest_holy_war days = 1 } recent_history = { type = conquest_claim days = 1 } recent_history = { type = conquest_populist days = 1 } } previous_holder ?= scope:adventurer } # Conquest loser event ep3_laamps.0001 = { type = character_event window = fullscreen_event title = { desc = { first_valid = { triggered_desc = { trigger = { is_female = yes } desc = ep3_laamps.0001.t.female } desc = ep3_laamps.0001.t.male } } } desc = { desc = ep3_laamps.0001.intro first_valid = { triggered_desc = { trigger = { exists = scope:war_memory } desc = ep3_laamps.0001.memory } desc = ep3_laamps.0001.fallback } desc = ep3_laamps.0001.desc } theme = realm left_portrait = { character = root animation = stress } lower_left_portrait = scope:alt_1 lower_center_portrait = scope:alt_2 lower_right_portrait = scope:alt_3 override_background = { reference = ep3_fullscreen_adventurer_negative } cooldown = { days = 5 } trigger = { is_ai = no NOT = { has_character_flag = become_laamp_event_cooldown } } immediate = { add_character_flag = { flag = become_laamp_event_cooldown days = 5 } # Save highest lost title for loc ordered_in_list = { list = target_titles limit = { ep3_laamp_conquest_title_trigger = yes } order_by = tier position = 0 save_scope_as = lost_primary_title } if = { limit = { NOT = { exists = scope:lost_primary_title } exists = scope:conquered } scope:conquered = { save_scope_as = lost_primary_title } } # Find alternative rulers to play as find_playable_relatives_effect = yes # Portrait scopes if = { limit = { NOR = { exists = scope:alt_3 scope:alt_1 ?= scope:winner scope:alt_2 ?= scope:winner } } scope:winner = { save_scope_as = alt_3 } } # Make Adventurer create_landless_adventurer_title_effect = { REASON = flag:conquest FLAVOR_CHAR = scope:attacker } adventurer_prestige_reset_effect = yes } option = { name = ep3_laamps.0001.a add_unpressed_claim = scope:lost_primary_title add_internal_flag = special if = { limit = { NOT = { has_relation_rival = scope:winner } } set_relation_rival = { target = scope:winner reason = rival_conquered_me } } scope:winner = { trigger_event = ep3_laamps.0003 } } option = { name = ep3_laamps.0001.b trigger = { exists = scope:alt_1 } laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_1 } } option = { name = ep3_laamps.0001.c trigger = { exists = scope:alt_2 } laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_2 } } option = { name = ep3_laamps.0001.d trigger = { scope:alt_3 ?= { playable_relative_trigger = yes } } laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_3 } } option = { name = ep3_laamps.0001.e laamp_game_over_option_effect = yes } } # Setup event ep3_laamps.0002 = { type = character_event hidden = yes trigger = { has_ep3_dlc_trigger = yes is_valid_for_laampdom = yes } on_trigger_fail = { if = { # Ensures depose_effect always deposes, while other event origins do not limit = { exists = scope:allow_imprisoned_landless } depose = yes } } immediate = { save_scope_as = adventurer # AI chance if = { limit = { is_ai = yes ai_can_valid_to_create_laamp_trigger = yes } if = { limit = { is_landed = yes } depose = yes } save_scope_value_as = { name = ai_laamp_chance value = ep3_laamp_chance_score_value } random = { chance = scope:ai_laamp_chance # Plus for our memory variable. ordered_in_list = { list = target_titles order_by = tier position = 0 save_scope_as = lost_primary_title } if = { limit = { exists = var:deposed_primary_title } create_landless_adventurer_title_effect = { REASON = flag:deposition FLAVOR_CHAR = scope:attacker } } else = { create_landless_adventurer_title_effect = { REASON = flag:conquest FLAVOR_CHAR = scope:attacker } } scope:winner = { trigger_event = ep3_laamps.0003 } } } # Player event else = { if = { limit = { scope:new_holder ?= { any_held_title = { ep3_laamp_conquest_title_trigger = yes } } } trigger_event = { id = ep3_laamps.0001 } } else_if = { # Land already taken (e.g. by a war) limit = { is_landed = no } trigger_event = { id = ep3_laamps.0004 } } else = { # Still have land (e.g. in an event) trigger_event = { id = ep3_laamps.0005 } } } } } # Winner event ep3_laamps.0003 = { type = letter_event opening = ep3_laamps.0003.opening desc = ep3_laamps.0003.desc sender = scope:adventurer trigger = { is_ai = no } immediate = { if = { limit = { NOT = { has_relation_rival = scope:adventurer } } scope:adventurer = { set_relation_rival = { target = root reason = rival_conquered_me } } } scope:adventurer = { create_landless_adventurer_title_tooltip_effect = yes } } option = { name = ep3_laamps.0003.a } } # Deposition loser event ep3_laamps.0004 = { type = character_event window = fullscreen_event title = { desc = { first_valid = { triggered_desc = { trigger = { is_female = yes } desc = ep3_laamps.0001.t.female } desc = ep3_laamps.0001.t.male } } } desc = ep3_laamps.0004.desc theme = realm left_portrait = { character = root animation = stress } lower_left_portrait = scope:alt_1 lower_center_portrait = scope:alt_2 lower_right_portrait = scope:alt_3 override_background = { reference = ep3_fullscreen_adventurer_negative } trigger = { is_ai = no exists = var:deposed_primary_title NOT = { has_character_flag = become_laamp_event_cooldown } } immediate = { add_character_flag = { flag = become_laamp_event_cooldown days = 5 } var:deposed_primary_title ?= { # Save highest lost title for loc save_scope_as = conquered # And for memory variables. save_scope_as = lost_primary_title save_scope_as = heir } # Create Adventurer hidden_effect = { create_landless_adventurer_title_effect = { REASON = flag:deposition FLAVOR_CHAR = scope:attacker } } # Find alternative rulers to play as find_playable_relatives_effect = yes # Portrait scopes if = { limit = { NOT = { exists = scope:alt_3 } } if = { limit = { exists = scope:conquered.holder } scope:conquered.holder = { save_scope_as = alt_3 } } else_if = { limit = { NOR = { scope:alt_1 ?= scope:winner scope:alt_2 ?= scope:winner } } scope:winner ?= { save_scope_as = alt_3 } } } } option = { name = ep3_laamps.0001.a create_landless_adventurer_title_tooltip_effect = yes add_internal_flag = special scope:winner = { trigger_event = ep3_laamps.0003 } } option = { name = ep3_laamps.0001.b trigger = { exists = scope:alt_1 } laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_1 } } option = { name = ep3_laamps.0001.c trigger = { exists = scope:alt_2 } laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_2 } } option = { name = ep3_laamps.0001.d trigger = { scope:alt_3 ?= { playable_relative_trigger = yes } } laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_3 } } option = { name = ep3_laamps.0001.e laamp_game_over_option_effect = yes hidden_effect = { move_to_pool = yes } } } # Depose loser event ep3_laamps.0005 = { type = character_event window = fullscreen_event title = { desc = { first_valid = { triggered_desc = { trigger = { is_female = yes } desc = ep3_laamps.0001.t.female } desc = ep3_laamps.0001.t.male } } } desc = ep3_laamps.0004.desc theme = realm left_portrait = { character = root animation = stress } lower_left_portrait = scope:alt_1 lower_center_portrait = scope:alt_2 lower_right_portrait = scope:alt_3 override_background = { reference = ep3_fullscreen_adventurer_negative } trigger = { is_ai = no exists = var:deposed_primary_title NOT = { has_character_flag = become_laamp_event_cooldown } } immediate = { add_character_flag = { flag = become_laamp_event_cooldown days = 5 } var:deposed_primary_title ?= { # Save highest lost title for loc save_scope_as = conquered # And for memory variables. save_scope_as = lost_primary_title } # Find alternative rulers to play as find_playable_relatives_effect = yes # Portrait scopes if = { limit = { NOT = { exists = scope:alt_3 } } if = { limit = { exists = scope:conquered.holder } scope:conquered.holder = { save_scope_as = alt_3 } } else_if = { limit = { NOR = { scope:alt_1 ?= scope:winner scope:alt_2 ?= scope:winner } } scope:winner ?= { save_scope_as = alt_3 } } } scope:conquered.current_heir = { save_scope_as = heir } } option = { name = ep3_laamps.0001.a show_as_tooltip = { depose = yes } # depose not actually used as it is immediate gameover hidden_effect = { create_title_and_vassal_change = { type = conquest save_scope_as = change add_claim_on_loss = yes } every_held_title = { title_tier >= county change_title_holder_include_vassals = { holder = scope:heir change = scope:change } } resolve_title_and_vassal_change = scope:change # Create Adventurer create_landless_adventurer_title_effect = { REASON = flag:deposition FLAVOR_CHAR = scope:attacker } } create_landless_adventurer_title_tooltip_effect = yes add_internal_flag = special scope:winner = { trigger_event = ep3_laamps.0003 } } option = { name = ep3_laamps.0001.b trigger = { exists = scope:alt_1 } show_as_tooltip = { depose = yes } laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_1 } hidden_effect = { depose = yes move_to_pool = yes } } option = { name = ep3_laamps.0001.c trigger = { exists = scope:alt_2 } show_as_tooltip = { depose = yes } laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_2 } hidden_effect = { depose = yes move_to_pool = yes } } option = { name = ep3_laamps.0001.d trigger = { scope:alt_3 ?= { playable_relative_trigger = yes } } show_as_tooltip = { depose = yes } laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_3 } hidden_effect = { depose = yes move_to_pool = yes } } option = { name = ep3_laamps.0001.e show_as_tooltip = { depose = yes } laamp_game_over_option_effect = yes hidden_effect = { depose = yes move_to_pool = yes } } } ################################################## # Become Adventurer - Succession # by Joe Parkin # 0010-0012 ################################################## # My sibling is more interesting than me scripted_trigger ep3_laamp_inheritor_title_trigger = { recent_history = { type = inheritance days = 5 } previous_holder = scope:deceased } # Player event ep3_laamps.0010 = { type = character_event window = fullscreen_event title = ep3_laamps.0010.t desc = { first_valid = { triggered_desc = { trigger = { any_sibling = { count >= 2 } } desc = ep3_laamps.0010.multi } desc = ep3_laamps.0010.single } desc = ep3_laamps.0010.desc triggered_desc = { trigger = { exists = scope:inheritor_1 } desc = ep3_laamps.0010.inheritor_1 } triggered_desc = { trigger = { exists = scope:inheritor_2 } desc = ep3_laamps.0010.inheritor_2 } triggered_desc = { trigger = { exists = scope:inheritor_3 } desc = ep3_laamps.0010.inheritor_3 } desc = ep3_laamps.0010.laamp } theme = realm left_portrait = { character = root animation = personality_cynical } right_portrait = { character = scope:potential_laamp animation = marshal outfit_tags = { military_outfit } } lower_right_portrait = scope:deceased override_background = { reference = ep3_fullscreen_adventurer_positive } cooldown = { years = 25 } trigger = { is_ai = no NOT = { has_character_flag = become_laamp_event_cooldown } } immediate = { add_character_flag = { flag = become_laamp_event_cooldown days = 5 } # Save highest inherited title ordered_held_title = { limit = { ep3_laamp_inheritor_title_trigger = yes } order_by = tier position = 0 save_scope_as = inherited } # Save inheritors for loc every_sibling = { limit = { any_held_title = { ep3_laamp_inheritor_title_trigger = yes } } add_to_list = inheritors } ordered_in_list = { list = inheritors order_by = age max = 3 check_range_bounds = no if = { limit = { exists = scope:inheritor_2 } save_scope_as = inheritor_3 } else_if = { limit = { exists = scope:inheritor_1 } save_scope_as = inheritor_2 } else = { save_scope_as = inheritor_1 } ordered_held_title = { limit = { ep3_laamp_inheritor_title_trigger = yes } order_by = tier position = 0 if = { limit = { exists = scope:inherited_2 } save_scope_as = inherited_3 } else_if = { limit = { exists = scope:inherited_1 } save_scope_as = inherited_2 } else = { save_scope_as = inherited_1 } } } scope:potential_laamp = { create_landless_adventurer_title_effect = { REASON = flag:succession FLAVOR_CHAR = root } adventurer_prestige_reset_effect = yes } } option = { name = ep3_laamps.0010.a } option = { name = ep3_laamps.0010.b add_internal_flag = special set_player_character = scope:potential_laamp } } # Setup event - heir ep3_laamps.0011 = { type = character_event hidden = yes trigger = { save_temporary_scope_as = heir_temp any_sibling = { ep3_laamp_interesting_sibling_trigger = { COMPARISON = scope:heir_temp } } } immediate = { save_scope_as = heir # Save potential laamp ordered_sibling = { limit = { ep3_laamp_interesting_sibling_trigger = { COMPARISON = scope:heir } } order_by = ep3_laamp_chance_score_value save_scope_as = potential_laamp } random = { chance = 0 modifier = { # Bonus for players is_ai = no add = 25 } modifier = { add = scope:potential_laamp.ep3_laamp_chance_score_value } if = { limit = { is_ai = yes ai_can_valid_to_create_laamp_trigger = yes } scope:potential_laamp = { create_landless_adventurer_title_effect = { REASON = flag:succession FLAVOR_CHAR = scope:heir } } if = { # Debug tracking limit = { exists = global_var:ai_succession_laamp_count } change_global_variable = { name = ai_succession_laamp_count add = 1 } } else = { set_global_variable = { name = ai_succession_laamp_count value = 1 } } debug_log = "AI became adventurer by succession" debug_log_scopes = yes } else = { trigger_event = ep3_laamps.0010 } } } } # Setup event - deceased ep3_laamps.0012 = { hidden = yes type = character_event trigger = { has_ep3_dlc_trigger = yes is_landed = yes player_heir ?= { save_temporary_scope_as = heir_temp any_sibling = { ep3_laamp_interesting_sibling_trigger = { COMPARISON = scope:heir_temp } } } } immediate = { save_scope_as = deceased player_heir = { trigger_event = { id = ep3_laamps.0011 days = 5 } } } } ################################################## # Become Adventurer - Banish # by Joe Parkin # 0020-0021 ################################################## # I have been banished # Banished event ep3_laamps.0020 = { type = character_event window = fullscreen_event title = ep3_laamps.0020.t desc = ep3_laamps.0020.desc theme = realm left_portrait = { character = root animation = marshal } lower_left_portrait = scope:alt_1 lower_center_portrait = scope:alt_2 lower_right_portrait = scope:alt_3 override_background = { reference = ep3_fullscreen_adventurer_negative } cooldown = { days = 5 } trigger = { NOT = { has_character_flag = become_laamp_event_cooldown } } immediate = { add_character_flag = { flag = become_laamp_event_cooldown days = 5 } save_scope_as = adventurer liege = { save_scope_as = liege } # Save highest lost title for loc ordered_held_title = { order_by = tier position = 0 save_scope_as = revoked # Plus for our memory variable. save_scope_as = lost_primary_title } find_playable_relatives_effect = yes # Portrait scopes if = { limit = { NOR = { exists = scope:alt_3 scope:alt_1 ?= scope:banisher scope:alt_2 ?= scope:banisher } } scope:banisher = { save_scope_as = alt_3 } } adventurer_prestige_reset_effect = yes } option = { name = ep3_laamps.0020.a show_as_tooltip = { banish = yes } hidden_effect = { create_title_and_vassal_change = { type = revoked save_scope_as = change add_claim_on_loss = no } every_held_title = { title_tier >= county change_title_holder_include_vassals = { holder = scope:liege change = scope:change } } resolve_title_and_vassal_change = scope:change # Create Adventurer create_landless_adventurer_title_effect = { REASON = flag:exile FLAVOR_CHAR = scope:banisher } } create_landless_adventurer_title_tooltip_effect = yes add_internal_flag = special add_unpressed_claim = scope:lost_primary_title scope:banisher = { trigger_event = { id = ep3_laamps.0022 days = 5 } } scope:liege = { if = { limit = { this != scope:banisher } trigger_event = { id = ep3_laamps.0022 days = 5 } } } } option = { name = ep3_laamps.0001.b trigger = { exists = scope:alt_1 } show_as_tooltip = { banish = yes } laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_1 } hidden_effect = { if = { limit = { government_allows = administrative } force_step_down_landed_titles = yes } banish = yes } } option = { name = ep3_laamps.0001.c trigger = { exists = scope:alt_2 } show_as_tooltip = { banish = yes } laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_2 } hidden_effect = { if = { limit = { government_allows = administrative } force_step_down_landed_titles = yes } banish = yes } } option = { name = ep3_laamps.0001.d trigger = { scope:alt_3 ?= { playable_relative_trigger = yes } } show_as_tooltip = { banish = yes } laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_3 } hidden_effect = { if = { limit = { government_allows = administrative } force_step_down_landed_titles = yes } banish = yes } } option = { name = ep3_laamps.0001.e show_as_tooltip = { banish = yes } laamp_game_over_option_effect = yes hidden_effect = { if = { limit = { government_allows = administrative } force_step_down_landed_titles = yes } banish = yes } } } # Setup event ep3_laamps.0021 = { type = character_event hidden = yes trigger = { has_ep3_dlc_trigger = yes is_valid_for_laampdom = yes } on_trigger_fail = { if = { limit = { government_allows = administrative } force_step_down_landed_titles = yes } banish = yes } immediate = { save_scope_as = adventurer liege = { save_scope_as = liege } # Save highest lost title for loc ordered_held_title = { order_by = tier position = 0 save_scope_as = revoked # Plus for our memory variable. save_scope_as = lost_primary_title } add_character_flag = { flag = block_for_prison_release_notification days = 1 } # AI chance if = { limit = { is_ai = yes ai_can_valid_to_create_laamp_trigger = yes } random = { chance = 0 modifier = { add = ep3_laamp_chance_score_value } # Plus for our memory variable. add_character_flag = { flag = block_for_prison_release_message days = 1 } create_title_and_vassal_change = { type = revoked save_scope_as = change add_claim_on_loss = no } every_held_title = { title_tier >= county change_title_holder_include_vassals = { holder = scope:liege change = scope:change } } resolve_title_and_vassal_change = scope:change create_landless_adventurer_title_effect = { REASON = flag:exile FLAVOR_CHAR = scope:actor } adventurer_prestige_reset_effect = yes add_unpressed_claim = scope:lost_primary_title scope:banisher = { trigger_event = { id = ep3_laamps.0022 days = 5 } } scope:liege = { if = { limit = { this != scope:banisher } trigger_event = { id = ep3_laamps.0022 days = 5 } } } } if = { limit = { NOT = { government_has_flag = government_is_landless_adventurer } } if = { limit = { government_allows = administrative } force_step_down_landed_titles = yes } banish = yes } } # Player event else = { trigger_event = { id = ep3_laamps.0020 } } } } # Banisher event ep3_laamps.0022 = { type = letter_event opening = ep3_laamps.0003.opening desc = ep3_laamps.0022.desc sender = scope:adventurer trigger = { is_ai = no } immediate = { scope:adventurer = { create_landless_adventurer_title_tooltip_effect = yes } } option = { name = ep3_laamps.0022.a } } ################################################## # Become Adventurer - Voluntary # by Joe Parkin # 0030-0031 ################################################## # Adventure awaits ep3_laamps.0030 = { type = character_event window = fullscreen_event title = ep3_laamps.0030.t desc = { desc = ep3_laamps.0030.desc first_valid = { triggered_desc = { trigger = { exists = scope:laamp_heir } desc = ep3_laamps.0030.heir } triggered_desc = { trigger = { exists = scope:laamp_liege } desc = ep3_laamps.0030.liege } desc = ep3_laamps.0030.new } } theme = realm left_portrait = { character = root animation = marshal } lower_right_portrait = scope:laamp_inheritor override_background = { reference = ep3_fullscreen_adventurer_positive } cooldown = { days = 5 } trigger = { exists = scope:laamp_inheritor } immediate = { # Save scopes for loc primary_title = { save_scope_as = old_primary_title } capital_province = { save_scope_as = old_capital_province } if = { limit = { top_liege != this } liege = { save_scope_as = old_liege } } # Transfer landed titles every_held_title = { title_tier > barony limit = { OR = { is_landless_type_title = no is_nomad_title = yes } } add_to_list = target_titles } create_title_and_vassal_change = { type = conquest save_scope_as = change add_claim_on_loss = no } hidden_effect = { every_in_list = { list = target_titles change_title_holder_include_vassals = { holder = scope:laamp_inheritor change = scope:change } } resolve_title_and_vassal_change = scope:change } # Create Adventurer create_landless_adventurer_title_effect = { REASON = flag:voluntary FLAVOR_CHAR = scope:laamp_inheritor } scope:laamp_inheritor = { # Tooltip for player custom_tooltip = become_landless_adventurer_decision_title_scope_tt # Create a loving family so inheritance isn't so borked if = { limit = { has_character_flag = new_laamp_inheritor } trigger_event = game_rule.1001 remove_character_flag = new_laamp_inheritor } } scope:old_liege ?= { trigger_event = ep3_laamps.0032 } adventurer_prestige_reset_effect = yes hidden_effect = { every_held_title = { limit = { is_noble_family_title = yes } root = { destroy_title = prev } } } } option = { name = ep3_laamps.0030.a create_landless_adventurer_title_tooltip_effect = yes add_prestige = medium_prestige_gain add_character_modifier = { modifier = ep3_voluntary_laamp_character_modifier years = 5 } } } # Liege event ep3_laamps.0032 = { type = letter_event opening = ep3_laamps.0032.opening desc = ep3_laamps.0032.desc sender = scope:adventurer trigger = { is_ai = no } immediate = { scope:adventurer = { create_landless_adventurer_title_tooltip_effect = yes } } option = { name = ep3_laamps.0032.a } } ep3_laamps.1030 = { type = character_event window = fullscreen_event title = ep3_laamps.1030.t desc = { desc = ep3_laamps.1030.desc first_valid = { triggered_desc = { trigger = { exists = scope:laamp_heir } desc = ep3_laamps.1030.heir } triggered_desc = { trigger = { exists = scope:laamp_liege } desc = ep3_laamps.1030.liege } desc = ep3_laamps.1030.new } } theme = realm left_portrait = { character = root animation = marshal } lower_right_portrait = scope:laamp_inheritor override_background = { reference = ep3_fullscreen_adventurer_positive } cooldown = { days = 5 } trigger = { exists = scope:laamp_inheritor } immediate = { # Save scopes for loc primary_title = { save_scope_as = old_primary_title } capital_province = { save_scope_as = old_capital_province } if = { limit = { top_liege != this } liege = { save_scope_as = old_liege } } # Transfer landed titles every_held_title = { title_tier > barony limit = { OR = { is_landless_type_title = no is_nomad_title = yes } } add_to_list = target_titles } create_title_and_vassal_change = { type = conquest save_scope_as = change add_claim_on_loss = no } hidden_effect = { every_in_list = { list = target_titles change_title_holder_include_vassals = { holder = scope:laamp_inheritor change = scope:change } } resolve_title_and_vassal_change = scope:change } # Create Adventurer create_landless_minority_title_effect = { REASON = flag:voluntary FLAVOR_CHAR = scope:laamp_inheritor } scope:laamp_inheritor = { # Tooltip for player custom_tooltip = become_landless_adventurer_decision_title_scope_tt # Create a loving family so inheritance isn't so borked if = { limit = { has_character_flag = new_laamp_inheritor } trigger_event = game_rule.1001 remove_character_flag = new_laamp_inheritor } } scope:old_liege ?= { trigger_event = ep3_laamps.1032 } adventurer_prestige_reset_effect = yes hidden_effect = { every_held_title = { limit = { is_noble_family_title = yes } root = { destroy_title = prev } } } } option = { name = ep3_laamps.1030.a create_landless_minority_title_tooltip_effect = yes add_prestige = medium_prestige_gain add_character_modifier = { modifier = ep3_voluntary_laamp_character_modifier years = 5 } } } # Liege event ep3_laamps.1032 = { type = letter_event opening = ep3_laamps.1032.opening desc = ep3_laamps.1032.desc sender = scope:minority_leader trigger = { is_ai = no } immediate = { scope:minority_leader = { create_landless_minority_title_tooltip_effect = yes } } option = { name = ep3_laamps.1032.a } } ################################################## # Become Adventurer - Revocation # by Joe Parkin # 0040-0041 ################################################## # Come back scripted_trigger ep3_laamp_revoked_title_trigger = { recent_history = { type = revoked days = 1 } previous_holder = root } ep3_laamps.0040 = { type = character_event window = fullscreen_event title = ep3_laamps.0040.t desc = { first_valid = { triggered_desc = { trigger = { scope:actor = { is_close_family_of = root } } desc = ep3_laamps.0040.family } desc = ep3_laamps.0040.other } desc = ep3_laamps.0040.desc } theme = realm left_portrait = { character = root animation = marshal } lower_left_portrait = scope:alt_1 lower_center_portrait = scope:alt_2 lower_right_portrait = scope:alt_3 override_background = { reference = ep3_fullscreen_adventurer_negative } cooldown = { days = 5 } # The AI was managing to get this event somehow. trigger = { is_ai = no NOT = { has_character_flag = become_laamp_event_cooldown } } immediate = { add_character_flag = { flag = become_laamp_event_cooldown days = 5 } # Find alternative rulers to play as find_playable_relatives_effect = yes # Portrait scopes if = { limit = { NOR = { exists = scope:alt_3 scope:alt_1 ?= scope:actor scope:alt_2 ?= scope:actor } } scope:actor = { save_scope_as = alt_3 } } # Create Adventurer hidden_effect = { create_landless_adventurer_title_effect = { REASON = flag:revocation FLAVOR_CHAR = scope:actor } } adventurer_prestige_reset_effect = yes } option = { name = ep3_laamps.0040.a create_landless_adventurer_title_tooltip_effect = yes add_internal_flag = special scope:actor = { trigger_event = ep3_laamps.0042 } } option = { name = ep3_laamps.0001.b trigger = { exists = scope:alt_1 } laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_1 } } option = { name = ep3_laamps.0001.c trigger = { exists = scope:alt_2 } laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_2 } } option = { name = ep3_laamps.0001.d trigger = { exists = scope:alt_3 scope:alt_3 = { playable_relative_trigger = yes } } laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_3 } } option = { name = ep3_laamps.0001.e laamp_game_over_option_effect = yes } } # Setup event ep3_laamps.0041 = { type = character_event hidden = yes trigger = { has_ep3_dlc_trigger = yes is_landed = no is_valid_for_laampdom = yes } immediate = { save_scope_as = adventurer # AI chance if = { limit = { is_ai = yes ai_can_valid_to_create_laamp_trigger = yes trigger_if = { # Don't fill the adventurer pool with revoked counts limit = { scope:lost_primary_title.tier <= tier_county } global_variable_list_size = { name = laamps_tally value < seventyfive_percent_of_max_desired_laamps_value } } } random = { chance = 0 modifier = { add = ep3_laamp_chance_score_value } create_landless_adventurer_title_effect = { REASON = flag:revocation FLAVOR_CHAR = scope:actor } scope:actor = { trigger_event = ep3_laamps.0042 } } } # Player event else = { trigger_event = { id = ep3_laamps.0040 } } } } # Revoker event ep3_laamps.0042 = { type = letter_event opening = ep3_laamps.0003.opening desc = ep3_laamps.0042.desc sender = scope:adventurer trigger = { is_ai = no } immediate = { create_landless_adventurer_title_tooltip_effect = yes } option = { name = ep3_laamps.0042.a } } ################################################## # Become Adventurer - Runaway # by Joe Parkin # 0050-0051 ################################################## # Close family scripted_trigger ep3_laamp_runaway_child_trigger = { is_ai = yes liege ?= { this = root is_landed = yes highest_held_title_tier >= tier_duchy } NOT = { root.primary_heir ?= this } is_valid_for_laampdom = yes age <= 25 NOT = { has_character_flag = failed_laamp_runaway } save_temporary_scope_as = runaway_temp # Less important kids as rank increases liege ?= { primary_title = { trigger_if = { limit = { tier = tier_empire } place_in_line_of_succession = { target = scope:runaway_temp value < 6 } } trigger_else_if = { limit = { tier = tier_kingdom } place_in_line_of_succession = { target = scope:runaway_temp value < 4 } } trigger_else = { place_in_line_of_succession = { target = scope:runaway_temp value < 2 } } } } } ep3_laamps.0050 = { type = character_event title = ep3_laamps.0050.t desc = ep3_laamps.0050.desc theme = family left_portrait = { character = root animation = worry } right_portrait = { character = scope:potential_laamp animation = war_over_win } cooldown = { years = 10 } trigger = { has_ep3_dlc_trigger = yes is_landed_or_landless_administrative = yes any_close_family_member = { ep3_laamp_runaway_child_trigger = yes } OR = { is_ai = no ai_can_valid_to_create_laamp_trigger = yes } NOT = { has_character_flag = become_laamp_event_cooldown } } weight_multiplier = { base = 1 modifier = { is_ai = no add = 1 } modifier = { highest_held_title_tier > tier_county # 2 add = { value = 2 subtract = highest_held_title_tier } } modifier = { any_child = { ep3_laamp_runaway_child_trigger = yes ep3_laamp_interesting_enough_to_be_a_laamp_trigger = { COMPARISON = root } } add = 1 } modifier = { add = 1 exists = var:runaway_laamp_encourager } } immediate = { add_character_flag = { flag = become_laamp_event_cooldown days = 5 } var:runaway_laamp_encourager ?= { save_scope_as = encouraged_laamp } every_close_family_member = { limit = { ep3_laamp_runaway_child_trigger = yes } add_to_list = potential_runaways } ordered_in_list = { list = potential_runaways order_by = ep3_laamp_chance_score_value save_scope_as = potential_laamp save_scope_as = adventurer } } option = { # Encourage name = ep3_laamps.0050.a trigger = { is_ai = no } hidden_effect = { scope:potential_laamp = { create_landless_adventurer_title_effect = { REASON = flag:runaway_allowed FLAVOR_CHAR = root } } } add_internal_flag = special set_player_character = scope:potential_laamp scope:potential_laamp = { create_landless_adventurer_title_tooltip_effect = yes } stress_impact = { arrogant = medium_stress_impact_gain craven = minor_stress_impact_gain } } option = { # Allow name = ep3_laamps.0050.b reverse_add_opinion = { target = scope:potential_laamp modifier = allowed_runaway_laamp_opinion } scope:potential_laamp = { create_landless_adventurer_title_effect = { REASON = flag:runaway_allowed FLAVOR_CHAR = root } adventurer_prestige_reset_effect = yes } set_variable = { name = runaway_laamp_encourager value = scope:potential_laamp } stress_impact = { arrogant = medium_stress_impact_gain craven = minor_stress_impact_gain } ai_chance = { base = 0 ai_value_modifier = { ai_boldness = 0.25 ai_energy = 0.25 } opinion_modifier = { opinion_target = scope:potential_laamp multiplier = -0.25 } modifier = { add = 50 culture = { has_cultural_parameter = more_likely_to_be_laamps } } modifier = { add = 150 culture = { has_cultural_parameter = much_more_likely_to_be_laamps } } } } option = { # Forbid name = ep3_laamps.0050.c reverse_add_opinion = { target = scope:potential_laamp modifier = forbidden_runaway_laamp_opinion } duel = { target = scope:potential_laamp skill = intrigue 10 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -49 } min = 5 add_prestige = minor_prestige_loss scope:potential_laamp = { add_character_flag = failed_laamp_runaway } } 10 = { compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } min = 5 scope:potential_laamp = { create_landless_adventurer_title_tooltip_effect = yes } trigger_event = { id = ep3_laamps.0051 days = 1 } } } stress_impact = { brave = medium_stress_impact_gain } ai_chance = { base = 25 opinion_modifier = { opinion_target = scope:potential_laamp multiplier = 0.25 } } } } ep3_laamps.0051 = { type = character_event title = ep3_laamps.0050.t desc = ep3_laamps.0051.desc theme = family left_portrait = { character = root animation = stress } lower_right_portrait = scope:potential_laamp trigger = { has_ep3_dlc_trigger = yes scope:potential_laamp = { ep3_laamp_runaway_child_trigger = yes } } immediate = { # Create Adventurer scope:potential_laamp = { create_landless_adventurer_title_effect = { REASON = flag:runaway_forbidden FLAVOR_CHAR = root } adventurer_prestige_reset_effect = yes } add_prestige = minor_prestige_loss } option = { name = ep3_laamps.0051.a } option = { name = ep3_laamps.0051.b trigger = { is_ai = no scope:potential_laamp = { is_playable_character = yes } # For Safety } add_internal_flag = special set_player_character = scope:potential_laamp } } ################################################## # Become Landed - Purchase # by Joe Parkin # 0100-0102 ################################################## ep3_laamps.0100 = { type = character_event title = ep3_laamps.0100.t desc = { desc = ep3_laamps.0100.desc first_valid = { triggered_desc = { trigger = { scope:new_liege ?= scope:recipient } desc = ep3_laamps.0100.liege } triggered_desc = { trigger = { exists = scope:new_liege } desc = ep3_laamps.0100.fellow_vassal } desc = ep3_laamps.0100.independent } first_valid = { triggered_desc = { trigger = { exists = scope:new_liege } desc = ep3_laamps.0100.unpopular } desc = ep3_laamps.0100.fallback } } theme = realm left_portrait = { character = root animation = war_over_tie } right_portrait = { character = scope:recipient animation = steward } lower_left_portrait = { trigger = { scope:recipient != scope:new_liege } character = scope:new_liege } trigger = { has_ep3_dlc_trigger = yes } immediate = { purchase_land_interaction_effect = yes scope:recipient = { trigger_event = ep3_laamps.0101 } } option = { name = ep3_laamps.0100.a if = { # Vassal obligations limit = { scope:vassal_obligation = yes } vassal_contract_set_obligation_level = { type = feudal_government_taxes level = 4 } vassal_contract_set_obligation_level = { type = feudal_government_levies level = 4 } } } } ep3_laamps.0101 = { type = letter_event opening = ep3_laamps.0101.opening desc = { desc = ep3_laamps.0101.desc first_valid = { triggered_desc = { trigger = { scope:new_liege ?= scope:recipient } desc = ep3_laamps.0101.liege } triggered_desc = { trigger = { exists = scope:new_liege } desc = ep3_laamps.0101.fellow_vassal } desc = ep3_laamps.0100.independent } } sender = scope:actor trigger = { has_ep3_dlc_trigger = yes } immediate = { show_as_tooltip = { purchase_land_interaction_effect = yes } if = { limit = { top_liege != this scope:actor.liege != root } hidden_effect = { liege = { send_interface_message = { type = event_landless_adventurer_neutral title = ep3_laamps.0101.liege_message.title left_icon = scope:actor right_icon = scope:recipient show_as_tooltip = { purchase_land_interaction_effect = yes } } } } } } option = { name = ep3_laamps.0101.a trigger = { scope:new_liege ?= scope:recipient } } option = { name = ep3_laamps.0101.b trigger = { exists = scope:new_liege NOT = { scope:new_liege ?= scope:recipient } } } option = { name = ep3_laamps.0101.c trigger = { NOT = { exists = scope:new_liege } } } } ep3_laamps.0102 = { type = letter_event opening = ep3_laamps.0102.opening desc = ep3_laamps.0102.desc sender = scope:actor trigger = { has_ep3_dlc_trigger = yes } option = { name = ep3_laamps.0102.a } } ################################################## # Become Landed - Invasion # by Joe Parkin # 0200-0201 ################################################## # Interaction ep3_laamps.0200 = { type = letter_event opening = ep3_laamps.0101.opening desc = ep3_laamps.0200.desc sender = scope:recipient trigger = { has_ep3_dlc_trigger = yes } immediate = { if = { limit = { scope:offer_gold = yes } show_as_tooltip = { pay_short_term_gold = { gold = scope:recipient.request_laamp_invasion_sponsorship_gold_cost target = scope:recipient } } hidden_effect = { scope:recipient = { add_short_term_gold = scope:recipient.request_laamp_invasion_sponsorship_gold_cost } } } scope:recipient = { if = { limit = { scope:request_soldiers = yes scope:join_war = yes } custom_tooltip = adventurer_invasion_supporter_tt } else_if = { limit = { scope:request_soldiers = yes } custom_tooltip = adventurer_invasion_supporter_soldiers_tt } else = { custom_tooltip = adventurer_invasion_supporter_join_tt } } scope:actor = { custom_tooltip = adventurer_invasion_supporter_victory_tt } } option = { name = ep3_laamps.0200.a } } ep3_laamps.0201 = { type = letter_event opening = ep3_laamps.0201.opening desc = ep3_laamps.0201.desc sender = scope:recipient trigger = { has_ep3_dlc_trigger = yes } option = { name = ep3_laamps.0201.a } } ################################################## # Become Landed - Negotiated # by Joe Parkin # 0300-0302 ################################################## ep3_laamps.0300 = { type = character_event title = ep3_laamps.0300.t desc = { desc = ep3_laamps.0300.desc first_valid = { triggered_desc = { trigger = { scope:new_liege ?= scope:actor } desc = ep3_laamps.0300.liege } triggered_desc = { trigger = { exists = scope:new_liege } desc = ep3_laamps.0300.fellow_vassal } desc = ep3_laamps.0300.independent } first_valid = { triggered_desc = { trigger = { exists = scope:new_liege } desc = ep3_laamps.0300.unpopular } desc = ep3_laamps.0300.fallback } } theme = realm left_portrait = { character = root animation = worry } lower_right_portrait = scope:recipient lower_left_portrait = { trigger = { scope:actor != scope:new_liege } character = scope:new_liege } trigger = { has_ep3_dlc_trigger = yes } immediate = { negotiate_settlement_interaction_effect = yes scope:recipient = { trigger_event = ep3_laamps.0301 } } option = { name = ep3_laamps.0300.a } } ep3_laamps.0301 = { type = letter_event opening = ep3_laamps.0301.opening desc = { desc = ep3_laamps.0301.desc first_valid = { triggered_desc = { trigger = { scope:new_liege ?= scope:actor } desc = ep3_laamps.0301.liege } triggered_desc = { trigger = { exists = scope:new_liege } desc = ep3_laamps.0301.fellow_vassal } desc = ep3_laamps.0300.independent } } sender = scope:actor trigger = { has_ep3_dlc_trigger = yes } immediate = { show_as_tooltip = { negotiate_settlement_interaction_effect = yes } if = { limit = { top_liege != this scope:recipient.liege != scope:actor } hidden_effect = { liege = { send_interface_message = { type = event_landless_adventurer_neutral title = ep3_laamps.0301.liege_message.title left_icon = scope:actor right_icon = scope:recipient show_as_tooltip = { negotiate_settlement_interaction_effect = yes } } } } } } option = { name = ep3_laamps.0301.a trigger = { scope:new_liege ?= scope:actor } } option = { name = ep3_laamps.0301.b trigger = { exists = scope:new_liege NOT = { scope:new_liege ?= scope:actor } } } option = { name = ep3_laamps.0301.c trigger = { NOT = { exists = scope:new_liege } } } } ep3_laamps.0302 = { type = letter_event opening = ep3_laamps.0302.opening desc = ep3_laamps.0302.desc sender = scope:actor trigger = { has_ep3_dlc_trigger = yes } option = { name = ep3_laamps.0302.a } } ################################################## # Become Landed - Seize Realm # by Joe Parkin # 0401-0412 ################################################## ### SUCCESS ep3_laamps.0401 = { type = character_event title = ep3_laamps.0401.t desc = { desc = ep3_laamps.0401.desc first_valid = { triggered_desc = { trigger = { exists = scope:imprison } desc = ep3_laamps.0401.imprison } triggered_desc = { trigger = { exists = scope:death } desc = ep3_laamps.0401.death } desc = ep3_laamps.0401.outro } } theme = claim_throne_scheme override_background = { reference = throne_room_scope } left_portrait = { character = root animation = marshal } right_portrait = { character = scope:target animation = prisonhouse override_imprisonment_visuals = yes } trigger = { exists = scope:scheme_successful } immediate = { scope:target = { trigger_event = ep3_laamps.0410 } seize_realm_scheme_success_effect = yes } option = { name = ep3_laamps.0401.a } after = { } } ### FAILURE ep3_laamps.0402 = { type = character_event title = ep3_laamps.0402.t desc = { desc = ep3_laamps.0402.desc first_valid = { triggered_desc = { trigger = { exists = scope:imprison } desc = ep3_laamps.0402.imprison } triggered_desc = { trigger = { exists = scope:death } desc = ep3_laamps.0402.death } desc = ep3_laamps.0402.outro } } theme = claim_throne_scheme override_background = { trigger = { exists = scope:imprison } reference = dungeon_scope } override_background = { trigger = { exists = scope:death } reference = throne_room_scope } override_background = { trigger = { NOR = { exists = scope:imprison exists = scope:death } } reference = army_camp } left_portrait = { character = root triggered_animation = { trigger = { exists = scope:imprison } animation = prisonhouse } triggered_animation = { trigger = { exists = scope:death } animation = loss_1 } triggered_animation = { trigger = { NOR = { exists = scope:imprison exists = scope:death } } animation = stress } override_imprisonment_visuals = yes outfit_tags = { prison } } right_portrait = { character = scope:target animation = war_over_win trigger = { OR = { exists = scope:imprison exists = scope:death } } } lower_right_portrait = { character = scope:target trigger = { NOR = { exists = scope:imprison exists = scope:death } } } trigger = { NOT = { exists = scope:scheme_successful } } immediate = { scope:target = { trigger_event = ep3_laamps.0411 } seize_realm_scheme_failure_effect = yes } option = { name = ep3_laamps.0402.a trigger = { NOR = { exists = scope:imprison exists = scope:death } } stress_impact = { base = medium_stress_impact_gain ambitious = medium_stress_impact_gain arrogant = minor_stress_impact_gain diligent = minor_stress_impact_gain impatient = minor_stress_impact_gain stubborn = minor_stress_impact_gain lazy = minor_stress_impact_loss craven = minor_stress_impact_loss honest = minor_stress_impact_loss } } option = { name = ep3_laamps.0402.b trigger = { exists = scope:imprison } stress_impact = { base = medium_stress_impact_gain ambitious = medium_stress_impact_gain arrogant = minor_stress_impact_gain diligent = minor_stress_impact_gain impatient = minor_stress_impact_gain stubborn = minor_stress_impact_gain lazy = minor_stress_impact_loss craven = minor_stress_impact_loss honest = minor_stress_impact_loss } } option = { name = ep3_laamps.0402.c trigger = { exists = scope:death } } } ### SUCCESS - TARGET ep3_laamps.0410 = { type = character_event title = ep3_laamps.0410.t desc = { desc = ep3_laamps.0410.desc first_valid = { triggered_desc = { trigger = { exists = scope:death } desc = ep3_laamps.0410.death } triggered_desc = { trigger = { exists = scope:imprison } desc = ep3_laamps.0410.imprison } desc = ep3_laamps.0410.outro } } theme = claim_throne_scheme override_background = { trigger = { exists = scope:imprison } reference = dungeon_scope } override_background = { trigger = { NOT = { exists = scope:imprison } } reference = throne_room_scope } left_portrait = { character = scope:owner animation = war_over_win } right_portrait = { character = scope:target animation = fear override_imprisonment_visuals = yes trigger = { OR = { exists = scope:imprison exists = scope:death } } } lower_right_portrait = { character = scope:target trigger = { NOR = { exists = scope:imprison exists = scope:death } } } immediate = { show_as_tooltip = { seize_realm_scheme_success_effect = yes } } option = { name = ep3_laamps.0410.a trigger = { exists = scope:imprison } } option = { name = ep3_laamps.0410.b trigger = { exists = scope:death } } option = { name = ep3_laamps.0410.c trigger = { NOR = { exists = scope:imprison exists = scope:death } } } } ### FAILURE - TARGET ep3_laamps.0411 = { type = character_event title = ep3_laamps.0411.t desc = { desc = ep3_laamps.0411.desc first_valid = { triggered_desc = { trigger = { exists = scope:imprison } desc = ep3_laamps.0411.imprison } desc = ep3_laamps.0411.outro } } theme = claim_throne_scheme override_background = { trigger = { exists = scope:imprison } reference = dungeon_scope } override_background = { trigger = { NOT = { exists = scope:imprison } } reference = throne_room_scope } left_portrait = { character = scope:target animation = war_over_win } right_portrait = { character = scope:owner animation = fear override_imprisonment_visuals = yes trigger = { OR = { exists = scope:imprison exists = scope:death } } } lower_right_portrait = { character = scope:owner trigger = { NOR = { exists = scope:imprison exists = scope:death } } } immediate = { show_as_tooltip = { seize_realm_scheme_failure_effect = yes } } option = { name = ep3_laamps.0411.a trigger = { exists = scope:imprison } } option = { name = ep3_laamps.0411.b trigger = { exists = scope:death } } option = { name = ep3_laamps.0411.c trigger = { NOR = { exists = scope:imprison exists = scope:death } } } } ################################################## # Become Landed - Maintenance # by Joe Parkin # 0800 ################################################## scripted_trigger grantable_close_family_trigger = { is_adult = yes is_playable_character = no is_ai = yes house = scope:adventurer.house is_imprisoned = no trigger_if = { limit = { is_clergy = yes } faith = { has_doctrine_parameter = theocracy_temple_ownership } } NOR = { has_trait = incapable has_trait = devoted has_trait = order_member this = scope:adventurer this = scope:adventurer.player_heir is_spouse_of = scope:adventurer scope:alt_1 ?= this scope:alt_2 ?= this scope:alt_3 ?= this scope:previous_holder ?= this } } scripted_trigger grantable_claimant_trigger = { is_adult = yes is_playable_character = no is_ai = yes is_imprisoned = no trigger_if = { limit = { is_clergy = yes } faith = { has_doctrine_parameter = theocracy_temple_ownership } } NOR = { has_trait = incapable has_trait = devoted has_trait = order_member this = scope:adventurer is_spouse_of = scope:adventurer is_close_family_of = scope:adventurer scope:alt_1 ?= this scope:alt_2 ?= this scope:alt_3 ?= this scope:previous_holder ?= this } } scripted_trigger grantable_gender_preference_trigger = { trigger_if = { limit = { is_male = yes } scope:adventurer = { OR = { has_realm_law = male_only_law has_realm_law = male_preference_law } } } trigger_else_if = { limit = { is_female = yes } scope:adventurer = { OR = { has_realm_law = female_only_law has_realm_law = female_preference_law } } } trigger_else = { always = yes } } scripted_effect grant_land_to_beneficiary_effect = { save_scope_as = beneficiary if = { limit = { is_close_family_of = scope:adventurer } add_opinion = { target = scope:adventurer modifier = renounced_land_to_me_opinion opinion = 25 } every_in_list = { list = family_list limit = { this != scope:beneficiary } if = { limit = { has_strong_claim_on = scope:new_title NOT = { scope:beneficiary = { has_strong_claim_on = scope:new_title } } } add_opinion = { target = scope:adventurer modifier = renounced_land_to_weaker_claim_opinion opinion = -30 } } else = { add_opinion = { target = scope:adventurer modifier = renounced_land_to_other_opinion opinion = -15 } } } } else = { add_opinion = { target = scope:adventurer modifier = renounced_land_to_me_opinion opinion = 50 } if = { limit = { scope:beneficiary.house != scope:adventurer.house } every_in_list = { list = family_list add_opinion = { target = scope:adventurer modifier = renounced_land_outside_family_opinion opinion = -50 } } } every_in_list = { list = claimant_list limit = { this != scope:beneficiary } if = { limit = { has_strong_claim_on = scope:new_title NOT = { scope:beneficiary = { has_strong_claim_on = scope:new_title } } } add_opinion = { target = root modifier = renounced_land_to_weaker_claim_opinion opinion = -50 } } else = { add_opinion = { target = root modifier = renounced_land_to_other_opinion opinion = -25 } } } } send_interface_message = { type = msg_titles_renounced_to_me title = adventurer_titles_renounced_title desc = adventurer_titles_renounced_to_me_desc left_icon = scope:adventurer scope:adventurer = { send_interface_message = { type = msg_titles_renounced_by_me title = adventurer_titles_renounced_title desc = adventurer_titles_renounced_by_me_desc left_icon = scope:beneficiary create_title_and_vassal_change = { type = granted save_scope_as = change add_claim_on_loss = no } scope:new_capital = { change_title_holder_include_vassals = { holder = scope:beneficiary change = scope:change take_baronies = no } } hidden_effect = { scope:beneficiary = { becomes_independent = { change = scope:change } } } every_held_title = { limit = { NOT = { has_variable = adventurer_creation_reason } is_noble_family_title = no is_landless_type_title = no this != scope:new_capital } if = { limit = { tier >= scope:new_title.tier } change_title_holder_include_vassals = { holder = scope:beneficiary change = scope:change take_baronies = no } } else = { hidden_effect = { change_title_holder_include_vassals = { holder = scope:beneficiary change = scope:change take_baronies = no } } } } } } resolve_title_and_vassal_change = scope:change } scope:adventurer = { custom_tooltip = ep3_laamps.0800.claim.tt } } scripted_effect transfer_crusader_king_trait_effect = { if = { limit = { has_character_flag = laamp_is_crusader_king has_trait = crusader_king } remove_trait = crusader_king $BENEFICIARY$ = { add_trait = crusader_king } } } ep3_laamps.0800 = { # Player adventurer has gained a landed title type = character_event title = ep3_laamps.0800.t desc = { first_valid = { triggered_desc = { trigger = { scope:transfer_type = flag:inheritance } desc = ep3_laamps.0800.inherited } triggered_desc = { trigger = { scope:transfer_type = flag:abdication } desc = ep3_laamps.0800.abdication } triggered_desc = { trigger = { scope:transfer_type = flag:granted } desc = ep3_laamps.0800.granted } triggered_desc = { trigger = { scope:transfer_type = flag:election } desc = ep3_laamps.0800.election } triggered_desc = { trigger = { scope:transfer_type = flag:faction_demand } desc = ep3_laamps.0800.faction } triggered_desc = { trigger = { scope:transfer_type = flag:conquest_claim } desc = ep3_laamps.0800.claim_war } triggered_desc = { trigger = { scope:transfer_type = flag:conquest_holy_war } desc = ep3_laamps.0800.holy_war } desc = ep3_laamps.0800.conquest } first_valid = { triggered_desc = { trigger = { exists = scope:new_liege } desc = ep3_laamps.0800.vassal } desc = ep3_laamps.0800.independent } desc = ep3_laamps.0800.desc } theme = realm left_portrait = { character = scope:adventurer animation = war_over_win } lower_left_portrait = scope:alt_1 lower_center_portrait = scope:alt_2 lower_right_portrait = scope:portrait_scope cooldown = { days = 1 } # Do not change this orphan = yes trigger = { has_ep3_dlc_trigger = yes is_landed = yes government_has_flag = government_is_landless_adventurer NOT = { has_variable = became_landed_through_separatist_uprising_var } # It feels repetitive to get this event after choosing to become landed NOT = { #Used in the New England event chain has_character_flag = siward_flag } } immediate = { save_scope_as = adventurer # SAVE LANDED TITLES every_held_title = { title_tier >= county limit = { NOR = { has_variable = adventurer_creation_reason is_landless_type_title = yes } } add_to_list = landed_titles } # SAVE TITLES ordered_in_list = { list = landed_titles order_by = tier save_scope_as = new_title save_scope_as = target previous_holder ?= { save_scope_as = previous_holder } } capital_county = { save_scope_as = new_capital } every_in_list = { list = landed_titles limit = { tier = scope:new_title.tier } save_scope_as = tooltip_title show_as_tooltip = { scope:adventurer = { get_title = scope:tooltip_title } } } # SAVE LIEGE IF RELEVANT if = { limit = { top_liege != this } liege = { save_scope_as = new_liege } } # FIND RELATIVES TO GRANT TO hidden_effect = { if = { limit = { any_close_family_member = { grantable_close_family_trigger = yes } } while = { count = 3 random_close_family_member = { limit = { grantable_close_family_trigger = yes OR = { has_relation_friend = scope:adventurer has_relation_lover = scope:adventurer } grantable_gender_preference_trigger = yes } alternative_limit = { grantable_close_family_trigger = yes has_strong_claim_on = scope:new_title grantable_gender_preference_trigger = yes } alternative_limit = { grantable_close_family_trigger = yes OR = { has_relation_friend = scope:adventurer has_relation_lover = scope:adventurer } } alternative_limit = { grantable_close_family_trigger = yes has_strong_claim_on = scope:new_title } alternative_limit = { grantable_close_family_trigger = yes grantable_gender_preference_trigger = yes } alternative_limit = { grantable_close_family_trigger = yes } weight = { base = 1 modifier = { is_child_of = scope:adventurer add = 10 } modifier = { is_sibling_of = scope:adventurer add = 5 } } if = { limit = { NOT = { exists = scope:alt_1 } } save_scope_as = alt_1 } else_if = { limit = { NOT = { exists = scope:alt_2 } } save_scope_as = alt_2 } else_if = { limit = { NOT = { exists = scope:alt_3 } } save_scope_as = alt_3 } add_to_list = family_list } } } ### FIND CLAIMANTS TO GRANT TO if = { limit = { NOT = { exists = scope:alt_3 } } scope:new_title = { while = { count = 3 random_claimant = { limit = { grantable_claimant_trigger = yes OR = { has_relation_friend = scope:adventurer has_relation_lover = scope:adventurer is_extended_family_of = scope:adventurer } grantable_gender_preference_trigger = yes } alternative_limit = { grantable_claimant_trigger = yes has_strong_claim_on = scope:new_title grantable_gender_preference_trigger = yes } alternative_limit = { grantable_claimant_trigger = yes OR = { has_relation_friend = scope:adventurer has_relation_lover = scope:adventurer is_extended_family_of = scope:adventurer } } alternative_limit = { grantable_claimant_trigger = yes has_strong_claim_on = scope:new_title grantable_gender_preference_trigger = yes } alternative_limit = { grantable_claimant_trigger = yes grantable_gender_preference_trigger = yes } alternative_limit = { grantable_claimant_trigger = yes } if = { limit = { NOT = { exists = scope:alt_1 } } save_scope_as = alt_1 } else_if = { limit = { NOT = { exists = scope:alt_2 } } save_scope_as = alt_2 } else_if = { limit = { NOT = { exists = scope:alt_3 } } save_scope_as = alt_3 } add_to_list = claimant_list } } } } } # Portrait scopes if = { limit = { exists = scope:new_liege NOT = { exists = scope:alt_3 } } scope:new_liege = { save_scope_as = portrait_scope } } else = { scope:alt_3 ?= { save_scope_as = portrait_scope } } } option = { # Become Landed name = ep3_laamps.0800.a if = { limit = { NOT = { has_trait = adventurer } } add_trait = adventurer } hidden_effect = { every_courtier = { set_variable = { name = former_camp_leader value = root } add_trait = adventurer_follower } } ep3_become_landed_transfer_effect = { TITLE_RECEIVER = root TITLE_LIST = landed_titles TYPE = granted REASON = flag:granted } if = { limit = { has_character_modifier = ep3_lust_for_land_modifier } remove_character_modifier = ep3_lust_for_land_modifier } } option = { # Give to 1 name = { text = ep3_laamps.0800.b trigger = { scope:alt_1 = { is_close_family_of = scope:adventurer } } } name = { text = ep3_laamps.0800.b.claimant trigger = { NOT = { scope:alt_1 = { is_close_family_of = scope:adventurer } } } } trigger = { exists = scope:alt_1 } scope:alt_1 = { grant_land_to_beneficiary_effect = yes } transfer_crusader_king_trait_effect = { BENEFICIARY = scope:alt_1 } } option = { # Give to 2 name = { text = ep3_laamps.0800.c trigger = { scope:alt_2 = { is_close_family_of = scope:adventurer } } } name = { text = ep3_laamps.0800.c.claimant trigger = { NOT = { scope:alt_2 = { is_close_family_of = scope:adventurer } } } } trigger = { exists = scope:alt_2 } scope:alt_2 = { grant_land_to_beneficiary_effect = yes } transfer_crusader_king_trait_effect = { BENEFICIARY = scope:alt_2 } } option = { # Give to 3 name = { text = ep3_laamps.0800.d trigger = { scope:alt_3 = { is_close_family_of = scope:adventurer } } } name = { text = ep3_laamps.0800.d.claimant trigger = { NOT = { scope:alt_3 = { is_close_family_of = scope:adventurer } } } } trigger = { exists = scope:alt_3 } scope:alt_3 = { grant_land_to_beneficiary_effect = yes } transfer_crusader_king_trait_effect = { BENEFICIARY = scope:alt_3 } } option = { # Give to liege/random dude name = { text = ep3_laamps.0800.e.liege trigger = { exists = scope:new_liege } } name = { text = ep3_laamps.0800.e trigger = { NOT = { exists = scope:new_liege } } } trigger = { OR = { NOT = { exists = scope:alt_1 } exists = scope:new_liege } } if = { limit = { exists = scope:new_liege } scope:new_liege = { grant_land_to_beneficiary_effect = yes } transfer_crusader_king_trait_effect = { BENEFICIARY = scope:new_liege } } else = { hidden_effect_new_object = { create_character = { template = laamp_inheritor_template culture = scope:new_capital.culture faith = scope:new_capital.faith dynasty = generate location = scope:new_capital.title_province after_creation = { save_scope_as = land_grantee } } scope:land_grantee = { grant_land_to_beneficiary_effect = yes } } custom_tooltip = become_landless_adventurer_decision_title_created_tt } transfer_crusader_king_trait_effect = { BENEFICIARY = scope:land_grantee } } after = { remove_character_flag = laamp_is_crusader_king } } ################################################## # The Roads We Walk # by Ewan Cowhig Croft # 1001 - 1010 ################################################## scripted_effect ep3_laamps_1001_pick_best_skill_effect = { if = { limit = { NOT = { exists = scope:pick_$PICK$ } calc_true_if = { amount >= $POSITION$ $SKILL_1$ >= $SKILL_2$ $SKILL_1$ >= $SKILL_3$ $SKILL_1$ >= $SKILL_4$ $SKILL_1$ >= $SKILL_5$ $SKILL_1$ >= $SKILL_6$ } } save_scope_value_as = { name = $SKILL_1$_char value = yes } save_scope_value_as = { name = pick_$PICK$ value = flag:$SKILL_1$ } } } scripted_effect ep3_laamps_1001_pick_best_skill_wrapper_effect = { # Diplomacy. if = { limit = { NOR = { exists = scope:diplomacy_char scope:pick_1 ?= flag:diplomacy scope:pick_2 ?= flag:diplomacy scope:pick_3 ?= flag:diplomacy } } ep3_laamps_1001_pick_best_skill_effect = { SKILL_1 = diplomacy POSITION = $POSITION$ SKILL_2 = martial SKILL_3 = stewardship SKILL_4 = intrigue SKILL_5 = learning SKILL_6 = prowess PICK = $PICK$ } } # Martial. if = { limit = { NOR = { exists = scope:martial_char scope:pick_1 ?= flag:martial scope:pick_2 ?= flag:martial scope:pick_3 ?= flag:martial } } ep3_laamps_1001_pick_best_skill_effect = { SKILL_1 = martial POSITION = $POSITION$ SKILL_2 = diplomacy SKILL_3 = stewardship SKILL_4 = intrigue SKILL_5 = learning SKILL_6 = prowess PICK = $PICK$ } } # Stewardship. if = { limit = { NOR = { exists = scope:stewardship_char scope:pick_1 ?= flag:stewardship scope:pick_2 ?= flag:stewardship scope:pick_3 ?= flag:stewardship } } ep3_laamps_1001_pick_best_skill_effect = { SKILL_1 = stewardship POSITION = $POSITION$ SKILL_2 = diplomacy SKILL_3 = martial SKILL_4 = intrigue SKILL_5 = learning SKILL_6 = prowess PICK = $PICK$ } } # Intrigue. if = { limit = { NOR = { exists = scope:intrigue_char scope:pick_1 ?= flag:intrigue scope:pick_2 ?= flag:intrigue scope:pick_3 ?= flag:intrigue } } ep3_laamps_1001_pick_best_skill_effect = { SKILL_1 = intrigue POSITION = $POSITION$ SKILL_2 = diplomacy SKILL_3 = martial SKILL_4 = stewardship SKILL_5 = learning SKILL_6 = prowess PICK = $PICK$ } } # Learning. if = { limit = { NOR = { exists = scope:learning_char scope:pick_1 ?= flag:learning scope:pick_2 ?= flag:learning scope:pick_3 ?= flag:learning } } ep3_laamps_1001_pick_best_skill_effect = { SKILL_1 = learning POSITION = $POSITION$ SKILL_2 = diplomacy SKILL_3 = martial SKILL_4 = stewardship SKILL_5 = intrigue SKILL_6 = prowess PICK = $PICK$ } } # Prowess. if = { limit = { NOR = { exists = scope:prowess_char scope:pick_1 ?= flag:prowess scope:pick_2 ?= flag:prowess scope:pick_3 ?= flag:prowess } } ep3_laamps_1001_pick_best_skill_effect = { SKILL_1 = prowess POSITION = $POSITION$ SKILL_2 = diplomacy SKILL_3 = martial SKILL_4 = stewardship SKILL_5 = intrigue SKILL_6 = learning PICK = $PICK$ } } } scripted_effect ep3_laamps_1001_generate_diplomacy_char_effect = { create_character = { template = pool_repopulate_diplomacy dynasty = none culture = root.location.culture faith = root.location.faith location = root.location save_scope_as = diplomacy_1 diplomacy = { min_template_high_skill max_template_high_skill } martial = { min_template_average_skill max_template_average_skill } stewardship = { min_template_average_skill max_template_average_skill } intrigue = { min_template_average_skill max_template_average_skill } learning = { min_template_average_skill max_template_average_skill } prowess = { min_template_average_skill max_template_average_skill } after_creation = { add_to_list = spawned_chars_list } } create_character = { template = pool_repopulate_diplomacy dynasty = none culture = root.location.culture faith = root.location.faith location = root.location save_scope_as = diplomacy_2 diplomacy = { min_template_high_skill max_template_high_skill } martial = { min_template_average_skill max_template_average_skill } stewardship = { min_template_average_skill max_template_average_skill } intrigue = { min_template_average_skill max_template_average_skill } learning = { min_template_average_skill max_template_average_skill } prowess = { min_template_average_skill max_template_average_skill } after_creation = { add_to_list = spawned_chars_list } } } scripted_effect ep3_laamps_1001_generate_martial_char_effect = { create_character = { template = pool_repopulate_martial dynasty = none culture = root.location.culture faith = root.location.faith location = root.location save_scope_as = martial_1 diplomacy = { min_template_average_skill max_template_average_skill } martial = { min_template_high_skill max_template_high_skill } stewardship = { min_template_average_skill max_template_average_skill } intrigue = { min_template_average_skill max_template_average_skill } learning = { min_template_average_skill max_template_average_skill } prowess = { min_template_average_skill max_template_average_skill } after_creation = { add_to_list = spawned_chars_list } } create_character = { template = pool_repopulate_martial dynasty = none culture = root.location.culture faith = root.location.faith location = root.location save_scope_as = martial_2 diplomacy = { min_template_average_skill max_template_average_skill } martial = { min_template_high_skill max_template_high_skill } stewardship = { min_template_average_skill max_template_average_skill } intrigue = { min_template_average_skill max_template_average_skill } learning = { min_template_average_skill max_template_average_skill } prowess = { min_template_average_skill max_template_average_skill } after_creation = { add_to_list = spawned_chars_list } } } scripted_effect ep3_laamps_1001_generate_stewardship_char_effect = { create_character = { template = pool_repopulate_stewardship dynasty = none culture = root.location.culture faith = root.location.faith location = root.location save_scope_as = stewardship_1 diplomacy = { min_template_average_skill max_template_average_skill } martial = { min_template_average_skill max_template_average_skill } stewardship = { min_template_high_skill max_template_high_skill } intrigue = { min_template_average_skill max_template_average_skill } learning = { min_template_average_skill max_template_average_skill } prowess = { min_template_average_skill max_template_average_skill } after_creation = { add_to_list = spawned_chars_list } } create_character = { template = pool_repopulate_stewardship dynasty = none culture = root.location.culture faith = root.location.faith location = root.location save_scope_as = stewardship_2 diplomacy = { min_template_average_skill max_template_average_skill } martial = { min_template_average_skill max_template_average_skill } stewardship = { min_template_high_skill max_template_high_skill } intrigue = { min_template_average_skill max_template_average_skill } learning = { min_template_average_skill max_template_average_skill } prowess = { min_template_average_skill max_template_average_skill } after_creation = { add_to_list = spawned_chars_list } } } scripted_effect ep3_laamps_1001_generate_intrigue_char_effect = { create_character = { template = pool_repopulate_intrigue dynasty = none culture = root.location.culture faith = root.location.faith location = root.location save_scope_as = intrigue_1 diplomacy = { min_template_average_skill max_template_average_skill } martial = { min_template_average_skill max_template_average_skill } stewardship = { min_template_average_skill max_template_average_skill } intrigue = { min_template_high_skill max_template_high_skill } learning = { min_template_average_skill max_template_average_skill } prowess = { min_template_average_skill max_template_average_skill } after_creation = { add_to_list = spawned_chars_list } } create_character = { template = pool_repopulate_intrigue dynasty = none culture = root.location.culture faith = root.location.faith location = root.location save_scope_as = intrigue_2 diplomacy = { min_template_average_skill max_template_average_skill } martial = { min_template_average_skill max_template_average_skill } stewardship = { min_template_average_skill max_template_average_skill } intrigue = { min_template_high_skill max_template_high_skill } learning = { min_template_average_skill max_template_average_skill } prowess = { min_template_average_skill max_template_average_skill } after_creation = { add_to_list = spawned_chars_list } } } scripted_effect ep3_laamps_1001_generate_learning_char_effect = { create_character = { template = pool_repopulate_learning dynasty = none culture = root.location.culture faith = root.location.faith location = root.location save_scope_as = learning_1 diplomacy = { min_template_average_skill max_template_average_skill } martial = { min_template_average_skill max_template_average_skill } stewardship = { min_template_average_skill max_template_average_skill } intrigue = { min_template_average_skill max_template_average_skill } learning = { min_template_high_skill max_template_high_skill } prowess = { min_template_average_skill max_template_average_skill } after_creation = { add_to_list = spawned_chars_list } } create_character = { template = pool_repopulate_learning dynasty = none culture = root.location.culture faith = root.location.faith location = root.location save_scope_as = learning_2 diplomacy = { min_template_average_skill max_template_average_skill } martial = { min_template_average_skill max_template_average_skill } stewardship = { min_template_average_skill max_template_average_skill } intrigue = { min_template_average_skill max_template_average_skill } learning = { min_template_high_skill max_template_high_skill } prowess = { min_template_average_skill max_template_average_skill } after_creation = { add_to_list = spawned_chars_list } } } scripted_effect ep3_laamps_1001_generate_prowess_char_effect = { create_character = { template = pool_repopulate_prowess dynasty = none culture = root.location.culture faith = root.location.faith location = root.location save_scope_as = prowess_1 diplomacy = { min_template_average_skill max_template_average_skill } martial = { min_template_average_skill max_template_average_skill } stewardship = { min_template_average_skill max_template_average_skill } intrigue = { min_template_average_skill max_template_average_skill } learning = { min_template_average_skill max_template_average_skill } prowess = { min_template_high_skill max_template_high_skill } after_creation = { add_to_list = spawned_chars_list } } create_character = { template = pool_repopulate_prowess dynasty = none culture = root.location.culture faith = root.location.faith location = root.location save_scope_as = prowess_2 diplomacy = { min_template_average_skill max_template_average_skill } martial = { min_template_average_skill max_template_average_skill } stewardship = { min_template_average_skill max_template_average_skill } intrigue = { min_template_average_skill max_template_average_skill } learning = { min_template_average_skill max_template_average_skill } prowess = { min_template_high_skill max_template_high_skill } after_creation = { add_to_list = spawned_chars_list } } } scripted_effect ep3_laamps_1001_boost_courtier_opinion_effect = { hidden_effect = { # Improve their opinion of us. reverse_add_opinion = { target = scope:$SKILL$_1 modifier = respect_opinion opinion = 100 } reverse_add_opinion = { target = scope:$SKILL$_2 modifier = respect_opinion opinion = 100 } # And, just in case, make sure we like them. add_opinion = { target = scope:$SKILL$_1 modifier = respect_opinion opinion = 100 } add_opinion = { target = scope:$SKILL$_2 modifier = respect_opinion opinion = 100 } } } scripted_effect ep3_laamps_1001_add_courtiers_effect = { # Nab our dudes. add_courtier = scope:$SKILL$_1 add_courtier = scope:$SKILL$_2 } scripted_trigger ep3_laamps_1001_basic_trigger = { NOR = { has_character_flag = special_laamp_char has_character_flag = got_starting_courtiers } # In case you become a laamp then immediately become landed again. has_government = landless_adventurer_government } # We generate some starting courtiers for you so that you don't get irredeemably screwed at a basic laamp. ep3_laamps.1001 = { type = character_event title = ep3_laamps.1001.t desc = { desc = ep3_laamps.1001.desc.intro first_valid = { triggered_desc = { trigger = { has_trait = blind } desc = ep3_laamps.1001.desc.blind } desc = ep3_laamps.1001.desc.at_least_one_working_eye } } theme = friendly left_portrait = { character = root animation = personality_rational } override_background = { reference = wilderness } trigger = { ep3_laamps_1001_basic_trigger = yes # Must be on land or else we don't know where to take our locals from. exists = location.county } on_trigger_fail = { if = { limit = { ep3_laamps_1001_basic_trigger = yes } trigger_event = { id = ep3_laamps.1001 months = { 1 3 } } } } cooldown = { years = 20 } immediate = { # Alright, let's grab our best skills — we care about prowess so we need to do this the manual way. ## First best. ep3_laamps_1001_pick_best_skill_wrapper_effect = { POSITION = 5 PICK = 1 } ## Second best. ep3_laamps_1001_pick_best_skill_wrapper_effect = { POSITION = 4 PICK = 2 } ## Third best. ep3_laamps_1001_pick_best_skill_wrapper_effect = { POSITION = 3 PICK = 3 } # Cool, now if we're the player, we generate our characters straight away so that we can display them in tooltips. if = { limit = { is_ai = no } if = { limit = { exists = scope:diplomacy_char } ep3_laamps_1001_generate_diplomacy_char_effect = yes ep3_laamps_1001_boost_courtier_opinion_effect = { SKILL = diplomacy } } if = { limit = { exists = scope:martial_char } ep3_laamps_1001_generate_martial_char_effect = yes ep3_laamps_1001_boost_courtier_opinion_effect = { SKILL = martial } } if = { limit = { exists = scope:stewardship_char } ep3_laamps_1001_generate_stewardship_char_effect = yes ep3_laamps_1001_boost_courtier_opinion_effect = { SKILL = stewardship } } if = { limit = { exists = scope:intrigue_char } ep3_laamps_1001_generate_intrigue_char_effect = yes ep3_laamps_1001_boost_courtier_opinion_effect = { SKILL = intrigue } } if = { limit = { exists = scope:learning_char } ep3_laamps_1001_generate_learning_char_effect = yes ep3_laamps_1001_boost_courtier_opinion_effect = { SKILL = learning } } if = { limit = { exists = scope:prowess_char } ep3_laamps_1001_generate_prowess_char_effect = yes ep3_laamps_1001_boost_courtier_opinion_effect = { SKILL = prowess } } } add_character_flag = got_starting_courtiers # Plus, nicknamify as many as we can. hidden_effect = { every_in_list = { list = spawned_chars_list assign_random_nickname_effect = yes } } } # Diplomacy. option = { name = ep3_laamps.1001.a trigger = { exists = scope:diplomacy_char } skill = diplomacy # Label what this means. custom_tooltip = ep3_laamps.1001.a.tt # For the player, we just add their pregenerated courtiers. if = { limit = { is_ai = no } ep3_laamps_1001_add_courtiers_effect = { SKILL = diplomacy } } # For the AI, generate their characters here. else = { ep3_laamps_1001_generate_diplomacy_char_effect = yes ep3_laamps_1001_add_courtiers_effect = { SKILL = diplomacy } ep3_laamps_1001_boost_courtier_opinion_effect = { SKILL = diplomacy } } # No stress for mechanical events. ai_chance = { base = 1 # AI pick best skill, always. modifier = { add = 1000 highest_skill = diplomacy diplomacy >= prowess } } } # Martial. option = { name = ep3_laamps.1001.b trigger = { exists = scope:martial_char } skill = martial # Label what this means. custom_tooltip = ep3_laamps.1001.b.tt # For the player, we just add their pregenerated courtiers. if = { limit = { is_ai = no } ep3_laamps_1001_add_courtiers_effect = { SKILL = martial } } # For the AI, generate their characters here. else = { ep3_laamps_1001_generate_martial_char_effect = yes ep3_laamps_1001_add_courtiers_effect = { SKILL = martial } } # No stress for mechanical events. ai_chance = { base = 1 # AI pick best skill, always. modifier = { add = 1000 highest_skill = martial martial >= prowess } modifier = { add = 150 culture = { has_cultural_parameter = much_more_likely_to_be_laamps } } modifier = { add = 50 culture = { has_cultural_parameter = more_likely_to_be_laamps } } } } # Stewardship. option = { name = ep3_laamps.1001.c trigger = { exists = scope:stewardship_char } skill = stewardship # Label what this means. custom_tooltip = ep3_laamps.1001.c.tt # For the player, we just add their pregenerated courtiers. if = { limit = { is_ai = no } ep3_laamps_1001_add_courtiers_effect = { SKILL = stewardship } } # For the AI, generate their characters here. else = { ep3_laamps_1001_generate_stewardship_char_effect = yes ep3_laamps_1001_add_courtiers_effect = { SKILL = stewardship } } # No stress for mechanical events. ai_chance = { base = 1 # AI pick best skill, always. modifier = { add = 1000 highest_skill = stewardship stewardship >= prowess } } } # Intrigue. option = { name = ep3_laamps.1001.d trigger = { exists = scope:intrigue_char } skill = intrigue # Label what this means. custom_tooltip = ep3_laamps.1001.d.tt # For the player, we just add their pregenerated courtiers. if = { limit = { is_ai = no } ep3_laamps_1001_add_courtiers_effect = { SKILL = intrigue } } # For the AI, generate their characters here. else = { ep3_laamps_1001_generate_intrigue_char_effect = yes ep3_laamps_1001_add_courtiers_effect = { SKILL = intrigue } } # No stress for mechanical events. ai_chance = { base = 1 # AI pick best skill, always. modifier = { add = 1000 highest_skill = intrigue intrigue >= prowess } } } # Learning. option = { name = ep3_laamps.1001.e trigger = { exists = scope:learning_char } skill = learning # Label what this means. custom_tooltip = ep3_laamps.1001.e.tt # For the player, we just add their pregenerated courtiers. if = { limit = { is_ai = no } ep3_laamps_1001_add_courtiers_effect = { SKILL = learning } } # For the AI, generate their characters here. else = { ep3_laamps_1001_generate_learning_char_effect = yes ep3_laamps_1001_add_courtiers_effect = { SKILL = learning } } # No stress for mechanical events. ai_chance = { base = 1 # AI pick best skill, always. modifier = { add = 1000 highest_skill = learning learning >= prowess } } } # Prowess. option = { name = ep3_laamps.1001.f trigger = { exists = scope:prowess_char } skill = prowess # Label what this means. custom_tooltip = ep3_laamps.1001.f.tt # For the player, we just add their pregenerated courtiers. if = { limit = { is_ai = no } ep3_laamps_1001_add_courtiers_effect = { SKILL = prowess } } # For the AI, generate their characters here. else = { ep3_laamps_1001_generate_prowess_char_effect = yes ep3_laamps_1001_add_courtiers_effect = { SKILL = prowess } } # No stress for mechanical events. ai_chance = { base = 1 # AI pick best skill, always. modifier = { add = 1000 prowess >= diplomacy prowess >= martial prowess >= stewardship prowess >= intrigue prowess >= learning } modifier = { add = 150 culture = { has_cultural_parameter = much_more_likely_to_be_laamps } } modifier = { add = 50 culture = { has_cultural_parameter = more_likely_to_be_laamps } } } } # Larry Loner of the Clan McNoMates. option = { name = ep3_laamps.1001.g if = { limit = { any_courtier = { count <= 0 } } custom_tooltip = ep3_laamps.1001.g.tt.difficulty } else = { custom_tooltip = ep3_laamps.1001.g.tt.followers } # No stress for mechanical events. ai_chance = { # Player opt out. base = 0 } } } # Error suppression for the history files. ep3_laamps.1002 = { hidden = yes orphan = yes immediate = { set_variable = special_laamp_char } } ################################################## # Sworn by the Sword # by Ewan Cowhig Croft # 1011 - 1020 ################################################## # You extract an oath of loyalty from one of your knights. ep3_laamps.1011 = { type = character_event title = ep3_laamps.1011.t desc = { first_valid = { triggered_desc = { trigger = { exists = scope:tiles_misc } desc = ep3_laamps.1011.desc.four_plus_titles } triggered_desc = { trigger = { exists = scope:title_3 } desc = ep3_laamps.1011.desc.three_titles } triggered_desc = { trigger = { exists = scope:title_2 } desc = ep3_laamps.1011.desc.two_titles } triggered_desc = { trigger = { exists = scope:title_1 } desc = ep3_laamps.1011.desc.one_title } } desc = ep3_laamps.1011.desc.midtro first_valid = { triggered_desc = { trigger = { has_character_flag = has_sworn_sword_before } desc = ep3_laamps.1011.desc.prior_swords } desc = ep3_laamps.1011.desc.first_sword } desc = ep3_laamps.1011.desc.outro } theme = realm left_portrait = { character = scope:actor animation = personality_bold } right_portrait = { character = scope:recipient animation = throne_room_kneel_1 } override_background = { reference = feast } immediate = { # Grab our random claims, as appropriate. if = { # We don't care about doing this for the robots. limit = { is_ai = no } ordered_claim = { limit = { tier >= tier_kingdom } order_by = { # Our basics. value = tier # If we once held them, boost them up the rankings. if = { limit = { any_past_holder = { this = root } } multiply = 10 } # And if a relative holds them, boost those up too. else_if = { limit = { holder ?= { is_close_or_extended_family_of = root } } multiply = 5 } } max = 4 check_range_bounds = no # First title. if = { limit = { NOT = { exists = scope:title_1 } } save_scope_as = title_1 } # Second title. else_if = { limit = { NOT = { this = scope:title_1 exists = scope:title_2 } } save_scope_as = title_2 } # Third title. else_if = { limit = { NOT = { this = scope:title_1 this = scope:title_2 exists = scope:title_3 } } save_scope_as = title_3 } # Are there any other titles? else_if = { limit = { NOT = { this = scope:title_1 this = scope:title_2 this = scope:title_3 } } save_scope_value_as = { name = tiles_misc value = yes } } } } # Add our hook. add_hook = { type = loyalty_hook target = scope:recipient } # And register that we've taken the event once before. add_character_flag = has_sworn_sword_before } # Mutual loyalty hook. option = { name = ep3_laamps.1011.a scope:recipient = { add_hook = { type = follower_oath_strong_hook target = scope:actor } add_opinion = { target = scope:actor modifier = trust_opinion opinion = 100 } } stress_impact = { just = major_stress_impact_loss arbitrary = major_stress_impact_gain } ai_chance = { base = 1 ai_value_modifier = { ai_honor = 2 } } } # One-way + weak hook. option = { name = ep3_laamps.1011.b scope:recipient = { add_hook = { type = follower_oath_hook target = scope:actor } add_opinion = { target = scope:actor modifier = respect_opinion opinion = 30 } } ai_chance = { base = 1 ai_value_modifier = { ai_rationality = 2 } } } } ################################################## # Camp Purpose Maintenance # by Ewan Cowhig Croft # 1021 - 1030 ################################################## # Destroy any inappropriate buildings and upgrades. ep3_laamps.1021 = { hidden = yes immediate = { if = { limit = { domicile = { OR = { has_domicile_building = supply_tent_reserve_provisions has_domicile_construction = supply_tent_reserve_provisions } } NOT = { has_realm_law_flag = unlocks_supply_tent_reserve_provisions } } domicile = { remove_domicile_building = supply_tent_reserve_provisions } } if = { limit = { domicile = { OR = { has_domicile_building = supply_tent_reserve_water has_domicile_construction = supply_tent_reserve_water } } NOT = { has_realm_law_flag = unlocks_supply_tent_reserve_water } } domicile = { remove_domicile_building = supply_tent_reserve_water } } if = { limit = { domicile = { OR = { has_domicile_building = supply_tent_climbing_gear has_domicile_construction = supply_tent_climbing_gear } } NOT = { has_realm_law_flag = unlocks_supply_tent_climbing_gear } } domicile = { remove_domicile_building = supply_tent_climbing_gear } } if = { limit = { domicile = { OR = { has_domicile_building = supply_tent_subdued_gear has_domicile_construction = supply_tent_subdued_gear } } NOT = { has_realm_law_flag = unlocks_supply_tent_subdued_gear } } domicile = { remove_domicile_building = supply_tent_subdued_gear } } if = { limit = { domicile = { OR = { has_domicile_building = barber_tent_reference_corpus has_domicile_construction = barber_tent_reference_corpus } } NOT = { has_realm_law_flag = unlocks_barber_tent_reference_corpus } } domicile = { remove_domicile_building = barber_tent_reference_corpus } } if = { limit = { domicile = { OR = { has_domicile_building = barber_tent_morticians_tools has_domicile_construction = barber_tent_morticians_tools } } NOT = { has_realm_law_flag = unlocks_barber_tent_morticians_tools } } domicile = { remove_domicile_building = barber_tent_morticians_tools } } if = { limit = { domicile = { OR = { has_domicile_building = baggage_train_siege_engineers has_domicile_construction = baggage_train_siege_engineers } } NOT = { has_realm_law_flag = unlocks_baggage_train_siege_engineers } } domicile = { remove_domicile_building = baggage_train_siege_engineers } } if = { limit = { domicile = { OR = { has_domicile_building = baggage_train_scribes has_domicile_construction = baggage_train_scribes } } NOT = { has_realm_law_flag = unlocks_baggage_train_scribes } } domicile = { remove_domicile_building = baggage_train_scribes } } if = { limit = { domicile = { OR = { has_domicile_building = baggage_train_proof_of_claims has_domicile_construction = baggage_train_proof_of_claims } } NOT = { has_realm_law_flag = unlocks_baggage_train_proof_of_claims } } domicile = { remove_domicile_building = baggage_train_proof_of_claims } } if = { limit = { domicile = { OR = { has_domicile_building = baggage_train_ransom_cages has_domicile_construction = baggage_train_ransom_cages } } NOT = { has_realm_law_flag = unlocks_baggage_train_ransom_cages } } domicile = { remove_domicile_building = baggage_train_ransom_cages } } if = { limit = { domicile = { OR = { has_domicile_building = baggage_train_negotiators has_domicile_construction = baggage_train_negotiators } } NOT = { has_realm_law_flag = unlocks_baggage_train_negotiators } } domicile = { remove_domicile_building = baggage_train_negotiators } } if = { limit = { domicile = { OR = { has_domicile_building = baggage_train_ascetics has_domicile_construction = baggage_train_ascetics } } NOT = { has_realm_law_flag = unlocks_baggage_train_ascetics } } domicile = { remove_domicile_building = baggage_train_ascetics } } if = { limit = { domicile = { OR = { has_domicile_building = camp_fire_local_hangers_on has_domicile_construction = camp_fire_local_hangers_on } } NOT = { has_realm_law_flag = unlocks_camp_fire_local_hangers_on } } domicile = { remove_domicile_building = camp_fire_local_hangers_on } } if = { limit = { domicile = { OR = { has_domicile_building = camp_fire_future_dreams has_domicile_construction = camp_fire_future_dreams } } NOT = { has_realm_law_flag = unlocks_camp_fire_future_dreams } } domicile = { remove_domicile_building = camp_fire_future_dreams } } if = { limit = { domicile = { OR = { has_domicile_building = camp_fire_nightly_debates has_domicile_construction = camp_fire_nightly_debates } } NOT = { has_realm_law_flag = unlocks_camp_fire_nightly_debates } } domicile = { remove_domicile_building = camp_fire_nightly_debates } } if = { limit = { domicile = { OR = { has_domicile_building = camp_fire_juicy_rumors has_domicile_construction = camp_fire_juicy_rumors } } NOT = { has_realm_law_flag = unlocks_camp_fire_juicy_rumors } } domicile = { remove_domicile_building = camp_fire_juicy_rumors } } if = { limit = { domicile = { OR = { has_domicile_building = proving_grounds_lockwagon has_domicile_construction = proving_grounds_lockwagon } } NOT = { has_realm_law_flag = unlocks_proving_grounds_lockwagon } } domicile = { remove_domicile_building = proving_grounds_lockwagon } } if = { limit = { domicile = { OR = { has_domicile_building = proving_grounds_martial_study has_domicile_construction = proving_grounds_martial_study } } NOT = { has_realm_law_flag = unlocks_proving_grounds_martial_study } } domicile = { remove_domicile_building = proving_grounds_martial_study } } if = { limit = { domicile = { OR = { has_domicile_building = proving_grounds_the_stick_game has_domicile_construction = proving_grounds_the_stick_game } } NOT = { has_realm_law_flag = unlocks_proving_grounds_the_stick_game } } domicile = { remove_domicile_building = proving_grounds_the_stick_game } } if = { limit = { domicile = { OR = { has_domicile_building = proving_grounds_bodyguard_drills has_domicile_construction = proving_grounds_bodyguard_drills } } NOT = { has_realm_law_flag = unlocks_proving_grounds_bodyguard_drills } } domicile = { remove_domicile_building = proving_grounds_bodyguard_drills } } if = { limit = { domicile = { OR = { has_domicile_building = camp_perimeter_extra_watch has_domicile_construction = camp_perimeter_extra_watch } } NOT = { has_realm_law_flag = unlocks_camp_perimeter_extra_watch } } domicile = { remove_domicile_building = camp_perimeter_extra_watch } } if = { limit = { domicile = { OR = { has_domicile_building = camp_perimeter_palisade has_domicile_construction = camp_perimeter_palisade } } NOT = { has_realm_law_flag = unlocks_camp_perimeter_palisade } } domicile = { remove_domicile_building = camp_perimeter_palisade } } if = { limit = { domicile = { OR = { has_domicile_building = camp_perimeter_ditch has_domicile_construction = camp_perimeter_ditch } } NOT = { has_realm_law_flag = unlocks_camp_perimeter_ditch } } domicile = { remove_domicile_building = camp_perimeter_ditch } } } } ################################################## # General LAAMP events # by Nick Meredith # 5000-5998 ################################################## # Poach for food ep3_laamps.5000 = { type = character_event title = ep3_laamps.5000.t desc = { desc = ep3_laamps.5000.desc first_valid = { triggered_desc = { trigger = { domicile = { provisions < provisions_privation_threshold_low } } desc = ep3_laamps.5000.provisionslow } desc = ep3_laamps.5000.provisionsok } desc = ep3_laamps.5000.ending } theme = landless_adventurer left_portrait = { character = root animation = thinking } right_portrait = { character = scope:hunter animation = personality_rational } lower_center_portrait = { character = scope:local_lord } cooldown = { years = 10 } trigger = { #Standard checks has_ep3_dlc_trigger = yes has_government = landless_adventurer_government is_available = yes #Ensure we have a hunter any_courtier = { can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } age > 16 } is_location_valid_for_travel_event_on_land = yes #Ensure we're in a place that's held by someone exists = location.county.holder is_vegetarian_trigger = no } weight_multiplier = { base = 1 modifier = { factor = 2 domicile = { provisions < provisions_privation_threshold_low } } modifier = { factor = 3 location = { has_building_or_higher = royal_forest_01 } } modifier = { factor = 1.5 location = { has_holding = yes } } } immediate = { random_courtier = { limit = { can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } age > 16 } save_scope_as = hunter } location.county.holder = { save_scope_as = local_lord } location = { save_scope_as = location } } #Petition them for rights to hunt option = { name = ep3_laamps.5000.a flavor = ep3_laamps.5000.a.tt duel = { target = scope:local_lord skill = diplomacy 40 = { #They agree desc = ep3_laamps.5000.a.success compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -49 } min = 5 send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5000.a.success left_icon = root right_icon = scope:local_lord domicile ?= { change_provisions = medium_provisions_gain } } } 40 = { #They agree, but insist on you paying desc = ep3_laamps.5000.a.failure compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } min = 5 send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5000.a.failure left_icon = root right_icon = scope:local_lord pay_short_term_gold = { target = scope:local_lord gold = 10 } domicile ?= { change_provisions = medium_provisions_gain } } } 10 = { #They refuse desc = ep3_laamps.5000.a.critfailure compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } min = 5 send_interface_toast = { type = event_toast_effect_bad title = ep3_laamps.5000.a.critfailure left_icon = root right_icon = scope:local_lord add_prestige = minor_prestige_loss add_stress = minor_stress_gain } } } stress_impact = { honest = miniscule_stress_impact_loss deceitful = medium_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 0.5 } } } #Risk it for the biscuit option = { name = ep3_laamps.5000.b scope:hunter = { duel = { value = decent_skill_rating skill = prowess 45 = { #They poach successfully desc = ep3_laamps.5000.b.success compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -49 } min = 5 root = { send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5000.b.success left_icon = root right_icon = scope:local_lord domicile ?= { change_provisions = medium_provisions_gain } } } } 45 = { #They are caught and fined desc = ep3_laamps.5000.b.failure compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } min = 5 root = { send_interface_toast = { type = event_toast_effect_bad title = ep3_laamps.5000.b.failure left_icon = root right_icon = scope:local_lord pay_short_term_gold = { target = scope:local_lord gold = 10 } domicile ?= { change_provisions = minor_provisions_gain } } } } 10 = { #They are caught and imprisoned! desc = ep3_laamps.5000.b.critfailure compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } min = 1 root = { send_interface_toast = { type = event_toast_effect_bad title = ep3_laamps.5000.b.critfailure left_icon = root right_icon = scope:local_lord scope:local_lord = { imprison = { target = scope:hunter type = dungeon } } } } } } } stress_impact = { honest = medium_stress_impact_gain deceitful = miniscule_stress_impact_loss } ai_chance = { base = 100 ai_value_modifier = { ai_greed = 1 } } } #Forage for berries n stuff option = { name = ep3_laamps.5000.c random_list = { 10 = { #You find provisions desc = ep3_laamps.5000.c.success send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5000.c.success left_icon = root right_icon = scope:hunter domicile ?= { change_provisions = { value = { miniscule_provisions_gain minor_provisions_gain } } } } } 5 = { #You don't find provisions desc = ep3_laamps.5000.c.failure send_interface_toast = { type = event_toast_effect_bad title = ep3_laamps.5000.c.failure left_icon = root right_icon = scope:hunter add_stress = minor_stress_gain add_character_modifier = { modifier = ep3_supply_issues_modifier years = 5 } } } } ai_chance = { base = 100 ai_value_modifier = { ai_greed = -0.5 } } } } # Meet a wandering priest ep3_laamps.5005 = { type = character_event title = ep3_laamps.5005.t desc = { desc = ep3_laamps.5005.desc first_valid = { triggered_desc = { trigger = { scope:priest.faith = root.faith } desc = ep3_laamps.5005.samefaith } desc = ep3_laamps.5005.difffaith } } theme = landless_adventurer override_background = { reference = bp1_bonfire } left_portrait = { character = root animation = shock } right_portrait = { character = scope:priest animation = obsequious_bow } cooldown = { years = 10 } trigger = { #Standard checks has_ep3_dlc_trigger = yes has_government = landless_adventurer_government is_location_valid_for_travel_event_on_land = yes #Ensure we're in a place that's held by someone exists = location.county.holder } weight_multiplier = { base = 1 modifier = { factor = 3 OR = { faith = { has_doctrine = tenet_mendicant_preachers } location.county.holder.faith = { has_doctrine = tenet_mendicant_preachers } } } } immediate = { create_character = { template = mendicant_mystic_character gender_female_chance = root_soldier_female_chance age = { 35 65 } location = root.location culture = root.location.county.culture faith = root.location.county.faith save_scope_as = priest after_creation = { add_character_flag = created } } location.county.holder = { save_scope_as = location_holder } location = { save_scope_as = location } # Plus give 'em a nickname. hidden_effect = { scope:priest = { assign_random_nickname_effect = yes } } } #Ask him to join your followers option = { name = ep3_laamps.5005.a duel = { target = scope:priest skill = diplomacy 50 = { #They agree desc = ep3_laamps.5005.a.success compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -49 } min = 5 send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5005.a.success left_icon = root right_icon = scope:priest add_courtier = scope:priest if = { limit = { scope:priest.faith = root.faith } add_character_modifier = { modifier = ep3_priest_friend_same_modifier years = 5 } } else = { add_character_modifier = { modifier = ep3_priest_friend_different_modifier years = 5 } } } } 50 = { #They don't want to stay desc = ep3_laamps.5005.a.failure compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } min = 5 send_interface_toast = { type = event_toast_effect_bad title = ep3_laamps.5005.a.failure left_icon = root right_icon = scope:priest add_stress = miniscule_stress_gain } } } stress_impact = { generous = miniscule_stress_impact_loss callous = medium_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 0.5 } } } #Invite him to sit and stay a night option = { name = ep3_laamps.5005.b if = { limit = { NOT = { has_trait = lifestyle_traveler } } add_trait = lifestyle_traveler add_trait_xp = { trait = lifestyle_traveler track = travel value = { integer_range = { min = 10 max = 25 } } } } else = { add_trait_xp = { trait = lifestyle_traveler track = travel value = { integer_range = { min = 10 max = 25 } } } } stress_impact = { paranoid = minor_stress_impact_gain trusting = miniscule_stress_impact_loss } ai_chance = { base = 100 ai_value_modifier = { ai_compassion = 1 } } } #Turn him away option = { name = ep3_laamps.5005.c trigger = { scope:priest.faith = root.faith } flavor = ep3_laamps.5005.c.tt every_courtier = { limit = { faith != scope:priest.faith } custom = every_non_faith_follower add_opinion = { modifier = pleased_opinion target = root opinion = 15 } } add_character_modifier = { modifier = ep3_ungodly_hospitality_modifier years = 5 } ai_chance = { base = 100 ai_value_modifier = { ai_honor = -1 } } } #Turn him away, since he's a heretic option = { name = ep3_laamps.5005.d trigger = { scope:priest.faith != root.faith } add_piety = medium_piety_value add_character_modifier = { modifier = ep3_inflexible_worshipper_modifier years = 10 } ai_chance = { base = 100 ai_value_modifier = { ai_zeal = 1 } } } after = { scope:priest ?= { silent_disappearance_ai_if_created_effect = yes } } } # The rough life begins to hurt ep3_laamps.5010 = { type = character_event title = ep3_laamps.5010.t desc = ep3_laamps.5010.desc theme = landless_adventurer left_portrait = { character = root animation = thinking } right_portrait = { character = scope:follower animation = pain } cooldown = { years = 10 } trigger = { #Standard checks has_ep3_dlc_trigger = yes has_government = landless_adventurer_government age < 65 #Just for loc tonality is_location_valid_for_travel_event_on_land = yes any_courtier = { is_valid_active_event_recurrer_trigger = { LIEGE = ROOT } is_adult = yes # is an adult age < 65 # but not too old, so wincing in pain isn't just from being real old } } immediate = { random_courtier = { limit = { is_valid_active_event_recurrer_trigger = { LIEGE = ROOT } is_adult = yes # is an adult age < 65 # but not too old, so wincing in pain isn't just from being real old } save_scope_as = follower } location = { save_scope_as = location } if = { limit = { domicile = { has_domicile_building = camp_main_01 } } save_scope_value_as = { name = gold_cost value = { value = camp_main_02_domicile_building_gold_cost_value multiply = 0.5 ceiling = yes } } } else_if = { limit = { domicile = { has_domicile_building = camp_main_02 } } save_scope_value_as = { name = gold_cost value = { value = camp_main_03_domicile_building_gold_cost_value multiply = 0.5 ceiling = yes } } } else = { save_scope_value_as = { name = gold_cost value = { value = camp_main_04_domicile_building_gold_cost_value multiply = 0.5 ceiling = yes } } } } #Buy some beds at an inn for the night option = { name = ep3_laamps.5010.a remove_short_term_gold = minor_gold_value add_character_modifier = { modifier = ep3_rested_and_refreshed_modifier years = 5 } every_courtier = { custom = every_follower_custom add_opinion = { modifier = grateful_opinion target = root opinion = 15 } add_character_modifier = { modifier = ep3_rested_and_refreshed_modifier years = 5 } } stress_impact = { base = medium_stress_impact_loss generous = miniscule_stress_impact_loss greedy = medium_stress_impact_gain compassionate = miniscule_stress_impact_loss callous = medium_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_compassion = 1 } } } #Build a Pavilion upgrade at a discount option = { name = ep3_laamps.5010.b trigger = { NOT = { domicile = { has_domicile_building = camp_main_04 } } gold >= scope:gold_cost } show_as_unavailable = { NOT = { domicile = { has_domicile_building = camp_main_04 } } gold <= scope:gold_cost } custom_tooltip = ep3_laamps.5010.b.tt remove_short_term_gold = scope:gold_cost domicile = { if = { limit = { has_domicile_building_or_higher = camp_main_01 } switch = { trigger = has_domicile_building camp_main_01 = { add_domicile_building = camp_main_02 } camp_main_02 = { add_domicile_building = camp_main_03 } camp_main_03 = { add_domicile_building = camp_main_04 } } } } stress_impact = { ambitious = miniscule_stress_impact_loss content = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 } } } #Soldier on option = { name = ep3_laamps.5010.c random_list = { 10 = { #It works out desc = ep3_laamps.5010.c.success modifier = { add = 2 scope:location = { OR = { terrain = farmlands terrain = plains terrain = oasis terrain = forest } } } send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5010.c.success left_icon = root right_icon = scope:follower add_stress = minor_stress_loss } } 5 = { #It doesn't work out desc = ep3_laamps.5010.c.failure modifier = { add = 5 age > 35 } modifier = { add = 5 age > 50 } modifier = { add = 2 scope:location = { OR = { terrain = desert terrain = mountains terrain = desert_mountains terrain = wetlands } } } send_interface_toast = { type = event_toast_effect_bad title = ep3_laamps.5010.c.failure left_icon = root right_icon = scope:hunter add_stress = minor_stress_gain add_character_modifier = { modifier = ep3_cricked_neck_modifier years = 5 } } } } ai_chance = { base = 100 ai_value_modifier = { ai_greed = 1 } } } } # Offer a life to hardened fighters ep3_laamps.5015 = { type = character_event title = ep3_laamps.5015.t desc = ep3_laamps.5015.desc theme = landless_adventurer left_portrait = { character = root animation = interested } right_portrait = { character = scope:knight animation = beg } artifact = { target = scope:newly_created_artifact position = lower_center_portrait } cooldown = { years = 35 } trigger = { #Standard checks has_ep3_dlc_trigger = yes has_government = landless_adventurer_government is_location_valid_for_travel_event_on_land = yes } weight_multiplier = { base = 1 modifier = { factor = 2 domicile = { provisions > provisions_threshold_good_value } } modifier = { factor = 2 location.county = { county_control < full_county_control } } } immediate = { location = { save_scope_as = location } if = { limit = { any_pool_character = { province = root.location is_available_ai_adult = yes NOT = { has_any_good_relationship_with_root_trigger = yes } can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } } } random_pool_character = { province = root.location limit = { is_available_ai_adult = yes NOT = { has_any_good_relationship_with_root_trigger = yes } can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } } save_scope_as = knight } } else = { create_character = { template = honorable_soldier_character location = root.location culture = location.culture faith = location.faith gender_female_chance = root_soldier_female_chance dynasty = none save_scope_as = knight after_creation = { add_character_flag = created } } } hidden_effect = { if = { limit = { OR = { has_trait = callous has_trait = sadistic has_trait = gallowsbait } } scope:knight = { create_artifact_brooch_effect = { OWNER = scope:knight SMITH = scope:knight } add_gold = { 15 35 } } scope:newly_created_artifact = { add_artifact_modifier = artifact_prowess_2_modifier add_artifact_modifier = artifact_knight_effectiveness_2_modifier set_artifact_rarity = masterwork } } scope:knight = { change_current_weight = -100 # Plus give 'em a nickname. assign_random_nickname_effect = yes } } } #Rob him option = { name = ep3_laamps.5015.a trigger = { OR = { has_trait = callous has_trait = sadistic has_trait = gallowsbait } } flavor = ep3_laamps.5015.a.tt scope:knight = { pay_short_term_gold = { target = root gold = { value = scope:knight.gold min = 5 } } } scope:newly_created_artifact = { set_owner = root } if = { limit = { has_trait = gallowsbait } add_trait_xp = { trait = gallowsbait track = bandit value = { integer_range = { min = 5 max = 15 } } } } else = { add_trait = gallowsbait add_trait_xp = { trait = gallowsbait track = bandit value = { integer_range = { min = 5 max = 15 } } } } stress_impact = { base = miniscule_stress_impact_loss compassionate = medium_stress_impact_gain just = medium_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_greed = 1 ai_compassion = -1 } } } #Bring 'em all option = { name = ep3_laamps.5015.b trigger = { maa_regiments_count >= 1 } domicile = { change_provisions = minor_provisions_loss } reinforce_soldiers_regiment_effect = yes add_courtier = scope:knight scope:knight = { set_knight_status = force } remove_short_term_gold = { 10 30 } stress_impact = { generous = miniscule_stress_impact_loss greedy = medium_stress_impact_gain compassionate = miniscule_stress_impact_loss callous = medium_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_compassion = 1 } } } #Hire the fella as a knight option = { name = ep3_laamps.5015.c add_courtier = scope:knight scope:knight = { set_knight_status = force } stress_impact = { generous = miniscule_stress_impact_loss paranoid = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 } } } #Offer them a place to rest, but only that option = { name = ep3_laamps.5015.d domicile = { change_provisions = microscopic_provisions_loss } random = { chance = 25 send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5015.c.success left_icon = root add_character_modifier = { modifier = ep3_friend_to_old_soldiers_modifier years = 30 } } } stress_impact = { greedy = miniscule_stress_impact_loss generous = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_greed = 1 } } } after = { scope:knight = { silent_disappearance_ai_if_created_effect = yes } } } # Learn new local recipes ep3_laamps.5020 = { type = character_event title = ep3_laamps.5020.t desc = ep3_laamps.5020.desc theme = landless_adventurer left_portrait = { character = root animation = thinking } right_portrait = { character = scope:cook animation = personality_compassionate } cooldown = { years = 10 } trigger = { #Standard checks has_ep3_dlc_trigger = yes has_government = landless_adventurer_government is_location_valid_for_travel_event_on_land = yes culture != location.culture any_courtier = { is_available_ai_adult = yes count >= 1 } culture = { cultural_acceptance = { target = root.location.culture value <= 75 } } } weight_multiplier = { base = 1 modifier = { factor = 2 domicile = { provisions < provisions_threshold_good_value } } } immediate = { location = { save_scope_as = location } location.culture = { save_scope_as = local_culture } culture = { save_scope_as = culture } random_courtier = { limit = { is_available_ai_adult = yes } save_scope_as = cook } save_scope_value_as = { name = food_range value = { integer_range = { min = 1 max = 20 } } } } #Suggest a *special* new addition option = { name = ep3_laamps.5020.a trigger = { has_trait = cannibal } flavor = ep3_laamps.5020.a.tt random = { chance = 50 send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5020.a.tt left_icon = root right_icon = scope:cook scope:cook = { add_secret = { type = secret_cannibal } random_secret = { type = secret_cannibal reveal_to = root } add_opinion = { target = root modifier = impressed_opinion opinion = 40 } } random_secret = { type = secret_cannibal reveal_to = scope:cook } } } add_character_modifier = { modifier = ep3_new_tastes_cannibal_modifier years = 10 } stress_impact = { base = medium_stress_impact_loss } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 } } } #Suggest fusion cuisine option = { name = ep3_laamps.5020.b trigger = { custom_tooltip = { text = ep3_laamps.5020.tt OR = { has_trait = lifestyle_traveler has_trait = eccentric has_trait = gluttonous } } } show_as_unavailable = { always = yes } trait = lifestyle_traveler trait = eccentric trait = gluttonous domicile = { change_provisions = medium_provisions_gain } add_character_modifier = { modifier = ep3_expanded_culinary_horizons_modifier years = 15 } every_courtier = { custom = every_follower_custom add_character_modifier = { modifier = ep3_new_tastes_modifier years = 10 } } stress_impact = { base = minor_stress_impact_loss gluttonous = medium_stress_impact_loss inappetetic = medium_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_greed = 1 } } } #Try some of this local cuisine option = { name = ep3_laamps.5020.c random_list = { 45 = { desc = ep3_laamps.5020.c.success modifier = { #This is for fuzzying up the random list so it randomises it a bit add = scope:food_range } send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5020.c.success left_icon = root domicile = { change_provisions = medium_provisions_gain } add_character_modifier = { modifier = ep3_new_tastes_modifier years = 10 } scope:cook = { add_opinion = { target = root modifier = pleased_opinion opinion = 15 } } culture = { change_cultural_acceptance = { target = scope:local_culture value = miniscule_positive_culture_acceptance desc = cultural_acceptance_gain_food_acceptance } } } } 55 = { desc = ep3_laamps.5020.c.failure send_interface_toast = { type = event_toast_effect_bad title = ep3_laamps.5020.c.failure left_icon = root add_stress = minor_stress_gain } } } stress_impact = { gluttonous = minor_stress_impact_loss arrogant = minor_stress_impact_gain humble = miniscule_stress_impact_loss inappetetic = medium_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_compassion = 1 } } } #Refuse to try it option = { name = ep3_laamps.5020.d random = { chance = 30 modifier = { is_ai = yes add = -29 } send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5020.d.tt left_icon = root give_nickname = nick_the_narrow_minded } } stress_impact = { generous = miniscule_stress_impact_loss paranoid = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 } } } } scripted_trigger 5025_can_spawn_contract_trigger = { can_create_criminal_contract_trigger = { LAAMP = $LAAMP$ EMPLOYER = $EMPLOYER$ } can_create_diplomacy_contract_trigger = { LAAMP = $LAAMP$ EMPLOYER = $EMPLOYER$ } can_create_hireling_contract_trigger = { LAAMP = $LAAMP$ EMPLOYER = $EMPLOYER$ } can_create_justicar_contract_trigger = { LAAMP = $LAAMP$ EMPLOYER = $EMPLOYER$ } can_create_learning_contract_trigger = { LAAMP = $LAAMP$ EMPLOYER = $EMPLOYER$ } can_create_intrigue_contract_trigger = { LAAMP = $LAAMP$ EMPLOYER = $EMPLOYER$ } can_create_stewardship_contract_trigger = { LAAMP = $LAAMP$ EMPLOYER = $EMPLOYER$ } can_create_transport_contract_trigger = { LAAMP = $LAAMP$ EMPLOYER = $EMPLOYER$ } } # What is your purpose? ep3_laamps.5025 = { type = character_event title = ep3_laamps.5025.t desc = ep3_laamps.5025.desc theme = landless_adventurer left_portrait = { character = root animation = thinking } cooldown = { years = 30 } trigger = { #Standard checks has_ep3_dlc_trigger = yes has_government = landless_adventurer_government } immediate = { if = { limit = { exists = location.barony.holder } location.barony.holder = { save_scope_as = local_lord save_scope_as = bg_override_char #Find potential employers if = { limit = { 5025_can_spawn_contract_trigger = { LAAMP = root EMPLOYER = scope:local_lord } } add_to_temporary_list = potential_employers_list } every_vassal_or_below ?= { limit = { save_temporary_scope_as = vassal_check 5025_can_spawn_contract_trigger = { LAAMP = root EMPLOYER = scope:vassal_check } } add_to_temporary_list = potential_contract_employers } } #Can we _actually_ spawn two contracts? if = { limit = { any_in_list = { list = potential_contract_employers count >= 2 } } save_scope_as = spawn_task_contract_option_available } } } #I wanna be landed! option = { name = ep3_laamps.5025.a add_character_modifier = { modifier = ep3_lust_for_land_modifier years = 35 } stress_impact = { greedy = miniscule_stress_impact_loss ambitious = minor_stress_impact_loss humble = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 has_trait = humble } ai_value_modifier = { ai_greed = 1 } } } #I like being landless :) option = { name = ep3_laamps.5025.b flavor = ep3_laamps.5025.b.flavor if = { limit = { NOT = { has_trait = lifestyle_traveler } } add_trait = lifestyle_traveler add_trait_xp = { trait = lifestyle_traveler track = travel value = { integer_range = { min = 10 max = 30 } } } } else = { add_trait_xp = { trait = lifestyle_traveler track = travel value = { integer_range = { min = 10 max = 30 } } } } #Can we _actually_ spawn contracts... if = { limit = { exists = scope:spawn_task_contract_option_available } add_prestige = minor_prestige_gain custom_tooltip = ep3_laamps.5025.b.tt contract_passive_spawn_effect = { SPAWN_CONTRACTS = 2 } } else = { add_prestige = medium_prestige_gain } stress_impact = { ambitious = medium_stress_impact_gain humble = minor_stress_impact_loss } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = -1 } } } #It's best to keep options open option = { name = ep3_laamps.5025.c flavor = ep3_laamps.5025.c.flavor if = { limit = { NOT = { has_trait = flexible_leader } } random = { chance = 65 send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5025.c.toast left_icon = root add_trait = flexible_leader } } } else = { add_stress = medium_stress_loss } domicile = { change_provisions = medium_provisions_gain } stress_impact = { fickle = medium_stress_impact_loss stubborn = medium_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_rationality = 1 } } } } # Local tavern owner disrespects you ep3_laamps.5030 = { type = character_event title = ep3_laamps.5030.t desc = ep3_laamps.5030.desc theme = landless_adventurer left_portrait = { character = root animation = anger } right_portrait = { character = scope:innkeeper animation = dismissal } cooldown = { years = 10 } override_background = { reference = tavern } trigger = { #Standard checks has_ep3_dlc_trigger = yes has_government = landless_adventurer_government is_location_valid_for_travel_event_on_land = yes } weight_multiplier = { base = 1 modifier = { factor = 2 domicile = { provisions < provisions_threshold_good_value } } } immediate = { location = { save_scope_as = location } if = { limit = { any_pool_character = { province = root.location is_available_ai_adult = yes NOT = { has_any_good_relationship_with_root_trigger = yes } } } random_pool_character = { province = root.location limit = { is_available_ai_adult = yes NOT = { has_any_good_relationship_with_root_trigger = yes } } save_scope_as = innkeeper } } else = { create_character = { template = servant_character location = root.location culture = location.culture faith = location.faith gender_female_chance = { if = { limit = { root.faith = { has_doctrine = doctrine_gender_male_dominated } } add = 100 } else_if = { limit = { root.faith = { has_doctrine = doctrine_gender_female_dominated } } add = 0 } else = { add = 50 } } dynasty = none save_scope_as = innkeeper after_creation = { add_character_flag = created } } } } #Ah, forget about it, give me a drink option = { name = ep3_laamps.5030.a trigger = { has_trait = drunkard } remove_short_term_gold = tiny_gold_value add_character_modifier = { modifier = legend_hangover_modifier years = 3 } stress_impact = { base = major_stress_impact_loss } ai_chance = { base = 100 ai_value_modifier = { ai_greed = 1 } } } #Don't you know who I am? option = { name = ep3_laamps.5030.b trigger = { dynasty = { dynasty_prestige_level >= medium_dynasty_prestige_level } } reason = ep3_laamps.5030.a.tt flavor = ep3_laamps.5030.b.tt add_internal_flag = special add_prestige = medium_prestige_gain add_character_modifier = { modifier = ep3_comfortable_bed_modifier years = 10 } every_courtier = { custom = every_follower_custom add_opinion = { target = root modifier = pleased_opinion opinion = 35 } } stress_impact = { base = minor_stress_impact_loss arrogant = minor_stress_impact_loss humble = medium_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 } } } #Threaten them option = { name = ep3_laamps.5030.c add_internal_flag = dangerous add_dread = medium_dread_gain random_list = { 55 = { #They hand it over desc = ep3_laamps.5030.c.success send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5030.c.success left_icon = root right_icon = scope:innkeeper remove_short_term_gold = tiny_gold_value add_character_modifier = { modifier = ep3_comfortable_bed_modifier years = 10 } } } 25 = { #You have to threaten them further desc = ep3_laamps.5030.c.failure send_interface_toast = { type = event_toast_effect_bad title = ep3_laamps.5030.c.failure left_icon = root right_icon = scope:innkeeper if = { limit = { has_trait = gallowsbait } add_trait_xp = { trait = gallowsbait track = bandit value = { integer_range = { min = 10 max = 20 } } } } else = { add_trait = gallowsbait add_trait_xp = { trait = gallowsbait track = bandit value = { integer_range = { min = 10 max = 20 } } } } } } 5 = { #It goes a little too far desc = ep3_laamps.5030.c.critfailure send_interface_toast = { type = event_toast_effect_bad title = ep3_laamps.5030.c.critfailure left_icon = root right_icon = scope:innkeeper scope:innkeeper = { death = { killer = ROOT death_reason = death_murder } } add_secret = { type = secret_murder target = scope:innkeeper } if = { limit = { has_trait = gallowsbait } add_trait_xp = { trait = gallowsbait track = marauder value = { integer_range = { min = 25 max = 40 } } } } else = { add_trait = gallowsbait add_trait_xp = { trait = gallowsbait track = marauder value = { integer_range = { min = 25 max = 40 } } } } } } } stress_impact = { generous = miniscule_stress_impact_loss paranoid = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_honor = -1 } } } #Try to barter option = { name = ep3_laamps.5030.d duel = { target = scope:innkeeper skill = diplomacy 50 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -49 } desc = ep3_laamps.5030.d.success min = 5 send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5030.d.success left_icon = root right_icon = scope:innkeeper remove_short_term_gold = minor_gold_value add_character_modifier = { modifier = ep3_comfortable_bed_modifier years = 10 } } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } desc = ep3_laamps.5030.d.failure min = 5 send_interface_toast = { type = event_toast_effect_bad title = ep3_laamps.5030.d.failure left_icon = root right_icon = scope:innkeeper add_stress = minor_stress_gain } } } ai_chance = { base = 100 ai_value_modifier = { ai_compassion = 1 } } } #Take the insult option = { name = tournament_events.0161.c stress_impact = { base = minor_stress_gain arrogant = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_compassion = 1 } } } after = { scope:innkeeper = { silent_disappearance_ai_if_created_effect = yes } } } # Hire a local guide ep3_laamps.5035 = { type = character_event title = ep3_laamps.5035.t desc = ep3_laamps.5035.desc theme = landless_adventurer override_background = { reference = terrain } left_portrait = { character = root animation = chancellor } right_portrait = { character = scope:guide animation = scheme } artifact = { target = scope:newly_created_map position = lower_right_portrait } artifact = { trigger = { exists = scope:random_artifact } target = scope:random_artifact position = lower_left_portrait } cooldown = { years = 50 } trigger = { static_group_filter = { group = ep3_laamps.5035 match = 0.75 } #Standard checks has_ep3_dlc_trigger = yes has_government = landless_adventurer_government is_location_valid_for_travel_event_on_land = yes } weight_multiplier = { base = 1 modifier = { factor = 2 location = { OR = { terrain = mountains terrain = wetlands terrain = desert_mountains terrain = jungle } } } } immediate = { location = { save_scope_as = location } if = { #Grab a random, inexpensive artifact if you have it limit = { any_character_artifact = { NOT = { has_artifact_modifier = artifact_guide_map_modifier } } } random_character_artifact = { limit = { NOT = { has_artifact_modifier = artifact_guide_map_modifier } } weight = { base = 1 modifier = { rarity = common add = 2 } } save_scope_as = random_artifact } } if = { limit = { any_pool_character = { province = root.location is_available_ai_adult = yes NOT = { has_any_good_relationship_with_root_trigger = yes } } } random_pool_character = { province = root.location limit = { is_available_ai_adult = yes NOT = { has_any_good_relationship_with_root_trigger = yes } } save_scope_as = guide } } else = { create_character = { template = anatolian_guide_character location = root.location culture = location.culture faith = location.faith gender_female_chance = 50 dynasty = none save_scope_as = guide after_creation = { add_character_flag = created } } # Plus give 'em a nickname. hidden_effect = { scope:guide = { assign_random_nickname_effect = yes } } } hidden_effect = { scope:guide = { create_artifact = { name = guide_map description = guide_map_desc modifier = artifact_guide_map_modifier type = miscellaneous visuals = pocket_map history = { type = created_before_history actor = scope:guide } save_scope_as = newly_created_map } } scope:newly_created_map = { set_artifact_rarity = masterwork set_max_durability = 25 } } } #Recruit them permanently option = { name = ep3_laamps.5035.a pay_short_term_gold = { target = scope:guide gold = medium_gold_value } add_courtier = scope:guide court_position_grant_effect = { EMPLOYER = root POS = travel_leader CANDIDATE = scope:guide } stress_impact = { trusting = minor_stress_impact_loss paranoid = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_greed = -1 } } } #Buy maps off them option = { name = ep3_laamps.5035.b pay_short_term_gold = { target = scope:guide gold = medium_gold_value } scope:newly_created_map = { set_owner = root } stress_impact = { trusting = minor_stress_impact_gain paranoid = minor_stress_impact_loss } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = -1 } } } #Trust their guidance option = { name = ep3_laamps.5035.c pay_short_term_gold = { target = scope:guide gold = tiny_gold_value } random_list = { 60 = { #The guide's info is correct desc = ep3_laamps.5035.c.success send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5035.c.success left_icon = root right_icon = scope:guide add_character_modifier = { modifier = ep3_well_guided_modifier years = 10 } } } 40 = { #The guide's info is sketchy desc = ep3_laamps.5035.c.failure send_interface_toast = { type = event_toast_effect_bad title = ep3_laamps.5035.c.failure left_icon = root right_icon = scope:guide add_character_modifier = { modifier = ep3_sketchy_guides_modifier years = 3 } } } 10 = { #The guide's info leads you into a trap! desc = ep3_laamps.5035.c.critfailure send_interface_toast = { type = event_toast_effect_bad title = ep3_laamps.5035.c.critfailure left_icon = root right_icon = scope:guide increase_wounds_no_death_effect = { REASON = fight } remove_short_term_gold = minor_gold_value scope:random_artifact ?= { set_owner = scope:guide } } } } stress_impact = { generous = miniscule_stress_impact_loss paranoid = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_honor = -1 } } } #Reject them option = { name = ep3_laamps.5035.d flavor = ep3_laamps.5035.d.tt random = { chance = 45 send_interface_toast = { type = event_toast_effect_bad title = ep3_laamps.5035.d.toast left_icon = root domicile = { change_provisions = minor_provisions_loss } } } ai_chance = { base = 100 ai_value_modifier = { ai_greed = 1 } } } } # Scouting reveals some potential hidden treasures ep3_laamps.5040 = { type = character_event title = ep3_laamps.5040.t desc = ep3_laamps.5040.desc theme = landless_adventurer left_portrait = { character = root animation = jockey_idle camera = camera_event_horse_very_left } cooldown = { years = 10 } override_background = { reference = ep3_campfire } trigger = { #Standard checks has_ep3_dlc_trigger = yes has_government = landless_adventurer_government is_location_valid_for_travel_event_on_land = yes } immediate = { location = { save_scope_as = location } if = { limit = { any_pool_character = { province = root.location is_available_ai_adult = yes NOT = { has_any_good_relationship_with_root_trigger = yes } } } random_pool_character = { province = root.location limit = { is_available_ai_adult = yes NOT = { has_any_good_relationship_with_root_trigger = yes } } save_scope_as = merchant } } else = { create_character = { template = anatolian_guide_character location = root.location culture = location.culture faith = location.faith dynasty = none save_scope_as = merchant after_creation = { add_character_flag = created } } # Plus give 'em a nickname. hidden_effect = { scope:merchant = { assign_random_nickname_effect = yes } } } } #Go searching in the ruins option = { name = ep3_laamps.5040.a random_list = { 37 = { #You uncover a dusty sword desc = ep3_laamps.5040.a.bigsuccess random_dummy_gender_effect = yes create_artifact_weapon_effect = { OWNER = root CREATOR = scope:dummy_gender SET_WEAPON_TYPE = flag:artifact_weapon_type_sword } send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5040.a.bigsuccess left_icon = root right_icon = scope:newly_created_artifact custom_tooltip = ep3_laamps.5040.a.bigsuccess.tt } } 64 = { #You discover a small trinket desc = ep3_laamps.5040.a.success generate_trinket_effect = { TRINKET_RECEIVER = root TRINKET_GIVER = root GRAB_ALL_TRINKETS = yes HISTORY_TYPE = discovered } send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5040.a.success left_icon = root right_icon = scope:new_trinket custom_tooltip = ep3_laamps.5040.a.success.tt } } 43 = { #You come up with nothing desc = ep3_laamps.5040.a.failure send_interface_toast = { type = event_toast_effect_bad title = ep3_laamps.5040.a.failure left_icon = root custom_tooltip = ep3_laamps.5040.a.failure.tt } } } stress_impact = { trusting = miniscule_stress_impact_loss paranoid = minor_stress_impact_gain brave = miniscule_stress_impact_loss craven = medium_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 } } } #Buy supplies option = { name = ep3_laamps.5040.b domicile = { change_provisions = { value = { minor_provisions_gain medium_provisions_gain } } } stress_impact = { greedy = minor_stress_impact_gain generous = minor_stress_impact_loss } ai_chance = { base = 100 ai_value_modifier = { ai_greed = -1 } } } after = { scope:merchant = { silent_disappearance_ai_if_created_effect = yes } } } # Meet local lord ep3_laamps.5045 = { type = character_event title = ep3_laamps.5045.t desc = ep3_laamps.5045.desc theme = landless_adventurer left_portrait = { character = root animation = thinking } right_portrait = { character = scope:local_lord animation = scheme } cooldown = { years = 10 } override_background = { reference = council_chamber } trigger = { #Standard checks has_ep3_dlc_trigger = yes has_government = landless_adventurer_government is_location_valid_for_travel_event_on_land = yes location.barony.holder ?= { is_available_ai_adult = yes highest_held_title_tier <= root.prestige_level } NOT = { #Just ensure _you_ aren't a bandit for loc reasons has_trait_xp = { trait = gallowsbait track = bandit value >= 30 } } } immediate = { location = { save_scope_as = location } location.barony = { save_scope_as = location_title } location.barony.holder = { save_scope_as = local_lord save_scope_as = bg_override_char #Find potential employers if = { limit = { 5025_can_spawn_contract_trigger = { LAAMP = root EMPLOYER = scope:local_lord } } add_to_temporary_list = potential_employers_list } every_vassal_or_below ?= { limit = { save_temporary_scope_as = vassal_check 5025_can_spawn_contract_trigger = { LAAMP = root EMPLOYER = scope:vassal_check } } add_to_temporary_list = potential_contract_employers } } #Can we _actually_ spawn two contracts? if = { limit = { any_in_list = { list = potential_contract_employers count >= 2 } } save_scope_as = spawn_task_contract_option_available } if = { limit = { scope:local_lord = { highest_held_title_tier > tier_duchy any_held_title = { title_tier = county is_landless_type_title = no count >= 1 } } } scope:local_lord = { ordered_county = { limit = { tier = tier_county holder = scope:local_lord is_landless_type_title = no } #Least developed county as a rough approximation of backwaters order_by = { value = development_level multiply = -1 } save_scope_as = lord_title } } } } #Ask for land option = { name = ep3_laamps.5045.a trigger = { scope:local_lord = { highest_held_title_tier > tier_duchy any_held_title = { title_tier = county count >= 1 } } prestige_level >= 2 has_character_modifier = ep3_lust_for_land_modifier } custom_tooltip = ep3_laamps.5045.a.tt add_internal_flag = special duel = { target = scope:local_lord skill = diplomacy 300 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -49 } desc = ep3_laamps.5045.a.success min = 5 send_interface_toast = { type = event_toast_effect_good title = ep3_laamps.5045.a.success left_icon = root right_icon = scope:local_lord create_title_and_vassal_change = { type = granted save_scope_as = change add_claim_on_loss = yes } change_liege = { liege = scope:local_lord change = scope:change } scope:lord_title = { change_title_holder = { holder = root change = scope:change } } resolve_title_and_vassal_change = scope:change scope:local_lord = { add_hook = { target = root type = loyalty_hook } } } } 70 = { compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } desc = ep3_laamps.5045.a.failure min = 5 send_interface_toast = { type = event_toast_effect_bad title = ep3_laamps.5045.a.failure left_icon = root right_icon = scope:local_lord } } } stress_impact = { ambitious = miniscule_stress_impact_loss content = minor_stress_impact_gain diligent = miniscule_stress_impact_loss lazy = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 } } } #Ask for gold option = { name = ep3_laamps.5045.b add_gold = { 5 20 } scope:local_lord = { add_hook = { target = root type = favor_hook } } stress_impact = { greedy = miniscule_stress_impact_loss } ai_chance = { base = 100 ai_value_modifier = { ai_greed = 1 } } } #Ask for provisions option = { name = ep3_laamps.5045.c domicile = { change_provisions = { value = { miniscule_provisions_gain minor_provisions_gain } } } scope:local_lord = { add_hook = { target = root type = favor_hook } } stress_impact = { ambitious = minor_stress_impact_gain content = miniscule_stress_impact_loss greedy = miniscule_stress_impact_loss } ai_chance = { base = 100 ai_value_modifier = { ai_greed = 1 } } } #Ask for work option = { name = ep3_laamps.5045.d trigger = { exists = scope:spawn_task_contract_option_available } reverse_add_opinion = { target = scope:local_lord modifier = impressed_opinion opinion = 40 } custom_tooltip = ep3_laamps.5025.b.tt #Re-used contract_passive_spawn_effect = { SPAWN_CONTRACTS = 2 } stress_impact = { ambitious = miniscule_stress_impact_loss content = minor_stress_impact_gain brave = miniscule_stress_impact_loss craven = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_honor = 1 } } } } ################################################## # Hereweard embarks on his destiny # by Nick Meredith # 5999-6999 ################################################## # Hereward hears of trouble in England ep3_laamps.5999 = { type = character_event title = ep3_laamps.5999.t desc = ep3_laamps.5999.desc theme = realm left_portrait = { character = root animation = interested } lower_right_portrait = scope:william lower_center_portrait = scope:harald lower_left_portrait = scope:harold trigger = { has_ep3_dlc_trigger = yes } immediate = { character:140 = { if = { limit = { is_alive = yes } save_scope_as = william } } character:122 = { if = { limit = { is_alive = yes } save_scope_as = harold } } character:102531 = { if = { limit = { is_alive = yes } save_scope_as = harald } } character:364 = { if = { limit = { is_alive = yes } save_scope_as = flanders #I can't be bothered spelling Boujewijingjn ok } } character:114 = { save_scope_as = edward } location = { save_scope_as = location } } option = { #Let's wait and see name = ep3_laamps.5999.a add_character_modifier = { modifier = ep3_foreign_affairs_modifier years = 5 } stress_impact = { ambitious = miniscule_stress_impact_loss } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 ai_energy = 1 } } } option = { #England concerns me no longer name = ep3_laamps.5999.b custom_tooltip = ep3_laamps.5999.b.tt contract_passive_spawn_effect = { SPAWN_CONTRACTS = 1 } stress_impact = { ambitious = minor_stress_impact_gain } ai_chance = { base = 25 ai_value_modifier = { ai_boldness = -1 ai_energy = -1 } } } } # Hereward sets off ep3_laamps.6000 = { type = character_event title = ep3_laamps.6000.t desc = { desc = ep3_laamps.6000.intro first_valid = { triggered_desc = { trigger = { scope:brother = { is_alive = yes } } desc = ep3_laamps.6000.body.alive } desc = ep3_laamps.6000.body.dead } desc = ep3_laamps.6000.desc first_valid = { triggered_desc = { trigger = { scope:brother = { is_alive = yes } } desc = ep3_laamps.6000.closing.alive } desc = ep3_laamps.6000.closing.dead } } theme = realm left_portrait = { character = root animation = chancellor } lower_right_portrait = scope:william lower_center_portrait = scope:brother lower_left_portrait = scope:harold trigger = { has_ep3_dlc_trigger = yes } immediate = { character:140 = { save_scope_as = william } character:122 = { save_scope_as = harold } father = { save_scope_as = father } random_sibling = { #Hereweard only has one sibling even_if_dead = yes save_scope_as = brother } province:1537 = { save_scope_as = ely } } option = { #Set sail at once! name = { text = ep3_laamps.6000.a.dead trigger = { scope:brother = { is_alive = no } } } name = { text = ep3_laamps.6000.a trigger = { scope:brother = { is_alive = yes } } } flavor = ep3_laamps.6000.a.flavor custom_tooltip = ep3_laamps.6000.a.tt every_character_active_contract = { invalidate_contract = yes } add_character_flag = laamp_stay_same_kingdom start_travel_plan = { destination = province:1537 #Ely players_use_planner = no on_start_on_action = on_travel_relocation_start on_arrival_on_action = on_travel_relocation_end on_arrival_event = ep3_laamps.6001 on_arrival_destinations = last return_trip = no # One way travel_with_domicile = yes } stress_impact = { ambitious = minor_stress_impact_loss } ai_chance = { # Hereward will always do the thing. base = 1000 } } option = { #It is time to forget name = ep3_laamps.6000.b custom_tooltip = ep3_laamps.6000.b.tt add_character_modifier = { modifier = ep3_the_restful_modifier years = 15 } add_opinion = { target = scope:william modifier = demanded_eviction_opinion } stress_impact = { ambitious = minor_stress_impact_gain } ai_chance = { # Hereward will always do the thing. base = 0 } } } # Hereward arrives, finds his brother dead ep3_laamps.6001 = { type = character_event title = ep3_laamps.6001.t desc = ep3_laamps.6001.desc theme = death left_portrait = { character = root animation = random_weapon_aggressive } right_portrait = { character = scope:frederick animation = inspect_weapon } lower_center_portrait = scope:brother override_effect_2d = { reference = fog } override_effect_2d = { reference = fog } trigger = { has_ep3_dlc_trigger = yes } immediate = { random_sibling = { #Hereweard only has one sibling limit = { is_alive = yes } save_scope_as = brother } province:1537 = { save_scope_as = ely } if = { #Either grab Frederick de Warenne, real-life killer of Hereward's brother... limit = { character:175 = { is_alive = yes is_available_healthy_ai_adult = yes } } character:175 = { save_scope_as = frederick } } else = { #...or make another Frederick create_character = { location = scope:ely template = knight culture = culture:norman faith = faith:catholic save_scope_as = frederick } } hidden_effect = { #Finally, kill Oslac scope:brother = { death = { death_reason = death_murder killer = scope:frederick } } } } option = { #Initiate the duel name = ep3_laamps.6001.a custom_tooltip = ep3_laamps.6001.b.two.tt configure_start_single_combat_effect = { SC_INITIATOR = root SC_ATTACKER = root SC_DEFENDER = scope:frederick FATALITY = always FIXED = sc_attacker #Hereward should _always_ win LOCALE = wilderness_scope OUTPUT_EVENT = ep3_laamps.6002 INVALIDATION_EVENT = fp1_yearly.2002 #Re-use this, though SHOULD never invalidate } stress_impact = { vengeful = minor_stress_impact_loss } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 ai_energy = 1 } } } option = { #Give them a chance to run name = ep3_laamps.6001.b random_list = { 1 = { desc = ep3_laamps.6001.b.one show_chance = no custom_tooltip = ep3_laamps.6001.b.one.tt configure_start_single_combat_effect = { SC_INITIATOR = root SC_ATTACKER = root SC_DEFENDER = scope:frederick FATALITY = always FIXED = sc_attacker #We win these, boys LOCALE = wilderness_scope OUTPUT_EVENT = ep3_laamps.6002 INVALIDATION_EVENT = fp1_yearly.2002 #Re-use this, though SHOULD never invalidate } } 1 = { desc = ep3_laamps.6001.b.two show_chance = no custom_tooltip = ep3_laamps.6001.b.two.tt configure_start_single_combat_effect = { #Ah, the illusion of choice! SC_INITIATOR = root SC_ATTACKER = root SC_DEFENDER = scope:frederick FATALITY = always FIXED = sc_attacker #We win these, boys LOCALE = wilderness_scope OUTPUT_EVENT = ep3_laamps.6002 INVALIDATION_EVENT = fp1_yearly.2002 #Re-use this, though SHOULD never invalidate } } } stress_impact = { wrathful = minor_stress_impact_gain } ai_chance = { base = 25 ai_value_modifier = { ai_boldness = -1 ai_energy = -1 } } } after = { trigger_event = ep3_laamps.9983 } } ep3_laamps.6002 = { type = character_event hidden = yes immediate = { trigger_event = { id = ep3_laamps.6003 days = 1 } } } # Hereward swears revenge ep3_laamps.6003 = { type = character_event title = ep3_laamps.6003.t desc = ep3_laamps.6003.desc theme = death left_portrait = { character = root animation = grief } lower_right_portrait = { trigger = { character:172 = { is_alive = yes } } character = character:172 } trigger = { has_ep3_dlc_trigger = yes } immediate = { if = { #If Frederick's brother still exists, Nemesis'em limit = { character:172 = { is_alive = yes } } character:172 = { set_relation_nemesis = { target = root reason = nemesis_killed_brother } } } } option = { #Swear vengeance name = ep3_laamps.6003.a add_trait_xp = { trait = the_wake value = 15 } stress_impact = { base = medium_stress_impact_loss } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 ai_energy = 1 } } } option = { #Rifle through Fred's pockets name = ep3_laamps.6003.b flavor = ep3_laamps.6003.b.flavor add_gold = minor_gold_value random = { chance = 50 create_artifact = { name = warenne_coin description = warenne_coin_description history = { type = created_before_history } type = miscellaneous visuals = brooch modifier = artifact_knight_effectiveness_2_modifier modifier = artifact_raid_speed_4_modifier modifier = artifact_pursue_efficiency_1_modifier save_scope_as = new_trinket } send_interface_toast = { title = stewardship_general.2001.tt #Re-using this left_icon = root right_icon = scope:new_trinket show_as_tooltip = { scope:new_trinket = { set_owner = root } } } } ai_chance = { base = 25 ai_value_modifier = { ai_boldness = -1 ai_energy = -1 } } } after = { trigger_event = { id = ep3_laamps.6005 days = { 25 45 } } } } # Hereward sets up a camp in the fens near Ely ep3_laamps.6005 = { type = character_event title = ep3_laamps.6005.t desc = ep3_laamps.6005.desc theme = realm override_background = { reference = wilderness_wetlands } left_portrait = { character = root animation = personality_honorable } trigger = { has_ep3_dlc_trigger = yes } immediate = { #Save William character:140 = { save_scope_as = william } #Save our location; should be Ely location = { save_scope_as = location } #Set up The Fens ep3_the_fens_list_effect = yes every_in_list = { list = the_fens custom = every_fenland_holding add_province_modifier = { modifier = ep3_dangerous_fenland_modifier years = 15 } } #Create the character here create_character = { location = root.capital_province template = wetlands_commander_character culture = root.culture faith = root.faith save_scope_as = wetlands_commander } ## Used in the after: # Make a list of every Anglo-Saxon lord scope:william = { every_vassal = { limit = { has_culture = culture:anglo_saxon } add_to_list = aethelings } } # Pick the most powerful Anglo-Saxon lord # Most likely Eadwin Aelfgarson ordered_in_list = { list = aethelings order_by = max_military_strength save_scope_as = powerful_vassal } domicile = { change_provisions = minor_provisions_gain } } option = { #Raid to acquire wealth name = ep3_laamps.6005.a flavor = ep3_laamps.6005.a.tt add_gold = medium_gold_value scope:ely = { add_province_modifier = { modifier = ep3_plundered_modifier years = 5 } } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = -1 ai_energy = -1 } } } option = { #Recruit a local knight name = ep3_laamps.6005.b flavor = ep3_laamps.6005.b.tt add_courtier = scope:wetlands_commander ai_chance = { base = 25 ai_value_modifier = { ai_boldness = 1 ai_energy = 1 } } } after = { if = { limit = { exists = scope:powerful_vassal } trigger_event = { id = ep3_laamps.6010 days = { 60 120 } } } } } # The Aethelings are disgruntled; go to visit the most powerful one? ep3_laamps.6010 = { type = letter_event opening = ep3_laamps.6010.t desc = ep3_laamps.6010.desc sender = scope:powerful_vassal trigger = { has_ep3_dlc_trigger = yes } immediate = { # Make a list of every Anglo-Saxon lord scope:william = { every_vassal = { limit = { has_culture = culture:anglo_saxon } add_to_list = aethelings } } # Pick the most powerful Anglo-Saxon lord # Most likely Eadwin Aelfgarson ordered_in_list = { list = aethelings order_by = max_military_strength save_scope_as = powerful_vassal } scope:powerful_vassal.capital_province = { save_scope_as = powerful_vassal_capital } } option = { #Yes! name = ep3_laamps.6010.a flavor = ep3_laamps.6010.a.flavor custom_tooltip = ep3_laamps.6010.a.tt every_character_active_contract = { invalidate_contract = yes } start_travel_plan = { destination = scope:powerful_vassal_capital players_use_planner = no on_arrival_event = ep3_laamps.6015 on_arrival_destinations = last return_trip = no } #Just to ensure we get the right one scope:powerful_vassal = { add_character_flag = temp_powerful_vassal_flag } ai_chance = { base = 100 } } option = { #...no. name = ep3_laamps.6010.b reverse_add_opinion = { target = scope:powerful_vassal modifier = annoyed_opinion opinion = -35 } ai_chance = { base = 0 } } } # You meet with the Aetheling ep3_laamps.6015 = { type = character_event title = ep3_laamps.6015.t desc = ep3_laamps.6015.desc theme = realm left_portrait = { character = root animation = thinking } right_portrait = { character = scope:powerful_vassal animation = worry } trigger = { has_ep3_dlc_trigger = yes } immediate = { character:140 = { save_scope_as = william } scope:william = { random_vassal = { limit = { has_character_flag = temp_powerful_vassal_flag } save_scope_as = powerful_vassal } } } option = { #You have my support name = ep3_laamps.6015.a scope:william = { every_vassal = { limit = { culture = culture:norman } custom = every_direct_vassal_william add_opinion = { target = root modifier = revanchist_opinion opinion = -35 } } every_vassal_or_below = { limit = { culture = culture:anglo_saxon } custom = every_anglo_noble add_opinion = { target = root modifier = revanchist_opinion opinion = 35 } } } scope:powerful_vassal = { add_character_flag = happy_flag } add_diplomacy_skill = 1 reverse_add_opinion = { target = scope:powerful_vassal modifier = pleased_opinion opinion = 50 } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 ai_energy = 1 } } } option = { #I need time to decide name = ep3_laamps.6015.b scope:powerful_vassal = { add_character_flag = annoyed_flag } add_character_modifier = { modifier = ep3_hereward_caution_modifier years = 5 } reverse_add_opinion = { target = scope:powerful_vassal modifier = annoyed_opinion opinion = -5 } ai_chance = { base = 50 ai_value_modifier = { ai_boldness = -1 ai_rationality = 0.5 } } } after = { trigger_event = { id = ep3_laamps.6016 days = 1 } } } # Bad news arrives ep3_laamps.6016 = { type = character_event title = ep3_laamps.6016.t desc = { first_valid = { triggered_desc = { trigger = { scope:powerful_vassal = { has_character_flag = annoyed_flag } } desc = ep3_laamps.6016.frustrated } triggered_desc = { trigger = { scope:powerful_vassal = { has_character_flag = happy_flag } } desc = ep3_laamps.6016.happy } } desc = ep3_laamps.6016.ending } theme = realm left_portrait = { character = root animation = thinking } right_portrait = { character = scope:powerful_vassal animation = worry } trigger = { has_ep3_dlc_trigger = yes } immediate = { character:140 = { save_scope_as = william } } option = { #You have my support name = ep3_laamps.6016.a custom_tooltip = ep3_laamps.6016.a.tt ai_chance = { base = 100 } } after = { trigger_event = ep3_laamps.6020 #Start the Harrying of the North if = { limit = { scope:william = { is_ai = no } } scope:william = { trigger_event = ep3_laamps.6021 } } if = { limit = { exists = domicile location != domicile.domicile_location } start_travel_plan = { destination = root.domicile.domicile_location players_use_planner = no on_start_on_action = on_travel_relocation_start on_arrival_on_action = on_travel_relocation_end on_arrival_destinations = last return_trip = no # One way } } } } # The Harrying of the North begins ep3_laamps.6020 = { type = character_event window = fullscreen_event title = ep3_laamps.6020.t desc = ep3_laamps.6020.desc theme = realm override_background = { reference = ep3_fullscreen_harrying_of_the_north } trigger = { has_ep3_dlc_trigger = yes } immediate = { play_music_cue = mx_cue_war_declared character:140 = { save_scope_as = william } # Make a list of every Anglo-Saxon lord scope:william = { every_vassal = { limit = { has_culture = culture:anglo_saxon } add_to_list = aethelings } } } option = { #Oh lort here we go name = ep3_laamps.6020.a every_in_list = { list = aethelings custom = every_aetheling every_realm_county = { custom = every_county change_county_control = 25 add_county_modifier = { modifier = ep3_harried_modifier years = 15 } } } scope:william = { add_character_modifier = { modifier = ep3_the_conqueror_modifier years = 15 } create_story = story_cycle_harrying_of_the_north } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 ai_energy = 1 } } } } # The Harrying of the North begins - William perspective # This one doesn't trigger the harrying story cycle, that's held within .6020 ep3_laamps.6021 = { type = character_event window = fullscreen_event title = ep3_laamps.6020.t desc = ep3_laamps.6021.desc theme = realm override_background = { reference = ep3_fullscreen_harrying_of_the_north } trigger = { has_ep3_dlc_trigger = yes } immediate = { play_music_cue = mx_cue_war_declared character:140 = { save_scope_as = william } # Make a list of every Anglo-Saxon lord scope:william = { every_vassal = { limit = { has_culture = culture:anglo_saxon } add_to_list = aethelings } } } option = { #Oh lort here we go name = ep3_laamps.6020.a show_as_tooltip = { every_in_list = { list = aethelings custom = every_aetheling every_realm_county = { custom = every_county change_county_control = 25 add_county_modifier = { modifier = ep3_harried_modifier years = 15 } } } } show_as_tooltip = { scope:william = { add_character_modifier = { modifier = ep3_the_conqueror_modifier years = 15 } } } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 ai_energy = 1 } } } } ################################################## # Unique LAAMP Events # by Nick Meredith # 7000 - 7999 ################################################## # Eadgar becomes a LAAMP ep3_laamps.7000 = { type = character_event title = ep3_laamps.7000.t desc = ep3_laamps.7000.desc theme = realm left_portrait = { character = root animation = thinking } lower_center_portrait = scope:william trigger = { has_ep3_dlc_trigger = yes } immediate = { title:k_england = { save_scope_as = england holder = { save_scope_as = william } } location = { save_scope_as = location } primary_heir = { save_scope_as = heir } } option = { #I'll go to Scotland name = ep3_laamps.7000.a hidden_effect = { create_title_and_vassal_change = { type = granted save_scope_as = change add_claim_on_loss = no } every_held_title = { change_title_holder_include_vassals = { holder = scope:heir change = scope:change } } resolve_title_and_vassal_change = scope:change } create_landless_adventurer_title_effect = { REASON = flag:voluntary FLAVOR_CHAR = scope:heir } add_trait = gallivanter start_travel_plan = { destination = province:1741 #St Johnston players_use_planner = no on_start_on_action = on_travel_relocation_start on_arrival_on_action = on_travel_relocation_end on_arrival_destinations = last travel_with_domicile = yes return_trip = no # One way } stress_impact = { ambitious = minor_stress_impact_loss } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 ai_energy = 0.5 } } } option = { #Norman Italy sounds like fun name = ep3_laamps.7000.b hidden_effect = { create_title_and_vassal_change = { type = granted save_scope_as = change add_claim_on_loss = no } every_held_title = { change_title_holder_include_vassals = { holder = scope:heir change = scope:change } } resolve_title_and_vassal_change = scope:change } create_landless_adventurer_title_effect = { REASON = flag:voluntary FLAVOR_CHAR = scope:heir } add_trait = gallivanter start_travel_plan = { destination = province:2619 #Trani players_use_planner = no on_start_on_action = on_travel_relocation_start on_arrival_on_action = on_travel_relocation_end on_arrival_destinations = last travel_with_domicile = yes return_trip = no # One way } stress_impact = { ambitious = minor_stress_impact_loss } ai_chance = { base = 75 ai_value_modifier = { ai_boldness = 1 ai_energy = 1 } } } option = { #Maybe I'll stay name = ep3_laamps.7000.c add_prestige = major_prestige_gain stress_impact = { ambitious = minor_stress_impact_gain } ai_chance = { base = 25 ai_value_modifier = { ai_boldness = -1 ai_energy = -1 } } } } # Siward Barn turns up at Hereward's camp # From Hereward's perspective ep3_laamps.7001 = { type = character_event title = ep3_laamps.7001.t desc = ep3_laamps.7001.desc theme = realm left_portrait = { character = root animation = thinking } right_portrait = { character = scope:siward animation = marshal } cooldown = { years = 200 } #Should never happen again trigger = { has_ep3_dlc_trigger = yes has_government = landless_adventurer_government character:90028 = { exists = this } character:161266 = { exists = this } } immediate = { character:161266 = { save_scope_as = siward move_to_pool_at = root.location } location = { save_scope_as = location } ep3_harrying_widget_setup_effect = yes } option = { #Of course, come on in! name = ep3_laamps.7001.a add_courtier = scope:siward ep3_increase_resistance_effect = { AMOUNT = harrying_medium_increase_value } random = { chance = { value = 5 if = { limit = { is_ai = no } add = 95 } } trigger_event = { id = ep3_laamps.7002 days = { 150 200 } } } stress_impact = { ambitious = minor_stress_impact_loss gregarious = minor_stress_impact_loss } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 ai_energy = 1 } } } option = { #We're full name = ep3_laamps.7001.b reverse_add_opinion = { target = scope:siward modifier = annoyed_opinion opinion = -20 } stress_impact = { compassionate = minor_stress_impact_gain callous = minor_stress_impact_loss } ai_chance = { base = 50 ai_value_modifier = { ai_boldness = -1 ai_energy = -1 } } } } scripted_effect ep3_laamps_7002_ai_siward_leaves_effect = { scope:siward = { create_landless_adventurer_title_effect = { REASON = flag:voluntary FLAVOR_CHAR = scope:siward } start_travel_plan = { destination = province:5296 #Bata players_use_planner = no on_start_on_action = on_travel_relocation_start on_arrival_on_action = on_travel_relocation_end on_arrival_destinations = last on_arrival_event = ep3_laamps.7003 travel_with_domicile = yes return_trip = no # One way } } } # Siward Barn leaves Hereward's camp # From Hereward's perspective ep3_laamps.7002 = { type = character_event title = ep3_laamps.7002.t desc = ep3_laamps.7002.desc theme = realm left_portrait = { character = root animation = worry } right_portrait = { character = scope:siward animation = personality_honorable } trigger = { has_ep3_dlc_trigger = yes character:90028 = { exists = this } character:161266 = { exists = this location = root.location } title:e_byzantium = { exists = this } title:k_england = { exists = this } title:c_zichia.holder = { NOT = { this = title:e_byzantium.holder } } } immediate = { hidden_effect = { scope:siward = { #Give him some gold so he can buy land add_gold = 300 } } title:e_byzantium.holder = { save_scope_as = emperor } title:k_england.holder = { save_scope_as = king_england } } option = { #Go with my blessing name = ep3_laamps.7002.a ep3_laamps_7002_ai_siward_leaves_effect = yes stress_impact = { compassionate = minor_stress_impact_loss } ai_chance = { ai_value_modifier = { ai_boldness = 1 ai_energy = 1 } } } option = { #I SHALL BECOME YOU name = ep3_laamps.7002.b trigger = { is_ai = no } add_internal_flag = dangerous scope:siward = { create_landless_adventurer_title_effect = { REASON = flag:voluntary FLAVOR_CHAR = scope:siward } start_travel_plan = { destination = province:496 #Constantinople players_use_planner = no on_start_on_action = on_travel_relocation_start on_arrival_on_action = on_travel_relocation_end on_arrival_destinations = last on_arrival_event = ep3_laamps.7003 travel_with_domicile = yes return_trip = no # One way } } set_player_character = scope:siward ai_chance = { base = 0 } } option = { #Duel to stay. name = bp1_yearly.1020.a duel = { skill = diplomacy target = scope:siward # He stays. 60 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -49 } min = 5 desc = ep3_laamps.7002.c.success send_interface_toast = { title = ep3_laamps.7002.c.success left_icon = scope:siward reverse_add_opinion = { target = scope:siward modifier = respect_opinion opinion = 30 } } } # He goes. 40 = { compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } min = 5 desc = ep3_laamps.7002.c.failure send_interface_toast = { title = ep3_laamps.7002.c.failure left_icon = scope:siward ep3_laamps_7002_ai_siward_leaves_effect = yes } } } ai_chance = { ai_value_modifier = { ai_sociability = 1 ai_rationality = 1 } } } after = { scope:siward = { add_character_modifier = laamp_provisions_forgiveness_travel_modifier } } } # Siward Barn arrives in Constantinople ep3_laamps.7003 = { type = character_event title = ep3_laamps.7003.t desc = ep3_laamps.7003.desc theme = realm override_background = { reference = ep3_constantinople } left_portrait = { character = root animation = thinking } right_portrait = { character = scope:emperor animation = scheme } trigger = { has_ep3_dlc_trigger = yes } immediate = { title:e_byzantium.holder = { save_scope_as = emperor } title:c_zichia = { save_scope_as = zichia } } option = { #Oh boy I'd love to do a realmy thing! name = ep3_laamps.7003.a custom_tooltip = ep3_laamps.7003.a.tt start_travel_plan = { destination = province:5296 #Bata players_use_planner = no on_start_on_action = on_travel_relocation_start on_arrival_on_action = on_travel_relocation_end on_arrival_destinations = last on_arrival_event = ep3_laamps.7004 travel_with_domicile = yes return_trip = no # One way } stress_impact = { ambitious = minor_stress_impact_loss } ai_chance = { #50% chance for AI base = 50 } } option = { #Nah I'd rather stay here name = ep3_laamps.7003.b add_character_modifier = { modifier = ep3_culturally_greek_modifier years = 20 } reverse_add_opinion = { target = scope:emperor modifier = disappointed_opinion opinion = -5 } ai_chance = { #50% chance for AI base = 50 } } } scripted_effect new_england_holding_names_effect = { random_list = { 100 = { set_title_name = b_london } 100 = { set_title_name = b_southwark } 100 = { set_title_name = b_woxbrigge } 100 = { set_title_name = b_gore } 100 = { set_title_name = b_brentford } 100 = { set_title_name = b_colchester } 100 = { set_title_name = b_maldon } 100 = { set_title_name = b_chelmsford } 100 = { set_title_name = b_dunmow } 100 = { set_title_name = b_bedford } 100 = { set_title_name = b_ampthill } 100 = { set_title_name = b_luton } 100 = { set_title_name = b_berkhamsted } 100 = { set_title_name = b_saint_albans } 100 = { set_title_name = b_hertford } 100 = { set_title_name = b_buckingham } 100 = { set_title_name = b_aylesbury } 100 = { set_title_name = b_newport } 100 = { set_title_name = b_wycombe } 100 = { set_title_name = b_bamburgh } 100 = { set_title_name = b_rothbury } 100 = { set_title_name = b_lindisfarne } 100 = { set_title_name = b_hexham } 100 = { set_title_name = b_durham } 100 = { set_title_name = b_hartlepool } 100 = { set_title_name = b_darlington } 100 = { set_title_name = b_carlisle } 100 = { set_title_name = b_whitehaven } 100 = { set_title_name = b_furness } 100 = { set_title_name = b_wigton } 100 = { set_title_name = b_lancaster } 100 = { set_title_name = b_salford } 100 = { set_title_name = b_west_derby } 100 = { set_title_name = b_kendal } 100 = { set_title_name = b_appleby } 100 = { set_title_name = b_chester } 100 = { set_title_name = b_northwich } 100 = { set_title_name = b_macclesfield } 100 = { set_title_name = b_derby } 100 = { set_title_name = b_chesterfield } 100 = { set_title_name = b_castleton } 100 = { set_title_name = b_york } 100 = { set_title_name = b_scarborough } 100 = { set_title_name = b_whitby } 100 = { set_title_name = b_richmond } 100 = { set_title_name = b_yarlestre } 100 = { set_title_name = b_pockington } 100 = { set_title_name = b_cottingham } 100 = { set_title_name = b_bridlington } 100 = { set_title_name = b_leeds } 100 = { set_title_name = b_doncaster } 100 = { set_title_name = b_halifax } 100 = { set_title_name = b_sheffield } 100 = { set_title_name = b_bolton } 100 = { set_title_name = b_ripon } 100 = { set_title_name = b_lincoln } 100 = { set_title_name = b_stamford } 100 = { set_title_name = b_boston } 100 = { set_title_name = b_bolingsbroke } 100 = { set_title_name = b_grimsby } 100 = { set_title_name = b_norwich } 100 = { set_title_name = b_thetford } 100 = { set_title_name = b_walsingham } 100 = { set_title_name = b_lynn } 100 = { set_title_name = b_ipswich } 100 = { set_title_name = b_sudbury } 100 = { set_title_name = b_blything } 100 = { set_title_name = b_beodericsworth } 100 = { set_title_name = b_cambridge } 100 = { set_title_name = b_radfield } 100 = { set_title_name = b_papworth } 100 = { set_title_name = b_ely } 100 = { set_title_name = b_warwick } 100 = { set_title_name = b_coventry } 100 = { set_title_name = b_birmingham } 100 = { set_title_name = b_leicester } 100 = { set_title_name = b_melton } 100 = { set_title_name = b_bosworth } 100 = { set_title_name = b_rutland } 100 = { set_title_name = b_nottingham } 100 = { set_title_name = b_newark } 100 = { set_title_name = b_retford } 100 = { set_title_name = b_stafford } 100 = { set_title_name = b_wolverhampton } 100 = { set_title_name = b_stoke_on_trent } 100 = { set_title_name = b_worcester } 100 = { set_title_name = b_evesham } 100 = { set_title_name = b_kidderminster } 100 = { set_title_name = b_hurstingstone } 100 = { set_title_name = b_norman_cross } 100 = { set_title_name = b_leightonstone } 100 = { set_title_name = b_northampton } 100 = { set_title_name = b_peterborough } 100 = { set_title_name = b_kettering } 100 = { set_title_name = b_shrewsbury } 100 = { set_title_name = b_ludlow } 100 = { set_title_name = b_bishops_castle } 100 = { set_title_name = b_gloucester } 100 = { set_title_name = b_bristol } 100 = { set_title_name = b_winchcombe } 100 = { set_title_name = b_salisbury } 100 = { set_title_name = b_wilton } 100 = { set_title_name = b_ramsbury } 100 = { set_title_name = b_malmesbury } 100 = { set_title_name = b_oxford } 100 = { set_title_name = b_banbury } 100 = { set_title_name = b_witney } 100 = { set_title_name = b_reading } 100 = { set_title_name = b_newbury } 100 = { set_title_name = b_abingdon } 100 = { set_title_name = b_dover } 100 = { set_title_name = b_canterbury } 100 = { set_title_name = b_rochester } 100 = { set_title_name = b_tonbridge } 100 = { set_title_name = b_chertsey } 100 = { set_title_name = b_guildford } 100 = { set_title_name = b_kingston } 100 = { set_title_name = b_tandbridge } 100 = { set_title_name = b_lewes } 100 = { set_title_name = b_chichester } 100 = { set_title_name = b_arun } 100 = { set_title_name = b_hastings } 100 = { set_title_name = b_winchester } 100 = { set_title_name = b_southampton } 100 = { set_title_name = b_portsmouth } 100 = { set_title_name = b_basingstoke } 100 = { set_title_name = b_christchurch } 100 = { set_title_name = b_carisbrooke } 100 = { set_title_name = b_wareham } 100 = { set_title_name = b_poole } 100 = { set_title_name = b_shaftesbury } 100 = { set_title_name = b_lyme } 100 = { set_title_name = b_bath } 100 = { set_title_name = b_winterstoke } 100 = { set_title_name = b_ilchester } 100 = { set_title_name = b_taunton } 100 = { set_title_name = b_exeter } 100 = { set_title_name = b_totnes } 100 = { set_title_name = b_okehampton } 100 = { set_title_name = b_barnstaple } 100 = { set_title_name = b_launceston } 100 = { set_title_name = b_tintagel } 100 = { set_title_name = b_helston } } } # Siward Barn arrives in Bata ep3_laamps.7004 = { type = character_event title = ep3_laamps.7004.t desc = ep3_laamps.7004.desc theme = realm left_portrait = { character = root animation = thinking } right_portrait = { character = scope:title_holder animation = scheme } trigger = { has_ep3_dlc_trigger = yes } immediate = { scope:zichia.holder.top_liege = { save_scope_as = title_holder } hidden_effect = { add_unpressed_claim = title:c_zichia } title:c_zichia = { add_to_list = landed_titles } scope:zichia.holder = { every_realm_province = { barony = { add_to_list = zichia_names } } } } option = { #OK, I'll pay name = ep3_laamps.7004.a add_character_flag = { #Bypass usual event flag = siward_flag years = 1 } pay_short_term_gold = { target = scope:title_holder gold = 100 } hidden_effect = { #For tooltip reasons ep3_become_landed_transfer_effect = { TITLE_RECEIVER = root TITLE_LIST = landed_titles TYPE = granted REASON = flag:granted } every_in_list = { list = zichia_names new_england_holding_names_effect = yes } } custom_tooltip = destroy_laamp_effect.tt.domicile_liquidated show_as_tooltip = { get_title = title:c_zichia add_character_modifier = { modifier = ep3_ennobled_adventurer_modifier_1 years = 10 } ## Nomad. if = { limit = { OR = { government_has_flag = government_is_nomadic scope:new_liege ?= { government_has_flag = government_is_nomadic } scope:old_government ?= flag:nomad scope:new_capital.capital_province = { OR = { has_holding_type = nomad_holding has_holding_type = herder_holding } } } } change_government = nomad_government } ## Administrative. else_if = { limit = { scope:new_liege ?= { government_has_flag = government_is_administrative } } change_government = administrative_government } ## Clan. else_if = { limit = { scope:new_liege ?= { government_has_flag = government_is_clan } } change_government = clan_government } ## Tribal. else_if = { limit = { scope:new_liege ?= { government_has_flag = government_is_tribal } } change_government = tribal_government } ## Else feudal. else = { change_government = feudal_government } } hidden_effect = { ## Nomad. if = { limit = { OR = { government_has_flag = government_is_nomadic scope:new_liege ?= { government_has_flag = government_is_nomadic } scope:old_government ?= flag:nomad scope:new_capital.capital_province = { OR = { has_holding_type = nomad_holding has_holding_type = herder_holding } } } } change_government = nomad_government } ## Administrative. else_if = { limit = { scope:new_liege ?= { government_has_flag = government_is_administrative } } change_government = administrative_government } ## Clan. else_if = { limit = { scope:new_liege ?= { government_has_flag = government_is_clan } } change_government = clan_government } ## Tribal. else_if = { limit = { scope:new_liege ?= { government_has_flag = government_is_tribal } } change_government = tribal_government } ## Else feudal. else = { change_government = feudal_government } } scope:zichia = { set_title_name = c_new_england set_color_from_title = title:k_england } stress_impact = { ambitious = minor_stress_impact_loss greedy = medium_stress_impact_gain } ai_chance = { #50% chance for AI base = 50 } } option = { #I'll take it by force! name = ep3_laamps.7004.b start_war = { cb = county_conquest_cb target = title:c_zichia.holder target_title = title:c_zichia } stress_impact = { ambitious = minor_stress_impact_loss greedy = minor_stress_impact_loss craven = medium_stress_impact_gain } ai_chance = { #50% chance for AI base = 50 } } } ################################################## # Pool Weightings # by Ewan Cowhig Croft # 9971 - 9979 ################################################## # The way pool population works causes a massive over-bias of Jewish (and certain other minority) characters in the first couple of decades, and those then get pulled in as assorted criminals and such by a lot of laamp content. This can lead to chains of rather unfortunate numbers of said-chars put into the role of Designated Bastard time after time, which looks dodgy as all hell. Thus, whenever the player moves from place to place as a laamp in the very early game, we need to flood their local pool with characters until the world fills up suitably with actual random gen characters. ep3_laamps.9971 = { hidden = yes trigger = { is_ai = no has_government = landless_adventurer_government years_from_game_start <= 25 } immediate = { while = { count = 5 create_character = { template = default_mystic_character location = root.location culture = root.location.culture faith = root.location.faith gender_female_chance = 50 } create_character = { template = wise_woman_character location = root.location culture = root.location.culture faith = root.location.faith gender_female_chance = 50 } create_character = { template = merchant_template location = root.location culture = root.location.culture faith = root.location.faith gender_female_chance = 50 } create_character = { template = hunter_template location = root.location culture = root.location.culture faith = root.location.faith gender_female_chance = 50 } create_character = { template = generic_peasant_character location = root.location culture = root.location.culture faith = root.location.faith gender_female_chance = 50 } create_character = { template = bandit_character_generic location = root.location culture = root.location.culture faith = root.location.faith gender_female_chance = 50 } } } } ################################################## # Passive Contract Spawn # by Ewan Cowhig Croft # 9981 - 9989 ################################################## # Spawn a contract every now and then whilst we remain in the same location, up to a reasonable limit. ep3_laamps.9981 = { hidden = yes trigger = { var:contract_passive_spawn_location ?= location.kingdom trigger_if = { limit = { has_variable = contract_passive_spawn_tally } var:contract_passive_spawn_tally < 3 } # Make sure we don't do this if we've got lots of contracts already spawned here. any_character_task_contract = { count <= 4 task_contract_location = { "squared_distance(root.location)" <= squared_distance_medium } } } on_trigger_fail = { if = { limit = { var:contract_passive_spawn_location ?= location.kingdom } trigger_event = { id = ep3_laamps.9981 months = { 8 12 } } } } immediate = { # spawn a contract contract_passive_spawn_effect = { SPAWN_CONTRACTS = 1 } # And fire us again in a bit. if = { limit = { var:contract_passive_spawn_tally < 2 } trigger_event = { id = ep3_laamps.9981 months = 1 } } else = { trigger_event = { id = ep3_laamps.9981 months = 2 } } } } # Populate adventurer contracts on succession. ep3_laamps.9982 = { hidden = yes trigger = { is_ai = no government_has_flag = government_is_landless_adventurer } immediate = { populate_location_with_contracts_effect = { AREA_CHAR = root AMOUNT = 3 } } } # Keep giving Hereward regular work within England. ep3_laamps.9983 = { hidden = yes trigger = { # Must be within England. domicile.domicile_location.county = { save_temporary_scope_as = title_temp title:k_england = { is_de_jure_liege_or_above_target = scope:title_temp } } # Make sure we don't do this if we've got lots of contracts already spawned here. any_character_task_contract = { count <= 6 task_contract_location = { "squared_distance(root.location)" <= squared_distance_medium } } } on_trigger_fail = { if = { limit = { var:contract_passive_spawn_location ?= location.kingdom } trigger_event = { id = ep3_laamps.9981 months = 6 } } } immediate = { # Spawn some contracts. contract_passive_spawn_effect = { SPAWN_CONTRACTS = 2 } # And fire us again in a bit. trigger_event = { id = ep3_laamps.9981 months = { 8 12 } } } } ################################################## # Become Landed - Maintenance # by Joe Parkin # 9991 - 9999 ################################################## ep3_laamps.9999 = { # Error suppression scope = none orphan = yes hidden = yes trigger = { exists = var:ascended_throne_reason exists = var:lost_title_reason } immediate = { set_variable = { name = lost_title_reason value = flag:negotiated } # Contract animations. if = { limit = { exists = var:animation } # Nothing. } } }