1336 lines
32 KiB
Text
1336 lines
32 KiB
Text
|
|
namespace = courtier_guest_management
|
||
|
|
|
||
|
|
#COURTIERS/GUESTS LEAVING
|
||
|
|
# 0001 - Courtier is planning to leave
|
||
|
|
# 0102 - Courtier with claim is wanting to leave
|
||
|
|
# 0500 - Guests leaves
|
||
|
|
# 0999 - Maintenance - Force move to pool
|
||
|
|
|
||
|
|
#GUESTS ARRIVING
|
||
|
|
# 1001 - Guest arriving, message if they're great
|
||
|
|
|
||
|
|
#POOL CHARACTERS
|
||
|
|
# 2001 - "Develops" the character and gives those without location a location
|
||
|
|
# 2002 - Pool repopulation
|
||
|
|
|
||
|
|
#COURTIERS AND GUESTS DOING STUFF
|
||
|
|
# 3001 - Sets relationships and other secrets
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
############################
|
||
|
|
# COURTIERS/GUESTS LEAVING #
|
||
|
|
############################
|
||
|
|
|
||
|
|
#Courtier is planning to leave
|
||
|
|
courtier_guest_management.0001 = {
|
||
|
|
hidden = yes
|
||
|
|
|
||
|
|
trigger = {
|
||
|
|
any_in_list = {
|
||
|
|
list = characters
|
||
|
|
is_child_of = scope:liege
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
immediate = {
|
||
|
|
#Send message about child about to leave
|
||
|
|
every_in_list = {
|
||
|
|
list = characters
|
||
|
|
limit = { is_child_of = scope:liege }
|
||
|
|
|
||
|
|
save_scope_as = child
|
||
|
|
scope:liege = {
|
||
|
|
send_interface_message = {
|
||
|
|
type = character_preparing_to_leave
|
||
|
|
title = courtier_guest_management.0001.t
|
||
|
|
desc = courtier_guest_management.desc
|
||
|
|
left_icon = scope:child
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# this = claimed title scope
|
||
|
|
# CLAIMANT = claimant
|
||
|
|
# RULER = ruler for claimant
|
||
|
|
scripted_trigger useful_courtier_claim_can_declare_for = {
|
||
|
|
neighboring_useful_courtier_or_guest_claim_trigger = { RULER = $RULER$ }
|
||
|
|
save_temporary_scope_as = claim_title
|
||
|
|
$RULER$ = {
|
||
|
|
can_declare_war = {
|
||
|
|
defender = scope:claim_title.holder
|
||
|
|
claimant = $CLAIMANT$
|
||
|
|
casus_belli = claim_cb
|
||
|
|
target_titles = { scope:claim_title }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
#Courtier is leaving
|
||
|
|
courtier_guest_management.0101 = {
|
||
|
|
hidden = yes
|
||
|
|
|
||
|
|
immediate = {
|
||
|
|
#Liege gets "last chance to make them stay"-event for claimants
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
scope:liege = { is_ai = no }
|
||
|
|
any_in_list = {
|
||
|
|
list = characters
|
||
|
|
save_temporary_scope_as = check_character
|
||
|
|
any_claim = {
|
||
|
|
useful_courtier_claim_can_declare_for = {
|
||
|
|
CLAIMANT = scope:check_character
|
||
|
|
RULER = scope:liege
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
random_in_list = {
|
||
|
|
list = characters
|
||
|
|
limit = {
|
||
|
|
save_temporary_scope_as = check_character
|
||
|
|
any_claim = {
|
||
|
|
useful_courtier_claim_can_declare_for = {
|
||
|
|
CLAIMANT = scope:check_character
|
||
|
|
RULER = scope:liege
|
||
|
|
}
|
||
|
|
tier = tier_kingdom
|
||
|
|
}
|
||
|
|
}
|
||
|
|
alternative_limit = {
|
||
|
|
save_temporary_scope_as = check_character
|
||
|
|
any_claim = {
|
||
|
|
useful_courtier_claim_can_declare_for = {
|
||
|
|
CLAIMANT = scope:check_character
|
||
|
|
RULER = scope:liege
|
||
|
|
}
|
||
|
|
tier = tier_duchy
|
||
|
|
}
|
||
|
|
}
|
||
|
|
alternative_limit = {
|
||
|
|
save_temporary_scope_as = check_character
|
||
|
|
any_claim = {
|
||
|
|
useful_courtier_claim_can_declare_for = {
|
||
|
|
CLAIMANT = scope:check_character
|
||
|
|
RULER = scope:liege
|
||
|
|
}
|
||
|
|
tier = tier_county
|
||
|
|
}
|
||
|
|
}
|
||
|
|
save_scope_as = courtier
|
||
|
|
scope:liege = { trigger_event = courtier_guest_management.0102 }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
move_to_pool_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
#Courtier with claim is wanting to leave
|
||
|
|
courtier_guest_management.0102 = { #by Mathilda Bjarnehed
|
||
|
|
type = character_event
|
||
|
|
title = courtier_guest_management.0102.t
|
||
|
|
desc = courtier_guest_management.0102.desc
|
||
|
|
left_portrait = scope:courtier
|
||
|
|
right_portrait = scope:courtier_claim
|
||
|
|
theme = crown
|
||
|
|
override_background = {
|
||
|
|
reference = courtyard
|
||
|
|
}
|
||
|
|
|
||
|
|
trigger = {
|
||
|
|
scope:courtier = {
|
||
|
|
any_claim = {
|
||
|
|
useful_courtier_claim_can_declare_for = {
|
||
|
|
CLAIMANT = scope:courtier
|
||
|
|
RULER = scope:liege
|
||
|
|
}
|
||
|
|
}
|
||
|
|
is_pool_character = no
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
immediate = {
|
||
|
|
#For text
|
||
|
|
scope:courtier = {
|
||
|
|
random_claim = {
|
||
|
|
limit = {
|
||
|
|
useful_courtier_claim_can_declare_for = {
|
||
|
|
CLAIMANT = scope:courtier
|
||
|
|
RULER = scope:liege
|
||
|
|
}
|
||
|
|
tier = tier_empire
|
||
|
|
}
|
||
|
|
alternative_limit = {
|
||
|
|
useful_courtier_claim_can_declare_for = {
|
||
|
|
CLAIMANT = scope:courtier
|
||
|
|
RULER = scope:liege
|
||
|
|
}
|
||
|
|
tier = tier_kingdom
|
||
|
|
}
|
||
|
|
alternative_limit = {
|
||
|
|
useful_courtier_claim_can_declare_for = {
|
||
|
|
CLAIMANT = scope:courtier
|
||
|
|
RULER = scope:liege
|
||
|
|
}
|
||
|
|
tier = tier_duchy
|
||
|
|
}
|
||
|
|
alternative_limit = {
|
||
|
|
useful_courtier_claim_can_declare_for = {
|
||
|
|
CLAIMANT = scope:courtier
|
||
|
|
RULER = scope:liege
|
||
|
|
}
|
||
|
|
tier = tier_county
|
||
|
|
}
|
||
|
|
save_scope_as = courtier_claim
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
capital_province = { barony = { save_scope_as = capital } }
|
||
|
|
}
|
||
|
|
|
||
|
|
#Yes, I promise
|
||
|
|
option = {
|
||
|
|
name = courtier_guest_management.0102.a
|
||
|
|
|
||
|
|
show_as_tooltip = {
|
||
|
|
random_list = {
|
||
|
|
desc = courtier_guest_management.0102.a.rl.desc
|
||
|
|
1 = {
|
||
|
|
show_chance = no
|
||
|
|
desc = courtier_guest_management.0102.a.stay
|
||
|
|
custom_tooltip = courtier_guest_management.0102.a.stay.tt
|
||
|
|
}
|
||
|
|
1 = {
|
||
|
|
show_chance = no
|
||
|
|
desc = courtier_guest_management.0102.a.leave
|
||
|
|
scope:courtier = { select_and_move_to_pool_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
hidden_effect = {
|
||
|
|
scope:courtier = {
|
||
|
|
add_character_flag = {
|
||
|
|
flag = courtier_staying_for_claim
|
||
|
|
years = 1
|
||
|
|
}
|
||
|
|
trigger_event = {
|
||
|
|
id = courtier_guest_management.0103
|
||
|
|
years = 1
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
#No, I cannot
|
||
|
|
option = {
|
||
|
|
name = courtier_guest_management.0102.b
|
||
|
|
|
||
|
|
scope:courtier = { select_and_move_to_pool_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
#Did liege fulfill their promise to courtier claimant?
|
||
|
|
courtier_guest_management.0103 = {
|
||
|
|
hidden = yes
|
||
|
|
|
||
|
|
trigger = {
|
||
|
|
exists = scope:liege
|
||
|
|
is_courtier_of = scope:liege
|
||
|
|
NOT = {
|
||
|
|
scope:liege = {
|
||
|
|
any_character_war = {
|
||
|
|
casus_belli = {
|
||
|
|
any_target_title = {
|
||
|
|
scope:courtier = { has_claim_on = prev }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
immediate = {
|
||
|
|
select_and_move_to_pool_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
#Guest leaves
|
||
|
|
courtier_guest_management.0500 = {
|
||
|
|
hidden = yes
|
||
|
|
|
||
|
|
immediate = {
|
||
|
|
if = { # Warning if they take your kids with them
|
||
|
|
limit = {
|
||
|
|
NOT = { has_character_flag = guest_has_given_warning_about_leaving }
|
||
|
|
#To double check that they actually can leave
|
||
|
|
is_pool_guest_of = scope:host
|
||
|
|
scope:host = { is_ai = no }
|
||
|
|
any_traveling_family_member = {
|
||
|
|
count = all
|
||
|
|
guest_allowed_to_leave_trigger = yes
|
||
|
|
}
|
||
|
|
OR = {
|
||
|
|
AND = {
|
||
|
|
OR = {
|
||
|
|
has_trait = bastard
|
||
|
|
has_trait = wild_oat
|
||
|
|
}
|
||
|
|
any_parent = { this = scope:host }
|
||
|
|
}
|
||
|
|
any_traveling_family_member = {
|
||
|
|
OR = {
|
||
|
|
has_trait = bastard
|
||
|
|
has_trait = wild_oat
|
||
|
|
}
|
||
|
|
any_parent = { this = scope:host }
|
||
|
|
}
|
||
|
|
scope:host = {
|
||
|
|
any_known_secret = {
|
||
|
|
OR = {
|
||
|
|
secret_type = secret_disputed_heritage
|
||
|
|
secret_type = secret_unmarried_illegitimate_child
|
||
|
|
}
|
||
|
|
OR = {
|
||
|
|
secret_target = {
|
||
|
|
this = root
|
||
|
|
is_adult = no
|
||
|
|
}
|
||
|
|
secret_target = {
|
||
|
|
save_temporary_scope_as = target_check
|
||
|
|
root = {
|
||
|
|
any_traveling_family_member = {
|
||
|
|
this = scope:target_check
|
||
|
|
is_adult = no
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
scope:host = {
|
||
|
|
send_interface_message = {
|
||
|
|
type = character_preparing_to_leave
|
||
|
|
title = courtier_guest_management.0500.t
|
||
|
|
desc = courtier_guest_management.0500.desc
|
||
|
|
left_icon = root
|
||
|
|
}
|
||
|
|
}
|
||
|
|
add_character_flag = {
|
||
|
|
flag = guest_has_given_warning_about_leaving
|
||
|
|
days = 35
|
||
|
|
}
|
||
|
|
trigger_event = {
|
||
|
|
id = courtier_guest_management.0500
|
||
|
|
days = { 25 30 } #You get about a month to decide if you wanna keep them around!
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
has_character_flag = guest_has_given_warning_about_leaving
|
||
|
|
}
|
||
|
|
remove_character_flag = guest_has_given_warning_about_leaving
|
||
|
|
|
||
|
|
# Now a month out of date, so lets update it
|
||
|
|
select_pool_to_move_to_effect = yes
|
||
|
|
}
|
||
|
|
move_to_pool_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Maintenance - Force move to pool
|
||
|
|
courtier_guest_management.0999 = {
|
||
|
|
hidden = yes
|
||
|
|
|
||
|
|
immediate = {
|
||
|
|
select_and_move_to_pool_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
###################
|
||
|
|
# GUESTS ARRIVING #
|
||
|
|
###################
|
||
|
|
|
||
|
|
#Guest arriving, message if they're great
|
||
|
|
scripted_trigger courtier_guest_management_1001_exceptional_claimant_trigger = {
|
||
|
|
any_claim = { neighboring_useful_courtier_or_guest_claim_trigger = { RULER = scope:host } }
|
||
|
|
}
|
||
|
|
|
||
|
|
scripted_trigger courtier_guest_management_1001_exceptional_marriage_candidate_trigger = {
|
||
|
|
save_temporary_scope_as = marriage_candidate
|
||
|
|
guest_marriage_candidate_trigger = yes
|
||
|
|
age > 14
|
||
|
|
OR = {
|
||
|
|
num_of_good_genetic_traits = 3
|
||
|
|
AND = {
|
||
|
|
num_of_good_genetic_traits = 2
|
||
|
|
OR = {
|
||
|
|
has_trait = beauty_good_3
|
||
|
|
has_trait = intellect_good_3
|
||
|
|
has_trait = physique_good_3
|
||
|
|
}
|
||
|
|
}
|
||
|
|
scope:host = {
|
||
|
|
can_marry_character_trigger = { CHARACTER = scope:marriage_candidate }
|
||
|
|
marriage_between_characters_unlocks_alliance_of_min_tier_trigger = {
|
||
|
|
MY_CHARACTER = scope:host
|
||
|
|
THEIR_CHARACTER = scope:marriage_candidate
|
||
|
|
TIER = scope:host.highest_held_title_tier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
dynasty ?= { dynasty_prestige_level >= high_dynasty_prestige_level }
|
||
|
|
has_useful_potential_spouse_claim_trigger = { RULER = scope:host }
|
||
|
|
calc_true_if = {
|
||
|
|
amount >= 2
|
||
|
|
num_of_good_genetic_traits = 2
|
||
|
|
AND = {
|
||
|
|
num_of_good_genetic_traits = 1
|
||
|
|
OR = {
|
||
|
|
has_trait = beauty_good_2
|
||
|
|
has_trait = intellect_good_2
|
||
|
|
has_trait = physique_good_2
|
||
|
|
}
|
||
|
|
}
|
||
|
|
dynasty ?= { dynasty_prestige_level > medium_dynasty_prestige_level }
|
||
|
|
}
|
||
|
|
calc_true_if = {
|
||
|
|
amount >= 3
|
||
|
|
dynasty ?= { dynasty_prestige_level > low_dynasty_prestige_level }
|
||
|
|
num_of_good_genetic_traits = 1
|
||
|
|
diplomacy >= high_skill_rating
|
||
|
|
martial >= high_skill_rating
|
||
|
|
stewardship >= high_skill_rating
|
||
|
|
intrigue >= high_skill_rating
|
||
|
|
learning >= high_skill_rating
|
||
|
|
}
|
||
|
|
}
|
||
|
|
NOR = {
|
||
|
|
num_of_bad_genetic_traits > 1
|
||
|
|
is_lowborn = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
scripted_trigger courtier_guest_management_1001_exceptional_commander_trigger = {
|
||
|
|
guest_commander_candidate_trigger = { HOST = scope:host }
|
||
|
|
number_of_commander_traits >= 1
|
||
|
|
martial >= very_high_skill_rating
|
||
|
|
}
|
||
|
|
|
||
|
|
scripted_trigger courtier_guest_management_1001_exceptional_vassal_trigger = {
|
||
|
|
guest_vassal_candidate_trigger = yes
|
||
|
|
opinion = {
|
||
|
|
target = scope:host
|
||
|
|
value >= medium_positive_opinion
|
||
|
|
}
|
||
|
|
calc_true_if = {
|
||
|
|
amount >= 2
|
||
|
|
OR = {
|
||
|
|
has_trait = content
|
||
|
|
has_trait = trusting
|
||
|
|
has_trait = humble
|
||
|
|
}
|
||
|
|
martial >= high_skill_rating
|
||
|
|
stewardship >= high_skill_rating
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
scripted_trigger courtier_guest_management_1001_exceptional_knight_trigger = {
|
||
|
|
guest_knight_candidate_trigger = { HOST = root }
|
||
|
|
prowess >= very_high_skill_rating
|
||
|
|
}
|
||
|
|
|
||
|
|
scripted_trigger courtier_guest_management_1001_exceptional_physician_trigger = {
|
||
|
|
guest_physician_candidate_trigger = yes
|
||
|
|
OR = {
|
||
|
|
has_trait = lifestyle_mystic
|
||
|
|
has_trait = lifestyle_physician
|
||
|
|
has_trait = lifestyle_herbalist
|
||
|
|
}
|
||
|
|
learning >= high_skill_rating
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
courtier_guest_management.1001 = {
|
||
|
|
hidden = yes
|
||
|
|
|
||
|
|
immediate = {
|
||
|
|
scope:guest = {
|
||
|
|
every_traveling_family_member = {
|
||
|
|
add_to_temporary_list = guest_arrival_list
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# To update Adventure Inspiration to make sure that the target destination isn't in the realm they just arrived to. If it is we remove it and make them pick a new destination!
|
||
|
|
every_in_list = {
|
||
|
|
list = guest_arrival_list
|
||
|
|
limit = {
|
||
|
|
inspiration ?= { has_inspiration_type = adventure_inspiration }
|
||
|
|
exists = var:adventure_destination #They know where they want to go
|
||
|
|
}
|
||
|
|
get_adventure_inspiration_start_location = { ADVENTURER = this }
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
scope:host = {
|
||
|
|
any_sub_realm_county = {
|
||
|
|
this = scope:location.county
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
remove_variable = adventure_destination
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
adventure_inspiration_average_skill_value >= high_inspiration_skill
|
||
|
|
}
|
||
|
|
set_adventure_location_effect = {
|
||
|
|
BASE_SCOPE = this
|
||
|
|
NO_DESTINATION = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
set_adventure_location_effect = {
|
||
|
|
BASE_SCOPE = this
|
||
|
|
NO_DESTINATION = no
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
###DEVELOPMENT EFFECT###
|
||
|
|
#Because the characters spend so little time in the pool, we also run it now
|
||
|
|
|
||
|
|
every_in_list = { # Very performance-intensive, so we restrict it as much as possible at this step.
|
||
|
|
list = guest_arrival_list
|
||
|
|
limit = {
|
||
|
|
is_adult = yes
|
||
|
|
is_lowborn = no
|
||
|
|
is_physically_able = yes
|
||
|
|
}
|
||
|
|
pool_character_development_effect = yes
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
gold >= 1000
|
||
|
|
}
|
||
|
|
purge_excess_wanderer_riches_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
###EXCEPTIONAL GUEST TOAST###
|
||
|
|
if = {
|
||
|
|
limit = { scope:host = { is_ai = no } } #This is just interface messages, AI doesn't care
|
||
|
|
|
||
|
|
every_in_list = {
|
||
|
|
list = guest_arrival_list
|
||
|
|
limit = {
|
||
|
|
courtier_guest_management_1001_exceptional_claimant_trigger = yes
|
||
|
|
}
|
||
|
|
save_scope_as = exceptional_guest
|
||
|
|
|
||
|
|
#CLAIMANT MESSAGE
|
||
|
|
if = {
|
||
|
|
limit = { courtier_guest_management_1001_exceptional_claimant_trigger = yes }
|
||
|
|
random_claim = {
|
||
|
|
limit = {
|
||
|
|
neighboring_useful_courtier_or_guest_claim_trigger = { RULER = scope:host }
|
||
|
|
tier = tier_kingdom
|
||
|
|
scope:host.highest_held_title_tier > tier_kingdom
|
||
|
|
}
|
||
|
|
alternative_limit = {
|
||
|
|
neighboring_useful_courtier_or_guest_claim_trigger = { RULER = scope:host }
|
||
|
|
tier = tier_duchy
|
||
|
|
scope:host.highest_held_title_tier > tier_duchy
|
||
|
|
}
|
||
|
|
alternative_limit = {
|
||
|
|
neighboring_useful_courtier_or_guest_claim_trigger = { RULER = scope:host }
|
||
|
|
tier = tier_county
|
||
|
|
scope:host.highest_held_title_tier > tier_county
|
||
|
|
}
|
||
|
|
save_scope_as = guest_claim
|
||
|
|
}
|
||
|
|
scope:host = {
|
||
|
|
send_interface_toast = {
|
||
|
|
type = msg_notable_guest
|
||
|
|
left_icon = scope:exceptional_guest
|
||
|
|
right_icon = scope:guest_claim
|
||
|
|
title = courtier_guest_management.1001.t
|
||
|
|
desc = courtier_guest_management.1001.claimant.desc
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
###################
|
||
|
|
# POOL CHARACTERS #
|
||
|
|
###################
|
||
|
|
|
||
|
|
#This events gives pool characters relations, skills, traits and secrets. If they lack a location, they're given a location.
|
||
|
|
courtier_guest_management.2001 = {
|
||
|
|
hidden = yes
|
||
|
|
trigger = {
|
||
|
|
is_pool_character = yes # Can cease to be in the pool between it queuing and executing
|
||
|
|
}
|
||
|
|
|
||
|
|
immediate = {
|
||
|
|
#Am I lost in the void?
|
||
|
|
if = {
|
||
|
|
limit = { NOT = { exists = location } }
|
||
|
|
|
||
|
|
#Oops, no good! Go someplace. (family is also moved with this effect)
|
||
|
|
fallback_move_to_pool_effect = yes
|
||
|
|
}
|
||
|
|
|
||
|
|
#Don't I have the "last_visited_ruler" variable? (= it ran out or I'm from some weird source that doesn't set var)
|
||
|
|
if = {
|
||
|
|
limit = { NOT = { exists = var:last_visited_ruler } }
|
||
|
|
|
||
|
|
if = { # If character is prune-able, prune.
|
||
|
|
limit = {
|
||
|
|
pool_character_is_pruneable_trigger = yes
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
culture = {
|
||
|
|
has_cultural_tradition = tradition_diasporic
|
||
|
|
}
|
||
|
|
is_adult = yes
|
||
|
|
is_lowborn = no
|
||
|
|
age < 40
|
||
|
|
}
|
||
|
|
random_list = {
|
||
|
|
20 = {
|
||
|
|
save_scope_as = minority_leader
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
player_heir ?= {
|
||
|
|
this != root
|
||
|
|
is_adult = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
player_heir = {
|
||
|
|
save_scope_as = laamp_heir
|
||
|
|
save_scope_as = laamp_inheritor
|
||
|
|
custom_tooltip = become_landless_minority_decision_title_scope_tt
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else_if = {
|
||
|
|
limit = { top_liege != this }
|
||
|
|
liege = {
|
||
|
|
save_scope_as = laamp_liege
|
||
|
|
save_scope_as = laamp_inheritor
|
||
|
|
custom_tooltip = become_landless_minority_decision_title_scope_tt
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
custom_tooltip = become_landless_minority_decision_title_created_tt
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
NOT = { exists = scope:laamp_inheritor }
|
||
|
|
}
|
||
|
|
hidden_effect_new_object = {
|
||
|
|
create_character = {
|
||
|
|
template = laamp_inheritor_template
|
||
|
|
culture = root.culture
|
||
|
|
faith = root.faith
|
||
|
|
dynasty = generate
|
||
|
|
location = root.capital_province
|
||
|
|
after_creation = {
|
||
|
|
save_scope_as = laamp_inheritor
|
||
|
|
add_character_flag = new_laamp_inheritor
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
create_landless_minority_title_tooltip_effect = yes
|
||
|
|
show_as_tooltip = {
|
||
|
|
add_prestige = medium_prestige_gain
|
||
|
|
add_character_modifier = {
|
||
|
|
modifier = ep3_voluntary_laamp_character_modifier
|
||
|
|
years = 5
|
||
|
|
}
|
||
|
|
}
|
||
|
|
trigger_event = { id = ep3_laamps.1030 }
|
||
|
|
# Debug tracking
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
is_ai = yes
|
||
|
|
debug_only = yes
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { exists = global_var:ai_voluntary_laamp_count }
|
||
|
|
change_global_variable = {
|
||
|
|
name = ai_voluntary_laamp_count
|
||
|
|
add = 1
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
set_global_variable = {
|
||
|
|
name = ai_voluntary_laamp_count
|
||
|
|
value = 1
|
||
|
|
}
|
||
|
|
}
|
||
|
|
debug_log = "AI became adventurer voluntarily"
|
||
|
|
debug_log_scopes = yes
|
||
|
|
}
|
||
|
|
stress_impact = {
|
||
|
|
craven = minor_stress_impact_gain
|
||
|
|
content = minor_stress_impact_gain
|
||
|
|
lazy = minor_stress_impact_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
50 = {
|
||
|
|
}
|
||
|
|
30 = {
|
||
|
|
death = { death_reason = death_accident }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else_if = {
|
||
|
|
limit = { age < 65 }
|
||
|
|
death = { death_reason = death_accident }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
death = { death_reason = death_old_age }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else = { # Otherwise, go somewhere else.
|
||
|
|
fallback_move_to_pool_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if = {
|
||
|
|
limit = { is_alive = yes } #Because we might just have killed you and then 🎵nothing else matters🎵
|
||
|
|
|
||
|
|
#Develop
|
||
|
|
random = { # Very performance-intensive, so we restrict it as much as possible at this step.
|
||
|
|
chance = 50
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
static_group_filter = {
|
||
|
|
group = random_dev_blocker
|
||
|
|
match = 0.8
|
||
|
|
}
|
||
|
|
is_adult = yes
|
||
|
|
is_lowborn = no
|
||
|
|
is_physically_able = yes
|
||
|
|
}
|
||
|
|
pool_character_development_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
gold >= 1000
|
||
|
|
}
|
||
|
|
purge_excess_wanderer_riches_effect = yes
|
||
|
|
}
|
||
|
|
|
||
|
|
#Is my pool full? Then move
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
location = {
|
||
|
|
exists = province_owner
|
||
|
|
local_pool_is_full_trigger = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
location.province_owner = {
|
||
|
|
random_neighboring_and_across_water_top_liege_realm_owner = {
|
||
|
|
limit = {
|
||
|
|
capital_province ?= { local_pool_is_full_trigger = no }
|
||
|
|
}
|
||
|
|
capital_province = { save_scope_as = destination }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if = {
|
||
|
|
limit = { exists = scope:destination }
|
||
|
|
every_traveling_family_member = {
|
||
|
|
limit = { NOT = { is_in_pool_at = scope:destination } }
|
||
|
|
move_to_pool_at = scope:destination
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
fallback_move_to_pool_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
####################################
|
||
|
|
# COURTIERS AND GUESTS DOING STUFF #
|
||
|
|
####################################
|
||
|
|
|
||
|
|
scripted_trigger courtier_guest_management_3001_best_friend_trigger = {
|
||
|
|
opinion = {
|
||
|
|
target = scope:current_character
|
||
|
|
value >= high_positive_opinion
|
||
|
|
}
|
||
|
|
reverse_opinion = {
|
||
|
|
target = scope:current_character
|
||
|
|
value >= high_positive_opinion
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
scripted_trigger courtier_guest_management_3001_soulmate_trigger = {
|
||
|
|
opinion = {
|
||
|
|
target = scope:current_character
|
||
|
|
value >= high_positive_opinion
|
||
|
|
}
|
||
|
|
reverse_opinion = {
|
||
|
|
target = scope:current_character
|
||
|
|
value >= high_positive_opinion
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
scripted_trigger courtier_guest_management_3001_nemesis_trigger = {
|
||
|
|
opinion = {
|
||
|
|
target = scope:current_character
|
||
|
|
value <= high_negative_opinion
|
||
|
|
}
|
||
|
|
reverse_opinion = {
|
||
|
|
target = scope:current_character
|
||
|
|
value <= high_negative_opinion
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
scripted_trigger courtier_guest_management_3001_interesting_trigger = {
|
||
|
|
OR = {
|
||
|
|
is_lowborn = no
|
||
|
|
has_trait = intellect_good
|
||
|
|
has_trait = physique_good
|
||
|
|
has_trait = beauty_good
|
||
|
|
diplomacy >= high_skill_rating
|
||
|
|
martial >= high_skill_rating
|
||
|
|
stewardship >= high_skill_rating
|
||
|
|
intrigue >= high_skill_rating
|
||
|
|
learning >= high_skill_rating
|
||
|
|
is_witch_trigger = yes
|
||
|
|
is_deviant_trigger = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
courtier_guest_management.3001 = {
|
||
|
|
hidden = yes
|
||
|
|
|
||
|
|
immediate = {
|
||
|
|
every_courtier_or_guest = {
|
||
|
|
limit = {
|
||
|
|
age >= childhood_education_start_age
|
||
|
|
NOT = { has_trait = incapable }
|
||
|
|
}
|
||
|
|
add_to_list = courtiers_and_guests
|
||
|
|
}
|
||
|
|
|
||
|
|
#Am I a player? Extra fun stuff
|
||
|
|
if = {
|
||
|
|
limit = { is_ai = no }
|
||
|
|
|
||
|
|
save_scope_as = root_scope
|
||
|
|
random_list = {
|
||
|
|
2 = { #Seduce
|
||
|
|
modifier = {
|
||
|
|
OR = {
|
||
|
|
has_trait = lustful
|
||
|
|
has_trait = seducer
|
||
|
|
has_focus = intrigue_temptation_focus
|
||
|
|
}
|
||
|
|
add = 3
|
||
|
|
}
|
||
|
|
random_in_list = {
|
||
|
|
list = courtiers_and_guests
|
||
|
|
limit = {
|
||
|
|
save_temporary_scope_as = instigating_courtier
|
||
|
|
are_characters_sensible_lovers_trigger = { INSTIGATING_LOVER = scope:instigating_courtier TARGET_OF_LOVE = scope:root_scope }
|
||
|
|
can_start_scheme = {
|
||
|
|
type = seduce
|
||
|
|
target_character = root
|
||
|
|
}
|
||
|
|
}
|
||
|
|
weight = {
|
||
|
|
base = 100
|
||
|
|
opinion_modifier = {
|
||
|
|
opinion_target = root
|
||
|
|
multiplier = 5
|
||
|
|
}
|
||
|
|
compatibility_modifier = {
|
||
|
|
compatibility_target = root
|
||
|
|
multiplier = 20
|
||
|
|
}
|
||
|
|
ai_value_modifier = {
|
||
|
|
ai_sociability = 1
|
||
|
|
}
|
||
|
|
modifier = {
|
||
|
|
has_relation_potential_lover = root
|
||
|
|
add = 500
|
||
|
|
}
|
||
|
|
|
||
|
|
modifier = {
|
||
|
|
add = {
|
||
|
|
value = attraction
|
||
|
|
divide = high_positive_attraction
|
||
|
|
multiply = 50
|
||
|
|
}
|
||
|
|
}
|
||
|
|
modifier = {
|
||
|
|
has_trait = lustful
|
||
|
|
factor = 1.5
|
||
|
|
}
|
||
|
|
}
|
||
|
|
start_scheme = {
|
||
|
|
type = seduce
|
||
|
|
target_character = root
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
2 = { #Romance
|
||
|
|
modifier = {
|
||
|
|
OR = {
|
||
|
|
has_trait = gallant
|
||
|
|
has_focus = martial_chivalry_focus
|
||
|
|
}
|
||
|
|
add = 3
|
||
|
|
}
|
||
|
|
random_in_list = {
|
||
|
|
list = courtiers_and_guests
|
||
|
|
limit = {
|
||
|
|
save_temporary_scope_as = instigating_courtier
|
||
|
|
are_characters_sensible_and_appropriate_open_lovers_trigger = { INSTIGATING_LOVER = scope:instigating_courtier TARGET_OF_LOVE = scope:root_scope }
|
||
|
|
can_start_scheme = {
|
||
|
|
type = courting
|
||
|
|
target_character = root
|
||
|
|
}
|
||
|
|
}
|
||
|
|
weight = {
|
||
|
|
base = 100
|
||
|
|
opinion_modifier = {
|
||
|
|
opinion_target = root
|
||
|
|
multiplier = 5
|
||
|
|
}
|
||
|
|
compatibility_modifier = {
|
||
|
|
compatibility_target = root
|
||
|
|
multiplier = 20
|
||
|
|
}
|
||
|
|
modifier = {
|
||
|
|
has_relation_potential_lover = root
|
||
|
|
add = 500
|
||
|
|
}
|
||
|
|
modifier = {
|
||
|
|
is_knight = yes
|
||
|
|
add = 200
|
||
|
|
}
|
||
|
|
ai_value_modifier = {
|
||
|
|
ai_honor = 2
|
||
|
|
ai_sociability = 1
|
||
|
|
}
|
||
|
|
}
|
||
|
|
start_scheme = {
|
||
|
|
type = courting
|
||
|
|
target_character = root
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
96 = { } #Nothing
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Every courtier gets a chance to do something (relations also include guests)
|
||
|
|
every_in_list = {
|
||
|
|
list = courtiers_and_guests
|
||
|
|
limit = { NOT = { is_in_list = already_updated } } #If another character set a relation with you, you don't get to run your own update. (However, we don't want to block you from being selected by other characters if you are the best alternative.)
|
||
|
|
|
||
|
|
save_scope_as = current_character
|
||
|
|
|
||
|
|
random = {
|
||
|
|
chance = 5
|
||
|
|
modifier = { #More should happen in player's court!
|
||
|
|
root = { is_ai = no }
|
||
|
|
is_courtier_of = root
|
||
|
|
add = 15
|
||
|
|
}
|
||
|
|
|
||
|
|
random_list = {
|
||
|
|
### RELATIONS ###
|
||
|
|
# Friend
|
||
|
|
100 = {
|
||
|
|
ai_value_modifier = {
|
||
|
|
ai_compassion = 0.8
|
||
|
|
ai_sociability = 2
|
||
|
|
}
|
||
|
|
trigger = {
|
||
|
|
any_relation = {
|
||
|
|
type = friend
|
||
|
|
count <= 2
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
random_in_list = {
|
||
|
|
limit = {
|
||
|
|
can_set_relation_friend_trigger = { CHARACTER = scope:current_character }
|
||
|
|
}
|
||
|
|
list = courtiers_and_guests
|
||
|
|
weight = {
|
||
|
|
base = 100
|
||
|
|
compatibility_modifier = {
|
||
|
|
who = this
|
||
|
|
compatibility_target = scope:current_character
|
||
|
|
multiplier = 20
|
||
|
|
}
|
||
|
|
modifier = {
|
||
|
|
has_relation_potential_friend = scope:current_character
|
||
|
|
add = 500
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
add_to_list = already_updated
|
||
|
|
set_random_friendship_reason = { TARGET = scope:current_character }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
# Lover
|
||
|
|
50 = {
|
||
|
|
ai_value_modifier = {
|
||
|
|
ai_sociability = 1.5
|
||
|
|
}
|
||
|
|
modifier = {
|
||
|
|
has_trait = lustful
|
||
|
|
add = 150
|
||
|
|
}
|
||
|
|
modifier = {
|
||
|
|
OR = {
|
||
|
|
any_relation = { type = soulmate always = yes }
|
||
|
|
is_married = yes
|
||
|
|
}
|
||
|
|
ai_honor >= 0
|
||
|
|
add = -150
|
||
|
|
}
|
||
|
|
modifier = {
|
||
|
|
add = {
|
||
|
|
value = attraction
|
||
|
|
divide = high_positive_attraction
|
||
|
|
multiply = 50
|
||
|
|
}
|
||
|
|
}
|
||
|
|
trigger = {
|
||
|
|
is_married = no
|
||
|
|
is_concubine = no
|
||
|
|
might_cheat_on_every_partner_trigger = yes
|
||
|
|
NOR = {
|
||
|
|
has_trait = chaste
|
||
|
|
has_trait = celibate
|
||
|
|
has_sexuality = asexual
|
||
|
|
}
|
||
|
|
trigger_if = {
|
||
|
|
limit = {
|
||
|
|
is_courtier = yes
|
||
|
|
is_close_or_extended_family_of = liege
|
||
|
|
}
|
||
|
|
OR = {
|
||
|
|
has_trait = lustful
|
||
|
|
is_deviant_trigger = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
any_relation = {
|
||
|
|
type = lover
|
||
|
|
count < 1
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
random_in_list = {
|
||
|
|
limit = {
|
||
|
|
is_married = no
|
||
|
|
is_concubine = no
|
||
|
|
might_cheat_on_every_partner_trigger = yes
|
||
|
|
NOR = {
|
||
|
|
has_trait = chaste
|
||
|
|
has_trait = celibate
|
||
|
|
has_sexuality = asexual
|
||
|
|
}
|
||
|
|
any_relation = {
|
||
|
|
type = lover
|
||
|
|
count < 1
|
||
|
|
}
|
||
|
|
trigger_if = {
|
||
|
|
limit = {
|
||
|
|
is_courtier = yes
|
||
|
|
is_close_or_extended_family_of = liege
|
||
|
|
}
|
||
|
|
scope:current_character = { is_lowborn = no }
|
||
|
|
OR = {
|
||
|
|
is_deviant_trigger = yes
|
||
|
|
has_trait = lustful
|
||
|
|
trait_compatibility = {
|
||
|
|
target = scope:current_character
|
||
|
|
value >= high_positive_trait_compatibility
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
this != scope:current_character
|
||
|
|
can_set_relation_lover_trigger = { CHARACTER = scope:current_character }
|
||
|
|
is_attracted_to_gender_of = scope:current_character
|
||
|
|
scope:current_character = { is_attracted_to_gender_of = prev }
|
||
|
|
age <= scope:current_character.age_plus_5
|
||
|
|
age >= scope:current_character.age_minus_10
|
||
|
|
trait_compatibility = {
|
||
|
|
target = scope:current_character
|
||
|
|
value >= low_positive_trait_compatibility
|
||
|
|
}
|
||
|
|
save_temporary_scope_as = incest_check
|
||
|
|
accepts_incest_with_each_other_trigger = {
|
||
|
|
CHARACTER_1 = scope:incest_check
|
||
|
|
CHARACTER_2 = scope:current_character
|
||
|
|
}
|
||
|
|
}
|
||
|
|
list = courtiers_and_guests
|
||
|
|
weight = {
|
||
|
|
base = 100
|
||
|
|
compatibility_modifier = {
|
||
|
|
who = this
|
||
|
|
compatibility_target = scope:current_character
|
||
|
|
multiplier = 20
|
||
|
|
}
|
||
|
|
modifier = {
|
||
|
|
has_relation_potential_lover = scope:current_character
|
||
|
|
add = 500
|
||
|
|
}
|
||
|
|
modifier = {
|
||
|
|
add = {
|
||
|
|
value = attraction
|
||
|
|
divide = high_positive_attraction
|
||
|
|
multiply = 50
|
||
|
|
}
|
||
|
|
}
|
||
|
|
modifier = {
|
||
|
|
has_trait = lustful
|
||
|
|
factor = 2
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
add_to_list = already_updated
|
||
|
|
|
||
|
|
set_random_lover_reason = { TARGET = scope:current_character }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rival
|
||
|
|
50 = {
|
||
|
|
ai_value_modifier = {
|
||
|
|
ai_compassion = -1
|
||
|
|
ai_vengefulness = 2
|
||
|
|
}
|
||
|
|
trigger = {
|
||
|
|
any_relation = {
|
||
|
|
type = rival
|
||
|
|
count <= 1
|
||
|
|
}
|
||
|
|
ai_vengefulness >= low_negative_ai_value
|
||
|
|
}
|
||
|
|
|
||
|
|
random_in_list = {
|
||
|
|
limit = {
|
||
|
|
can_set_relation_rival_trigger = { CHARACTER = scope:current_character }
|
||
|
|
}
|
||
|
|
list = courtiers_and_guests
|
||
|
|
weight = {
|
||
|
|
base = 100
|
||
|
|
opinion_modifier = {
|
||
|
|
trigger = { root = { is_ai = no } }
|
||
|
|
who = this
|
||
|
|
opinion_target = scope:current_character
|
||
|
|
multiplier = -5
|
||
|
|
}
|
||
|
|
opinion_modifier = {
|
||
|
|
trigger = { root = { is_ai = no } }
|
||
|
|
who = scope:current_character
|
||
|
|
opinion_target = this
|
||
|
|
multiplier = -5
|
||
|
|
}
|
||
|
|
compatibility_modifier = {
|
||
|
|
who = this
|
||
|
|
compatibility_target = scope:current_character
|
||
|
|
multiplier = -20
|
||
|
|
}
|
||
|
|
modifier = {
|
||
|
|
has_relation_potential_rival = scope:current_character
|
||
|
|
add = 500
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
add_to_list = already_updated
|
||
|
|
set_random_rivalry_reason = {
|
||
|
|
TARGET = scope:current_character
|
||
|
|
RELATION = rival
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
# Best friend
|
||
|
|
50 = {
|
||
|
|
trigger = {
|
||
|
|
any_relation = {
|
||
|
|
type = friend
|
||
|
|
courtier_guest_management_3001_best_friend_trigger = yes
|
||
|
|
can_set_relation_best_friend_trigger = { CHARACTER = scope:current_character }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
random_relation = {
|
||
|
|
type = friend
|
||
|
|
limit = {
|
||
|
|
courtier_guest_management_3001_best_friend_trigger = yes
|
||
|
|
can_set_relation_best_friend_trigger = { CHARACTER = scope:current_character }
|
||
|
|
}
|
||
|
|
|
||
|
|
add_to_list = already_updated
|
||
|
|
set_relation_best_friend = { reason = best_friend_bonded_at_court copy_reason = friend target = scope:current_character involved_character = root.liege }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
# Soulmate
|
||
|
|
25 = {
|
||
|
|
trigger = {
|
||
|
|
any_relation = {
|
||
|
|
type = lover
|
||
|
|
courtier_guest_management_3001_soulmate_trigger = yes
|
||
|
|
can_set_relation_soulmate_trigger = { CHARACTER = scope:current_character }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
random_relation = {
|
||
|
|
type = lover
|
||
|
|
limit = {
|
||
|
|
courtier_guest_management_3001_soulmate_trigger = yes
|
||
|
|
can_set_relation_soulmate_trigger = { CHARACTER = scope:current_character }
|
||
|
|
}
|
||
|
|
|
||
|
|
add_to_list = already_updated
|
||
|
|
set_relation_soulmate = { reason = soulmate_love_at_court copy_reason = lover target = scope:current_character }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
# Nemesis
|
||
|
|
25 = {
|
||
|
|
trigger = {
|
||
|
|
any_relation = {
|
||
|
|
type = rival
|
||
|
|
courtier_guest_management_3001_nemesis_trigger = yes
|
||
|
|
can_set_relation_nemesis_trigger = { CHARACTER = scope:current_character }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
random_relation = {
|
||
|
|
type = rival
|
||
|
|
limit = {
|
||
|
|
courtier_guest_management_3001_nemesis_trigger = yes
|
||
|
|
can_set_relation_nemesis_trigger = { CHARACTER = scope:current_character }
|
||
|
|
}
|
||
|
|
|
||
|
|
add_to_list = already_updated
|
||
|
|
set_relation_nemesis = {
|
||
|
|
reason = nemesis_at_court
|
||
|
|
copy_reason = rival
|
||
|
|
target = scope:current_character
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
### SECRETS ###
|
||
|
|
30 = {
|
||
|
|
trigger = {
|
||
|
|
NOT = { any_secret = { always = yes } }
|
||
|
|
is_adult = yes
|
||
|
|
}
|
||
|
|
courtier_guest_pool_character_secret_giving_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
############################
|
||
|
|
# WANDERER INTO ADVENTURER #
|
||
|
|
############################
|
||
|
|
|
||
|
|
courtier_guest_management.4001 = {
|
||
|
|
hidden = yes
|
||
|
|
trigger = {
|
||
|
|
has_ep3_dlc_trigger = yes
|
||
|
|
is_pool_character = yes # Can cease to be in the pool between it queuing and executing
|
||
|
|
ai_can_valid_to_create_laamp_trigger = yes
|
||
|
|
is_valid_for_laampdom = yes
|
||
|
|
OR = {
|
||
|
|
has_character_flag = easteregg
|
||
|
|
has_trait = historical_character
|
||
|
|
culture = {
|
||
|
|
has_cultural_parameter = much_more_likely_to_be_laamps
|
||
|
|
}
|
||
|
|
AND = {
|
||
|
|
is_lowborn = no
|
||
|
|
culture = {
|
||
|
|
has_cultural_parameter = more_likely_to_be_laamps
|
||
|
|
}
|
||
|
|
}
|
||
|
|
any_claim = { tier >= tier_kingdom }
|
||
|
|
}
|
||
|
|
pool_character_is_pruneable_trigger = no # Avoid having uninteresting characters become Adventurers
|
||
|
|
is_ai = yes
|
||
|
|
NOT = {
|
||
|
|
any_heir_title = { }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
immediate = {
|
||
|
|
random = {
|
||
|
|
chance = 0
|
||
|
|
modifier = { add = ep3_laamp_chance_score_value }
|
||
|
|
#Counteract bonus in above value somewhat
|
||
|
|
modifier = {
|
||
|
|
culture = { has_cultural_parameter = more_likely_to_be_laamps }
|
||
|
|
add = -75
|
||
|
|
}
|
||
|
|
modifier = {
|
||
|
|
has_trait = historical_character
|
||
|
|
add = 150
|
||
|
|
}
|
||
|
|
create_landless_adventurer_title_effect = {
|
||
|
|
REASON = flag:wanderer
|
||
|
|
FLAVOR_CHAR = root
|
||
|
|
}
|
||
|
|
trigger_event = ep3_laamps.0003
|
||
|
|
if = { # Debug AI tracking
|
||
|
|
limit = { debug_only = yes }
|
||
|
|
if = {
|
||
|
|
limit = { exists = global_var:ai_wanderer_laamp_count }
|
||
|
|
change_global_variable = {
|
||
|
|
name = ai_wanderer_laamp_count
|
||
|
|
add = 1
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
set_global_variable = {
|
||
|
|
name = ai_wanderer_laamp_count
|
||
|
|
value = 1
|
||
|
|
}
|
||
|
|
}
|
||
|
|
debug_log = "AI became adventurer due to cultural tradition"
|
||
|
|
debug_log_scopes = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|