More rel bugs

This commit is contained in:
Heidesommer 2026-05-23 20:45:31 -04:00
parent 16e7f0de2a
commit c6d5c01c61
125 changed files with 337211 additions and 3069 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,495 @@
###################################
# CHINA CAREER EVENTS
###################################
namespace = tgp_china_career
### EVENT LIST ####################################################################
## 0001 - Celestial Intro Event
## 0010 - A Meritorious Path
## 0020 - Hidden event for merit gain on succession
###################################################################################
# Intro Event - Who are you playing as and what is your situation
# Also acts as an introduction if you become a noble family in China
tgp_china_career.0001 = {
type = character_event
title = tgp_china_career.0001.t
desc = {
desc = tgp_china_career.0001.desc
first_valid = {
triggered_desc = {
trigger = { tgp_is_any_minister = yes }
desc = tgp_china_career.0001.minister_desc
}
triggered_desc = {
trigger = { is_landed = yes }
desc = tgp_china_career.0001.landed_desc
}
desc = tgp_china_career.0001.unlanded_desc
}
}
theme = merit
override_background = {
trigger = {
OR = {
vassal_contract_has_flag = celestial_province_military
vassal_contract_has_flag = celestial_province_protectorate
}
}
reference = courtyard
}
left_portrait = {
character = root
triggered_animation = {
trigger = {
OR = {
vassal_contract_has_flag = celestial_province_military
vassal_contract_has_flag = celestial_province_protectorate
}
}
animation = relaxed_spear
}
animation = reading
}
cooldown = { days = 1 }
trigger = {
exists = top_liege
this != top_liege
top_liege = {
government_has_flag = government_is_celestial
}
}
immediate = {
# Scopes
save_scope_as = new_ruler
house ?= { save_scope_as = ruler_family }
top_liege = { save_scope_as = emperor }
if = {
limit = { tgp_is_any_minister = yes }
primary_title = { save_scope_as = minister_title }
}
}
option = {
name = tgp_china_career.0001.a
add_character_modifier = {
modifier = tgp_merit_boost_modifier
}
}
option = {
name = tgp_china_career.0001.b
add_character_modifier = {
modifier = tgp_influence_boost_modifier
}
}
}
# A Meritorious Path - You advanced/gained a merit rank
tgp_china_career.0010 = {
type = character_event
title = tgp_china_career.0010.t
desc = {
# Intro
first_valid = {
triggered_desc = {
trigger = { merit_level = 1 }
desc = tgp_china_career.0010.first_rank_desc
}
desc = tgp_china_career.0010.higher_rank_desc
}
# Additional descs for ranks granting access to new tiers
first_valid = {
triggered_desc = {
trigger = { merit_level = 2 }
desc = tgp_china_career.0010.duchy_desc
}
triggered_desc = {
trigger = {
merit_level = 5 # This is the highest rank for Meritocratic
government_has_flag = government_is_celestial
}
desc = tgp_china_career.0010.kingdom_desc
}
triggered_desc = {
trigger = { merit_level = 7 }
desc = tgp_china_career.0010.empire_desc
}
triggered_desc = {
trigger = { has_highest_merit_rank = yes }
desc = tgp_china_career.0010.highest_rank
}
triggered_desc = {
trigger = {
OR = {
merit_level = 3
merit_level = 4
merit_level = 6
merit_level = 8
}
}
desc = tgp_china_career.0010.higher_rank_unspecific
}
}
}
theme = merit
left_portrait = {
character = root
animation = reading
}
# To prevent you from getting multiple events in case you gain several ranks
cooldown = { days = 30 }
trigger = {
}
immediate = {
# Scopes
save_scope_as = merit_char
}
option = {
trigger = { NOT = { merit_level = 1 } }
name = tgp_china_career.0010.aa
add_character_modifier = {
modifier = tgp_higher_ambitions_modifier
years = 10
}
}
option = {
trigger = { NOT = { merit_level = 1 } }
name = tgp_china_career.0010.a
add_stress = miniscule_stress_loss
if = {
limit = {
has_character_modifier = tgp_higher_ambitions_modifier
}
remove_character_modifier = tgp_higher_ambitions_modifier
}
}
option = { # Option for a civil career if you reach your first Merit Rank
trigger = { merit_level = 1 }
name = {
trigger = {
trigger_if = {
limit = {
has_variable = appointment_trait_override
}
var:appointment_trait_override != trait:education_stewardship_1
}
trigger_else = {
NOT = { has_trait_with_flag = civilian_province }
}
}
text = tgp_china_career.0010.b1
}
name = {
trigger = {
trigger_if = {
limit = {
has_variable = appointment_trait_override
}
var:appointment_trait_override = trait:education_stewardship_1
}
trigger_else = {
has_trait_with_flag = civilian_province
}
}
text = tgp_china_career.0010.b2
}
if = {
limit = {
trigger_if = {
limit = {
has_variable = appointment_trait_override
}
var:appointment_trait_override != trait:education_stewardship_1
}
trigger_else = {
NOT = { has_trait_with_flag = civilian_province }
}
}
custom_tooltip = {
text = change_to_civilian_career_desc
set_variable = {
name = appointment_trait_override
value = trait:education_stewardship_1
}
}
}
else = {
custom_tooltip = keep_civilian_career_desc
}
add_stress = miniscule_stress_loss
}
option = { # Option for a military career if you reach your first Merit Rank
trigger = { merit_level = 1 }
name = {
trigger = {
trigger_if = {
limit = {
has_variable = appointment_trait_override
}
var:appointment_trait_override != trait:education_martial_1
}
trigger_else = {
NOT = { has_trait_with_flag = military_province }
}
}
text = tgp_china_career.0010.c1
}
name = {
trigger = {
trigger_if = {
limit = {
has_variable = appointment_trait_override
}
var:appointment_trait_override = trait:education_martial_1
}
trigger_else = {
has_trait_with_flag = military_province
}
}
text = tgp_china_career.0010.c2
}
if = {
limit = {
trigger_if = {
limit = {
has_variable = appointment_trait_override
}
var:appointment_trait_override != trait:education_martial_1
}
trigger_else = {
NOT = { has_trait_with_flag = military_province }
}
}
custom_tooltip = {
text = change_to_military_career_desc
set_variable = {
name = appointment_trait_override
value = trait:education_martial_1
}
}
}
else = {
custom_tooltip = keep_military_career_desc
}
add_stress = miniscule_stress_loss
}
}
# Hidden event for merit gain on succession
tgp_china_career.0020 = {
hidden = yes
immediate = {
send_interface_toast = {
type = event_toast_effect_good
title = merit_gained_on_succession
left_icon = scope:meritorious_parent
change_merit = {
value = scope:meritorious_parent_merit
multiply = {
value = 0
house ?= {
if = {
limit = { has_house_aspiration_parameter = inherit_merit_bonus_4 }
add = merit_gain_on_succession_4_value
}
else_if = {
limit = { has_house_aspiration_parameter = inherit_merit_bonus_3 }
add = merit_gain_on_succession_3_value
}
else_if = {
limit = { has_house_aspiration_parameter = inherit_merit_bonus_2 }
add = merit_gain_on_succession_2_value
}
else_if = {
limit = { has_house_aspiration_parameter = inherit_merit_bonus_1 }
add = merit_gain_on_succession_1_value
}
}
}
}
}
}
}
# Your Elder has died
tgp_china_career.0030 = {
type = character_event
title = tgp_china_career.0030.t
desc = tgp_china_career.0030.desc
theme = death
left_portrait = {
character = root
animation = grief
}
right_portrait = {
character = scope:deceased_elder
animation = dead
}
lower_left_portrait = {
character = scope:superior_fellow_disciple
animation = map_disbelief
}
lower_right_portrait = {
character = scope:benchmark_new_disciple
animation = disappointed
}
immediate = {
if = {
limit = {
num_of_relation_disciple < disciples_limit_value
any_in_list = {
list = potential_new_disciples
count >= 1
}
}
while = {
limit = {
num_of_relation_disciple < disciples_limit_value
any_in_list = {
list = potential_new_disciples
count >= 1
NOT = {
is_in_list = new_disciples
}
}
}
random_in_list = {
list = potential_new_disciples
limit = {
NOT = {
has_relation_elder = root
}
}
add_to_list = new_disciples # for the tooltip
}
}
random_in_list = {
list = potential_new_disciples
save_scope_as = benchmark_new_disciple
}
}
}
option = {
name = tgp_china_career.0030.a
custom_tooltip = {
text = tgp_china_career.0030.a.tt
open_interaction_window = {
interaction = find_elder_interaction
actor = root
recipient = top_liege
}
}
}
option = {
name = tgp_china_career.0030.b
trigger = {
exists = scope:deceased_elder.house.house_head
this != scope:deceased_elder.house.house_head
}
pay_short_term_gold = {
target = scope:deceased_elder.house.house_head
gold = medium_gold_value
}
scope:deceased_elder.house = {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_improve_minor_value
REASON = disciple_sent_condolences
CHAR = root
TARGET_CHAR = scope:deceased_elder
TITLE = scope:dummy_gender
}
}
change_merit = minor_merit_gain
add_piety = minor_piety_gain
ai_chance = {
base = 0 # player only
}
}
option = {
name = tgp_china_career.0030.c
trigger = {
exists = scope:superior_fellow_disciple
scope:superior_fellow_disciple = {
opinion = {
target = root
value >= -10
}
}
}
set_elder_relation_effect = {
ELDER = scope:superior_fellow_disciple
DISCIPLE = root
MERIT = medium_merit_gain
}
ai_chance = {
base = 0 # player only
}
}
option = {
name = tgp_china_career.0030.d
trigger = {
any_in_list = {
list = new_disciples
count >= 1
}
}
every_in_list = {
list = new_disciples
set_elder_relation_effect = {
ELDER = root
DISCIPLE = this
MERIT = 0
}
}
change_merit = {
value = 0
add = {
value = medium_merit_gain
multiply = list_size:new_disciples
}
}
add_prestige = minor_prestige_value
ai_chance = {
base = 0 # player only
}
}
}

View file

