N3OW/events/dlc/bp3/bp3_roaming_events.txt
2026-01-06 14:25:21 +01:00

2828 lines
57 KiB
Text

namespace = bp3_roaming
### Setup Events
# Arrival Event
bp3_roaming.0005 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0005.t
desc = bp3_roaming.0005.desc
theme = roaming_activity
left_portrait = {
character = scope:host
triggered_animation = {
trigger = {
location = {
roaming_activity_monsoon_trigger = yes
}
}
animation = scheme
}
triggered_animation = {
trigger = {
location = {
roaming_activity_winter_trigger = yes
terrain = mountains
}
}
animation = shiver
}
animation = survey_staff
}
right_portrait = {
trigger = {
exists = scope:special_guest
}
character = scope:special_guest
triggered_animation = {
trigger = {
location = {
roaming_activity_monsoon_trigger = yes
}
}
animation = scheme
}
triggered_animation = {
trigger = {
location = {
roaming_activity_winter_trigger = yes
terrain = mountains
}
}
animation = shiver
}
animation = happiness
}
override_effect_2d = {
reference = rain
trigger = {
location = {
roaming_activity_monsoon_trigger = yes
}
}
}
widgets = {
widget = {
is_shown = {
location = {
roaming_activity_winter_trigger = yes
NOT = { terrain = mountains }
}
}
gui = "event_window_widget_vfx_snow"
container = "foreground_shader_vfx_container"
}
widget = {
is_shown = {
location = {
roaming_activity_winter_trigger = yes
terrain = mountains
}
}
gui = "event_window_widget_vfx_snowstorm"
container = "foreground_shader_vfx_container"
}
}
override_effect_2d = { # Fallback, will be chosen if the others weren't
trigger = {
scope:province = {
roaming_activity_monsoon_trigger = no
roaming_activity_winter_trigger = no
}
}
reference = legend_glow
}
immediate = {
save_scope_as = root_scope
roaming_tally_variable_effect = { TYPE = stress VALUE = miniscule_stress_impact_loss }
hidden_effect = {
involved_activity = {
add_activity_log_entry = {
key = roaming_start_of_the_journey_key
tags = { activity_log }
character = root
root = {
show_as_tooltip = {
stress_impact = {
base = miniscule_stress_impact_loss
}
}
}
}
}
}
}
option = {
name = bp3_roaming.0005.a
trigger = {
location = {
OR = {
terrain = forest
terrain = farmlands
terrain = drylands
terrain = oasis
terrain = wetlands
terrain = taiga
terrain = floodplains
}
has_winter_trigger = no
NAND = {
tropical_seasons_region_trigger = yes
middle_of_year_season_trigger = yes
}
}
}
stress_impact = {
base = miniscule_stress_impact_loss
}
roaming_tally_variable_effect = { TYPE = stress VALUE = miniscule_stress_impact_loss }
}
option = {
name = bp3_roaming.0005.b
trigger = {
location = {
OR = {
terrain = hills
terrain = mountains
terrain = plains
terrain = desert_mountains
terrain = desert
terrain = jungle
terrain = steppe
}
has_winter_trigger = no
NAND = {
tropical_seasons_region_trigger = yes
middle_of_year_season_trigger = yes
}
}
}
stress_impact = {
base = miniscule_stress_impact_loss
}
roaming_tally_variable_effect = { TYPE = stress VALUE = miniscule_stress_impact_loss }
}
option = {
name = bp3_roaming.0005.c
trigger = {
location = {
has_winter_trigger = yes
}
}
stress_impact = {
base = miniscule_stress_impact_loss
}
roaming_tally_variable_effect = { TYPE = stress VALUE = miniscule_stress_impact_loss }
}
option = {
name = bp3_roaming.0005.d
trigger = {
location = {
tropical_seasons_region_trigger = yes
middle_of_year_season_trigger = yes
}
}
stress_impact = {
base = miniscule_stress_impact_loss
}
roaming_tally_variable_effect = { TYPE = stress VALUE = miniscule_stress_impact_loss }
}
}
# Ending Event
bp3_roaming.0010 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0010.t
desc = bp3_roaming.0010.desc
theme = roaming_activity
left_portrait = {
character = scope:host
animation = scheme
}
right_portrait = {
character = scope:special_guest
animation = idle
trigger = {
exists = scope:special_guest
}
}
option = {
name = bp3_roaming.0010.a
stress_impact = {
base = roaming_outro_stress_loss_value
athletic = medium_stress_impact_loss
lifestyle_traveler = minor_stress_impact_loss
}
if = {
limit = {
has_trait = depressed_1
has_character_flag = roaming_very_strong_stress_loss
}
remove_trait = depressed_1
}
}
after = {
remove_character_flag = roaming_weak_stress_loss
remove_character_flag = roaming_medium_stress_loss
remove_character_flag = roaming_strong_stress_loss
remove_character_flag = roaming_very_strong_stress_loss
}
}
### Mid-Activity Events
# The View (Mountains/Hills/Desert Mountains)
bp3_roaming.0050 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0050.t
desc = bp3_roaming.0050.desc
theme = roaming_activity
left_portrait = {
character = scope:host
animation = survey_staff
}
right_portrait = {
character = scope:special_guest
animation = idle
trigger = {
exists = scope:special_guest
}
}
trigger = {
location = {
OR = {
terrain = mountains
terrain = hills
terrain = desert_mountains
}
}
}
option = {
name = bp3_roaming.0050.a
roaming_progress_events_reward_effect = { LOG_KEY = breathtaking_view_key }
}
}
# The Oasis (Oasis/Desert/Drylands)
bp3_roaming.0060 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0060.t
desc = bp3_roaming.0060.desc
theme = roaming_activity
override_background = { reference = ce1_legendary_oasis }
left_portrait = {
character = scope:host
animation = survey_staff
}
right_portrait = {
character = scope:special_guest
animation = idle
trigger = {
exists = scope:special_guest
}
}
trigger = {
location = {
OR = {
terrain = oasis
terrain = desert
terrain = drylands
}
}
}
option = {
name = bp3_roaming.0060.a
roaming_progress_events_reward_effect = { LOG_KEY = the_oasis_key }
}
}
# The Path's End (Forest/Taiga/Jungle)
bp3_roaming.0070 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0070.t
desc = {
desc = bp3_roaming.0070.desc.intro
first_valid = {
triggered_desc = {
trigger = {
has_government = landless_adventurer_government
}
desc = bp3_roaming.0070.desc.landless
}
desc = bp3_roaming.0070.desc.landed
}
}
theme = roaming_activity
override_background = {
trigger = {
location = { terrain = jungle }
}
reference = wilderness_jungle
}
override_background = {
trigger = {
location = { has_winter_trigger = no }
}
reference = wilderness_forest_pine
}
left_portrait = {
character = scope:host
animation = scheme
}
right_portrait = {
character = scope:special_guest
animation = idle
trigger = {
exists = scope:special_guest
}
}
trigger = {
location = {
OR = {
terrain = forest
terrain = taiga
terrain = jungle
}
}
}
option = {
name = bp3_roaming.0070.a
roaming_progress_events_reward_effect = { LOG_KEY = paths_end_key }
}
}
# The Ocean Scent (Fallback for ocean adjacent provinces)
bp3_roaming.0080 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0080.t
desc = bp3_roaming.0080.desc
theme = roaming_activity
override_background = { reference = bp3_coast }
left_portrait = {
character = scope:host
animation = survey_staff
}
right_portrait = {
character = scope:special_guest
animation = idle
trigger = {
exists = scope:special_guest
}
}
trigger = {
location = {
is_coastal = yes
}
}
option = {
name = bp3_roaming.0080.a
roaming_progress_events_reward_effect = { LOG_KEY = ocean_scent_key }
}
}
# The River at Journey's End (Fallback for terrain that hasn't been covered)
bp3_roaming.0090 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0090.t
desc = bp3_roaming.0090.desc
theme = roaming_activity
override_background = { reference = ce1_legendary_spring }
left_portrait = {
character = scope:host
animation = survey_staff
}
right_portrait = {
character = scope:special_guest
animation = idle
trigger = {
exists = scope:special_guest
}
}
trigger = {
location = {
is_coastal = no
NOR = {
terrain = mountains
terrain = hills
terrain = desert_mountains
terrain = oasis
terrain = desert
terrain = drylands
terrain = forest
terrain = taiga
terrain = jungle
}
}
}
option = {
name = bp3_roaming.0090.a
roaming_progress_events_reward_effect = { LOG_KEY = river_journeys_end_key }
}
}
### Random Events
# Meeting a Stranger
bp3_roaming.0100 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0100.t
desc = {
desc = bp3_roaming.0100.desc
triggered_desc = {
desc = bp3_roaming.0100.desc.companion
trigger = {
exists = scope:special_guest
}
}
}
theme = roaming_activity
left_portrait = {
character = scope:host
animation = survey_staff
}
center_portrait = {
character = scope:special_guest
animation = happiness
}
right_portrait = {
character = scope:ancient_traveler
animation = scheme
}
cooldown = { months = 3 }
weight_multiplier = {
base = 1
modifier = {
OR = {
has_activity_intent = reduce_stress_intent
has_activity_intent = roaming_mystic_intent
}
factor = 1.5
}
}
immediate = {
save_scope_value_as = {
name = trait_xp
value = { integer_range = { min = 3 max = 5 } }
}
create_character = {
location = root.location
gender_female_chance = {
if = {
limit = { root.faith = { has_doctrine = doctrine_gender_male_dominated } }
add = 0
}
else_if = {
limit = { root.faith = { has_doctrine = doctrine_gender_female_dominated } }
add = 100
}
else = {
add = 50
}
}
template = ancient_forest_traveler_character
save_scope_as = ancient_traveler
}
}
option = {
name = bp3_roaming.0100.a
flavor = bp3_roaming.0100.a.flavor
scope:ancient_traveler = { silent_disappear_ai_if_not_hired = yes }
if = {
limit = {
has_trait = lifestyle_mystic
}
involved_activity = {
add_activity_log_entry = {
key = roaming_pondering_stone_mystic_key
tags = { activity_log }
character = scope:host
root = {
add_trait_xp = {
trait = lifestyle_mystic
value = scope:trait_xp
}
}
}
}
roaming_tally_variable_effect = { TYPE = mystic_xp VALUE = scope:trait_xp }
}
random_list = {
10 = {
trigger = { NOT = { has_character_modifier = pondering_rulership_modifier } }
roaming_pondering_stone_effect = { TYPE = rulership }
}
10 = {
trigger = { NOT = { has_character_modifier = pondering_religion_modifier } }
roaming_pondering_stone_effect = { TYPE = religion }
}
10 = {
trigger = { NOT = { has_character_modifier = pondering_war_modifier } }
roaming_pondering_stone_effect = { TYPE = war }
}
10 = {
trigger = { NOT = { has_character_modifier = pondering_schemes_modifier } }
roaming_pondering_stone_effect = { TYPE = schemes }
}
10 = {
trigger = { NOT = { has_character_modifier = pondering_management_modifier } }
roaming_pondering_stone_effect = { TYPE = management }
}
10 = {
trigger = { NOT = { has_character_modifier = pondering_travel_modifier } }
roaming_pondering_stone_effect = { TYPE = travel }
}
10 = {
trigger = { NOT = { has_trait = lifestyle_mystic } }
involved_activity = {
add_activity_log_entry = {
key = roaming_pondering_stone_key
tags = { activity_log }
character = scope:host
root = {
add_trait = lifestyle_mystic
set_variable = roaming_tally_mystic
}
}
}
}
}
stress_impact = { lifestyle_mystic = minor_stress_impact_loss }
roaming_tally_stress_impact_effect = { TRAIT = lifestyle_mystic VALUE = minor_stress_impact_loss }
ai_chance = {
base = 100
modifier = {
factor = 1.5
has_trait = lifestyle_mystic
}
}
}
option = {
name = bp3_roaming.0100.b
involved_activity = {
add_activity_log_entry = {
key = roaming_resting_stone_key
tags = { activity_log }
character = scope:host
root = {
stress_impact = {
base = minor_stress_impact_loss
athletic = medium_stress_gain
lazy = medium_stress_impact_loss
}
roaming_tally_variable_effect = { TYPE = stress VALUE = minor_stress_impact_loss }
roaming_tally_stress_impact_effect = { TRAIT = athletic VALUE = minor_stress_gain }
roaming_tally_stress_impact_effect = { TRAIT = lazy VALUE = medium_stress_impact_loss }
}
}
}
scope:ancient_traveler = { silent_disappear_ai_if_not_hired = yes }
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = athletic
}
}
}
option = {
name = bp3_roaming.0100.c
flavor = bp3_roaming.0100.c.flavor
duel = {
skill = learning
target = scope:ancient_traveler
50 = {
desc = bp3_roaming.0100.c.win
compare_modifier = {
value = scope:duel_value
multiplier = 1.5
min = -49
}
involved_activity = {
add_activity_log_entry = {
key = roaming_old_man_key
tags = { activity_log }
character = scope:host
root = {
send_interface_toast = {
type = event_generic_good
title = bp3_roaming.0100.c.win
left_icon = root
add_learning_lifestyle_xp = 250
roaming_tally_variable_effect = {
TYPE = learning_lifestyle_xp
VALUE = 250
}
add_learning_skill = 1
roaming_tally_variable_effect = {
TYPE = learning_skill
VALUE = 1
}
}
}
}
}
}
50 = {
desc = bp3_roaming.0100.c.neutral
compare_modifier = {
value = scope:duel_value
multiplier = -1.5
min = -49
}
involved_activity = {
add_activity_log_entry = {
key = roaming_old_man_key
tags = { activity_log }
character = scope:host
root = {
send_interface_toast = {
type = event_generic_neutral
title = bp3_roaming.0100.c.neutral
add_visiting_courtier = scope:ancient_traveler
}
}
}
}
}
50 = {
desc = bp3_roaming.0100.c.loss
compare_modifier = {
value = scope:duel_value
multiplier = -1
min = -49
}
involved_activity = {
add_activity_log_entry = {
key = roaming_old_man_key
tags = { activity_log }
character = scope:host
root = {
send_interface_toast = {
type = event_generic_bad
title = bp3_roaming.0100.c.loss
}
}
}
}
}
}
stress_impact = {
gregarious = minor_stress_impact_loss
shy = medium_stress_gain
}
roaming_tally_stress_impact_effect = { TRAIT = gregarious VALUE = minor_stress_impact_loss }
roaming_tally_stress_impact_effect = { TRAIT = shy VALUE = medium_stress_gain }
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = shy
}
}
}
option = {
name = bp3_roaming.0100.d
trigger = {
has_trait = lifestyle_poet
}
involved_activity = {
add_activity_log_entry = {
key = roaming_ancient_traveler_poet_key
tags = { activity_log }
character = root
root = {
roaming_fame_reward_event_effect = { VALUE = roaming_reward_fame_medium }
stress_impact = {
honest = medium_stress_gain
deceitful = minor_stress_impact_loss
}
roaming_tally_stress_impact_effect = { TRAIT = honest VALUE = minor_stress_gain }
roaming_tally_stress_impact_effect = { TRAIT = deceitful VALUE = minor_stress_impact_loss }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 10
has_trait = lifestyle_poet
}
modifier = {
factor = 0
has_trait = honest
}
}
}
}
# Normal Animal Sighting
bp3_roaming.0110 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0110.t
desc = {
desc = bp3_roaming.0110.desc
triggered_desc = {
trigger = {
exists = scope:special_guest
}
desc = bp3_roaming.0110.desc.companion
}
}
theme = roaming_activity
override_background = {
trigger = {
location = {
terrain = forest
has_winter_trigger = no
}
}
reference = ep2_hunt_foggy_forest
}
left_portrait = {
character = scope:host
triggered_animation = {
trigger = {
OR = {
scope:sighting_county = {
OR = {
var:animal_type = flag:fox
var:animal_type = flag:hare
}
}
has_trait = lifestyle_hunter
prowess >= 25
}
}
animation = personality_bold
}
triggered_animation = {
trigger = {
NOR = {
scope:sighting_county = {
OR = {
var:animal_type = flag:fox
var:animal_type = flag:hare
}
}
has_trait = lifestyle_hunter
prowess >= 25
}
}
animation = paranoia
}
}
center_portrait = {
character = scope:special_guest
animation = fear
}
cooldown = { months = 3 }
weight_multiplier = {
base = 1
modifier = {
OR = {
has_activity_intent = reduce_stress_intent
has_activity_intent = roaming_storyteller_intent
}
factor = 1.5
}
}
override_effect_2d = {
reference = rain
trigger = {
location = {
tropical_seasons_region_trigger = yes
middle_of_year_season_trigger = yes
}
}
}
widget = {
is_shown = {
location = { has_winter_trigger = yes }
}
gui = "event_window_widget_vfx_snow"
container = "foreground_shader_vfx_container"
}
override_effect_2d = {
reference = fog
trigger = {
location = {
has_winter_trigger = no
NAND = {
tropical_seasons_region_trigger = yes
middle_of_year_season_trigger = yes
}
}
}
}
trigger = {
NOT = {
any_sub_realm_county = { has_county_modifier = hunt_sighting_standard_modifier }
}
}
immediate = {
location = { save_scope_as = sighting_province }
location.county = {
save_scope_as = sighting_county
hunt_activity_standard_game_effect = { PROVINCE = scope:sighting_province HUNTER = root }
}
}
option = {
name = bp3_roaming.0110.a
involved_activity = {
add_activity_log_entry = {
key = roaming_animal_sighting_key
tags = { activity_log }
character = root
root = {
roaming_fame_reward_event_effect = { VALUE = roaming_reward_fame_medium }
scope:sighting_county = {
# Create new sighting
hunt_create_sighting_effect = {
TYPE = standard
ANIMAL = var:animal_type
OWNER = root
}
}
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
OR = {
has_trait = lifestyle_hunter
has_trait = athletic
}
}
}
}
option = {
name = {
text = bp3_roaming.0110.b.weakling
trigger = {
NOR = {
scope:sighting_county = {
OR = {
var:animal_type = flag:fox
var:animal_type = flag:hare
}
}
has_trait = lifestyle_hunter
prowess >= 25
}
}
}
name = {
text = bp3_roaming.0110.b.hunter
trigger = {
OR = {
scope:sighting_county = {
OR = {
var:animal_type = flag:fox
var:animal_type = flag:hare
}
}
has_trait = lifestyle_hunter
prowess >= 25
}
}
}
involved_activity = {
add_activity_log_entry = {
key = roaming_animal_sighting_key
tags = { activity_log }
character = root
root = {
roaming_fame_reward_event_effect = { VALUE = roaming_reward_fame_medium }
stress_impact = { base = medium_stress_impact_loss }
roaming_tally_variable_effect = { TYPE = stress VALUE = medium_stress_impact_loss }
}
}
}
ai_chance = {
base = 100
}
}
option = {
name = bp3_roaming.0110.c
trigger = {
has_trait = lifestyle_poet
}
involved_activity = {
add_activity_log_entry = {
key = roaming_animal_sighting_poet_key
tags = { activity_log }
character = root
root = {
roaming_fame_reward_event_effect = { VALUE = roaming_reward_fame_very_high }
stress_impact = {
honest = medium_stress_gain
deceitful = minor_stress_impact_loss
}
roaming_tally_stress_impact_effect = { TRAIT = honest VALUE = minor_stress_gain }
roaming_tally_stress_impact_effect = { TRAIT = deceitful VALUE = minor_stress_impact_loss }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 10
has_trait = lifestyle_poet
}
}
}
}
# Legendary Animal Sighting
bp3_roaming.0120 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0120.t
desc = {
desc = bp3_roaming.0120.desc
triggered_desc = {
desc = bp3_roaming.0120.desc.companion
trigger = {
exists = scope:special_guest
}
}
}
theme = roaming_activity
override_background = {
trigger = {
location = {
terrain = forest
has_winter_trigger = no
}
}
reference = ep2_hunt_foggy_forest
}
left_portrait = {
character = scope:host
triggered_animation = {
trigger = {
OR = {
scope:sighting_county = {
OR = {
var:animal_type = flag:fox
var:animal_type = flag:hare
}
}
has_trait = lifestyle_hunter
prowess >= 25
}
}
animation = personality_bold
}
triggered_animation = {
trigger = {
NOR = {
scope:sighting_county = {
OR = {
var:animal_type = flag:fox
var:animal_type = flag:hare
}
}
has_trait = lifestyle_hunter
prowess >= 25
}
}
animation = paranoia
}
}
center_portrait = {
character = scope:special_guest
animation = fear
}
cooldown = { months = 3 }
weight_multiplier = {
base = 1
modifier = {
OR = {
has_activity_intent = reduce_stress_intent
has_activity_intent = roaming_storyteller_intent
}
factor = 1.5
}
}
override_effect_2d = {
reference = rain
trigger = {
location = {
tropical_seasons_region_trigger = yes
middle_of_year_season_trigger = yes
}
}
}
widget = {
is_shown = {
location = { has_winter_trigger = yes }
}
gui = "event_window_widget_vfx_snow"
container = "foreground_shader_vfx_container"
}
override_effect_2d = {
reference = fog
trigger = {
location = {
has_winter_trigger = no
NAND = {
tropical_seasons_region_trigger = yes
middle_of_year_season_trigger = yes
}
}
}
}
trigger = {
NOT = {
any_sub_realm_county = {
has_county_modifier = hunt_sighting_legendary_modifier
}
}
}
immediate = {
location = { save_scope_as = sighting_province }
location.county = {
save_scope_as = sighting_county
hunt_activity_standard_game_effect = { PROVINCE = scope:sighting_province HUNTER = root }
}
}
option = {
name = bp3_roaming.0120.a
involved_activity = {
add_activity_log_entry = {
key = roaming_legendary_sighting_key
tags = { activity_log }
character = root
root = {
roaming_fame_reward_event_effect = { VALUE = roaming_reward_fame_very_high }
scope:sighting_county = {
# Create new sighting
hunt_create_sighting_effect = {
TYPE = legendary
ANIMAL = var:animal_type
OWNER = root
}
}
}
}
}
start_hunt_mystical_animal_story_cycle_effect = yes
ai_chance = {
base = 100
modifier = {
factor = 1.5
OR = {
has_trait = lifestyle_hunter
has_trait = athletic
}
}
}
}
option = {
name = bp3_roaming.0120.b
involved_activity = {
add_activity_log_entry = {
key = roaming_legendary_sighting_key
tags = { activity_log }
character = root
root = {
roaming_fame_reward_event_effect = { VALUE = roaming_reward_fame_very_high }
stress_impact = { base = massive_stress_impact_loss }
roaming_tally_variable_effect = { TYPE = stress VALUE = massive_stress_impact_loss }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 10
stress > 90
}
}
}
option = {
name = bp3_roaming.0120.c
trigger = {
has_trait = lifestyle_poet
}
involved_activity = {
add_activity_log_entry = {
key = roaming_legendary_sighting_poet_key
tags = { activity_log }
character = root
root = {
roaming_fame_reward_event_effect = { VALUE = roaming_reward_fame_legendary }
stress_impact = {
honest = medium_stress_gain
deceitful = minor_stress_impact_loss
}
roaming_tally_stress_impact_effect = { TRAIT = honest VALUE = minor_stress_gain }
roaming_tally_stress_impact_effect = { TRAIT = deceitful VALUE = minor_stress_impact_loss }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 10
has_trait = lifestyle_poet
}
}
}
}
# A Battlefield Forgotten
bp3_roaming.0130 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0130.t
desc = {
desc = bp3_roaming.0130.desc
triggered_desc = {
desc = bp3_roaming.0130.desc.companion
trigger = {
exists = scope:special_guest
}
}
}
theme = battle
left_portrait = {
character = scope:host
animation = worry
}
center_portrait = {
character = scope:special_guest
animation = fear
}
override_effect_2d = {
reference = fog
}
cooldown = { months = 3 }
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = roaming_storyteller_intent
factor = 1.5
}
}
option = {
name = bp3_roaming.0130.a
involved_activity = {
add_activity_log_entry = {
key = roaming_battlefield_prayer_key
tags = { activity_log }
character = root
root = {
roaming_fame_reward_event_effect = { VALUE = roaming_reward_fame_medium }
add_piety = medium_piety_gain
roaming_tally_variable_effect = { TYPE = piety VALUE = medium_piety_gain }
stress_impact = {
compassionate = minor_stress_impact_loss
zealous = minor_stress_impact_loss
}
roaming_tally_stress_impact_effect = { TRAIT = compassionate VALUE = minor_stress_impact_loss }
roaming_tally_stress_impact_effect = { TRAIT = zealous VALUE = minor_stress_impact_loss }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
OR = {
has_trait = zealous
has_trait = compassionate
}
}
}
}
option = {
name = bp3_roaming.0130.b
involved_activity = {
add_activity_log_entry = {
key = roaming_battlefield_scavenging_key
tags = { activity_log }
character = root
root = {
roaming_fame_reward_event_effect = { VALUE = roaming_reward_fame_medium }
add_gold = minor_gold_value
roaming_tally_variable_effect = { TYPE = gold VALUE = minor_gold_value }
stress_impact = {
greedy = minor_stress_impact_loss
compassionate = minor_stress_gain
generous = medium_stress_gain
}
roaming_tally_stress_impact_effect = { TRAIT = greedy VALUE = minor_stress_impact_loss }
roaming_tally_stress_impact_effect = { TRAIT = compassionate VALUE = minor_stress_gain }
roaming_tally_stress_impact_effect = { TRAIT = generous VALUE = medium_stress_gain }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = generous
}
}
}
}
option = {
name = bp3_roaming.0130.c
trigger = {
has_trait = lifestyle_poet
}
involved_activity = {
add_activity_log_entry = {
key = roaming_battlefield_poet_key
tags = { activity_log }
character = root
root = {
roaming_fame_reward_event_effect = { VALUE = roaming_reward_fame_very_high }
stress_impact = {
honest = medium_stress_gain
deceitful = minor_stress_impact_loss
}
roaming_tally_stress_impact_effect = { TRAIT = honest VALUE = minor_stress_gain }
roaming_tally_stress_impact_effect = { TRAIT = deceitful VALUE = minor_stress_impact_loss }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 10
has_trait = lifestyle_poet
}
}
}
}
# A Night in the Wilds
bp3_roaming.0140 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0140.t
desc = {
desc = bp3_roaming.0140.desc
triggered_desc = {
desc = bp3_roaming.0140.desc.companion
trigger = {
exists = scope:special_guest
}
}
}
theme = roaming_activity
override_background = { reference = ep3_campfire }
left_portrait = {
character = scope:host
animation = paranoia
}
cooldown = { months = 3 }
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = roaming_mystic_intent
factor = 1.5
}
}
immediate = {
save_scope_value_as = {
name = trait_xp
value = { integer_range = { min = 5 max = 8 } }
}
}
option = {
name = bp3_roaming.0140.a
involved_activity = {
add_activity_log_entry = {
key = roaming_night_scare_key
tags = { activity_log }
character = root
root = {
stress_impact = {
base = miniscule_stress_gain
}
roaming_tally_variable_effect = { TYPE = stress VALUE = miniscule_stress_gain }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
has_trait = content
}
}
}
option = {
name = bp3_roaming.0140.b
involved_activity = {
random_list = {
50 = {
desc = bp3_roaming.0140.b.2
add_activity_log_entry = {
key = roaming_night_sleep_key
tags = { activity_log }
character = root
root = {
send_interface_toast = {
type = event_generic_good
title = bp3_roaming.0140.b.2
left_icon = root
stress_impact = {
base = minor_stress_impact_loss
}
roaming_tally_variable_effect = { TYPE = stress VALUE = minor_stress_impact_loss }
}
}
}
}
50 = {
desc = bp3_roaming.0140.b.1
add_activity_log_entry = {
key = roaming_night_threat_key
tags = { activity_log }
character = root
root = {
send_interface_toast = {
type = event_generic_bad
title = bp3_roaming.0140.b.1
left_icon = root
stress_impact = {
base = minor_stress_gain
}
roaming_tally_variable_effect = { TYPE = stress VALUE = minor_stress_gain }
}
}
}
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
has_trait = paranoid
}
}
}
option = {
name = bp3_roaming.0140.c
trigger = {
has_trait = lifestyle_poet
}
involved_activity = {
add_activity_log_entry = {
key = roaming_night_poet_key
tags = { activity_log }
character = root
root = {
roaming_fame_reward_event_effect = { VALUE = roaming_reward_fame_medium }
stress_impact = {
base = miniscule_stress_gain
honest = medium_stress_gain
deceitful = minor_stress_impact_loss
}
roaming_tally_variable_effect = { TYPE = stress VALUE = miniscule_stress_gain }
roaming_tally_stress_impact_effect = { TRAIT = honest VALUE = minor_stress_gain }
roaming_tally_stress_impact_effect = { TRAIT = deceitful VALUE = minor_stress_impact_loss }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 10
has_trait = lifestyle_poet
}
}
}
option = {
name = bp3_roaming.0140.d
trigger = {
has_trait = lifestyle_mystic
}
involved_activity = {
add_activity_log_entry = {
key = roaming_night_mystic_key
tags = { activity_log }
character = root
root = {
add_trait_xp = {
trait = lifestyle_mystic
value = scope:trait_xp
}
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 10
has_trait = lifestyle_mystic
}
}
}
}
# A Quiet Pond
bp3_roaming.0150 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0150.t
desc = {
desc = bp3_roaming.0150.desc
triggered_desc = {
desc = bp3_roaming.0150.desc.no_companion
trigger = {
NOT = { exists = scope:special_guest }
}
}
triggered_desc = {
desc = bp3_roaming.0150.desc.companion
trigger = {
exists = scope:special_guest
}
}
}
theme = roaming_activity
override_background = {
reference = ce1_legendary_oasis
trigger = {
location = {
OR = {
terrain = desert
terrain = desert_mountains
}
}
}
}
override_background = {
reference = ce1_legendary_spring
trigger = {
location = {
NOR = {
terrain = desert
terrain = desert_mountains
}
}
}
}
left_portrait = {
character = scope:host
animation = survey_staff
}
center_portrait = {
character = scope:special_guest
animation = happiness
}
cooldown = { months = 3 }
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = reduce_stress_intent
factor = 1.5
}
}
option = {
name = bp3_roaming.0150.a
involved_activity = {
add_activity_log_entry = {
key = roaming_quiet_pond_key
tags = { activity_log }
character = root
root = {
stress_impact = {
base = minor_stress_impact_loss
lazy = minor_stress_impact_loss
}
roaming_tally_variable_effect = { TYPE = stress VALUE = minor_stress_impact_loss }
roaming_tally_stress_impact_effect = { TRAIT = lazy VALUE = minor_stress_impact_loss }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
has_trait = lazy
}
}
}
option = {
name = bp3_roaming.0150.b
trigger = {
has_trait = lifestyle_poet
}
involved_activity = {
add_activity_log_entry = {
key = roaming_quiet_pond_poet_key
tags = { activity_log }
character = root
root = {
roaming_fame_reward_event_effect = { VALUE = roaming_reward_fame_medium }
stress_impact = {
honest = medium_stress_gain
deceitful = minor_stress_impact_loss
}
roaming_tally_stress_impact_effect = { TRAIT = honest VALUE = minor_stress_gain }
roaming_tally_stress_impact_effect = { TRAIT = deceitful VALUE = minor_stress_impact_loss }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 10
has_trait = lifestyle_poet
}
}
}
}
# The Ruined Building
bp3_roaming.0160 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0160.t
desc = {
desc = bp3_roaming.0160.desc
triggered_desc = {
desc = bp3_roaming.0160.desc.no_companion
trigger = {
NOT = { exists = scope:special_guest }
}
}
triggered_desc = {
desc = bp3_roaming.0160.desc.companion
trigger = {
exists = scope:special_guest
}
}
desc = bp3_roaming.0160.desc.outro
}
theme = roaming_activity
override_background = {
reference = burning_building_west
}
override_effect_2d = {
reference = smoke
}
left_portrait = {
character = scope:host
animation = disbelief
}
center_portrait = {
character = scope:special_guest
animation = fear
}
cooldown = { months = 3 }
weight_multiplier = {
base = 1
}
option = {
name = bp3_roaming.0160.a
involved_activity = {
add_activity_log_entry = {
key = roaming_burning_farm_piety_key
tags = { activity_log }
character = root
root = {
add_piety = medium_piety_gain
roaming_tally_variable_effect = { TYPE = piety VALUE = medium_piety_gain }
stress_impact = {
compassionate = minor_stress_impact_loss
zealous = minor_stress_impact_loss
}
roaming_tally_stress_impact_effect = { TRAIT = compassionate VALUE = minor_stress_impact_loss }
roaming_tally_stress_impact_effect = { TRAIT = zealous VALUE = minor_stress_impact_loss }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = greedy
}
}
}
option = {
name = bp3_roaming.0160.b
involved_activity = {
add_activity_log_entry = {
key = roaming_burning_farm_greedy_key
tags = { activity_log }
character = root
root = {
add_gold = tiny_gold_value
roaming_tally_variable_effect = { TYPE = gold VALUE = tiny_gold_value }
stress_impact = {
greedy = minor_stress_impact_loss
compassionate = minor_stress_gain
generous = medium_stress_gain
}
roaming_tally_stress_impact_effect = { TRAIT = greedy VALUE = minor_stress_impact_loss }
roaming_tally_stress_impact_effect = { TRAIT = compassionate VALUE = minor_stress_gain }
roaming_tally_stress_impact_effect = { TRAIT = generous VALUE = medium_stress_gain }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = generous
}
}
}
}
option = {
name = bp3_roaming.0160.c
trigger = {
has_trait = lifestyle_poet
}
involved_activity = {
add_activity_log_entry = {
key = roaming_burning_farm_poet_key
tags = { activity_log }
character = root
root = {
roaming_fame_reward_event_effect = { VALUE = roaming_reward_fame_medium }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 10
has_trait = lifestyle_poet
}
}
}
}
# A Quiet Day
bp3_roaming.0170 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0170.t
desc = {
desc = bp3_roaming.0170.desc
triggered_desc = {
desc = bp3_roaming.0170.desc.no_companion
trigger = {
NOT = { exists = scope:special_guest }
}
}
triggered_desc = {
desc = bp3_roaming.0170.desc.companion
trigger = {
exists = scope:special_guest
}
}
}
theme = roaming_activity
cooldown = { months = 3 }
left_portrait = {
character = scope:host
animation = happiness
}
right_portrait = {
character = scope:special_guest
animation = laugh
}
override_effect_2d = {
reference = legend_glow
}
weight_multiplier = {
base = 1
modifier = {
OR = {
has_activity_intent = reduce_stress_intent
has_activity_intent = roaming_befriend_intent
}
factor = 1.5
}
}
option = {
name = bp3_roaming.0170.a
roaming_progress_events_reward_effect = { LOG_KEY = roaming_quiet_day_key }
}
}
# Are we there yet?
bp3_roaming.0180 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0180.t
desc = bp3_roaming.0180.desc
theme = roaming_activity
left_portrait = {
character = scope:host
animation = happiness
}
right_portrait = {
character = scope:special_guest
animation = disappointed
}
cooldown = { months = 3 }
weight_multiplier = {
base = 1
modifier = {
OR = {
has_activity_intent = reduce_stress_intent
has_activity_intent = roaming_befriend_intent
}
factor = 1.5
}
}
trigger = {
scope:special_guest ?= {
OR = {
age <= 16
has_trait = lazy
has_trait = impatient
current_weight > 50
}
}
NOR = {
has_trait = lazy
has_trait = impatient
}
}
option = {
name = bp3_roaming.0180.a
involved_activity = {
add_activity_log_entry = {
key = roaming_tired_mutterings_lies_key
tags = { activity_log }
character = root
root = {
stress_impact = {
base = minor_stress_impact_loss
honest = medium_stress_gain
deceitful = medium_stress_impact_loss
callous = minor_stress_impact_loss
}
roaming_tally_variable_effect = { TYPE = stress VALUE = medium_stress_impact_loss }
roaming_tally_stress_impact_effect = { TRAIT = honest VALUE = medium_stress_gain }
roaming_tally_stress_impact_effect = { TRAIT = deceitful VALUE = medium_stress_impact_loss }
roaming_tally_stress_impact_effect = { TRAIT = callous VALUE = minor_stress_impact_loss }
}
}
}
random = {
chance = 10
involved_activity = {
add_activity_log_entry = {
key = roaming_tired_mutterings_athletic_key
tags = { activity_log }
character = root
root = {
send_interface_toast = {
type = event_generic_good
title = bp3_roaming.0180.a_short
left_icon = root
add_trait = athletic
set_variable = roaming_tally_athletic
}
}
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = honest
}
}
}
option = {
name = bp3_roaming.0180.b
involved_activity = {
add_activity_log_entry = {
key = roaming_tired_mutterings_break_key
tags = { activity_log }
character = scope:special_guest
scope:special_guest = {
reverse_add_opinion = {
modifier = friendliness_opinion
target = root
opinion = 15
}
roaming_tally_variable_effect = { TYPE = opinion VALUE = 15 }
}
root = {
reverse_add_opinion = {
modifier = friendliness_opinion
target = scope:special_guest
opinion = 15
}
roaming_tally_variable_effect = { TYPE = opinion VALUE = 15 }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = sadistic
has_trait = athletic
has_trait = callous
}
}
}
}
}
# A chance to talk
bp3_roaming.0190 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0190.t
desc = bp3_roaming.0190.desc
theme = roaming_activity
left_portrait = {
character = scope:host
animation = happiness
}
right_portrait = {
character = scope:special_guest
animation = laugh
}
cooldown = { months = 3 }
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = roaming_befriend_intent
factor = 1.5
}
}
trigger = {
exists = scope:special_guest
}
immediate = {
random_courtier_or_guest = {
limit = {
NOR = {
this = root
this = scope:special_guest
}
age > 5
}
save_scope_as = random_courtier
}
}
option = {
name = bp3_roaming.0190.a
involved_activity = {
add_activity_log_entry = {
key = roaming_chance_to_talk_key
tags = { activity_log }
character = root
scope:special_guest = {
reverse_add_opinion = {
modifier = friendliness_opinion
target = root
opinion = 20
}
roaming_tally_variable_effect = { TYPE = opinion VALUE = 20 }
}
root = {
reverse_add_opinion = {
modifier = friendliness_opinion
target = scope:special_guest
opinion = 20
}
roaming_tally_variable_effect = { TYPE = opinion VALUE = 20 }
}
}
}
}
}
# Astronomical Sight
bp3_roaming.0200 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0200.t
desc = bp3_roaming.0200.desc
theme = roaming_activity
override_background = {
reference = bp1_bonfire
}
left_portrait = {
character = scope:host
animation = happiness
}
right_portrait = {
character = scope:special_guest
animation = admiration
}
cooldown = { years = 1 }
option = {
name = bp3_roaming.0200.a
involved_activity = {
add_activity_log_entry = {
key = roaming_nightsky_canvas_key
tags = { activity_log }
character = root
scope:host = {
stress_impact = {
base = medium_stress_impact_loss
zealous = medium_stress_impact_loss
}
add_wanderer_lifestyle_xp = 500
roaming_tally_stress_impact_effect = { TRAIT = zealous VALUE = medium_stress_impact_loss }
roaming_fame_reward_event_effect = { VALUE = roaming_reward_fame_very_high }
}
}
}
}
}
# The Birds Overhead
bp3_roaming.0210 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0210.t
desc = bp3_roaming.0210.desc
theme = roaming_activity
left_portrait = {
character = scope:host
animation = survey_staff
}
right_portrait = {
character = scope:special_guest
animation = happiness
}
cooldown = { months = 3 }
weight_multiplier = {
base = 1
modifier = {
OR = {
has_activity_intent = reduce_stress_intent
has_activity_intent = roaming_befriend_intent
has_activity_intent = roaming_storyteller_intent
}
factor = 1.5
}
}
option = {
name = bp3_roaming.0210.a
roaming_progress_events_reward_effect = { LOG_KEY = the_birds_overhead_key }
}
}
# The Forgotten Village
bp3_roaming.0220 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0220.t
desc = bp3_roaming.0220.desc
theme = roaming_activity
override_background = { reference = market_tribal }
left_portrait = {
character = scope:host
animation = shock
}
right_portrait = {
character = scope:peasant_character
hide_info = yes
animation = dismissal
}
cooldown = { months = 3 }
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = roaming_mystic_intent
}
}
immediate = {
create_character = {
template = peasant_character
faith = scope:province.faith
culture = scope:province.culture
gender = root
location = scope:province
save_scope_as = peasant_character
}
}
option = {
name = {
trigger = {
is_landless_adventurer = no
}
text = bp3_roaming.0220.a
}
name = {
trigger = {
has_government = landless_adventurer_government
}
text = bp3_roaming.0220.a.landless
}
involved_activity = {
add_activity_log_entry = {
key = the_forgotten_village_key
tags = { activity_log }
character = root
root = {
roaming_gold_reward_APA_effect = { REWARD = tiny_gold_value }
stress_impact = {
greedy = minor_stress_impact_loss
generous = minor_stress_gain
}
roaming_tally_stress_impact_effect = { TRAIT = greedy VALUE = minor_stress_impact_loss }
roaming_tally_stress_impact_effect = { TRAIT = generous VALUE = minor_stress_gain }
if = {
limit = {
has_government = landless_adventurer_government
NOT = { has_trait = gallowsbait }
}
add_trait = gallowsbait
}
else_if = {
limit = {
has_government = landless_adventurer_government
has_trait = gallowsbait
}
add_trait_xp = {
trait = gallowsbait
track = thief
value = 5
}
}
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
has_trait = greedy
}
modifier = {
factor = 0
has_trait = generous
}
}
}
option = {
name = bp3_roaming.0220.b
involved_activity = {
add_activity_log_entry = {
key = the_forgotten_village_key
tags = { activity_log }
character = root
root = {
scope:province = {
add_province_modifier = {
modifier = roaming_forgotten_village_modifier
years = 10
}
}
stress_impact = {
lifestyle_mystic = minor_stress_impact_loss
gregarious = minor_stress_impact_loss
}
roaming_tally_stress_impact_effect = { TRAIT = lifestyle_mystic VALUE = minor_stress_impact_loss }
roaming_tally_stress_impact_effect = { TRAIT = gregarious VALUE = minor_stress_impact_loss }
}
}
}
random = {
chance = roaming_mystic_chance_value
involved_activity = {
add_activity_log_entry = {
key = the_forgotten_village_mystic_key
tags = { activity_log }
character = root
root = {
send_interface_message = {
type = event_generic_good
title = bp3_roaming.0220.b.mystic
roaming_mystic_xp_APA_effect = { REWARD = 3 }
if = {
limit = {
NOT = { has_trait = lifestyle_mystic }
}
add_trait = lifestyle_mystic
}
}
}
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
OR = {
has_trait = gregarious
has_trait = lifestyle_mystic
}
}
}
}
option = {
name = bp3_roaming.0220.c
involved_activity = {
add_activity_log_entry = {
key = the_forgotten_village_key
tags = { activity_log }
character = root
root = {
roaming_fame_reward_event_effect = { VALUE = roaming_reward_fame_medium }
stress_impact = { lifestyle_poet = minor_stress_impact_loss }
roaming_tally_stress_impact_effect = { TRAIT = lifestyle_poet VALUE = minor_stress_impact_loss }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
has_trait = lifestyle_poet
}
}
}
after = {
scope:peasant_character = {
silent_disappear_ai_if_not_hired = yes
}
}
}
# The Hermit
bp3_roaming.0230 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0230.t
desc = bp3_roaming.0230.desc
theme = roaming_activity
left_portrait = {
character = scope:host
animation = boredom
}
right_portrait = {
character = scope:hermit_character
animation = debating
}
cooldown = { months = 3 }
trigger = {
scope:province.religion = {
any_faith = {
this != root.faith
num_county_followers < 3
}
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 1.5
has_activity_intent = roaming_mystic_intent
}
}
immediate = {
scope:province.religion = {
random_faith = {
limit = {
this != root.faith
num_county_followers < 3
}
save_scope_as = hermit_faith
}
}
create_character = {
template = peasant_character
faith = scope:hermit_faith
culture = scope:province.culture
gender = root
location = scope:province
save_scope_as = hermit_character
after_creation = {
add_trait = eccentric
add_character_flag = roaming_character
}
}
}
option = {
name = bp3_roaming.0230.a
involved_activity = {
add_activity_log_entry = {
key = the_hermit_key
tags = { activity_log }
character = root
root = {
add_character_modifier = {
modifier = roaming_the_hermit_modifier
years = 10
}
stress_impact = { zealous = major_stress_gain }
roaming_tally_stress_impact_effect = { TRAIT = zealous VALUE = major_stress_gain }
}
}
}
random = {
chance = roaming_mystic_chance_value
involved_activity = {
add_activity_log_entry = {
key = the_hermit_learning_key
tags = { activity_log }
character = root
root = {
send_interface_message = {
type = event_generic_good
title = bp3_roaming.0230.a.hermit
roaming_mystic_xp_APA_effect = { REWARD = 3 }
if = {
limit = {
NOT = { has_trait = lifestyle_mystic }
}
add_trait = lifestyle_mystic
}
}
}
}
}
}
scope:hermit_character = {
silent_disappear_ai_if_not_hired = yes
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
has_trait = lifestyle_mystic
}
modifier = {
factor = 0
has_trait = zealous
}
}
}
option = {
name = bp3_roaming.0230.b
trigger = {
NOR = {
any_secret = { type = secret_crypto_religionist }
exists = secret_faith
scope:hermit_faith = faith
}
}
involved_activity = {
add_activity_log_entry = {
key = the_hermit_key
tags = { activity_log }
character = root
root = {
custom_tooltip = bp3_roaming.0230.b.tooltip
make_character_crypto_religionist_effect = { CRYPTO_RELIGION = scope:hermit_faith }
stress_impact = { zealous = major_stress_gain }
roaming_tally_stress_impact_effect = { TRAIT = zealous VALUE = major_stress_gain }
}
}
}
scope:hermit_character = {
silent_disappear_ai_if_not_hired = yes
}
ai_chance = {
base = 0
modifier = {
add = 100
OR = {
has_trait = lunatic
has_trait = eccentric
}
}
}
}
option = {
name = bp3_roaming.0230.c
involved_activity = {
add_activity_log_entry = {
key = the_hermit_key
tags = { activity_log }
character = root
root = {
add_piety = medium_piety_gain
roaming_tally_variable_effect = { TYPE = piety VALUE = medium_piety_gain }
scope:hermit_character = {
death = {
death_reason = death_murder
killer = root
}
}
stress_impact = { zealous = medium_stress_impact_loss }
roaming_tally_stress_impact_effect = { TRAIT = zealous VALUE = medium_stress_impact_loss }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
has_trait = zealous
}
}
}
}
# A Night to Remember
bp3_roaming.0240 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0240.t
desc = bp3_roaming.0240.desc
theme = roaming_activity
override_background = { reference = ep3_campfire }
left_portrait = {
character = scope:host
animation = stunned
}
cooldown = { months = 3 }
weight_multiplier = {
base = 1
modifier = {
OR = {
has_activity_intent = reduce_stress_intent
has_activity_intent = roaming_storyteller_intent
has_activity_intent = roaming_mystic_intent
}
factor = 1.5
}
}
trigger = {
scope:province = {
NOT = { has_province_modifier = wayfarer_astronomical_phenomenon }
}
}
option = {
name = bp3_roaming.0240.a
involved_activity = {
add_activity_log_entry = {
key = a_night_to_remember_key
tags = { activity_log }
character = root
root = {
if = {
limit = {
has_trait = lifestyle_mystic
has_activity_intent = roaming_mystic_intent
}
}
else = {
roaming_fame_reward_event_effect = { VALUE = roaming_reward_fame_medium }
}
stress_impact = { base = minor_stress_impact_loss }
roaming_tally_variable_effect = { TYPE = stress VALUE = minor_stress_impact_loss }
}
}
}
}
}
# A Small Grave
bp3_roaming.0250 = {
type = activity_event
content_source = dlc_015
title = bp3_roaming.0250.t
desc = bp3_roaming.0250.desc
theme = roaming_activity
left_portrait = {
character = scope:host
animation = prayer
}
cooldown = { months = 3 }
weight_multiplier = {
base = 1
}
immediate = {
save_scope_value_as = {
name = randomized_chance
value = { integer_range = { min = 1 max = 20 } }
}
}
option = {
name = bp3_roaming.0250.a
involved_activity = {
add_activity_log_entry = {
key = a_small_grave_key
tags = { activity_log }
character = root
root = {
add_piety = medium_piety_gain
roaming_tally_variable_effect = { TYPE = piety VALUE = medium_piety_gain }
stress_impact = { zealous = medium_stress_impact_loss }
roaming_tally_stress_impact_effect = { TRAIT = zealous VALUE = medium_stress_impact_loss }
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
has_trait = zealous
}
}
}
option = {
name = bp3_roaming.0250.b
add_piety = medium_piety_loss
roaming_tally_variable_effect = { TYPE = piety VALUE = medium_piety_loss }
show_as_tooltip = {
random_list = {
1 = {
desc = no_treasure
show_chance = no
}
1 = {
desc = small_treasure
show_chance = no
add_gold = tiny_gold_value
}
1 = {
desc = medium_treasure
show_chance = no
add_gold = minor_gold_value
}
1 = {
desc = large_treasure
show_chance = no
add_gold = medium_gold_value
custom_tooltip = bp3_roaming.0250.artifact
}
}
stress_impact = { greedy = medium_stress_impact_loss }
}
hidden_effect_new_object = {
involved_activity = {
add_activity_log_entry = {
key = a_small_grave_key
tags = { activity_log }
character = root
root = {
if = {
limit = {
scope:randomized_chance > 18
}
hidden_effect = {
create_character = {
template = merchant_template
faith = scope:province.faith
culture = scope:province.culture
gender = root
location = scope:province
save_scope_as = blacksmith_character
}
scope:blacksmith_character = {
random_list = {
1 = {
create_artifact_weapon_effect = {
OWNER = scope:blacksmith_character
CREATOR = scope:blacksmith_character
SET_WEAPON_TYPE = flag:no
}
}
1 = {
create_artifact_armor_effect = {
OWNER = scope:blacksmith_character
CREATOR = scope:blacksmith_character
SET_ARMOR_TYPE = flag:no
}
}
1 = {
create_artifact_brooch_effect = {
OWNER = scope:blacksmith_character
SMITH = scope:blacksmith_character
}
}
}
}
}
send_interface_message = {
type = event_generic_good
title = large_treasure
scope:newly_created_artifact ?= {
set_owner = {
target = root
history = {
actor = root
recipient = root
location = scope:province
type = discovered
}
}
}
add_gold = medium_gold_value
}
}
else_if = {
limit = {
scope:randomized_chance > 13
}
send_interface_message = {
type = event_generic_good
title = medium_treasure
add_gold = minor_gold_value
}
}
else_if = {
limit = {
scope:randomized_chance > 7
}
send_interface_message = {
type = event_generic_good
title = small_treasure
add_gold = tiny_gold_value
}
}
else = {
send_interface_message = {
type = event_generic_good
title = no_treasure
}
}
stress_impact = {
greedy = minor_stress_impact_loss
generous = minor_stress_gain
zealous = minor_stress_gain
}
roaming_tally_stress_impact_effect = { TRAIT = greedy VALUE = minor_stress_impact_loss }
roaming_tally_stress_impact_effect = { TRAIT = generous VALUE = minor_stress_gain }
roaming_tally_stress_impact_effect = { TRAIT = zealous VALUE = minor_stress_gain }
}
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
has_trait = greedy
}
modifier = {
factor = 0
OR = {
has_trait = zealous
has_trait = generous
}
}
}
}
after = {
scope:blacksmith_character ?= {
silent_disappear_ai_if_not_hired = yes
}
}
}