N3OW/events/dlc/tgp/tgp_natural_disaster_flavor_events.txt
2026-05-23 20:45:31 -04:00

905 lines
19 KiB
Text

namespace = natural_disaster_flavor_events
scripted_trigger is_location_affected_by_disaster_in_recovery_trigger = {
location.county = {
any_county_situation = {
tgp_natural_disaster_situation_is_disaster_trigger = yes
situation_current_phase = recovery
}
}
}
scripted_effect create_random_misc_artifact_effect = {
create_artifact = {
name = random_misc_artifact
description = random_misc_artifact_desc
type = miscellaneous
visuals = ring
rarity = common
modifier = artifact_prowess_1_modifier
max_durability = 15
save_scope_as = random_misc_artifact
}
hidden_effect = {
random_list = {
50 = {
scope:random_misc_artifact = {
add_artifact_modifier = character_travel_speed_1
}
}
50 = {
scope:random_misc_artifact = {
add_artifact_modifier = artifact_travel_safety_1
}
}
}
}
}
# As Scavengers Gather
natural_disaster_flavor_events.0001 = {
type = character_event
title = natural_disaster_flavor_events.0001.t
desc = natural_disaster_flavor_events.0001.desc
theme = disaster
left_portrait = {
character = root
animation = survey
}
cooldown = { years = 20 }
trigger = {
has_tgp_dlc_trigger = yes
is_location_valid_for_travel_event_on_land = yes
is_location_affected_by_disaster_in_recovery_trigger = yes
is_available_travelling_adult = yes
is_landed = no
}
widgets = {
widget = {
is_shown = {
scope:random_weather = flag:fog
}
gui = event_window_widget_vfx_rainy_fog container = foreground_shader_vfx_container
}
}
immediate = {
location.county = {
random_county_situation = {
limit = {
tgp_natural_disaster_situation_is_disaster_trigger = yes
}
save_scope_as = disaster_situation
}
}
create_character = {
template = generic_peasant_character
location = root.location
culture = root.location.culture
faith = root.location.faith
gender_female_chance = root_soldier_female_chance
save_scope_as = person_in_need
}
random_list = {
20 = {
save_scope_value_as = {
name = random_weather
value = flag:fog
}
}
80 = { }
}
}
option = { # Valuables
name = natural_disaster_flavor_events.0001.a
add_piety = minor_piety_loss
random_list = {
33 = { # Gold
send_interface_toast = {
type = event_toast_effect_good
title = natural_disaster_flavor_events.0001.a.gold.toast
left_icon = root
add_gold = {
add = miniscule_gold_value
multiply = 3
}
}
modifier = {
add = 15
has_trait = greedy
}
}
33 = { # Provisions
send_interface_toast = {
type = event_toast_effect_good
title = natural_disaster_flavor_events.0001.a.provisions.toast
left_icon = root
domicile = {
change_provisions = miniscule_provisions_gain
}
}
modifier = {
add = 15
has_trait = gluttonous
}
}
33 = { # Artifact
send_interface_toast = {
type = event_toast_effect_good
title = natural_disaster_flavor_events.0001.a.artifact.toast
left_icon = root
create_random_misc_artifact_effect = yes
}
modifier = {
add = 15
has_trait = brave
}
}
}
current_travel_plan = {
delay_travel_plan = {
days = 10
}
}
random = {
chance = 20
contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = yes }
}
stress_impact = {
just = minor_stress_impact_gain
greedy = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = 1
ai_compassion = -1
}
}
}
option = { # Survivors
name = natural_disaster_flavor_events.0001.b
duel = {
skill = prowess
value = medium_skill_rating
50 = { # Success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
min = 20
max = 90
reverse_add_opinion = {
target = scope:person_in_need
modifier = grateful_opinion
opinion = 25
}
}
50 = { # Failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
min = 20
max = 90
send_interface_toast = {
type = event_toast_effect_bad
title = natural_disaster_flavor_events.0001.b.failure.toast # fix this
left_icon = root
right_icon = scope:person_in_need
scope:person_in_need = {
increase_wounds_effect = { REASON = wounds }
}
}
}
}
send_interface_toast = {
type = event_toast_effect_good
title = natural_disaster_flavor_events.0001.b.success.toast
left_icon = root
right_icon = scope:person_in_need
current_travel_plan = {
add_companion = scope:person_in_need
}
}
current_travel_plan = {
delay_travel_plan = {
days = 10
}
}
stress_impact = {
lazy = minor_stress_impact_gain
compassionate = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 1
ai_rationality = -1
}
}
}
option = { # Opt out
name = natural_disaster_flavor_events.0001.c
custom_tooltip = RESUME_TRAVEL_PLAN_EFFECT
stress_impact = {
compassionate = minor_stress_impact_gain
craven = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = -1
ai_rationality = 1
}
}
}
}
# Waking Nightmare
natural_disaster_flavor_events.0005 = {
type = character_event
title = natural_disaster_flavor_events.0005.t
desc = natural_disaster_flavor_events.0005.desc
theme = disaster
left_portrait = {
character = root
animation = shock
}
cooldown = { years = 20 }
trigger = {
has_tgp_dlc_trigger = yes
is_location_valid_for_travel_event_on_land = yes
is_landed = no
}
widget = { gui = event_window_widget_vfx_earthquake container = foreground_shader_vfx_container }
immediate = {
location.county = {
random_county_situation = {
limit = {
tgp_natural_disaster_situation_is_disaster_trigger = yes
}
save_scope_as = disaster_situation
}
}
}
option = { # Run for your life
name = natural_disaster_flavor_events.0005.a
duel = {
skill = prowess
value = medium_skill_rating
50 = { # Success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = natural_disaster_flavor_events.0005.a.success.toast
min = 20
max = 90
send_interface_toast = {
type = event_toast_effect_good
title = natural_disaster_flavor_events.0005.a.success.toast
left_icon = root
add_character_modifier = {
modifier = tgp_selfish_actions_character_modifier
years = 10
}
}
}
50 = { # Failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = natural_disaster_flavor_events.0005.a.failure.toast
min = 20
max = 90
send_interface_toast = {
type = event_toast_effect_bad
title = natural_disaster_flavor_events.0005.a.failure.toast
left_icon = root
increase_wounds_effect = { REASON = wounds }
}
}
}
stress_impact = {
compassionate = minor_stress_impact_gain
craven = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = -1
ai_compassion = 1
ai_rationality = 1
}
}
}
option = { # Find a safe location
name = natural_disaster_flavor_events.0005.b
duel = {
skill = learning
value = medium_skill_rating
50 = { # Success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = natural_disaster_flavor_events.0005.b.success.toast
min = 20
max = 90
send_interface_toast = {
type = event_toast_effect_good
title = natural_disaster_flavor_events.0005.b.success.toast
left_icon = root
add_character_modifier = {
modifier = tgp_finding_safe_spot_character_modifier
years = 10
}
}
}
50 = { # Failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = natural_disaster_flavor_events.0005.b.failure.toast
min = 20
max = 90
send_interface_toast = {
type = event_toast_effect_bad
title = natural_disaster_flavor_events.0005.b.failure.toast
left_icon = root
increase_wounds_effect = { REASON = wounds }
}
}
}
stress_impact = {
fickle = minor_stress_impact_gain
diligent = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = 2
ai_energy = -1
}
}
}
}
# Desperate Souls
natural_disaster_flavor_events.0010 = {
type = character_event
title = natural_disaster_flavor_events.0010.t
desc = natural_disaster_flavor_events.0010.desc
theme = disaster
left_portrait = {
character = root
animation = worry
}
cooldown = { years = 20 }
trigger = {
has_tgp_dlc_trigger = yes
is_location_valid_for_travel_event_on_land = yes
is_location_affected_by_disaster_in_recovery_trigger = yes
is_available_travelling_adult = yes
}
immediate = {
location.county = {
random_county_situation = {
limit = {
tgp_natural_disaster_situation_is_disaster_trigger = yes
}
save_scope_as = disaster_situation
}
}
}
option = { # Reassure them that help is coming
name = natural_disaster_flavor_events.0010.a
duel = {
skill = diplomacy
value = medium_skill_rating
50 = { # Success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = natural_disaster_flavor_events.0010.a.success.toast
min = 20
max = 90
send_interface_toast = {
type = event_toast_effect_good
title = natural_disaster_flavor_events.0010.a.success.toast
left_icon = root
add_diplomacy_lifestyle_xp = medium_lifestyle_experience
}
}
50 = { # Failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = natural_disaster_flavor_events.0010.a.failure.toast
min = 20
max = 90
send_interface_toast = {
type = event_toast_effect_bad
title = natural_disaster_flavor_events.0010.a.failure.toast
left_icon = root
add_character_modifier = {
modifier = tgp_deceitful_overconfidence_character_modifier
years = 10
}
}
}
}
stress_impact = {
honest = minor_stress_impact_gain
deceitful = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = -1
ai_compassion = -1
ai_sociability = 1
}
}
}
option = { # Lie your way out of the situation
name = natural_disaster_flavor_events.0010.b
duel = {
skill = intrigue
value = medium_skill_rating
50 = { # Success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = natural_disaster_flavor_events.0010.b.success.toast
min = 20
max = 90
send_interface_toast = {
type = event_toast_effect_good
title = natural_disaster_flavor_events.0010.b.success.toast
left_icon = root
add_intrigue_lifestyle_xp = medium_lifestyle_experience
}
}
50 = { # Failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = natural_disaster_flavor_events.0010.b.failure.toast
min = 20
max = 90
send_interface_toast = {
type = event_toast_effect_bad
title = natural_disaster_flavor_events.0010.b.failure.toast
left_icon = root
add_character_modifier = {
modifier = tgp_deceitful_overconfidence_character_modifier
years = 10
}
}
}
}
stress_impact = {
honest = minor_stress_impact_gain
deceitful = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = -1
ai_compassion = -2
ai_rationality = 1
}
}
}
option = { # Ignore their pleas
name = natural_disaster_flavor_events.0010.c
flavor = natural_disaster_flavor_events.0010.c.tt
current_travel_plan.current_location.county = {
if = {
limit = {
holder = { save_temporary_scope_as = county_holder }
OR = {
scope:county_holder = root
root = { is_vassal_or_below_of = scope:county_holder }
}
}
add_county_modifier = {
modifier = tgp_abandoned_population_modifier
years = 10
}
}
else = {
root = { add_prestige = minor_prestige_loss }
}
}
stress_impact = {
compassionate = minor_stress_impact_gain
callous = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = -2
ai_rationality = 2
}
}
}
}
# Selfless Acts
natural_disaster_flavor_events.0015 = {
type = character_event
title = natural_disaster_flavor_events.0015.t
desc = natural_disaster_flavor_events.0015.desc
theme = disaster
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:spouse
animation = fear
}
lower_center_portrait = {
trigger = { exists = scope:heir }
character = scope:heir
}
lower_right_portrait = {
trigger = { exists = scope:courtier }
character = scope:courtier
}
cooldown = { years = 20 }
trigger = {
has_tgp_dlc_trigger = yes
is_location_valid_for_travel_event_on_land = yes
is_location_affected_by_disaster_in_recovery_trigger = yes
is_landed = yes
primary_spouse ?= {
is_at_same_location = root
}
}
immediate = {
location.county = {
random_county_situation = {
limit = { tgp_natural_disaster_situation_is_disaster_trigger = yes }
save_scope_as = disaster_situation
}
}
primary_spouse = {
save_scope_as = spouse
}
primary_heir ?= {
if = {
limit = {
this != scope:spouse
is_at_same_location = root
}
save_scope_as = heir
}
}
random_courtier = {
limit = {
this != scope:spouse
this != scope:heir
has_any_court_position = yes
is_at_same_location = root
}
save_scope_as = courtier
}
}
option = { # Save your spouse
name = natural_disaster_flavor_events.0015.a
random = {
chance = {
value = 25
subtract = prowess
}
send_interface_toast = {
type = event_toast_effect_bad
title = natural_disaster_flavor_events.0015.a.failure
left_icon = root
increase_wounds_effect = { REASON = wounds }
}
save_scope_as = damage_done
}
if = {
limit = {
OR = {
exists = scope:heir
exists = scope:courtier
}
}
random = {
chance = {
value = 35
subtract = prowess
}
send_interface_toast = {
type = event_toast_effect_bad
title = natural_disaster_flavor_events.0015.a.failure
left_icon = scope:heir
right_icon = scope:courtier
primary_heir ?= {
increase_wounds_effect = { REASON = wounds }
}
scope:courtier ?= {
increase_wounds_effect = { REASON = wounds }
}
}
save_scope_as = damage_done
}
}
if = {
limit = { NOT = { exists = scope:damage_done } }
send_interface_toast = {
type = event_toast_effect_good
title = natural_disaster_flavor_events.0015.a.success
left_icon = root
}
}
add_prowess_skill = 1
reverse_add_opinion = {
target = primary_spouse
modifier = grateful_opinion
opinion = 25
}
stress_impact = {
craven = minor_stress_impact_gain
brave = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = 1
ai_boldness = 1
ai_energy = 1
}
}
}
option = { # Save your heir
name = natural_disaster_flavor_events.0015.b
trigger = { exists = scope:heir }
random = {
chance = {
value = 25
subtract = prowess
}
send_interface_toast = {
type = event_toast_effect_bad
title = natural_disaster_flavor_events.0015.b.failure
left_icon = root
increase_wounds_effect = { REASON = wounds }
}
save_scope_as = damage_done
}
random = {
chance = {
value = 35
subtract = prowess
}
send_interface_toast = {
type = event_toast_effect_bad
title = natural_disaster_flavor_events.0015.b.failure
left_icon = scope:spouse
right_icon = scope:courtier
primary_spouse = {
increase_wounds_effect = { REASON = wounds }
}
scope:courtier ?= {
increase_wounds_effect = { REASON = wounds }
}
}
save_scope_as = damage_done
}
if = {
limit = { NOT = { exists = scope:damage_done } }
send_interface_toast = {
type = event_toast_effect_good
title = natural_disaster_flavor_events.0015.b.success
left_icon = root
}
}
add_prowess_skill = 1
reverse_add_opinion = {
target = primary_heir
modifier = grateful_opinion
opinion = 25
}
stress_impact = {
craven = minor_stress_impact_gain
brave = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = 1
ai_boldness = 1
ai_energy = 1
}
}
}
option = { # Save your courtier
name = natural_disaster_flavor_events.0015.c
trigger = { exists = scope:courtier }
random = {
chance = {
value = 25
subtract = prowess
}
send_interface_toast = {
type = event_toast_effect_bad
title = natural_disaster_flavor_events.0015.c.failure
left_icon = root
increase_wounds_effect = { REASON = wounds }
}
save_scope_as = damage_done
}
random = {
chance = {
value = 35
subtract = prowess
}
send_interface_toast = {
type = event_toast_effect_bad
title = natural_disaster_flavor_events.0015.c.failure
left_icon = scope:spouse
right_icon = scope:heir
primary_spouse = {
increase_wounds_effect = { REASON = wounds }
}
primary_heir ?= {
increase_wounds_effect = { REASON = wounds }
}
}
save_scope_as = damage_done
}
if = {
limit = { NOT = { exists = scope:damage_done } }
send_interface_toast = {
type = event_toast_effect_good
title = natural_disaster_flavor_events.0015.c.success
left_icon = root
}
}
add_prowess_skill = 1
reverse_add_opinion = {
target = scope:courtier
modifier = grateful_opinion
opinion = 25
}
stress_impact = {
craven = minor_stress_impact_gain
brave = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = 1
ai_boldness = 1
ai_energy = 1
}
}
}
option = { # Save yourself
name = natural_disaster_flavor_events.0015.d
random = {
chance = {
value = 45
}
send_interface_toast = {
type = event_toast_effect_bad
title = natural_disaster_flavor_events.0015.a.failure
left_icon = scope:spouse
right_icon = scope:heir
primary_spouse = {
increase_wounds_effect = { REASON = wounds }
}
primary_heir ?= {
increase_wounds_effect = { REASON = wounds }
}
scope:courtier ?= {
increase_wounds_effect = { REASON = wounds }
}
}
save_scope_as = damage_done
}
if = {
limit = { NOT = { exists = scope:damage_done } }
send_interface_toast = {
type = event_toast_effect_good
title = natural_disaster_flavor_events.0015.a.success
left_icon = root
}
}
stress_impact = {
brave = minor_stress_impact_gain
craven = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = -1
ai_compassion = -1
ai_boldness = -1
ai_rationality = 1
}
}
}
}