@ -0,0 +1,698 @@
namespace = tgp_china_decision
scripted_effect set_up_local_examiner_effect = {
top_liege = { save_scope_as = hegemon }
scope:hegemon = {
if = {
limit = {
any_vassal_or_below = {
NOT = { this = root }
has_trait = governor
is_available = yes
capital_county = root.domicile.domicile_location.county
}
}
random_vassal_or_below = {
limit = {
NOT = { this = root }
has_trait = governor
is_available = yes
capital_county = root.domicile.domicile_location.county
}
save_scope_as = examiner
}
}
else = {
create_character = {
template = tgp_learning_exam_entrant_template
age = { 33 79 }
location = root.location
faith = scope:hegemon.faith
culture = scope:hegemon.culture
gender_female_chance = {
if = {
limit = { scope:hegemon.faith = { has_doctrine = doctrine_gender_male_dominated } }
add = 0
}
else_if = {
limit = { scope:hegemon.faith = { has_doctrine = doctrine_gender_female_dominated } }
add = 100
}
else = {
add = 50
}
}
save_scope_as = examiner
}
}
}
scope:examiner = {
hidden_effect = {
add_trait = governor
change_merit = massive_merit_value
}
}
}
tgp_china_decision.1000 = {
type = character_event
title = tgp_china_decision.1000.t
desc = {
first_valid = {
triggered_desc = {
trigger = { has_character_flag = failed_child_exam }
desc = tgp_china_decision.1000.desc_returning
}
desc = tgp_china_decision.1000.desc_new
}
desc = tgp_china_decision.1000.desc_outro
}
theme = imperial_examination
override_background = { reference = study }
left_portrait = {
character = root
animation = worry
}
right_portrait = {
character = scope:examiner
animation = happy_teacher
}
immediate = {
set_variable = {
name = child_examination_success_chance
value = child_examination_success_chance_value
}
set_up_local_examiner_effect = yes
}
widget = { gui = "child_examination_success_chance" container = "custom_widgets_container" }
option = { # Recite classics
name = tgp_china_decision.1000.a
duel = {
skill = learning
value = 1
50 = { # You succeed
desc = provincial_exam_success
compare_modifier = {
value = scope:duel_value
multiplier = 3
}
add_character_modifier = {
modifier = tgp_local_exam_initial_success
years = 12
}
custom_tooltip = examination_success_increase_medium_tt
}
50 = { # You fail
desc = provincial_exam_duel_fail
compare_modifier = {
value = scope:duel_value
multiplier = -3
}
stress_impact = { base = medium_stress_impact_gain }
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 1
ai_energy = 1
}
modifier = {
add = 20
learning > medium_skill_rating
}
modifier = {
add = 40
has_trait = ambitious
}
modifier = {
add = -40
OR = {
has_trait = content
has_trait = lazy
has_trait = craven
}
}
}
}
option = { # Play it safe
name = tgp_china_decision.1000.b
custom_tooltip = examination_success_increase_miniscule_tt
# Use this var to track score
change_variable = {
name = safe_bets
add = 1
}
add_character_flag = safe_start
add_prestige = miniscule_prestige_loss
ai_chance = {
base = 100
modifier = {
add = 40
OR = {
has_trait = content
has_trait = lazy
has_trait = craven
}
}
modifier = {
add = 40
stress_level < 0
}
}
}
after = {
trigger_event = tgp_china_decision.1001
}
}
tgp_china_decision.1001 = {
type = character_event
title = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
has_character_modifier = tgp_local_exam_initial_success
has_character_flag = safe_start
}
}
desc = tgp_china_decision.1001.t_success
}
desc = tgp_china_decision.1001.t_fail
}
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
has_character_modifier = tgp_local_exam_initial_success
}
desc = tgp_china_decision.1001.desc_success
}
triggered_desc = {
trigger = {
var:safe_bets = 1
}
desc = tgp_china_decision.1001.desc_safe
}
desc = tgp_china_decision.1001.desc_fail
}
desc = tgp_china_decision.1001.desc_outro
}
theme = imperial_examination
override_background = { reference = study }
left_portrait = {
character = root
triggered_animation = {
trigger = {
has_character_modifier = tgp_local_exam_initial_success
}
animation = personality_bold
}
triggered_animation = {
trigger = {
var:safe_bets = 1
}
animation = shame
}
animation = disappointed
}
right_portrait = {
character = scope:examiner
animation = happy_teacher
}
immediate = {
set_variable = {
name = child_examination_success_chance
value = child_examination_success_chance_value
}
}
widget = { gui = "child_examination_success_chance" container = "custom_widgets_container" }
option = { # Recite classics
name = tgp_china_decision.1001.a
duel = {
skill = learning
value = 1
40 = { # You succeed
desc = provincial_exam_success
compare_modifier = {
value = scope:duel_value
multiplier = 3
}
add_character_modifier = {
modifier = tgp_local_exam_impressed_examiner
years = 12
}
custom_tooltip = examination_success_increase_major_tt
}
60 = { # You fail
desc = provincial_exam_duel_fail
compare_modifier = {
value = scope:duel_value
multiplier = -3
}
stress_impact = { base = medium_stress_impact_gain }
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 1
ai_energy = 1
}
modifier = {
add = 20
learning > medium_skill_rating
}
modifier = {
add = 40
has_trait = ambitious
}
modifier = {
add = -40
OR = {
has_trait = content
has_trait = lazy
has_trait = craven
}
}
}
}
option = { # Play it safe
name = tgp_china_decision.1001.b
custom_tooltip = examination_success_increase_miniscule_tt
# Use this var to track score
change_variable = {
name = safe_bets
add = 1
}
# Use this flag for loc only
add_character_flag = safe_midpoint
add_prestige = miniscule_prestige_loss
ai_chance = {
base = 100
modifier = {
add = 40
OR = {
has_trait = content
has_trait = lazy
has_trait = craven
}
}
modifier = {
add = 40
stress_level < 0
}
}
}
after = {
trigger_event = tgp_china_decision.1002
}
}
tgp_china_decision.1002 = {
type = character_event
title = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
has_character_modifier = tgp_local_exam_impressed_examiner
has_character_flag = safe_midpoint
}
}
desc = tgp_china_decision.1002.t_success
}
desc = tgp_china_decision.1002.t_fail
}
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
has_character_modifier = tgp_local_exam_impressed_examiner
}
desc = tgp_china_decision.1002.desc_success
}
triggered_desc = {
trigger = {
has_character_flag = safe_midpoint
}
desc = tgp_china_decision.1002.desc_safe
}
desc = tgp_china_decision.1002.desc_fail
}
desc = tgp_china_decision.1002.desc_outro
}
theme = imperial_examination
override_background = { reference = study }
left_portrait = {
character = root
triggered_animation = {
trigger = {
has_character_modifier = tgp_local_exam_impressed_examiner
}
animation = happiness
}
triggered_animation = {
trigger = {
has_character_flag = safe_midpoint
}
animation = shame
}
animation = stress
}
right_portrait = {
character = scope:examiner
animation = happy_teacher
}
immediate = {
set_variable = {
name = child_examination_success_chance
value = child_examination_success_chance_value
}
}
widget = { gui = "child_examination_success_chance" container = "custom_widgets_container" }
option = { # Recite classics
name = tgp_china_decision.1002.a
duel = {
skill = learning
value = 1
30 = { # You succeed
desc = provincial_exam_success
compare_modifier = {
value = scope:duel_value
multiplier = 3
}
add_character_modifier = {
modifier = tgp_local_exam_strong_finish
years = 12
}
custom_tooltip = examination_success_increase_massive_tt
}
70 = { # You fail
desc = provincial_exam_duel_fail
compare_modifier = {
value = scope:duel_value
multiplier = -3
}
stress_impact = { base = medium_stress_impact_gain }
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 1
ai_energy = 1
}
modifier = {
add = 20
learning > medium_skill_rating
}
modifier = {
add = 40
has_trait = ambitious
}
modifier = {
add = -40
OR = {
has_trait = content
has_trait = lazy
has_trait = craven
}
}
}
}
option = { # Play it safe
name = tgp_china_decision.1002.b
custom_tooltip = examination_success_increase_miniscule_tt
# Use this var to track score
change_variable = {
name = safe_bets
add = 1
}
# Use this flag for loc only
add_character_flag = safe_end
add_prestige = miniscule_prestige_loss
ai_chance = {
base = 100
modifier = {
add = 40
OR = {
has_trait = content
has_trait = lazy
has_trait = craven
}
}
modifier = {
add = 40
stress_level < 0
}
}
}
after = {
set_variable = {
name = child_examination_success_chance
value = child_examination_success_chance_value
}
trigger_event = tgp_china_decision.1005
}
}
# Releasing the Roll (Results)
tgp_china_decision.1005 = {
type = character_event
title = tgp_china_decision.1005.t
desc = {
# Opening
desc = tgp_china_decision.1005.desc
# Did you get a strong finish, play it safe, or fail?
first_valid = {
triggered_desc = {
trigger = {
has_character_modifier = tgp_local_exam_strong_finish
}
desc = tgp_china_decision.1005.desc.success
}
triggered_desc = {
trigger = {
has_character_flag = safe_end
}
desc = tgp_china_decision.1005.desc.safe
}
# If none of the above, you failed.
desc = tgp_china_decision.1005.desc.failure
}
# And now, for the score
desc = tgp_china_decision.1005.desc.segway
first_valid = {
triggered_desc = {
trigger = {
var:child_examination_success_chance >= 90
}
desc = tgp_china_decision.1005.desc.high_score
}
triggered_desc = {
trigger = {
var:child_examination_success_chance >= 60
}
desc = tgp_china_decision.1005.desc.good_score
}
triggered_desc = {
trigger = {
var:child_examination_success_chance >= 40
}
desc = tgp_china_decision.1005.desc.passing_score
}
desc = tgp_china_decision.1005.desc.failing
}
}
theme = imperial_examination
override_background = { reference = study }
left_portrait = {
character = root
triggered_animation = {
trigger = {
AND = {
var:child_examination_success_chance >= 40
var:child_examination_success_chance < 90
}
}
animation = war_over_win
}
triggered_animation = {
trigger = {
var:child_examination_success_chance < 40
}
animation = disappointed
}
animation = happiness
}
immediate = {
if = {
limit = {
var:child_examination_success_chance >= 40
}
change_merit = {
value = {
add = minor_merit_value
add = var:child_examination_success_chance
}
}
dynasty = {
add_dynasty_prestige = 10
}
# For all characters who pass the exam, we give a flag to check their overall progress at the Imperial Examinations.
add_character_flag = passed_child_exam
remove_character_flag ?= failed_child_exam
}
else = {
add_character_flag = failed_child_exam
add_character_modifier = {
modifier = tgp_child_exam_cooldown_modifier
years = 3
}
}
}
widget = { gui = "child_examination_success_chance" container = "custom_widgets_container" }
# If you had a critical success, you do not get the option to dedicate yourself to studying.
option = { # I have my family to thank for my success.
name = tgp_china_decision.1005.a
trigger = { var:child_examination_success_chance >= 90 }
change_merit = medium_merit_value
ai_chance = {
base = 100
modifier = {
add = 40
has_trait = loyal
}
modifier = {
add = 50
is_adult = no
}
}
}
option = { # My teachers deserve all the credit.
name = tgp_china_decision.1005.b
trigger = { var:child_examination_success_chance >= 90 }
change_influence = medium_influence_gain
ai_chance = {
base = 100
ai_value_modifier = {
ai_sociability = 1
}
}
}
option = { # I need to push myself harder next time!
name = {
text = tgp_china_decision.1005.a_success
trigger = {
var:child_examination_success_chance >= 40
}
}
name = {
text = tgp_china_decision.1005.a_failure
trigger = {
var:child_examination_success_chance < 40
}
}
trigger = { var:child_examination_success_chance < 90 }
add_character_modifier = {
modifier = tgp_child_focused_studies_modifier
years = 5
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 1
ai_energy = 1
}
modifier = {
add = 40
OR = {
has_trait = ambitious
has_trait = diligent
}
}
modifier = {
add = -100
stress_level < 0
}
}
}
option = { # I am pleased with this result.
name = {
text = tgp_china_decision.1005.b_passing
trigger = {
var:child_examination_success_chance >= 40
}
}
name = {
text = tgp_china_decision.1005.b_failed
trigger = {
var:child_examination_success_chance < 40
}
}
trigger = { var:child_examination_success_chance < 90 }
ai_chance = {
base = 100
modifier = {
add = 40
OR = {
has_trait = content
has_trait = lazy
}
}
}
}
after = {
# Time to clean up some variables
remove_character_flag ?= safe_end
remove_variable ?= safe_bets
# And possibly the examiner
scope:examiner = {
if = {
limit = {
NOT = { is_vassal_or_below_of = scope:hegemon }
}
silent_disappearance_effect = yes
}
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,121 @@
###################################
# DYNASTIC CYCLE DECISION EVENTS
###################################
namespace = tgp_dynastic_cycle_decision_event
# Retire from all Titles
tgp_dynastic_cycle_decision_event.0101 = {
type = character_event
title = tgp_dynastic_cycle_decision_event.0101.t
desc = tgp_dynastic_cycle_decision_event.0101.desc
theme = dynasty
left_portrait = {
character = root
animation = happy_teacher
}
right_portrait = {
character = scope:new_player
animation = personality_bold
}
option = {
name = tgp_dynastic_cycle_decision_event.0101.a
tgp_renounce_estate_effect = yes
}
after = {
hidden_effect = {
if = {
limit = {
employer != scope:new_player
}
set_employer = scope:new_player
}
}
}
}
# Inform Movements of a new Favored Movement - from decision
tgp_dynastic_cycle_decision_event.0111 = {
type = letter_event
opening = tgp_dynastic_cycle_decision_event.0111.opening
desc = {
desc = tgp_dynastic_cycle_decision_event.0111.desc_intro
first_valid = {
triggered_desc = {
trigger = {
exists = scope:former_favored_movement
}
desc = tgp_dynastic_cycle_decision_event.0111.desc_former
}
desc = tgp_dynastic_cycle_decision_event.0111.desc
}
desc = tgp_dynastic_cycle_decision_event.0111.desc_outro
}
sender = scope:hegemon
immediate = {
show_as_tooltip = {
scope:new_favored_movement = {
make_movement_favored_effect = yes
switch = {
trigger = participant_group_type
pro_hegemon_movement = {
if = {
limit = {
situation:dynastic_cycle = {
situation_top_has_catalyst = catalyst_movement_gained_power_pro_hegemon
}
}
trigger_situation_catalyst = catalyst_movement_gained_power_pro_hegemon
}
}
advancement_movement = {
if = {
limit = {
situation:dynastic_cycle = {
situation_top_has_catalyst = catalyst_movement_gained_power_advancement
}
}
trigger_situation_catalyst = catalyst_movement_gained_power_advancement
}
}
expansion_movement = {
if = {
limit = {
situation:dynastic_cycle = {
situation_top_has_catalyst = catalyst_movement_gained_power_expansion
}
}
trigger_situation_catalyst = catalyst_movement_gained_power_expansion
}
}
conservative_movement = {
if = {
limit = {
situation:dynastic_cycle = {
situation_top_has_catalyst = catalyst_movement_gained_power_conservative
}
}
trigger_situation_catalyst = catalyst_movement_gained_power_conservative
}
}
}
}
}
}
option = {
name = {
trigger = {
scope:new_favored_movement ?= top_participant_group:dynastic_cycle
}
text = tgp_dynastic_cycle_decision_event.0111.a_new
}
name = {
trigger = {
scope:former_favored_movement ?= top_participant_group:dynastic_cycle
}
text = tgp_dynastic_cycle_decision_event.0111.a_former
}
name = tgp_dynastic_cycle_decision_event.0111.a_other
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,953 @@
namespace = tgp_dynastic_cycle_events
###################################################################################
## By Veronica Pazos
## tgp_dynastic_cycle_events.0001 - Tilt the scales towards Advancement
## tgp_dynastic_cycle_events.0010 - Disciple has a mental breakdown in Instability
## tgp_dynastic_cycle_events.0020 - Rowdy peasants steal food during Instability
## tgp_dynastic_cycle_events.0030 - In this time of Expansion you should become a Military Governor
## tgp_dynastic_cycle_events.0040 - Steward is interested in the Silk Road
## tgp_dynastic_cycle_events.0050 - Debate the Favoured Movement and get ahead of them
###################################################################################
# Tilt the scales towards Advancement
scripted_trigger tgp_dynastic_cycle_events_0001_valid_servant = {
is_available_ai_adult = yes
is_lowborn = yes
has_any_court_position = no
is_councillor = no
}
tgp_dynastic_cycle_events.0001 = {
type = character_event
title = tgp_dynastic_cycle_events.0001.t
desc = tgp_dynastic_cycle_events.0001.desc
left_portrait = {
character = root
animation = thinking
camera = camera_event_right_fully_away
}
right_portrait = {
character = scope:servant
animation = serving_tray
camera = camera_event_right_to_the_right
}
theme = dynastic_cycle
override_background = { reference = garden }
cooldown = { years = 10 }
trigger = {
is_available_adult = yes
has_tgp_dlc_trigger = yes
government_has_flag = government_is_celestial
NOT = {
situation:dynastic_cycle ?= {
situation_current_phase = situation_dynastic_cycle_phase_stability_advancement
}
}
}
immediate = {
situation:dynastic_cycle = { save_scope_as = my_situation }
top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement }
random_courtier = {
limit = { tgp_dynastic_cycle_events_0001_valid_servant = yes }
save_scope_as = servant
}
if = {
limit = { NOT = { exists = scope:servant } }
hidden_effect_new_object = {
create_character = {
template = servant_character
dynasty = none
location = root.location
culture = root.location.culture
faith = root.location.faith
gender_female_chance = 50
save_scope_as = servant
}
add_courtier = scope:servant
scope:servant = { assign_quirk_effect = yes }
}
}
if = {
limit = {
any_relation = {
type = potential_friend
is_available_ai_adult = yes
count >= 1
}
}
random_relation = {
type = potential_friend
limit = { is_available_ai_adult = yes }
save_scope_as = potential_friend
}
}
else_if = {
limit = {
any_relation = {
type = friend
is_available_ai_adult = yes
count >= 1
}
}
random_relation = {
type = friend
limit = { is_available_ai_adult = yes }
save_scope_as = friend
}
}
}
option = { #
name = tgp_dynastic_cycle_events.0001.aa
trigger = {
top_participant_group:dynastic_cycle ?= {
participant_group_type = advancement_movement
}
}
add_internal_flag = special
reason = movement
custom_tooltip = event_increase_movement_power_minor_effect_tooltip
scope:my_movement = {
event_change_movement_power_effect = {
VALUE = event_increase_movement_power_minor_value
}
}
situation:dynastic_cycle ?= {
if = {
limit = {
situation_top_has_catalyst = catalyst_event_advancement_medium_progress
}
trigger_situation_catalyst = {
catalyst = catalyst_event_advancement_medium_progress
character = root
}
}
}
stress_impact = {
ambitious = medium_stress_impact_loss
content = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = ambitious
factor = 2
}
modifier = {
has_trait = content
factor = 0
}
}
}
option = { # Focus on friendos
name = tgp_dynastic_cycle_events.0001.a
if = {
limit = {
exists = scope:potential_friend
}
custom_tooltip = tgp_dynastic_cycle_events.0001.a.potential_friend
set_relation_friend = {
target = scope:potential_friend
reason = friend_together_in_preparation
}
}
else_if = {
limit = {
exists = scope:friend
}
custom_tooltip = tgp_dynastic_cycle_events.0001.a.potential_friend
change_influence = major_influence_gain
scope:friend = { change_influence = major_influence_gain }
}
else = { change_influence = medium_influence_gain }
stress_impact = {
gregarious = medium_stress_impact_loss
callous = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = gregarious
factor = 2
}
modifier = {
has_trait = callous
factor = 0
}
}
}
option = { # Why wait?
name = tgp_dynastic_cycle_events.0001.b
add_character_modifier = {
modifier = tgp_advancement_focus_modifier
years = 20
}
stress_impact = {
impatient = medium_stress_impact_loss
patient = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = deceitful
factor = 2
}
modifier = {
has_trait = honest
factor = 0
}
}
}
option = { # We must focus on NOW
name = tgp_dynastic_cycle_events.0001.c
stress_impact = {
base = medium_stress_impact_loss
}
ai_chance = {
base = 100
}
}
}
# Disciple has a mental breakdown in Instability
scripted_trigger tgp_dynastic_cycle_events_0010_valid_disciple = {
is_available_ai_adult = yes
has_personality_dominant_trigger = no
has_a_stress_coping_trait_trigger = no
}
tgp_dynastic_cycle_events.0010 = {
type = character_event
title = tgp_dynastic_cycle_events.0010.t
desc = tgp_dynastic_cycle_events.0010.desc
left_portrait = {
character = root
triggered_animation = {
trigger = {
has_personality_malicious_trigger = yes
}
animation = dismissal
}
animation = worry
}
right_portrait = {
character = scope:disciple
animation = stress
}
theme = dynastic_cycle
override_background = { reference = relaxing_room }
cooldown = { years = 10 }
trigger = {
is_available_adult = yes
has_tgp_dlc_trigger = yes
government_has_flag = government_is_celestial
situation:dynastic_cycle ?= {
situation_current_phase = situation_dynastic_cycle_phase_instability
}
any_relation = {
type = disciple
tgp_dynastic_cycle_events_0010_valid_disciple = yes
}
}
immediate = {
situation:dynastic_cycle = { save_scope_as = my_situation }
top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement }
random_relation = {
type = disciple
limit = { tgp_dynastic_cycle_events_0010_valid_disciple = yes }
weight = {
base = 1
modifier = {
has_personality_emotional_trigger = yes
add = 10
}
modifier = {
age <= 35
add = 5
}
}
save_scope_as = disciple
}
random_list = {
1 = {
set_variable = {
name = stress_trait
value = flag:drunkard
}
}
1 = {
set_variable = {
name = stress_trait
value = flag:flagellant
}
}
1 = {
set_variable = {
name = stress_trait
value = flag:contrite
}
}
1 = {
set_variable = {
name = stress_trait
value = flag:irritable
}
}
1 = {
set_variable = {
name = stress_trait
value = flag:rakish
}
}
1 = {
set_variable = {
name = stress_trait
value = flag:hashishiyah
}
}
}
}
option = { # You gotta straighten up
name = tgp_dynastic_cycle_events.0010.a
switch = {
trigger = var:stress_trait
flag:drunkard = {
scope:disciple = { add_trait = drunkard }
}
flag:flagellant = {
scope:disciple = { add_trait = flagellant }
}
flag:contrite = {
scope:disciple = { add_trait = contrite }
}
flag:rakish = {
scope:disciple = { add_trait = rakish }
}
flag:hashishiyah = {
scope:disciple = { add_trait = hashishiyah }
}
}
scope:disciple = { add_stress = major_stress_impact_gain }
change_influence = medium_influence_gain
stress_impact = {
callous = medium_stress_impact_loss
compassionate = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = callous
factor = 2
}
modifier = {
has_trait = compassionate
factor = 0
}
}
}
option = { # Comfort them
name = tgp_dynastic_cycle_events.0010.b
if = {
limit = {
can_add_hook = {
type = favor_hook
target = scope:disciple
}
}
add_hook = {
type = favor_hook
target = scope:disciple
}
}
scope:disciple = { add_stress = medium_stress_impact_loss }
stress_impact = {
compassionate = major_stress_impact_loss
callous = major_stress_impact_gain
sadistic = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
OR = {
has_trait = callous
has_trait = sadistic
}
factor = 0
}
modifier = {
has_trait = compassionate
factor = 2
}
}
}
option = { # Instability is actually good
name = tgp_dynastic_cycle_events.0010.c
gain_appropriate_lifestyle_medium_xp_effect = yes
scope:disciple = {
gain_appropriate_lifestyle_medium_xp_effect = yes
add_stress = medium_stress_impact_gain
}
stress_impact = {
content = medium_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = content
factor = 2
}
}
}
}
# Rowdy peasants steal food during instability
tgp_dynastic_cycle_events.0020 = {
type = character_event
title = tgp_dynastic_cycle_events.0020.t
desc = tgp_dynastic_cycle_events.0020.desc
left_portrait = {
character = root
animation = japanese_war_fan
camera = camera_event_very_left
}
right_portrait = {
character = scope:marshal
animation = relaxed_spear
}
theme = dynastic_cycle
override_background = { reference = throne_room }
cooldown = { years = 10 }
trigger = {
is_available_adult = yes
has_tgp_dlc_trigger = yes
government_has_flag = government_is_celestial
situation:dynastic_cycle ?= {
situation_current_phase = situation_dynastic_cycle_phase_instability
}
any_held_county = {
county_control >= low_county_control
}
}
immediate = {
situation:dynastic_cycle = { save_scope_as = my_situation }
top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement }
if = {
limit = {
exists = cp:councillor_marshal
cp:councillor_marshal = { is_available_healthy_ai_adult = yes }
}
cp:councillor_marshal = { save_scope_as = marshal }
}
else_if = {
limit = {
any_knight = { is_available_healthy_ai_adult = yes }
}
ordered_knight = {
limit = { is_available_healthy_ai_adult = yes }
order_by = martial
save_scope_as = marshal
}
}
else = {
hidden_effect_new_object = {
create_character = {
template = knight
dynasty = none
location = root.location
culture = root.location.culture
faith = root.location.faith
gender_female_chance = root_soldier_female_chance
save_scope_as = marshal
}
}
}
scope:marshal = {
assign_quirk_effect = yes
add_character_flag = need_military_outfit
hidden_effect = {
if = {
limit = {
NOR = {
is_courtier_of = root
is_vassal_of = root
}
}
root = { add_courtier = prev }
}
}
}
random_held_county = {
limit = { county_control >= low_county_control }
change_county_control = major_county_control_loss
save_scope_as = peasant_county
}
}
option = { # Execute them
name = tgp_dynastic_cycle_events.0020.a
trigger = {
has_focus = intrigue_intimidation_focus
}
reason = lifestyle_focus
add_internal_flag = special
add_dread = major_dread_gain
scope:peasant_county = {
add_county_modifier = {
modifier = tgp_executed_peasants_county_modifier
years = 10
}
change_county_control = medium_county_control_gain
}
stress_impact = {
callous = medium_stress_impact_loss
compassionate = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = callous
factor = 2
}
modifier = {
has_trait = compassionate
factor = 0
}
}
}
option = { # Pay money to make Increase County Control better
name = tgp_dynastic_cycle_events.0020.b
pay_treasury_or_gold = {
target = scope:marshal
value = major_treasury_or_gold_value
}
scope:peasant_county = { change_county_control = medium_county_control_gain }
stress_impact = {
greedy = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
OR = {
has_trait = greedy
treasury_or_gold <= massive_treasury_or_gold_value
}
factor = 0
}
}
}
option = { # What can you do
name = tgp_dynastic_cycle_events.0020.c
stress_impact = {
lazy = medium_stress_impact_loss
diligent = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = lazy
factor = 2
}
modifier = {
has_trait = diligent
factor = 0
}
}
}
}
# In this time of Expansion you should become a Military Governor
tgp_dynastic_cycle_events.0030 = {
type = character_event
title = tgp_dynastic_cycle_events.0030.t
desc = tgp_dynastic_cycle_events.0030.desc
left_portrait = {
character = root
animation = frontend_center_idle
camera = camera_event_very_left
}
right_portrait = {
character = scope:marshal
animation = celebrate_spear
}
theme = dynastic_cycle
override_background = { reference = courtyard }
cooldown = { years = 10 }
trigger = {
is_available_adult = yes
has_tgp_dlc_trigger = yes
government_has_flag = government_is_celestial
situation:dynastic_cycle ?= {
situation_current_phase = situation_dynastic_cycle_phase_stability_expansion
}
NOT = { has_trait_with_flag = military_province } # You are not a Military Governor
}
immediate = {
situation:dynastic_cycle = { save_scope_as = my_situation }
top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement }
assign_quirk_effect = yes
if = {
limit = {
exists = cp:councillor_marshal
cp:councillor_marshal = { is_available_healthy_ai_adult = yes }
}
cp:councillor_marshal = { save_scope_as = marshal }
}
else_if = {
limit = {
any_knight = { is_available_healthy_ai_adult = yes }
}
ordered_knight = {
limit = { is_available_healthy_ai_adult = yes }
order_by = martial
save_scope_as = marshal
}
}
else = {
hidden_effect_new_object = {
create_character = {
template = knight
dynasty = none
location = root.location
culture = root.location.culture
faith = root.location.faith
gender_female_chance = root_soldier_female_chance
save_scope_as = marshal
}
}
}
scope:marshal = {
assign_quirk_effect = yes
add_character_flag = need_military_outfit
hidden_effect = {
if = {
limit = { NOT = { is_courtier_of = root } }
root = { add_courtier = prev }
}
}
}
}
option = { # Let's do it!!!
name = tgp_dynastic_cycle_events.0030.a
custom_tooltip = {
text = change_to_military_career_desc
set_variable = {
name = appointment_trait_override
value = trait:education_martial_1
}
}
add_martial_lifestyle_perk_points = 1
add_martial_lifestyle_xp = massive_lifestyle_xp
stress_impact = {
base = major_stress_impact_gain
fickle = major_stress_impact_loss
arbitrary = major_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
OR = {
has_trait = fickle
has_trait = arbitrary
}
factor = 2
}
}
}
option = { # Thank you but no
name = tgp_dynastic_cycle_events.0030.b
custom_tooltip = {
text = tgp_movement_events.0001.c.tt
give_random_commander_trait_effect = yes
}
stress_impact = {
diligent = major_stress_impact_loss
lazy = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = lazy
factor = 0
}
modifier = {
has_trait = diligent
factor = 0
}
}
}
option = { # I am good thanks
name = tgp_dynastic_cycle_events.0030.c
change_merit = medium_merit_gain
stress_impact = {
content = medium_stress_impact_loss
lazy = medium_stress_impact_loss
fickle = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
OR = {
has_trait = content
has_trait = lazy
}
factor = 2
}
modifier = {
has_trait = fickle
factor = 0
}
}
}
}
# Steward is interested in the Silk Road
tgp_dynastic_cycle_events.0040 = {
type = character_event
title = tgp_dynastic_cycle_events.0040.t
desc = tgp_dynastic_cycle_events.0040.desc
left_portrait = {
character = root
animation = interested
}
right_portrait = {
character = scope:steward
animation = steward
}
theme = dynastic_cycle
override_background = { reference = study }
cooldown = { years = 10 }
trigger = {
is_available_adult = yes
has_tgp_dlc_trigger = yes
government_has_flag = government_is_celestial
exists = cp:councillor_steward
exists = situation:dynastic_cycle
exists = situation:silk_road_situation
culture = { culture_has_any_fascination = yes }
}
weight_multiplier = {
base = 0.5
modifier = {
situation:dynastic_cycle ?= {
situation_current_phase = situation_dynastic_cycle_phase_stability_advancement
}
add = 1.5
}
modifier = {
is_ai = yes
factor = 0.2
}
}
immediate = {
situation:dynastic_cycle = { save_scope_as = my_situation }
situation:silk_road_situation = { save_scope_as = silk_road_situation }
top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement }
assign_quirk_effect = yes
cp:councillor_steward = {
assign_quirk_effect = yes
save_scope_as = steward
}
}
option = { # Special option if it's Advancement phase
name = tgp_dynastic_cycle_events.0040.a
trigger = {
situation:dynastic_cycle ?= {
situation_current_phase = situation_dynastic_cycle_phase_stability_advancement
}
}
add_internal_flag = special
reason = advancement_phase
pay_treasury_or_gold = {
target = scope:steward
value = medium_treasury_or_gold_value
}
add_stewardship_lifestyle_xp = minor_lifestyle_xp
add_character_modifier = {
modifier = tgp_silk_road_advancement_modifier
years = 15
}
stress_impact = {
greedy = medium_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
OR = {
has_trait = greedy
has_lifestyle = stewardship_lifestyle
}
factor = 2
}
}
}
option = { # Invest!
name = tgp_dynastic_cycle_events.0040.b
pay_treasury_or_gold = {
target = scope:steward
value = medium_treasury_or_gold_value
}
culture = { add_fascination_progress = 2.5 }
stress_impact = {
avaricious = medium_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
has_trait = greedy
treasury_or_gold <= major_treasury_or_gold_value
factor = 0
}
}
}
option = { # I am good thanks
name = tgp_dynastic_cycle_events.0040.c
stress_impact = {
avaricious = medium_stress_impact_gain
}
ai_chance = {
base = 200
modifier = {
has_trait = greedy
factor = 2
}
modifier = {
has_trait = avaricious
factor = 0.5
}
}
}
}
# Debate the Favoured Movement and get ahead of them
tgp_dynastic_cycle_events.0050 = {
type = character_event
title = tgp_dynastic_cycle_events.0050.t
desc = tgp_dynastic_cycle_events.0050.desc
left_portrait = {
character = root
animation = disapproval
}
theme = dynastic_cycle
override_background = { reference = study }
cooldown = { years = 10 }
trigger = {
is_available_adult = yes
has_tgp_dlc_trigger = yes
government_has_flag = government_is_celestial
is_any_movement_member_not_undecided = yes # You are part of a Movement
situation:dynastic_cycle ?= { # You are not the Favoured Movement
any_participant_group = {
exists = var:movement_favored
NOT = { participant_group_has_character = root }
}
}
NOT = { has_variable = tgp_debate_discount_var }
}
weight_multiplier = {
base = 1
modifier = {
is_any_movement_leader = yes
add = 1
}
}
immediate = {
situation:dynastic_cycle = {
save_scope_as = my_situation
random_participant_group = {
limit = {
has_variable = movement_favored
}
save_scope_as = favored_movement
}
}
top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement }
top_liege = { save_scope_as = top_liege }
}
option = { # Get discount to Debate
name = tgp_dynastic_cycle_events.0050.a
custom_tooltip = {
text = tgp_debate_discount_var_tt
set_variable = {
name = tgp_debate_discount_var
years = 5
}
}
stress_impact = {
greedy = medium_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
is_any_movement_leader = yes
add = 50
}
}
}
option = { # Just get some Movement Power
name = tgp_dynastic_cycle_events.0050.b
custom_tooltip = event_increase_movement_power_medium_effect_tooltip
scope:my_movement = {
event_change_movement_power_effect = {
VALUE = event_increase_movement_power_medium_value
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = arrogant
factor = 0
}
}
}
option = { # Focus on yourself
name = tgp_dynastic_cycle_events.0050.c
change_influence = medium_influence_gain
stress_impact = {
humble = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = humble
factor = 0
}
}
}
}

