719 lines
18 KiB
Text
719 lines
18 KiB
Text
namespace = ep1_character_interaction
|
|
|
|
##################################################
|
|
#
|
|
# Character Interaction Events
|
|
#
|
|
# 0001 - 0010 Indebt Guest
|
|
##################################################
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##################################################
|
|
# CHARACTER INTERACTION EVENTS
|
|
|
|
##################################################
|
|
# A Sensible Recompense
|
|
# by Ewan Cowhig Croft
|
|
# 0001 - 0010
|
|
##################################################
|
|
|
|
scripted_trigger ep1_character_interaction_0001_valid_hostile_relation_trigger = {
|
|
# Must be at a court of some kind *other* than your own.
|
|
exists = host
|
|
scope:actor != host
|
|
# And not in scope:actor's prison.
|
|
NOR = {
|
|
imprisoner ?= scope:actor
|
|
}
|
|
# Double check that this'd be an appropriate court to send a plant.
|
|
save_temporary_scope_as = current_target
|
|
scope:actor = {
|
|
OR = {
|
|
# Either you've got a scheme on the go...
|
|
any_scheme = {
|
|
hostile_scheme_trigger = yes
|
|
scheme_target_character = scope:current_target
|
|
}
|
|
# ... or you could start one.
|
|
can_start_hostile_scheme_against_trigger = { TARGET = scope:current_target}
|
|
}
|
|
}
|
|
}
|
|
|
|
scripted_trigger ep1_character_interaction_0001_valid_rival_trigger = {
|
|
ep1_character_interaction_0001_valid_hostile_relation_trigger = yes
|
|
OR = {
|
|
NOT = { exists = scope:actor_nemesis }
|
|
this != scope:actor_nemesis
|
|
}
|
|
}
|
|
|
|
scripted_effect ep1_character_interaction_0001_move_character_and_family_effect = {
|
|
scope:recipient = {
|
|
# Whatever else happens, just move them.
|
|
scope:actor = { remove_courtier_or_guest = scope:recipient }
|
|
$DESTINATION$ = { add_courtier = scope:recipient }
|
|
# If they have any family, quietly send them along too.
|
|
hidden_effect = {
|
|
if = {
|
|
limit = {
|
|
any_traveling_family_member = { }
|
|
}
|
|
every_traveling_family_member = {
|
|
save_temporary_scope_as = family_to_shunt
|
|
scope:actor = { remove_courtier_or_guest = scope:family_to_shunt }
|
|
$DESTINATION$ = { add_courtier = scope:family_to_shunt }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Trick a guest into a debt & turn them into an agent.
|
|
ep1_character_interaction.0001 = {
|
|
type = character_event
|
|
title = ep1_character_interaction.0001.t
|
|
desc = {
|
|
desc = ep1_character_interaction.0001.desc.intro
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:lustful }
|
|
desc = ep1_character_interaction.0001.desc.lustful
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:chaste }
|
|
desc = ep1_character_interaction.0001.desc.chaste
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:gluttonous }
|
|
desc = ep1_character_interaction.0001.desc.gluttonous
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:temperate }
|
|
desc = ep1_character_interaction.0001.desc.temperate
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:greedy }
|
|
desc = ep1_character_interaction.0001.desc.greedy
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:generous }
|
|
desc = ep1_character_interaction.0001.desc.generous
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:lazy }
|
|
desc = ep1_character_interaction.0001.desc.lazy
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:diligent }
|
|
desc = ep1_character_interaction.0001.desc.diligent
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:wrathful }
|
|
desc = ep1_character_interaction.0001.desc.wrathful
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:calm }
|
|
desc = ep1_character_interaction.0001.desc.calm
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:patient }
|
|
desc = ep1_character_interaction.0001.desc.patient
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:impatient }
|
|
desc = ep1_character_interaction.0001.desc.impatient
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:arrogant }
|
|
desc = ep1_character_interaction.0001.desc.arrogant
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:humble }
|
|
desc = ep1_character_interaction.0001.desc.humble
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:deceitful }
|
|
desc = ep1_character_interaction.0001.desc.deceitful
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:honest }
|
|
desc = ep1_character_interaction.0001.desc.honest
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:craven }
|
|
desc = ep1_character_interaction.0001.desc.craven
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:brave }
|
|
desc = ep1_character_interaction.0001.desc.brave
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:shy }
|
|
desc = ep1_character_interaction.0001.desc.shy
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:gregarious }
|
|
desc = ep1_character_interaction.0001.desc.gregarious
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:ambitious }
|
|
desc = ep1_character_interaction.0001.desc.ambitious
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:content }
|
|
desc = ep1_character_interaction.0001.desc.content
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:arbitrary }
|
|
desc = ep1_character_interaction.0001.desc.arbitrary
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:just }
|
|
desc = ep1_character_interaction.0001.desc.just
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:cynical }
|
|
desc = ep1_character_interaction.0001.desc.cynical
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:zealous }
|
|
desc = ep1_character_interaction.0001.desc.zealous
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:paranoid }
|
|
desc = ep1_character_interaction.0001.desc.paranoid
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:trusting }
|
|
desc = ep1_character_interaction.0001.desc.trusting
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:compassionate }
|
|
desc = ep1_character_interaction.0001.desc.compassionate
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:callous }
|
|
desc = ep1_character_interaction.0001.desc.callous
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:sadistic }
|
|
desc = ep1_character_interaction.0001.desc.sadistic
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:stubborn }
|
|
desc = ep1_character_interaction.0001.desc.stubborn
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:fickle }
|
|
desc = ep1_character_interaction.0001.desc.fickle
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:vengeful }
|
|
desc = ep1_character_interaction.0001.desc.vengeful
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:forgiving }
|
|
desc = ep1_character_interaction.0001.desc.forgiving
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:fallback_1 }
|
|
desc = ep1_character_interaction.0001.desc.fallback_1
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:fallback_2 }
|
|
desc = ep1_character_interaction.0001.desc.fallback_2
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:fallback_3 }
|
|
desc = ep1_character_interaction.0001.desc.fallback_3
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:fallback_4 }
|
|
desc = ep1_character_interaction.0001.desc.fallback_4
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:false_flag_type = flag:fallback_5 }
|
|
desc = ep1_character_interaction.0001.desc.fallback_5
|
|
}
|
|
}
|
|
desc = ep1_character_interaction.0001.desc.outro
|
|
}
|
|
theme = intrigue_skulduggery_focus
|
|
left_portrait = {
|
|
character = scope:actor
|
|
animation = schadenfreude
|
|
}
|
|
right_portrait = {
|
|
character = scope:recipient
|
|
animation = fear
|
|
}
|
|
lower_center_portrait = scope:actor_nemesis
|
|
lower_right_portrait = scope:actor_rival
|
|
override_background = { reference = throne_room }
|
|
|
|
immediate = {
|
|
# Apply the interaction's effects.
|
|
indebt_guest_interaction_accepted_effect = yes
|
|
# Roll the offending crime.
|
|
## Percentages even throughout: we're not fussed about which result you roll.
|
|
scope:recipient = {
|
|
random_list = {
|
|
# lustful
|
|
100 = {
|
|
trigger = { has_trait = lustful }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:lustful
|
|
}
|
|
}
|
|
# chaste
|
|
100 = {
|
|
trigger = { has_trait = chaste }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:chaste
|
|
}
|
|
}
|
|
# gluttonous
|
|
100 = {
|
|
trigger = { has_trait = gluttonous }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:gluttonous
|
|
}
|
|
}
|
|
# temperate
|
|
100 = {
|
|
trigger = { has_trait = temperate }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:temperate
|
|
}
|
|
}
|
|
# greedy
|
|
100 = {
|
|
trigger = { has_trait = greedy }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:greedy
|
|
}
|
|
}
|
|
# generous
|
|
100 = {
|
|
trigger = { has_trait = generous }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:generous
|
|
}
|
|
}
|
|
# lazy
|
|
100 = {
|
|
trigger = { has_trait = lazy }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:lazy
|
|
}
|
|
}
|
|
# diligent
|
|
100 = {
|
|
trigger = { has_trait = diligent }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:diligent
|
|
}
|
|
}
|
|
# wrathful
|
|
100 = {
|
|
trigger = { has_trait = wrathful }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:wrathful
|
|
}
|
|
}
|
|
# calm
|
|
100 = {
|
|
trigger = { has_trait = calm }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:calm
|
|
}
|
|
}
|
|
# patient
|
|
100 = {
|
|
trigger = { has_trait = patient }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:patient
|
|
}
|
|
}
|
|
# impatient
|
|
100 = {
|
|
trigger = { has_trait = impatient }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:impatient
|
|
}
|
|
}
|
|
# arrogant
|
|
100 = {
|
|
trigger = { has_trait = arrogant }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:arrogant
|
|
}
|
|
}
|
|
# humble
|
|
100 = {
|
|
trigger = { has_trait = humble }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:humble
|
|
}
|
|
}
|
|
# deceitful
|
|
100 = {
|
|
trigger = { has_trait = deceitful }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:deceitful
|
|
}
|
|
}
|
|
# honest
|
|
100 = {
|
|
trigger = { has_trait = honest }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:honest
|
|
}
|
|
}
|
|
# craven
|
|
100 = {
|
|
trigger = { has_trait = craven }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:craven
|
|
}
|
|
}
|
|
# brave
|
|
100 = {
|
|
trigger = { has_trait = brave }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:brave
|
|
}
|
|
}
|
|
# shy
|
|
100 = {
|
|
trigger = { has_trait = shy }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:shy
|
|
}
|
|
}
|
|
# gregarious
|
|
100 = {
|
|
trigger = { has_trait = gregarious }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:gregarious
|
|
}
|
|
}
|
|
# ambitious
|
|
100 = {
|
|
trigger = { has_trait = ambitious }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:ambitious
|
|
}
|
|
}
|
|
# content
|
|
100 = {
|
|
trigger = { has_trait = content }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:content
|
|
}
|
|
}
|
|
# arbitrary
|
|
100 = {
|
|
trigger = { has_trait = arbitrary }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:arbitrary
|
|
}
|
|
}
|
|
# just
|
|
100 = {
|
|
trigger = { has_trait = just }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:just
|
|
}
|
|
}
|
|
# cynical
|
|
100 = {
|
|
trigger = { has_trait = cynical }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:cynical
|
|
}
|
|
}
|
|
# zealous
|
|
100 = {
|
|
trigger = { has_trait = zealous }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:zealous
|
|
}
|
|
}
|
|
# paranoid
|
|
100 = {
|
|
trigger = { has_trait = paranoid }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:paranoid
|
|
}
|
|
}
|
|
# trusting
|
|
100 = {
|
|
trigger = { has_trait = trusting }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:trusting
|
|
}
|
|
}
|
|
# compassionate
|
|
100 = {
|
|
trigger = { has_trait = compassionate }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:compassionate
|
|
}
|
|
}
|
|
# callous
|
|
100 = {
|
|
trigger = { has_trait = callous }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:callous
|
|
}
|
|
}
|
|
# sadistic
|
|
100 = {
|
|
trigger = { has_trait = sadistic }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:sadistic
|
|
}
|
|
}
|
|
# stubborn
|
|
100 = {
|
|
trigger = { has_trait = stubborn }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:stubborn
|
|
}
|
|
}
|
|
# fickle
|
|
100 = {
|
|
trigger = { has_trait = fickle }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:fickle
|
|
}
|
|
}
|
|
# vengeful
|
|
100 = {
|
|
trigger = { has_trait = vengeful }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:vengeful
|
|
}
|
|
}
|
|
# forgiving
|
|
100 = {
|
|
trigger = { has_trait = forgiving }
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:forgiving
|
|
}
|
|
}
|
|
# fallback_1
|
|
100 = {
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:fallback_1
|
|
}
|
|
}
|
|
# fallback_2
|
|
100 = {
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:fallback_2
|
|
}
|
|
}
|
|
# fallback_3
|
|
100 = {
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:fallback_3
|
|
}
|
|
}
|
|
# fallback_4
|
|
100 = {
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:fallback_4
|
|
}
|
|
}
|
|
# fallback_5
|
|
100 = {
|
|
save_scope_value_as = {
|
|
name = false_flag_type
|
|
value = flag:fallback_5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# Sort scopes for event options.
|
|
scope:actor = {
|
|
# If scope:actor has a nemesis, save them for loc.
|
|
if = {
|
|
limit = {
|
|
any_relation = {
|
|
type = nemesis
|
|
count >= 1
|
|
ep1_character_interaction_0001_valid_hostile_relation_trigger = yes
|
|
}
|
|
}
|
|
random_relation = {
|
|
type = nemesis
|
|
limit = { ep1_character_interaction_0001_valid_hostile_relation_trigger = yes }
|
|
save_scope_as = actor_nemesis
|
|
}
|
|
}
|
|
# If scope:actor has any valid rivals, pick a random one for option B.
|
|
if = {
|
|
limit = {
|
|
any_relation = {
|
|
type = rival
|
|
count >= 1
|
|
ep1_character_interaction_0001_valid_rival_trigger = yes
|
|
}
|
|
}
|
|
random_relation = {
|
|
type = rival
|
|
# Prefer rivals that are targets of hostile schemes.
|
|
limit = {
|
|
any_targeting_scheme = {
|
|
scheme_owner = scope:actor
|
|
is_hostile = yes
|
|
}
|
|
ep1_character_interaction_0001_valid_rival_trigger = yes
|
|
}
|
|
# Failing that, rivals who are targets of any schemes.
|
|
alternative_limit = {
|
|
any_targeting_scheme = {
|
|
scheme_owner = scope:actor
|
|
is_hostile = no
|
|
}
|
|
ep1_character_interaction_0001_valid_rival_trigger = yes
|
|
}
|
|
# Otherwise just any rando rival who could be schemed against.
|
|
alternative_limit = { ep1_character_interaction_0001_valid_rival_trigger = yes }
|
|
save_scope_as = actor_rival
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# *Cackling* Oh yes, [actor_nemesis.GetFirstName] will never see this coming!
|
|
option = {
|
|
name = ep1_character_interaction.0001.a
|
|
trigger = { exists = scope:actor_nemesis }
|
|
|
|
# Quietly add scope:recipient as a courtier of scope:actor_nemesis.
|
|
ep1_character_interaction_0001_move_character_and_family_effect = { DESTINATION = scope:actor_nemesis }
|
|
|
|
stress_impact = {
|
|
patient = miniscule_stress_impact_loss
|
|
vengeful = minor_stress_impact_loss
|
|
impatient = medium_stress_impact_gain
|
|
trusting = major_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
# If valid, this should always be the choice selected.
|
|
base = 100
|
|
}
|
|
}
|
|
|
|
# Excellent! Now, you will deliver yourself to [actor_rival.GetFirstNamePossessive] court...
|
|
option = {
|
|
name = ep1_character_interaction.0001.b
|
|
trigger = { exists = scope:actor_rival }
|
|
|
|
# Quietly add scope:recipient as a courtier of scope:actor_rival.
|
|
ep1_character_interaction_0001_move_character_and_family_effect = { DESTINATION = scope:actor_rival }
|
|
|
|
stress_impact = {
|
|
patient = miniscule_stress_impact_loss
|
|
vengeful = minor_stress_impact_loss
|
|
impatient = medium_stress_impact_gain
|
|
trusting = major_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
# Never pick this option...
|
|
base = 0
|
|
# ... unless there's no nemesis, in which case it should be the default.
|
|
modifier = {
|
|
add = 100
|
|
NOT = { exists = scope:actor_rival }
|
|
}
|
|
}
|
|
}
|
|
|
|
# Now, begone till I have need of you.
|
|
option = {
|
|
name = ep1_character_interaction.0001.c
|
|
|
|
# Boot 'em out.
|
|
hidden_effect = {
|
|
scope:recipient = { select_and_move_to_pool_effect = yes }
|
|
}
|
|
show_as_tooltip = {
|
|
remove_courtier_or_guest = scope:recipient
|
|
}
|
|
|
|
stress_impact = {
|
|
shy = minor_stress_impact_loss
|
|
gregarious = minor_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
# AI should never be taking this without a nemesis, but if they do, it doesn't matter where they send scope:recipient.
|
|
base = 0
|
|
}
|
|
}
|
|
|
|
# Naturally, you will stay where I can keep an eye on you.
|
|
option = {
|
|
name = ep1_character_interaction.0001.d
|
|
|
|
# Status quo: no extra changes here.
|
|
|
|
# No stress impact necessary for the fallback option.
|
|
ai_chance = {
|
|
# AI should never be taking this without a nemesis, but if they do, it doesn't matter where they send scope:recipient.
|
|
base = 0
|
|
}
|
|
}
|
|
}
|
|
|