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

1106 lines
24 KiB
Text

namespace = tgp_east_asia_interaction_events
#Notify the former Suzerain that they were dropped!
tgp_east_asia_interaction_events.0010 = {
type = letter_event
opening = tgp_east_asia_interaction_events.0010.opening
desc = tgp_east_asia_interaction_events.0010.desc
sender = {
character = scope:leaving_tributary
animation = personality_honorable
}
immediate = {
custom_tooltip = tgp_east_asia_interaction_events.0010.tt
}
#How can this be!
option = {
name = tgp_east_asia_interaction_events.0010.a
}
}
#I'm sorry, let me keep being your tributary for a while longer!
tgp_east_asia_interaction_events.0020 = {
type = letter_event
opening = tgp_east_asia_interaction_events.0020.opening
desc = tgp_east_asia_interaction_events.0020.desc
sender = {
character = scope:recipient
animation = personality_honorable
}
immediate = {
if = {
limit = {
NOR = {
scope:decrease_tax_obligation_1 = yes
scope:decrease_tax_obligation_2 = yes
scope:decrease_tax_obligation_3 = yes
scope:decrease_tax_obligation_4 = yes
scope:decrease_tax_obligation_5 = yes
scope:decrease_piety_obligation_1 = yes
scope:decrease_piety_obligation_2 = yes
scope:decrease_prestige_obligation_1 = yes
scope:decrease_prestige_obligation_2 = yes
scope:decrease_levy_obligation_1 = yes
scope:decrease_levy_obligation_2 = yes
scope:decrease_levy_obligation_3 = yes
scope:decrease_levy_obligation_4 = yes
scope:decrease_levy_obligation_5 = yes
scope:hook = yes
#scope:dread = yes
}
}
#You're quite the smooth-talker huh
scope:actor.dynasty ?= {
add_dynasty_prestige = {
value = miniscule_dynasty_prestige_value
divide = 2
}
}
}
}
#That's what I thought.
option = {
name = tgp_east_asia_interaction_events.0020.a
custom_tooltip = reassert_tributary_interaction_effect_tt
}
}
#Nah, I don't feel like being reasserted
tgp_east_asia_interaction_events.0025 = {
type = letter_event
opening = tgp_east_asia_interaction_events.0025.opening
desc = tgp_east_asia_interaction_events.0025.desc
sender = {
character = scope:recipient
animation = dismissal
}
immediate = {
scope:actor = { add_prestige = medium_prestige_loss }
scope:recipient = {
add_opinion = {
modifier = reassertion_request_denied_opinion
target = scope:actor
opinion = -20
}
}
}
#Ayyy
option = {
name = tgp_east_asia_interaction_events.0025.a
}
}
#Suzerain: Your Tributary is being Embraced by someone else!
tgp_east_asia_interaction_events.0030 = {
type = character_event
title = tgp_east_asia_interaction_events.0030.t
desc = tgp_east_asia_interaction_events.0030.desc
theme = mandala
left_portrait = {
character = scope:recipient
animation = prayer
camera = camera_event_very_left_further_back
}
right_portrait = {
character = scope:actor
animation = wedding_priest
camera = camera_event_scheme_far_right
}
immediate = {
add_character_flag = allowed_war_declaration_sans_truce_penalties
}
#Spend some resources
option = {
name = tgp_east_asia_interaction_events.0030.a
#Pay some resources to make them stay
add_piety = major_piety_loss
#Let the instigator know what happened
scope:actor = { trigger_event = tgp_east_asia_interaction_events.0035 }
ai_chance = {
base = 100
modifier = {
piety <= major_piety_value
factor = 0
}
}
}
#Start a war against the Tributary
option = {
name = tgp_east_asia_interaction_events.0030.b
scope:recipient.suzerain = { save_scope_as = warring_suzerain }
reason = alert
add_internal_flag = special
# To war!
if = {
limit = { has_truce = scope:recipient }
cancel_truce_one_way = scope:recipient
}
start_war = {
casus_belli = make_tributary_cb
target = scope:recipient
}
#Let the instigator know what happened
scope:actor = { trigger_event = tgp_east_asia_interaction_events.0035 }
ai_chance = {
base = 100
modifier = {
house = { has_house_aspiration_parameter = aspect_of_serenity }
factor = 0
}
modifier = {
is_at_war = yes
factor = 0
}
modifier = {
military_power <= scope:recipient.military_power
factor = 0
}
}
}
#_This is fine_
option = {
name = tgp_east_asia_interaction_events.0030.c
#They're a bit irked
scope:recipient.suzerain = {
if = {
limit = { is_ai = yes }
add_opinion = {
target = scope:actor
modifier = embraced_my_tributary_opinion
opinion = -20
}
}
}
#No more tributary, huh
scope:recipient = {
end_tributary = yes
hidden_effect = { mandala_embrace_tributary_effect = yes }
}
#Wa-waw
add_piety = miniscule_piety_loss
ai_chance = {
base = 100
}
}
after = { remove_character_flag = allowed_war_declaration_sans_truce_penalties }
}
#Embracer: Your Tributary (with a former and also present Suzerain) is in another castle
tgp_east_asia_interaction_events.0035 = {
type = letter_event
opening = tgp_east_asia_interaction_events.0035.opening
desc = {
first_valid = {
triggered_desc = {
trigger = { exists = scope:warring_suzerain }
desc = tgp_east_asia_interaction_events.0035.desc.warring
}
desc = tgp_east_asia_interaction_events.0035.desc
}
}
sender = {
character = scope:sending_character
triggered_animation = {
trigger = {
NOT = { scope:sending_character = scope:recipient }
}
animation = rage
}
animation = dismissal
}
immediate = {
if = {
limit = { exists = scope:warring_suzerain }
scope:warring_suzerain = {
save_scope_as = sending_character
add_opinion = {
target = root
modifier = attempted_to_embrace_my_tributary_opinion
opinion = -10
}
}
scope:recipient = {
add_opinion = {
modifier = warred_into_submission_opinion # this opinion acts as a built-in cooldown
target = scope:actor
years = 5
}
}
}
else = {
scope:recipient = {
save_scope_as = sending_character
add_opinion = {
modifier = tributary_request_denied_opinion # this opinion also acts as a built-in cooldown
target = scope:actor
years = 3
}
}
}
}
#How can this be!
option = {
name = tgp_east_asia_interaction_events.0035.a
}
}
# Favor
tgp_east_asia_interaction_events.1000 = {
type = letter_event
opening = tgp_east_asia_interaction_events.1000.opening
desc = {
desc = tgp_east_asia_interaction_events.1000.desc
desc = tgp_east_asia_interaction_events.1000.favor
}
sender = scope:recipient
trigger = {
exists = scope:demanded_mandala
scope:recipient.primary_title = scope:demanded_mandala
scope:recipient = { target_is_liege_or_above = scope:actor }
}
#Accept
option = {
name = tgp_east_asia_interaction_events.1000.a
scope:recipient = {
send_interface_toast = {
type = event_toast_effect_neutral
title = tgp_east_asia_interaction_events.1000.accept_toast
left_icon = scope:actor
right_icon = scope:demanded_mandala
add_hook = {
target = scope:actor
type = favor_hook
}
change_to_mandala_interaction_effect = yes
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
}
ai_chance = {
base = 75
opinion_modifier = {
opinion_target = scope:recipient
multiplier = 0.5
}
}
}
#Refuse
option = {
name = tgp_east_asia_interaction_events.1000.b
scope:recipient = {
send_interface_toast = {
type = event_toast_effect_bad
title = tgp_east_asia_interaction_events.1000.refuse_toast
left_icon = scope:actor
right_icon = scope:demanded_mandala
custom_tooltip = demand_mandala_interaction_vassal_refuses
# Opinion
if = {
limit = {
scope:actor = { is_ai = yes }
}
reverse_add_opinion = {
target = scope:actor
modifier = angry_opinion
opinion = -25
}
}
}
}
ai_chance = {
base = 10
}
}
#Use a Hook to force it through
option = {
name = religious_interaction.2012.c
trigger = { has_strong_usable_hook = scope:recipient }
scope:recipient = {
send_interface_toast = {
type = event_toast_effect_neutral
title = tgp_east_asia_interaction_events.1000.force_toast
left_icon = scope:actor
right_icon = scope:demanded_mandala
scope:actor = { use_hook = scope:recipient }
change_to_mandala_interaction_effect = yes
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = 1
}
}
}
}
# Gold
tgp_east_asia_interaction_events.1001 = {
type = letter_event
opening = tgp_east_asia_interaction_events.1000.opening
desc = {
desc = tgp_east_asia_interaction_events.1000.desc
desc = tgp_east_asia_interaction_events.1001.gold
}
sender = scope:recipient
trigger = {
exists = scope:demanded_mandala
scope:recipient.primary_title = scope:demanded_mandala
scope:recipient = { target_is_liege_or_above = scope:actor }
}
#Accept
option = {
name = tgp_east_asia_interaction_events.1002.a
scope:recipient = {
send_interface_toast = {
type = event_toast_effect_neutral
title = tgp_east_asia_interaction_events.1000.accept_toast
left_icon = scope:actor
right_icon = scope:demanded_mandala
change_to_mandala_interaction_effect = yes
}
}
stress_impact = {
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_greed = -1
ai_rationality = 0.5
}
modifier = {
factor = 0.2
gold <= 0
}
opinion_modifier = {
opinion_target = scope:recipient
multiplier = 0.5
}
}
}
#Refuse
option = {
name = tgp_east_asia_interaction_events.1000.b
scope:recipient = {
send_interface_toast = {
type = event_toast_effect_bad
title = tgp_east_asia_interaction_events.1000.refuse_toast
left_icon = scope:actor
right_icon = scope:demanded_mandala
custom_tooltip = demand_mandala_interaction_vassal_refuses
if = {
limit = {
scope:actor = { is_ai = yes }
}
reverse_add_opinion = {
target = scope:actor
modifier = angry_opinion
opinion = -25
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 100
gold < medium_gold_value
}
}
}
#Use a Hook to force it through
option = {
name = religious_interaction.2011.c
trigger = { has_strong_usable_hook = scope:recipient }
save_scope_value_as = { # Cancel extra gold
name = gold
value = no
}
scope:recipient = {
send_interface_toast = {
type = event_toast_effect_neutral
title = tgp_east_asia_interaction_events.1000.force_toast
left_icon = scope:actor
right_icon = scope:demanded_mandala
scope:actor = { use_hook = scope:recipient }
change_to_mandala_interaction_effect = yes
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = 1
}
}
}
}
tgp_east_asia_interaction_events.1002 = {
type = letter_event
opening = tgp_east_asia_interaction_events.1003.opening
desc = tgp_east_asia_interaction_events.1003.desc
sender = scope:actor
trigger = {
exists = scope:demanded_mandala
scope:recipient.primary_title = scope:demanded_mandala
scope:recipient = { target_is_liege_or_above = scope:actor }
}
#Accept
option = {
name = tgp_east_asia_interaction_events.1003.a
scope:actor = {
send_interface_toast = {
type = event_toast_effect_good
title = turn_subject_into_mandala_interaction_accept
left_icon = scope:recipient
change_to_mandala_interaction_effect = yes
}
}
stress_impact = {
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 0
turn_subject_into_mandala_acceptance_modifier = yes
modifier = { # We increase the value to compensate for the potentially high AI values in the other options
factor = 2
always = yes
}
}
}
#Favor
option = {
name = tgp_east_asia_interaction_events.1003.b
trigger = {
can_add_hook = {
target = scope:actor
type = favor_hook
}
scope:hook = no
}
show_as_unavailable = { scope:hook = yes }
custom_description_no_bullet = {
text = if_actor_accepts_desc
object = scope:actor
}
show_as_tooltip = {
add_hook = {
target = scope:actor
type = favor_hook
}
change_to_mandala_interaction_effect = yes
}
scope:actor = {
trigger_event = {
id = tgp_east_asia_interaction_events.1000
days = 5
}
}
ai_chance = {
base = 100
modifier = {
add = {
value = 50
# This goes double for your Powerful Vassals. A better contract is likely to be much more important than a short-term payout.
if = {
limit = { is_powerful_vassal_of = scope:actor }
add = 100
}
}
this.liege = scope:actor
}
modifier = {
has_trait = ambitious
add = 50
}
}
}
#Gold
option = {
name = tgp_east_asia_interaction_events.1003.c
trigger = { scope:hook = no }
show_as_unavailable = { scope:hook = yes }
save_scope_value_as = {
name = gold
value = yes
}
custom_description_no_bullet = {
text = if_actor_accepts_desc
object = scope:actor
}
show_as_tooltip = {
change_to_mandala_interaction_effect = yes
}
scope:actor = {
trigger_event = {
id = tgp_east_asia_interaction_events.1001
days = 5
}
}
ai_chance = {
base = 100
modifier = {
add = 50 # More likely to ask for gold if they're poor
scope:recipient.short_term_gold < medium_gold_value
}
modifier = {
add = { # Much more likely to ask for gold if involved in one of their own wars (they want to win).
value = 50
if = {
# Especially true if they're in debt!
limit = { gold < 0 }
add = 150
}
}
is_at_war = yes
any_character_war = { is_war_leader = scope:recipient }
}
modifier = {
has_trait = greedy
add = 50
}
modifier = {
ai_greed < high_negative_ai_value
add = -50
}
}
}
#Refuse
option = {
name = tgp_east_asia_interaction_events.1003.d
trigger = { scope:hook = no }
show_as_unavailable = { scope:hook = yes }
scope:actor = {
send_interface_toast = {
type = event_toast_effect_bad
title = turn_subject_into_mandala_interaction_refuse
left_icon = scope:recipient
custom_tooltip = demand_mandala_interaction_vassal_refuses
}
if = {
limit = { is_ai = yes }
add_opinion = {
modifier = angry_opinion
target = scope:recipient
opinion = -25
}
}
}
ai_chance = {
base = 20
opinion_modifier = {
opinion_target = scope:actor
multiplier = -0.5
}
modifier = {
has_dread_level_towards = {
target = scope:actor
level = 1
}
add = -15
}
modifier = {
has_dread_level_towards = {
target = scope:actor
level = 2
}
add = -30
}
modifier = {
has_trait = stubborn
add = 25
}
modifier = {
has_trait = arrogant
add = 25
}
modifier = {
has_trait = ambitious
add = -25
}
}
}
}
scripted_trigger is_root_faith_dominant_gender = {
OR = {
AND = {
is_male = yes
root.faith = {
OR = {
has_doctrine_parameter = male_dominated_law
has_doctrine_parameter = gender_equal_law
}
}
}
AND = {
is_female = yes
root.faith = {
OR = {
has_doctrine_parameter = female_dominated_law
has_doctrine_parameter = gender_equal_law
}
}
}
}
}
tgp_east_asia_interaction_events.2000 = {
type = character_event
title = tgp_east_asia_interaction_events.2000.t
desc = tgp_east_asia_interaction_events.2000.desc
window = big_event_window
theme = prison
override_background = dungeon
left_portrait = {
character = scope:third_prisoner
animation = prisondungeon
outfit_tags = { beggar_rags }
override_imprisonment_visuals = yes
}
center_portrait = {
character = scope:recipient
animation = prisondungeon
outfit_tags = { beggar_rags }
override_imprisonment_visuals = yes
}
right_portrait = {
character = scope:second_prisoner
animation = prisondungeon
outfit_tags = { beggar_rags }
override_imprisonment_visuals = yes
}
immediate = {
hidden_effect = {
scope:recipient = {
every_close_or_extended_family_member = {
if = {
limit = {
top_liege = scope:actor
house = scope:recipient.house
is_travelling = no
NOR = {
any_spouse = {
house ?= scope:actor.house
}
any_parent = {
house ?= scope:actor.house
}
}
}
if = {
limit = {
age >= 16
NOT = {
tgp_is_above_retirement_age_trigger = {
REALM_OWNER = scope:actor
}
}
AND = {
is_root_faith_dominant_gender = yes
OR = {
is_parent_of = scope:recipient
is_child_of = scope:recipient
}
}
}
add_to_list = those_to_kill
}
else = {
add_to_list = those_to_banish
}
}
# If they're beyond your reach, we make sure you can still punish them if they return
if = {
limit = {
house = scope:recipient.house
OR = {
top_liege != scope:actor
is_travelling = yes
}
NOR = {
any_spouse = {
house ?= scope:actor.house
}
any_parent = {
house ?= scope:actor.house
}
}
}
if = {
limit = {
age >= 16
NOT = {
tgp_is_above_retirement_age_trigger = {
REALM_OWNER = scope:actor
}
}
AND = {
is_root_faith_dominant_gender = yes
OR = {
is_parent_of = scope:recipient
is_child_of = scope:recipient
}
}
}
reverse_add_opinion = {
target = root
opinion = -25
modifier = purged_execution_opinion
}
}
else = {
reverse_add_opinion = {
target = root
opinion = -25
modifier = purged_banishment_opinion
}
}
}
}
every_consort = {
if = {
limit = {
top_liege = scope:actor
is_travelling = no
NOR = {
any_parent = {
house ?= scope:actor.house
}
tgp_is_above_retirement_age_trigger = {
REALM_OWNER = scope:actor
}
}
}
add_to_list = those_to_banish
}
else = {
reverse_add_opinion = {
target = root
opinion = -25
modifier = purged_banishment_opinion
}
}
}
# we don't want you to get tyranny from swinging the hammer, as we decide that elsewhere
every_in_list = {
list = those_to_banish
reverse_add_opinion = {
target = root
opinion = -25
modifier = purged_banishment_opinion
}
}
every_in_list = {
list = those_to_kill
reverse_add_opinion = {
target = root
opinion = -25
modifier = purged_execution_opinion
}
}
random_in_list = {
list = those_to_kill
save_scope_as = second_prisoner
}
random_in_list = {
list = those_to_banish
save_scope_as = third_prisoner
}
if = {
limit = {
NOT = {
exists = scope:third_prisoner
}
}
random_in_list = {
list = those_to_kill
limit = {
this != scope:second_prisoner
}
save_scope_as = third_prisoner
}
}
}
every_in_list = {
list = those_to_banish
limit = {
is_imprisoned = no
}
scope:actor = {
imprison = {
target = prev
type = house_arrest
}
}
add_character_flag = is_currently_being_purged
add_to_list = asset_forfeiture_list
}
every_in_list = {
list = those_to_kill
limit = {
is_imprisoned = no
}
scope:actor = {
imprison = {
target = prev
type = house_arrest
}
}
add_character_flag = is_currently_being_purged
add_to_list = asset_forfeiture_list
}
scope:recipient = {
add_character_flag = is_currently_being_purged
add_to_list = asset_forfeiture_list
}
}
}
option = {
name = tgp_east_asia_interaction_events.2000.a
scope:actor = {
add_treasury_or_gold = {
value = {
add = {
every_in_list = {
list = asset_forfeiture_list
limit = {
gold > 0
}
add = current_gold_value
}
}
}
}
add_dread = {
value = miniscule_dread_gain
multiply = {
value = {
value = 0
add = {
every_in_list = {
list = those_to_banish
limit = {
NOT = {
scope:actor = {
OR = {
has_banish_reason = prev
has_execute_reason = prev
}
}
}
}
add = {
value = highest_held_title_tier
multiply = 0.5
round = yes
}
}
}
add = {
every_in_list = {
list = those_to_kill
limit = {
NOT = {
scope:actor = {
has_execute_reason = prev
}
}
}
add = highest_held_title_tier
}
}
add = scope:recipient.highest_held_title_tier
}
}
}
if = {
limit = {
NOT = {
scope:actor = {
has_execute_reason = scope:recipient
}
}
}
add_tyranny = {
value = medium_tyranny_gain
multiply = {
value = {
value = 0
add = {
every_in_list = {
list = those_to_banish
add = {
value = highest_held_title_tier
multiply = 0.5
round = yes
}
}
}
add = {
every_in_list = {
list = those_to_kill
add = highest_held_title_tier
}
}
add = scope:recipient.highest_held_title_tier
}
}
}
if = {
limit = {
exists = top_participant_group:dynastic_cycle
any_character_situation = {
situation_type = dynastic_cycle
}
}
situation:dynastic_cycle ?= {
if = {
limit = {
situation_top_has_catalyst = catalyst_tyrannical_extinguish_noble_family
}
trigger_situation_catalyst = {
catalyst = catalyst_tyrannical_extinguish_noble_family
character = root
}
}
}
}
}
}
hidden_effect = {
every_in_list = {
list = asset_forfeiture_list
limit = {
gold > 0
}
remove_short_term_gold = {
value = current_gold_value # we make sure the asset forfeiture sticks
}
}
}
every_in_list = {
list = those_to_banish
hidden_effect = {
release_from_prison = yes # we can't banish them directly from prison, so we need to temporarily cut them loose
if = {
limit = {
is_ruler = no
liege != scope:recipient
}
set_employer = scope:recipient # and then we round them up again so they have a realm to be banished from
}
root = {
remove_opinion = { # because the imprisonment reason was already consumed earlier, we need to reset this in case they come back later
modifier = purged_banishment_opinion
target = prev
}
}
reverse_add_opinion = {
target = root
opinion = -25
modifier = purged_banishment_opinion
}
}
banish = yes # and then we give them the boot
if = {
limit = {
has_character_flag = is_currently_being_purged
}
remove_character_flag = is_currently_being_purged
}
}
hidden_effect = {
every_in_list = {
list = those_to_kill
family_purge_execute_prisoner_effect = {
VICTIM = this
EXECUTIONER = root
}
}
family_purge_execute_prisoner_effect = {
VICTIM = scope:recipient
EXECUTIONER = root
}
}
show_as_tooltip = { # So we don't get spammed with the opinion changes from the effects above in the tooltip
every_in_list = {
list = those_to_kill
death = {
death_reason = death_execution
killer = root
}
}
scope:recipient = {
death = {
death_reason = death_execution
killer = root
}
}
}
save_scope_as = purger
hidden_effect = {
every_player = {
limit = {
dynasty = scope:recipient.dynasty
}
send_interface_toast = {
type = event_toast_effect_bad
title = tgp_east_asia_interaction_events.2000.a.title
left_icon = root
right_icon = scope:recipient
custom_tooltip = tgp_east_asia_interaction_events.2000.a.tt
}
}
}
if = {
limit = {
has_execute_reason = scope:recipient
}
stress_impact = {
sadistic = medium_stress_impact_loss
compassionate = minor_stress_impact_gain
forgiving = medium_stress_impact_gain
generous = minor_stress_impact_gain
}
}
else = {
stress_impact = {
sadistic = medium_stress_impact_loss
compassionate = major_stress_impact_gain
forgiving = medium_stress_impact_gain
generous = medium_stress_impact_gain
trusting = minor_stress_impact_gain
content = minor_stress_impact_gain
}
}
}
}