View file

@ -0,0 +1,966 @@

namespace = tgp_east_asia_decision_events
#You adopted Mandala
tgp_east_asia_decision_events.0010 = {
type = character_event
title = tgp_east_asia_decision_events.0010.t
desc = tgp_east_asia_decision_events.0010.desc
theme = mandala
left_portrait = {
character = root
triggered_animation = {
trigger = { has_trait = zealous }
animation = personality_zealous
}
animation = eccentric
}
immediate = {
if = {
limit = { has_variable = vying_for_mandala_divinity }
custom_description_no_bullet = { text = because_of_your_divine_happenstance_tt }
divine_happenstance_adopt_mandala_effect = yes
remove_variable = vying_for_mandala_divinity
}
}
#Alright, and I'll take a Temple Citadel too, please
option = {
name = tgp_east_asia_decision_events.0010.a
trigger = {
any_directly_owned_province = { has_holding_type = tribal_holding }
}
#This changes all holdings for Tribals, or only the Capital for everyone else
if = {
limit = {
culture = {
has_cultural_parameter = mandala_tributaries
}
confederation ?= { is_house_based = no }
}
hidden_effect = {
confederation = {
every_confederation_member = {
limit = {
this != root
}
add_to_list = tributaries
}
}
}
}
change_to_mandala_government_and_citadel_effect = yes
if = {
limit = {
culture = {
has_cultural_parameter = mandala_tributaries
}
any_in_list = {
list = tributaries
is_alive = yes
}
}
hidden_effect = {
every_in_list = {
list = tributaries
confederation = {
remove_confederation_member = prev
}
start_tributary_interaction_effect = {
TRIBUTARY = this
SUZERAIN = root
}
}
}
custom_tooltip = confederates_to_tributaries_tt
}
ai_chance = {
base = 100
}
}
#Only the government for me thanks
option = {
name = {
text = {
first_valid = {
triggered_desc = {
trigger = {
capital_province = { has_holding_type = temple_citadel_holding }
}
desc = tgp_east_asia_decision_events.0010.b_temple_citadel
}
desc = tgp_east_asia_decision_events.0010.b
}
}
}
trigger = {
#Sorry, Tribal Holdings need to go
NOR = {
capital_province = { has_holding_type = tribal_holding }
any_directly_owned_province = { has_holding_type = tribal_holding }
}
#You need to either have a Temple Citadel or somewhere to build a Temple Citadel to avoid noob trap
OR = {
any_realm_province = {
OR = {
has_holding = no
has_holding_type = temple_citadel_holding
}
}
capital_province = { has_holding_type = temple_citadel_holding }
}
}
if = {
limit = {
culture = {
has_cultural_parameter = mandala_tributaries
}
confederation ?= { is_house_based = no }
}
hidden_effect = {
confederation = {
every_confederation_member = {
limit = {
this != root
}
add_to_list = tributaries
}
}
}
}
change_to_mandala_government_effect = yes
if = {
limit = {
culture = {
has_cultural_parameter = mandala_tributaries
}
any_in_list = {
list = tributaries
is_alive = yes
}
}
hidden_effect = {
every_in_list = {
list = tributaries
confederation = {
remove_confederation_member = prev
}
start_tributary_interaction_effect = {
TRIBUTARY = this
SUZERAIN = root
}
}
}
custom_tooltip = confederates_to_tributaries_tt
}
ai_chance = {
base = 0
}
}
}
#Vassals get notified
tgp_east_asia_decision_events.0015 = {
type = letter_event
opening = tgp_east_asia_decision_events.0015.opening
desc = tgp_east_asia_decision_events.0015.desc
sender = {
character = scope:liege
animation = personality_zealous
}
immediate = {
liege = {
save_scope_as = liege
show_as_tooltip = { change_government = mandala_government }
}
}
#What does this mean
option = {
name = tgp_east_asia_decision_events.0015.a
}
}
#You assimilated to your Overlord being Mandala
tgp_east_asia_decision_events.0020 = {
type = character_event
title = tgp_east_asia_decision_events.0020.t
desc = tgp_east_asia_decision_events.0020.desc
theme = mandala
left_portrait = {
character = root
triggered_animation = {
trigger = { has_trait = zealous }
animation = personality_zealous
}
animation = eccentric
}
lower_right_portrait = {
character = scope:overlord
}
immediate = {
overlord = { save_scope_as = overlord }
if = {
limit = {
NOR = {
faith = overlord.faith
faith.religious_head ?= root
}
}
set_character_faith = overlord.faith
custom_tooltip = tgp_east_asia_decision_events.0020.close_family_post_tt
hidden_effect = {
# Family at court also convert
every_close_family_member = {
limit = {
is_courtier_of = root
faith != root.overlord.faith
}
set_character_faith = root.overlord.faith
}
}
}
}
#Alright, and I'll take a Temple Citadel too, please
option = {
name = tgp_east_asia_decision_events.0020.a
if = {
limit = {
NOT = { government_has_flag = government_is_mandala }
}
#This changes all holdings for Tribals, or only the Capital for everyone else
change_to_mandala_government_and_citadel_effect = yes
}
ai_chance = {
base = 100
}
}
#Only the government for me thanks
option = {
name = tgp_east_asia_decision_events.0020.b
trigger = {
NOR = {
government_has_flag = government_is_mandala
#Sorry, Tribal Holdings need to go
capital_province = { has_holding_type = tribal_holding }
}
#You need to either have a Temple Citadel or somewhere to build a Temple Citadel to avoid noob trap
any_realm_province = {
OR = {
has_holding = no
has_holding_type = temple_citadel_holding
}
}
}
change_to_mandala_government_effect = yes
ai_chance = {
base = 0
}
}
after = {
#Change the tributary type to Mandala
if = {
limit = {
is_tributary_of = scope:overlord
NOT = { has_subject_contract_group = tributary_mandala }
}
hidden_effect = {
end_tributary = yes
#This still triggers the invalidation toast, somehow — should be reverted when code Jira TIT-68838 is fixed
trigger_event = {
id = tgp_east_asia_decision_events.0021
delayed = yes
}
}
}
}
}
#Ful-fix to make the tributary update not invalidate
tgp_east_asia_decision_events.0021 = {
hidden = yes
immediate = {
start_tributary_interaction_effect = {
TRIBUTARY = root
SUZERAIN = scope:overlord
}
}
}
#Vassals get notified
tgp_east_asia_decision_events.0025 = {
type = letter_event
opening = tgp_east_asia_decision_events.0025.opening
desc = tgp_east_asia_decision_events.0025.desc
sender = {
character = scope:liege
animation = personality_zealous
}
immediate = {
liege = {
save_scope_as = liege
overlord = { save_scope_as = overlord }
show_as_tooltip = { mandala_assimilation_effect = yes }
}
}
#What does this mean
option = {
name = tgp_east_asia_decision_events.0025.a
}
}
#Your Mandala Liege turned Clan
tgp_east_asia_decision_events.0030 = {
type = character_event
title = tgp_east_asia_decision_events.0030.t
desc = tgp_east_asia_decision_events.0030.desc
theme = court
override_background = { reference = throne_room }
left_portrait = {
character = root
animation = worry
}
lower_right_portrait = {
character = scope:liege
}
immediate = {
liege = {
save_scope_as = liege
show_as_tooltip = { change_government = clan_government }
}
show_as_tooltip = {
if = {
limit = {
capital_province = {
NOR = {
has_holding_type = temple_citadel_holding
has_holding_type = castle_holding
}
}
}
capital_province = { set_holding_type = castle_holding }
}
change_government = clan_government
#Start off crown authorities
if = {
limit = {
NOT = { has_realm_law = crown_authority_0 }
}
add_realm_law_skip_effects = crown_authority_0
}
}
}
#Okidoki
option = {
name = tgp_east_asia_decision_events.0030.a
ai_chance = {
base = 100
}
}
}
#Assimilation Payout Event
tgp_east_asia_decision_events.0100 = {
type = character_event
title = tgp_east_asia_decision_events.0100.t
desc = tgp_east_asia_decision_events.0100.desc
theme = mandala
left_portrait = {
character = root
triggered_animation = {
trigger = { has_trait = zealous }
animation = personality_zealous
}
animation = admiration
}
right_portrait = {
character = scope:overlord
animation = personality_zealous
}
trigger = {
this != top_overlord
government_has_flag = government_is_mandala
AND = {
has_variable = mandala_assimilation_devaraja
var:mandala_assimilation_devaraja = {
government_has_flag = government_is_mandala
this = { is_alive = yes }
this = overlord
}
}
AND = {
has_variable = mandala_assimilation_devaraja_piety_level
var:mandala_assimilation_devaraja_piety_level >= overlord.piety_level
}
}
on_trigger_fail = { trigger_event = tgp_east_asia_decision_events.0110 }
#Did they level up?
override_effect_2d = {
trigger = { overlord.piety_level > var:mandala_assimilation_devaraja_piety_level }
reference = legend_glow
}
immediate = {
overlord = { save_scope_as = overlord }
}
#Cool!
option = {
name = tgp_east_asia_decision_events.0100.a
if = {
limit = { has_character_flag = assimilation_payout_t3 }
add_piety = assimilation_piety_payout_t3
add_legitimacy_effect = { LEGITIMACY = assimilation_legitimacy_payout_t3 }
}
else_if = {
limit = { has_character_flag = assimilation_payout_t2 }
add_piety = assimilation_piety_payout_t2
add_legitimacy_effect = { LEGITIMACY = assimilation_legitimacy_payout_t2 }
}
else_if = {
limit = { has_character_flag = assimilation_payout_t1 }
add_piety = assimilation_piety_payout_t1
add_legitimacy_effect = { LEGITIMACY = assimilation_legitimacy_payout_t1 }
}
}
after = { mandala_clean_up_variables_effect = yes }
}
#Whelp, either you or your Devaraja have lost your way
tgp_east_asia_decision_events.0110 = {
hidden = yes
immediate = {
var:mandala_assimilation_devaraja ?= { save_scope_as = saved_devaraja }
send_interface_message = {
type = event_conversion_bad_text
title = failed_assimilation_payout_msg
desc = failed_assimilation_payout_msg_desc
left_icon = root
right_icon = scope:saved_devaraja
}
mandala_clean_up_variables_effect = yes
}
}
scripted_trigger base_court_brahmin_triggers = {
is_adult = yes
has_any_disease_trigger = no
}
scripted_effect recruit_mandala_court_position_effect = {
pay_short_term_gold = {
target = $RECRUITEE$
gold = $GOLD_VALUE$
}
add_courtier = $RECRUITEE$
appoint_court_position = {
recipient = $RECRUITEE$
court_position = $COURT_POSITION$
}
hidden_effect = {
$RECRUITEE$ = {
add_opinion = {
modifier = grateful_opinion
target = root
opinion = 25
}
}
}
}
#Hire a Court Brahmin
tgp_east_asia_decision_events.0200 = {
type = character_event
title = tgp_east_asia_decision_events.0200.t
desc = tgp_east_asia_decision_events.0200.desc
theme = mandala
left_portrait = {
character = scope:great_brahmin_option
animation = personality_zealous
}
right_portrait = {
character = scope:good_brahmin_option
animation = thinking
}
immediate = {
#Good character
if = {
limit = {
any_pool_character = {
province = root.capital_province
base_court_brahmin_triggers = yes
court_brahmin_validity_trigger = { EMPLOYER = root }
"aptitude(court_brahmin_court_position)" = 3
}
}
random_pool_character = {
province = root.capital_province
limit = {
base_court_brahmin_triggers = yes
court_brahmin_validity_trigger = { EMPLOYER = root }
"aptitude(court_brahmin_court_position)" = 3
}
save_scope_as = good_brahmin_option
}
}
else = {
create_character = {
location = root.capital_province
template = tgp_court_brahmin_template
age = { 25 40 }
random_traits_list = {
count = 1
education_learning_1 = {}
education_learning_2 = {}
}
save_scope_as = good_brahmin_option
after_creation = { save_scope_as = goodly_created }
}
hidden_effect = {
random_list = {
50 = {
religion:buddhism_religion = {
random_faith = {
save_scope_as = brahmin_faith
}
}
}
50 = {
religion:hinduism_religion = {
random_faith = {
save_scope_as = brahmin_faith
}
}
}
}
scope:good_brahmin_option = {
set_character_faith = scope:brahmin_faith
}
}
}
#Great character
if = {
limit = {
any_pool_character = {
province = root.capital_province
base_court_brahmin_triggers = yes
court_brahmin_validity_trigger = { EMPLOYER = root }
"aptitude(court_brahmin_court_position)" = 5
}
}
random_pool_character = {
province = root.capital_province
limit = {
base_court_brahmin_triggers = yes
court_brahmin_validity_trigger = { EMPLOYER = root }
"aptitude(court_brahmin_court_position)" = 5
}
save_scope_as = great_brahmin_option
}
}
else = {
create_character = {
location = root.capital_province
gender_female_chance = root_faith_clergy_gender_female_chance
template = tgp_court_brahmin_template
age = { 40 50 }
trait = devoted
trait = compassionate
trait = education_learning_4
random_traits_list = {
count = 1
theologian = {}
avaricious = {}
}
save_scope_as = great_brahmin_option
after_creation = { save_scope_as = greatly_created }
}
hidden_effect = {
random_list = {
50 = {
religion:buddhism_religion = {
random_faith = {
save_scope_as = brahmin_faith
}
}
}
50 = {
religion:hinduism_religion = {
random_faith = {
save_scope_as = brahmin_faith
}
}
}
}
scope:great_brahmin_option = {
set_character_faith = scope:brahmin_faith
}
}
}
}
#Great option
option = {
name = tgp_east_asia_decision_events.0200.a
custom_tooltip = tgp_east_asia_decision_events.0200.a.aptitude
recruit_mandala_court_position_effect = {
RECRUITEE = scope:great_brahmin_option
GOLD_VALUE = medium_gold_value
COURT_POSITION = court_brahmin_court_position
}
ai_chance = {
base = 100
modifier = {
short_term_gold > medium_gold_value
}
}
}
#Good option
option = {
name = tgp_east_asia_decision_events.0200.b
custom_tooltip = tgp_east_asia_decision_events.0200.b.aptitude
recruit_mandala_court_position_effect = {
RECRUITEE = scope:good_brahmin_option
GOLD_VALUE = minor_gold_value
COURT_POSITION = court_brahmin_court_position
}
}
#Nah
option = {
name = tgp_east_asia_decision_events.0200.c
}
#Sweep, sweep
after = {
if = {
limit = {
exists = scope:goodly_created
NOT = {
scope:goodly_created = { is_courtier_of = root }
}
}
scope:goodly_created = { silent_disappearance_effect = yes }
}
if = {
limit = {
exists = scope:greatly_created
NOT = {
scope:greatly_created = { is_courtier_of = root }
}
}
scope:greatly_created = { silent_disappearance_effect = yes }
}
}
}
#Hire a Khlon Glan
tgp_east_asia_decision_events.0210 = {
type = character_event
title = tgp_east_asia_decision_events.0210.t
desc = tgp_east_asia_decision_events.0210.desc
theme = mandala
override_background = armory
left_portrait = {
character = scope:great_khlon_glan_option
animation = survey
}
right_portrait = {
character = scope:good_khlon_glan_option
animation = chess_cocky
}
immediate = {
#Good character
if = {
limit = {
any_pool_character = {
province = root.capital_province
base_court_brahmin_triggers = yes
khlon_glan_validity_trigger = { EMPLOYER = root }
"aptitude(khlon_glan_court_position)" = 3
}
}
random_pool_character = {
province = root.capital_province
limit = {
base_court_brahmin_triggers = yes
khlon_glan_validity_trigger = { EMPLOYER = root }
"aptitude(khlon_glan_court_position)" = 3
}
save_scope_as = good_khlon_glan_option
}
}
else = {
create_character = {
location = root.capital_province
template = tgp_khlon_glan_template
age = { 30 40 }
random_traits_list = {
count = 1
education_stewardship_1 = {}
education_stewardship_2 = {}
education_martial_1 = {}
education_martial_2 = {}
}
save_scope_as = good_khlon_glan_option
after_creation = { save_scope_as = goodly_created }
}
scope:good_khlon_glan_option = {
if = {
limit = { martial < 10 }
add_martial_skill = { 4 6 }
}
if = {
limit = { stewardship < 10 }
add_stewardship_skill = { 4 6 }
}
}
}
#Great character
if = {
limit = {
any_pool_character = {
province = root.capital_province
base_court_brahmin_triggers = yes
khlon_glan_validity_trigger = { EMPLOYER = root }
"aptitude(khlon_glan_court_position)" = 5
}
}
random_pool_character = {
province = root.capital_province
limit = {
base_court_brahmin_triggers = yes
khlon_glan_validity_trigger = { EMPLOYER = root }
"aptitude(khlon_glan_court_position)" = 5
}
save_scope_as = great_khlon_glan_option
}
}
else = {
create_character = {
location = root.capital_province
template = tgp_khlon_glan_template
age = { 40 50 }
random_traits_list = {
count = 1
education_stewardship_3 = {}
education_stewardship_4 = {}
education_martial_3 = {}
education_martial_4 = {}
}
random_traits_list = {
count = 1
administrator = {}
overseer = {}
}
trait = organizer
save_scope_as = great_khlon_glan_option
after_creation = { save_scope_as = greatly_created }
}
scope:great_khlon_glan_option = {
if = {
limit = { martial < 10 }
add_martial_skill = { 6 8 }
}
if = {
limit = { stewardship < 10 }
add_stewardship_skill = { 6 8 }
}
}
}
}
#Great option
option = {
name = tgp_east_asia_decision_events.0210.a
custom_tooltip = tgp_east_asia_decision_events.0210.a.aptitude
recruit_mandala_court_position_effect = {
RECRUITEE = scope:great_khlon_glan_option
GOLD_VALUE = medium_gold_value
COURT_POSITION = khlon_glan_court_position
}
ai_chance = {
base = 100
modifier = {
short_term_gold > medium_gold_value
}
}
}
#Good option
option = {
name = tgp_east_asia_decision_events.0210.b
custom_tooltip = tgp_east_asia_decision_events.0210.b.aptitude
recruit_mandala_court_position_effect = {
RECRUITEE = scope:good_khlon_glan_option
GOLD_VALUE = minor_gold_value
COURT_POSITION = khlon_glan_court_position
}
}
#Nah
option = {
name = tgp_east_asia_decision_events.0210.c
}
#Sweep, sweep
after = {
if = {
limit = {
exists = scope:goodly_created
NOT = {
scope:goodly_created = { is_courtier_of = root }
}
}
scope:goodly_created = { silent_disappearance_effect = yes }
}
if = {
limit = {
exists = scope:greatly_created
NOT = {
scope:greatly_created = { is_courtier_of = root }
}
}
scope:greatly_created = { silent_disappearance_effect = yes }
}
}
}
#Create Bunga Mas
tgp_east_asia_decision_events.0300 = {
type = character_event
title = tgp_east_asia_decision_events.0300.t
desc = {
desc = tgp_east_asia_decision_events.0300.desc
first_valid = {
triggered_desc = {
trigger = {
scope:newly_created_bunga_mas = { rarity = illustrious }
}
desc = tgp_east_asia_decision_events.0300.outro.illustrious
}
triggered_desc = {
trigger = {
scope:newly_created_bunga_mas = { rarity = famed }
}
desc = tgp_east_asia_decision_events.0300.outro.famed
}
triggered_desc = {
trigger = {
scope:newly_created_bunga_mas = { rarity = masterwork }
}
desc = tgp_east_asia_decision_events.0300.outro.masterwork
}
desc = tgp_east_asia_decision_events.0300.outro
}
}
theme = mandala
left_portrait = {
character = root
triggered_animation = {
trigger = {
scope:newly_created_bunga_mas = { rarity = illustrious }
}
animation = ecstasy
}
triggered_animation = {
trigger = {
scope:newly_created_bunga_mas = { rarity = famed }
}
animation = admiration
}
triggered_animation = {
trigger = {
scope:newly_created_bunga_mas = { rarity = masterwork }
}
animation = interested
}
animation = thinking
}
right_portrait = {
character = scope:local_artisan
animation = admiration
}
artifact = {
target = scope:newly_created_bunga_mas
position = lower_center_portrait
}
immediate = {
overlord = { save_scope_as = overlord }
random_list = {
50 = {
get_artifact_quality_effect = yes
get_artifact_wealth_effect = yes
}
25 = { set_artifact_rarity_famed = yes }
10 = {
trigger = { has_relation_best_friend = scope:overlord }
set_artifact_rarity_illustrious = yes
}
}
scope:local_artisan = {
hidden_effect_new_object = {
create_artifact = {
name = bunga_mas
description = common_bunga_mas_desc
modifier = artifact_placeholder_modifier
wealth = scope:wealth
quality = scope:quality
type = pedestal
visuals = bunga_mas
save_scope_as = newly_created_bunga_mas
}
scope:newly_created_bunga_mas = {
remove_artifact_modifier = artifact_placeholder_modifier
if = {
limit = { rarity = illustrious }
set_artifact_description = illustrious_bunga_mas_desc
add_artifact_modifier = artifact_monthly_piety_gain_per_legitimacy_level_mult_3_modifier
add_artifact_modifier = artifact_legitimacy_loss_mult_5_modifier
}
else_if = {
limit = { rarity = famed }
set_artifact_description = famed_bunga_mas_desc
add_artifact_modifier = artifact_monthly_piety_gain_per_legitimacy_level_mult_2_modifier
add_artifact_modifier = artifact_legitimacy_loss_mult_4_modifier
}
else_if = {
limit = { rarity = masterwork }
set_artifact_description = masterwork_bunga_mas_desc
add_artifact_modifier = artifact_monthly_piety_gain_per_legitimacy_level_mult_2_modifier
add_artifact_modifier = artifact_legitimacy_loss_mult_3_modifier
}
else = {
add_artifact_modifier = artifact_monthly_piety_gain_per_legitimacy_level_mult_1_modifier
add_artifact_modifier = artifact_legitimacy_loss_mult_2_modifier
}
set_variable = {
name = bunga_mas_created_by
value = root
}
}
}
}
}
#Nah
option = {
name = tgp_east_asia_decision_events.0300.a
scope:newly_created_bunga_mas = {
set_owner = root
if = {
limit = { rarity = illustrious }
custom_tooltip = illustrious_bunga_mas_desc.tt
}
else_if = {
limit = { rarity = famed }
custom_tooltip = famed_bunga_mas_desc.tt
}
else_if = {
limit = { rarity = masterwork }
custom_tooltip = masterwork_bunga_mas_desc.tt
}
else = { custom_tooltip = common_bunga_mas_desc.tt }
}
ai_chance = {
base = 50
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,528 @@
namespace = tgp_faction_events
scripted_effect faction_demand_japanese_regent_rejected_effect = {
# This effect should always be placed here, _before_ all the other effects in the block.
trigger_event = { on_action = on_faction_demand_rejected }
show_as_tooltip = {
scope:faction = {
faction_start_war = {}
}
}
}
# Ceremonial Regent Faction Demand
tgp_faction_events.0101 = {
type = letter_event
sender = scope:faction_leader
opening = "FACTION_JAPANESE_REPLACE_REGENT"
desc = {
first_valid = {
triggered_desc = {
trigger = { tgp_has_ceremonial_liege_title_trigger = yes }
desc = "FACTION_JAPANESE_REPLACE_RULER_DESC"
}
desc = "FACTION_JAPANESE_REPLACE_REGENT_DESC"
}
}
trigger = {
# May have ceased to exist by the time this triggers
exists = scope:faction
}
immediate = {
# Grab our scope for loc.
save_scope_as = faction_target
}
option = {
name = "FACTION_DEMAND_ACCEPT"
add_dread = medium_dread_loss
# LEGITIMACY LOSS FOR ACCEPTING FACTION DEMANDS
faction_accept_demand_legitimacy_effect = yes
add_prestige = -500
faction_demand_regent_transfer_effect = {
NEW_REGENT = scope:faction_leader
REASON = faction_demand
}
add_character_flag = {
flag = recent_replace_regent_faction_war
years = 10
}
scope:faction_leader = {
trigger_event = { id = tgp_faction_events.0102 }
}
# This effect should always be placed here, _after_ everything except the ai_chance.
trigger_event = { on_action = on_faction_demand_accepted }
ai_chance = {
base = 10
modifier = {
add = 90
scope:faction = { faction_power >= 100 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 125 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 150 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 200 }
}
modifier = {
add = 50
any_character_war = {
is_war_leader = root
is_defender = root
}
}
modifier = {
factor = 0.1
any_ally = {
NOR = {
target_is_liege_or_above = root
target_is_vassal_or_below = root
}
max_military_strength > root.max_military_strength
}
}
modifier = {
add = 10000
scope:faction_leader = { is_yes_men_enabled = yes }
}
modifier = { # The Kampaku always fights
factor = 0
has_title = title:e_japan
government_has_flag = government_is_japan_administrative
}
}
}
option = {
name = "FACTION_DEMAND_REFUSE"
faction_demand_japanese_regent_rejected_effect = yes
scope:faction_leader = {
trigger_event = {
id = tgp_faction_events.0103
days = 1
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 4.0
}
modifier = {
add = 50
scope:faction = { faction_power < 80 }
}
modifier = {
add = 100
scope:faction = { faction_power < 60 }
}
modifier = {
add = 1000
scope:faction = { faction_power < 40 }
}
modifier = {
add = 10000
scope:faction_leader = { is_no_men_enabled = yes }
}
}
}
}
# Japanese Regent Faction Demand Accepted
tgp_faction_events.0102 = {
type = letter_event
sender = scope:faction_target
opening = "FACTION_JAPANESE_REPLACE_REGENT_ACCEPTED"
desc = "FACTION_JAPANESE_REPLACE_REGENT_ACCEPTED_DESC"
immediate = {
show_as_tooltip = {
get_title = primary_title
if = {
limit = {
government_has_flag = government_is_japan_administrative
tgp_has_ceremonial_liege_title_trigger = no
NOT = {
has_realm_law = japanese_regency_succession_law
}
}
add_realm_law_skip_effects = japanese_regency_succession_law
}
else = {
add_realm_law_skip_effects = single_heir_succession_law
}
}
}
option = {
name = "FACTION_DEMAND_ACCEPTED_OPT"
}
}
# Japanese Regent Faction Demand Refused
tgp_faction_events.0103 = {
type = letter_event
sender = scope:faction_target
opening = "FACTION_JAPANESE_REPLACE_REGENT_REFUSED"
desc = "FACTION_JAPANESE_REPLACE_REGENT_REFUSED_DESC"
option = {
name = "FACTION_DEMAND_REFUSED_OPT"
scope:faction = {
faction_start_war = {}
every_faction_member = {
limit = {
NOT = { this = scope:faction.faction_leader }
}
trigger_event = tgp_faction_events.0104
}
}
}
}
# Japanese Regent Faction Demand Refused Member Notice
tgp_faction_events.0104 = {
type = letter_event
sender = scope:faction_target
opening = "FACTION_JAPANESE_REPLACE_REGENT_REFUSED"
desc = "FACTION_JAPANESE_REPLACE_REGENT_REFUSED_DESC"
option = { name = "FACTION_DEMAND_REFUSED_OPT" }
}
# Japanese Regent Faction Demand Send Notice
tgp_faction_events.0105 = {
type = letter_event
sender = scope:faction_leader
opening = "FACTION_JAPANESE_REPLACE_REGENT_SEND_DEMAND_NOTIFICATION"
desc = "FACTION_JAPANESE_REPLACE_REGENT_SEND_DEMAND_NOTIFICATION_DESC"
option = { name = "FACTION_DEMAND_SEND_DEMAND_NOTIFICATION_OPT" }
}
scripted_effect faction_demand_restore_emperor_rejected_effect = {
# This effect should always be placed here, _before_ all the other effects in the block.
trigger_event = { on_action = on_faction_demand_rejected }
show_as_tooltip = {
scope:faction = {
faction_start_war = {}
}
}
}
# Restore Emperor Faction Demand
tgp_faction_events.0201 = {
type = letter_event
sender = scope:faction_leader
opening = "FACTION_JAPANESE_RESTORE_EMPEROR"
desc = "FACTION_JAPANESE_RESTORE_EMPEROR_DESC"
trigger = {
# May have ceased to exist by the time this triggers
exists = scope:faction
}
immediate = {
# Grab our scope for loc.
save_scope_as = faction_target
}
option = {
name = "FACTION_DEMAND_ACCEPT"
add_dread = medium_dread_loss
# LEGITIMACY LOSS FOR ACCEPTING FACTION DEMANDS
faction_accept_demand_legitimacy_effect = yes
add_prestige = -500
scope:faction = {
special_character = { save_scope_as = ceremonial_liege }
faction_leader = {
trigger_event = { id = tgp_faction_events.0202 }
}
if = {
limit = { exists = this }
destroy_faction = yes
}
}
show_as_tooltip = {
restore_ceremonial_liege_faction_combined_effect = yes
}
# This effect should always be placed here, _after_ everything except the ai_chance.
trigger_event = { on_action = on_faction_demand_accepted }
ai_chance = {
base = 10
modifier = {
add = 90
scope:faction = { faction_power >= 100 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 125 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 150 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 200 }
}
modifier = {
add = 50
any_character_war = {
is_war_leader = root
is_defender = root
}
}
modifier = {
factor = 0.1
any_ally = {
NOR = {
target_is_liege_or_above = root
target_is_vassal_or_below = root
}
max_military_strength > root.max_military_strength
}
}
modifier = {
add = 10000
scope:faction_leader = { is_yes_men_enabled = yes }
}
}
}
option = {
name = {
trigger = {
scope:faction_leader = { tgp_has_ceremonial_liege_title_trigger = no }
}
text = tgp_faction_events.0201.b
}
name = {
trigger = {
scope:faction_leader = { tgp_has_ceremonial_liege_title_trigger = yes }
}
text = tgp_faction_events.0201.b.cm
}
faction_demand_restore_emperor_rejected_effect = yes
scope:faction_leader = {
trigger_event = {
id = tgp_faction_events.0203
days = 1
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 4.0
}
modifier = {
add = 50
scope:faction = { faction_power < 80 }
}
modifier = {
add = 100
scope:faction = { faction_power < 60 }
}
modifier = {
add = 1000
scope:faction = { faction_power < 40 }
}
}
}
}
# Restore Emperor Faction Demand Accepted
tgp_faction_events.0202 = {
type = letter_event
sender = scope:faction_target
opening = "FACTION_JAPANESE_RESTORE_EMPEROR_ACCEPTED"
desc = "FACTION_JAPANESE_RESTORE_EMPEROR_ACCEPTED_DESC"
immediate = {
save_scope_as = faction_restoration
scope:faction.special_character = { save_scope_as = ceremonial_monarch }
if = {
limit = { this = scope:ceremonial_monarch }
restore_ceremonial_liege_faction_combined_effect = yes
}
else = {
scope:faction_target = { save_scope_as = defender }
trigger_event = tgp_faction_events.0206
}
}
option = {
name = "FACTION_DEMAND_ACCEPTED_OPT"
}
}
# Restore Emperor Faction Demand Refused
tgp_faction_events.0203 = {
type = letter_event
sender = scope:faction_target
opening = "FACTION_JAPANESE_RESTORE_EMPEROR_REFUSED"
desc = "FACTION_JAPANESE_RESTORE_EMPEROR_REFUSED_DESC"
option = {
name = "FACTION_DEMAND_REFUSED_OPT"
scope:faction = {
faction_start_war = {}
every_faction_member = {
limit = {
NOT = { this = scope:faction.faction_leader }
}
trigger_event = tgp_faction_events.0204
}
}
}
}
# Restore Emperor Faction Demand Refused Member Notice
tgp_faction_events.0204 = {
type = letter_event
sender = scope:faction_target
opening = "FACTION_JAPANESE_RESTORE_EMPEROR_REFUSED"
desc = "FACTION_JAPANESE_RESTORE_EMPEROR_REFUSED_DESC"
option = { name = "FACTION_DEMAND_REFUSED_OPT" }
}
# Restore Emperor Faction Demand Send Notice
tgp_faction_events.0205 = {
type = letter_event
sender = scope:faction_leader
opening = "FACTION_JAPANESE_RESTORE_EMPEROR_SEND_DEMAND_NOTIFICATION"
desc = "FACTION_JAPANESE_RESTORE_EMPEROR_SEND_DEMAND_NOTIFICATION_DESC"
option = { name = "FACTION_DEMAND_SEND_DEMAND_NOTIFICATION_OPT" }
}
# Restore Emperor Faction Aftermath
tgp_faction_events.0206 = {
type = character_event
title = tgp_faction_events.0206.t
desc = tgp_faction_events.0206.desc
override_background = { reference = throne_room_scope }
theme = war
left_portrait = {
character = root
animation = war_over_win
}
right_portrait = {
character = scope:ceremonial_liege
animation = war_over_tie
}
lower_center_portrait = scope:defender
trigger = {
tgp_realm_has_ceremonial_liege_trigger = yes
tgp_has_ceremonial_liege_title_trigger = no
}
on_trigger_fail = {
if = {
limit = { tgp_realm_has_ceremonial_liege_trigger = yes }
restore_ceremonial_liege_faction_combined_effect = yes
}
}
immediate = {
if = {
limit = { NOT = { exists = scope:attacker } }
save_scope_as = attacker
}
tgp_save_realm_ceremonial_liege_effect = yes
scope:ceremonial_liege = { save_scope_as = background_throne_room_scope }
}
option = {
name = tgp_faction_events.0206.a
restore_ceremonial_liege_faction_combined_effect = yes
add_hook = {
target = scope:ceremonial_liege
type = favor_hook
}
scope:ceremonial_liege = {
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 50
}
}
every_in_list = {
list = attackers
limit = {
NOT = { this = root }
}
custom = faction_member_custom
add_opinion = {
target = root
modifier = respect_opinion
opinion = 25
}
}
stress_impact = {
ambitious = minor_stress_impact_gain
arbitrary = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -0.5
ai_boldness = -0.5
ai_honor = 0.5
}
}
}
option = {
name = tgp_faction_events.0206.b
faction_demand_regent_transfer_effect = {
NEW_REGENT = scope:attacker
REASON = faction_demand
}
add_tyranny = major_tyranny_gain
reverse_add_opinion = {
target = scope:ceremonial_liege
modifier = angry_opinion
opinion = -50
}
every_in_list = {
list = attackers
limit = {
NOR = {
this = root
house ?= root.house
}
}
custom = faction_member_custom
add_opinion = {
target = root
modifier = angry_opinion
opinion = -25
}
}
stress_impact = {
honest = minor_stress_impact_gain
just = minor_stress_impact_gain
content = minor_stress_impact_gain
humble = minor_stress_impact_gain
}
ai_chance = {
base = -50
ai_value_modifier = {
ai_greed = 0.5
ai_boldness = 0.5
ai_honor = -0.5
}
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,502 @@
##########################
# GOVERNOR CONTRACT EVENTS
##########################
namespace = tgp_governor_contract_event
### Missing Equipment
# Intro event
tgp_governor_contract_event.2000 = {
type = character_event
title = tgp_governor_contract_event.2000.t
desc = tgp_governor_contract_event.2000.desc
theme = administrative
left_portrait = {
character = root
animation = worry
}
immediate = {
# Save the contract
random_character_active_contract = {
limit = {
has_task_contract_type = missing_equipment
}
save_scope_as = ongoing_contract
# Save the location
task_contract_location = {
save_scope_as = robbery_location
}
}
# Save the capital location
top_liege = {
capital_province = {
save_scope_as = capital_location
}
}
}
option = { # Let's pay the workshops a visit.
name = tgp_governor_contract_event.2000.a
# Travel to the capital and visit a workshop/production facility
custom_tooltip = {
text = tgp_governor_contract_event.2000.a_tt
governor_contract_travel_or_progress_effect = {
DESTINATION = scope:capital_location
ARRIVAL_EVENT = tgp_governor_contract_event.2001
}
}
ai_chance = {
base = 100
}
}
option = {
name = tgp_governor_contract_event.2000.b
scope:ongoing_contract = {
complete_task_contract = buy_replacements
}
ai_chance = {
base = 0
modifier = { # The AI may take this if they have A LOT of gold
add = 100
short_term_gold >= massive_gold_value
}
}
}
option = {
name = tgp_governor_contract_event.2000.c
scope:ongoing_contract = {
complete_task_contract = failure_standard
}
ai_chance = {
base = 0
modifier = { # Pick this only if necessary
add = 100
is_available = no
}
}
}
}
# Arrival at the workshop
tgp_governor_contract_event.2001 = {
type = character_event
title = tgp_governor_contract_event.2001.t
desc = tgp_governor_contract_event.2001.desc
theme = administrative
override_background = { reference = market }
left_portrait = {
character = root
animation = disapproval
}
right_portrait = {
character = scope:foreman
animation = reading
}
immediate = {
# Save the contract
random_character_active_contract = {
limit = {
has_task_contract_type = missing_equipment
}
save_scope_as = ongoing_contract
}
# Save the capital location
top_liege = {
capital_province = {
save_scope_as = capital_location
}
}
# Find/create a foreman for us to talk to
if = {
limit = {
any_pool_character = {
province = scope:capital_location
is_physically_able_ai_adult = yes
}
}
random_pool_character = {
province = scope:capital_location
limit = {
is_physically_able_ai_adult = yes
}
save_scope_as = foreman
}
}
else = {
create_character = {
template = scholar_character
culture = scope:capital_location.county.culture
faith = scope:capital_location.county.faith
location = scope:capital_location
gender_female_chance = root_faith_dominant_gender_female_chance
save_scope_as = foreman
}
}
# Check if you have an important relation at the imperial court
top_liege = {
if = {
limit = {
OR = {
has_relation_friend = root
has_relation_lover = root
is_close_or_extended_family_of = root
root = { has_hook = prev }
}
}
save_scope_as = court_relation
}
else_if = {
limit = {
cp:councillor_chancellor ?= {
OR = {
has_relation_friend = root
has_relation_lover = root
is_close_or_extended_family_of = root
root = { has_hook = prev }
}
}
}
cp:councillor_chancellor = { save_scope_as = court_relation }
}
else_if = {
limit = {
cp:councillor_marshal ?= {
OR = {
has_relation_friend = root
has_relation_lover = root
is_close_or_extended_family_of = root
root = { has_hook = prev }
}
}
}
cp:councillor_marshal = { save_scope_as = court_relation }
}
else_if = {
limit = {
cp:councillor_steward ?= {
OR = {
has_relation_friend = root
has_relation_lover = root
is_close_or_extended_family_of = root
root = { has_hook = prev }
}
}
}
cp:councillor_steward = { save_scope_as = court_relation }
}
else_if = {
limit = {
cp:councillor_spymaster ?= {
OR = {
has_relation_friend = root
has_relation_lover = root
is_close_or_extended_family_of = root
root = { has_hook = prev }
}
}
}
cp:councillor_spymaster = { save_scope_as = court_relation }
}
else_if = {
limit = {
cp:councillor_court_chaplain ?= {
OR = {
has_relation_friend = root
has_relation_lover = root
is_close_or_extended_family_of = root
root = { has_hook = prev }
}
}
}
cp:councillor_court_chaplain = { save_scope_as = court_relation }
}
}
hidden_effect = { # Delay the travel until the events are resolved
current_travel_plan ?= {
delay_travel_plan = { days = 180 }
}
}
}
option = { # A _clerical_ error? [relation] will hear about this...
name = tgp_governor_contract_event.2001.a
trigger = {
exists = scope:court_relation
}
custom_tooltip = {
text = tgp_governor_contract_event.2001.a.tt
trigger_event = {
id = tgp_governor_contract_event.2002
}
}
ai_chance = {
base = 100
}
}
option = { # Surely some additional compensation is in order?
name = tgp_governor_contract_event.2001.b
duel = {
skill = diplomacy
value = 10
50 = { # Success
desc = tgp_governor_contract_event.2001.tt_success_desc
compare_modifier = {
value = scope:duel_value
multiplier = 2.5
}
trigger_event = {
id = tgp_governor_contract_event.2002
}
custom_tooltip = tgp_governor_contract_event.2001.tt_success
}
50 = { # Failure
desc = tgp_governor_contract_event.2001.tt_failure_desc
compare_modifier = {
value = scope:duel_value
multiplier = -2.5
}
trigger_event = {
id = tgp_governor_contract_event.2003
}
custom_tooltip = tgp_governor_contract_event.2001.tt_failure
show_as_tooltip = { # Actual deduction is done in follow-up event
change_influence = medium_influence_loss
add_prestige = medium_prestige_loss
}
}
}
stress_impact = {
content = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 2
diplomacy >= good_skill_level
}
modifier = {
factor = 0
exists = scope:court_relation
}
modifier = {
factor = 0
has_trait = content
}
}
}
option = { # It would be unfortunate if your incompetence became public, no?
name = tgp_governor_contract_event.2001.c
duel = {
skill = intrigue
value = 10
50 = { # Success
desc = tgp_governor_contract_event.2001.tt_success_desc
compare_modifier = {
value = scope:duel_value
multiplier = 2.5
}
trigger_event = {
id = tgp_governor_contract_event.2002
}
custom_tooltip = tgp_governor_contract_event.2001.tt_success
}
50 = { # Failure
desc = tgp_governor_contract_event.2001.tt_failure_desc
compare_modifier = {
value = scope:duel_value
multiplier = -2.5
}
trigger_event = {
id = tgp_governor_contract_event.2003
}
custom_tooltip = tgp_governor_contract_event.2001.tt_failure
show_as_tooltip = { # Actual deduction is done in follow-up event
change_influence = medium_influence_loss
add_prestige = medium_prestige_loss
}
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 0
modifier = {
factor = 2
intrigue >= good_skill_level
}
modifier = {
factor = 1.2
has_trait = deceitful
}
modifier = {
factor = 0
has_trait = compassionate
}
}
}
option = { # Very well. Just make certain that it does.
name = tgp_governor_contract_event.2001.d
scope:ongoing_contract = {
complete_task_contract = offered_replacements
}
current_travel_plan ?= { resume_travel_plan = yes }
ai_chance = {
base = 50
modifier = {
factor = 2
has_trait = content
}
}
}
}
# Workship visit: Success
tgp_governor_contract_event.2002 = {
type = character_event
title = tgp_governor_contract_event.2002.t
desc = tgp_governor_contract_event.2002.desc
theme = administrative
override_background = { reference = market }
left_portrait = {
character = root
animation = schadenfreude
}
right_portrait = {
character = scope:foreman
animation = obsequious_bow
}
immediate = {
generate_governance_outcome_effect = { OPTIONS = 4 }
}
# Special governor trait option
option = { # Let's secure a number of shipments in the future.
name = tgp_governor_contract_event.2002.a
trigger = {
exists = scope:governance_option_a
}
scope:ongoing_contract = {
complete_task_contract = secure_future_deliveries
}
ai_chance = {
base = 100
}
}
option = { # Secure me your next #EMP two#! shipments.
name = tgp_governor_contract_event.2002.b
trigger = { exists = scope:governance_option_b }
scope:ongoing_contract = {
complete_task_contract = demand_extra_shipment
}
ai_chance = {
base = 25
}
}
option = { # A monetary compensation is in order.
name = tgp_governor_contract_event.2002.c
trigger = { exists = scope:governance_option_c }
scope:ongoing_contract = {
complete_task_contract = demand_gold
}
ai_chance = {
base = 25
}
}
option = { # Send me the best equipment you have available.
name = tgp_governor_contract_event.2002.d
trigger = { exists = scope:governance_option_d }
scope:ongoing_contract = {
complete_task_contract = demand_best_equipment
}
ai_chance = {
base = 25
}
}
after = {
current_travel_plan ?= { resume_travel_plan = yes }
}
}
# Workship visit: Failure
tgp_governor_contract_event.2003 = {
type = character_event
title = tgp_governor_contract_event.2003.t
desc = tgp_governor_contract_event.2003.desc
theme = administrative
override_background = { reference = market }
left_portrait = {
character = root
animation = disappointed
}
right_portrait = {
character = scope:foreman
animation = anger
}
immediate = {
}
option = { # Fine.
name = tgp_governor_contract_event.2003.a
scope:ongoing_contract = {
complete_task_contract = offered_replacements
}
change_influence = medium_influence_loss
add_prestige = medium_prestige_loss
}
after = {
current_travel_plan ?= { resume_travel_plan = yes }
}
}

View file

@ -0,0 +1,176 @@
namespace = tgp_house_blocs
# Message management
tgp_house_blocs.0001 = {
type = character_event
hidden = yes
trigger = { has_character_flag = bloc_message_flag }
immediate = {
# Notify all members about them leaving.
send_interface_message = {
type = msg_left_house_bloc
title = msg_left_bloc_root
desc = msg_left_bloc_desc_root
left_icon = scope:leaver.house
right_icon = scope:bloc.leading_house
custom_description = {
text = leave_house_bloc_effect
subject = house.house_head
}
}
every_player = {
limit = {
confederation ?= scope:bloc
NOT = { this = root }
}
send_interface_message = {
type = msg_left_house_bloc
title = msg_left_bloc
desc = msg_left_bloc_desc
left_icon = scope:leaver.house
right_icon = scope:bloc.leading_house
custom_description = {
text = leave_house_bloc_effect
subject = scope:leaver.house_head
}
}
}
remove_character_flag = bloc_message_flag
}
}
tgp_house_blocs.0002 = {
type = character_event
hidden = yes
trigger = { has_character_flag = bloc_message_flag }
immediate = {
# Notify all members about them leaving.
send_interface_message = {
type = msg_joined_house_bloc
title = msg_joined_bloc_root
desc = msg_joined_bloc_desc_root
left_icon = scope:joiner.house
right_icon = scope:bloc.leading_house
custom_description = {
text = join_house_bloc_effect
subject = scope:joiner
object = scope:bloc.leading_house.house_head
}
}
every_player = {
limit = {
confederation ?= scope:bloc
NOT = { this = root }
}
send_interface_message = {
type = msg_joined_house_bloc
title = msg_joined_bloc
desc = msg_joined_bloc_desc
left_icon = scope:joiner.house
right_icon = scope:bloc.leading_house
custom_description = {
text = join_house_bloc_effect
subject = scope:joiner
object = scope:bloc.leading_house.house_head
}
}
}
remove_character_flag = bloc_message_flag
}
}
tgp_house_blocs.0010 = {
type = character_event
hidden = yes
immediate = {
bloc_leader_change_aspiration_cohesion_effect = yes
}
}
# Strength Unlock
tgp_house_blocs.1001 = {
type = character_event
title = tgp_house_blocs.1001.t
desc = tgp_house_blocs.1001.desc
theme = war
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
character = scope:bloc_leader
animation = japanese_war_fan
}
override_background = { reference = army_camp }
trigger = {
is_ruler = yes
exists = house.house_confederation
NOT = { is_at_war_with = house.house_confederation.leading_house.house_head }
}
immediate = {
house = {
house_confederation = {
leading_house.house_head = { save_scope_as = bloc_leader }
}
every_house_member = {
limit = {
is_landed = yes
top_liege = root.top_liege
OR = {
liege = scope:bloc_leader
liege = root
}
NOR = {
this = root
is_at_war_with = house.house_confederation.leading_house.house_head
}
}
add_to_list = war_joiners
}
}
}
option = {
name = tgp_house_blocs.1001.a
scope:war = {
add_attacker = root
}
every_in_list = {
list = war_joiners
save_temporary_scope_as = war_joiner_temp
scope:war = {
add_attacker = scope:war_joiner_temp
}
}
ai_chance = {
base = 100
}
}
option = {
name = tgp_house_blocs.1001.b
house = {
set_variable = {
name = bloc_leaving_reason
value = flag:reason_events
days = 4
}
tgp_leave_house_bloc_effect = {
OPINION = flag:yes
TRUCE = flag:yes
}
}
ai_chance = {
base = 0
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,125 @@
###################################
# JAPAN CAREER EVENTS
###################################
namespace = tgp_japan_career
### EVENT LIST ####################################################################
## 0001 - Intro in 1066
## 0002 - Intro in 1178
###################################################################################
# Intro Event - Who are you playing as and what is your situation
# Also acts as an introduction when you start playing in Japan
tgp_japan_career.0001 = {
type = character_event
window = big_event_window
title = tgp_japan_career.0001.t
desc = {
desc = tgp_japan_career.0001.desc
first_valid = {
triggered_desc = {
trigger = { has_title = title:k_chrysanthemum_throne } #is tenno
desc = tgp_japan_career.0001.tenno_desc
}
triggered_desc = {
trigger = { has_title = title:e_japan } #is kampaku
desc = tgp_japan_career.0001.kampaku_desc
}
triggered_desc = {
trigger = { government_has_flag = government_is_japan_feudal } #is soryo
desc = tgp_japan_career.0001.soryo_desc
}
triggered_desc = {
trigger = { government_has_flag = government_is_japan_administrative } #is ritsuryo
desc = tgp_japan_career.0001.ritsuryo_desc
}
}
desc = tgp_japan_career.0001.desc_2
}
theme = diplomacy
override_icon = {
trigger = { government_has_flag = government_is_japan_feudal }
reference ="gfx/interface/icons/event_types/type_war.dds"
}
override_header_background = {
trigger = { government_has_flag = government_is_japan_feudal }
reference = "gfx/interface/window_event/event_header_red.dds"
}
override_background = {
trigger = {
has_title = title:k_chrysanthemum_throne
}
reference = tgp_garden_asia
}
override_background = {
trigger = {
has_title = title:e_japan
}
reference = tgp_study_japan
}
override_background = {
trigger = {
government_has_flag = government_is_japan_feudal
}
reference = tgp_crossroad_inn_asia
}
override_background = {
trigger = {
government_has_flag = government_is_japan_administrative
}
reference = bedchamber
}
left_portrait = {
character = root
triggered_animation = {
trigger = {
government_has_flag = government_is_japan_feudal #Soryo ruler should have their sword out
}
animation = inspect_weapon
}
animation = chancellor
}
right_portrait = {
character = player_heir
triggered_animation = {
trigger = {
government_has_flag = government_is_japan_feudal #Soryo ruler should have their sword out
}
animation = horse_archer_aggressive
camera = camera_event_scheme_vs_left_look_left
}
animation = holding_scrolls
}
trigger = {
has_tgp_dlc_trigger = yes
government_is_japanese_trigger = yes
}
immediate = {
# Scopes
save_scope_as = new_ruler
house ?= { save_scope_as = ruler_family }
top_liege = { save_scope_as = kampaku }
player_heir ?= { save_scope_as = heir }
}
option = {
name = tgp_japan_career.0001.a
add_character_modifier = {
modifier = tgp_japan_peace_modifier
years = 20
}
}
option = {
name = tgp_japan_career.0001.b
add_character_modifier = {
modifier = tgp_japan_war_modifier
years = 20
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,180 @@
namespace = tgp_korea_decision
# unify_goryeo_decision
tgp_korea_decision.9101 = { # Ruler
type = character_event
title = tgp_korea_decision.9101.t
desc = {
desc = tgp_korea_decision.9101.intro
desc = tgp_korea_decision.9101.desc
}
theme = realm
override_effect_2d = { reference = legend_glow }
override_background = { reference = throne_room_scope }
left_portrait = {
character = scope:king_of_goryeo
animation = holding_hu
}
immediate = {
play_music_cue = "mx_cue_epic_sacral_moment"
save_scope_as = background_throne_room_scope
korea_unify_goryeo_reward_effect = yes
}
option = { # Samhan
name = tgp_korea_decision.9101.a
# Rename Goryeo culture
hidden_effect = {
culture:goryeo = {
set_culture_name = {
noun = samhan_hybrid_name
collective_noun = samhan_hybrid_collective_noun
prefix = samhan_hybrid_prefix
}
}
}
ai_chance = {
base = 10
}
}
option = { # Goryeo
name = tgp_korea_decision.9101.b
trigger = { culture = culture:goguryeo }
custom_tooltip = {
text = tgp_korea_decision.9101.b.reason
title:e_goryeo = { set_title_name = "cn_goryeo" }
}
ai_chance = {
base = 100
}
}
after = {
# Inform Vassals
every_player = {
limit = { is_vassal_or_below_of = root }
trigger_event = tgp_korea_decision.9102
}
}
}
tgp_korea_decision.9102 = { # Vassal
type = character_event
title = tgp_korea_decision.9102.t
desc = {
desc = tgp_korea_decision.9101.intro
desc = tgp_korea_decision.9102.desc
}
theme = realm
override_effect_2d = { reference = legend_glow }
override_background = { reference = throne_room_scope }
left_portrait = {
character = scope:king_of_goryeo
animation = war_over_tie
}
immediate = {
show_as_tooltip = {
scope:king_of_goryeo = { korea_unify_goryeo_reward_effect = yes }
}
}
option = {
name = tgp_korea_decision.9101.a
}
}
# NEW CEREMONIAL REGENCY EVENT
#tgp_korea_decision.9201 = {
# orphan = yes # DEPRECATED
# type = character_event
# title = tgp_korea_decision.9201.t
# desc = tgp_korea_decision.9201.desc
# theme = crown
# left_portrait = {
# character = root
# animation = holding_hu
# }
# override_background = { reference = throne_room_scope }
#
# trigger = {
# OR = {
# exists = primary_title.previous_holder
# NOT = { primary_title = title:e_viet }
# }
# }
#
# immediate = {
# show_as_tooltip = {
# scope:founder = { get_title = scope:new_title }
# scope:regent_title.holder = { add_realm_law_skip_effects = single_heir_succession_law } # Regency inherited separately
# scope:new_title = { add_title_law = single_heir_succession_law }
# }
# every_player = {
# limit = {
# top_liege = root
# NOT = { this = root }
# }
# trigger_event = {
# id = tgp_korea_decision.9202
# delayed = yes
# }
# }
# }
# option = {
# name = tgp_korea_decision.9201.a
# ai_chance = {
# base = 100
# }
# }
#}
#tgp_korea_decision.9202 = {
# orphan = yes # DEPRECATED
# type = character_event
# title = tgp_korea_decision.9201.t
# desc = tgp_korea_decision.9202.desc
# theme = crown
# left_portrait = {
# character = root
# animation = throne_room_bow_1
# }
# right_portrait = {
# character = scope:founder
# animation = holding_hu
# }
# override_background = { reference = throne_room_scope }
# immediate = {
# show_as_tooltip = {
# scope:founder = { get_title = scope:new_title }
# scope:regent_title.holder = { add_realm_law_skip_effects = single_heir_succession_law } # Regency inherited separately
# scope:new_title = { add_title_law = single_heir_succession_law }
# }
# }
# option = { name = tgp_korea_decision.9202.a }
#}
#tgp_korea_decision.9203 = {
# orphan = yes # DEPRECATED
# hidden = yes
# type = character_event
# trigger = {
# government_has_flag = government_is_meritocratic
# is_independent_ruler = yes
# highest_held_title_tier >= tier_empire
# tgp_realm_has_ceremonial_liege_trigger = no
# }
# immediate = {
# save_scope_as = founder
# save_scope_as = background_throne_room_scope
# #tgp_create_ceremonial_regent_title_effect = { FOUNDER = root }
# trigger_event = {
# id = tgp_korea_decision.9201
# delayed = yes
# }
# }
#}

View file

@ -0,0 +1 @@
#

View file

@ -0,0 +1,278 @@
#Mandala Capital Events
namespace = tgp_east_asia_mandala_capital_events
tgp_east_asia_mandala_capital_events.1000 = {
type = character_event
window = big_event_window
title = {
first_valid = {
triggered_desc = {
trigger = {
scope:great_project = { great_project_type = mandala_capital_05 }
}
desc = tgp_east_asia_mandala_capital_events.1000.t.final
}
triggered_desc = {
trigger = {
scope:great_project = { great_project_type = mandala_capital_04 }
}
desc = tgp_east_asia_mandala_capital_events.1000.t.fourth
}
triggered_desc = {
trigger = {
scope:great_project = { great_project_type = mandala_capital_03 }
}
desc = tgp_east_asia_mandala_capital_events.1000.t.third
}
triggered_desc = {
trigger = {
scope:great_project = { great_project_type = mandala_capital_02 }
}
desc = tgp_east_asia_mandala_capital_events.1000.t.second
}
desc = tgp_east_asia_mandala_capital_events.1000.t
}
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
scope:great_project = { great_project_type = mandala_capital_05 }
}
desc = tgp_east_asia_mandala_capital_events.1000.desc.final
}
triggered_desc = {
trigger = {
scope:great_project = { great_project_type = mandala_capital_04 }
}
desc = tgp_east_asia_mandala_capital_events.1000.desc.fourth
}
triggered_desc = {
trigger = {
scope:great_project = { great_project_type = mandala_capital_03 }
}
desc = tgp_east_asia_mandala_capital_events.1000.desc.third
}
triggered_desc = {
trigger = {
scope:great_project = { great_project_type = mandala_capital_02 }
}
desc = tgp_east_asia_mandala_capital_events.1000.desc.second
}
desc = tgp_east_asia_mandala_capital_events.1000.desc
}
}
theme = mandala
left_portrait = {
character = scope:onlooker
animation = admiration
}
center_portrait = {
character = root
animation = personality_zealous
}
right_portrait = {
character = scope:onlooker_2
camera = camera_event_scheme_vs_center_positioned_left
animation = ecstasy
}
override_effect_2d = { reference = legend_glow }
immediate = {
mandala_owner_reward_01_effect = yes
scope:province = { save_scope_as = project_location }
#Grab some characters who are celebrating and excited
random_courtier = {
limit = {
is_available_adult = yes
this != root
}
save_scope_as = onlooker
}
if = {
limit = {
NOT = { exists = scope:onlooker }
}
random_pool_character = {
province = root.capital_province
limit = { is_available_adult = yes }
save_scope_as = onlooker
}
}
random_courtier = {
limit = {
is_available_adult = yes
this != root
this != scope:onlooker
}
save_scope_as = onlooker_2
}
if = {
limit = {
NOT = { exists = scope:onlooker_2 }
}
random_pool_character = {
province = root.capital_province
limit = { is_available_adult = yes }
save_scope_as = onlooker_2
}
}
}
#Run effects
option = {
name = {
text = {
first_valid = {
triggered_desc = {
trigger = {
scope:great_project = { great_project_type = mandala_capital_05 }
}
desc = tgp_east_asia_mandala_capital_events.1000.a.final
}
triggered_desc = {
trigger = {
scope:great_project = { great_project_type = mandala_capital_04 }
}
desc = tgp_east_asia_mandala_capital_events.1000.a.fourth
}
triggered_desc = {
trigger = {
scope:great_project = { great_project_type = mandala_capital_03 }
}
desc = tgp_east_asia_mandala_capital_events.1000.a.third
}
triggered_desc = {
trigger = {
scope:great_project = { great_project_type = mandala_capital_02 }
}
desc = tgp_east_asia_mandala_capital_events.1000.a.second
}
desc = tgp_east_asia_mandala_capital_events.1000.a
}
}
}
#Did you contribute something?
if = {
limit = {
scope:great_project = { great_project_type = mandala_capital_01 }
}
check_and_reward_contributions_01_effect = yes
}
if = {
limit = {
scope:great_project = { great_project_type = mandala_capital_02 }
}
check_and_reward_contributions_02_effect = yes
}
if = {
limit = {
scope:great_project = { great_project_type = mandala_capital_03 }
}
check_and_reward_contributions_03_effect = yes
}
if = {
limit = {
scope:great_project = { great_project_type = mandala_capital_04 }
}
check_and_reward_contributions_04_effect = yes
}
if = {
limit = {
scope:great_project = { great_project_type = mandala_capital_05 }
}
check_and_reward_contributions_05_effect = yes
}
}
}
tgp_east_asia_mandala_capital_events.1010 = {
type = character_event
window = big_event_window
title = tgp_east_asia_mandala_capital_events.1010.t
desc = tgp_east_asia_mandala_capital_events.1010.desc
theme = mandala
left_portrait = {
character = root
triggered_animation = {
trigger = { ai_honor <= 0 }
animation = scheme
}
animation = personality_compassionate
}
right_portrait = {
character = scope:envoy
animation = obsequious_bow
}
lower_right_portrait = {
character = scope:overlord_scope
}
immediate = {
scope:owner = {
save_scope_as = overlord_scope
save_scope_as = value_target
}
scope:province = { save_scope_as = project_location }
create_character = {
template = travel_messenger
location = root.location
culture = scope:overlord_scope.location.culture
faith = scope:overlord_scope.location.faith
gender_female_chance = scope_value_target_soldier_female_chance
save_scope_as = envoy
}
}
#Run effects
option = {
name = tgp_east_asia_mandala_capital_events.1010.a
#Did you contribute something?
if = {
limit = {
scope:great_project = { great_project_type = mandala_capital_01 }
}
check_and_reward_contributions_01_effect = yes
}
if = {
limit = {
scope:great_project = { great_project_type = mandala_capital_02 }
}
check_and_reward_contributions_02_effect = yes
}
if = {
limit = {
scope:great_project = { great_project_type = mandala_capital_03 }
}
check_and_reward_contributions_03_effect = yes
}
if = {
limit = {
scope:great_project = { great_project_type = mandala_capital_04 }
}
check_and_reward_contributions_04_effect = yes
}
if = {
limit = {
scope:great_project = { great_project_type = mandala_capital_05 }
}
check_and_reward_contributions_05_effect = yes
}
#Get some opinion
if = {
limit = {
scope:overlord_scope = { is_ai = yes }
}
mandala_contributor_opinion_reward_effect = { OVERLORD = scope:overlord_scope }
}
}
#Sweep, sweep
after = {
scope:envoy = {
if = { # Cleanup
limit = {
root = { is_ai = yes }
is_courtier = no
}
silent_disappearance_effect = yes
}
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,372 @@
#########################
# MENTORING SCHEME EVENTS
#########################
namespace = mentoring_scheme_event
# Outcome event - Become better at whatever you studied
mentoring_scheme_event.0001 = {
hidden = yes
immediate = {
send_interface_message = {
type = mentoring_scheme_good_message
title = mentoring_success_message
left_icon = scope:target
## Base
# Merit
if = {
limit = {
scope:scheme = { has_variable = mentoring_merit }
}
change_merit = {
value = 10
multiply = {
value = scope:target.merit_level
subtract = merit_level
}
}
}
# Confucian Education
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_confucian_education }
}
if = {
limit = {
has_trait = confucian_education
}
add_trait_xp = {
trait = confucian_education
value = 2
}
}
else = {
add_trait = confucian_education
}
}
## Commander Traits
# Logistician
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_logistician }
}
if = {
limit = {
has_trait = logistician
}
add_trait_xp = {
trait = logistician
value = 5
}
}
else = {
add_trait = logistician
}
}
# Military Engineer
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_military_engineer }
}
if = {
limit = {
has_trait = military_engineer
}
add_trait_xp = {
trait = military_engineer
value = 5
}
}
else = {
add_trait = military_engineer
}
}
# Aggressive Attacker
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_aggressive_attacker }
}
if = {
limit = {
has_trait = aggressive_attacker
}
add_trait_xp = {
trait = aggressive_attacker
value = 5
}
}
else = {
add_trait = aggressive_attacker
}
}
# Unyielding Defender
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_unyielding_defender }
}
if = {
limit = {
has_trait = unyielding_defender
}
add_trait_xp = {
trait = unyielding_defender
value = 5
}
}
else = {
add_trait = unyielding_defender
}
}
# Forder
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_forder }
}
if = {
limit = {
has_trait = forder
}
add_trait_xp = {
trait = forder
value = 5
}
}
else = {
add_trait = forder
}
}
# Flexible Leader
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_flexible_leader }
}
if = {
limit = {
has_trait = flexible_leader
}
add_trait_xp = {
trait = flexible_leader
value = 5
}
}
else = {
add_trait = flexible_leader
}
}
# Desert Warrior
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_desert_warrior }
}
if = {
limit = {
has_trait = desert_warrior
}
add_trait_xp = {
trait = desert_warrior
value = 5
}
}
else = {
add_trait = desert_warrior
}
}
# Jungle Stalker
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_jungle_stalker }
}
if = {
limit = {
has_trait = jungle_stalker
}
add_trait_xp = {
trait = jungle_stalker
value = 5
}
}
else = {
add_trait = jungle_stalker
}
}
# Reaver
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_reaver }
}
if = {
limit = {
has_trait = reaver
}
add_trait_xp = {
trait = reaver
value = 5
}
}
else = {
add_trait = reaver
}
}
# Reckless
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_reckless }
}
if = {
limit = {
has_trait = reckless
}
add_trait_xp = {
trait = reckless
value = 5
}
}
else = {
add_trait = reckless
}
}
# Holy Warrior
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_holy_warrior }
}
if = {
limit = {
has_trait = holy_warrior
}
add_trait_xp = {
trait = holy_warrior
value = 5
}
}
else = {
add_trait = holy_warrior
}
}
# Open Terrain Expert
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_open_terrain_expert }
}
if = {
limit = {
has_trait = open_terrain_expert
}
add_trait_xp = {
trait = open_terrain_expert
value = 5
}
}
else = {
add_trait = open_terrain_expert
}
}
# Rough Terrain Expert
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_rough_terrain_expert }
}
if = {
limit = {
has_trait = rough_terrain_expert
}
add_trait_xp = {
trait = rough_terrain_expert
value = 5
}
}
else = {
add_trait = rough_terrain_expert
}
}
# Forest Fighter
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_forest_fighter }
}
if = {
limit = {
has_trait = forest_fighter
}
add_trait_xp = {
trait = forest_fighter
value = 5
}
}
else = {
add_trait = forest_fighter
}
}
# Cautious Leader
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_cautious_leader }
}
if = {
limit = {
has_trait = cautious_leader
}
add_trait_xp = {
trait = cautious_leader
value = 5
}
}
else = {
add_trait = cautious_leader
}
}
# Organizer
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_organizer }
}
if = {
limit = {
has_trait = organizer
}
add_trait_xp = {
trait = organizer
value = 5
}
}
else = {
add_trait = organizer
}
}
# Winter Soldier
else_if = {
limit = {
scope:scheme = { has_variable = mentoring_winter_soldier }
}
if = {
limit = {
has_trait = winter_soldier
}
add_trait_xp = {
trait = winter_soldier
value = 5
}
}
else = {
add_trait = winter_soldier
}
}
}
}
}
# Outcome event - You did not make progress
mentoring_scheme_event.0002 = {
hidden = yes
immediate = {
send_interface_message = {
type = mentoring_scheme_bad_message
title = mentoring_failure_message
left_icon = scope:target
custom_tooltip = mentoring_failure_message_desc
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,603 @@
##########################
# NATURAL DISASTER CONTRACT EVENTS
##########################
namespace = tgp_natural_disaster_contract_event
### Food Shortage
tgp_natural_disaster_contract_event.0001 = {
type = character_event
title = tgp_natural_disaster_contract_event.0001.t
desc = tgp_natural_disaster_contract_event.0001.desc
theme = disaster
left_portrait = {
character = root
animation = stress
}
immediate = {
# Save the contract
random_character_active_contract = {
limit = {
has_task_contract_type = tgp_food_shortage
}
save_scope_as = ongoing_contract
# Save the location
task_contract_location = {
save_scope_as = natural_disaster_contract_destination
}
}
}
option = {
name = tgp_natural_disaster_contract_event.0001.a
custom_tooltip = tgp_natural_disaster_travel_to_contract_destination
governor_contract_travel_or_progress_effect = {
DESTINATION = scope:natural_disaster_contract_destination
ARRIVAL_EVENT = tgp_natural_disaster_contract_event.0002
}
ai_chance = {
base = 100
}
}
option = {
name = tgp_natural_disaster_contract_event.0001.b
scope:ongoing_contract = {
complete_task_contract = failure_standard
}
ai_chance = {
base = 0
}
}
}
tgp_natural_disaster_contract_event.0002 = {
type = character_event
title = tgp_natural_disaster_contract_event.0002.t
desc = tgp_natural_disaster_contract_event.0002.desc
theme = disaster
left_portrait = {
character = root
animation = stress
}
override_background = {
reference = ruined_holding
}
immediate = {
# Save the contract
random_character_active_contract = {
limit = {
has_task_contract_type = tgp_food_shortage
}
save_scope_as = ongoing_contract
# Save the location
task_contract_location = {
save_scope_as = ongoing_destination
}
}
generate_governance_outcome_effect = { OPTIONS = 4 }
}
option = { # Special governor trait option
name = tgp_natural_disaster_contract_event.0002.a
trigger = {
has_trait = governor # To show that the trait unlocks the option
exists = scope:governance_option_a
}
scope:ongoing_contract = {
complete_task_contract = distribution_of_food
}
ai_chance = {
base = 200
}
}
option = {
name = tgp_natural_disaster_contract_event.0002.b
trigger = { exists = scope:governance_option_b }
scope:ongoing_contract = {
complete_task_contract = pay_from_own_pocket
}
ai_chance = {
base = 100
}
}
option = {
name = tgp_natural_disaster_contract_event.0002.c
trigger = { exists = scope:governance_option_c }
scope:ongoing_contract = {
complete_task_contract = haggle_with_merchants
}
duel = {
skill = stewardship
value = decent_skill_rating
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = tgp_natural_disaster_contract_event.0002.c.tt.success
scope:ongoing_contract ?= {
complete_task_contract = haggle_with_merchants
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = tgp_natural_disaster_contract_event.0002.c.tt.failure
scope:ongoing_contract ?= {
complete_task_contract = haggle_with_merchants_failure
}
}
}
ai_chance = {
base = 50
}
}
option = {
name = tgp_natural_disaster_contract_event.0002.d
trigger = { exists = scope:governance_option_d }
scope:ongoing_contract = {
complete_task_contract = demand_food_from_nobles
}
ai_chance = {
base = 80
}
}
}
### Destroyed by Nature
tgp_natural_disaster_contract_event.0005 = {
type = character_event
title = tgp_natural_disaster_contract_event.0005.t
desc = tgp_natural_disaster_contract_event.0005.desc
theme = disaster
left_portrait = {
character = root
animation = stress
}
immediate = {
# Save the contract
random_character_active_contract = {
limit = {
has_task_contract_type = tgp_ravaged_buildings
}
save_scope_as = ongoing_contract
# Save the location
task_contract_location = {
save_scope_as = natural_disaster_contract_destination
}
}
}
option = {
name = tgp_natural_disaster_contract_event.0005.a
custom_tooltip = tgp_natural_disaster_travel_to_contract_destination
governor_contract_travel_or_progress_effect = {
DESTINATION = scope:natural_disaster_contract_destination
ARRIVAL_EVENT = tgp_natural_disaster_contract_event.0006
}
ai_chance = {
base = 100
}
}
option = {
name = tgp_natural_disaster_contract_event.0005.b
scope:ongoing_contract = {
complete_task_contract = failure_standard
}
ai_chance = {
base = 0
}
}
}
tgp_natural_disaster_contract_event.0006 = {
type = character_event
title = tgp_natural_disaster_contract_event.0006.t
desc = tgp_natural_disaster_contract_event.0006.desc
theme = disaster
left_portrait = {
character = root
animation = stress
}
override_background = {
reference = ruined_holding
}
immediate = {
# Save the contract
random_character_active_contract = {
limit = {
has_task_contract_type = tgp_ravaged_buildings
}
save_scope_as = ongoing_contract
# Save the location
task_contract_location = {
save_scope_as = ongoing_destination
}
}
generate_governance_outcome_effect = { OPTIONS = 4 }
}
option = { # Special governor trait option
name = tgp_natural_disaster_contract_event.0006.a
trigger = {
has_trait = governor # To show that the trait unlocks the option
exists = scope:governance_option_a
}
scope:ongoing_contract = {
complete_task_contract = rebuild_settlement
}
ai_chance = {
base = 200
}
}
option = {
name = tgp_natural_disaster_contract_event.0006.b
trigger = { exists = scope:governance_option_b }
scope:ongoing_contract = {
complete_task_contract = temporary_shelters
}
ai_chance = {
base = 100
}
}
option = {
name = tgp_natural_disaster_contract_event.0006.c
trigger = { exists = scope:governance_option_c }
duel = {
skills = { martial stewardship }
value = decent_skill_rating
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = tgp_natural_disaster_contract_event.0006.c.tt.desc.success
scope:ongoing_contract = {
complete_task_contract = remove_debris
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = tgp_natural_disaster_contract_event.0006.c.tt.desc.failure
scope:ongoing_contract = {
complete_task_contract = remove_debris_failure
}
}
}
ai_chance = {
base = 80
}
}
option = {
name = tgp_natural_disaster_contract_event.0006.d
trigger = { exists = scope:governance_option_d }
scope:ongoing_contract = {
complete_task_contract = labor_exchange
}
ai_chance = {
base = 50
}
}
}
### Treating the Innocents
tgp_natural_disaster_contract_event.0010 = {
type = character_event
title = tgp_natural_disaster_contract_event.0010.t
desc = tgp_natural_disaster_contract_event.0010.desc
theme = disaster
left_portrait = {
character = root
animation = stress
}
immediate = {
# Save the contract
random_character_active_contract = {
limit = {
has_task_contract_type = tgp_medieval_medicine
}
save_scope_as = ongoing_contract
# Save the location
task_contract_location = {
save_scope_as = natural_disaster_contract_destination
}
}
}
option = {
name = tgp_natural_disaster_contract_event.0010.a
custom_tooltip = tgp_natural_disaster_travel_to_contract_destination
governor_contract_travel_or_progress_effect = {
DESTINATION = scope:natural_disaster_contract_destination
ARRIVAL_EVENT = tgp_natural_disaster_contract_event.0011
}
ai_chance = {
base = 100
}
}
option = {
name = tgp_natural_disaster_contract_event.0010.b
scope:ongoing_contract = {
complete_task_contract = failure_standard
}
ai_chance = {
base = 0
}
}
}
tgp_natural_disaster_contract_event.0011 = {
type = character_event
title = tgp_natural_disaster_contract_event.0011.t
desc = tgp_natural_disaster_contract_event.0011.desc
theme = disaster
left_portrait = {
character = root
animation = stress
}
override_background = {
reference = ruined_holding
}
immediate = {
# Save the contract
random_character_active_contract = {
limit = {
has_task_contract_type = tgp_medieval_medicine
}
save_scope_as = ongoing_contract
# Save the location
task_contract_location = {
save_scope_as = ongoing_destination
}
}
generate_governance_outcome_effect = { OPTIONS = 4 }
}
option = { # Special governor trait option
name = tgp_natural_disaster_contract_event.0011.a
trigger = {
has_trait = governor # To show that the trait unlocks the option
exists = scope:governance_option_a
}
scope:ongoing_contract = {
complete_task_contract = assisting_physician
}
ai_chance = {
base = 200
}
}
option = {
name = tgp_natural_disaster_contract_event.0011.b
trigger = { exists = scope:governance_option_b }
duel = {
skill = learning
value = decent_skill_rating
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = tgp_natural_disaster_contract_event.0011.b.tt.success
scope:ongoing_contract = {
complete_task_contract = medical_assistance
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = tgp_natural_disaster_contract_event.0011.b.tt.failure
scope:ongoing_contract = {
complete_task_contract = medical_assistance_failure
}
}
}
ai_chance = {
base = 50
}
}
option = {
name = tgp_natural_disaster_contract_event.0011.c
trigger = { exists = scope:governance_option_c }
scope:ongoing_contract = {
complete_task_contract = prayers_to_the_people
}
ai_chance = {
base = 100
}
}
option = {
name = tgp_natural_disaster_contract_event.0011.d
trigger = { exists = scope:governance_option_d }
scope:ongoing_contract = {
complete_task_contract = better_pay_up
}
ai_chance = {
base = 100
}
}
}
### Provisional Relocation
tgp_natural_disaster_contract_event.0015 = {
type = character_event
title = tgp_natural_disaster_contract_event.0015.t
desc = tgp_natural_disaster_contract_event.0015.desc
theme = disaster
left_portrait = {
character = root
animation = stress
}
immediate = {
# Save the contract
random_character_active_contract = {
limit = {
has_task_contract_type = tgp_disaster_displacement
}
save_scope_as = ongoing_contract
# Save the location
task_contract_location = {
save_scope_as = natural_disaster_contract_destination
}
}
}
option = {
name = tgp_natural_disaster_contract_event.0015.a
custom_tooltip = tgp_natural_disaster_travel_to_contract_destination
governor_contract_travel_or_progress_effect = {
DESTINATION = scope:natural_disaster_contract_destination
ARRIVAL_EVENT = tgp_natural_disaster_contract_event.0016
}
ai_chance = {
base = 100
}
}
option = {
name = tgp_natural_disaster_contract_event.0015.b
scope:ongoing_contract = {
complete_task_contract = failure_standard
}
ai_chance = {
base = 0
}
}
}
tgp_natural_disaster_contract_event.0016 = {
type = character_event
title = tgp_natural_disaster_contract_event.0016.t
desc = tgp_natural_disaster_contract_event.0016.desc
theme = disaster
left_portrait = {
character = root
animation = stress
}
override_background = {
reference = ruined_holding
}
immediate = {
# Save the contract
random_character_active_contract = {
limit = {
has_task_contract_type = tgp_disaster_displacement
}
save_scope_as = ongoing_contract
# Save the location
task_contract_location = {
save_scope_as = ongoing_destination
}
}
generate_governance_outcome_effect = { OPTIONS = 4 }
}
option = { # Special governor trait option
name = tgp_natural_disaster_contract_event.0016.a
trigger = {
has_trait = governor # To show that the trait unlocks the option
exists = scope:governance_option_a
}
duel = {
skill = martial
value = decent_skill_rating
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = tgp_natural_disaster_contract_event.0016.a.tt.desc.success
scope:ongoing_contract = {
complete_task_contract = deployed_troops
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = tgp_natural_disaster_contract_event.0016.a.tt.desc.failure
scope:ongoing_contract = {
complete_task_contract = deployed_troops_failure
}
}
}
ai_chance = {
base = 200
}
}
option = {
name = tgp_natural_disaster_contract_event.0016.b
trigger = { exists = scope:governance_option_b }
scope:ongoing_contract = {
complete_task_contract = setting_an_example
}
ai_chance = {
base = 80
}
}
option = {
name = tgp_natural_disaster_contract_event.0016.c
trigger = { exists = scope:governance_option_c }
scope:ongoing_contract = {
complete_task_contract = confiscate_for_personal_inspection
}
ai_chance = {
base = 50
}
}
option = {
name = tgp_natural_disaster_contract_event.0016.d
trigger = { exists = scope:governance_option_d }
scope:ongoing_contract = {
complete_task_contract = paying_off_the_looters
}
ai_chance = {
base = 100
}
}
}

View file

@ -0,0 +1,905 @@
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
}
}
}
}

