N3OW/events/travel_events/travel_events_james.txt
2026-01-06 14:25:21 +01:00

7423 lines
163 KiB
Text

#Generic travel events
namespace = travel_events
############################
## Travel Flavor Events
## 4000-4999
## by James Beaumont
############################
# travel_events.4000 # Encounter a mystic on the road
# travel_events.4001 # Encounter an adoring fan
# travel_events.4002 # You determine that the women/men of X region are real pretty
# travel_events.4003 # You encounter vikings at sea
# travel_events.4004 # Fishermen at sea!
# travel_events.4005 # Encounter a caravan of merchants at sea
# travel_events.4006 # A local bird lands on your boat and eats some supplies
# travel_events.4007 # A storm at sea
# travel_events.4008 # Shipwreck!
# travel_events.4012 # You are being followed by a feral child
# travel_events.4015 # Asking for directions from a diff. language character
# travel_events.4016 # You experience heatstroke
# travel_events.4017 # Swords for hire!
# travel_events.4018 # A mendicant preacher!
# travel_events.4019 # You pass by a peasant street food place, demand to sample some
# travel_events.4020 # Strong believers harass your caravan and demand payment
# travel_events.4021 # You witness a human sacrifice!
# travel_events.4022 # You witness some tree worship in a Sanctity of Nature province
# travel_events.4023 # Prester John! You find a same-religion ruler in a faraway land
# travel_events.4028 # You come across a runestone!
# travel_events.4029 # You come across dimwit strung up on a post
# travel_events.4031 # You come across a knight stuck in his armour
# travel_events.4032 # You come across a noble being assaulted by a random animal
# travel_events.4033 # A witch who strangely isn't being burned
# travel_events.4035 # You are a witch and you're being harassed by locals
# travel_events.4036 # Caravaneers want to sell you some cool stuff
# travel_events.4037 # You enter a place that is syncretic with your faith
# travel_events.4038 # You enter a province which your faith is syncretic with
# travel_events.4039 # You enter a ritual hospitality province and are offered a rest
# travel_events.4040 # You meet a xenophile character who wants to learn about your culture
#####################################################################################
############################
## Travel Flavor Events
## 4000-4999
## by James Beaumont
############################
# Encounter a mystic on the road
travel_events.4000 = {
type = character_event
title = travel_events.4000.t
desc = {
desc = travel_events.4000.desc.intro
desc = travel_events.4000.desc.mid.long_to_go
desc = travel_events.4000.desc.outro
}
theme = travel
left_portrait = {
character = root
animation = worry
}
right_portrait = {
character = scope:mystic_scope
animation = scheme
}
cooldown = { years = 30 }
trigger = {
static_group_filter = {
group = travel_events.4000
match = 0.25
}
is_available_travelling_adult = yes
is_playable_character = yes
is_travelling = yes
is_location_valid_for_travel_event_on_land = yes
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small }
create_character = {
template = default_mystic_character
location = root.location
culture = root.location.county.culture
faith = root.location.county.faith
#Set up the scope
save_scope_as = mystic_scope
after_creation = {
add_character_flag = created
}
}
hidden_effect = {
scope:mystic_scope = {
random_list = {
50 = {}
50 = { add_trait = witch }
}
}
}
}
#Get a mystical reading
option = {
name = travel_events.4000.a
remove_short_term_gold = tiny_gold_value
random_list = {
50 = {
send_interface_toast = {
title = travel.good_reading
left_icon = root
if = {
limit = {
NOT = { has_trait = cynical }
}
add_stress = minor_stress_loss
}
add_character_modifier = {
modifier = positive_roadside_reading_modifier
years = 5
}
}
}
50 = {
send_interface_toast = {
title = travel.bad_reading
left_icon = root
add_character_modifier = {
modifier = negative_roadside_reading_modifier
years = 5
}
}
}
}
stress_impact = {
greedy = minor_stress_impact_gain
cynical = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
short_term_gold < minor_gold_value
}
}
}
#They can join us
option = {
trigger = {
OR = {
root.faith = {
NOR = {
has_doctrine_parameter = witchcraft_illegal
has_doctrine_parameter = witchcraft_shunned
}
}
is_witch_trigger = yes
root.faith = { trait_is_virtue = lifestyle_mystic }
NOT = { scope:mystic_scope = { has_trait = witch } }
}
NOR = {
has_trait = zealous
has_trait = wrathful
has_trait = sadistic
has_trait = callous
}
}
name = travel_events.4000.b
add_courtier = scope:mystic_scope
root.current_travel_plan = {
add_companion = scope:mystic_scope
}
if = {
limit = {
has_trait = lifestyle_mystic
}
add_trait_xp = {
trait = lifestyle_mystic
value = lifestyle_mystic_xp_gain_minor_value
}
}
stress_impact = {
lifestyle_mystic = minor_stress_impact_loss
paranoid = medium_stress_impact_gain
cynical = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_sociability = 1
}
modifier = {
add = 10
has_trait = lifestyle_mystic
}
modifier = {
add = -50
faith = {
OR = {
has_doctrine_parameter = witchcraft_illegal
has_doctrine_parameter = witchcraft_shunned
}
OR = {
NOT = { trait_is_virtue = lifestyle_mystic }
scope:mystic_scope = { has_trait = witch }
}
}
has_trait = zealous
}
modifier = {
add = -50
OR = {
has_trait = paranoid
has_trait = cynical
}
}
}
}
#Pass them by
option = {
name = travel_events.4000.c
stress_impact = {
paranoid = minor_stress_impact_gain
zealous = minor_stress_impact_gain
gregarious = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_sociability = 1
}
}
}
#Have them burned as a witch!
option = {
name = travel_events.4000.d
trigger = {
root.faith = {
OR = {
has_doctrine_parameter = witchcraft_illegal
has_doctrine_parameter = witchcraft_shunned
}
}
NOT = { is_witch_trigger = yes }
OR = {
NOT = {
root.faith = { trait_is_virtue = lifestyle_mystic }
}
scope:mystic_scope = { has_trait = witch }
}
OR = {
has_trait = zealous
has_trait = wrathful
has_trait = sadistic
has_trait = callous
}
}
scope:mystic_scope = {
death = {
killer = root
death_reason = death_burned_witch
}
}
add_piety = minor_piety_gain
add_dread = minor_dread_gain
stress_impact = {
base = minor_stress_impact_gain
sadistic = medium_stress_impact_loss
zealous = minor_stress_impact_loss
wrathful = minor_stress_impact_loss
compassionate = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = compassionate
}
}
}
after = {
scope:mystic_scope = {
silent_disappearance_ai_if_created_effect = yes
}
}
}
# Encounter an adoring fan
travel_events.4001 = {
type = character_event
title = travel_events.4001.t
desc = travel_events.4001.desc
theme = travel
left_portrait = {
character = root
animation = personality_honorable
}
right_portrait = {
character = scope:loyal_fan_scope
animation = admiration
}
cooldown = { years = 50 }
trigger = {
static_group_filter = {
group = travel_events.4001
match = 0.25
}
NOR = {
religion = { is_in_family = rf_eastern }
religion = { is_in_family = rf_sinitic }
}
is_available_travelling = yes # Even children were viewed to have been chosen by God and all that
is_landed = yes
is_location_valid_for_travel_event_on_land = yes
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_very_small }
create_character = {
template = loyal_fan_character
location = root.location
culture = root.location.county.culture
faith = root.location.county.faith
#Set up the scope
save_scope_as = loyal_fan_scope
after_creation = {
add_character_flag = created
}
}
hidden_effect = {
scope:loyal_fan_scope = {
add_opinion = {
modifier = loyalty_opinion
years = 50
target = root
opinion = 100
}
}
}
}
#Join us, friend!
option = {
name = travel_events.4001.a
add_courtier = scope:loyal_fan_scope
root.current_travel_plan = {
add_companion = scope:loyal_fan_scope
}
stress_impact = {
arrogant = minor_stress_impact_loss
paranoid = medium_stress_impact_gain
shy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = paranoid
has_trait = shy
}
}
}
}
#Pay them to sod off
option = {
name = travel_events.4001.b
remove_short_term_gold = tiny_gold_value
stress_impact = {
generous = minor_stress_impact_loss
profligate = minor_stress_impact_loss
greedy = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
short_term_gold < medium_gold_value
}
modifier = {
factor = 0
OR = {
has_trait = greedy
has_trait = gregarious
}
}
ai_value_modifier = {
ai_sociability = 1
}
}
}
# Have them beaten up
option = {
name = travel_events.4001.c
scope:loyal_fan_scope = {
increase_wounds_no_death_effect = { REASON = fight }
}
stress_impact = {
base = minor_stress_impact_gain
sadistic = minor_stress_impact_loss
callous = minor_stress_impact_loss
wrathful = minor_stress_impact_loss
paranoid = minor_stress_impact_loss
compassionate = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
}
ai_chance = {
base = 25
modifier = {
factor = 2
OR = {
has_trait = sadistic
has_trait = callous
has_trait = wrathful
has_trait = paranoid
}
}
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = gregarious
has_trait = forgiving
}
}
}
}
after = {
scope:loyal_fan_scope = {
silent_disappearance_ai_if_created_effect = yes
}
}
}
# You determine that the women/men of X region are real pretty
travel_events.4002 = {
type = character_event
title = travel_events.4002.t
desc = travel_events.4002.desc
theme = travel
left_portrait = {
character = root
animation = flirtation_left
}
right_portrait = {
character = scope:local_beauty_scope
animation = love
}
cooldown = { years = 20 }
trigger = {
static_group_filter = {
group = travel_events.4002
match = 0.5
}
is_available_travelling_adult = yes
is_landed = yes
is_location_valid_for_travel_event_on_land = yes
NOR = {
has_trait = celibate
has_trait = chaste
has_sexuality = asexual
# Not my culture
location.county.culture = root.culture
# Not a culture local to me
location.county.culture = root.capital_county.culture
# I'm not in my own realm
is_liege_or_above_of = location.county.holder
}
}
weight_multiplier = {
base = 1
modifier = {
involved_activity ?= {
has_activity_type = activity_pilgrimage
}
add = -0.5
}
modifier = {
NOR = {
has_trait = lustful
has_trait = seducer
has_trait = rakish
}
add = -0.5
}
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_very_small }
create_character = {
template = local_beauty_character
location = root.location
culture = root.location.county.culture
faith = root.location.county.faith
#Set up the scope
save_scope_as = local_beauty_scope
after_creation = {
add_character_flag = created
}
}
}
# Take them as your lover
option = {
name = travel_events.4002.a
trigger = {
OR = {
allowed_concubines = no
allowed_more_concubines = no
AND = {
allowed_to_marry_same_sex_trigger = no
sex_same_as = scope:local_beauty_scope
}
}
can_set_relation_lover_trigger = {
CHARACTER = scope:local_beauty_scope
}
}
add_courtier = scope:local_beauty_scope
root.current_travel_plan = {
add_companion = scope:local_beauty_scope
}
set_relation_lover = {
reason = lover_first_sight
target = scope:local_beauty_scope
}
if = {
limit = {
might_cheat_on_every_partner_trigger = no
}
add_stress = medium_stress_gain
}
else = {
stress_impact = {
lustful = medium_stress_impact_loss
rakish = medium_stress_impact_loss
seducer = medium_stress_impact_loss
paranoid = medium_stress_impact_gain
chaste = medium_stress_impact_gain
shy = medium_stress_impact_gain
}
}
ai_chance = {
base = 5
modifier = {
add = 95
OR = {
has_trait = lustful
has_trait = rakish
has_trait = seducer
}
}
modifier = {
factor = 0
might_cheat_on_every_partner_trigger = no
}
modifier = {
factor = 0
OR = {
has_trait = paranoid
has_trait = chaste
has_trait = shy
}
}
}
}
# Take them as your concubine
option = {
name = travel_events.4002.b
trigger = {
allowed_concubines = yes
allowed_more_concubines = yes
OR = {
AND = {
allowed_to_marry_same_sex_trigger = yes
sex_same_as = scope:local_beauty_scope
}
NOT = { sex_same_as = scope:local_beauty_scope }
}
}
add_courtier = scope:local_beauty_scope
root.current_travel_plan = {
add_companion = scope:local_beauty_scope
}
make_concubine = scope:local_beauty_scope
stress_impact = {
lustful = medium_stress_impact_loss
paranoid = medium_stress_impact_gain
chaste = medium_stress_impact_gain
shy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = paranoid
has_trait = chaste
has_trait = shy
}
}
}
}
# Take them as your spouse
option = {
name = travel_events.4002.c
trigger = {
allowed_more_spouses = yes
OR = {
AND = {
allowed_to_marry_same_sex_trigger = yes
sex_same_as = scope:local_beauty_scope
}
NOT = { sex_same_as = scope:local_beauty_scope }
}
can_marry_character_trigger = { CHARACTER = scope:local_beauty_scope }
}
add_courtier = scope:local_beauty_scope
root.current_travel_plan = {
add_companion = scope:local_beauty_scope
}
if = {
limit = {
is_male = yes
}
marry = scope:local_beauty_scope
}
else = { marry_matrilineal = scope:local_beauty_scope }
stress_impact = {
eccentric = major_stress_impact_loss
lustful = medium_stress_impact_loss
paranoid = medium_stress_impact_gain
chaste = medium_stress_impact_gain
shy = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = -1
}
modifier = {
factor = 0
OR = {
has_trait = paranoid
has_trait = chaste
has_trait = shy
}
}
}
}
# Admire from afar
option = {
name = travel_events.4002.d
scope:local_beauty_scope = {
if = {
limit = {
root = { is_ai = yes }
}
silent_disappearance_effect = yes
}
}
stress_impact = {
lustful = medium_stress_impact_gain
gregarious = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = lustful
has_trait = rakish
}
}
}
}
after = {
scope:local_beauty_scope = {
silent_disappearance_ai_if_created_effect = yes
}
}
}
# You encounter vikings at sea
scripted_trigger is_near_vikings_trigger = {
NOT = {
culture = { has_innovation = innovation_longboats }
}
location = {
any_neighboring_province = {
county ?= { #Not at sea, not an impassable
holder = { in_diplomatic_range = root }
is_coastal_county = yes
has_coastal_province = yes
culture = { has_innovation = innovation_longboats }
faith = { has_doctrine_parameter = faith_can_raid }
}
}
}
}
scripted_trigger is_near_berber_pirates_trigger = {
NOT = {
culture = { has_cultural_pillar = heritage_berber }
}
location = {
any_neighboring_province = {
exists = county #Not at sea, not an impassable
county = {
holder = { in_diplomatic_range = root }
is_coastal_county = yes
culture = { has_cultural_pillar = heritage_berber }
}
}
}
}
travel_events.4003 = {
type = character_event
title = travel_events.4003.t
desc = {
desc = travel_events.4003.desc.intro
first_valid = {
triggered_desc = {
trigger = {
is_near_vikings_trigger = yes
}
desc = travel_events.4003.desc.viking
}
triggered_desc = {
trigger = {
is_near_berber_pirates_trigger = yes
}
desc = travel_events.4003.desc.berber_pirate
}
desc = travel_events.4003.desc.regular_pirate
}
}
theme = travel_danger
left_portrait = {
character = root
animation = fear
}
right_portrait = {
character = scope:viking_scope
animation = rage
}
override_background = { reference = fp1_ocean }
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
location = {
is_sea_province = yes
any_neighboring_province = {
exists = county #Is this on land and in the landed title structure.
county = {
holder = { in_diplomatic_range = root }
has_coastal_province = yes
culture = { has_innovation = innovation_longboats }
faith = { has_doctrine_parameter = faith_can_raid }
}
}
}
location = {
OR = {
travel_danger_type = {
travel_plan = root.current_travel_plan
terrain = sea
}
travel_danger_type = {
travel_plan = root.current_travel_plan
terrain = coastal_sea
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
add = 1
is_near_vikings_trigger = yes
}
modifier = {
add = 1
is_near_berber_pirates_trigger = yes
}
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium }
if = {
limit = {
is_near_vikings_trigger = yes
}
location = {
random_neighboring_province = {
limit = {
exists = county #Not at sea, not an impassable
county = {
holder = { in_diplomatic_range = root }
has_coastal_province = yes
culture = { has_innovation = innovation_longboats }
faith = { has_doctrine_parameter = faith_can_raid }
}
}
county = {
save_scope_as = pirate_county_scope
}
}
}
create_character = {
template = fp1_ms_warrior_character
location = root.location
culture = scope:pirate_county_scope.culture
faith = scope:pirate_county_scope.faith
#Set up the scope
save_scope_as = viking_scope
after_creation = {
add_character_flag = created
}
}
}
else_if = {
limit = {
is_near_berber_pirates_trigger = yes
}
location = {
random_neighboring_province = {
limit = {
exists = county #Not at sea, not an impassable
county = {
holder = { in_diplomatic_range = root }
has_coastal_province = yes
culture = { has_cultural_pillar = heritage_berber }
}
}
county = {
save_scope_as = pirate_county_scope
}
}
}
create_character = {
template = fp1_ms_warrior_character
location = root.location
culture = scope:pirate_county_scope.culture
faith = scope:pirate_county_scope.faith
#Set up the scope
save_scope_as = viking_scope
after_creation = {
add_character_flag = created
}
}
}
else = {
create_character = {
template = fp1_ms_warrior_character
location = root.location
culture = root.culture
faith = root.faith
#Set up the scope
save_scope_as = viking_scope
after_creation = {
add_character_flag = created
}
}
}
location = {
save_scope_as = background_terrain_scope
}
}
# Attempt to fight the vikings
option = {
name = travel_events.4003.a
duel = {
skill = prowess
target = scope:viking_scope
45 = { # You beat up the viking captain
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel_events.4003.defeated_vikings
left_icon = scope:viking_scope
add_prestige = medium_prestige_gain
create_character_memory = {
type = won_duel
participants = {
duel_loser = scope:viking_scope
}
}
if = {
limit = {
OR = {
has_any_nickname = no
has_bad_nickname = yes
}
}
random_list = {
5 = {
if= {
limit = {
scope:viking_scope.culture = {
has_innovation = innovation_longboats
}
}
give_nickname = nick_northmen_slayer
}
else = {
give_nickname = nick_pirate_slayer
}
}
95 = {}
}
}
}
}
45 = { # You get beaten up by the viking captain
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel_events.4003.defeated_by_vikings
left_icon = scope:viking_scope
increase_wounds_effect = { REASON = fight }
remove_short_term_gold = medium_gold_value
create_character_memory = {
type = lost_duel
participants = {
duel_winner = scope:viking_scope
}
}
}
}
10 = { # You get beaten up by the viking captain and die
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel_events.4003.defeated_by_vikings
left_icon = scope:viking_scope
death = {
killer = scope:viking_scope
death_reason = death_fight
}
}
}
}
stress_impact = {
calm = medium_stress_impact_gain
craven = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = calm
has_trait = craven
}
}
}
}
# Attempt to bribe the vikings
option = {
name = travel_events.4003.b
remove_short_term_gold = medium_gold_value
stress_impact = {
greedy = medium_stress_impact_gain
wrathful = medium_stress_impact_gain
brave = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = greedy
has_trait = wrathful
has_trait = brave
}
}
modifier = {
factor = 0
short_term_gold < medium_gold_value
}
}
}
# Attempt to outmanuever the vikings
option = {
name = travel_events.4003.c
duel = {
skills = { martial learning }
target = scope:viking_scope
50 = { # You outmanuever the viking captain
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
modifier = {
factor = 2
has_trait = strategist
}
send_interface_toast = {
title = travel_events.4003.defeated_vikings
left_icon = scope:viking_scope
add_prestige = medium_prestige_gain
}
}
50 = { # You get beaten up by the viking captain
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel_events.4003.defeated_by_vikings
left_icon = scope:viking_scope
increase_wounds_effect = { REASON = fight }
remove_short_term_gold = medium_gold_value
}
create_character_memory = {
type = lost_duel
participants = {
duel_winner = scope:viking_scope
}
}
}
5 = { # You get beaten up by the viking captain and die
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
death = {
killer = scope:viking_scope
death_reason = death_fight
}
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
brave = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = brave
}
}
}
}
# Attempt to hire the vikings as your personal guard
option = {
name = travel_events.4003.d
duel = {
skills = { diplomacy stewardship }
target = scope:viking_scope
50 = { # You convince them to join you
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel_events.4003.offer_accepted
left_icon = scope:viking_scope
pay_short_term_gold = {
target = scope:viking_scope
gold = minor_gold_value
}
add_courtier = scope:viking_scope
root.current_travel_plan = {
add_companion = scope:viking_scope
}
}
hidden_effect = {
scope:viking_scope = {
add_character_flag = {
flag = blocked_from_leaving
years = 5
}
}
}
}
50 = { # You get beaten up by the viking captain
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel_events.4003.offer_refused
left_icon = scope:viking_scope
increase_wounds_effect = { REASON = fight }
remove_short_term_gold = medium_gold_value
}
create_character_memory = {
type = lost_duel
participants = {
duel_winner = scope:viking_scope
}
}
}
5 = { # You get beaten up by the viking captain and die
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
death = {
killer = scope:viking_scope
death_reason = death_fight
}
}
}
stress_impact = {
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = greedy
}
modifier = {
factor = 0
short_term_gold < minor_gold_value
}
}
}
after = {
scope:viking_scope = {
silent_disappearance_ai_if_created_effect = yes
}
}
}
# Fishermen at sea!
scripted_trigger is_near_fishermen_trigger = {
location = {
any_neighboring_province = {
exists = county #Not at sea, not an impassable
county = {
culture = { has_cultural_tradition = tradition_fishermen }
}
}
}
}
travel_events.4004 = {
type = character_event
title = travel_events.4004.t
desc = travel_events.4004.desc
theme = travel
left_portrait = {
character = root
animation = admiration
}
override_background = { reference = fp1_ocean }
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
location = {
is_sea_province = yes
}
is_near_fishermen_trigger = yes
}
immediate = {
location = {
random_neighboring_province = {
limit = {
exists = county #Not at sea, not an impassable
county.culture = { has_cultural_tradition = tradition_fishermen }
}
county = {
save_scope_as = fishermen_county_scope
}
}
}
create_character = {
template = generic_peasant_character
location = root.location
culture = scope:fishermen_county_scope.culture
faith = scope:fishermen_county_scope.faith
#Set up the scope
save_scope_as = fisherman_scope
after_creation = {
add_character_flag = created
}
}
}
# Negotiate for some food
option = {
name = travel_events.4004.a
remove_short_term_gold = minor_gold_value
current_travel_plan = {
add_travel_plan_modifier = {
modifier = travel_well_fed_travellers
months = 2
}
}
stress_impact = {
greedy = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
wrathful = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = greedy
has_trait = arrogant
has_trait = wrathful
}
}
modifier = {
factor = 0
short_term_gold < minor_gold_value
}
}
}
# Attempt to plunder them for food
option = {
name = travel_events.4004.b
duel = {
skill = prowess
target = scope:fisherman_scope
50 = { # You beat up the fisherman
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
current_travel_plan = {
add_travel_plan_modifier = {
modifier = travel_well_fed_travellers
months = 2
}
}
}
50 = { # You get beaten up and mugged by a lowly fisherman
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
increase_wounds_effect = { REASON = fight }
remove_short_term_gold = minor_gold_value
create_character_memory = {
type = lost_duel
participants = {
duel_winner = scope:fisherman_scope
}
}
}
}
stress_impact = {
vengeful = minor_stress_impact_loss
arrogant = minor_stress_impact_loss
wrathful = minor_stress_impact_loss
sadistic = minor_stress_impact_loss
callous = minor_stress_impact_loss
compassionate = medium_stress_impact_gain
just = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
generous = medium_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
add = 50
OR = {
has_trait = vengeful
has_trait = arrogant
has_trait = wrathful
has_trait = sadistic
has_trait = callous
}
}
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = just
has_trait = forgiving
has_trait = generous
}
}
}
}
# Just go by without bothering the fishermen
option = {
name = travel_events.4004.c
stress_impact = {
base = minor_stress_impact_loss
}
ai_chance = {
base = 50
}
}
after = {
scope:fisherman_scope = {
silent_disappearance_ai_if_created_effect = yes
}
}
}
# Encounter a caravan of merchants at sea
scripted_trigger nearby_merchant_culture = {
culture = {
OR = {
has_cultural_tradition = tradition_maritime_mercantilism
has_cultural_tradition = tradition_diasporic
}
}
}
travel_events.4005 = {
type = character_event
title = travel_events.4005.t
desc = travel_events.4005.desc
theme = travel
left_portrait = {
character = root
animation = personality_bold
}
right_portrait = {
character = scope:merchant_character_scope
animation = admiration
}
artifact = {
target = scope:merchant_artifact_scope
position = lower_left_portrait
}
override_background = { reference = fp1_ocean }
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
location = {
is_sea_province = yes
any_neighboring_province = {
exists = county #Ie this is not a Sea province or an Impassable, etc
county.holder = {
any_courtier = {
nearby_merchant_culture = yes
}
}
}
}
}
immediate = {
save_scope_as = root_scope
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small }
hidden_effect = {
location = {
random_neighboring_province = {
limit = {
exists = county #Ie this is not a Sea province or an Impassable, etc
county.holder = {
any_courtier = {
nearby_merchant_culture = yes
}
}
}
county.holder = {
random_courtier = {
limit = {
nearby_merchant_culture = yes
}
save_scope_as = merchant_base_scope
}
}
}
}
create_character = {
template = generic_peasant_character
location = root.location
culture = scope:merchant_base_scope.culture
faith = scope:merchant_base_scope.faith
#Set up the scope
save_scope_as = merchant_character_scope
after_creation = {
add_character_flag = created
}
}
scope:merchant_character_scope = {
random_list = {
10 = {
set_artifact_rarity_masterwork = yes
create_artifact = {
name = maritime_trading_handbook
description = maritime_trading_handbook_description
type = journal
visuals = book
modifier = character_travel_speed_1
modifier = artifact_monthly_stewardship_lifestyle_xp_3_modifier
modifier = artifact_naval_speed_2_modifier
wealth = scope:wealth
quality = scope:quality
save_scope_as = merchant_artifact_scope
}
}
10 = {
set_artifact_rarity_masterwork = yes
create_artifact = {
name = own_holy_text_mid
description = own_holy_text_mid_description
type = journal
visuals = book
template = holy_book_template
modifier = artifact_monthly_learning_lifestyle_xp_2_modifier
modifier = artifact_monthly_piety_3_modifier
modifier = artifact_learning_per_piety_level_modifier
wealth = scope:wealth
quality = scope:quality
save_scope_as = merchant_artifact_scope
}
scope:merchant_artifact_scope = {
set_variable = {
name = relic_religion
value = root.religion
}
}
}
10 = {
set_artifact_rarity_masterwork = yes
create_artifact = {
name = merchants_holy_text_mid
description = merchants_holy_text_mid_description
type = journal
visuals = book
template = holy_book_template
modifier = artifact_monthly_learning_lifestyle_xp_2_modifier
modifier = artifact_monthly_piety_3_modifier
modifier = artifact_learning_per_piety_level_modifier
wealth = scope:wealth
quality = scope:quality
save_scope_as = merchant_artifact_scope
}
scope:merchant_artifact_scope = {
set_variable = {
name = relic_religion
value = scope:merchant_character_scope.religion
}
}
}
5 = {
set_artifact_rarity_masterwork = yes
create_artifact = {
name = merchants_sword
description = merchants_sword_description
type = sword
visuals = sword
modifier = artifact_prowess_4_modifier
modifier = artifact_monthly_prestige_3_modifier
wealth = scope:wealth
quality = scope:quality
save_scope_as = merchant_artifact_scope
}
}
}
}
}
}
# Buy the artifact!
option = {
name = travel_events.4005.a
if = {
limit = {
scope:merchant_artifact_scope = {
rarity = famed
}
}
remove_short_term_gold = major_gold_value
}
else = {
remove_short_term_gold = medium_gold_value
}
scope:merchant_artifact_scope = { set_owner = root }
stress_impact = {
generous = medium_stress_impact_loss
greedy = medium_stress_impact_gain
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = greedy
has_trait = callous
has_trait = sadistic
}
}
modifier = {
factor = 0
short_term_gold <= major_gold_value
}
}
}
# Attempt to steal the artifact
option = {
name = travel_events.4005.b
duel = {
skill = intrigue
value = very_high_skill_rating
50 = { # You beat up the fisherman
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.stole_artifact
left_icon = root
scope:merchant_artifact_scope = { set_owner = root }
}
}
50 = { # You get caught and exposed as a dirty thief!
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.caught_red_handed
left_icon = root
increase_wounds_no_death_effect = { REASON = fight }
add_prestige = major_prestige_loss
}
}
}
stress_impact = {
sadistic = minor_stress_impact_loss
callous = minor_stress_impact_loss
compassionate = medium_stress_impact_gain
just = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
craven = medium_stress_impact_gain
generous = major_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
add = 50
OR = {
has_trait = sadistic
has_trait = callous
}
}
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = just
has_trait = forgiving
has_trait = generous
has_trait = craven
}
}
}
}
# Just go by without buying anything
option = {
name = travel_events.4005.c
stress_impact = {
generous = medium_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
has_trait = generous
}
}
}
after = {
hidden_effect = {
if = {
limit = {
scope:merchant_artifact_scope.artifact_owner != root
}
destroy_artifact = scope:merchant_artifact_scope
}
if = {
limit = { is_ai = yes }
scope:merchant_character_scope = {
if = {
limit = {
root = { is_ai = yes }
}
silent_disappearance_effect = yes
}
}
}
}
}
}
# A local bird lands on your boat and eats some supplies
travel_events.4006 = {
type = character_event
title = travel_events.4006.t
desc = travel_events.4006.desc
theme = travel
left_portrait = {
character = root
animation = rage
}
right_portrait = {
character = scope:superstituous_caravan_member
animation = fear
}
override_background = { reference = fp1_ocean }
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
location = {
is_sea_province = yes
}
current_travel_plan = {
any_entourage_character = {
opinion = {
value <= low_negative_opinion
target = root
}
}
}
}
immediate = {
root.current_travel_plan = {
random_entourage_character = {
limit = {
opinion = {
value <= low_negative_opinion
target = root
}
}
weight = {
base = 1
# Try to find someone relevant
modifier = {
is_powerful_vassal_of = root
add = 2
}
modifier = {
is_close_family_of = root
add = 2
}
modifier = {
this = root.current_travel_plan.travel_leader
add = 10
}
# Try to find someone who would be upset over this
modifier = {
has_trait = compassionate
add = 1
}
modifier = {
has_trait = zealous
add = 1
}
modifier = {
has_trait = cynical
factor = 0.01
}
}
save_scope_as = superstituous_caravan_member
}
}
}
# Alas, nothing to be done
option = {
name = travel_events.4006.a
current_travel_plan = {
add_travel_plan_modifier = {
modifier = bird_ate_supplies
years = 2
}
}
change_current_weight = -10
progress_towards_friend_effect = {
REASON = friend_listened_to_advice
CHARACTER = scope:superstituous_caravan_member
OPINION = default_friend_opinion
}
stress_impact = {
base = minor_stress_impact_gain
vengeful = medium_stress_impact_gain
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = vengeful
has_trait = callous
has_trait = sadistic
}
}
}
}
# Kill the bloody bird!
option = {
name = travel_events.4006.b
progress_towards_rival_effect = {
REASON = rival_belittled_beliefs
CHARACTER = scope:superstituous_caravan_member
OPINION = default_rival_opinion
}
random_list = {
50 = {
send_interface_toast = {
title = travel.supersititions_abated
left_icon = root
add_stress = minor_stress_loss
current_travel_plan = {
add_travel_plan_modifier = {
modifier = ate_a_bird
years = 2
}
}
}
}
50 = {
modifier = {
factor = 0.5
has_trait = cynical
}
send_interface_toast = {
title = travel.birds_curse
left_icon = root
add_stress = minor_stress_gain
current_travel_plan = {
add_travel_plan_modifier = {
modifier = bird_superstition
years = 2
}
}
}
}
}
ai_chance = {
base = 50
modifier = {
add = 50
OR = {
has_trait = sadistic
has_trait = callous
}
}
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = zealous
}
}
}
}
}
# A storm at sea
travel_events.4007 = {
type = character_event
title = travel_events.4007.t
desc = travel_events.4007.desc
theme = travel
left_portrait = {
character = root
animation = fear
}
right_portrait = {
character = root.current_travel_plan.travel_leader
animation = stress
}
override_background = { reference = fp1_ocean }
cooldown = { months = 1 }
trigger = {
exists = current_travel_plan.travel_leader
NOT = { current_travel_plan.travel_leader = root }
is_available_travelling = yes
is_playable_character = yes
location = {
has_sea_danger_type = { TRAVEL = root.current_travel_plan }
}
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_high }
hidden_effect = {
while = {
count = 5
current_travel_plan = {
random_entourage_character = {
limit = {
this != root
}
weight = {
base = 1
# Try to find someone relevant
modifier = {
is_close_family_of = root
add = 1
}
}
add_to_list = drowning_courtiers_list
}
}
}
}
traveler_danger_xp_effect = {
MIN = 3
MAX = 7
}
}
# Trust your guide leader's judgement
option = {
name = travel_events.4007.a
current_travel_plan.travel_leader = {
duel = {
skill = martial
value = high_skill_rating
50 = { # You manage to navigate the storm
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
custom_tooltip = succesfully_navigate_the_storm_tt
hidden_effect = {
root = {
send_interface_toast = {
title = succesfully_navigate_the_storm_tt
left_icon = root
add_prestige = 10
}
}
}
}
40 = { # You mess up and get someone killed
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
add_prestige = medium_prestige_loss
increase_wounds_effect = { REASON = drowned }
custom_tooltip = someone_drowns_tt
hidden_effect = {
root = {
send_interface_toast = {
title = someone_drowns_tt
left_icon = root
random_in_list = {
list = drowning_courtiers_list
death = {
death_reason = death_drowned
}
}
}
}
}
}
10 = { # They mess up a lot and drown a lot of people
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
increase_wounds_effect = { REASON = drowned }
custom_tooltip = some_people_drown_tt
hidden_effect = {
root = {
send_interface_toast = {
title = some_people_drown_tt
left_icon = root
every_in_list = {
list = drowning_courtiers_list
death = {
death_reason = death_drowned
}
}
}
}
}
}
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
brave = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = brave
}
}
}
}
# Take the helm yourself!
option = {
name = travel_events.4007.b
stress_impact = {
arrogant = minor_stress_impact_loss
craven = medium_stress_impact_gain
}
progress_towards_rival_effect = {
REASON = rival_upstaged_at_sea
CHARACTER = root.current_travel_plan.travel_leader
OPINION = default_rival_opinion
}
duel = {
skill = martial
value = high_skill_rating
50 = { # You manage to navigate the storm
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = succesfully_navigate_the_storm_tt
left_icon = root
add_prestige = medium_prestige_gain
}
}
40 = { # You mess up and get someone killed
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
custom_tooltip = some_people_drown_tt
hidden_effect = {
send_interface_toast = {
title = some_people_drown_tt
left_icon = root
every_in_list = {
list = drowning_courtiers_list
death = {
death_reason = death_drowned
}
}
add_prestige = medium_prestige_loss
increase_wounds_effect = { REASON = drowned }
}
}
}
10 = { # You really mess up and get yourself drowned
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = you_drown_tt
left_icon = root
add_prestige = medium_prestige_loss
death = {
death_reason = death_drowned
}
}
}
}
ai_chance = {
base = 50
modifier = {
add = 50
has_trait = arrogant
}
modifier = {
factor = 0
has_trait = craven
}
}
}
# Follow the experienced sailors to shore
option = {
name = travel_events.4007.c
trigger = {
location = {
any_neighboring_province = {
exists = county #Not at sea, not an impassable
county.culture = {
OR = {
has_cultural_tradition = tradition_seafaring
has_cultural_tradition = tradition_fishermen
}
}
}
}
}
add_prestige = minor_prestige_gain
stress_impact = {
arrogant = medium_stress_impact_gain
brave = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = brave
}
}
}
}
}
# Shipwreck!
travel_events.4008 = {
type = character_event
title = travel_events.4008.t
desc = travel_events.4008.desc
theme = travel
left_portrait = {
character = root
animation = personality_rational
}
override_background = { reference = fp1_ocean }
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
location = { is_sea_province = yes }
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small }
mp_delay_travel_plan = { DAYS = 90 }
}
# Investigate the wreck
option = {
name = travel_events.4008.a
current_travel_plan = {
delay_travel_plan = {
weeks = 1
add = yes
}
}
duel = {
skill = intrigue
value = medium_skill_rating
60 = { # You find something cool
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
add_prestige = medium_prestige_gain
custom_tooltip = find_something_cool_tt
hidden_effect = {
random_list = {
50 = { # A cool artifact
trigger_event = travel_events.4009
}
50 = { # Treasure!
trigger_event = travel_events.4010
}
50 = { # A survivor!
trigger = {
location = {
any_neighboring_province = {
is_sea_province = no
has_holding = yes
}
}
}
trigger_event = travel_events.4011
}
}
}
}
40 = { # You find nothing
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
custom_tooltip = you_find_nothing_tt
send_interface_toast = {
title = you_find_nothing_tt
left_icon = root
add_prestige = minor_prestige_loss
}
}
}
stress_impact = {
craven = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = craven
has_trait = paranoid
}
}
}
}
# Ignore it
option = {
name = travel_events.4008.b
stress_impact = {
arrogant = medium_stress_impact_gain
brave = medium_stress_impact_gain
curious = medium_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = brave
has_trait = curious
}
}
}
}
after = {
mp_resume_travel_plan = yes
}
}
# Shipwreck, a trinket!
travel_events.4009 = {
type = character_event
title = travel_events.4009.t
desc = travel_events.4009.desc
theme = travel
left_portrait = {
character = root
animation = admiration
}
artifact = {
target = scope:new_trinket
position = lower_left_portrait
}
override_background = { reference = fp1_ocean }
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium }
generate_trinket_effect = {
TRINKET_RECEIVER = root
TRINKET_GIVER = root
GRAB_ALL_TRINKETS = yes
HISTORY_TYPE = discovered
}
}
# Cool dude
option = {
name = travel_events.4009.a
}
}
# Shipwreck, treasure!
travel_events.4010 = {
type = character_event
title = travel_events.4010.t
desc = travel_events.4010.desc
theme = travel
left_portrait = {
character = root
animation = admiration
}
override_background = { reference = fp1_ocean }
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium }
}
# Cool dude
option = {
name = travel_events.4010.a
add_gold = minor_gold_value
}
}
# Shipwreck, a survivor!
travel_events.4011 = {
type = character_event
title = travel_events.4011.t
desc = travel_events.4011.desc
theme = travel
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:castaway_scope
animation = ecstasy
}
override_background = { reference = fp1_ocean }
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium }
root.location = {
random_neighboring_province = {
limit = {
is_sea_province = no
has_holding = yes
}
county = { save_scope_as = nearby_coast_scope }
}
}
create_character = {
template = castaway_character
location = root.location
culture = scope:nearby_coast_scope.culture
faith = scope:nearby_coast_scope.faith
#Set up the scope
save_scope_as = castaway_scope
after_creation = {
add_character_flag = created
}
}
}
# Help them to shore
option = {
name = travel_events.4011.a
add_piety = minor_piety_value
add_gold = minor_gold_value
stress_impact = {
arrogant = minor_stress_impact_gain
callous = minor_stress_impact_gain
sadistic = medium_stress_impact_gain
}
}
# Recruit them to your court
option = {
name = travel_events.4011.b
add_courtier = scope:castaway_scope
root.current_travel_plan = {
add_companion = scope:castaway_scope
}
add_gold = minor_gold_value
stress_impact = {
sadistic = minor_stress_impact_gain
callous = minor_stress_impact_gain
paranoid = medium_stress_impact_gain
shy = medium_stress_impact_gain
}
}
# Abandon them there
option = {
name = travel_events.4011.c
stress_impact = {
callous = minor_stress_impact_loss
paranoid = minor_stress_impact_loss
sadistic = medium_stress_impact_loss
just = medium_stress_impact_gain
compassionate = massive_stress_impact_gain
}
}
after = {
scope:castaway_scope = {
silent_disappearance_ai_if_created_effect = yes
}
}
}
# You are being followed by a feral child
travel_events.4012 = {
type = character_event
title = travel_events.4012.t
desc = travel_events.4012.desc
theme = travel
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:feral_child_scope
animation = pain
triggered_outfit = {
outfit_tags = { beggar_rags }
}
}
cooldown = { years = 50 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
is_location_valid_for_travel_event_on_land = yes
location = {
has_holding = no
county = { development_level <= 5 }
}
trigger_if = {
limit = {
is_ai = yes
}
highest_held_title_tier >= tier_kingdom
}
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium }
create_character = {
template = feral_child_template
location = root.location
culture = root.location.county.culture # They should look like a local
faith = root.faith
dynasty = none
#Set up the scope
save_scope_as = feral_child_scope
}
scope:feral_child_scope = {
# Save scope to limit possible animals: big/small/dangerous/harmless/prowling
select_local_animal_effect = { TYPE = prowling } # Save scope to limit possible animals: any/big/small/dangerous/harmless/prowling
}
hidden_effect = {
scope:feral_child_scope = {
# They are feral, they learned very basic language from your party
if = {
limit = {
culture != root.culture
NOT = {
culture = {
has_same_culture_language = root.culture #Even if the child is from another culture they might speak the same language
}
}
}
set_culture = root.culture
unlearn_language_of_culture = root.location.county.culture
}
else_if = {
limit = {
culture != root.culture
}
set_culture = root.culture #For consistency we will set the culture even if it already speaks the same language.
}
# Give them a cool nickname
give_nickname = nick_son_of_dangerous_animal
}
}
}
# Take them as your ward
option = {
name = travel_events.4012.a
trigger = {
num_of_relation_ward < 2
}
add_courtier = scope:feral_child_scope
root.current_travel_plan = {
add_companion = scope:feral_child_scope
}
scope:feral_child_scope = { set_relation_guardian = root }
create_character_memory = {
type = feral_child_found_memory
participants = {
feral_child = scope:feral_child_scope
}
}
hidden_effect = {
duel = {
skill = learning
value = very_high_skill_rating
50 = { # You manage to tame the child
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
trigger_event = {
id = travel_events.4013
years = 1
}
}
50 = { # You fail to tame the child and they return to nature
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
trigger_event = {
id = travel_events.4014
years = 1
}
}
}
}
stress_impact = {
paranoid = medium_stress_impact_gain
callous = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = paranoid
has_trait = callous
}
}
}
}
# Ignore them
option = {
name = travel_events.4012.b
add_character_modifier = {
modifier = stalked_by_feral_child_modifier
years = 2
}
scope:feral_child_scope = {
if = {
limit = {
root = { is_ai = yes }
}
silent_disappearance_effect = yes
}
}
stress_impact = {
compassionate = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = compassionate
}
}
}
#Have them chased away!
option = {
name = travel_events.4012.c
duel = {
skill = prowess
target = scope:feral_child_scope
50 = { # You beat up the child
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.beat_feral_child
left_icon = root
add_dread = minor_dread_gain
}
}
50 = { # You get beaten up by the child
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.beaten_by_feral_child
left_icon = root
add_prestige = medium_prestige_loss
increase_wounds_effect = { REASON = fight }
}
create_character_memory = {
type = attacked_by_feral_child_memory
participants = {
feral_child = scope:feral_child_scope
}
}
}
}
if = { #Can die from the wounds effect above
limit = { scope:feral_child_scope = { is_alive = yes } }
scope:feral_child_scope = {
if = {
limit = {
root = { is_ai = yes }
}
silent_disappearance_effect = yes
}
}
}
stress_impact = {
base = medium_stress_impact_gain
sadistic = medium_stress_impact_loss
zealous = minor_stress_impact_loss
wrathful = minor_stress_impact_loss
compassionate = major_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_sociability = 1
}
}
}
}
# You gain the option to adopt the child
travel_events.4013 = {
type = character_event
title = travel_events.4013.t
desc = travel_events.4013.desc
theme = travel
left_portrait = {
character = root
animation = admiration
}
right_portrait = {
character = scope:feral_child_scope
animation = personality_rational
}
trigger = {
has_relation_ward = scope:feral_child_scope
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small }
scope:feral_child_scope = {
if = {
limit = {
has_character_modifier = nonverbal_modifier
}
remove_character_modifier = nonverbal_modifier
}
if = {
limit = {
has_character_modifier = feral_modifier
}
remove_character_modifier = feral_modifier
}
}
create_character_memory = {
type = feral_child_socialised_memory
participants = {
feral_child = scope:feral_child_scope
}
}
}
# Adopt them as your child
option = {
name = travel_events.4013.a
if = {
limit = {
exists = dynasty
dynasty.dynast = root
}
dynasty = { add_dynasty_prestige = major_dynasty_prestige_loss }
}
else = {
add_prestige = massive_prestige_loss
}
if = {
limit = {
is_male = yes
}
scope:feral_child_scope = { set_father = root }
}
else = {
scope:feral_child_scope = { set_mother = root }
}
if = {
limit = { exists = house }
scope:feral_child_scope = { set_house = root.house }
}
set_relation_friend = {
reason = friend_adopted
target = scope:feral_child_scope
}
stress_impact = {
compassionate = medium_stress_impact_loss
paranoid = medium_stress_impact_gain
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
}
ai_chance = {
base = 10 # The AI should really avoid doing this
modifier = {
factor = 0
OR = {
has_trait = paranoid
has_trait = arrogant
has_trait = callous
has_trait = sadistic
}
}
}
}
# Use this to spread word of my good deeds
option = {
name = travel_events.4013.b
add_learning_lifestyle_xp = massive_lifestyle_xp
add_piety = medium_piety_gain
stress_impact = {
humble = minor_stress_impact_gain
compassionate = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = humble
has_trait = compassionate
}
}
}
}
}
# You fail to tame the child
travel_events.4014 = {
type = character_event
title = travel_events.4014.t
desc = travel_events.4014.desc
theme = travel
left_portrait = {
character = root
animation = disbelief
}
right_portrait = {
character = scope:feral_child_scope
animation = grief
}
# Try again
option = {
name = travel_events.4014.a
trigger = {
scope:feral_child_scope = { is_alive = yes }
has_relation_ward = scope:feral_child_scope
}
duel = {
skill = learning
value = very_high_skill_rating
50 = { # You manage to tame the child
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
trigger_event = {
id = travel_events.4013
months = 1
}
}
50 = { # You fail to tame the child and they return to nature
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
custom_tooltip = child_returns_to_nature_tt
create_character_memory = {
type = feral_child_socialised_failed_memory
participants = {
feral_child = scope:feral_child_scope
}
}
scope:feral_child_scope = {
silent_disappearance_effect = yes
}
}
}
stress_impact = {
compassionate = medium_stress_impact_loss
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
wrathful = medium_stress_impact_gain
impatient = medium_stress_impact_gain
}
ai_chance = {
base = 10 # The AI should really avoid doing this
modifier = {
factor = 0
OR = {
has_trait = callous
has_trait = sadistic
has_trait = wrathful
has_trait = impatient
}
}
}
}
# Accept your loss and move on
option = {
name = travel_events.4014.b
custom_tooltip = child_returns_to_nature_tt
create_character_memory = {
type = feral_child_socialised_failed_memory
participants = {
feral_child = scope:feral_child_scope
}
}
if = {
limit = {
scope:feral_child_scope = { is_alive = yes }
}
scope:feral_child_scope = {
silent_disappearance_effect = yes
}
}
stress_impact = {
patient = minor_stress_impact_gain
humble = minor_stress_impact_gain
compassionate = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = patient
has_trait = humble
has_trait = compassionate
has_trait = arrogant
}
}
}
}
}
# Asking for directions from a diff. language character
travel_events.4015 = {
type = character_event
title = travel_events.4015.t
desc = travel_events.4015.desc
theme = travel
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:travel_leader_scope
animation = stress
}
cooldown = { years = 20 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
is_location_valid_for_travel_event_on_land = yes
exists = current_travel_plan.travel_leader
current_travel_plan.travel_leader = {
NOT = { knows_language_of_culture = root.location.county.culture }
}
NOT = { culture = { has_same_culture_language = root.location.county.culture } }
}
immediate = {
mp_delay_travel_plan = { DAYS = 90 }
current_travel_plan.travel_leader = { save_scope_as = travel_leader_scope }
}
# Attempt to interpret the instructions
option = {
name = travel_events.4015.a
trigger = {
NOT = { knows_language_of_culture = location.county.culture }
}
duel = {
skills = { diplomacy learning }
value = medium_skill_rating
60 = { # You succesfully interpret the instructions
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.interpreted_instructions
left_icon = root
add_prestige = minor_prestige_gain
current_travel_plan = {
add_destination_progress = { days = 7 }
}
}
}
40 = { # You mess up and get lost
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.got_lost
left_icon = root
current_travel_plan = {
delay_travel_plan = {
weeks = 1
add = yes
}
}
}
}
}
}
# You speak the language and interpret the instructions
option = {
name = travel_events.4015.b
trigger = {
knows_language_of_culture = location.county.culture
}
add_prestige = minor_prestige_gain
current_travel_plan = {
add_destination_progress = { days = 7 }
}
}
after = {
mp_resume_travel_plan = yes
}
}
# You experience heatstroke
scripted_trigger 4016_is_hot_climate_trigger = {
NOT = { terrain = mountains }
NOT = { terrain = taiga }
OR = {
geographical_region = world_middle_east
geographical_region = world_india
geographical_region = world_africa
geographical_region = world_burma
geographical_region = world_asia_southeast
AND = {
OR = {
is_desert_trigger = yes
terrain = jungle
}
NOR = {
geographical_region = world_steppe
geographical_region = world_tibet
}
}
}
}
scripted_trigger 4016_is_cold_climate_trigger = { # Explicitly looking for places that are *cold*, not merely that they're not hot
OR = {
geographical_region = world_steppe
geographical_region = world_tibet
NOT = { is_desert_trigger = yes }
NOT = { terrain = jungle }
}
OR = {
geographical_region = world_steppe
geographical_region = world_tibet
geographical_region = world_europe_west_britannia
geographical_region = world_europe_west_germania
geographical_region = world_europe_north
terrain = mountains
terrain = taiga
}
NOT = {
geographical_region = world_europe_west_iberia
geographical_region = world_europe_south
geographical_region = world_middle_east
geographical_region = world_india
geographical_region = world_africa
geographical_region = world_burma
}
}
travel_events.4016 = {
type = character_event
title = travel_events.4016.t
desc = {
desc = travel_events.4016.desc.intro
first_valid = {
triggered_desc = {
trigger = {
root.location = {
is_drylands_or_desert_trigger = yes
}
}
desc = travel_events.4016.desc.mid.dry_heat
}
desc = travel_events.4016.desc.mid.humid_heat
}
desc = travel_events.4016.desc.outro
}
theme = travel_danger
left_portrait = {
character = root
animation = stress
}
trigger = {
is_available_travelling = yes
is_playable_character = yes
is_location_valid_for_travel_event_on_land = yes
root.location = {
4016_is_hot_climate_trigger = yes
}
root.capital_province = {
4016_is_cold_climate_trigger = yes
}
}
immediate = {
mp_delay_travel_plan = { DAYS = 90 }
}
# Grit your teeth and keep going
option = {
name = travel_events.4016.a
random_list = {
50 = {
modifier = {
factor = 2
OR = {
has_any_illness = yes
has_trait = weak
has_trait = physique_bad
has_trait = spindly
has_trait = wheezing
has_trait = bleeder
}
}
send_interface_toast = {
title = travel.got_heatstroke
left_icon = root
add_character_modifier = {
modifier = heatstroke_modifier
years = 2
}
add_stress = medium_stress_gain
}
}
50 = {
modifier = {
factor = 2
OR = {
has_trait = strong
has_trait = physique_good
has_trait = athletic
}
}
modifier = {
factor = 2
OR = {
has_trait = desert_warrior
has_trait = jungle_stalker
has_trait = logistician
}
}
send_interface_toast = {
title = travel.found_a_place_to_cool
left_icon = root
add_stress = minor_stress_loss
}
}
}
stress_impact = {
patient = minor_stress_impact_gain
humble = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = patient
has_trait = humble
}
}
}
}
# Attempt to steal water from your entourage
option = {
name = travel_events.4016.b
duel = {
skill = intrigue
value = medium_skill_rating
50 = { # You manage to steal water without being caught
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.stole_water
left_icon = root
add_stress = minor_stress_loss
}
}
50 = { # You get caught stealing water
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.caught_stealing_water
left_icon = root
add_prestige = medium_prestige_loss
root.current_travel_plan = {
every_entourage_character = {
custom = every_entourage_tt
add_opinion = {
modifier = angry_opinion
opinion = -10
target = root
}
}
}
}
}
}
stress_impact = {
patient = minor_stress_impact_gain
humble = minor_stress_impact_gain
honest = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = patient
has_trait = humble
has_trait = honest
}
}
}
}
after = {
mp_resume_travel_plan = yes
}
}
# Swords for hire!
travel_events.4017 = {
type = character_event
title = travel_events.4017.t
desc = {
desc = travel_events.4017.desc.intro
first_valid = {
triggered_desc = {
trigger = {
root.location = {
OR = {
geographical_region = world_steppe
county = { culture = { has_cultural_pillar = heritage_turkic } }
county = { culture = { has_cultural_pillar = heritage_mongolic } }
}
county = { culture = { has_cultural_tradition = tradition_horse_lords } }
}
}
desc = travel_events.4017.desc.mid.nomad
}
desc = travel_events.4017.desc.mid.swordsman
}
desc = travel_events.4017.desc.outro
}
theme = travel
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:warrior_scope
animation = marshal
}
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
is_location_valid_for_travel_event_on_land = yes
root.location = {
county = {
culture != root.capital_county.culture
culture = {
OR = {
has_cultural_tradition = tradition_swords_for_hire
has_cultural_tradition = tradition_ep3_audacious_cadets
}
}
}
}
}
immediate = {
create_character = {
template = swords_for_hire_character
location = root.location
culture = root.location.county.culture
faith = root.location.county.faith
#Set up the scope
save_scope_as = warrior_scope
after_creation = {
add_character_flag = created
}
}
hidden_effect = {
scope:warrior_scope = {
give_nickname = nick_the_own_culture
add_character_flag = single_combat_duel_armor
}
}
}
# Hire them!
option = {
name = travel_events.4017.a
pay_short_term_gold = {
target = scope:warrior_scope
gold = minor_gold_value
}
add_courtier = scope:warrior_scope
root.current_travel_plan = {
add_companion = scope:warrior_scope
}
hidden_effect = {
scope:warrior_scope = {
add_character_flag = {
flag = blocked_from_leaving
years = 10
}
}
}
stress_impact = {
zealous = medium_stress_impact_gain
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = zealous
has_trait = greedy
}
}
modifier = {
factor = 0
short_term_gold < minor_gold_value
}
}
}
# Attempt to negotiate for a lower contract
option = {
name = travel_events.4017.b
duel = {
skill = stewardship
value = medium_skill_rating
50 = { # You manage to haggle the price down
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.haggle_succesful
left_icon = root
pay_short_term_gold = {
target = scope:warrior_scope
gold = tiny_gold_value
}
add_courtier = scope:warrior_scope
root.current_travel_plan = {
add_companion = scope:warrior_scope
}
hidden_effect = {
scope:warrior_scope = {
add_character_flag = {
flag = blocked_from_leaving
years = 10
}
}
}
}
}
50 = { # You fail and they get pissed
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.haggle_failed
left_icon = root
add_prestige = minor_prestige_loss
}
}
}
stress_impact = {
humble = minor_stress_impact_gain
shy = medium_stress_impact_gain
generous = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = humble
has_trait = shy
has_trait = generous
}
}
modifier = {
factor = 0
short_term_gold < minor_gold_value
}
}
}
# Use them to get lower mercenary contracts
option = {
name = travel_events.4017.c
trigger = {
has_trait = avaricious
}
add_character_modifier = {
modifier = cheaper_merc_contracts
years = 5
}
stress_impact = {
craven = minor_stress_impact_gain
generous = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = craven
has_trait = generous
}
}
}
}
# Move on without hiring their services
option = {
name = travel_events.4017.d
stress_impact = {
brave = minor_stress_impact_gain
generous = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = brave
has_trait = generous
has_trait = arrogant
}
}
}
}
after = {
hidden_effect = {
scope:warrior_scope = {
remove_character_flag = single_combat_duel_armor
silent_disappearance_ai_if_created_effect = yes
}
}
}
}
# A mendicant preacher!
travel_events.4018 = {
type = character_event
title = travel_events.4018.t
desc = {
desc = travel_events.4018.desc.intro
first_valid = {
triggered_desc = {
trigger = {
root.location = {
county = { culture = { has_cultural_tradition = tradition_mendicant_mystics } }
}
}
desc = travel_events.4018.desc.mid.mystic
}
desc = travel_events.4018.desc.mid.preacher
}
desc = travel_events.4018.desc.outro
}
theme = travel
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:mystic_scope
animation = personality_zealous
}
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
is_location_valid_for_travel_event_on_land = yes
location = {
county = {
culture != root.capital_county.culture
faith.religion != root.faith.religion
OR = {
faith = { has_doctrine_parameter = mendicant_preachers_conversion_active }
culture = { has_cultural_tradition = tradition_mendicant_mystics }
}
}
}
}
immediate = {
create_character = {
template = default_mystic_character
location = root.location
culture = root.location.county.culture
faith = root.location.county.faith
#Set up the scope
save_scope_as = mystic_scope
after_creation = {
add_character_flag = created
}
}
}
# Have them burned
option = {
name = travel_events.4018.d
trigger = {
OR = {
has_trait = sadistic
has_trait = callous
has_trait = zealous
}
}
trait = sadistic
trait = callous
trait = zealous
scope:mystic_scope = {
death = {
killer = root
death_reason = death_burned_witch
}
}
stress_impact = {
sadistic = medium_stress_impact_loss
callous = medium_stress_impact_loss
zealous = minor_stress_impact_loss
compassionate = major_stress_impact_gain
just = major_stress_impact_gain
calm = major_stress_impact_gain
}
ai_chance = {
base = 0
modifier = {
factor = 100
OR = {
has_trait = sadistic
has_trait = callous
}
}
}
}
# Debate me in the arena of facts and logic
option = {
name = travel_events.4018.a
duel = {
skill = learning
target = scope:mystic_scope
50 = { # You win the debate
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.debate_won
left_icon = root
add_piety = medium_piety_gain
}
}
50 = { # You lose the debate
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.debate_lost
left_icon = root
add_prestige = miniscule_prestige_loss
add_courtier = scope:mystic_scope
root.current_travel_plan = {
add_companion = scope:mystic_scope
}
}
}
}
stress_impact = {
shy = medium_stress_impact_gain
cynical = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = shy
has_trait = cynical
}
}
}
}
# They do make some good points...
option = {
name = travel_events.4018.b
add_piety = major_piety_loss
set_character_faith = scope:mystic_scope.faith
add_courtier = scope:mystic_scope
root.current_travel_plan = {
add_companion = scope:mystic_scope
}
hidden_effect = {
scope:mystic_scope = {
add_character_flag = {
flag = blocked_from_leaving
years = 10
}
}
}
stress_impact = {
cynical = medium_stress_impact_loss
zealous = major_stress_impact_gain
arrogant = medium_stress_impact_gain
impatient = medium_stress_impact_gain
}
ai_chance = { # The AI should never do this
base = 0
}
}
# Pass them by
option = {
name = travel_events.4018.c
stress_impact = {
zealous = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
after = {
scope:mystic_scope = {
silent_disappearance_ai_if_created_effect = yes
}
}
}
# You pass by a peasant street food place, demand to sample some
travel_events.4019 = {
type = character_event
title = travel_events.4019.t
desc = travel_events.4019.desc
theme = travel
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
character = scope:pompous_courtier
animation = personality_zealous
}
override_background = { reference = market }
cooldown = { years = 20 }
trigger = {
static_group_filter = {
group = travel_events.4019
match = 0.25
}
is_available_travelling = yes
is_playable_character = yes
is_location_valid_for_travel_event_on_land = yes
location = {
has_holding = yes
}
NOT = {
location.culture = {
has_same_culture_heritage = root.culture
}
}
current_travel_plan = {
any_entourage_character = {
is_physically_able_ai_adult = yes
this != root
}
}
}
weight_multiplier = {
base = 1
# Culinary art is an exceptionally rare cultrad, so I feel for visibility this should just make the event more likely rather than locking it only to culinary artists
modifier = {
add = 10
location.culture = {
has_cultural_tradition = tradition_culinary_art
}
}
}
immediate = {
current_travel_plan = {
random_entourage_character = {
limit = {
is_physically_able_ai_adult = yes
this != root
}
weight = {
base = 1
modifier = {
factor = 2
has_trait = arrogant
}
modifier = {
factor = 0.5
NOT = { has_trait = humble }
}
}
save_scope_as = pompous_courtier
}
}
}
# I am the Emperor and I want pudding!
option = {
name = travel_events.4019.a
add_prestige = minor_prestige_loss
random_list = {
60 = {
modifier = {
factor = 2
root.location.culture = {
has_cultural_tradition = tradition_culinary_art
}
}
send_interface_toast = {
title = travel.good_food
left_icon = root
add_stress = minor_stress_loss
add_character_modifier = {
modifier = good_soup_modifier
years = 2
}
}
}
30 = {
send_interface_toast = {
title = travel.bad_food
left_icon = root
add_character_modifier = {
modifier = bad_soup_modifier
years = 2
}
}
}
10 = {
send_interface_toast = {
title = travel.food_poisoning
left_icon = root
contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = no }
}
}
}
stress_impact = {
gluttonous = medium_stress_impact_loss
comfort_eater = medium_stress_impact_loss
humble = medium_stress_impact_gain
temperate = medium_stress_impact_gain
inappetetic = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = temperate
has_trait = humble
has_trait = inappetetic
}
}
modifier = {
factor = 0
prestige <= minor_prestige_value
}
}
}
# Yes we do have better food at home...
option = {
name = travel_events.4019.b
scope:pompous_courtier = {
add_opinion = {
target = root
opinion = 5
modifier = respect_opinion
}
}
stress_impact = {
inappetetic = minor_stress_impact_loss
temperate = minor_stress_impact_loss
gluttonous = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = humble
has_trait = gluttonous
has_trait = content
}
}
}
}
# Let's take note of the recipe
option = {
name = travel_events.4019.c
trigger = {
root.location.culture = {
has_cultural_tradition = tradition_culinary_art
}
has_trait = scholar
}
add_character_modifier = {
modifier = exotic_recipe_modifier
years = 5
}
stress_impact = {
lazy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = lazy
}
}
}
}
# Strong believers harass your caravan and demand payment
travel_events.4020 = {
type = character_event
title = travel_events.4020.t
desc = travel_events.4020.desc
theme = travel_danger
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:strong_believer_scope
animation = rage
}
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
is_location_valid_for_travel_event_on_land = yes
location = {
county = {
faith.religion != root.faith.religion
culture = { has_cultural_tradition = tradition_zealous_people }
}
}
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small }
create_character = {
template = scholar_character
location = root.location
culture = root.location.county.culture
faith = root.location.county.faith
#Set up the scope
save_scope_as = strong_believer_scope
after_creation = {
add_character_flag = created
}
}
select_local_animal_effect = { TYPE = prowling } # Save scope to limit possible animals: any/big/small/dangerous/harmless/prowling
}
# Debate me in the arena of facts and logic
option = {
name = travel_events.4020.a
duel = {
skill = learning
target = scope:strong_believer_scope
50 = { # You manage to haggle the price down
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
send_interface_toast = {
title = travel.debate_won
left_icon = root
add_piety = medium_piety_gain
}
}
50 = { # You fail and they get pissed
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
send_interface_toast = {
title = travel.debate_lost
left_icon = root
add_piety = medium_piety_loss
remove_short_term_gold = minor_gold_value
}
}
}
stress_impact = {
cynical = medium_stress_impact_gain
humble = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = cynical
has_trait = humble
}
}
}
}
# Pay the tax
option = {
name = travel_events.4020.b
remove_short_term_gold = minor_gold_value
stress_impact = {
arrogant = medium_stress_impact_gain
greedy = medium_stress_impact_gain
zealous = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = greedy
has_trait = zealous
}
}
modifier = {
factor = 0
short_term_gold < minor_gold_value
}
}
}
# Have them burned
option = {
name = travel_events.4020.c
trigger = {
OR = {
has_trait = sadistic
has_trait = wrathful
has_trait = impatient
has_trait = zealous
}
}
scope:strong_believer_scope = {
death = {
killer = root
death_reason = death_burned_witch
}
}
stress_impact = {
sadistic = medium_stress_impact_loss
callous = medium_stress_impact_loss
zealous = medium_stress_impact_loss
compassionate = major_stress_impact_gain
just = major_stress_impact_gain
calm = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = just
has_trait = calm
}
}
}
}
after = {
scope:strong_believer_scope = {
silent_disappearance_ai_if_created_effect = yes
}
}
}
# You witness a human sacrifice!
travel_events.4021 = {
type = character_event
title = travel_events.4021.t
desc = {
desc = travel_events.4021.desc.intro
first_valid = {
triggered_desc = {
trigger = {
OR = {
has_trait = sadistic
has_trait = callous
}
}
desc = travel_events.4021.desc.mid.sadist
}
desc = travel_events.4021.desc.mid
}
first_valid = {
triggered_desc = {
trigger = {
is_cannibal_trigger = yes
}
desc = travel_events.4021.desc.outro.cannibal
}
triggered_desc = {
trigger = {
OR = {
has_trait = sadistic
has_trait = callous
}
}
desc = travel_events.4021.desc.outro.sadist
}
desc = travel_events.4021.desc.outro
}
}
theme = travel
left_portrait = {
character = root
triggered_animation = {
trigger = {
OR = {
has_trait = callous
has_trait = sadistic
}
}
animation = personality_callous
}
animation = disbelief
}
right_portrait = {
character = scope:sacrificed_person_scope
animation = prisondungeon
}
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
# Human sacrifice should be shocking to you
NOT = { root.faith = { has_doctrine_parameter = human_sacrifice_active } }
is_location_valid_for_travel_event_on_land = yes
location = {
county = {
faith = { has_doctrine_parameter = human_sacrifice_active }
}
}
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium }
create_character = {
template = generic_peasant_character
location = root.location
culture = root.location.county.culture
faith = root.location.county.faith
#Set up the scope
save_scope_as = sacrificed_person_scope
after_creation = {
add_character_flag = created
}
}
if = {
limit = {
root.current_travel_plan = {
any_entourage_character = {
has_relation_rival = root
is_ruler = no
}
}
}
root.current_travel_plan = {
random_entourage_character = {
limit = {
has_relation_rival = root
is_ruler = no
}
save_scope_as = rival_to_sacrifice
}
}
}
scope:sacrificed_person_scope = {
add_character_flag = is_naked
}
}
# Buy the sacrifice as your servant
option = {
name = travel_events.4021.b
remove_short_term_gold = medium_gold_value
add_courtier = scope:sacrificed_person_scope
root.current_travel_plan = {
add_companion = scope:sacrificed_person_scope
}
scope:sacrificed_person_scope = {
add_opinion = {
modifier = feast_saved_my_life_opinion
target = root
}
}
stress_impact = {
sadistic = medium_stress_impact_gain
callous = medium_stress_impact_gain
greedy = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = greedy
has_trait = zealous
has_trait = paranoid
}
}
modifier = {
factor = 0
short_term_gold <= medium_gold_value
}
}
}
# Offer up your own sacrifice!
option = {
name = travel_events.4021.c
trigger = {
exists = scope:rival_to_sacrifice
}
add_piety = medium_piety_loss
scope:rival_to_sacrifice = {
death = {
killer = root
death_reason = death_sacrificed_to_foreign_gods
}
}
add_courtier = scope:sacrificed_person_scope
root.current_travel_plan = {
add_companion = scope:sacrificed_person_scope
}
scope:sacrificed_person_scope = {
add_opinion = {
modifier = feast_saved_my_life_opinion
target = root
}
}
stress_impact = {
vengeful = medium_stress_impact_loss
sadistic = medium_stress_impact_loss
callous = medium_stress_impact_loss
compassionate = major_stress_impact_gain
just = major_stress_impact_gain
calm = major_stress_impact_gain
forgiving = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = just
has_trait = calm
has_trait = forgiving
}
}
}
}
# Just let it happen
option = {
name = {
text = {
first_valid = {
triggered_desc = {
trigger = { has_trait = sadistic }
desc = travel_events.4021.a.sadist
}
desc = travel_events.4021.a
}
}
}
scope:sacrificed_person_scope = {
death = {
death_reason = death_sacrificed_to_gods
}
}
stress_impact = {
sadistic = medium_stress_impact_loss
compassionate = medium_stress_impact_gain
just = medium_stress_impact_gain
zealous = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = just
has_trait = zealous
}
}
}
}
after = {
scope:sacrificed_person_scope ?= {
remove_character_flag = is_naked
silent_disappearance_ai_if_created_effect = yes
}
}
}
# You witness some tree worship in a Sanctity of Nature province
travel_events.4022 = {
type = character_event
title = travel_events.4022.t
desc = travel_events.4022.desc
theme = travel
left_portrait = {
character = root
triggered_animation = {
trigger = {
has_trait = zealous
NOT = { faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible } }
}
animation = anger
}
triggered_animation = {
trigger = {
has_trait = zealous
faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible }
}
animation = admiration
}
animation = interested
}
right_portrait = {
character = location.county.holder
animation = dancing
}
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
is_location_valid_for_travel_event_on_land = yes
location = {
county = {
faith != root.faith
faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible }
}
}
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium }
}
# Sit back and watch the ceremony
option = {
name = {
text = {
first_valid = {
triggered_desc = {
trigger = {
has_trait = zealous
faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible }
}
desc = travel_events.4022.a.not_so_different
}
triggered_desc = {
trigger = {
has_trait = zealous
NOT = { faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible } }
}
desc = travel_events.4022.a.ignore_heretics
}
desc = travel_events.4022.a
}
}
}
stress_impact = {
sadistic = medium_stress_impact_gain
}
if = {
limit = {
faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible }
}
add_piety = minor_piety_gain
stress_impact = {
zealous = minor_stress_impact_loss
}
}
else = {
stress_impact = {
zealous = medium_stress_impact_gain
}
}
if = {
limit = {
has_trait = lifestyle_mystic
}
add_trait_xp = {
trait = lifestyle_mystic
value = lifestyle_mystic_xp_gain_minor_value
}
}
else = {
random = {
chance = root.learning
add_trait = lifestyle_mystic
}
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = sadistic
AND = {
has_trait = zealous
NOT = { faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible } }
}
}
}
}
}
# Burn the tree!
option = {
name = travel_events.4022.b
trigger = {
NOT = { faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible } }
}
duel = {
skill = prowess
value = medium_skill_rating
50 = { # You manage to burn the tree without getting beaten up
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.burn_the_tree
left_icon = root
add_piety = medium_piety_gain
location.county.holder = {
if = {
limit = {
faith = root.location.county.faith
}
add_opinion = {
target = root
modifier = impious_opinion
opinion = -20
}
}
if = {
limit = {
liege ?= {
faith = root.location.county.faith
this != root.location.county.holder
}
}
liege = {
add_opinion = {
target = root
modifier = impious_opinion
opinion = -20
}
}
}
if = {
limit = {
top_liege ?= {
faith = root.location.county.faith
NOR = {
this = root.location.county.holder
this = root.location.county.holder.liege
}
}
}
top_liege = {
add_opinion = {
target = root
modifier = impious_opinion
opinion = -20
}
}
}
}
}
}
50 = { # You are beaten up attempting to burn the tree
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.beaten_by_peasants
left_icon = root
increase_wounds_no_death_effect = { REASON = fight }
add_prestige = medium_prestige_loss
}
}
}
stress_impact = {
sadistic = minor_stress_impact_loss
zealous = minor_stress_impact_loss
compassionate = medium_stress_impact_gain
just = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
cynical = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = cynical
has_trait = just
has_trait = forgiving
}
}
ai_value_modifier = {
ai_zeal = 1
}
}
}
# Join the ceremony
option = {
name = travel_events.4022.c
if = {
limit = {
faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible }
}
add_piety = medium_piety_gain
}
if = {
limit = {
has_trait = lifestyle_mystic
}
add_trait_xp = {
trait = lifestyle_mystic
value = lifestyle_mystic_xp_gain_minor_value
}
}
if = {
limit = {
root.location.culture != root.culture
}
root.culture = {
change_cultural_acceptance = {
target = root.location.culture
value = 1
desc = cultural_acceptance_participated_in_festival
}
}
}
stress_impact = {
curious = minor_stress_impact_loss
gregarious = minor_stress_impact_loss
shy = medium_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = shy
AND = {
faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible }
has_trait = zealous
}
}
}
}
}
}
# Prester John! You find a same-religion ruler in a faraway land
travel_events.4023 = {
type = character_event
title = travel_events.4023.t
desc = {
desc = travel_events.4023.desc.intro
first_valid = {
triggered_desc = {
trigger = {
OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion }
scope:prester_john_scope = { is_male = yes }
}
desc = travel_events.4023.desc.mid.john
}
triggered_desc = {
trigger = {
OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion }
scope:prester_john_scope = { is_female = yes }
}
desc = travel_events.4023.desc.mid.joan
}
desc = travel_events.4023.desc.mid
}
desc = travel_events.4023.desc.outro
}
theme = travel
left_portrait = {
character = root
triggered_animation = {
trigger = {
has_trait = cynical
}
animation = personality_cynical
}
animation = admiration
}
right_portrait = {
character = scope:prester_john_scope
animation = personality_zealous
}
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_landed = yes
is_location_valid_for_travel_event_on_land = yes
location.county.holder.top_liege ?= {
religion = root.religion
faith != root.faith # This shouldn't happen for Icelandic Catholics visiting Catholic Jerusalem
NOT = { in_diplomatic_range = root }
# They must be "surrounded" by other religions
save_temporary_scope_as = location_top_liege
any_neighboring_top_liege_realm = {
count < 3
holder = {
religion = scope:location_top_liege.religion
}
}
any_neighboring_top_liege_realm = {
count > 3
holder = {
religion != scope:location_top_liege.religion
}
}
}
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small }
root.location.county.holder.top_liege = {
save_scope_as = prester_john_scope
}
save_scope_as = foreign_visitor
}
# Fanboy out and ask to see "Prester John"
option = {
name = travel_events.4023.a
add_piety = minor_piety_gain
custom_tooltip = john_may_reward_you_tt
scope:prester_john_scope = {
trigger_event = travel_events.4024
}
stress_impact = {
arrogant = medium_stress_impact_gain
cynical = medium_stress_impact_gain
shy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = cynical
has_trait = shy
}
}
}
}
# Visit "Prester John" and tell him that it is his duty to spread the faith
option = {
name = travel_events.4023.b
add_piety = medium_piety_gain
if = {
limit = {
NOT = {
has_trait = holy_warrior
}
}
add_trait = holy_warrior
}
hidden_effect = {
scope:prester_john_scope = {
trigger_event = travel_events.4025
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
cynical = medium_stress_impact_gain
shy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 2
OR = {
has_trait = zealous
has_trait = holy_warrior
}
}
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = cynical
has_trait = shy
}
}
}
}
# They may be [religion], but they are still [faith] heretics!
option = {
name = travel_events.4023.c
trigger = {
faith = {
faith_hostility_level = {
target = root.location.faith
value >= faith_hostile_level
}
}
}
add_piety = minor_piety_gain
stress_impact = {
zealous = minor_stress_impact_loss
arrogant = minor_stress_impact_loss
compassionate = medium_stress_impact_gain
humble = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = humble
}
}
}
}
# That's cool I guess. Moving on
option = {
name = travel_events.4023.d
stress_impact = {
zealous = medium_stress_impact_gain
curious = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = zealous
has_trait = curious
has_trait = gregarious
}
}
}
}
}
# Prester John is told of the visitor
travel_events.4024 = {
type = character_event
title = travel_events.4024.t
desc = {
desc = travel_events.4024.desc.intro
desc = travel_events.4024.desc.mid
}
theme = travel
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:foreign_visitor
animation = admiration
}
cooldown = { years = 10 }
immediate = {
cp:councillor_court_chaplain = { save_scope_as = chaplain_scope }
}
# Fanboy back! Become friends :)
option = {
name = travel_events.4024.a
add_piety = minor_piety_gain
custom_tooltip = may_become_friends_tt
scope:foreign_visitor = {
trigger_event = travel_events.4026
}
stress_impact = {
arrogant = medium_stress_impact_gain
cynical = medium_stress_impact_gain
shy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = cynical
has_trait = shy
}
}
}
}
# They may be [religion], but they are still [faith] heretics!
option = {
name = travel_events.4024.b
trigger = {
# This should be true anyway, but just in case
faith != scope:foreign_visitor.faith
}
show_as_tooltip = {
duel = {
skill = learning
target = scope:foreign_visitor
50 = { # You win the debate
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.debate_won
left_icon = root
add_piety = medium_piety_gain
}
}
50 = { # You lose the debate
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.debate_lost
left_icon = root
add_piety = minor_piety_loss
add_stress = minor_stress_gain
}
}
}
}
hidden_effect = {
scope:foreign_visitor = {
trigger_event = travel_events.4027
}
}
stress_impact = {
zealous = minor_stress_impact_loss
arrogant = minor_stress_impact_loss
compassionate = medium_stress_impact_gain
humble = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = humble
}
}
}
}
# Give them your chaplain as a gift
option = {
name = travel_events.4024.c
trigger = { scope:chaplain_scope = { is_landed = no } is_available_allow_travelling = yes }
scope:foreign_visitor = {
send_interface_toast = {
title = travel.gift_from_john
left_icon = scope:foreign_visitor
right_icon = scope:chaplain_scope
add_courtier = scope:chaplain_scope
root.current_travel_plan = {
add_companion = scope:chaplain_scope
}
add_opinion = {
modifier = gift_opinion
opinion = 25
target = scope:prester_john_scope
}
}
}
stress_impact = {
zealous = minor_stress_impact_loss
arrogant = minor_stress_impact_loss
gregarious = medium_stress_impact_gain
just = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = gregarious
has_trait = just
}
}
}
}
# That's cool I guess. Moving on
option = {
name = travel_events.4024.d
scope:foreign_visitor = {
send_interface_toast = {
title = travel.turned_away_from_john
left_icon = scope:foreign_visitor
right_icon = scope:prester_john_scope
add_prestige = minor_prestige_loss
add_opinion = {
modifier = insulted_opinion
opinion = -20
target = scope:prester_john_scope
}
}
}
stress_impact = {
zealous = medium_stress_impact_gain
curious = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = zealous
has_trait = curious
has_trait = gregarious
}
}
}
}
}
# Prester John encouraged to to take up the sword against heretics
travel_events.4025 = {
type = character_event
title = travel_events.4025.t
desc = {
desc = travel_events.4024.desc.intro
desc = travel_events.4025.desc.mid
}
theme = travel
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:foreign_visitor
animation = personality_bold
}
cooldown = { years = 10 }
# Heretic bashing time
option = {
name = travel_events.4025.a
add_trait = holy_warrior
if = {
limit = {
OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion }
OR = {
has_any_nickname = no
has_bad_nickname = yes
}
}
if = {
limit = { is_male = yes }
give_nickname = nick_prester_john
}
else = {
give_nickname = nick_prester_joan
}
}
every_neighboring_and_across_water_top_liege_realm = {
custom = travel_events.4025.different_religion_neighbors_and_vassals
limit = {
holder.religion != root.religion
}
holder = {
add_opinion = {
modifier = insult_opinion
opinion = -25
target = root
}
}
}
#Hidden because the above tooltip should inform you
hidden_effect = {
every_vassal = {
limit = {
religion != root.religion
}
add_opinion = {
modifier = insult_opinion
opinion = -25
target = root
}
}
}
stress_impact = {
zealous = medium_stress_impact_loss
compassionate = medium_stress_impact_gain
cynical = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = cynical
has_trait = gregarious
}
}
}
}
# No
option = {
name = travel_events.4025.b
scope:foreign_visitor = {
send_interface_toast = {
title = travel.visitor_rejected_me
left_icon = scope:foreign_visitor
right_icon = scope:prester_john_scope
add_opinion = {
modifier = disappointed_opinion
opinion = -25
target = root
}
}
}
stress_impact = {
gregarious = medium_stress_impact_gain
}
ai_chance = {
base = 0
modifier = {
add = 100
has_trait = shy
}
}
}
}
# Prester John wants to be penpals!
travel_events.4026 = {
type = character_event
title = travel_events.4026.t
desc = travel_events.4026.desc
theme = travel
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:prester_john_scope
animation = admiration
}
cooldown = { years = 10 }
# Fren time
option = {
name = travel_events.4026.a
scope:prester_john_scope = {
send_interface_toast = {
title = travel.became_friends_with_visitor
left_icon = scope:prester_john_scope
right_icon = scope:foreign_visitor
set_relation_friend = {
reason = friend_respected_other_religion
target = scope:foreign_visitor
}
}
}
stress_impact = {
shy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = shy
}
}
}
# No frens
option = {
name = travel_events.4026.b
scope:prester_john_scope = {
send_interface_toast = {
title = travel.visitor_rejected_friendship
left_icon = scope:prester_john_scope
right_icon = scope:foreign_visitor
add_opinion = {
modifier = disappointed_opinion
opinion = -25
target = root
}
}
}
stress_impact = {
gregarious = medium_stress_impact_gain
}
ai_chance = {
base = 0
modifier = {
add = 100
has_trait = shy
}
}
}
}
# Prester John wants to debate you
travel_events.4027 = {
type = character_event
title = travel_events.4027.t
desc = travel_events.4027.desc
theme = travel
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:prester_john_scope
animation = anger
}
cooldown = { years = 10 }
# Debate me bro
option = {
name = travel_events.4027.a
duel = {
skill = learning
target = scope:prester_john_scope
50 = { # You win the debate
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.debate_won
left_icon = scope:prester_john_scope
right_icon = scope:foreign_visitor
add_piety = medium_piety_gain
}
scope:prester_john_scope = {
send_interface_toast = {
title = travel.debate_lost
left_icon = scope:prester_john_scope
right_icon = scope:foreign_visitor
add_piety = minor_piety_loss
add_stress = minor_stress_gain
}
}
}
50 = { # You lose the debate
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.debate_lost
left_icon = scope:prester_john_scope
right_icon = scope:foreign_visitor
add_piety = minor_piety_loss
add_stress = minor_stress_gain
scope:prester_john_scope = {
send_interface_toast = {
title = travel.debate_won
left_icon = scope:prester_john_scope
right_icon = scope:foreign_visitor
add_piety = medium_piety_gain
}
}
}
}
}
}
}
# You come across a runestone!
travel_events.4028 = {
type = character_event
title = travel_events.4028.t
desc = travel_events.4028.desc
theme = travel
left_portrait = {
character = root
camera = camera_event_left_away_3_4
triggered_animation = {
trigger = {
has_trait = zealous
}
animation = anger
}
animation = survey
}
cooldown = { years = 10 }
override_background = { reference = fp1_runestone }
trigger = {
is_available_travelling = yes
is_playable_character = yes
is_location_valid_for_travel_event_on_land = yes
# You're not used to Runestones
NOT = { root.culture = { has_cultural_parameter = has_access_to_runestones } }
# This place do be having Runestones tho
location.county.culture = { has_cultural_parameter = has_access_to_runestones }
# You'd be unlikely to understand the written language on the stone
NOT = { knows_language_of_culture = location.county.culture }
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium }
}
# Attempt to read the runestone
option = {
name = travel_events.4028.a
duel = {
skill = learning
value = high_skill_rating
50 = { # You read the runestone
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.read_runestone
left_icon = root
add_learning_lifestyle_xp = major_lifestyle_xp
}
}
50 = { # You fail
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.failed_to_read_runestone
left_icon = root
add_prestige = minor_prestige_loss
}
}
}
stress_impact = {
scholar = medium_stress_impact_loss
dull = medium_stress_impact_gain
lazy = medium_stress_impact_gain
zealous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = dull
has_trait = lazy
has_trait = zealous
has_trait = sadistic
}
}
}
}
# Topple the stone!
option = {
name = travel_events.4028.b
if = {
limit = { faith_is_aniconic_trigger = yes }
add_piety = medium_piety_gain
}
else = {
add_piety = minor_piety_gain
}
stress_impact = {
sadistic = minor_stress_impact_loss
zealous = minor_stress_impact_loss
compassionate = medium_stress_impact_gain
craven = medium_stress_impact_gain
just = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = craven
has_trait = just
has_trait = forgiving
}
}
}
}
# Just pass by
option = {
name = travel_events.4028.c
stress_impact = {
curious = minor_stress_impact_gain
zealous = minor_stress_impact_gain
sadistic = medium_stress_impact_gain
scholar = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = curious
has_trait = zealous
has_trait = sadistic
has_trait = scholar
}
}
}
}
}
# You come across dimwit strung up on a post
travel_events.4029 = {
type = character_event
title = travel_events.4029.t
desc = {
desc = travel_events.4029.desc.intro
first_valid = {
triggered_desc = {
trigger = {
OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion }
}
desc = travel_events.4029.desc.mid.christian
}
desc = travel_events.4029.desc.mid
}
desc = travel_events.4029.desc.outro
}
theme = travel
left_portrait = {
character = root
triggered_animation = {
trigger = {
has_trait = sadistic
}
animation = admiration
}
triggered_animation = {
trigger = {
has_trait = callous
}
animation = personality_rational
}
animation = shock
}
right_portrait = {
character = scope:brainless_character
animation = pain
}
override_background = { reference = battlefield }
cooldown = { years = 30 }
trigger = {
static_group_filter = {
group = wizard_of_oz_group
match = 0.1
}
is_available_travelling = yes
is_playable_character = yes
root.location = { terrain = farmlands }
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium }
create_character = {
template = brainless_character_template
location = root.location
culture = root.location.county.culture
faith = root.location.county.faith
#Set up the scope
save_scope_as = brainless_character
after_creation = {
add_character_flag = created
}
}
hidden_effect = {
scope:brainless_character = {
give_nickname = nick_the_thoughtless
random_list = {
50 = {
set_to_lowborn = yes
}
50 = { # They're someone important!
add_gold = 50
}
}
}
}
}
# Cut them down from there
option = {
name = travel_events.4029.a
custom_tooltip = brainless_may_reward_you_tt
trigger_event = travel_events.4030
stress_impact = {
compassionate = medium_stress_impact_loss
paranoid = medium_stress_impact_gain
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
arbitrary = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = paranoid
has_trait = callous
has_trait = sadistic
has_trait = arbitrary
}
}
}
}
# Cut them down.... and imprison them!
option = {
name = travel_events.4029.b
rightfully_imprison_character_effect = {
TARGET = scope:brainless_character
IMPRISONER = root
}
add_piety = minor_piety_gain
stress_impact = {
callous = minor_stress_impact_loss
sadistic = minor_stress_impact_loss
compassionate = medium_stress_impact_gain
just = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
}
ai_chance = {
base = 0
modifier = {
add = 100
OR = {
has_trait = callous
has_trait = sadistic
}
}
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = just
has_trait = forgiving
}
}
}
}
# Just pass by
option = {
name = travel_events.4029.c
scope:brainless_character = {
if = {
limit = {
root = { is_ai = yes }
}
silent_disappearance_effect = yes
}
}
stress_impact = {
compassionate = minor_stress_impact_gain
just = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = just
}
}
}
}
after = {
scope:brainless_character = {
silent_disappearance_ai_if_created_effect = yes
}
}
}
travel_events.4030 = {
type = character_event
title = travel_events.4030.t
desc = {
desc = travel_events.4030.desc.intro
first_valid = {
triggered_desc = {
trigger = {
scope:brainless_character = {
is_lowborn = yes
}
}
desc = travel_events.4030.desc.mid.lowborn
}
desc = travel_events.4030.desc.mid.noble
}
desc = travel_events.4030.desc.outro
}
theme = travel
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:brainless_character
animation = personality_forgiving
}
cooldown = { years = 10 }
weight_multiplier = {
base = 1
modifier = {
involved_activity = {
has_activity_type = activity_pilgrimage
}
factor = 0.5
}
}
# Welcome them to your entourage
option = {
name = travel_events.4030.a
add_courtier = scope:brainless_character
root.current_travel_plan = {
add_companion = scope:brainless_character
}
scope:brainless_character = {
add_character_flag = {
flag = blocked_from_leaving
years = 10
}
}
stress_impact = {
callous = minor_stress_impact_gain
sadistic = minor_stress_impact_gain
shy = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = callous
has_trait = sadistic
has_trait = shy
has_trait = paranoid
has_trait = greedy
}
}
}
}
# Take their reward
option = {
name = travel_events.4030.b
if = {
limit = {
scope:brainless_character = { is_lowborn = yes }
}
add_gold = tiny_gold_value
}
else = {
add_gold = minor_gold_value
}
add_hook = {
type = favor_hook
target = scope:brainless_character
}
if = {
limit = {
NOT = { # We currently don't have any doctrines that do this, but good to future-proof
root.faith = { trait_is_virtue = greedy }
}
}
add_piety = minor_piety_loss
}
stress_impact = {
humble = medium_stress_impact_gain
generous = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = humble
has_trait = generous
}
}
}
}
# Let them go without a reward
option = {
name = travel_events.4030.c
add_piety = medium_piety_gain
stress_impact = {
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = greedy
}
}
}
after = {
if = {
limit = {
is_ai = yes
scope:brainless_character = {
is_alive = yes
NOT = { is_courtier_of = root }
}
}
scope:brainless_character = {
if = {
limit = {
root = { is_ai = yes }
}
silent_disappearance_effect = yes
}
}
}
}
}
# You come across a knight stuck in his armour
travel_events.4031 = {
type = character_event
title = travel_events.4031.t
desc = {
desc = travel_events.4031.desc.intro
first_valid = {
triggered_desc = {
trigger = {
OR = {
has_trait = callous
has_trait = sadistic
}
}
desc = travel_events.4031.desc.mid.callous
}
desc = travel_events.4031.desc.mid
}
desc = travel_events.4031.desc.outro
}
theme = travel
left_portrait = {
character = root
triggered_animation = {
trigger = {
OR = {
has_trait = sadistic
has_trait = callous
}
}
animation = laugh
}
animation = shock
}
right_portrait = {
character = scope:heartless_knight_scope
animation = rage
}
cooldown = { years = 30 }
trigger = {
static_group_filter = {
group = wizard_of_oz_group
match = 0.1
}
is_available_travelling = yes
is_playable_character = yes
is_location_valid_for_travel_event_on_land = yes
is_valid_for_east_asian_events_trigger = no
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small }
create_character = {
template = heartless_knight
location = root.location
culture = root.location.county.culture
faith = root.location.county.faith
#Set up the scope
save_scope_as = heartless_knight_scope
after_creation = {
add_character_flag = created
}
}
hidden_effect = {
scope:heartless_knight_scope = {
if = {
limit = { root = { is_ai = no } }
give_nickname = nick_the_heartless
}
add_character_flag = single_combat_duel_armor
}
}
}
# Help them unsuit, for a reward
option = {
name = travel_events.4031.a
add_gold = {
value = minor_gold_value
max = 30
}
add_hook = {
type = favor_hook
target = scope:heartless_knight_scope
}
stress_impact = {
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
generous = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = callous
has_trait = sadistic
has_trait = generous
}
}
}
}
# Help them unsuit, for their loyalty
option = {
name = travel_events.4031.b
add_courtier = scope:heartless_knight_scope
root.current_travel_plan = {
add_companion = scope:heartless_knight_scope
}
scope:heartless_knight_scope = {
add_character_flag = {
flag = blocked_from_leaving
years = 10
}
if = {
limit = {
NOT = {
can_be_combatant_based_on_gender_trigger = {
ARMY_OWNER = root
}
}
}
custom_tooltip = ignores_gender_army_rules_tt
add_character_modifier = ignores_gender_army_rules
}
}
if = {
limit = {
can_employ_court_position_type = champion_court_position
}
court_position_grant_effect = {
CANDIDATE = scope:heartless_knight_scope
EMPLOYER = root
POS = champion
}
}
else_if = {
limit = {
can_employ_court_position_type = bodyguard_court_position
}
court_position_grant_effect = {
CANDIDATE = scope:heartless_knight_scope
EMPLOYER = root
POS = bodyguard
}
}
stress_impact = {
callous = minor_stress_impact_gain
sadistic = minor_stress_impact_gain
paranoid = medium_stress_impact_gain
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = callous
has_trait = sadistic
has_trait = shy
has_trait = paranoid
has_trait = greedy
}
}
}
}
# Cackle at them and walk away
option = {
name = travel_events.4031.c
add_prestige = miniscule_prestige_gain
if = {
limit = {
NOR = {
has_trait = callous
has_trait = sadistic
}
}
stress_impact = {
compassionate = minor_stress_impact_gain
just = minor_stress_impact_gain
forgiving = medium_stress_impact_gain
greedy = medium_stress_impact_gain
}
}
else = {
stress_impact = {
callous = medium_stress_impact_loss
sadistic = medium_stress_impact_loss
compassionate = medium_stress_impact_gain
just = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
greedy = medium_stress_impact_gain
}
}
ai_chance = {
base = 0
modifier = {
add = 100
OR = {
has_trait = callous
has_trait = sadistic
}
}
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = just
has_trait = forgiving
has_trait = greedy
}
}
}
}
after = {
hidden_effect = {
scope:heartless_knight_scope = {
remove_character_flag = single_combat_duel_armor
silent_disappearance_ai_if_created_effect = yes
}
}
}
}
# You come across a noble being assaulted by a random animal
travel_events.4032 = {
type = character_event
title = travel_events.4032.t
desc = travel_events.4032.desc
theme = travel
left_portrait = {
character = root
scripted_animation = duel_wield_weapon
}
right_portrait = {
character = scope:cowardly_knight_scope
animation = fear
}
lower_right_portrait = scope:entourage_helper
cooldown = { years = 30 }
trigger = {
static_group_filter = {
group = wizard_of_oz_group
match = 0.1
}
is_available_travelling = yes
is_playable_character = yes
is_location_valid_for_travel_event_on_land = yes
current_travel_plan = {
any_entourage_character = {
this != root
is_ai = yes
is_adult = yes
is_healthy = yes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
}
}
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_high }
hidden_effect = {
select_local_animal_effect = { TYPE = prowling } # Save scope to limit possible animals: any/big/small/dangerous/harmless/prowling
create_character = {
template = cowardly_knight
location = root.location
culture = root.location.county.culture
faith = root.location.county.faith
#Set up the scope
save_scope_as = cowardly_knight_scope
after_creation = {
add_character_flag = created
}
}
scope:cowardly_knight_scope ?= {
give_nickname = nick_the_craven
change_trait_rank = {
trait = wounded
rank = 1
max = 3
}
}
current_travel_plan = {
ordered_entourage_character = {
order_by = prowess
limit = {
this != root
is_ai = yes
is_adult = yes
is_healthy = yes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
}
save_scope_as = entourage_helper
}
}
}
}
# Entourage member helps them
option = {
name = travel_events.4032.b
#Lower personal risk, a bit lower reward
scope:entourage_helper = {
duel = {
skill = prowess
value = high_skill_rating
50 = { # Your companion defeats the lion
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
if = {
limit = {
accolade ?= { is_accolade_active = yes }
}
accolade = { add_glory = minor_glory_gain }
}
root = {
send_interface_toast = {
title = travel.beat_back_lion
left_icon = root
add_prestige = medium_prestige_gain
}
}
}
50 = { # Your companion is mauled by a lion
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
if = {
limit = {
accolade ?= { is_accolade_active = yes }
}
accolade = { add_glory = minor_glory_gain }
}
send_interface_toast = {
title = travel.mauled_by_animal
left_icon = root
increase_wounds_effect = { REASON = wild_animal }
scope:cowardly_knight_scope = {
death = {
death_reason = death_wild_animal
}
}
}
}
}
}
if = { #Always the pious thing to do, even if you failed.
limit = { has_pious_pilgrimage_type_trigger = yes }
pious_type_option_effect = yes
}
stress_impact = {
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
brave = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
add = -50
has_trait = sadistic
}
modifier = {
add = -25
has_trait = brave
}
}
}
# Help them yourself
option = {
name = travel_events.4032.a
duel = {
skill = prowess
value = high_skill_rating
50 = { # You fight back the lion
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.beat_back_lion
left_icon = root
add_prestige = medium_prestige_gain
add_courtier = scope:cowardly_knight_scope
root.current_travel_plan = {
add_companion = scope:cowardly_knight_scope
}
scope:cowardly_knight_scope = {
add_opinion = {
modifier = feast_saved_my_life_opinion
target = root
}
add_character_flag = {
flag = blocked_from_leaving
years = 10
}
if = {
limit = {
NOT = {
can_be_combatant_based_on_gender_trigger = {
ARMY_OWNER = root
}
}
}
custom_tooltip = ignores_gender_army_rules_tt
add_character_modifier = ignores_gender_army_rules
}
}
}
}
50 = { # You are mauled by a lion
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.mauled_by_animal
left_icon = root
increase_wounds_effect = { REASON = wild_animal }
scope:cowardly_knight_scope = {
death = {
death_reason = death_wild_animal
}
}
}
}
}
if = { #Always the pious thing to do, even if you failed.
limit = { has_pious_pilgrimage_type_trigger = yes }
pious_type_option_effect = yes
}
stress_impact = {
craven = major_stress_impact_gain
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 3
has_trait = brave
}
modifier = {
factor = 0
OR = {
has_trait = callous
has_trait = sadistic
has_trait = craven
}
}
}
}
# Just walk away
option = {
name = travel_events.4032.c
scope:cowardly_knight_scope = {
death = {
death_reason = death_wild_animal
}
}
stress_impact = {
callous = medium_stress_impact_loss
sadistic = medium_stress_impact_loss
craven = medium_stress_impact_loss
compassionate = minor_stress_impact_gain
just = minor_stress_impact_gain
brave = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
add = -50
NOR = {
has_trait = callous
has_trait = sadistic
}
}
modifier = {
factor = 0.25
OR = {
has_trait = compassionate
has_trait = just
has_trait = brave
}
}
}
}
after = {
scope:cowardly_knight_scope = {
silent_disappearance_ai_if_created_effect = yes
}
}
}
# A witch who strangely isn't being burned
travel_events.4033 = {
type = character_event
title = travel_events.4033.t
desc = {
desc = travel_events.4033.desc.intro
first_valid = {
triggered_desc = {
trigger = {
has_trait = zealous
}
desc = travel_events.4033.desc.mid.zealous
}
desc = travel_events.4033.desc.mid
}
}
theme = travel
left_portrait = {
character = root
triggered_animation = {
trigger = {
has_trait = zealous
}
animation = personality_callous
}
animation = personality_rational
}
right_portrait = {
character = scope:witch_scope
animation = personality_compassionate
}
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
is_witch_trigger = no
is_location_valid_for_travel_event_on_land = yes
location = {
county = {
faith = { has_doctrine_parameter = witchcraft_accepted }
}
}
OR = {
faith = { has_doctrine_parameter = witchcraft_shunned }
faith = { has_doctrine_parameter = witchcraft_illegal }
}
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small }
create_character = {
template = witchy_template
location = root.location
culture = root.location.county.culture
faith = root.location.county.faith
#Set up the scope
save_scope_as = witch_scope
after_creation = {
add_character_flag = created
}
}
hidden_effect = {
scope:witch_scope = {
add_trait = witch
}
}
}
# Debate the sinful nature of Witchcraft
option = {
name = travel_events.4033.a
duel = {
skill = learning
target = scope:witch_scope
5 = { # Critical success: the Witch becomes convinced of their own wickedness and joins you to repent
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.debate_won
left_icon = root
right_icon = scope:witch_scope
add_piety = medium_piety_gain
scope:witch_scope = {
set_character_faith = root.faith
remove_trait = witch
}
add_courtier = scope:witch_scope
root.current_travel_plan = {
add_companion = scope:witch_scope
}
}
}
45 = { # You convince the peasantry that witchcraft is evil
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.debate_won
left_icon = root
add_piety = medium_piety_gain
}
}
45 = { # You fail to convince them
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.debate_lost
left_icon = root
add_piety = minor_piety_loss
}
}
}
stress_impact = {
cynical = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = shy
has_trait = cynical
has_trait = arrogant
has_trait = impatient
}
}
}
}
# Teach me to be a Witch!
option = {
name = travel_events.4033.b
trigger = {
NOT = { has_trait = zealous }
OR = { #have a witchy trait
has_trait = cynical
has_trait = deceitful
has_trait = fickle
has_trait = arbitrary
}
}
give_witch_secret_or_trait_effect = yes
add_piety = medium_piety_loss
pay_short_term_gold = {
target = scope:witch_scope
gold = minor_gold_value
}
add_courtier = scope:witch_scope
root.current_travel_plan = {
add_companion = scope:witch_scope
}
set_relation_friend = scope:witch_scope
hidden_effect = {
scope:witch_scope = {
add_character_flag = {
flag = blocked_from_leaving
years = 10
}
}
set_variable = {
name = discounted_faith_to_convert_to_var
value = scope:witch_scope.faith
}
}
custom_tooltip = cheaper_to_convert_to_witchy_faith_tt
stress_impact = {
base = medium_stress_impact_gain
cynical = medium_stress_impact_loss
}
ai_chance = { # The AI should never do this
base = 0
modifier = { # Unless you're cynical/ambitious
add = 50
has_trait = cynical
}
}
}
# Pass them by
option = {
name = travel_events.4033.c
stress_impact = {
zealous = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
# Have them burned
option = {
name = travel_events.4033.d
trigger = {
NOT = { has_trait = cynical }
}
duel = {
skill = diplomacy
value = medium_skill_rating
50 = { # You burn the witch
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.burned_witch
left_icon = root
add_piety = medium_piety_gain
scope:witch_scope = {
death = {
killer = root
death_reason = death_burned
}
}
}
hidden_effect = { # Get a cool witchy artifact!
random_list = {
95 = {
}
5 = {
trigger_event = travel_events.4034
}
}
}
}
50 = { # You get beaten up by the locals
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.beaten_by_locals
left_icon = root
add_prestige = medium_prestige_loss
}
}
}
stress_impact = {
sadistic = medium_stress_impact_loss
callous = medium_stress_impact_loss
zealous = major_stress_impact_loss
compassionate = medium_stress_impact_gain
just = medium_stress_impact_gain
calm = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = just
has_trait = calm
}
}
}
}
after = {
scope:witch_scope = {
silent_disappearance_ai_if_created_effect = yes
}
}
}
# A witchy artifact in the ashes
travel_events.4034 = {
type = character_event
title = travel_events.4034.t
desc = {
desc = travel_events.4034.desc.intro
first_valid = {
triggered_desc = {
trigger = {
exists = var:artifact_is_bones
}
desc = travel_events.4034.desc.mid.bones
}
desc = travel_events.4034.desc.mid
}
desc = travel_events.4034.desc.outro
}
theme = travel
left_portrait = {
character = root
animation = personality_rational
}
artifact = {
target = scope:witchy_artifact_scope
position = lower_left_portrait
}
override_background = { reference = battlefield }
immediate = {
random_list = {
10 = {
set_artifact_rarity_famed = yes
create_artifact = {
name = jewelled_slippers
description = jewelled_slippers_description
type = miscellaneous
visuals = small_box
template = witchy_shoes_template
modifier = artifact_monthly_prestige_2_modifier
modifier = artifact_stress_gain_4_modifier
wealth = scope:wealth
quality = scope:quality
save_scope_as = witchy_artifact_scope
}
}
10 = {
set_artifact_rarity_masterwork = yes
create_artifact = {
name = witchcraft_book
description = witchcraft_book_description
type = miscellaneous
visuals = book
template = witchy_book_template
modifier = artifact_health_gain_1_modifier
modifier = artifact_learning_per_piety_level_modifier
wealth = scope:wealth
quality = scope:quality
save_scope_as = witchy_artifact_scope
}
}
10 = {
set_artifact_rarity_masterwork = yes
create_artifact = {
name = witchy_holy_text_mid
description = witchy_holy_text_mid_description
type = miscellaneous
visuals = book
template = holy_book_template
modifier = artifact_monthly_piety_1_modifier
modifier = artifact_learning_per_piety_level_modifier
wealth = scope:wealth
quality = scope:quality
save_scope_as = witchy_artifact_scope
}
scope:witchy_artifact_scope = {
set_variable = {
name = relic_religion
value = scope:witch_scope.religion
}
}
}
10 = {
set_artifact_rarity_masterwork = yes
create_artifact = {
name = immaculate_witchy_bones
description = immaculate_witchy_bones_description
type = miscellaneous
visuals = human_skull
modifier = artifact_dread_gain_mult_2_modifier
wealth = scope:wealth
quality = scope:quality
save_scope_as = witchy_artifact_scope
}
set_variable = {
name = artifact_is_bones
value = yes
days = 7
}
}
}
}
# Cool
option = {
name = travel_events.4034.a
}
}
# You are a witch and you're being harassed by locals
travel_events.4035 = {
type = character_event
title = travel_events.4035.t
desc = {
desc = travel_events.4035.desc.intro
first_valid = {
triggered_desc = {
trigger = {
has_trait = zealous
}
desc = travel_events.4035.desc.mid.zealous
}
desc = travel_events.4035.desc.mid
}
desc = travel_events.4035.desc.outro
}
theme = travel
left_portrait = {
character = root
triggered_animation = {
trigger = {
has_trait = zealous
}
animation = personality_callous
}
animation = personality_rational
}
right_portrait = {
character = scope:zealous_priest_scope
animation = personality_compassionate
}
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
is_witch_trigger = yes
is_location_valid_for_travel_event_on_land = yes
location = {
county = {
OR = {
faith = { has_doctrine_parameter = witchcraft_shunned }
faith = { has_doctrine_parameter = witchcraft_illegal }
}
}
}
faith = { has_doctrine_parameter = witchcraft_accepted }
}
immediate = {
create_character = {
template = priest_character_template
location = root.location
culture = root.location.county.culture
faith = root.location.county.faith
#Set up the scope
save_scope_as = zealous_priest_scope
after_creation = {
add_character_flag = created
}
}
hidden_effect = {
scope:zealous_priest_scope = {
add_trait = zealous
}
}
}
# Debate the sinful nature of Witchcraft
option = {
name = travel_events.4035.a
duel = {
skill = learning
target = scope:zealous_priest_scope
5 = { # Critical success: the Witch becomes convinced of their own wickedness and joins you to repent
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.debate_won
left_icon = root
right_icon = scope:zealous_priest_scope
add_piety = medium_piety_gain
scope:zealous_priest_scope = {
set_character_faith = root.faith
add_trait = witch
}
add_courtier = scope:zealous_priest_scope
root.current_travel_plan = {
add_companion = scope:zealous_priest_scope
}
}
}
45 = { # You convince the peasantry that witchcraft is good actually
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.debate_won
left_icon = root
add_piety = medium_piety_gain
}
}
45 = { # You fail to convince them
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.debate_lost
left_icon = root
add_piety = minor_piety_loss
add_stress = minor_stress_gain
increase_wounds_effect = { REASON = burned_witch }
}
}
}
stress_impact = {
shy = medium_stress_impact_gain
cynical = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
impatient = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = shy
has_trait = cynical
has_trait = arrogant
has_trait = impatient
}
}
}
}
# I repent my witchy ways!
option = {
name = travel_events.4035.b
remove_witch_secret_or_trait_effect = yes
add_piety = medium_piety_loss
pay_short_term_gold = {
target = scope:zealous_priest_scope
gold = minor_gold_value
}
add_courtier = scope:zealous_priest_scope
root.current_travel_plan = {
add_companion = scope:zealous_priest_scope
}
set_relation_friend = scope:zealous_priest_scope
hidden_effect = {
scope:zealous_priest_scope = {
add_character_flag = {
flag = blocked_from_leaving
years = 10
}
}
set_variable = {
name = discounted_faith_to_convert_to_var
value = scope:zealous_priest_scope.faith
}
}
custom_tooltip = cheaper_to_convert_to_priest_faith_tt
stress_impact = {
base = medium_stress_impact_gain
ambitious = minor_stress_impact_loss
cynical = medium_stress_impact_loss
content = major_stress_impact_gain
zealous = massive_stress_impact_gain
}
ai_chance = { # The AI should never do this
base = 0
modifier = { # Unless you're cynical/ambitious
add = 50
OR = {
has_trait = cynical
has_trait = ambitious
}
}
modifier = { # Unless you're cynical/ambitious
factor = 0
OR = {
has_trait = content
has_trait = zealous
}
}
}
}
# Run away!
option = {
name = travel_events.4035.c
stress_impact = {
zealous = medium_stress_impact_gain
brave = major_stress_impact_gain
}
ai_chance = {
base = 100
}
}
# Fight em
option = {
name = travel_events.4035.d
if = {
limit = {
exists = root.current_travel_plan.travel_leader
}
root.current_travel_plan.travel_leader = {
duel = {
skill = prowess
target = scope:zealous_priest_scope
50 = { # You beat up the witch hater
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
root = {
send_interface_toast = {
title = travel.beat_zealot
left_icon = root
add_piety = medium_piety_gain
add_prestige = minor_prestige_gain
scope:zealous_priest_scope = {
increase_wounds_effect = {
REASON = fight
}
}
}
}
}
50 = { # You get beaten up by the locals
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
root = {
send_interface_toast = {
title = travel.beaten_by_locals
left_icon = root
prev = {
increase_wounds_effect = { REASON = fight }
}
add_prestige = medium_prestige_loss
}
}
}
}
}
}
else = {
duel = {
skill = prowess
target = scope:zealous_priest_scope
50 = { # You beat up the witch hater
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
root = {
send_interface_toast = {
title = travel.beat_zealot
left_icon = root
add_piety = medium_piety_gain
add_prestige = minor_prestige_gain
scope:zealous_priest_scope = {
increase_wounds_effect = {
REASON = fight
}
}
}
}
}
50 = { # You get beaten up by the locals
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
root = {
send_interface_toast = {
title = travel.beaten_by_locals
left_icon = root
prev = {
increase_wounds_effect = { REASON = fight }
}
add_prestige = medium_prestige_loss
}
}
}
}
}
stress_impact = {
sadistic = medium_stress_impact_loss
callous = medium_stress_impact_loss
zealous = minor_stress_impact_loss
compassionate = major_stress_impact_gain
just = major_stress_impact_gain
calm = major_stress_impact_gain
craven = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = just
has_trait = calm
has_trait = craven
}
}
}
}
after = {
scope:zealous_priest_scope = {
silent_disappearance_ai_if_created_effect = yes
}
}
}
# Caravaneers want to sell you some cool stuff
travel_events.4036 = {
type = character_event
title = travel_events.4036.t
desc = travel_events.4036.desc
theme = travel
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:merchant_character_scope
animation = admiration
}
artifact = {
target = scope:merchant_artifact_scope
position = lower_left_portrait
}
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
is_location_valid_for_travel_event_on_land = yes
location.culture = {
has_cultural_tradition = tradition_caravaneers
}
}
immediate = {
create_character = {
template = generic_peasant_character
location = root.location
culture = root.location.culture
faith = root.location.faith
#Set up the scope
save_scope_as = merchant_character_scope
after_creation = {
add_character_flag = created
}
}
root.location.kingdom = { save_scope_as = kingdom_scope }
scope:merchant_character_scope = {
hidden_effect = {
add_trait = avaricious
random_list = {
10 = {
set_artifact_rarity_masterwork = yes
create_artifact = {
name = mysterious_lamp
description = mysterious_lamp_description
type = goblet
visuals = riches
modifier = artifact_monthly_prestige_2_modifier
modifier = artifact_court_grandeur_baseline_add_5_modifier
wealth = scope:wealth
quality = scope:quality
save_scope_as = merchant_artifact_scope
}
}
10 = {
set_artifact_rarity_masterwork = yes
create_artifact = {
name = mysterious_puzzle
description = mysterious_puzzle_description
type = miscellaneous
visuals = small_box
template = mysterious_puzzle_template
modifier = artifact_learn_language_scheme_phase_duration_add_2_modifier
modifier = artifact_learning_per_stress_level_2_modifier
wealth = scope:wealth
quality = scope:quality
save_scope_as = merchant_artifact_scope
}
}
5 = {
set_artifact_rarity_famed = yes
create_artifact = {
name = lunchbox
description = lunchbox_description
type = miscellaneous
visuals = small_box
modifier = artifact_negate_health_penalty_add_2_modifier
modifier = artifact_stress_gain_4_modifier
wealth = scope:wealth
quality = scope:quality
save_scope_as = merchant_artifact_scope
}
}
}
}
}
}
# Buy the artifact!
option = {
name = travel_events.4036.a
if = {
limit = {
scope:merchant_artifact_scope = {
rarity = famed
}
}
remove_short_term_gold = major_gold_value
}
else = {
remove_short_term_gold = medium_gold_value
}
scope:merchant_artifact_scope = { set_owner = root }
stress_impact = {
greedy = medium_stress_impact_gain
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = greedy
has_trait = callous
has_trait = sadistic
}
}
modifier = {
factor = 0
short_term_gold <= major_gold_value
}
}
}
# Attempt to steal the artifact
option = {
name = travel_events.4036.b
duel = {
skill = intrigue
value = very_high_skill_rating
50 = { # You beat up the fisherman
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.stole_artifact
left_icon = root
scope:merchant_artifact_scope = { set_owner = root }
}
}
50 = { # You get caught and exposed as a dirty thief!
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.caught_red_handed
left_icon = root
increase_wounds_no_death_effect = { REASON = fight }
add_prestige = major_prestige_loss
add_character_modifier = {
modifier = caught_thief_modifier
years = 5
}
}
}
}
stress_impact = {
sadistic = minor_stress_impact_loss
callous = minor_stress_impact_loss
base = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
just = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
craven = medium_stress_impact_gain
generous = major_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
add = 50
OR = {
has_trait = sadistic
has_trait = callous
}
}
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = just
has_trait = forgiving
has_trait = generous
has_trait = craven
}
}
}
}
# Haggle the price
option = {
name = travel_events.4036.d
duel = {
skill = stewardship
target = scope:merchant_character_scope
50 = { # You pay a lower price
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.haggled_for_artifact
left_icon = root
scope:merchant_artifact_scope = { set_owner = root }
if = {
limit = {
scope:merchant_artifact_scope = {
rarity = famed
}
}
remove_short_term_gold = medium_gold_value
}
else = {
remove_short_term_gold = minor_gold_value
}
}
}
50 = { # You pay a higher price
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.failed_to_haggle
left_icon = root
scope:merchant_artifact_scope = { set_owner = root }
if = {
limit = {
scope:merchant_artifact_scope = {
rarity = famed
}
}
remove_short_term_gold = massive_gold_value
}
else = {
remove_short_term_gold = major_gold_value
}
}
}
}
stress_impact = {
shy = medium_stress_impact_gain
deceitful = medium_stress_impact_gain
honest = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = shy
has_trait = deceitful
has_trait = honest
}
}
modifier = {
factor = 0
short_term_gold <= major_gold_value
}
}
}
# Just go by without buying anything
option = {
name = travel_events.4036.c
ai_chance = {
base = 50
modifier = {
add = 100
gold <= massive_gold_value
}
}
}
after = {
hidden_effect = {
if = {
limit = {
scope:merchant_artifact_scope.artifact_owner != root
}
destroy_artifact = scope:merchant_artifact_scope
}
scope:merchant_character_scope = {
if = {
limit = {
root = { is_ai = yes }
}
silent_disappearance_effect = yes
}
}
}
}
}
# You enter a place that is syncretic with your faith
travel_events.4037 = {
type = character_event
title = travel_events.4037.t
desc = travel_events.4037.desc
theme = travel
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:fanboy_character_scope
animation = admiration
}
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
is_location_valid_for_travel_event_on_land = yes
location.faith != root.faith
OR = {
AND = {
religion = { is_in_family = rf_eastern }
location.faith = { has_doctrine_parameter = eastern_syncretic_actor_opinion_active }
}
AND = {
faith = { has_doctrine_parameter = unreformed }
location.faith = { has_doctrine_parameter = unreformed_syncretic_actor_opinion_active }
}
AND = {
OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion }
location.faith = { has_doctrine_parameter = christian_syncretic_actor_opinion_active }
}
AND = {
religion = religion:islam_religion
location.faith = { has_doctrine_parameter = islamic_syncretic_actor_opinion_active }
}
AND = {
religion = religion:judaism_religion
location.faith = { has_doctrine_parameter = jewish_syncretic_actor_opinion_active }
}
}
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small }
create_character = {
template = generic_peasant_character
location = root.location
culture = root.location.culture
faith = root.location.faith
#Set up the scope
save_scope_as = fanboy_character_scope
after_creation = {
add_character_flag = created
}
}
}
# Ah, let me teach you all about our lord and savior
option = {
name = travel_events.4037.a
duel = {
skill = learning
value = medium_skill_rating
50 = { # You perform a good cermon
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.good_cermon
left_icon = root
add_piety = medium_piety_gain
}
}
50 = { # You perform a mediocre cermon
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.bad_cermon
left_icon = root
add_piety = minor_piety_gain
}
}
}
if = {
limit = {
has_trait = lifestyle_mystic
}
add_trait_xp = {
trait = lifestyle_mystic
value = lifestyle_mystic_xp_gain_minor_value
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
lazy = medium_stress_impact_gain
shy = medium_stress_impact_gain
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
cynical = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = lazy
has_trait = shy
has_trait = callous
has_trait = sadistic
has_trait = cynical
}
}
}
}
# I'm more interested in hearing about your faith!
option = {
name = travel_events.4037.b
add_courtier = scope:fanboy_character_scope
root.current_travel_plan = {
add_companion = scope:fanboy_character_scope
}
set_relation_friend = {
reason = friend_respected_other_religion
target = scope:fanboy_character_scope
}
hidden_effect = {
scope:fanboy_character_scope = {
add_character_flag = {
flag = blocked_from_leaving
years = 10
}
}
set_variable = {
name = discounted_faith_to_convert_to_var
value = scope:fanboy_character_scope.faith
}
}
custom_tooltip = cheaper_to_convert_to_fanboy_faith_tt
stress_impact = {
shy = medium_stress_impact_gain
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
zealous = medium_stress_impact_gain
arrogant = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = shy
has_trait = callous
has_trait = sadistic
has_trait = zealous
has_trait = arrogant
}
}
}
}
# Eww go away, syncretic weirdos
option = {
name = travel_events.4037.c
stress_impact = {
base = medium_stress_impact_gain
zealous = medium_stress_impact_loss
gregarious = minor_stress_impact_gain
compassionate = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = gregarious
has_trait = compassionate
has_trait = arrogant
}
}
}
}
after = {
scope:fanboy_character_scope = {
silent_disappearance_ai_if_created_effect = yes
}
}
}
# You enter a province which your faith is syncretic with
travel_events.4038 = {
type = character_event
title = travel_events.4038.t
desc = travel_events.4038.desc
theme = travel
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:zealous_priest_scope
animation = admiration
}
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
is_location_valid_for_travel_event_on_land = yes
location = {
# Make sure this is a church held by a theocratic or lay clergy character
has_holding = yes
has_holding_type = church_holding
barony = { has_wrong_holding_type = no }
# Make sure you don't bother player lay clergy characters
barony.holder = { is_ai = yes }
barony.holder != root
}
OR = {
AND = {
faith = { has_doctrine_parameter = eastern_syncretic_actor_opinion_active }
location.religion = { is_in_family = rf_eastern }
}
AND = {
faith = { has_doctrine_parameter = unreformed_syncretic_actor_opinion_active }
location.faith = { has_doctrine_parameter = unreformed }
}
AND = {
faith = { has_doctrine_parameter = christian_syncretic_actor_opinion_active }
OR = { location.religion = religion:eastern_orthodox_religion location.religion = religion:catholic_religion location.religion = religion:protestant_religion }
}
AND = {
faith = { has_doctrine_parameter = islamic_syncretic_actor_opinion_active }
location.religion = religion:islam_religion
}
AND = {
faith = { has_doctrine_parameter = jewish_syncretic_actor_opinion_active }
location.religion = religion:judaism_religion
}
}
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small }
location.barony.holder = { save_scope_as = zealous_priest_scope }
}
# Let me attend a sermon!
option = {
name = travel_events.4038.a
set_relation_friend = {
reason = friend_respected_other_religion
target = scope:zealous_priest_scope
}
hidden_effect = {
set_variable = {
name = discounted_faith_to_convert_to_var
value = scope:zealous_priest_scope.faith
}
}
custom_tooltip = cheaper_to_convert_to_priest_faith_tt
add_learning_lifestyle_xp = minor_lifestyle_xp
if = {
limit = {
has_trait = lifestyle_mystic
}
add_trait_xp = {
trait = lifestyle_mystic
value = lifestyle_mystic_xp_gain_minor_value
}
}
stress_impact = {
shy = medium_stress_impact_gain
lazy = medium_stress_impact_gain
cynical = medium_stress_impact_gain
zealous = medium_stress_impact_gain
arrogant = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = shy
has_trait = arrogant
has_trait = lazy
has_trait = cynical
has_trait = zealous
has_trait = arrogant
}
}
}
}
# Perhaps they would be interested in our perspective
option = {
name = travel_events.4038.b
duel = {
skill = learning
target = scope:zealous_priest_scope
50 = { # You perform a good cermon
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = travel.good_cermon
left_icon = root
add_piety = medium_piety_gain
add_learning_lifestyle_perk_points = 1
}
}
50 = { # You perform a mediocre cermon
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = travel.bad_cermon
left_icon = root
add_piety = minor_piety_loss
if = {
limit = {
faith = { has_doctrine_parameter = eastern_syncretic_actor_opinion_active }
}
add_character_modifier = {
modifier = offended_eastern_modifier
years = 5
}
}
else_if = {
limit = {
faith = { has_doctrine_parameter = unreformed_syncretic_actor_opinion_active }
}
add_character_modifier = {
modifier = offended_pagan_modifier
years = 5
}
}
else_if = {
limit = {
faith = { has_doctrine_parameter = christian_syncretic_actor_opinion_active }
}
add_character_modifier = {
modifier = offended_christian_modifier
years = 5
}
}
else_if = {
limit = {
faith = { has_doctrine_parameter = islamic_syncretic_actor_opinion_active }
}
add_character_modifier = {
modifier = offended_muslim_modifier
years = 5
}
}
else_if = {
limit = {
faith = { has_doctrine_parameter = jewish_syncretic_actor_opinion_active }
}
add_character_modifier = {
modifier = offended_jewish_modifier
years = 5
}
}
}
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
lazy = medium_stress_impact_gain
shy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = lazy
has_trait = shy
}
}
}
}
# Eww go away, weirdos
option = {
name = travel_events.4038.c
stress_impact = {
base = medium_stress_impact_gain
zealous = medium_stress_impact_loss
gregarious = minor_stress_impact_gain
compassionate = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = gregarious
has_trait = compassionate
has_trait = arrogant
}
}
}
}
}
# You enter a ritual hospitality province and are offered a rest
travel_events.4039 = {
type = character_event
title = travel_events.4039.t
desc = travel_events.4039.desc
theme = travel
left_portrait = {
character = root
animation = stress
}
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
is_location_valid_for_travel_event_on_land = yes
faith = { NOT = { has_doctrine_parameter = host_honored_guests_active } }
location.faith = { has_doctrine_parameter = host_honored_guests_active }
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium }
mp_delay_travel_plan = { DAYS = 90 }
}
# Perhaps a rest for a few days would be nice...
option = {
name = travel_events.4039.a
current_travel_plan = {
delay_travel_plan = {
weeks = 3
add = yes
}
}
add_stress = medium_stress_loss
add_character_modifier = {
modifier = pampered_by_locals_modifier
years = 5
}
stress_impact = {
lazy = medium_stress_impact_loss
diligent = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = { # The AI should avoid unnecessary delays
factor = 0
NOT = { has_trait = lazy }
}
}
}
# No, we *must* keep going!
option = {
name = travel_events.4039.b
stress_impact = {
lazy = medium_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
has_trait = lazy
}
}
}
after = {
mp_resume_travel_plan = yes
}
}
# You meet a xenophile character who wants to learn about your culture
travel_events.4040 = {
type = character_event
title = travel_events.4040.t
desc = travel_events.4040.desc
theme = travel
left_portrait = {
character = root
animation = admiration
}
right_portrait = {
character = scope:fanboy_character_scope
animation = ecstasy
}
cooldown = { years = 10 }
trigger = {
is_available_travelling = yes
is_playable_character = yes
is_location_valid_for_travel_event_on_land = yes
culture = { NOT = { has_cultural_tradition = tradition_xenophilic } }
location.culture = { has_cultural_tradition = tradition_xenophilic }
NOT = { knows_language_of_culture = root.location.culture }
}
immediate = {
wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small }
create_character = {
template = loyal_fan_character
location = root.location
culture = root.location.culture
faith = root.location.faith
#Set up the scope
save_scope_as = fanboy_character_scope
after_creation = {
add_character_flag = created
}
}
hidden_effect = {
scope:fanboy_character_scope = {
learn_language_of_culture = root.culture
}
}
}
# My culture *is* kinda great tbh
option = {
name = travel_events.4040.a
add_prestige = minor_prestige_gain
stress_impact = {
arrogant = medium_stress_impact_loss
humble = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = humble
}
}
}
# Come, let's learn about each other!
option = {
name = travel_events.4040.b
trigger = {
can_start_scheme = {
type = learn_language
target_character = scope:fanboy_character_scope
}
}
start_scheme = {
type = learn_language
target_character = scope:fanboy_character_scope
}
custom_tooltip = learn_language_with_bonus_tt
hidden_effect = {
random_scheme = {
type = learn_language
limit = {
scheme_target_character = scope:fanboy_character_scope
}
add_scheme_modifier = { type = xenophile_bonus_modifier }
}
}
stress_impact = {
lazy = medium_stress_impact_gain
shy = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = lazy
has_trait = shy
has_trait = arrogant
}
}
}
}
after = {
scope:fanboy_character_scope = {
silent_disappearance_ai_if_created_effect = yes
}
}
}