795 lines
18 KiB
Text
795 lines
18 KiB
Text
########################
|
|
# Rites in Local Shrine
|
|
########################
|
|
namespace = local_rites
|
|
#shrine_location = Where we perform the rites (AKA the destination)
|
|
|
|
scripted_trigger has_two_local_shrine_options_trigger = {
|
|
# Stops after we've found 2 good places for a sacrifice (don't want to overload the player).
|
|
calc_true_if = {
|
|
amount >= 2
|
|
exists = scope:hills_location
|
|
exists = scope:mountains_location
|
|
exists = scope:temple_holding_location
|
|
exists = scope:forest_location
|
|
exists = scope:point_of_interest_location
|
|
exists = scope:mount_tai_location
|
|
}
|
|
}
|
|
|
|
scripted_effect local_shrine_at_location_effect = {
|
|
set_variable = {
|
|
name = shrine_location
|
|
value = scope:$SHRINE$_location
|
|
}
|
|
scope:$SHRINE$_location = { #to show the location name in the difficulty custom tooltip
|
|
save_scope_as = tooltip_loc
|
|
}
|
|
start_travel_plan = {
|
|
destination = var:shrine_location
|
|
on_travel_planner_cancel_event = local_rites.10
|
|
on_arrival_event = local_rites.2
|
|
on_arrival_destinations = all_but_last
|
|
}
|
|
add_character_modifier = {
|
|
modifier = visit_local_shrine_modifier
|
|
days = local_shrine_duration
|
|
}
|
|
add_character_flag = {
|
|
flag = local_shrine_rite
|
|
years = 1 #This is a fallback, it is also cleared at location
|
|
}
|
|
}
|
|
|
|
# If the player exits the travel planning UI, this event fires reseting the decision cooldown and removing variables
|
|
local_rites.10 = {
|
|
hidden = yes
|
|
trigger = {
|
|
OR = {
|
|
exists = var:shrine_location
|
|
has_character_flag = local_shrine_rite
|
|
}
|
|
}
|
|
immediate = {
|
|
current_travel_plan ?= { cancel_travel_plan = yes }
|
|
remove_decision_cooldown = visit_local_shrine_decision
|
|
remove_variable = shrine_location
|
|
remove_character_flag = local_shrine_rite
|
|
}
|
|
}
|
|
|
|
local_rites.1 = {
|
|
type = character_event
|
|
title = local_rites.1.t
|
|
desc = local_rites.1.desc
|
|
theme = faith
|
|
|
|
override_background = {
|
|
reference = throne_room
|
|
}
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = personality_rational
|
|
}
|
|
|
|
immediate = {
|
|
# Stop characters from planning multiple activities at once.
|
|
add_character_flag = {
|
|
flag = planning_an_activity
|
|
days = 30
|
|
}
|
|
|
|
capital_barony.title_province = {
|
|
save_scope_as = capital_location
|
|
}
|
|
|
|
# Pick out possible locations
|
|
# First any Special Building Shrines
|
|
# If I am the Emperor of China I go to Mount Tai
|
|
if = {
|
|
limit = {
|
|
#I am the emperor
|
|
has_title = title:h_china
|
|
#My dynasty did not perform this sacrifice before
|
|
dynasty = {
|
|
NOT = { has_variable = fengshan_performed }
|
|
}
|
|
#The Cycle is stable
|
|
OR = {
|
|
situation:dynastic_cycle = {
|
|
situation_current_phase = situation_dynastic_cycle_phase_stability_expansion
|
|
}
|
|
situation:dynastic_cycle = {
|
|
situation_current_phase = situation_dynastic_cycle_phase_stability_advancement
|
|
}
|
|
}
|
|
title:b_xuchang = {
|
|
this != root.capital_barony
|
|
holder.top_liege = root
|
|
}
|
|
}
|
|
title:b_xuchang = {
|
|
title_province = { save_scope_as = mount_tai_location }
|
|
}
|
|
}
|
|
# Everyone else
|
|
if = {
|
|
limit = {
|
|
has_two_local_shrine_options_trigger = no
|
|
}
|
|
random_sub_realm_barony = {
|
|
limit = {
|
|
this != root.capital_barony
|
|
title_province = {
|
|
has_building_with_flag = travel_point_of_interest_religious
|
|
}
|
|
}
|
|
title_province = { save_scope_as = point_of_interest_location }
|
|
}
|
|
}
|
|
#Now we look for Mountains
|
|
if = {
|
|
limit = {
|
|
has_two_local_shrine_options_trigger = no
|
|
}
|
|
random_sub_realm_barony = {
|
|
limit = {
|
|
this != root.capital_barony
|
|
trigger_if = {
|
|
limit = { exists = scope:point_of_interest_location }
|
|
title_province != scope:point_of_interest_location
|
|
}
|
|
title_province = {
|
|
OR = {
|
|
terrain = mountains
|
|
terrain = desert_mountains
|
|
}
|
|
}
|
|
}
|
|
title_province = { save_scope_as = mountains_location }
|
|
}
|
|
}
|
|
#Now we look for any Temple Holding
|
|
if = {
|
|
limit = {
|
|
has_two_local_shrine_options_trigger = no
|
|
}
|
|
random_sub_realm_barony = {
|
|
limit = {
|
|
this != root.capital_barony
|
|
trigger_if = {
|
|
limit = { exists = scope:point_of_interest_location }
|
|
title_province != scope:point_of_interest_location
|
|
}
|
|
title_province = {
|
|
has_holding_type = church_holding
|
|
}
|
|
}
|
|
title_province = { save_scope_as = temple_holding_location }
|
|
}
|
|
}
|
|
#Now we look for Hills
|
|
if = {
|
|
limit = {
|
|
has_two_local_shrine_options_trigger = no
|
|
}
|
|
random_sub_realm_barony = {
|
|
limit = {
|
|
this != root.capital_barony
|
|
trigger_if = {
|
|
limit = { exists = scope:point_of_interest_location }
|
|
title_province != scope:point_of_interest_location
|
|
}
|
|
title_province = {
|
|
OR = {
|
|
terrain = hills
|
|
terrain = terraced_hills
|
|
}
|
|
}
|
|
}
|
|
title_province = { save_scope_as = hills_location }
|
|
}
|
|
}
|
|
#Any Forests?
|
|
if = {
|
|
limit = {
|
|
has_two_local_shrine_options_trigger = no
|
|
}
|
|
random_sub_realm_barony = {
|
|
limit = {
|
|
this != root.capital_barony
|
|
trigger_if = {
|
|
limit = { exists = scope:point_of_interest_location }
|
|
title_province != scope:point_of_interest_location
|
|
}
|
|
title_province = {
|
|
OR = {
|
|
terrain = forest
|
|
terrain = taiga
|
|
}
|
|
}
|
|
}
|
|
title_province = { save_scope_as = forest_location }
|
|
}
|
|
}
|
|
#If we found nothing we look to the top realm
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:point_of_interest_location } #Because this is the one we try to save.
|
|
has_two_local_shrine_options_trigger = no
|
|
}
|
|
top_liege = {
|
|
random_sub_realm_barony = {
|
|
limit = {
|
|
this != root.capital_barony
|
|
this.kingdom = root.capital_barony.kingdom #If possible we should keep close to where we started
|
|
title_province = {
|
|
has_building_with_flag = travel_point_of_interest_religious
|
|
}
|
|
}
|
|
alternative_limit = {
|
|
this != root.capital_barony
|
|
title_province = {
|
|
has_building_with_flag = travel_point_of_interest_religious
|
|
}
|
|
}
|
|
title_province = { save_scope_as = point_of_interest_location }
|
|
}
|
|
}
|
|
}
|
|
#We also try this a second time for landless vassals.
|
|
if = {
|
|
limit = {
|
|
has_two_local_shrine_options_trigger = no
|
|
NOT = { exists = scope:point_of_interest_location }
|
|
}
|
|
top_liege = {
|
|
random_sub_realm_barony = {
|
|
limit = {
|
|
this != root.capital_barony
|
|
this.kingdom = root.capital_barony.kingdom #If possible we should keep close to where we started
|
|
title_province = {
|
|
has_building_with_flag = travel_point_of_interest_religious
|
|
}
|
|
}
|
|
alternative_limit = {
|
|
this != root.capital_barony
|
|
title_province = {
|
|
has_building_with_flag = travel_point_of_interest_religious
|
|
}
|
|
}
|
|
title_province = { save_scope_as = point_of_interest_location }
|
|
}
|
|
}
|
|
}
|
|
#And last but not least we try to save one for adventurers
|
|
if = {
|
|
limit = {
|
|
has_two_local_shrine_options_trigger = no
|
|
NOT = { exists = scope:point_of_interest_location }
|
|
exists = location.county
|
|
}
|
|
location.county.holder.top_liege = {
|
|
random_sub_realm_barony = {
|
|
limit = {
|
|
this != root.capital_barony
|
|
this.kingdom = root.capital_barony.kingdom #If possible we should keep close to where we started
|
|
title_province = {
|
|
has_building_with_flag = travel_point_of_interest_religious
|
|
}
|
|
}
|
|
alternative_limit = {
|
|
this != root.capital_barony
|
|
title_province = {
|
|
has_building_with_flag = travel_point_of_interest_religious
|
|
}
|
|
}
|
|
title_province = { save_scope_as = point_of_interest_location }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Option 1: Rituals at home - Low Impact
|
|
option = { #This option does not set the flag for being unavailable
|
|
name = local_rites.1.home
|
|
set_variable = {
|
|
name = shrine_location
|
|
value = scope:capital_location
|
|
}
|
|
add_character_modifier = {
|
|
modifier = visit_local_shrine_modifier
|
|
days = local_shrine_duration
|
|
}
|
|
scope:capital_location = { #to show the location name in the difficulty custom tooltip
|
|
save_scope_as = tooltip_loc
|
|
}
|
|
custom_tooltip = local_rites.1.home.tt
|
|
trigger_event = local_rites.3 #When you sacrifice at home this is instant.
|
|
}
|
|
|
|
# I am the Emperor Headed for Mt Tai
|
|
option = {
|
|
trigger = {
|
|
exists = scope:mount_tai_location
|
|
scope:mount_tai_location.barony = title:b_xuchang
|
|
}
|
|
name = local_rites.1.mount_tai
|
|
local_shrine_at_location_effect = { SHRINE = mount_tai }
|
|
custom_tooltip = local_rites.1.fengshan.tt
|
|
}
|
|
# Visit Famous Shrine - High Impact, High Offering Expectation
|
|
option = {
|
|
trigger = { exists = scope:point_of_interest_location }
|
|
name = local_rites.1.major_shrine
|
|
local_shrine_at_location_effect = { SHRINE = point_of_interest }
|
|
custom_tooltip = local_rites.1.major_shrine.tt
|
|
}
|
|
|
|
# Shrine in the hills. Medium Impact
|
|
option = {
|
|
trigger = { exists = scope:hills_location }
|
|
name = local_rites.1.hills
|
|
local_shrine_at_location_effect = { SHRINE = hills }
|
|
}
|
|
|
|
# Shrine in the forest. Medium Impact
|
|
option = {
|
|
trigger = { exists = scope:forest_location }
|
|
name = local_rites.1.forest
|
|
local_shrine_at_location_effect = { SHRINE = forest }
|
|
}
|
|
|
|
# Shrine in the mountains. Medium Impact
|
|
option = {
|
|
trigger = { exists = scope:mountains_location }
|
|
name = local_rites.1.mountains
|
|
local_shrine_at_location_effect = { SHRINE = mountains }
|
|
}
|
|
|
|
# Shrine in the temple holding - High Impact, High Offerings.
|
|
option = {
|
|
trigger = { exists = scope:temple_holding_location }
|
|
name = local_rites.1.temple_holding
|
|
local_shrine_at_location_effect = { SHRINE = temple_holding }
|
|
custom_tooltip = local_rites.1.major_shrine.tt
|
|
}
|
|
|
|
# Option 3: Opt-out
|
|
option = {
|
|
name = local_shrine.optout
|
|
flavor = local_shrine.optout.flavor
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
|
|
remove_decision_cooldown = visit_local_shrine_decision
|
|
}
|
|
|
|
after = {
|
|
remove_character_flag = planning_an_activity
|
|
trigger_event = local_rites.5
|
|
}
|
|
}
|
|
|
|
local_rites.5 = {
|
|
hidden = yes
|
|
immediate = {
|
|
hidden_effect = {
|
|
random_courtier = { #We want to bring a priest if we can, if not we still want at least one character.
|
|
limit = {
|
|
is_adult = yes
|
|
is_clergy = yes
|
|
is_diarch = no
|
|
is_travelling = no
|
|
}
|
|
alternative_limit = {
|
|
is_adult = yes
|
|
is_diarch = no
|
|
is_travelling = no
|
|
}
|
|
save_scope_as = companion
|
|
}
|
|
root.current_travel_plan ?= {
|
|
add_companion = scope:companion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
local_rites.2 = {
|
|
hidden = yes
|
|
immediate = {
|
|
send_interface_toast = {
|
|
title = local_rites.2.toast
|
|
left_icon = root
|
|
current_travel_plan = {
|
|
delay_travel_plan = { days = local_shrine_duration }
|
|
}
|
|
}
|
|
trigger_event = {
|
|
id = local_rites.3
|
|
days = local_shrine_duration
|
|
}
|
|
}
|
|
}
|
|
|
|
local_rites.3 = { #Destination - Making a Sacrifice
|
|
type = character_event
|
|
title = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_title = title:h_china
|
|
var:shrine_location.barony = title:b_xuchang
|
|
}
|
|
desc = local_rites.3.t.fengshan #Fang Shan
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
OR = {
|
|
faith = { is_in_family = rf_sinitic }
|
|
faith = faith:pundarika
|
|
faith = faith:mantrayana
|
|
faith = faith:dhyana
|
|
faith = faith:sukhavati
|
|
faith = faith:avatamsaka
|
|
faith = faith:maitreya
|
|
faith = faith:vinaya
|
|
faith = faith:yogacara
|
|
faith = faith:acharya
|
|
}
|
|
}
|
|
}
|
|
desc = local_rites.3.t #Sacrificing to Heaven
|
|
}
|
|
desc = local_rites.3.fallback.t #More Generic Version
|
|
}
|
|
}
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { scope:at_home = yes }
|
|
desc = local_rites.3.desc_at_home
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_title = title:h_china
|
|
var:shrine_location.barony = title:b_xuchang
|
|
}
|
|
desc = local_rites.3.desc_mt_tai_huangdi
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:shrine_location = {
|
|
has_building_with_flag = travel_point_of_interest_religious
|
|
}
|
|
}
|
|
desc = local_rites.3.desc_important_shrine
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:shrine_location = {
|
|
has_holding_type = church_holding
|
|
}
|
|
}
|
|
desc = local_rites.3.desc_holding_shrine
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:shrine_location = {
|
|
OR = {
|
|
terrain = mountains
|
|
terrain = desert_mountains
|
|
}
|
|
}
|
|
}
|
|
desc = local_rites.3.desc_mountain_shrine
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:shrine_location = {
|
|
OR = {
|
|
terrain = forest
|
|
terrain = taiga
|
|
}
|
|
}
|
|
}
|
|
desc = local_rites.3.desc_forest_shrine
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:shrine_location = {
|
|
terrain = hills
|
|
}
|
|
}
|
|
desc = local_rites.3.desc_hills_shrine
|
|
}
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_trait = cynical
|
|
}
|
|
desc = local_rites.3.desc_cynical
|
|
}
|
|
}
|
|
theme = faith
|
|
override_background = { #Fengshan
|
|
trigger = {
|
|
has_title = title:h_china
|
|
var:shrine_location.barony = title:b_xuchang
|
|
}
|
|
reference = mpo_steppe_evening
|
|
}
|
|
override_background = {
|
|
trigger = { scope:at_home = yes }
|
|
reference = tgp_temple_asia
|
|
}
|
|
override_background = {
|
|
trigger = {
|
|
scope:at_home = no
|
|
scope:shrine_location = {
|
|
OR = {
|
|
has_building_with_flag = travel_point_of_interest_religious
|
|
has_holding_type = church_holding
|
|
}
|
|
}
|
|
}
|
|
reference = tgp_holysite_asia
|
|
}
|
|
override_background = {
|
|
trigger = {
|
|
scope:at_home = no
|
|
scope:shrine_location = {
|
|
NOR = {
|
|
has_building_with_flag = travel_point_of_interest_religious
|
|
has_holding_type = church_holding
|
|
}
|
|
}
|
|
}
|
|
reference = wilderness_scope
|
|
}
|
|
left_portrait = {
|
|
character = root
|
|
animation = personality_zealous
|
|
}
|
|
right_portrait = {
|
|
character = scope:companion
|
|
animation = pondering
|
|
}
|
|
|
|
immediate = {
|
|
|
|
if = { #First we try to get a travel companion
|
|
limit = {
|
|
current_travel_plan ?= {
|
|
any_entourage_character = {
|
|
NOT = { this = root }
|
|
is_adult = yes
|
|
}
|
|
}
|
|
}
|
|
current_travel_plan ?= {
|
|
random_entourage_character = {
|
|
limit = {
|
|
NOT = { this = root }
|
|
is_clergy = yes
|
|
is_adult = yes
|
|
}
|
|
alternative_limit = {
|
|
NOT = { this = root }
|
|
is_adult = yes
|
|
}
|
|
save_scope_as = companion
|
|
}
|
|
}
|
|
}
|
|
else_if = { #If you are travelling without adult companions we get a courtier/follower.
|
|
limit = {
|
|
any_courtier = {
|
|
is_adult = yes
|
|
}
|
|
}
|
|
random_courtier = {
|
|
limit = {
|
|
is_adult = yes
|
|
is_clergy = yes
|
|
}
|
|
alternative_limit = {
|
|
is_adult = yes
|
|
}
|
|
save_scope_as = companion
|
|
}
|
|
}
|
|
else = { #Your court is somehow also empty. If we get here it is going to be a bit weird. But we shouldn't.
|
|
random_pool_character = {
|
|
province = root.location
|
|
limit = {
|
|
is_adult = yes
|
|
}
|
|
save_scope_as = companion
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
NOT = {
|
|
exists = var:shrine_location
|
|
}
|
|
}
|
|
set_variable = {
|
|
name = shrine_location
|
|
value = root.location
|
|
}
|
|
}
|
|
var:shrine_location = {
|
|
save_scope_as = shrine_location
|
|
save_scope_as = background_wilderness_scope
|
|
}
|
|
|
|
# Are we at home?
|
|
if = {
|
|
limit = {
|
|
exists = capital_province
|
|
scope:shrine_location = root.capital_province
|
|
}
|
|
save_scope_value_as = {
|
|
name = at_home
|
|
value = yes
|
|
}
|
|
}
|
|
else = {
|
|
save_scope_value_as = {
|
|
name = at_home
|
|
value = no
|
|
}
|
|
}
|
|
|
|
#Are we at Mt Tai? Am I the Emperor?
|
|
if = {
|
|
limit = {
|
|
has_title = title:h_china
|
|
var:shrine_location.barony = title:b_xuchang
|
|
}
|
|
hidden_effect = {
|
|
dynasty = { set_variable = fengshan_performed }
|
|
}
|
|
}
|
|
}
|
|
|
|
option = {
|
|
name = fengshan_option
|
|
trigger = {
|
|
has_title = title:h_china
|
|
var:shrine_location.barony = title:b_xuchang
|
|
}
|
|
add_treasury = {
|
|
value = major_treasury_value
|
|
multiply = -1
|
|
}
|
|
add_prestige = massive_prestige_loss
|
|
add_legitimacy = massive_legitimacy_gain
|
|
add_piety = major_piety_gain
|
|
}
|
|
option = {
|
|
name = local_rites.3.pay_gold
|
|
trigger = {
|
|
scope:at_home = no
|
|
NOR = {
|
|
has_title = title:h_china
|
|
var:shrine_location.barony = title:b_xuchang
|
|
}
|
|
}
|
|
#Pay Gold - Get Piety
|
|
switch = {
|
|
trigger = exists
|
|
scope:hills_location = {
|
|
remove_short_term_gold = minor_gold_value
|
|
add_piety = medium_piety_gain
|
|
}
|
|
scope:mountains_location = {
|
|
remove_short_term_gold = minor_gold_value
|
|
add_piety = medium_piety_gain
|
|
}
|
|
scope:temple_holding_location = {
|
|
remove_short_term_gold = medium_gold_value
|
|
add_piety = major_piety_gain
|
|
}
|
|
scope:forest_location = {
|
|
remove_short_term_gold = minor_gold_value
|
|
add_piety = medium_piety_gain
|
|
}
|
|
scope:shrine_location = {
|
|
remove_short_term_gold = medium_gold_value
|
|
add_piety = major_piety_gain
|
|
}
|
|
}
|
|
}
|
|
option = {
|
|
name = local_rites.3.pay_prestige
|
|
trigger = {
|
|
scope:at_home = no
|
|
NOR = {
|
|
has_title = title:h_china
|
|
var:shrine_location.barony = title:b_xuchang
|
|
}
|
|
}
|
|
#Pay Prestige - Get Piety
|
|
switch = {
|
|
trigger = exists
|
|
scope:hills_location = {
|
|
add_prestige = minor_prestige_loss
|
|
add_piety = medium_piety_gain
|
|
}
|
|
scope:mountains_location = {
|
|
add_prestige = minor_prestige_loss
|
|
add_piety = medium_piety_gain
|
|
}
|
|
scope:temple_holding_location = {
|
|
add_prestige = medium_prestige_loss
|
|
add_piety = major_piety_gain
|
|
}
|
|
scope:forest_location = {
|
|
add_prestige = minor_prestige_loss
|
|
add_piety = medium_piety_gain
|
|
}
|
|
scope:shrine_location = {
|
|
add_prestige = medium_prestige_loss
|
|
add_piety = major_piety_gain
|
|
}
|
|
}
|
|
}
|
|
option = {
|
|
name = local_rites.3.pay_at_home #So be it
|
|
trigger = {
|
|
scope:at_home = yes
|
|
}
|
|
#Pay A little Gold - Get Piety
|
|
remove_short_term_gold = miniscule_gold_value
|
|
add_piety = minor_piety_gain
|
|
remove_character_flag = local_shrine_rite
|
|
}
|
|
|
|
after = {
|
|
stress_impact = { #Not the main purpose of the trip but the ritual comes with some stress relief
|
|
base = minor_stress_impact_loss
|
|
zealous = minor_stress_impact_loss
|
|
cynical = minor_stress_impact_gain
|
|
}
|
|
|
|
# Run the clean-up event.
|
|
if = {
|
|
limit = {
|
|
scope:at_home = no
|
|
}
|
|
trigger_event = {
|
|
id = local_rites.1000
|
|
days = 30
|
|
}
|
|
}
|
|
else = {
|
|
remove_variable = shrine_location
|
|
}
|
|
}
|
|
}
|
|
|
|
local_rites.1000 = {
|
|
hidden = yes
|
|
immediate = {
|
|
send_interface_toast = {
|
|
title = religious_decision.0291.toast
|
|
left_icon = root
|
|
current_travel_plan ?= {
|
|
if = {
|
|
limit = { is_paused = yes }
|
|
resume_travel_plan = yes
|
|
}
|
|
}
|
|
}
|
|
remove_variable = shrine_location
|
|
remove_character_flag = local_shrine_rite
|
|
}
|
|
}
|