namespace = ep3_laamp_flavor #### # ep3_laamp_flavor.0001-0010 - Carrion Eaters # ep3_laamp_flavor.0020-0029 - Thief! # ep3_laamp_flavor.0030-0039 - Pleasant Dream # ep3_laamp_flavor.0040-0049 - Stray Prince # ep3_laamp_flavor.0050-0059 - Necromancer # ep3_laamp_flavor.0060-0069 - Dead Weight #### ################################################## # Carrion Eaters # by Daniel Tolman ################################################## scripted_trigger ep3_laamp_flavor_0001_is_in_desert = { location = { OR = { terrain = desert terrain = desert_mountains terrain = drylands } } } # Carrion Eaters ep3_laamp_flavor.0001 = { type = character_event title = { first_valid = { # Carrion Eaters triggered_desc = { trigger = { OR = { ep3_laamp_flavor_0001_is_in_desert = yes location = { is_sea_province = yes } } } desc = ep3_laamp_flavor.0001.t1 } # Eating Crow desc = ep3_laamp_flavor.0001.t2 } } desc = { first_valid = { # Vultures in the desert triggered_desc = { trigger = { ep3_laamp_flavor_0001_is_in_desert = yes } desc = ep3_laamp_flavor.0001.desc1 } # Gulls in the ocean triggered_desc = { trigger = { location = { is_sea_province = yes } } desc = ep3_laamp_flavor.0001.desc2 } # Generic crows desc = ep3_laamp_flavor.0001.desc } } theme = travel_danger left_portrait = { character = root animation = sick_stomach } right_portrait = { character = scope:vulture_shooter scripted_animation = bow_drawn camera = camera_event_right_forward } cooldown = { years = 10 } trigger = { government_has_flag = government_is_landless_adventurer faith = { NOR = { religion = religion:jainism_religion religion = religion:islam_religion } } domicile ?= { provisions <= provisions_low_value } is_available_travelling_adult = yes NOT = { has_trait = ill } any_courtier = { is_available_travelling_ai_adult = yes } } immediate = { hidden_effect = { change_current_weight = -25 every_courtier = { change_current_weight = -25 } } if = { limit = { enable_debug_laamp_event_logging_toggle_trigger = yes } increment_global_variable_effect = { VAR = tally_tolman_0001 VAL = 1 } } ordered_courtier = { limit = { is_available_travelling_ai_adult = yes is_valid_active_event_recurrer_trigger = { LIEGE = ROOT } } alternative_limit = { is_available_travelling_ai_adult = yes } order_by = prowess save_scope_as = vulture_shooter } } option = { # good idea name = { trigger = { NOT = { has_trait = cannibal } } text = ep3_laamp_flavor.0001.a } name = { trigger = { has_trait = cannibal } text = ep3_laamp_flavor.0001.a.cannibal } trait = cannibal progress_towards_friend_effect = { REASON = agreed_to_shoot_vultures CHARACTER = scope:vulture_shooter OPINION = default_friend_opinion } random_list = { 1 = { # get sick desc = ep3_laamp_flavor.0001.sick send_interface_toast = { title = ep3_laamp_flavor.0001.a.sick left_icon = root right_icon = scope:vulture_shooter contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = yes } scope:vulture_shooter = { contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = yes } } domicile = { change_provisions = miniscule_provisions_gain } } } 1 = { # don't get sick desc = ep3_laamp_flavor.0001.notsick send_interface_toast = { title = ep3_laamp_flavor.0001.a.fine left_icon = root right_icon = scope:vulture_shooter domicile = { change_provisions = minor_provisions_gain } } } } ai_chance = { base = 1 ai_value_modifier = { ai_rationality = -0.5 } } } option = { # this will make us sick name = ep3_laamp_flavor.0001.c trigger = { learning >= decent_skill_rating } skill = learning add_learning_lifestyle_xp = medium_lifestyle_experience add_character_modifier = { modifier = emaciated_modifier years = 3 } ai_chance = { # AI should generally pick this if able base = 100 } } option = { # no that sounds gross name = ep3_laamp_flavor.0001.b progress_towards_rival_effect = { REASON = no_vulture_eating CHARACTER = scope:vulture_shooter OPINION = default_rival_opinion } add_character_modifier = { modifier = emaciated_modifier years = 3 } ai_chance = { # Even if not especially learned, this is gross and sensible people should have some innate resistance to this idea base = 1 ai_value_modifier = { ai_rationality = 2 } } } } ################################################## # Thief! # by Daniel Tolman ################################################## scripted_trigger ep3_laamp_flavor_0020_valid_courtier = { NOR = { has_trait = just has_trait = honest } OR = { has_trait = greedy has_trait = deceitful has_trait = arbitrary has_trait = eccentric has_trait = profligate has_trait = fickle has_trait = callous has_trait_xp = { trait = gallowsbait track = thief value >= 10 } } } # Follower caught stealing in local town ep3_laamp_flavor.0020 = { type = character_event title = ep3_laamp_flavor.0020.t desc = { desc = ep3_laamp_flavor.0020.intro first_valid = { triggered_desc = { trigger = { has_trait = gallowsbait } desc = ep3_laamp_flavor.0020.desc1 } desc = ep3_laamp_flavor.0020.desc } } theme = unfriendly left_portrait = { character = scope:thieving_follower animation = fear } right_portrait = { character = scope:town_leader animation = disapproval } lower_right_portrait = { character = scope:duelist trigger = { this != scope:town_leader } } override_background = { reference = gallows } cooldown = { years = 10 } trigger = { has_government = landless_adventurer_government location = { has_holding = yes } is_available_at_peace_adult = yes any_courtier = { is_available_ai_adult = yes ep3_laamp_flavor_0020_valid_courtier = yes } location.barony.holder = { is_available_at_peace_ai_adult = yes } } immediate = { if = { limit = { enable_debug_laamp_event_logging_toggle_trigger = yes } increment_global_variable_effect = { VAR = tally_tolman_0020 VAL = 1 } } random_courtier = { limit = { is_valid_active_event_recurrer_trigger = { LIEGE = ROOT } is_available_at_peace_adult = yes ep3_laamp_flavor_0020_valid_courtier = yes } alternative_limit = { is_available_ai_adult = yes ep3_laamp_flavor_0020_valid_courtier = yes } save_scope_as = thieving_follower } location.barony.holder = { save_scope_as = town_leader if = { limit = { exists = court_position:champion_court_position } court_position:champion_court_position = { save_scope_as = duelist } } else = { save_scope_as = duelist } } location = { save_scope_as = town_location } } # Pay the fine option = { name = ep3_laamp_flavor.0020.a if = { limit = { has_trait = gallowsbait } pay_short_term_gold = { target = scope:town_leader gold = major_gold_value } stress_impact = { greedy = major_stress_impact_gain } } else = { pay_short_term_gold = { target = scope:town_leader gold = medium_gold_value } stress_impact = { greedy = medium_stress_impact_gain } } progress_towards_friend_effect = { REASON = thievery_helper_opinion CHARACTER = scope:thieving_follower OPINION = default_friend_opinion } ai_chance = { base = 1 ai_value_modifier = { ai_compassion = 1 ai_greed = -1 } } } # Thief must accept physical punishment option = { name = ep3_laamp_flavor.0020.b if = { limit = { has_trait = gallowsbait } scope:thieving_follower = { apply_maimed_trait_and_modifier_effect = yes } } else = { scope:thieving_follower = { add_trait = wounded_1 } } progress_towards_rival_effect = { REASON = thievery_rivalry_opinion CHARACTER = scope:thieving_follower OPINION = default_rival_opinion } ai_chance = { base = 1 ai_value_modifier = { ai_compassion = -1 } } } # Plead with town_leader option = { name = ep3_laamp_flavor.0020.c trigger = { scope:town_leader = { opinion = { target = root value >= low_negative_opinion } } } if = { limit = { scope:town_leader = { can_add_hook = { target = root type = indebted_hook } } } scope:town_leader = { add_hook = { target = root type = indebted_hook } } } if = { limit = { has_trait = gallowsbait } add_prestige = major_prestige_loss stress_impact = { arrogant = medium_stress_impact_gain ambitious = medium_stress_impact_gain stubborn = medium_stress_impact_gain callous = medium_stress_impact_gain } } else = { add_prestige = medium_prestige_loss stress_impact = { arrogant = minor_stress_impact_gain ambitious = minor_stress_impact_gain stubborn = minor_stress_impact_gain callous = medium_stress_impact_gain } } ai_chance = { base = 1 ai_value_modifier = { ai_honor = -1 } } } # Demand a trial by combat option = { name = ep3_laamp_flavor.0020.d duel = { skill = prowess target = scope:duelist 50 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -49 } min = 5 desc = ep3_laamp_flavor.0020.d.tt.success send_interface_toast = { title = ep3_laamp_flavor.0020.d.tt.success left_icon = scope:thieving_follower progress_towards_friend_effect = { REASON = thievery_helper_opinion CHARACTER = scope:thieving_follower OPINION = default_friend_opinion } } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } min = 5 desc = ep3_laamp_flavor.0020.d.tt.fail send_interface_toast = { title = ep3_laamp_flavor.0020.d.tt.fail left_icon = scope:thieving_follower add_prestige = medium_prestige_loss scope:thieving_follower = { scope:thieving_follower = { apply_maimed_trait_and_modifier_effect = yes } } } } } ai_chance = { base = 1 ai_value_modifier = { ai_honor = 2 } } } } ################################################## # Sweet Dreams # by Daniel Tolman ################################################## # Sweet Dreams ep3_laamp_flavor.0030 = { type = character_event title = ep3_laamp_flavor.0030.t desc = ep3_laamp_flavor.0030.desc theme = court left_portrait = { character = scope:dream_friend animation = toast_goblet } right_portrait = { character = scope:dream_rival animation = paranoia outfit_tags = { beggar_rags } } override_background = { reference = feast } cooldown = { years = 10 } trigger = { has_government = landless_adventurer_government is_adult = yes is_available_allow_travelling = yes any_relation = { type = friend } any_relation = { type = rival } } immediate = { if = { limit = { enable_debug_laamp_event_logging_toggle_trigger = yes } increment_global_variable_effect = { VAR = tally_tolman_0030 VAL = 1 } } random_relation = { type = friend save_scope_as = dream_friend } random_relation = { type = rival save_scope_as = dream_rival } } # I will make my dream a reality option = { name = ep3_laamp_flavor.0030.a # Stress gain but more lifestyle xp add_character_modifier = { modifier = dream_ambitious years = 10 } stress_impact = { base = miniscule_stress_impact_loss ambitious = minor_stress_impact_loss impatient = minor_stress_impact_loss arrogant = minor_stress_impact_loss stubborn = minor_stress_impact_loss vengeful = minor_stress_impact_loss } ai_chance = { base = 1 ai_value_modifier = { ai_boldness = 1 } } } # I long for the comforts of nobility option = { name = ep3_laamp_flavor.0030.b # Stress but more diplomacy add_character_modifier = { modifier = dream_envious years = 10 } stress_impact = { base = miniscule_stress_impact_loss lifestyle_reveler = minor_stress_impact_loss gluttonous = minor_stress_impact_loss lazy = minor_stress_impact_loss greedy = minor_stress_impact_loss avaricious = minor_stress_impact_loss } ai_chance = { base = 1 ai_value_modifier = { ai_sociability = 1 ai_honor = -0.5 } } } # I'm glad I'm free of that life option = { name = ep3_laamp_flavor.0030.c # less stress, you're happy with your life add_character_modifier = { modifier = dream_content years = 10 } stress_impact = { base = miniscule_stress_impact_loss temperate = minor_stress_impact_loss calm = minor_stress_impact_loss humble = minor_stress_impact_loss content = minor_stress_impact_loss paranoid = minor_stress_impact_loss } ai_chance = { base = 1 ai_value_modifier = { ai_compassion = 1 } } } } ################################################## # Lost Lordling # by Daniel Tolman ################################################## # Lost Lordling ep3_laamp_flavor.0040 = { type = character_event title = ep3_laamp_flavor.0040.t desc = ep3_laamp_flavor.0040.desc theme = landless_adventurer override_background = { reference = wilderness } left_portrait = { character = root animation = interested } right_portrait = { character = scope:runaway_child animation = crying } cooldown = { years = 20 } trigger = { has_government = landless_adventurer_government is_available_at_peace_adult = yes exists = location.barony.holder.capital_province location = location.barony.holder.capital_province location.barony.holder = { save_temporary_scope_as = local_ruler_temp highest_held_title_tier <= tier_county is_available_at_peace_ai_adult = yes any_courtier = { is_child_of = scope:local_ruler_temp NOT = { is_primary_heir_of = scope:local_ruler_temp } age >= 12 age < 23 is_available_allow_travelling = yes is_physically_able = yes } } } immediate = { if = { limit = { enable_debug_laamp_event_logging_toggle_trigger = yes } increment_global_variable_effect = { VAR = tally_tolman_0040 VAL = 1 } } location = { save_scope_as = location_scope } location.barony.holder = { save_scope_as = local_ruler random_courtier = { limit = { is_child_of = scope:local_ruler NOT = { is_primary_heir_of = scope:local_ruler } age >= 12 age < 23 is_available_allow_travelling = yes is_physically_able = yes } save_scope_as = runaway_child } } } # Join our merry band option = { name = ep3_laamp_flavor.0040.b add_courtier = scope:runaway_child ai_chance = { base = 1 ai_value_modifier = { ai_compassion = 0.5 ai_honor = -0.25 } } } # Capture the child, they might be worth a good ransom option = { name = ep3_laamp_flavor.0040.c imprison = { target = scope:runaway_child type = house_arrest } reverse_add_opinion = { target = scope:local_ruler modifier = stole_my_child_opinion opinion = -50 } laamp_rewards_apply_criminal_xp_effect = { TRACK = marauder XP_MIN = gallowsbait_xp_minor_gain XP_MAX = gallowsbait_xp_minor_gain } stress_impact = { callous = minor_stress_impact_loss greedy = minor_stress_impact_loss sadistic = minor_stress_impact_loss } ai_chance = { base = 1 ai_value_modifier = { ai_honor = -1 ai_compassion = -1 ai_greed = 1 } } } # We're taking you home option = { name = ep3_laamp_flavor.0040.a reverse_add_opinion = { target = scope:local_ruler modifier = returned_my_child_opinion opinion = 50 } if = { limit = { has_trait = gallowsbait has_trait_xp = { trait = gallowsbait track = marauder value >= 1 } } laamp_rewards_apply_criminal_xp_effect = { TRACK = marauder XP_MIN = negative_small_lifestyle_random_xp_low XP_MAX = negative_small_lifestyle_random_xp_low } } add_prestige = minor_prestige_gain ai_chance = { base = 1 ai_value_modifier = { ai_compassion = 0.25 ai_honor = 0.75 ai_greed = 0.25 } } } } ################################################## # Necromancer # by Daniel Tolman ################################################## # Necromancer ep3_laamp_flavor.0050 = { type = character_event title = ep3_laamp_flavor.0050.t desc = ep3_laamp_flavor.0050.desc theme = landless_adventurer right_portrait = { character = root animation = shock } left_portrait = { character = scope:necromancer animation = page_flipping } override_background = { reference = bp1_bonfire } cooldown = { years = 30 } trigger = { location = { is_sea_province = no } static_group_filter = { group = ep3_laamp_flavor.0050 match = 0.5 } has_government = landless_adventurer_government is_adult = yes is_available_allow_travelling = yes faith = { religion_tag = christianity_religion } location.faith = { religion_tag = christianity_religion } NOR = { has_trait = witch any_secret = { type = secret_witch } } } immediate = { if = { limit = { enable_debug_laamp_event_logging_toggle_trigger = yes } increment_global_variable_effect = { VAR = tally_tolman_0050 VAL = 1 } } location = { save_scope_as = location_scope } create_character = { template = priest_character_template culture = root.location.culture faith = root.location.faith dynasty = none location = root.location gender = male save_scope_as = necromancer } hidden_effect = { scope:necromancer = { add_trait = devoted remove_character_flag = need_priest_outfit } } if = { limit = { player_heir ?= { is_courtier_of = root is_child_of = root } } player_heir = { save_scope_as = player_heir_scope } } } # Your foul sorcery ends here option = { name = ep3_laamp_flavor.0050.a add_piety = minor_piety_gain duel = { skill = prowess target = scope:necromancer 50 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -49 } min = 5 desc = ep3_laamp_flavor.0050.d.tt.success send_interface_toast = { title = ep3_laamp_flavor.0050.d.tt.success left_icon = scope:necromancer add_prestige = minor_prestige_gain add_piety = minor_piety_gain } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } min = 5 desc = ep3_laamp_flavor.0050.d.tt.fail send_interface_toast = { title = ep3_laamp_flavor.0050.d.tt.fail left_icon = scope:necromancer add_trait = wounded_1 add_prestige = minor_prestige_loss } } } stress_impact = { zealous = minor_stress_impact_loss cynical = minor_stress_impact_gain craven = medium_stress_impact_gain } ai_chance = { base = 1 ai_value_modifier = { ai_zeal = 1 ai_rationality = -0.75 } } } # Teach me magic option = { name = ep3_laamp_flavor.0050.b add_character_modifier = { modifier = learned_in_demonology years = 10 } stress_impact = { zealous = medium_stress_impact_gain cynical = minor_stress_impact_gain craven = medium_stress_impact_gain } ai_chance = { base = 1 ai_value_modifier = { ai_sociability = 0.25 ai_zeal = -1 ai_rationality = -0.5 } } } # Teach my heir magic option = { name = ep3_laamp_flavor.0050.c trigger = { exists = scope:player_heir_scope } stress_impact = { zealous = medium_stress_impact_gain cynical = minor_stress_impact_gain craven = medium_stress_impact_gain } scope:player_heir_scope = { add_character_modifier = { modifier = learned_in_demonology years = 10 } } ai_chance = { base = 1 ai_value_modifier = { ai_sociability = 0.25 ai_zeal = -1 ai_rationality = -0.5 } } } # 3spooky5me option = { name = ep3_laamp_flavor.0050.d stress_impact = { craven = minor_stress_impact_loss } add_prestige = minor_prestige_loss ai_chance = { base = 1 ai_value_modifier = { ai_boldness = -1 } } } after = { if = { limit = { is_ai = yes } scope:necromancer = { silent_disappearance_effect = yes } } } } ################################################## # Dead Weight # by Daniel Tolman ################################################## # Dead Weight ep3_laamp_flavor.0060 = { type = character_event title = ep3_laamp_flavor.0060.t desc = ep3_laamp_flavor.0060.desc theme = travel_danger right_portrait = { character = scope:follower animation = anger } left_portrait = { character = scope:prisoner animation = prisonhouse } cooldown = { years = 10 } trigger = { has_government = landless_adventurer_government domicile ?= { provisions <= provisions_threshold_low_value } is_available_travelling_adult = yes any_courtier = { is_available_travelling_ai_adult = yes } any_prisoner = { age >= 6 is_ai = yes } } immediate = { hidden_effect = { change_current_weight = -25 every_courtier = { change_current_weight = -25 } } if = { limit = { enable_debug_laamp_event_logging_toggle_trigger = yes } increment_global_variable_effect = { VAR = tally_tolman_0060 VAL = 1 } } random_courtier = { # Get a recurring character if one exists that is suitably angry limit = { is_available_travelling_ai_adult = yes is_valid_active_event_recurrer_trigger = { LIEGE = ROOT } OR = { has_trait = vengeful has_trait = wrathful } } # Otherwise, a random follower just snaps alternative_limit = { is_available_travelling_ai_adult = yes } save_scope_as = follower } random_prisoner = { limit = { age >= 6 is_ai = yes } save_scope_as = prisoner } } # Execute the prisoner option = { name = ep3_laamp_flavor.0060.a execute_prisoner_effect = { VICTIM = scope:prisoner EXECUTIONER = root } reverse_add_opinion = { target = scope:follower modifier = grateful_opinion opinion = 25 } ai_chance = { base = 1 ai_value_modifier = { ai_vengefulness = 1 ai_compassion = -2 ai_honor = -2 } } } # You don't have to go home but you can't stay here option = { name = ep3_laamp_flavor.0060.b scope:prisoner = { release_from_prison = yes } # you experience a loss of kidnapper street cred if = { limit = { has_trait = gallowsbait has_trait_xp = { trait = gallowsbait track = marauder value >= 1 } } laamp_rewards_apply_criminal_xp_effect = { TRACK = marauder XP_MIN = negative_small_lifestyle_random_xp_low XP_MAX = negative_small_lifestyle_random_xp_low } } ai_chance = { base = 1 ai_value_modifier = { ai_vengefulness = -0.5 ai_compassion = 1 } } } # The prisoner is too valuable option = { name = ep3_laamp_flavor.0060.c # your followers don't like giving the prisoner rations add_character_modifier = { modifier = burdensome_prisoner_modifier years = 10 } # follower is especially annoyed reverse_add_opinion = { modifier = unfriendly_opinion target = scope:follower opinion = -35 } domicile = { change_provisions = minor_provisions_loss } ai_chance = { base = 1 ai_value_modifier = { ai_greed = 1 } } } }