View file

@ -0,0 +1,289 @@
namespace = tgp_silk_road_events
# visit_silk_road_market_decision
tgp_silk_road_events.0010 = {
type = character_event
title = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
scope:market_temp = title:c_jingzhao # Chang'an
scope:market_temp = title:c_shazhou # Dunhuang
}
}
desc = tgp_silk_road_events.0010.t.market
}
triggered_desc = {
trigger = { scope:market_temp = title:c_lhasa } # Lhasa
desc = tgp_silk_road_events.0010.t.khrom
}
triggered_desc = {
trigger = { scope:market_temp = title:c_dvin } # Dvin
desc = tgp_silk_road_events.0010.t.shuka
}
desc = tgp_silk_road_events.0010.t
}
}
desc = tgp_silk_road_events.0010.desc
theme = silk_road
override_background = { reference = market }
left_portrait = {
character = root
animation = steward
}
immediate = {
culture = { save_scope_as = culture_temp }
save_scope_as = new_trinket # Purely for error suppression
}
option = {
name = tgp_silk_road_events.0010.a
duel = {
skills = { learning stewardship }
value = average_skill_rating
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
culture = {
add_to_variable_list = {
name = silk_road_unlocked_innovations
target = scope:innovation_temp
}
}
every_player = {
limit = { culture = root.culture }
send_interface_toast = {
type = msg_silk_road_innovation_spread
title = msg_silk_road_innovation_spread_title
desc = msg_silk_road_innovation_visit_desc
left_icon = root
right_icon = scope:market_temp
custom_tooltip = msg_silk_road_innovation_spread_tt
}
}
}
#
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = SILK_ROAD_MARKET_EMPTY_HANDED
send_interface_toast = {
title = tgp_silk_road_events.0010.a_nada
type = event_toast_effect_bad
left_icon = root
}
}
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_rationality = 1
}
}
}
option = {
name = tgp_silk_road_events.0010.b
random_list = {
desc = tgp_silk_road_events.0010.b_tt
# get a famed-quality or masterwork-quality item
10 = {
desc = tgp_silk_road_events.0010.b_trinket
hidden_effect = {
root = {
add_character_flag = { flag = used_in_feast_default.1016 } # uncommon, famed, masterwork items
generate_trinket_effect = {
TRINKET_RECEIVER = root
TRINKET_GIVER = root
GRAB_ALL_TRINKETS = yes
HISTORY_TYPE = given_unknown
}
remove_character_flag = used_in_feast_default.1016
}
}
send_interface_toast = {
title = tgp_silk_road_events.0010.b_trinket
type = event_toast_effect_good
left_icon = root
right_icon = scope:new_trinket
scope:new_trinket = {
set_owner = root
}
}
custom_tooltip = purchase_artifact_famed_tt
}
# make a profit
25 = {
desc = tgp_silk_road_events.0010.b_big_gold
send_interface_toast = {
title = tgp_silk_road_events.0010.b_big_gold
type = event_toast_effect_good
left_icon = root
add_short_term_gold = massive_gold_value
}
}
# break even
40 = {
desc = tgp_silk_road_events.0010.b_small_gold
send_interface_toast = {
title = tgp_silk_road_events.0010.b_small_gold
type = event_toast_effect_good
left_icon = root
add_short_term_gold = major_gold_value # should be the same as the cost of the decision to visit a market
}
}
# get nothing, and if you're greedy, get stressed because you got nothing
25 = {
desc = tgp_silk_road_events.0010.a_nada
send_interface_toast = {
title = tgp_silk_road_events.0010.a_nada
type = event_toast_effect_bad
left_icon = root
}
stress_impact = {
greedy = minor_stress_impact_gain
}
}
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = 1
ai_greed = 1
}
}
}
}
# yearly event for spreading innovations from markets to holder's culture
scripted_effect silk_road_market_spread_innovation_effect = {
# Find relevant innovation
scope:market_temp ?= {
random_county_situation_sub_region = {
limit = {
situation_sub_region_has_county = scope:market_temp
OR = {
sub_region_current_phase = phase_exceptional_bounty
sub_region_current_phase = phase_steady_trading
sub_region_current_phase = phase_hardship
}
}
save_temporary_scope_as = sub_region_temp
var:innovation ?= { save_temporary_scope_as = innovation_temp }
}
}
# Unlock for culture if relevant
if = {
limit = {
NOR = {
scope:culture_temp = {
any_in_list = {
variable = silk_road_unlocked_innovations
this = scope:innovation_temp
}
}
scope:innovation_temp = { is_known_by_culture = scope:culture_temp }
}
}
every_player = {
limit = { culture = scope:culture_temp }
send_interface_message = {
type = msg_silk_road_innovation_spread
title = msg_silk_road_innovation_spread_title
desc = msg_silk_road_innovation_spread_desc
left_icon = scope:market_temp.holder
right_icon = scope:market_temp
custom_tooltip = msg_silk_road_innovation_spread_tt
}
}
scope:culture_temp = {
add_to_variable_list = {
name = silk_road_unlocked_innovations
target = scope:innovation_temp
}
}
}
}
tgp_silk_road_events.0100 = {
hidden = yes
type = character_event
trigger = {
OR = {
has_title = title:c_jingzhao # Chang'an
has_title = title:c_lhasa # Lhasa
has_title = title:c_lahur # Lahur
has_title = title:c_shazhou # Dunhuang
has_title = title:c_khiva # Khiva
has_title = title:c_dvin # Dvin
}
}
immediate = {
culture = { save_temporary_scope_as = culture_temp }
# Find market for yearly if relevant
if = {
limit = { NOT = { exists = scope:title } }
title:c_jingzhao = { add_to_list = potential_markets } # Chang'an
title:c_lhasa = { add_to_list = potential_markets } # Lhasa
title:c_lahur = { add_to_list = potential_markets } # Lahur
title:c_shazhou = { add_to_list = potential_markets } # Dunhuang
title:c_khiva = { add_to_list = potential_markets } # Khiva
title:c_dvin = { add_to_list = potential_markets } # Dvin
every_in_list = {
list = potential_markets
limit = {
save_temporary_scope_as = county_temp
holder = root
any_county_situation_sub_region = {
situation_sub_region_has_county = scope:county_temp
OR = {
sub_region_current_phase = phase_exceptional_bounty
sub_region_current_phase = phase_steady_trading
sub_region_current_phase = phase_hardship
}
# Has not spread to this culture before or is known by this culture
var:innovation ?= {
save_temporary_scope_as = innovation_temp
NOR = {
scope:culture_temp = {
any_in_list = {
variable = silk_road_unlocked_innovations
this = scope:innovation_temp
}
}
is_known_by_culture = scope:culture_temp
}
}
}
}
save_temporary_scope_as = market_temp
silk_road_market_spread_innovation_effect = yes
}
}
# Use gained market otherwise
else = {
scope:title = { save_temporary_scope_as = market_temp }
silk_road_market_spread_innovation_effect = yes
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,320 @@
namespace = tgp_travel_danger_events
#You encounter an orphan while traveling trough an area struck by natural disaster
tgp_travel_danger_events.0001 = {
type = character_event
title = tgp_travel_danger_events.0001.t
desc = {
desc = tgp_travel_danger_events.0001.intro
#Triggered desc based on success
first_valid = {
triggered_desc ={
trigger = {
location = {
county = {
any_county_situation = {
situation_type = natural_disaster_flood
}
}
}
}
desc = tgp_travel_danger_events.0001.flood
}
triggered_desc ={
trigger = {
location = {
county = {
any_county_situation = {
situation_type = natural_disaster_earthquake
}
}
}
}
desc = tgp_travel_danger_events.0001.earthquake
}
}
desc = tgp_travel_danger_events.0001.desc
}
theme = travel_danger
override_background = {
trigger = {
location = {
geographical_region = world_asia
county = {
any_county_situation = {
situation_type = natural_disaster_earthquake
}
}
}
}
reference = tgp_ruined_holding
}
override_background = {
trigger = {
location = {
geographical_region = world_asia
county = {
any_county_situation = {
situation_type = natural_disaster_flood
}
}
}
}
reference = tgp_overflowing_river
}
override_background = {
trigger = {
location = {
NOT = { geographical_region = world_asia }
county = {
any_county_situation = {
situation_type = natural_disaster_earthquake
}
}
}
}
reference = burning_building
}
override_background = {
trigger = {
location = {
NOT = { geographical_region = world_asia }
county = {
any_county_situation = {
situation_type = natural_disaster_flood
}
}
}
}
reference = bp3_riverside
}
override_effect_2d = {
trigger = { scope:disaster_situation = { situation_type = natural_disaster_earthquake } }
reference = smoke
}
override_effect_2d = {
trigger = { scope:disaster_situation = { situation_type = natural_disaster_flood } }
reference = rain
}
left_portrait = {
character = root
triggered_animation = {
trigger = {
has_trait_benevolent_trigger = yes
}
animation = stunned
}
triggered_animation = {
trigger = {
has_trait_malicious_trigger = yes
}
animation = dismissal
}
animation = disbelief
camera = camera_event_scheme_left
}
right_portrait = {
character = scope:peasant_character_child
animation = sadness
camera = camera_event_right_pointing_left
}
cooldown = { years = 20 }
trigger = {
is_location_valid_for_travel_event_on_land = yes
is_available_travelling_adult = yes
location = {
county = {
any_county_situation = {
tgp_natural_disaster_situation_is_disaster_trigger = yes
}
}
}
}
immediate = {
location.county = {
random_county_situation = {
limit = {
tgp_natural_disaster_situation_is_disaster_trigger = yes
}
save_scope_as = disaster_situation
}
}
if = {
limit = {
any_pool_character = {
province = root.location
age = { 8 12 }
has_trait = diligent
faith = root.location.faith
culture = root.location.culture
}
}
random_pool_character = {
province = root.location
limit = {
age = { 8 12 }
has_trait = diligent
faith = root.location.faith
culture = root.location.culture
}
save_scope_as = peasant_character_child
}
}
else = {
create_character = {
template = peasant_child_character
age = { 8 12 }
trait = diligent
faith = root.location.faith
culture = root.location.culture
location = root.location
save_scope_as = peasant_character_child
}
}
scope:peasant_character_child = {
remove_character_flag ?= peasant_outfit
}
}
#Send men to clear the rubble
option = {
name = tgp_travel_danger_events.0001.a
current_travel_plan = {
delay_travel_plan = { days = 10 }
}
if = {
limit = {
government_allows = merit
}
change_merit = medium_merit_gain
}
else = {
add_prestige = medium_prestige_gain
}
stress_impact = {
impatient = medium_stress_impact_gain
compassionate = medium_stress_impact_loss
}
scope:peasant_character_child = {
if = {
limit = {
is_pool_character = no
}
silent_disappearance_ai_effect = yes
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 1
ai_vengefulness = -1
}
modifier = {
factor = 0
has_trait = impatient
}
}
}
#Take the child on as a ward
option = {
name = tgp_travel_danger_events.0001.b
trigger = {
num_of_relation_ward < 2
}
show_as_tooltip = { add_courtier = scope:peasant_character_child }
hidden_effect = {
scope:peasant_character_child = {
add_to_court_and_entourage_effect = yes
}
}
scope:peasant_character_child = { set_relation_guardian = root }
if = {
limit = {
root.current_travel_plan = {
any_entourage_character = { has_trait = compassionate }
}
}
root.current_travel_plan = {
every_entourage_character = {
custom = custom.every_compassionate_entourage_character
limit = { has_trait = compassionate }
add_opinion = {
target = root
modifier = impressed_by_kindness
opinion = 15
}
}
}
}
if = {
limit = { faith = { trait_is_virtue = compassionate } }
add_piety = medium_piety_gain
}
stress_impact = {
callous = major_stress_impact_gain
sadistic = major_stress_impact_gain
compassionate = major_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 1
ai_vengefulness = -1
}
modifier = {
factor = 5
has_trait = compassionate
}
modifier = {
factor = 5
OR = {
has_trait = wrathful
has_trait = callous
has_trait = sadistic
}
}
}
}
#Ignore the child
option = {
name = tgp_travel_danger_events.0001.c
current_travel_plan ?= {
add_destination_progress = { days = 5 }
}
scope:peasant_character_child = {
if = {
limit = {
is_pool_character = no
}
silent_disappearance_ai_effect = yes
}
}
stress_impact = {
compassionate = major_stress_impact_gain
impatient = major_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = -1
ai_vengefulness = 1
}
modifier = {
factor = 0
has_trait = compassionate
}
}
}
}

File diff suppressed because it is too large Load diff