N3OW/N3OW/events/activities/playdate_activity/playdate_events.txt
2025-12-05 22:36:07 +00:00

7328 lines
143 KiB
Text

# Events for handling the Meet Peers activity
namespace = playdate
#####################
## SETUP AND MAINTENANCE EVENTS
## 0000-0999
## by Linnéa Thimrén
#####################
#playdate.0020 - The host has died during the feast - event for guests
#playdate.0021 - The host has been imprisoned - for host
#playdate.0022 - The host has been imprisoned - for guests
#playdate.9999 - Feast reroll event - in case no event is available
######################
## INVITATION AND START EVENTS
## 1000-2999
## by Linnéa Thimrén
######################
#playdate.1001 - Standard invitation event
#playdate.2001 - Generic start event for host
#playdate.2003 - No guests showed up
#playdate.2501 - Generic start event for guests
#################################
## ONGOING EVENTS
## 3000-8999
## by Linnéa Thimrén
#################################
#playdate.3001 - Get friend or victim
#playdate.3002 - Discover secret or spend time with your crush/friend
#playdate.3003 - Spend time with cat
#playdate.3004 - Spend time with dog
#playdate.3005 - Someone learns one of your secrets
#playdate.3006 - Book nerd
#playdate.3007 - Climb tree
#playdate.3008 - Go for a swim
#playdate.3009 - Snow fight!
#playdate.3010 - Go to local market
#playdate.3011 - Playing house
#playdate.3012 - Play at being knights
#playdate.3013 - Meet a witch
#playdate.3014 - Hang with a priest
###############################
## BP2 ONGOING EVENTS
## 5000 - 5999
## by Nick Meredith
###############################
#playdate.5001 - Do you want to play a game?
#playdate.5002 - Go and ask for a football back
#playdate.5003 - Another kid is much bigger and more skilled than you
#playdate.5004 - Another kid is watching from the sidelines
#playdate.5005 - Jump the fence into a garden to retrieve ball
#playdate.5006 - Kid attempts to take his ball and go home
#playdate.5007 - Someone is bullying a smaller kid than you
#playdate.5008 - Old person comes out to yell at you
#playdate.5009 - A kid is being trampled
#playdate.5010-11 - Overly-competitive parent watches on, heckles kids
#################################
## END EVENTS
## 9000-9999
## by Linnéa Thimrén
#################################
#playdate.9001 - Host end event
#playdate.9002 - Guest end event
#######################################################################################
#####################
## SETUP AND MAINTENANCE EVENTS
## 0000 - 0999
#####################
#The host has died during the feast - event for guests
# by Linnéa Thimrén
playdate.0020 = {
type = character_event
title = playdate.0020.t
desc = playdate.0020.desc
theme = playdate_activity
override_icon = {
reference = "gfx/interface/icons/event_types/type_illness.dds"
}
left_portrait = {
character = scope:host
}
option = {
name = playdate.0020.a
custom_tooltip = playdate.0020.a.tt
}
}
#The host has been imprisoned - for host
# by Linnéa Thimrén
playdate.0021 = {
type = character_event
title = playdate.0020.t
desc = playdate.0021.desc
theme = playdate_activity
override_icon = {
reference = "gfx/interface/icons/event_types/type_prison.dds"
}
left_portrait = {
character = scope:host
animation = prisondungeon
}
immediate = {
hosted_successful_playdate_interrupted_effect = yes
}
option = {
name = playdate.0021.a
}
}
#The host has been imprisoned - for guests
# by Linnéa Thimrén
playdate.0022 = {
type = character_event
title = playdate.0020.t
desc = playdate.0022.desc
theme = playdate_activity
override_icon = {
reference = "gfx/interface/icons/event_types/type_prison.dds"
}
left_portrait = {
character = scope:host
animation = prisondungeon
}
option = {
name = playdate.0021.a
}
}
######################
## INVITATION AND START EVENTS
## 1000-2999
## by Linnéa Thimrén
######################
# Standard invitation event
# by Linnéa Thimrén
playdate.1001 = {
type = letter_event
opening = {
desc = feast.1501.opening
}
desc = {
desc = playdate.1001.opening_desc
first_valid = {
triggered_desc = {
trigger = {
OR = {
reverse_opinion = {
target = scope:sender
value > 50
}
has_relation_friend = scope:sender
scope:sender = { has_relation_crush = root }
}
}
desc = playdate.1001.host_likes_me
}
triggered_desc = {
trigger = {
OR = {
reverse_opinion = {
target = scope:sender
value < -1
}
has_relation_bully = scope:sender
has_relation_victim = scope:sender
}
}
desc = playdate.1001.host_dislikes_me
}
desc = playdate.1001.host_gets_along_with_me
}
}
sender = scope:sender
trigger = {
is_available_for_child_activity_trigger = yes
exists = scope:activity.activity_host
NOT = { exists = var:is_handling_playdate_invitation }
}
on_trigger_fail = { #Trigger invitation again if it was blocked because the character was handling another invitation
if = {
limit = {
is_available_for_child_activity_trigger = yes
exists = var:is_handling_playdate_invitation
}
trigger_event = {
id = playdate.1001
days = 1
}
}
}
immediate = {
scope:activity.activity_host = {
save_scope_as = sender
}
scope:activity.activity_location = {
barony = {
save_scope_as = barony
}
}
set_variable = {
name = is_handling_playdate_invitation
value = scope:sender
days = 20
}
}
option = {
name = playdate.1001.a
play_music_cue = mx_cue_banquet
accept_activity_invite = scope:activity
set_variable = {
name = booked_for_a_party
value = scope:sender
days = 20
}
stress_impact = {
gregarious = minor_stress_loss
curious = minor_stress_loss
shy = minor_stress_gain
}
ai_chance = {
base = 100
opinion_modifier = {
opinion_target = scope:sender
}
}
}
option = {
name = playdate.1001.b
decline_activity_invite = scope:activity
stress_impact = {
shy = minor_stress_loss
gregarious = minor_stress_gain
curious = minor_stress_gain
}
if = {
limit = {
faith = {
has_doctrine_parameter = mandatory_feast_attendance
}
}
add_piety = medium_piety_loss
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = 0.2
}
modifier = {
add = -50
faith = {
has_doctrine_parameter = mandatory_feast_attendance
}
}
}
}
after = {
remove_variable = is_handling_playdate_invitation
}
}
# Your (AI) child has been invited to a playdate, allow them to go?
# by Linnéa Thimrén
playdate.1002 = {
type = letter_event
opening = {
desc = feast.1501.opening
}
desc = {
desc = playdate.1002.opening_desc
first_valid = {
triggered_desc = {
trigger = {
scope:sender = {
OR = {
opinion = {
target = scope:child_scope
value > 50
}
has_relation_friend = scope:child_scope
has_relation_crush = scope:child_scope
}
}
}
desc = playdate.1002.host_likes_child
}
triggered_desc = {
trigger = {
scope:sender = {
OR = {
opinion = {
target = scope:child_scope
value < -1
}
has_relation_bully = scope:child_scope
has_relation_victim = scope:child_scope
}
}
}
desc = playdate.1002.host_dislikes_child
}
desc = playdate.1002.host_gets_along_with_child
}
}
sender = scope:sender
trigger = {
scope:child_scope = {
is_available_for_child_activity_trigger = yes
}
exists = scope:activity.activity_host
NOT = { exists = var:is_handling_playdate_invitation }
}
on_trigger_fail = { #Trigger invitation again if it was blocked because the character was handling another invitation
if = {
limit = {
scope:child_scope = {
is_available_for_child_activity_trigger = yes
}
exists = var:is_handling_playdate_invitation
}
trigger_event = {
id = playdate.1002
days = 1
}
}
}
immediate = {
scope:activity.activity_host = {
save_scope_as = sender
}
scope:activity.activity_location = {
barony = {
save_scope_as = barony
}
}
set_variable = {
name = is_handling_playdate_invitation
value = scope:sender
days = 20
}
}
option = {
name = playdate.1002.a
play_music_cue = mx_cue_banquet
scope:child_scope = {
accept_activity_invite = scope:activity
set_variable = {
name = booked_for_a_party
value = scope:sender
days = 20
}
}
stress_impact = {
gregarious = minor_stress_loss
lifestyle_reveler = minor_stress_impact_loss
}
}
option = {
name = playdate.1002.b
scope:child_scope = {
decline_activity_invite = scope:activity
}
if = {
limit = {
faith = {
has_doctrine_parameter = mandatory_feast_attendance
}
}
add_piety = medium_piety_loss
}
stress_impact = {
callous = minor_stress_loss
compassionate = minor_stress_gain
}
}
after = {
remove_variable = is_handling_playdate_invitation
}
}
## START EVENTS FOR HOST
# Generic start event for host
# by Linnéa Thimrén
scripted_trigger playdate_2001_guest_of_interest_1_trigger = {
this != root
playdate_default_participant_trigger = yes
NOR = {
has_relation_rival = root
has_relation_bully = root
}
#Don't care about family-members in the same court
NOR = {
is_close_family_of = root
is_in_the_same_court_as_or_guest = root
}
#To avoid awkward loc we don't want two siblings
NOR = {
AND = {
exists = scope:guest_of_interest_1
is_sibling_of = scope:guest_of_interest_1
}
AND = {
exists = scope:guest_of_interest_2
is_sibling_of = scope:guest_of_interest_2
}
}
}
scripted_trigger playdate_2001_guest_of_interest_4_trigger = {
this != root
playdate_default_participant_trigger = yes
OR = {
has_relation_rival = root
has_relation_potential_rival = root
has_relation_bully = root
}
NOR = {
AND = {
exists = scope:guest_of_interest_1
this = scope:guest_of_interest_1
}
AND = {
exists = scope:guest_of_interest_2
this = scope:guest_of_interest_2
}
AND = {
exists = scope:guest_of_interest_3
this = scope:guest_of_interest_3
}
}
}
playdate.2001 = {
type = activity_event
title = playdate.2001.t
desc = {
desc = playdate.2001.desc_opening
first_valid = {
triggered_desc = {
trigger = {
exists = scope:guest_of_interest_1
exists = scope:guest_of_interest_2
exists = scope:guest_of_interest_3
}
desc = playdate.2001.desc_guest_of_interest_1_2_3
}
triggered_desc = {
trigger = {
exists = scope:guest_of_interest_1
exists = scope:guest_of_interest_2
}
desc = playdate.2001.desc_guest_of_interest_1_and_2
}
triggered_desc = {
trigger = {
exists = scope:guest_of_interest_1
}
desc = playdate.2001.desc_guest_of_interest_1
}
desc = playdate.2001.desc
}
triggered_desc = {
trigger = {
exists = scope:guest_of_interest_4
}
desc = playdate.2001.desc_guest_of_interest_4
}
}
theme = playdate_activity
left_portrait = {
character = root
animation = clutching_ball
}
center_portrait = {
character = scope:portrait_1
animation = child_hobby_horse
camera = camera_event_right
}
right_portrait = {
character = scope:portrait_2
animation = clutching_doll
}
lower_right_portrait = scope:portrait_3
lower_center_portrait = scope:portrait_4
trigger = {
exists = scope:activity
this = scope:activity.activity_host
}
immediate = {
play_music_cue = mx_cue_banquet
scope:activity = {
#save down interesting scopes
if = {
limit = {
any_attending_character = {
playdate_2001_guest_of_interest_1_trigger = yes
}
}
random_attending_character = {
limit = { #Let's grab your liege if they're here
playdate_2001_guest_of_interest_1_trigger = yes
target_is_vassal_or_below = root
}
alternative_limit = { #Otherwise, a powerful vassal
playdate_2001_guest_of_interest_1_trigger = yes
is_powerful_vassal_of = root
}
alternative_limit = { #Or just any good relationship
playdate_2001_guest_of_interest_1_trigger = yes
}
save_scope_as = guest_of_interest_1
save_scope_as = portrait_1
}
if = {
limit = {
any_attending_character = {
playdate_2001_guest_of_interest_1_trigger = yes
this != scope:guest_of_interest_1
}
}
random_attending_character = {
limit = { #We would rather have someone interesting
playdate_2001_guest_of_interest_1_trigger = yes
OR = {
root = { has_relation_crush = prev }
has_relation_friend = root
}
this != scope:guest_of_interest_1
}
alternative_limit = { #We would rather have someone interesting
playdate_2001_guest_of_interest_1_trigger = yes
is_of_major_interest_to_root_trigger = yes
this != scope:guest_of_interest_1
}
alternative_limit = {
playdate_2001_guest_of_interest_1_trigger = yes
this != scope:guest_of_interest_1
}
save_scope_as = guest_of_interest_2
save_scope_as = portrait_2
}
if = {
limit = {
any_attending_character = {
playdate_2001_guest_of_interest_1_trigger = yes
NOR = {
this = scope:guest_of_interest_1
this = scope:guest_of_interest_2
}
}
}
random_attending_character = {
limit = { #We would rather have someone interesting
playdate_2001_guest_of_interest_1_trigger = yes
is_of_major_interest_to_root_trigger = yes
NOR = {
this = scope:guest_of_interest_1
this = scope:guest_of_interest_2
}
}
alternative_limit = {
playdate_2001_guest_of_interest_1_trigger = yes
NOR = {
this = scope:guest_of_interest_1
this = scope:guest_of_interest_2
}
}
save_scope_as = guest_of_interest_3
save_scope_as = portrait_3
}
}
}
}
if = {
limit = {
any_attending_character = {
playdate_2001_guest_of_interest_4_trigger = yes
}
}
random_attending_character = {
limit = {
playdate_2001_guest_of_interest_4_trigger = yes
}
save_scope_as = guest_of_interest_4
save_scope_as = portrait_4
}
}
}
if = {
limit = {
NOT = {
exists = scope:portrait_1
}
}
scope:activity = {
random_attending_character = {
limit = {
is_physically_able = yes
this != root
}
save_scope_as = portrait_1
}
}
}
}
option = {
name = playdate.2001.a
custom_tooltip = playdate.2001.a.tt
}
}
# No guests showed up
# by Linnéa Thimrén
playdate.2003 = {
type = character_event
title = playdate.2003.t
desc = playdate.2003.desc
theme = playdate_activity
left_portrait = {
character = root
animation = crying
}
option = {
name = playdate.2003.a
stress_impact = {
base = minor_stress_impact_gain
gregarious = medium_stress_impact_gain
charming = medium_stress_impact_gain
shy = minor_stress_impact_loss
pensive = minor_stress_impact_loss
}
}
}
## START EVENTS FOR GUESTS
# Generic start event for guests
# by Linnéa Thimrén
playdate.2501 = {
type = activity_event
title = playdate.2501.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
has_relation_rival = scope:host
has_relation_bully = scope:host
has_relation_victim = scope:host
reverse_opinion = {
target = scope:host
value < -40
}
}
}
desc = playdate.2501.dislikes_host
}
desc = playdate.2501.likes_host
}
}
theme = playdate_activity
left_portrait = {
character = scope:activity.activity_host
animation = happiness
}
right_portrait = {
character = root
triggered_animation = {
trigger = {
OR = {
has_relation_rival = scope:host
has_relation_bully = scope:host
has_relation_victim = scope:host
reverse_opinion = {
target = scope:host
value < -40
}
}
}
animation = boredom
}
animation = admiration
}
trigger = {
this != scope:activity.activity_host
}
immediate = {
play_music_cue = mx_cue_banquet
trigger_event = { on_action = playdate_event_selection days = 15 }
}
option = {
name = {
trigger = {
OR = {
has_relation_rival = scope:activity.activity_host
has_relation_bully = scope:activity.activity_host
has_relation_victim = scope:activity.activity_host
reverse_opinion = {
target = scope:activity.activity_host
value < -40
}
}
}
text = playdate.2501.a_dislike
}
name = {
trigger = { always = yes }
text = playdate.2501.a
}
}
}
#################################
## ONGOING EVENTS
## 3000-8999
## by Linnéa Thimrén
#################################
# Get friend or victim
# by Linnéa Thimrén
playdate.3001 = {
type = activity_event
title = playdate.3001.t
desc = playdate.3001.desc
theme = playdate_activity
override_background = { reference = courtyard }
left_portrait = {
character = root
animation = shock
}
center_portrait = {
character = scope:peasant_child
animation = rage
}
right_portrait = {
character = scope:guest
animation = fear
}
cooldown = { months = 3 }
trigger = {
scope:activity ?= {
any_attending_character = {
playdate_default_participant_trigger = yes
this != root
NOR = {
has_relation_friend = root
has_relation_victim = root
}
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
this != root
playdate_default_participant_trigger = yes
NOR = {
has_relation_friend = root
has_relation_victim = root
}
}
weight = {
base = 1
compare_modifier = { #More likely to pick someone bad at fighting
value = prowess
multiplier = -2
}
#More likely the closer to your age they are
playdate_close_age_scripted_modifier = yes
}
save_scope_as = guest
}
}
if = {
limit = {
is_ai = no
}
create_character = {
template = child_peasant_character
age = { 13 15 }
location = root.location
gender_female_chance = 50
culture = root.location.culture
faith = root.location.faith
save_scope_as = peasant_child
}
}
}
option = { #help them
name = playdate.3001.a
set_relation_friend = { reason = friend_saved_as_children target = scope:guest }
scope:activity = {
add_activity_log_entry = {
key = playdate_saved_from_bully_log
tags = { good }
score = 25
character = root
target = scope:guest
}
}
scope:guest = {
add_opinion = {
target = root
modifier = kindness_opinion
opinion = 30
}
}
random = {
chance = 10
send_interface_toast = {
title = playdate.3001.a_injured
left_icon = root
increase_wounds_no_death_effect = { REASON = fight }
}
}
stress_impact = {
callous = medium_stress_impact_gain
rowdy = medium_stress_impact_loss
pensive = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.75
}
}
}
option = { #scream for help
name = playdate.3001.b
scope:guest = {
add_opinion = {
target = root
modifier = kindness_opinion
opinion = 30
}
}
stress_impact = {
callous = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
rowdy = minor_stress_impact_gain
pensive = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = -1
}
}
}
option = { #join in
name = playdate.3001.c
if = {
limit = {
NOR = {
has_relation_bully = scope:guest
has_relation_victim = scope:guest
}
}
set_relation_victim = scope:guest
}
scope:guest = {
add_opinion = {
target = root
modifier = cruelty_opinion
opinion = -30
}
increase_wounds_no_death_effect = { REASON = fight }
}
if = {
limit = {
exists = scope:peasant_child
}
scope:peasant_child = {
add_opinion = {
target = root
modifier = cruelty_opinion
opinion = 30
}
}
}
scope:activity = {
add_activity_log_entry = {
key = playdate_joined_beating_log
tags = { bad }
score = 25
character = root
target = scope:guest
}
}
stress_impact = {
rowdy = medium_stress_impact_loss
callous = minor_stress_impact_loss
sadistic = medium_stress_impact_loss
compassionate = medium_stress_impact_gain
pensive = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = -1
}
}
}
}
# Discover secret or spend time with your crush/friend
# by Linnéa Thimrén
scripted_trigger playdate_3002_secret_trigger = {
NOT = {
any_secret_knower = { this = root }
}
save_temporary_scope_as = secret_temp
secret_owner = { save_temporary_scope_as = owner_check }
scope:activity = {
any_attending_character = {
this != scope:owner_check
}
}
scope:activity = { #Is there a possible bystander character?
any_attending_character = {
this != root
playdate_default_participant_trigger = yes
NOT = {
any_secret = {
this = scope:secret_temp
}
}
}
}
}
scripted_trigger playdate_3002_close_participant_trigger = {
playdate_default_participant_trigger = yes
this != root
NOT = { any_secret = { this = scope:secret } }
}
playdate.3002 = {
type = activity_event
title = playdate.3002.t
desc = playdate.3002.desc
theme = playdate_activity
left_portrait = {
character = scope:close_participant
animation = chess_certain_win
}
center_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:secret_holder
animation = eccentric
}
cooldown = { months = 3 }
trigger = {
scope:activity ?= {
OR = {
activity_location.county.holder = {
any_courtier_or_guest = {
this != root
any_secret = {
playdate_3002_secret_trigger = yes
}
}
}
any_attending_character = {
this != root
any_secret = {
playdate_3002_secret_trigger = yes
}
}
}
}
}
weight_multiplier = {
base = 0.5
modifier = { #More likely to trigger if you have a crush/friend there to distract you
add = 0.5
scope:activity = {
OR = {
activity_location.county.holder = {
any_courtier_or_guest = {
any_secret = {
playdate_3002_secret_trigger = yes
}
}
}
any_attending_character = {
any_secret = {
playdate_3002_secret_trigger = yes
}
}
}
any_attending_character = {
playdate_default_participant_trigger = yes
OR = {
root = { has_relation_crush = prev }
has_relation_friend = root
}
}
}
}
}
immediate = {
scope:activity = {
#Find a secret and a secret holder
if = {
limit = { #Does a participant have a secret?
any_attending_character = {
this != root
any_secret = {
playdate_3002_secret_trigger = yes
}
}
}
random_attending_character = {
limit = {
this != root
any_secret = {
playdate_3002_secret_trigger = yes
}
}
save_scope_as = secret_holder
random_secret = {
limit = {
playdate_3002_secret_trigger = yes
}
save_scope_as = secret
}
}
}
else = { #If no participant have a secret you get a random courtier's
activity_location.county.holder = {
random_courtier_or_guest = {
limit = {
this != root
any_secret = {
playdate_3002_secret_trigger = yes
}
}
save_scope_as = secret_holder
random_secret = {
limit = {
playdate_3002_secret_trigger = yes
}
save_scope_as = secret
}
}
}
}
# Save crush/friend/person
random_attending_character = {
limit = {
playdate_3002_close_participant_trigger = yes
root = { has_relation_crush = prev }
}
alternative_limit = {
playdate_3002_close_participant_trigger = yes
has_relation_friend = root
}
alternative_limit = {
playdate_3002_close_participant_trigger = yes
}
weight = {
base = 1
opinion_modifier = { #More likely to be picked if they like you
opinion_target = root
multiplier = 1
}
}
save_scope_as = close_participant
}
}
}
option = { # Spend time with crush/friend
name = playdate.3002.a
scope:close_participant = {
add_opinion = {
target = root
modifier = friendliness_opinion
opinion = 40
}
}
stress_impact = {
charming = medium_stress_impact_loss
curious = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { #Learn the secret!
name = playdate.3002.b
scope:secret = {
reveal_to = root
}
scope:close_participant = {
add_opinion = {
target = root
modifier = friendliness_opinion
opinion = -10
}
}
stress_impact = {
charming = medium_stress_impact_gain
curious = medium_stress_impact_loss
bossy = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = -1
}
}
}
}
# Spend time with cat
# by Linnéa Thimrén
scripted_trigger playdate_3003_guest_trigger = {
playdate_default_participant_trigger = yes
this != root
any_owned_story = {
OR = {
story_type = story_cycle_pet_dog
story_type = story_cycle_pet_cat
}
}
}
playdate.3003 = {
type = activity_event
title = playdate.3003.t
desc = {
desc = playdate.3003.desc_opening
first_valid = {
triggered_desc = {
trigger = {
exists = scope:bonding_cat
}
desc = {
desc = playdate.3003.desc_bonding_cat_opening
desc = playdate.3003.desc_bonding_cat
}
}
triggered_desc = {
trigger = {
exists = scope:bonding_dog
}
desc = {
desc = playdate.3003.desc_bonding_dog_opening
desc = playdate.3003.desc_bonding_dog
}
}
}
}
theme = playdate_activity
override_background = {
trigger = { exists = scope:bonding_dog }
reference = ep2_dog_kennels
}
left_portrait = {
character = root
animation = clutching_ball
}
right_portrait = {
character = scope:guest
animation = ecstasy
}
cooldown = { months = 3 }
trigger = {
any_owned_story = {
type = story_cycle_pet_cat
}
scope:activity ?= {
any_attending_character = {
playdate_3003_guest_trigger = yes
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
playdate_3003_guest_trigger = yes
}
weight = {
base = 1
modifier = { #More likely to pick someone who has a dog so you can take it...
add = 100
any_owned_story = {
type = story_cycle_pet_dog
}
}
}
save_scope_as = guest
if = { # Is it a cat or a dog they have?
limit = {
any_owned_story = {
type = story_cycle_pet_dog
}
}
random_owned_story = {
type = story_cycle_pet_dog
save_scope_as = their_story
}
save_scope_value_as = {
name = bonding_dog
value = yes
}
}
else = {
random_owned_story = {
type = story_cycle_pet_cat
save_scope_as = their_story
}
save_scope_value_as = {
name = bonding_cat
value = yes
}
}
}
}
}
option = { # You have a cute animal!!
name = {
trigger = { exists = scope:bonding_cat }
text = playdate.3003.a_cat
}
name = {
trigger = { exists = scope:bonding_dog }
text = playdate.3003.a_dog
}
progress_towards_friend_effect = {
REASON = friend_pet
CHARACTER = scope:guest
OPINION = default_friend_opinion
}
stress_impact = {
callous = minor_stress_impact_gain
charming = medium_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 0.75
}
}
}
option = { # Hmm, my dog now.
name = playdate.3003.b
trigger = {
exists = scope:bonding_dog
NOT = {
any_owned_story = {
type = story_cycle_pet_dog
}
}
}
scope:guest = {
transfer_dog_story_cycle_to_effect = {
CHARACTER = root
STORY = scope:their_story
}
}
if = {
limit = {
NOR = {
has_relation_bully = scope:guest
has_relation_victim = scope:guest
}
}
set_relation_victim = scope:guest
scope:guest = {
add_opinion = {
target = root
modifier = hate_opinion
opinion = -20
}
}
scope:activity = {
add_activity_log_entry = {
key = playdate_stole_pet_log
tags = { bad }
score = 25
character = root
target = scope:guest
}
}
}
else = {
progress_towards_rival_effect = {
CHARACTER = scope:guest
REASON = rival_guest_pet
OPINION = default_rival_opinion
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
charming = medium_stress_impact_gain
greedy = medium_stress_impact_loss
bossy = medium_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = 0.75
ai_compassion = -0.75
}
}
}
option = { #Your pet looks like shit
name = playdate.3003.c
add_prestige = medium_prestige_gain
progress_towards_rival_effect = {
CHARACTER = scope:guest
REASON = rival_pet_insulted
OPINION = default_rival_opinion
}
stress_impact = {
compassionate = medium_stress_impact_gain
charming = medium_stress_impact_gain
arrogant = medium_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 0.75
}
}
}
}
# Spend time with dog
# by Linnéa Thimrén
playdate.3004 = {
type = activity_event
title = playdate.3004.t
desc = {
desc = playdate.3004.desc_opening
first_valid = {
triggered_desc = {
trigger = {
exists = scope:bonding_cat
}
desc = {
desc = playdate.3004.desc_bonding_cat_opening
desc = playdate.3003.desc_bonding_cat
}
}
triggered_desc = {
trigger = {
exists = scope:bonding_dog
}
desc = {
desc = playdate.3004.desc_bonding_dog_opening
desc = playdate.3003.desc_bonding_dog
}
}
}
}
theme = playdate_activity
override_background = { reference = ep2_dog_kennels }
left_portrait = {
character = root
animation = clutching_ball
}
right_portrait = {
character = scope:guest
animation = ecstasy
}
cooldown = { months = 3 }
trigger = {
any_owned_story = {
type = story_cycle_pet_dog
}
scope:activity ?= {
any_attending_character = {
playdate_3003_guest_trigger = yes
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
playdate_3003_guest_trigger = yes
}
weight = {
base = 1
modifier = { #More likely to pick someone who has a cat so you can take it...
add = 100
any_owned_story = {
type = story_cycle_pet_cat
}
}
}
save_scope_as = guest
if = { # Is it a cat or a cat they have?
limit = {
any_owned_story = {
type = story_cycle_pet_cat
}
}
random_owned_story = {
type = story_cycle_pet_cat
save_scope_as = their_story
}
save_scope_value_as = {
name = bonding_cat
value = yes
}
}
else = {
random_owned_story = {
type = story_cycle_pet_dog
save_scope_as = their_story
}
save_scope_value_as = {
name = bonding_dog
value = yes
}
}
}
}
}
option = { # You have a cute animal!!
name = {
trigger = { exists = scope:bonding_cat }
text = playdate.3003.a_cat
}
name = {
trigger = { exists = scope:bonding_dog }
text = playdate.3003.a_dog
}
progress_towards_friend_effect = {
REASON = friend_pet
CHARACTER = scope:guest
OPINION = default_friend_opinion
}
stress_impact = {
callous = minor_stress_impact_gain
charming = medium_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 0.75
}
}
}
option = { # Hmm, my cat now.
name = playdate.3004.b
trigger = {
exists = scope:bonding_cat
NOT = {
any_owned_story = {
type = story_cycle_pet_cat
}
}
}
scope:guest = {
transfer_cat_story_cycle_to_effect = {
CHARACTER = root
STORY = scope:their_story
}
}
if = {
limit = {
NOR = {
has_relation_bully = scope:guest
has_relation_victim = scope:guest
}
}
set_relation_victim = scope:guest
scope:guest = {
add_opinion = {
target = root
modifier = hate_opinion
opinion = -20
}
}
scope:activity = {
add_activity_log_entry = {
key = playdate_stole_pet_log
tags = { bad }
score = 25
character = root
target = scope:guest
}
}
}
else = {
progress_towards_rival_effect = {
CHARACTER = scope:guest
REASON = rival_guest_pet
OPINION = default_rival_opinion
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
charming = medium_stress_impact_gain
greedy = medium_stress_impact_loss
bossy = medium_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = 0.75
ai_compassion = -0.75
}
}
}
option = { #Your pet looks like shit
name = playdate.3004.c
add_prestige = medium_prestige_gain
progress_towards_rival_effect = {
CHARACTER = scope:guest
REASON = rival_pet_insulted
OPINION = default_rival_opinion
}
stress_impact = {
compassionate = medium_stress_impact_gain
charming = medium_stress_impact_gain
arrogant = medium_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 0.75
}
}
}
}
# Someone learns one of your secrets
# by Linnéa Thimrén
playdate.3005 = {
type = activity_event
title = playdate.3005.t
desc = playdate.3005.desc
theme = playdate_activity
left_portrait = {
character = root
animation = stress
}
right_portrait = {
character = scope:guest
animation = shock
}
lower_right_portrait = scope:secret_owner
lower_center_portrait = scope:secret.secret_target
cooldown = { months = 3 }
trigger = {
scope:activity ?= {
any_attending_character = {
playdate_default_participant_trigger = yes
this != root
save_temporary_scope_as = guest_check
NOT = {
any_known_secret = {
OR = {
secret_owner = root
any_secret_knower = { this = root }
}
}
}
}
}
any_known_secret = {
NOR = {
secret_owner = root
secret_owner = { this = scope:guest_check }
any_secret_knower = { this = scope:guest_check }
}
}
}
immediate = {
scope:activity = {
random_attending_character = { #to save a participant who can learn your secret
limit = {
this != root
playdate_default_participant_trigger = yes
NOT = {
any_known_secret = {
OR = {
secret_owner = root
any_secret_knower = { this = root }
}
}
}
}
save_scope_as = guest
}
}
random_known_secret = {
limit = {
NOR = {
secret_owner = root
secret_owner = { this = scope:guest }
any_secret_knower = { this = scope:guest }
}
}
save_scope_as = secret
reveal_to = scope:guest
}
scope:secret = {
secret_owner = {
save_scope_as = secret_owner
}
if = {
limit = {
exists = secret_target
}
secret_target = {
save_scope_as = secret_target
}
}
}
}
option = { # Just panic
name = playdate.3005.a
stress_impact = {
charming = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = -0.5
}
}
}
option = { # Promise them a favor
name = playdate.3005.b
trigger = {
scope:guest = {
can_add_hook = {
target = root
type = favor_hook
}
}
}
custom_tooltip = promise_to_keep_secret
scope:guest = {
add_hook = {
target = root
type = favor_hook
}
}
scope:secret = {
set_variable = {
name = promised_not_to_reveal
value = scope:guest
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
ambitious = minor_stress_impact_gain
paranoid = medium_stress_impact_gain
charming = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = -0.75
}
}
}
option = { # Pay them off
name = playdate.3005.c
trigger = {
short_term_gold >= medium_gold_value
}
show_as_unavailable = {
short_term_gold < medium_gold_value
}
custom_tooltip = promise_to_keep_secret
pay_short_term_gold = {
target = scope:guest
gold = medium_gold_value
}
scope:secret = {
set_variable = {
name = promised_not_to_reveal
value = scope:guest
}
}
stress_impact = {
greedy = medium_stress_impact_gain
bossy = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -0.75
}
}
}
option = { # Threaten them
name = playdate.3005.d
duel = {
skill = prowess
target = scope:guest
20 = {
desc = playdate.3005.d.success
custom_tooltip = promise_to_keep_secret
compare_modifier = {
value = scope:duel_value
multiplier = 1
min = -19
}
send_interface_toast = {
title = playdate.3005.d.success
left_icon = scope:guest
scope:guest = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = 20
}
}
}
scope:secret = {
set_variable = {
name = promised_not_to_reveal
value = scope:guest
}
}
}
10 = {
desc = playdate.3005.d.failure
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = playdate.3005.d.failure
left_icon = scope:guest
scope:secret = {
expose_secret = scope:guest
}
}
scope:activity = {
add_activity_log_entry = {
key = playdate_revealed_secret_log
tags = { bad }
score = 10
character = root
target = scope:secret_owner
}
}
}
}
stress_impact = {
rowdy = medium_stress_impact_loss
bossy = medium_stress_impact_loss
compassionate = major_stress_impact_gain
shy = medium_stress_impact_gain
honest = minor_stress_impact_gain
humble = minor_stress_impact_gain
content = minor_stress_impact_gain
pensive = medium_stress_impact_gain
charming = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -0.75
}
}
}
}
# Book nerd - Bond with another nerd or gain learning
# by Linnéa Thimrén
scripted_trigger playdate_3006_fellow_nerd_trigger = {
playdate_default_participant_trigger = yes
this != root
age >= 9
OR = {
has_trait_introverted_trigger = yes
has_focus = education_learning
}
}
playdate.3006 = {
type = activity_event
title = playdate.3006.t
desc = playdate.3006.desc
theme = playdate_activity
left_portrait = {
character = root
animation = reading
}
right_portrait = {
character = scope:fellow_nerd
animation = reading
}
cooldown = { months = 3 }
trigger = {
OR = {
has_trait_introverted_trigger = yes
has_focus = education_learning
}
scope:activity ?= {
any_attending_character = {
playdate_3006_fellow_nerd_trigger = yes
}
}
}
weight_multiplier = {
base = 0.5
modifier = {
add = 0.5
has_focus = education_learning
}
}
immediate = {
set_random_informative_text_effect = yes
scope:activity = {
random_attending_character = {
limit = {
playdate_3006_fellow_nerd_trigger = yes
}
weight = {
base = 1
modifier = {
add = 100
has_relation_potential_friend = root
}
modifier = {
add = 4
has_focus = education_learning
}
#More likely the closer to your age they are
playdate_close_age_scripted_modifier = yes
}
save_scope_as = fellow_nerd
}
}
}
option = { #Talk with them instead
name = playdate.3006.a
progress_towards_friend_effect = {
REASON = friend_fellow_nerd
CHARACTER = scope:fellow_nerd
OPINION = default_friend_opinion
}
stress_impact = {
diligent = medium_stress_impact_gain
gregarious = medium_stress_impact_loss
charming = medium_stress_impact_loss
curious = medium_stress_impact_loss
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_compassion = 0.5
ai_honor = 0.25
}
}
}
option = { #Focus on reading
name = playdate.3006.b
add_learning_skill = 1
scope:fellow_nerd = {
add_opinion = {
target = root
modifier = rude_opinion
opinion = -30
}
}
scope:activity = {
add_activity_log_entry = {
key = playdate_avid_reader_log
tags = { good }
score = 5
character = root
}
}
stress_impact = {
callous = medium_stress_impact_loss
shy = medium_stress_impact_loss
diligent = minor_stress_impact_loss
pensive = medium_stress_impact_loss
bossy = minor_stress_impact_loss
compassionate = medium_stress_impact_gain
charming = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = -0.5
ai_rationality = 0.25
}
}
}
}
# Climb tree (or other appropriate object)
# by Linnéa Thimrén
playdate.3007 = {
type = activity_event
title = playdate.3007.t
desc = playdate.3007.desc
theme = playdate_activity
override_background = {
reference = terrain_activity
}
left_portrait = {
character = root
animation = happiness
}
right_portrait = {
character = scope:participant
animation = go_to_your_room
}
cooldown = { years = 3 }
trigger = {
scope:activity ?= {
any_attending_character = {
playdate_default_participant_trigger = yes
this != root
}
}
}
weight_multiplier = {
base = 0.5
modifier = {
add = 0.5
scope:activity = {
any_attending_character = {
this != root
playdate_default_participant_trigger = yes
has_trait = rowdy
}
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
this != root
playdate_default_participant_trigger = yes
has_trait = rowdy
}
alternative_limit = {
playdate_default_participant_trigger = yes
}
weight = {
base = 1
ai_value_modifier = {
ai_boldness = 0.75
}
#More likely the closer to your age they are
playdate_close_age_scripted_modifier = yes
}
save_scope_as = participant
}
}
}
option = { # Climb the tree
name = playdate.3007.a
random_list = {
90 = {
desc = playdate.3007.a.success
modifier = {
add = -70
OR = {
has_trait = physique_bad
has_trait = spindly
has_trait = weak
}
}
send_interface_toast = {
title = playdate.3007.a.success
left_icon = root
add_prowess_skill = 1
}
scope:activity = {
add_activity_log_entry = {
key = playdate_excellent_climbing_log
tags = { good }
score = 10
character = root
}
}
}
10 = {
desc = playdate.3007.a.failure
send_interface_toast = {
title = playdate.3007.a.failure
left_icon = root
increase_wounds_no_death_effect = { REASON = fall }
}
scope:activity = {
add_activity_log_entry = {
key = hurt_while_climbing_log
tags = { bad }
score = 25
character = root
}
}
}
}
scope:participant = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = 30
}
}
stress_impact = {
brave = medium_stress_impact_loss
rowdy = medium_stress_impact_loss
craven = medium_stress_impact_gain
pensive = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { #No, I don't want to climb
name = playdate.3007.b
scope:participant = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = -20
}
}
add_prestige = medium_prestige_loss
stress_impact = {
brave = medium_stress_impact_gain
rowdy = medium_stress_impact_gain
craven = medium_stress_impact_loss
lazy = medium_stress_impact_loss
pensive = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = -1
ai_energy = -0.75
}
modifier = {
prestige <= medium_prestige_value
factor = 0
}
}
}
}
scripted_trigger appropriate_drowning_target_trigger = {
playdate_default_participant_trigger = yes
this != root
this != scope:activity.activity_host
OR = {
has_trait = wounded
has_trait = maimed
has_trait = physique_bad
has_trait = weak
has_trait = spindly
has_trait = dwarf
has_trait = weak
has_trait = dull
has_trait = intellect_bad
has_trait = brave
prowess <= 1
}
NOT = {
any_sibling = {
even_if_dead = yes
is_alive = no
death_reason = death_drowned
}
}
}
# Going for a swim - someone is about to drown
# by Linnéa Thimrén
playdate.3008 = {
type = activity_event
title = playdate.3008.t
desc = playdate.3008.desc
theme = playdate_activity
override_background = {
reference = docks
}
left_portrait = {
character = root
animation = fear
}
right_portrait = {
character = scope:participant
animation = pain
}
cooldown = { years = 3 }
trigger = {
OR = {
root = scope:activity.activity_host
is_ai = no
}
scope:activity ?= {
root.location = {
NOR = {
terrain = desert
terrain = steppe
terrain = desert_mountains
terrain = drylands
}
}
any_attending_character = {
appropriate_drowning_target_trigger = yes
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
appropriate_drowning_target_trigger = yes
}
weight = {
base = 1
modifier = {
add = 4
OR = {
has_trait = physique_bad
has_trait = spindly
has_trait = weak
}
}
ai_value_modifier = {
ai_energy = 0.5
}
}
save_scope_as = participant
}
}
save_scope_as = host #in case of death notification event
}
option = { # Try to save them - might gain hook
name = playdate.3008.a
duel = {
skill = prowess
value = 6
15 = {
desc = playdate.3008.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = playdate.3008.a.success
left_icon = scope:participant
if = {
limit = {
can_add_hook = {
target = scope:participant
type = saved_my_life_hook
}
}
add_hook = {
target = scope:participant
type = saved_my_life_hook
}
}
scope:participant = {
#Are their parents someone I care about? Then they're also grateful
if = {
limit = {
any_parent = {
is_ruler = yes
}
}
every_parent = {
limit = {
is_ruler = yes
}
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 40
}
}
}
}
}
if = {
limit = {
can_set_relation_friend_trigger = { CHARACTER = scope:participant }
}
set_relation_friend = {
reason = friend_saved_life
target = scope:participant
}
}
}
6 = {
desc = playdate.3008.a.failure
send_interface_toast = {
title = playdate.3008.a.failure
left_icon = scope:participant
scope:participant = {
save_scope_as = drowned_participant
if = {
limit = {
any_parent = {
is_ruler = yes
is_alive = yes
is_ai = no
}
}
every_parent = {
limit = {
is_ruler = yes
is_alive = yes
is_ai = no
}
trigger_event = playdate.4000
}
}
death = { death_reason = death_drowned }
}
}
}
1 = {
desc = playdate.3008.a.critical_failure
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = playdate.3008.a.critical_failure
left_icon = scope:participant
scope:participant = {
save_scope_as = drowned_participant
if = {
limit = {
any_parent = {
is_ruler = yes
is_alive = yes
is_ai = no
}
}
every_parent = {
limit = {
is_ruler = yes
is_alive = yes
is_ai = no
}
trigger_event = playdate.4000
}
}
death = { death_reason = death_drowned }
}
add_character_modifier = {
modifier = almost_drowned_modifier
years = 5
}
}
}
}
stress_impact = {
callous = medium_stress_impact_gain
brave = medium_stress_impact_loss
rowdy = medium_stress_impact_loss
pensive = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 0.5
ai_honor = 0.25
}
}
}
option = { #Please, help!
name = playdate.3008.b
add_character_modifier = {
modifier = playdate_showing_weakness_modifier
years = 5
}
random_list = {
80 = {
desc = playdate.3008.b.success
send_interface_toast = {
title = playdate.3008.b.success
left_icon = scope:participant
scope:participant = {
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 30
}
}
}
}
20 = {
desc = playdate.3008.b.failure
send_interface_toast = {
title = playdate.3008.b.failure
left_icon = scope:participant
scope:participant = {
save_scope_as = drowned_participant
if = {
limit = {
any_parent = {
is_ruler = yes
is_alive = yes
is_ai = no
}
}
every_parent = {
limit = {
is_ruler = yes
is_alive = yes
is_ai = no
}
trigger_event = playdate.4000
}
}
death = { death_reason = death_drowned }
}
}
}
}
stress_impact = {
arrogant = major_stress_impact_gain
callous = medium_stress_impact_gain
charming = minor_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
add = 50
prowess <= low_skill_rating
}
ai_value_modifier = {
ai_boldness = -2
ai_energy = -0.5
ai_compassion = 0.5
}
}
}
option = { #No, I'll let them drown
name = playdate.3008.c
scope:participant = {
#Their parents are not impressed
if = {
limit = {
any_parent = {
is_alive = yes
is_ai = yes
}
}
every_parent = {
limit = {
is_alive = yes
is_ai = no
}
root = { #We need to do these jumps for the tooltip to show correctly
progress_towards_rival_effect = {
CHARACTER = prev
REASON = rival_let_child_drown
OPINION = default_rival_opinion
}
}
}
}
save_scope_as = drowned_participant
if = {
limit = {
any_parent = {
is_alive = yes
is_ai = no
}
}
every_parent = {
limit = {
is_alive = yes
is_ai = no
}
trigger_event = playdate.4000
}
}
death = { death_reason = death_drowned }
}
stress_impact = {
base = medium_stress_impact_gain
compassionate = major_stress_impact_gain
callous = medium_stress_impact_loss
sadistic = medium_stress_impact_loss
curious = medium_stress_impact_loss
}
ai_chance = {
base = 45
ai_value_modifier = {
ai_boldness = -2
ai_energy = -0.5
ai_compassion = -1
}
}
}
after = {
if = {
limit = {
scope:participant = {
is_alive = no
}
exists = scope:activity
}
scope:activity = {
add_activity_log_entry = {
key = playdate_drowned_log
tags = { bad }
score = 100
character = scope:participant
}
}
}
}
}
# Snow fight!
# by Linnéa Thimrén
scripted_trigger playdate_3009_second_participant_trigger = {
playdate_default_participant_trigger = yes
this != root
this != scope:participant
}
playdate.3009 = {
type = activity_event
title = playdate.3009.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:to_blame
}
desc = playdate.3009.desc_two
}
desc = playdate.3009.desc_opening
}
desc = playdate.3009.desc
}
theme = playdate_activity
override_background = {
reference = ep2_hunt_snowy_forest
}
left_portrait = {
character = root
animation = fear
}
center_portrait = {
character = scope:to_blame
animation = crying
}
right_portrait = {
character = scope:participant
animation = eccentric
}
cooldown = { months = 3 }
trigger = {
scope:activity ?= {
any_attending_character = {
playdate_default_participant_trigger = yes
this != root
}
activity_location = {
OR = {
has_province_modifier = winter_mild_modifier
has_province_modifier = winter_normal_modifier
has_province_modifier = winter_harsh_modifier
}
}
}
}
weight_multiplier = {
base = 0.75
modifier = {
add = 0.25
has_trait = rowdy
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
playdate_default_participant_trigger = yes
this != root
}
weight = {
base = 1
modifier = {
add = 2
has_trait = rowdy
}
#More likely the closer to your age they are
playdate_close_age_scripted_modifier = yes
}
save_scope_as = participant
}
if = {
limit = {
any_attending_character = {
playdate_3009_second_participant_trigger = yes
}
}
random_attending_character = {
limit = {
playdate_3009_second_participant_trigger = yes
}
weight = {
base = 1
modifier = { #more likely to pick someone you don't like
add = 5
OR = {
has_relation_rival = root
has_relation_potential_rival = root
has_relation_bully = root
}
}
}
save_scope_as = to_blame
}
}
}
}
option = { #I will not back down!
name = playdate.3009.a
duel = {
skill = prowess
target = scope:participant
40 = {
desc = playdate.3009.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 1
min = -19
}
send_interface_toast = {
title = playdate.3009.a.success
left_icon = scope:participant
add_martial_skill = 1
add_character_modifier = {
modifier = playdate_shown_bravery_modifier
years = 5
}
}
}
10 = {
desc = playdate.3009.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = playdate.3009.a.failure
left_icon = scope:participant
increase_wounds_no_death_effect = { REASON = fight }
}
}
}
progress_towards_friend_effect = {
REASON = friend_snowball_fight
CHARACTER = scope:participant
OPINION = default_friend_opinion
}
stress_impact = {
brave = medium_stress_impact_loss
rowdy = medium_stress_impact_loss
bossy = minor_stress_impact_loss
craven = medium_stress_impact_gain
pensive = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.75
ai_energy = 0.5
ai_honor = 0.5
}
}
}
option = { #no, pls
name = playdate.3009.b
add_prestige = minor_prestige_loss
scope:participant = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = -15
}
}
random = {
chance = 25
send_interface_toast = {
title = skill_increased
left_icon = root
add_diplomacy_skill = 1
}
}
stress_impact = {
brave = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
rowdy = medium_stress_impact_gain
bossy = minor_stress_impact_gain
craven = medium_stress_impact_loss
charming = minor_stress_impact_loss
pensive = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = -0.75
}
}
}
option = { #it was them, not me!!
name = playdate.3009.c
trigger = {
exists = scope:to_blame
}
duel = {
skill = diplomacy
target = scope:to_blame
20 = {
desc = playdate.3009.c.success
compare_modifier = {
value = scope:duel_value
multiplier = 1
min = -19
}
add_intrigue_skill = 1
send_interface_toast = {
title = playdate.3009.c.success
left_icon = scope:participant
scope:participant = {
add_opinion = {
target = root
modifier = trust_opinion
opinion = 30
}
}
}
scope:participant = {
if = {
limit = {
NOT = {
has_relation_rival = scope:to_blame
}
}
set_relation_rival = {
target = scope:to_blame
reason = rival_shifted_blame
}
}
}
}
10 = {
desc = playdate.3009.c.failure
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = playdate.3009.c.failure
left_icon = scope:participant
progress_towards_rival_effect = {
CHARACTER = scope:participant
REASON = rival_playdate_lie
OPINION = 0
}
scope:participant = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = -15
}
}
}
}
}
progress_towards_rival_effect = {
CHARACTER = scope:to_blame
REASON = rival_playdate_lie
OPINION = default_rival_opinion
}
stress_impact = {
deceitful = medium_stress_impact_loss
curious = minor_stress_impact_loss
charming = minor_stress_impact_loss
honest = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_vengefulness = 0.75
ai_honor = -0.75
}
}
}
}
# Go to local market and try to make merchant accept leaves as currency
# by Linnéa Thimrén
playdate.3010 = {
type = activity_event
title = playdate.3010.t
desc = playdate.3010.desc
theme = playdate_activity
override_background = {
reference = market
}
left_portrait = {
character = root
animation = steward
}
center_portrait = {
character = scope:participant
animation = eccentric
}
right_portrait = {
character = scope:merchant
animation = laugh
}
cooldown = { months = 3 }
trigger = {
scope:activity ?= {
any_attending_character = {
playdate_default_participant_trigger = yes
this != root
}
}
NOT = {
any_character_artifact = {
has_variable = playdate_trinket
}
}
}
weight_multiplier = {
base = 0.75
modifier = {
add = 0.25
has_focus = education_stewardship
}
}
immediate = {
create_character = {
template = merchant_template
dynasty = none
location = scope:activity.activity_location
save_scope_as = merchant
}
scope:activity = {
random_attending_character = {
limit = {
playdate_default_participant_trigger = yes
this != root
}
weight = {
base = 1
modifier = {
add = 2
has_focus = education_stewardship
}
#More likely the closer to your age they are
playdate_close_age_scripted_modifier = yes
}
save_scope_as = participant
}
}
hidden_effect = {
scope:merchant = {
create_artifact = {
name = playdate_minor_trinket_modifier
description = playdate_minor_trinket_modifier_desc
template = child_toy_template
type = miscellaneous
visuals = small_box
modifier = artifact_monthly_prestige_1_modifier
modifier = artifact_child_opinion_2_modifier
save_scope_as = newly_created_artifact
}
hidden_effect_new_object = {
scope:newly_created_artifact = {
flag_as_trash_artifact = yes
set_variable = {
name = playdate_trinket
value = yes
}
}
}
}
}
}
option = { # Convince them to accept the payment
name = playdate.3010.a
duel = {
skill = diplomacy
value = 8
40 = {
desc = playdate.3010.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 1
min = -19
}
send_interface_toast = {
title = playdate.3010.a.success
left_icon = root
add_stewardship_skill = 1
scope:participant = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = 30
}
}
}
scope:activity = {
add_activity_log_entry = {
key = playdate_imaginary_currency_log
tags = { good }
score = 10
character = root
}
}
}
10 = {
desc = playdate.3010.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = playdate.3010.a.failure
left_icon = root
add_character_modifier = {
modifier = playdate_fumbling_merchant_modifier
years = 5
}
scope:participant = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = -15
}
}
}
}
}
stress_impact = {
eccentric = minor_stress_impact_loss
diligent = minor_stress_impact_loss
gregarious = minor_stress_impact_loss
ambitious = minor_stress_impact_loss
bossy = medium_stress_impact_loss
curious = minor_stress_impact_loss
shy = medium_stress_impact_gain
pensive = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.75
ai_energy = 0.5
ai_rationality = -0.5
}
}
}
option = { # You have to give me stuff!! I'm a LORD
name = playdate.3010.b
trigger = { # To not spawn too many artifacts on unlanded characters
is_ruler = yes
}
scope:activity.activity_location.county = {
add_county_modifier = {
modifier = harassing_merchants_modifier
years = 10
}
}
scope:newly_created_artifact = {
set_owner = root
add_artifact_history = {
type = given
recipient = root
}
}
stress_impact = {
honest = medium_stress_impact_gain
just = medium_stress_impact_gain
pensive = minor_stress_impact_gain
charming = minor_stress_impact_gain
greedy = minor_stress_impact_loss
arrogant = medium_stress_impact_loss
bossy = medium_stress_impact_loss
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_greed = 0.75
ai_compassion = -0.25
ai_honor = -0.75
}
}
}
option = { # Play store
name = playdate.3010.c
flavor = playdate.3010.c.tt
add_character_modifier = {
modifier = playdate_practicing_trade_modifier
years = 10
}
hidden_effect = {
education_point_acquisition_effect = yes
scope:participant = { education_point_acquisition_effect = yes }
}
progress_towards_friend_effect = {
REASON = friend_childhood_game
CHARACTER = scope:participant
OPINION = 0
}
stress_impact = {
curious = medium_stress_impact_loss
charming = minor_stress_impact_loss
}
ai_chance = {
base = 100
}
}
after = {
hidden_effect = {
if = {
limit = {
scope:newly_created_artifact = {
artifact_owner = scope:merchant
}
}
destroy_artifact = scope:newly_created_artifact
}
scope:merchant = {
silent_disappearance_ai_effect = yes
}
}
}
}
# Playing house
# by Linnéa Thimrén
scripted_trigger playdate_3011_friendly_participant_trigger = {
playdate_default_participant_trigger = yes
NOR = {
has_relation_rival = root
has_relation_victim = root
}
}
scripted_trigger playdate_3011_disliked_participant_trigger = {
playdate_default_participant_trigger = yes
this != scope:participant
OR = {
opinion = {
target = root
value <= -20
}
has_relation_rival = root
has_relation_potential_rival = root
has_relation_victim = root
has_relation_bully = root
}
}
playdate.3011 = {
type = activity_event
title = playdate.3011.t
desc = playdate.3011.desc
theme = playdate_activity
left_portrait = {
character = root
animation = child_hobby_horse
}
center_portrait = {
character = scope:participant
animation = happiness
camera = camera_event_right
}
right_portrait = {
character = scope:disliked_participant
animation = clutching_doll
}
cooldown = { months = 3 }
trigger = {
scope:activity ?= {
any_attending_character = {
playdate_3011_friendly_participant_trigger = yes
}
}
}
weight_multiplier = {
base = 0.75
modifier = {
add = 0.25
scope:activity = { #more likely if there's someone you're crushing on
any_attending_character = {
playdate_3011_friendly_participant_trigger = yes
root = { has_relation_crush = prev }
}
}
}
modifier = {
add = 0.25
scope:activity = { #more likely if there's someone you can crush on
any_attending_character = {
playdate_3011_friendly_participant_trigger = yes
save_good_crush_character_trigger_check = yes
}
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
playdate_3011_friendly_participant_trigger = yes
root = { age > childhood_education_start_age }
save_good_crush_character_trigger_check = yes #A possible crush?
}
alternative_limit = {
playdate_3011_friendly_participant_trigger = yes
}
weight = {
base = 1
modifier = {
add = 2
root = { has_relation_crush = prev }
}
opinion_modifier = { #More likely to be picked if they like you
opinion_target = root
multiplier = 1
}
#More likely the closer to your age they are
playdate_close_age_scripted_modifier = yes
}
save_scope_as = participant
if = {
limit = {
root = { age > childhood_education_start_age }
has_sexual_orientation_trigger = yes
save_good_crush_character_trigger_check = yes #A possible crush?
}
save_scope_value_as = {
name = possible_crush
value = yes
}
hidden_effect = {
#Add a crush from their side if appropriate
if = {
limit = {
NOR = {
has_relation_crush = root
has_relation_bully = root
}
trigger_if = {
limit = {
OR = {
has_sexuality = heterosexual
has_sexuality = bisexual
has_sexuality = homosexual
has_sexuality = asexual
}
}
is_attracted_to_gender_of = root
}
}
random = {
chance = 50
set_relation_crush = root
}
}
}
}
}
#Is someone you dislike there?
if = {
limit = {
any_attending_character = {
playdate_3011_disliked_participant_trigger = yes
}
}
random_attending_character = {
limit = {
playdate_3011_disliked_participant_trigger = yes
}
save_scope_as = disliked_participant
}
}
}
}
option = { # We are the parents!
name = playdate.3011.a
if = {
limit = {
exists = scope:possible_crush
}
set_relation_crush = scope:participant
}
else = {
progress_towards_friend_effect = {
REASON = friend_childhood_game
CHARACTER = scope:participant
OPINION = 0
}
}
scope:participant = {
add_opinion = {
target = root
modifier = friendliness_opinion
opinion = 20
}
}
stress_impact = {
charming = medium_stress_impact_loss
bossy = minor_stress_impact_loss
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.75
ai_energy = 0.25
ai_compassion = 0.25
}
}
}
option = { # Only if disliked_participant is the dog
name = playdate.3011.b
trigger = {
exists = scope:disliked_participant
}
scope:participant = {
add_opinion = {
target = root
modifier = friendliness_opinion
opinion = 20
}
}
progress_towards_rival_effect = {
CHARACTER = scope:disliked_participant
REASON = rival_playdate_bullied
OPINION = default_rival_opinion
}
stress_impact = {
bossy = medium_stress_impact_loss
charming = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_vengefulness = 0.75
ai_compassion = -0.50
ai_honor = -0.25
}
}
}
option = { # No
name = playdate.3011.c
scope:participant = {
add_opinion = {
target = root
modifier = refusal_opinion
opinion = -20
}
}
add_character_modifier = {
modifier = playdate_boring_playmate_modifier
years = 10
}
if = {
limit = {
has_focus = education_learning
}
custom_tooltip = playdate.3011.c.tt
hidden_effect = {
education_point_acquisition_effect = yes
}
}
stress_impact = {
pensive = medium_stress_impact_loss
bossy = minor_stress_impact_loss
curious = minor_stress_impact_loss
charming = medium_stress_impact_gain
rowdy = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_rationality = 0.50
ai_energy = -0.25
ai_boldness = -0.25
}
}
}
}
# Play at being knights
# by Linnéa Thimrén
playdate.3012 = {
type = activity_event
title = playdate.3012.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:knight
}
desc = playdate.3012.desc_knight
}
desc = playdate.3012.desc_no_knight
}
desc = playdate.3012.desc
}
theme = playdate_activity
override_background = {
reference = courtyard
}
left_portrait = {
character = root
animation = admiration
}
center_portrait = {
character = scope:participant
animation = clutching_toy
}
right_portrait = {
character = scope:knight
animation = marshal
}
cooldown = { months = 3 }
trigger = {
scope:activity ?= {
any_attending_character ?= {
playdate_default_participant_trigger = yes
this != root
}
}
}
weight_multiplier = {
base = 0.75
modifier = {
add = 0.25
has_trait = rowdy
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
playdate_default_participant_trigger = yes
this != root
}
weight = {
base = 1
modifier = {
add = 2
has_trait = rowdy
}
ai_value_modifier = {
ai_boldness = 0.5
}
#More likely the closer to your age they are
playdate_close_age_scripted_modifier = yes
}
save_scope_as = participant
}
}
if = {
limit = {
any_knight = {
is_available_ai_adult = yes
}
}
random_knight = {
limit = {
is_available_ai_adult = yes
}
save_scope_as = knight
}
}
}
option = { #Learn the basics
name = playdate.3012.a
random_list = {
80 = {
desc = playdate.3012.a.success
send_interface_toast = {
title = playdate.3012.a.success
left_icon = scope:participant
add_prowess_skill = 1
scope:participant = { add_prowess_skill = 1 }
}
scope:activity = {
add_activity_log_entry = {
key = playdate_trained_with_knights_log
tags = { good }
score = 25
character = root
target = scope:participant
}
}
}
15 = {
desc = playdate.3012.a.neutral
send_interface_toast = {
title = playdate.3012.a.neutral
left_icon = scope:participant
add_stress = medium_stress_gain
}
}
5 = {
desc = playdate.3012.a.failure
send_interface_toast = {
title = playdate.3012.a.failure
left_icon = scope:participant
increase_wounds_no_death_effect = { REASON = training_accident }
}
scope:activity = {
add_activity_log_entry = {
key = playdate_training_injury_log
tags = { bad }
score = 25
character = root
}
}
}
}
progress_towards_friend_effect = {
REASON = friend_childhood_knight
CHARACTER = scope:participant
OPINION = default_friend_opinion
}
stress_impact = {
rowdy = medium_stress_impact_loss
curious = medium_stress_impact_loss
pensive = minor_stress_impact_gain
craven = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.75
ai_energy = 0.5
ai_rationality = -0.25
}
}
}
option = { #No I would rather watch
name = playdate.3012.b
add_martial_skill = 1
scope:activity = {
add_activity_log_entry = {
key = playdate_observed_knights_log
tags = { good }
score = 10
character = root
}
}
scope:participant = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = -20
}
}
if = {
limit = {
exists = scope:knight
}
scope:knight = {
add_opinion = {
target = root
modifier = refusal_opinion
opinion = -10
}
}
}
stress_impact = {
curious = medium_stress_impact_loss
rowdy = medium_stress_impact_gain
brave = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = -0.75
ai_boldness = -0.25
}
}
}
}
# Meet a witch
# by Linnéa Thimrén
playdate.3013 = {
type = activity_event
title = playdate.3013.t
desc = playdate.3013.desc
theme = playdate_activity
override_background = {
reference = wilderness_forest
}
left_portrait = {
character = root
animation = clutching_toy
}
right_portrait = {
character = scope:witch
animation = happy_teacher
}
cooldown = { months = 3 }
trigger = {
OR = {
scope:activity ?= {
any_attending_character = {
this != root
age > root.age
playdate_default_participant_trigger = yes
is_witch_trigger = yes
}
}
scope:activity.activity_location.barony.holder ?= {
any_courtier_or_guest = {
is_available_ai = yes
age > root.age
is_witch_trigger = yes
}
}
}
}
immediate = {
scope:activity = {
if = {
limit = {
any_attending_character = {
this != root
age > root.age
playdate_default_participant_trigger = yes
is_witch_trigger = yes
}
}
random_attending_character = {
limit = {
this != root
age > root.age
playdate_default_participant_trigger = yes
is_witch_trigger = yes
}
weight = {
base = 1
compare_modifier = { #More likely the closer to your age they are
value = {
if = {
limit = {
age > root.age
}
add = age
subtract = root.age
}
else = {
add = root.age
subtract = age
}
}
multiplier = -0.1
}
}
save_scope_as = witch
hidden_effect = { add_trait = lifestyle_herbalist }
if = {
limit = {
any_secret = {
type = secret_witch
}
}
random_secret = {
type = secret_witch
save_scope_as = secret
reveal_to = root
}
}
}
}
else = {
scope:activity.activity_location.barony.holder = {
random_courtier_or_guest = {
limit = {
is_available_ai = yes
age > root.age
is_witch_trigger = yes
}
save_scope_as = witch
hidden_effect = { add_trait = lifestyle_herbalist }
if = {
limit = {
any_secret = {
type = secret_witch
}
}
random_secret = {
type = secret_witch
save_scope_as = secret
reveal_to = root
}
}
}
}
}
}
}
option = { #Teach me plants!
name = playdate.3013.a
random_list = {
80 = {
desc = playdate.3013.a.success
send_interface_toast = {
title = playdate.3013.a.success
left_icon = scope:witch
add_trait = lifestyle_herbalist
}
scope:activity = {
add_activity_log_entry = {
key = playdate_learned_herbalism_log
tags = { good }
score = 10
character = root
}
}
}
20 = {
desc = playdate.3013.a.failure
send_interface_toast = {
title = playdate.3013.a.failure
left_icon = scope:witch
add_stress = medium_stress_gain
}
}
}
stress_impact = {
curious = major_stress_impact_loss
rowdy = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.75
ai_energy = 0.5
ai_rationality = -0.25
}
min = 1
}
}
option = { #I want to be a witch!
name = playdate.3013.b
trigger = {
NOR = {
any_secret = { type = secret_witch }
has_trait = witch
}
}
give_witch_secret_or_trait_effect = yes
hidden_effect = {
if = {
limit = {
any_secret = {
type = secret_witch
}
}
random_secret = {
type = secret_witch
reveal_to = scope:witch
}
}
}
if = {
limit = {
OR = {
trait_is_shunned_in_faith_trigger = {
TRAIT = witch
GENDER_CHARACTER = scope:witch
FAITH = root.faith
}
trait_is_criminal_in_faith_trigger = {
TRAIT = witch
GENDER_CHARACTER = scope:witch
FAITH = root.faith
}
}
}
stress_impact = {
base = minor_stress_impact_gain
zealous = major_stress_impact_gain
curious = major_stress_impact_loss
}
}
else = {
stress_impact = {
curious = major_stress_impact_loss
}
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_rationality = 0.25
ai_zeal = -2
ai_boldness = 0.25
}
modifier = {
factor = 0.33
faith = { has_doctrine = doctrine_witchcraft_crime }
}
modifier = {
factor = 0.66
faith = { has_doctrine = doctrine_witchcraft_shunned }
}
modifier = {
factor = 2
faith = { has_doctrine = doctrine_witchcraft_virtuous }
}
min = 0
}
}
option = { #I'll tell on you!
name = playdate.3013.c
trigger = {
OR = {
trait_is_shunned_in_faith_trigger = {
TRAIT = witch
GENDER_CHARACTER = scope:witch
FAITH = root.faith
}
trait_is_criminal_in_faith_trigger = {
TRAIT = witch
GENDER_CHARACTER = scope:witch
FAITH = root.faith
}
}
exists = scope:secret
scope:secret = {
can_be_exposed_by = root
}
}
scope:secret = {
expose_secret = root
}
add_piety = medium_piety_gain
stress_impact = {
base = minor_stress_impact_loss
zealous = major_stress_impact_loss
curious = medium_stress_impact_gain
charming = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_rationality = 0.75
ai_zeal = 2
ai_compassion = -0.75
ai_boldness = -0.50
}
}
}
}
# Hang with a priest
# by Linnéa Thimrén
scripted_trigger playdate_3014_participant_trigger = {
playdate_default_participant_trigger = yes
this != root
OR = {
has_focus = education_learning
has_trait = pensive
}
}
playdate.3014 = {
type = activity_event
title = playdate.3014.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:participant
}
desc = playdate.3014.desc_participant
}
desc = playdate.3014.desc
}
}
theme = playdate_activity
override_background = {
trigger = {
NOR = {
faith = { religion = religion:hinduism_religion }
faith = { religion = religion:buddhism_religion }
faith = { religion = religion:jainism_religion }
}
}
reference = temple
}
override_background = {
trigger = {
OR = {
faith = { religion = religion:hinduism_religion }
faith = { religion = religion:buddhism_religion }
faith = { religion = religion:jainism_religion }
}
}
reference = study
}
left_portrait = {
character = root
animation = thinking
}
center_portrait = {
character = scope:participant
animation = clutching_ball
}
right_portrait = {
character = scope:priest
animation = reading
}
cooldown = { months = 3 }
trigger = {
exists = cp:councillor_court_chaplain
scope:activity ?= {
any_attending_character = {
playdate_3014_participant_trigger = yes
}
}
}
weight_multiplier = { #Quite rare since it gives rare traits and secrets
base = 0.25
modifier = {
add = 0.25
has_focus = education_learning
}
modifier = {
add = 0.50
scope:activity = {
any_attending_character = {
playdate_3014_participant_trigger = yes
}
}
}
}
immediate = {
cp:councillor_court_chaplain = {
save_scope_as = priest
}
scope:activity = {
if = {
limit = {
any_attending_character = {
playdate_3014_participant_trigger = yes
}
}
random_attending_character = {
limit = {
playdate_3014_participant_trigger = yes
}
alternative_limit = {
playdate_default_participant_trigger = yes
}
weight = {
base = 1
compare_modifier = { #More likely the closer to your age they are
value = {
if = {
limit = {
age > root.age
}
add = age
subtract = root.age
}
else = {
add = root.age
subtract = age
}
}
multiplier = -0.1
}
}
save_scope_as = participant
root = {
progress_towards_friend_effect = {
REASON = friend_childhood_religious_scrolls
CHARACTER = scope:participant
OPINION = 0
}
}
}
}
}
}
option = { #Teach me/us writing!
name = playdate.3014.a
random_list = {
50 = {
desc = playdate.3014.a.success
send_interface_toast = {
title = playdate.3014.a.success
left_icon = scope:priest
right_icon = scope:participant
if = {
limit = {
can_be_journaller = yes
}
add_trait = journaller
}
else = {
add_learning_skill = 1
scope:activity = {
add_activity_log_entry = {
key = playdate_studied_ancient_tomes_log
tags = { good }
score = 10
character = root
}
}
}
if = {
limit = {
exists = scope:participant
}
scope:participant = {
add_learning_skill = 1
}
scope:activity = {
add_activity_log_entry = {
key = playdate_studied_ancient_tomes_together_log
tags = { good }
score = 25
character = root
target = scope:participant
}
}
}
}
}
40 = {
desc = playdate.3014.a.neutral
trigger = {
has_focus = education_learning
}
send_interface_toast = {
title = playdate.3014.a.neutral
left_icon = scope:priest
right_icon = scope:participant
if = {
limit = {
exists = scope:participant
scope:participant = { has_focus = education_learning }
}
custom_tooltip = playdate.3014.a.tt_participant
hidden_effect = {
education_point_acquisition_effect = yes
scope:participant = { education_point_acquisition_effect = yes }
}
}
else = {
custom_tooltip = playdate.3014.a.tt
hidden_effect = { education_point_acquisition_effect = yes }
}
}
}
10 = {
desc = playdate.3014.a.failure
send_interface_toast = {
title = playdate.3014.a.failure
left_icon = scope:priest
add_character_modifier = {
modifier = playdate_struggling_with_writing_modifier
years = 5
}
}
}
}
scope:priest = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = 20
}
}
stress_impact = {
curious = major_stress_impact_loss
pensive = medium_stress_impact_loss
calm = medium_stress_impact_loss
rowdy = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_rationality = 0.75
ai_energy = -0.25
}
}
}
option = { #Read us stories instead!
name = playdate.3014.b
scope:priest = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = -10
}
}
stress_impact = {
base = medium_stress_impact_loss
curious = medium_stress_impact_gain
rowdy = medium_stress_impact_loss
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = 0.50
ai_zeal = -0.25
}
}
}
}
# Play date language barrier
# By Bianca Savazzi
scripted_trigger playdate_4001_paticipant_trigger = {
playdate_default_participant_trigger = yes
this != root
is_ai = yes
NOT = {
knows_language_of_culture = root.culture
}
}
playdate.4001 = {
type = activity_event
title = playdate.4001.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
scope:participant = { has_trait_dominant_trigger = yes }
}
desc = playdate.4001.desc.rowdy
}
desc = playdate.4001.desc.pensive
}
desc = playdate.4001.desc
}
theme = playdate_activity
left_portrait = {
character = root
animation = stress
}
right_portrait = {
character = scope:participant
animation = thinking
}
cooldown = { years = 2 }
trigger = {
scope:activity ?= {
any_attending_character = {
playdate_4001_paticipant_trigger = yes
root = { NOT = { knows_language_of_culture = prev.culture } }
}
}
}
weight_multiplier = { #Quite rare since it gives rare traits and secrets
base = 0.5
modifier = {
add = 0.25
has_focus = education_learning
}
}
immediate = {
scope:activity = {
if = {
limit = {
any_attending_character = {
playdate_4001_paticipant_trigger = yes
root = { NOT = { knows_language_of_culture = prev.culture } }
}
}
random_attending_character = {
limit = {
playdate_4001_paticipant_trigger = yes
root = { NOT = { knows_language_of_culture = prev.culture } }
}
save_scope_as = participant
}
}
}
}
option = { #I'll teach them
name = playdate.4001.a
scope:participant = {
if = {
limit = {
has_trait_dominant_trigger = yes
}
add_opinion = {
modifier = annoyed_opinion
target = root
opinion = -10
}
}
else_if = {
limit = {
has_trait_introverted_trigger = yes
}
add_opinion = {
modifier = annoyed_opinion
target = root
opinion = -20
}
}
if = {
limit = {
can_start_scheme = {
type = learn_language
target_character = root
}
}
start_scheme = {
type = learn_language
target_character = root
}
}
custom_tooltip = diplomacy_family.2250.b.tt
hidden_effect = {
random_scheme = {
type = learn_language
limit = {
scheme_target_character = root
}
add_scheme_modifier = {
type = extra_success_chance_modifier
}
}
}
}
stress_impact = {
pensive = medium_stress_impact_loss
calm = medium_stress_impact_loss
charming = medium_stress_impact_loss
rowdy = minor_stress_impact_gain
base = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_rationality = 0.75
ai_energy = -0.25
}
}
}
option = { #I'll learn some
name = playdate.4001.b
scope:participant = {
if = {
limit = {
has_trait_dominant_trigger = yes
}
add_opinion = {
modifier = annoyed_opinion
target = root
opinion = -20
}
}
else_if = {
limit = {
has_trait_introverted_trigger = yes
}
add_opinion = {
modifier = pleased_opinion
target = root
opinion = 20
}
}
}
if = {
limit = {
can_start_scheme = {
type = learn_language
target_character = scope:participant
}
}
start_scheme = {
type = learn_language
target_character = scope:participant
}
custom_tooltip = diplomacy_family.2250.b.tt
hidden_effect = {
random_scheme = {
type = learn_language
limit = {
scheme_target_character = scope:participant
}
add_scheme_modifier = {
type = extra_success_chance_modifier
}
}
}
}
stress_impact = {
curious = medium_stress_impact_loss
rowdy = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = 0.50
ai_zeal = -0.25
}
}
}
option = { #I just wanna play...
name = playdate.4001.c
scope:participant = {
if = {
limit = {
has_trait_dominant_trigger = yes
}
add_opinion = {
modifier = pleased_opinion
target = root
opinion = 20
}
}
else_if = {
limit = {
has_trait_extroverted_trigger = yes
}
add_opinion = {
modifier = dismissive_opinion
target = root
opinion = -10
}
}
else_if = {
limit = {
has_trait_introverted_trigger = yes
}
add_opinion = {
modifier = pleased_opinion
target = root
opinion = 10
}
}
}
stress_impact = {
base = medium_stress_impact_loss
curious = medium_stress_impact_gain
rowdy = major_stress_impact_loss
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = 0.50
ai_zeal = -0.25
}
}
}
}
#######################
# BP2 Playdate Events #
#######################
# Another kid asks if you want to play
playdate.5001 = {
type = activity_event
content_source = dlc_009
title = playdate.5001.t
desc = playdate.5001.desc
theme = playdate_activity
override_background = { reference = courtyard }
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
character = scope:participant
animation = clutching_ball
}
cooldown = { years = 3 }
trigger = {
is_physically_able = yes
has_bp2_dlc_trigger = yes
NOT = {
has_character_flag = playdate_sports
}
scope:activity = {
any_attending_character = {
this != root
is_physically_able = yes
count >= 3 #To ensure there's enough for an actual game of football
}
}
}
weight_multiplier = {
base = 1
modifier = {
add = 0.25
has_focus = education_martial
}
}
immediate = {
scope:activity = {
if = {
limit = {
any_attending_character = {
this != root
is_physically_able = yes
}
}
random_attending_character = {
limit = {
this != root
is_physically_able = yes
}
save_scope_as = participant
}
}
}
}
option = { #Sure, I'll join
name = playdate.5001.a
custom_tooltip = playdate.5001.a.tt
add_character_flag = {
flag = playdate_sports
years = 3
}
reverse_add_opinion = {
target = scope:participant
modifier = pleased_opinion
opinion = 20
}
stress_impact = {
pensive = minor_stress_impact_gain
calm = minor_stress_impact_gain
charming = minor_stress_impact_gain
lazy = minor_stress_impact_gain
rowdy = minor_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
factor = 0
has_trait = lazy
}
}
}
option = { #I'd rather not
name = playdate.5001.b
reverse_add_opinion = {
target = scope:participant
modifier = disappointed_opinion
opinion = -20
}
stress_impact = {
curious = medium_stress_impact_loss
pensive = medium_stress_impact_loss
rowdy = medium_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
has_trait = rowdy
}
}
}
after = {
trigger_event = { on_action = playdate_event_selection days = 5 }
}
}
# Kick ball into someone's garden, ask for it back
playdate.5002 = {
type = activity_event
content_source = dlc_009
title = playdate.5002.t
desc = playdate.5002.desc
theme = playdate_activity
override_background = { reference = garden }
left_portrait = {
character = root
animation = stress
}
right_portrait = {
character = scope:neighbour
animation = clutching_ball
}
lower_right_portrait = scope:parent
cooldown = { years = 3 }
trigger = {
has_bp2_dlc_trigger = yes
is_physically_able = yes
has_character_flag = playdate_sports
scope:host = {
any_courtier_or_guest = {
is_physically_able_ai_adult = yes
NOR = {
is_close_or_extended_family_of = root
is_close_or_extended_family_of = scope:host
}
OR = {
any_character_artifact = {
exists = this
}
root = { is_ai = no }
}
}
}
}
immediate = {
scope:host = {
if = {
limit = {
any_courtier_or_guest = {
is_physically_able_ai_adult = yes
NOR = {
is_close_or_extended_family_of = root
is_close_or_extended_family_of = scope:host
}
any_character_artifact = {
exists = this
}
}
}
random_courtier_or_guest = {
limit = {
is_physically_able_ai_adult = yes
NOR = {
is_close_or_extended_family_of = root
is_close_or_extended_family_of = scope:host
}
any_character_artifact = {
exists = this
}
}
save_scope_as = neighbour
}
}
else = {
random_courtier_or_guest = {
limit = {
is_physically_able_ai_adult = yes
NOR = {
is_close_or_extended_family_of = root
is_close_or_extended_family_of = scope:host
}
}
save_scope_as = neighbour
generate_trinket_effect = {
TRINKET_RECEIVER = scope:neighbour
TRINKET_GIVER = scope:host
GRAB_ALL_TRINKETS = yes
HISTORY_TYPE = given
}
if = {
limit = { exists = scope:new_trinket }
scope:new_trinket = {
equip_artifact_to_owner = yes
}
}
}
}
}
scope:neighbour = {
random_character_artifact = {
save_scope_as = broken_artifact
}
}
if = {
limit = {
any_parent = {
this != scope:neighbour
is_physically_able_ai_adult = yes
}
}
random_parent = {
limit = {
this != scope:neighbour
is_physically_able_ai_adult = yes
}
save_scope_as = parent
}
}
scope:broken_artifact = {
add_durability = -5
}
}
option = { #My father will pay for this!
name = playdate.5002.a
trigger = {
exists = scope:parent
}
random = {
chance = 50
send_interface_toast = {
title = skill_increased
left_icon = root
add_stewardship_skill = 1
}
}
scope:parent = {
pay_short_term_gold = {
target = scope:neighbour
gold = 5
}
add_opinion = {
target = root
modifier = paid_for_damage_opinion
opinion = -15
}
}
scope:neighbour = {
add_opinion = {
target = root
modifier = pleased_opinion
opinion = 30
}
}
stress_impact = {
generous = minor_stress_impact_loss
greedy = medium_stress_impact_gain
charming = minor_stress_impact_loss
rowdy = minor_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = greedy
has_trait = rowdy
}
}
}
}
option = { #Demand the ball back
name = playdate.5002.b
flavor = playdate.5002.b.tt
random_list = {
50 = {
desc = playdate.5002.b.success
send_interface_toast = {
title = skill_increased
left_icon = root
add_martial_skill = 1
}
add_prestige = medium_prestige_gain
}
50 = {
desc = playdate.5002.b.failure
send_interface_toast = {
title = playdate.5002.b.failure
left_icon = root
right_icon = scope:neighbour
progress_towards_rival_effect = {
REASON = rival_broken_football
CHARACTER = scope:neighbour
OPINION = default_rival_opinion
}
}
}
}
stress_impact = {
curious = minor_stress_impact_gain
pensive = medium_stress_impact_gain
rowdy = medium_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = curious
has_trait = pensive
}
}
}
}
option = { #Apologise and ask nicely
name = playdate.5002.c
random_list = {
50 = {
desc = playdate.5002.c.success
send_interface_toast = {
title = skill_increased
left_icon = root
add_diplomacy_skill = 1
scope:neighbour = {
add_opinion = {
target = root
modifier = sweet_child_opinion
opinion = 30
}
}
}
}
50 = {
desc = playdate.5002.c.failure
send_interface_toast = {
title = playdate.5002.c.failure
left_icon = root
right_icon = scope:neighbour
scope:neighbour = {
add_opinion = {
target = root
modifier = irritated_opinion
opinion = -15
}
}
}
}
}
stress_impact = {
curious = medium_stress_impact_loss
pensive = medium_stress_impact_loss
rowdy = medium_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
has_trait = rowdy
}
}
}
}
# Another kid is more skilled than you
playdate.5003 = {
type = activity_event
content_source = dlc_009
title = playdate.5003.t
desc = playdate.5003.desc
theme = playdate_activity
override_background = { reference = courtyard }
left_portrait = {
character = root
animation = clutching_ball
}
right_portrait = {
character = scope:other_child
animation = personality_honorable
}
cooldown = { years = 3 }
trigger = {
has_bp2_dlc_trigger = yes
is_physically_able = yes
has_character_flag = playdate_sports
scope:activity = {
any_attending_character = {
is_physically_able_ai = yes
this != root
age > root.age #Just to ensure you're not 12 and getting rekt by a 5 year old
prowess >= root.prowess
NOR = {
has_trait = physique_bad
has_trait = weak
}
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
is_physically_able_ai = yes
this != root
age > root.age #Just to ensure you're not 12 and getting rekt by a 5 year old
prowess >= root.prowess
NOR = {
has_trait = physique_bad
has_trait = weak
}
}
save_scope_as = other_child
save_scope_as = wound_target
}
}
}
option = { #Let's hack away at those shins, shall we?
name = playdate.5003.a
trigger = {
OR = {
has_trait = sadistic
has_trait = callous
has_trait = arbitrary
has_trait = wrathful
has_trait = bossy
has_trait = rowdy
}
}
random = {
chance = 50
send_interface_toast = {
title = skill_increased
left_icon = root
add_intrigue_skill = 1
}
}
scope:other_child = {
custom_tooltip = other_perspective_increase_wounds_children_no_death_effect
increase_wounds_children_no_death_effect = yes
}
scope:activity = {
add_activity_log_entry = {
key = playdate_kicked_in_shins_log
tags = { bad }
score = 25
character = scope:other_child
target = root
}
}
progress_towards_rival_effect = {
REASON = rival_kicked_shins
CHARACTER = scope:other_child
OPINION = default_rival_opinion
}
stress_impact = {
base = minor_stress_impact_loss
charming = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = charming
has_trait = compassionate
}
}
}
}
option = { #Struggle to keep up
name = playdate.5003.b
duel = {
skill = prowess
target = scope:other_child
# You manage it
10 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = playdate.5003.b.success
modifier = {
add = 20
has_trait = strong
}
trigger = {
NOT = {
has_trait = athletic
}
}
send_interface_toast = {
title = playdate.5003.b.success
left_icon = root
right_icon = scope:other_child
add_trait = athletic
}
scope:activity = {
add_activity_log_entry = {
key = playdate_outdid_skilled_player_log
tags = { good }
score = 25
character = root
target = scope:other_child
}
}
}
# You manage it
40 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = playdate.5003.b.success
modifier = {
add = 20
has_trait = strong
}
send_interface_toast = {
title = playdate.5003.b.success
left_icon = root
right_icon = scope:other_child
add_prowess_skill = 2
}
scope:activity = {
add_activity_log_entry = {
key = playdate_outdid_skilled_player_log
tags = { good }
score = 25
character = root
target = scope:other_child
}
}
}
# They leave you in the dust
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = playdate.5003.b.failure
send_interface_toast = {
title = playdate.5003.b.failure
left_icon = root
right_icon = scope:other_child
add_prowess_skill = 1
custom_tooltip = you_perspective_increase_wounds_children_no_death_effect
increase_wounds_children_no_death_effect = yes
}
}
}
stress_impact = {
curious = minor_stress_impact_gain
pensive = medium_stress_impact_gain
rowdy = medium_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = curious
has_trait = pensive
}
}
}
}
option = { #Try to learn something
name = playdate.5003.c
random = {
chance = 50
add_prowess_skill = 1
}
stress_impact = {
curious = medium_stress_impact_loss
pensive = medium_stress_impact_loss
rowdy = medium_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
has_trait = rowdy
}
}
}
}
# Another kid is watching from the sidelines
playdate.5004 = {
type = activity_event
content_source = dlc_009
title = playdate.5004.t
desc = playdate.5004.desc
theme = playdate_activity
override_background = { reference = courtyard }
left_portrait = {
character = root
animation = clutching_ball
}
right_portrait = {
character = scope:other_child
animation = worry
}
cooldown = { years = 3 }
trigger = {
has_bp2_dlc_trigger = yes
has_character_flag = playdate_sports
scope:activity = {
any_attending_character = {
this != root
is_physically_able_ai = yes
OR = {
has_trait = shy
has_trait = pensive
}
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
this != root
is_physically_able_ai = yes
OR = {
has_trait = shy
has_trait = pensive
}
}
save_scope_as = other_child
}
}
}
option = { #Drop out of the game and join them
name = playdate.5004.a
trigger = {
OR = {
has_trait = shy
has_trait = pensive
has_trait = curious
has_trait = calm
has_trait = compassionate
}
}
custom_tooltip = playdate_5004_sports_removal
remove_character_flag = playdate_sports #to take you out of the game
scope:other_child = {
add_stress = minor_stress_loss
}
if = {
limit = {
NOT = { has_relation_friend = scope:other_child }
}
set_relation_friend = {
REASON = friend_joined_game
TARGET = scope:other_child
}
scope:activity = {
add_activity_log_entry = {
key = playdate_became_friends_watching_football_log
tags = { good }
score = 10
character = root
target = scope:other_child
}
}
}
stress_impact = {
base = minor_stress_impact_loss
compassionate = minor_stress_impact_loss
charming = minor_stress_impact_loss
callous = medium_stress_impact_gain
rowdy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = callous
has_trait = rowdy
}
}
}
}
option = { #Try to convince them to join in
name = playdate.5004.b
duel = {
skill = diplomacy
value = 6
# You convince them to join in
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = playdate.5004.b.success
compatibility_modifier = {
who = root
compatibility_target = scope:other_child
multiplier = 2
max = 30
min = -30
}
send_interface_toast = {
title = playdate.5004.b.success
left_icon = root
right_icon = scope:other_child
add_diplomacy_skill = 1
progress_towards_friend_effect = {
CHARACTER = scope:other_child
REASON = friend_joined_ballgame
OPINION = default_friend_opinion
}
}
scope:activity = {
add_activity_log_entry = {
key = playdate_encouraged_shy_player_log
tags = { good }
score = 10
character = root
target = scope:other_child
}
}
}
# They ignore you
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = playdate.5004.b.failure
send_interface_toast = {
title = playdate.5004.b.failure
left_icon = root
right_icon = scope:other_child
reverse_add_opinion = {
target = scope:other_child
modifier = dismissive_opinion
opinion = -20
}
}
}
}
stress_impact = {
curious = medium_stress_impact_loss
rowdy = medium_stress_impact_loss
arrogant = medium_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
has_trait = arrogant
}
}
}
option = { #Try to learn something
name = playdate.5004.c
add_character_modifier = {
modifier = bp2_understanding_modifier
years = 10
}
stress_impact = {
pensive = medium_stress_impact_loss
rowdy = medium_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
has_trait = rowdy
}
}
}
}
# Hop a fence to get a ball?
playdate.5005 = {
type = activity_event
content_source = dlc_009
title = playdate.5005.t
desc = {
desc = playdate.5005.desc
triggered_desc = {
trigger = {
OR = {
has_trait = bossy
has_trait = stubborn
has_trait = craven
has_trait = lazy
}
}
desc = playdate.5005.ending
}
}
theme = playdate_activity
override_background = { reference = courtyard }
left_portrait = {
character = root
animation = grief
}
right_portrait = {
trigger = {
root = {
OR = {
has_trait = bossy
has_trait = stubborn
has_trait = craven
has_trait = lazy
}
}
}
character = scope:bullied_kid
animation = shame
}
cooldown = { years = 3 }
trigger = {
is_healthy = yes
has_character_flag = playdate_sports
scope:activity = {
any_attending_character = {
NOR = {
this = root
has_relation_victim = root
has_relation_friend = root
}
is_physically_able_ai = yes
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
NOR = {
this = root
has_relation_victim = root
has_relation_friend = root
}
is_physically_able_ai = yes
}
weight = {
base = 1
modifier = {
add = 1000
OR = {
has_relation_bully = root
has_relation_rival = root
}
}
modifier = {
add = 15
has_personality_submissive_trigger = yes
}
modifier = {
add = 5
has_trait_submissive_trigger = yes
}
}
save_scope_as = bullied_kid
save_scope_as = wound_target
}
}
}
option = { #Force another kid to go and do it
name = playdate.5005.a
trigger = {
OR = {
has_trait = bossy
has_trait = rowdy
has_trait = stubborn
has_trait = craven
has_trait = lazy
}
}
add_intrigue_skill = 1
scope:activity = {
add_activity_log_entry = {
key = playdate_tricked_climber_log
tags = { bad }
score = 10
character = root
target = scope:bullied_kid
}
}
hidden_effect = {
scope:activity = {
every_attending_character = {
limit = {
NOR = {
this = root
this = scope:bullied_kid
}
}
add_opinion = {
target = root
modifier = pleased_opinion
opinion = 15
}
}
}
}
custom_tooltip = playdate.5005.b.success.tt
scope:bullied_kid = {
add_stress = minor_stress_gain
random = {
chance = 25
custom_tooltip = other_perspective_increase_wounds_children_no_death_effect
increase_wounds_children_no_death_effect = yes
}
}
if = {
limit = {
can_set_relation_victim_trigger = { CHARACTER = scope:bullied_kid }
}
set_relation_victim = scope:bullied_kid
}
else = {
progress_towards_rival_effect = {
REASON = rival_bullied_kid
CHARACTER = scope:bullied_kid
OPINION = default_rival_opinion
}
}
stress_impact = {
base = minor_stress_impact_loss
bossy = medium_stress_impact_loss
compassionate = minor_stress_impact_gain
charming = minor_stress_impact_gain
rowdy = minor_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = charming
}
}
}
}
option = { #Get another ball
name = playdate.5005.more_balls
trigger = {
gold >= 10
}
remove_short_term_gold = 10
random = {
chance = 25
send_interface_toast = {
title = skill_increased
left_icon = root
add_stewardship_skill = 1
}
}
hidden_effect = {
scope:activity = {
every_attending_character = {
limit = {
NOR = {
this = root
this = scope:bullied_kid
}
}
add_opinion = {
target = root
modifier = pleased_opinion
opinion = 15
}
}
}
}
custom_tooltip = playdate.5005.b.success.tt
stress_impact = {
charming = medium_stress_impact_loss
pensive = medium_stress_impact_loss
generous = medium_stress_impact_loss
greedy = medium_stress_impact_gain
rowdy = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = greedy
has_trait = rowdy
}
}
}
}
option = { #Hop the fence yourself
name = playdate.5005.b
duel = {
skills = { prowess intrigue }
value = 6
# You find the ball and clamber back over
30 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = playdate.5005.b.success
hidden_effect = {
scope:activity = {
every_attending_character = {
limit = {
this != root
}
add_opinion = {
target = root
modifier = impressed_opinion
opinion = 15
}
}
}
}
send_interface_toast = {
title = playdate.5005.b.success
left_icon = root
add_prowess_skill = 1
add_intrigue_skill = 1
add_prestige = minor_prestige_gain
custom_tooltip = playdate.5005.b.success.tt
}
}
# You can't find the ball at all
40 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = playdate.5005.b.failure
send_interface_toast = {
title = playdate.5005.b.failure
left_icon = root
add_prowess_skill = 1
}
}
# You can't find the ball and also take a little damage from the wall
30 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = playdate.5005.b.critfailure
custom_tooltip = playdate.5005.b.failure.gameends
remove_character_flag = playdate_sports
hidden_effect = {
scope:activity = {
every_attending_character = {
limit = {
this != root
}
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -5
}
}
}
}
send_interface_toast = {
title = playdate.5005.b.critfailure
left_icon = root
custom_tooltip = you_perspective_increase_wounds_children_no_death_effect
increase_wounds_children_no_death_effect = yes
custom_tooltip = playdate.5005.b.failure.tt
}
scope:activity = {
add_activity_log_entry = {
key = playdate_hurt_climbing_wall_log
tags = { bad }
score = 10
character = root
}
}
}
}
stress_impact = {
curious = minor_stress_impact_loss
rowdy = miniscule_stress_impact_loss
pensive = medium_stress_impact_gain
craven = medium_stress_impact_gain
lazy = medium_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = pensive
has_trait = craven
has_trait = lazy
}
}
}
}
option = { #Give up and let it go
name = playdate.5005.c
remove_character_flag = playdate_sports
custom_tooltip = playdate.5005.b.failure.gameends
add_character_modifier = {
modifier = bp2_careful_modifier
years = 20
}
stress_impact = {
stubborn = minor_stress_impact_gain
diligent = minor_stress_impact_gain
curious = minor_stress_impact_gain
rowdy = medium_stress_impact_gain
lazy = medium_stress_impact_loss
pensive = medium_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = stubborn
has_trait = diligent
has_trait = curious
has_trait = rowdy
}
}
}
}
}
# Another kid takes the ball and goes home
playdate.5006 = {
type = activity_event
content_source = dlc_009
title = playdate.5006.t
desc = playdate.5006.desc
theme = playdate_activity
override_background = { reference = courtyard }
left_portrait = {
character = root
animation = worry
}
right_portrait = {
character = scope:ball_kid
animation = clutching_ball
}
center_portrait = {
character = scope:bully_kid
animation = laugh
}
cooldown = { years = 5 }
trigger = {
is_physically_able = yes
has_character_flag = playdate_sports
scope:activity = {
any_attending_character = {
is_physically_able_ai = yes
NOR = {
this = root
has_trait = bossy
has_trait = sadistic
has_trait = rowdy
has_trait = callous
has_trait = wrathful
has_relation_friend = root
this = scope:activity.activity_host
}
save_temporary_scope_as = ball_kid_temp
}
}
scope:activity = {
any_attending_character = {
is_physically_able_ai = yes
OR = {
has_trait = bossy
has_trait = sadistic
has_trait = rowdy
has_trait = callous
has_trait = wrathful
}
NOR = {
this = scope:ball_kid_temp
this = root
}
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
is_physically_able_ai = yes
NOR = {
this = root
has_trait = bossy
has_trait = sadistic
has_trait = rowdy
has_trait = callous
has_trait = wrathful
has_relation_friend = root
this = scope:activity.activity_host
}
}
save_scope_as = ball_kid
add_character_flag = playdate_sports
}
}
scope:activity = {
random_attending_character = {
limit = {
is_physically_able_ai = yes
OR = {
has_trait = bossy
has_trait = sadistic
has_trait = rowdy
has_trait = callous
has_trait = wrathful
}
NOR = {
this = scope:ball_kid
this = root
}
}
save_scope_as = bully_kid
}
}
scope:ball_kid = {
if = {
limit = {
can_set_relation_bully_trigger = { CHARACTER = scope:bully_kid }
}
set_relation_bully = scope:bully_kid
}
}
}
option = { #Apologise on behalf of the other kid
name = playdate.5006.a
trigger = {
OR = {
has_trait = humble
has_trait = charming
}
}
flavor = playdate.5006.a.tt
add_diplomacy_skill = 2
scope:activity = {
add_activity_log_entry = {
key = playdate_convinced_ball_kid_log
tags = { good }
score = 25
character = root
target = scope:ball_kid
}
}
reverse_add_opinion = {
target = scope:ball_kid
modifier = kindness_opinion
opinion = 35
}
stress_impact = {
base = medium_stress_impact_loss
bossy = minor_stress_impact_gain
pensive = minor_stress_impact_gain
content = minor_stress_impact_loss
arrogant = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = bossy
has_trait = pensive
has_trait = arrogant
}
}
}
}
option = { #Try to reason with them
name = playdate.5006.b
duel = {
skill = diplomacy
target = scope:ball_kid
# You convince them
60 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = playdate.5006.b.success
send_interface_toast = {
title = playdate.5006.b.success
left_icon = root
right_icon = scope:ball_kid
add_diplomacy_skill = 1
reverse_add_opinion = {
target = scope:ball_kid
modifier = kindness_opinion
opinion = 20
}
}
}
# You fail to convince them
40 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = playdate.5006.b.failure
remove_character_flag = playdate_sports
send_interface_toast = {
title = playdate.5006.b.failure
left_icon = root
right_icon = scope:ball_kid
custom_tooltip = playdate.5005.b.failure.gameends
scope:ball_kid = {
remove_from_activity = scope:activity
}
}
}
}
stress_impact = {
calm = miniscule_stress_impact_loss
compassionate = miniscule_stress_impact_loss
impatient = miniscule_stress_impact_gain
stubborn = miniscule_stress_impact_gain
pensive = minor_stress_impact_loss
rowdy = minor_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = impatient
has_trait = stubborn
has_trait = rowdy
}
}
}
}
option = { #Demand the ball
name = playdate.5006.d
add_prestige = minor_prestige_gain
reverse_add_opinion = {
target = scope:ball_kid
modifier = hate_opinion
opinion = -20
}
reverse_add_opinion = {
target = scope:bully_kid
modifier = delightfully_devilish_opinion
opinion = 20
years = 10
}
scope:ball_kid = {
remove_from_activity = scope:activity
}
stress_impact = {
generous = medium_stress_impact_gain
pensive = medium_stress_impact_gain
charming = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
sadistic = medium_stress_impact_loss
callous = medium_stress_impact_loss
wrathful = minor_stress_impact_loss
vengeful = minor_stress_impact_loss
rowdy = minor_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = generous
has_trait = pensive
has_trait = charming
has_trait = compassionate
}
}
}
}
option = { #Give up and let them go
name = playdate.5006.c
custom_tooltip = playdate.5005.b.failure.gameends
remove_character_flag = playdate_sports
stress_impact = {
base = minor_stress_impact_gain
stubborn = minor_stress_impact_gain
diligent = minor_stress_impact_gain
curious = minor_stress_impact_gain
rowdy = medium_stress_impact_gain
lazy = medium_stress_impact_loss
pensive = minor_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = stubborn
has_trait = diligent
has_trait = curious
has_trait = rowdy
}
}
}
}
after = {
scope:ball_kid = {
remove_character_flag = playdate_sports
}
}
}
# Someone is bullying another kid
playdate.5007 = {
type = activity_event
content_source = dlc_009
title = playdate.5007.t
desc = playdate.5007.desc
theme = playdate_activity
override_background = { reference = courtyard }
left_portrait = {
character = root
animation = clutching_ball
}
center_portrait = {
character = scope:bully_kid
animation = laugh
}
right_portrait = {
character = scope:sad_kid
animation = crying
}
cooldown = { years = 3 }
trigger = {
is_physically_able = yes
has_character_flag = playdate_sports
scope:activity = {
any_attending_character = {
is_physically_able_ai = yes
age > 9
NOR = {
this = root
has_trait = sadistic
has_trait = bossy
this = scope:activity.activity_host
}
save_temporary_scope_as = sad_kid_temp
}
}
scope:activity = {
any_attending_character = {
is_physically_able_ai = yes
age > 9
OR = {
has_trait = sadistic
has_trait = bossy
}
NOR = {
this = scope:sad_kid_temp
this = root
}
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
is_physically_able_ai = yes
age > 9
NOR = {
this = root
has_trait = sadistic
has_trait = bossy
this = scope:activity.activity_host
}
}
save_scope_as = sad_kid
}
}
scope:activity = {
random_attending_character = {
limit = {
is_physically_able_ai = yes
age > 9
OR = {
has_trait = sadistic
has_trait = bossy
}
NOR = {
this = scope:sad_kid
this = root
}
}
save_scope_as = bully_kid
}
}
scope:sad_kid = {
progress_towards_rival_effect = {
REASON = rival_bullied_football
CHARACTER = scope:bully_kid
OPINION = 0
}
}
}
option = { #Confront the bully
name = playdate.5007.a
flavor = playdate.5007.a.tt
duel = {
skills = { martial prowess }
target = scope:bully_kid
# You intimidate them into backing off
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = playdate.5007.a.success
send_interface_toast = {
title = playdate.5007.a.success
left_icon = root
right_icon = scope:bully_kid
add_prowess_skill = 1
add_martial_skill = 1
}
scope:activity = {
add_activity_log_entry = {
key = playdate_defeated_football_bully_log
tags = { good }
score = 25
character = root
target = scope:bully_kid
}
}
}
# They beat you up a bit
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = playdate.5007.a.failure
remove_character_flag = playdate_sports
send_interface_toast = {
title = playdate.5007.a.failure
left_icon = root
right_icon = scope:sad_kid
custom_tooltip = you_perspective_increase_wounds_children_no_death_effect
increase_wounds_children_no_death_effect = yes
scope:sad_kid = {
remove_from_activity = scope:activity
}
}
scope:activity = {
add_activity_log_entry = {
key = playdate_injured_defending_victim_log
tags = { bad }
score = 25
character = root
target = scope:bully_kid
}
}
}
}
reverse_add_opinion = {
target = scope:sad_kid
modifier = grateful_opinion
opinion = 20
}
stress_impact = {
calm = minor_stress_impact_gain
compassionate = miniscule_stress_impact_loss
pensive = minor_stress_impact_gain
brave = minor_stress_impact_loss
wrathful = miniscule_stress_impact_loss
rowdy = miniscule_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = calm
has_trait = pensive
}
}
}
}
option = { #Take them under your wing
name = playdate.5007.b
random = {
chance = 50
send_interface_toast = {
title = skill_increased
left_icon = root
add_diplomacy_skill = 1
}
}
progress_towards_friend_effect = {
REASON = friend_befriended_football
CHARACTER = scope:sad_kid
OPINION = default_friend_opinion
}
reverse_add_opinion = {
target = scope:bully_kid
modifier = dismissive_opinion
opinion = -20
}
stress_impact = {
base = minor_stress_impact_loss
compassionate = minor_stress_impact_loss
pensive = minor_stress_impact_loss
shy = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = shy
has_trait = arrogant
}
}
}
}
option = { #Stay out of it
name = playdate.5007.c
add_intrigue_skill = 1
add_character_modifier = {
modifier = bp2_cowardly_modifier
years = 5
}
stress_impact = {
craven = minor_stress_impact_loss
brave = medium_stress_impact_gain
gregarious = minor_stress_impact_gain
shy = miniscule_stress_impact_loss
compassionate = medium_stress_impact_gain
callous = minor_stress_impact_loss
sadistic = minor_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = brave
has_trait = gregarious
has_trait = compassionate
}
}
}
}
}
# Old person comes out to yell at you
playdate.5008 = {
type = activity_event
content_source = dlc_009
title = playdate.5008.t
desc = playdate.5008.desc
theme = playdate_activity
override_background = { reference = courtyard }
left_portrait = {
character = root
animation = clutching_ball
}
right_portrait = {
character = scope:old_timer
animation = anger
}
cooldown = { years = 3 }
trigger = {
has_bp2_dlc_trigger = yes
is_physically_able = yes
has_character_flag = playdate_sports
scope:activity.activity_host = {
any_courtier_or_guest = {
is_physically_able_ai_adult = yes
NOR = {
is_close_or_extended_family_of = root
is_close_or_extended_family_of = scope:host
}
age >= 50
}
}
}
immediate = {
scope:activity.activity_host = {
random_courtier_or_guest = {
limit = {
is_physically_able_ai_adult = yes
NOR = {
is_close_or_extended_family_of = root
is_close_or_extended_family_of = scope:host
}
age >= 50
}
save_scope_as = old_timer
}
}
}
option = { #The future is now, old man!
name = playdate.5008.a
add_intrigue_skill = 1
progress_towards_rival_effect = {
REASON = rival_football_noise
CHARACTER = scope:old_timer
OPINION = default_rival_opinion
}
add_character_modifier = {
modifier = bp2_disrespects_elderly_modifier
years = 10
}
stress_impact = {
calm = minor_stress_impact_gain
compassionate = minor_stress_impact_gain
pensive = minor_stress_impact_gain
brave = minor_stress_impact_loss
wrathful = miniscule_stress_impact_loss
rowdy = minor_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = calm
has_trait = compassionate
has_trait = pensive
}
}
}
}
option = { #Sorry, we'll try to be more quiet
name = playdate.5008.b
random = {
chance = 50
send_interface_toast = {
title = skill_increased
left_icon = root
add_diplomacy_skill = 1
}
}
stress_impact = {
compassionate = minor_stress_impact_loss
pensive = minor_stress_impact_loss
rowdy = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = rowdy
has_trait = arrogant
}
}
}
}
}
# A kid is getting trampled
playdate.5009 = {
type = activity_event
content_source = dlc_009
title = playdate.5009.t
desc = playdate.5009.desc
theme = playdate_activity
override_background = { reference = courtyard }
left_portrait = {
character = root
animation = clutching_ball
}
right_portrait = {
character = scope:small_kid
animation = fear
}
cooldown = { years = 3 }
trigger = {
has_bp2_dlc_trigger = yes
has_character_flag = playdate_sports
scope:activity = {
any_attending_character = {
is_physically_able_ai = yes
this != root
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
is_physically_able_ai = yes
this != root
}
save_scope_as = small_kid
save_scope_as = wound_target
}
}
save_scope_value_as = { #For a bit of randomness in the random_list
name = injury_value
value = {
integer_range = {
min = 1
max = 5
}
}
}
}
option = { #Charge in to help them!
name = playdate.5009.a
duel = {
skill = prowess
value = 8
# You rescue them heroically
20 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = playdate.5009.a.critical_success
modifier = {
add = 10
has_trait = strong
}
modifier = {
add = 10
has_trait = athletic
}
modifier = {
add = 10
has_trait = physique_good
}
send_interface_toast = {
title = playdate.5009.a.critical_success
left_icon = root
right_icon = scope:small_kid
if = {
limit = {
NOR = {
has_trait = strong
has_trait = weak
has_trait = physique_bad
}
}
add_trait = strong
}
add_prowess_skill = 1
scope:activity = {
add_activity_log_entry = {
key = playdate_rescued_from_fray_log
tags = { good }
score = 50
character = root
target = scope:small_kid
}
}
}
min = 5
}
# You rescue them
30 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = playdate.5009.a.success
modifier = {
add = 10
has_trait = strong
}
modifier = {
add = 10
has_trait = athletic
}
modifier = {
add = 10
has_trait = physique_good
}
send_interface_toast = {
title = playdate.5009.a.success
left_icon = root
right_icon = scope:small_kid
add_prowess_skill = 1
scope:activity = {
add_activity_log_entry = {
key = playdate_rescued_from_fray_log
tags = { good }
score = 50
character = root
target = scope:small_kid
}
}
}
min = 15
}
# You are able to shield them with your own body
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = playdate.5009.a.failure
send_interface_toast = {
title = playdate.5009.a.failure
left_icon = root
right_icon = scope:small_kid
custom_tooltip = you_perspective_increase_wounds_children_no_death_effect
increase_wounds_children_no_death_effect = yes
scope:small_kid = {
custom_tooltip = other_perspective_increase_wounds_children_no_death_effect
increase_wounds_children_no_death_effect = yes
}
scope:activity = {
add_activity_log_entry = {
key = playdate_failed_football_rescue_log
tags = { bad }
score = 50
character = root
target = scope:small_kid
}
}
}
}
}
if = {
limit = {
can_set_relation_friend_trigger = { CHARACTER = scope:small_kid }
}
set_relation_friend = { reason = friend_saved_from_trampling target = scope:small_kid }
}
reverse_add_opinion = {
target = scope:small_kid
modifier = grateful_opinion
opinion = 35
}
stress_impact = {
compassionate = minor_stress_impact_loss
gregarious = miniscule_stress_impact_loss
brave = miniscule_stress_impact_loss
craven = medium_stress_impact_gain
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
rowdy = minor_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = craven
has_trait = callous
has_trait = sadistic
}
}
}
}
option = { #Shout to stop it
name = playdate.5009.c
duel = {
skills = { diplomacy martial }
value = 8
# They listen
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = playdate.5009.c.success
send_interface_toast = {
title = playdate.5009.c.success
left_icon = root
right_icon = scope:small_kid
add_martial_skill = 1
scope:activity = {
add_activity_log_entry = {
key = playdate_rescued_from_fray_log
tags = { good }
score = 50
character = root
target = scope:small_kid
}
}
}
}
# No one listens
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = playdate.5009.c.failure
send_interface_toast = {
title = playdate.5009.c.failure
left_icon = root
right_icon = scope:small_kid
add_prestige = medium_prestige_loss
scope:small_kid = {
custom_tooltip = other_perspective_increase_wounds_children_no_death_effect
increase_wounds_children_no_death_effect = yes
}
scope:activity = {
add_activity_log_entry = {
key = playdate_failed_football_rescue_log
tags = { bad }
score = 50
character = root
target = scope:small_kid
}
}
}
}
}
if = {
limit = {
can_set_relation_friend_trigger = { CHARACTER = scope:small_kid }
}
set_relation_friend = { reason = friend_saved_from_trampling target = scope:small_kid }
}
reverse_add_opinion = {
target = scope:small_kid
modifier = grateful_opinion
opinion = 35
}
stress_impact = {
shy = medium_stress_impact_gain
calm = medium_stress_impact_gain
pensive = medium_stress_impact_gain
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
compassionate = minor_stress_impact_loss
gregarious = minor_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = callous
has_trait = sadistic
has_trait = shy
has_trait = calm
}
}
}
}
option = { #Leave them to their fate
name = playdate.5009.b
scope:small_kid = {
duel = {
skill = prowess
value = 8
#They survive with superficial injuries
90 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = playdate.5009.b.failure
modifier = {
has_trait = physique_good
add = 5
}
modifier = {
has_trait = strong
add = 5
}
root = {
send_interface_toast = {
title = playdate.5009.b.failure
left_icon = root
right_icon = scope:small_kid
scope:small_kid = {
custom_tooltip = other_perspective_increase_wounds_children_no_death_effect
increase_wounds_children_no_death_effect = yes
}
root = {
add_character_modifier = {
modifier = bp2_self_preserving_modifier
years = 15
}
}
}
}
}
#...they do not
10 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = playdate.5009.b.critfailure
modifier = {
add = scope:injury_value
}
hidden_effect = {
scope:activity = {
every_attending_character = {
if = {
limit = {
NOR = {
has_trait = callous
has_trait = sadistic
}
}
add_stress = medium_stress_gain
}
else = {
add_stress = minor_stress_loss
}
}
}
}
root = {
send_interface_toast = {
title = playdate.5009.b.critfailure
left_icon = root
right_icon = scope:small_kid
scope:small_kid = {
increase_wounds_no_death_effect = { REASON = wounds }
random = {
chance = 10
add_trait = incapable
}
}
root = {
add_character_modifier = {
modifier = bp2_guilt_ridden_modifier
years = 5
}
}
custom_tooltip = playdate_5009_every_child
}
}
scope:activity = {
add_activity_log_entry = {
key = playdate_crippled_during_game_log
tags = { bad }
score = 50
character = scope:small_kid
}
}
}
}
}
stress_impact = {
craven = miniscule_stress_impact_loss
shy = miniscule_stress_impact_loss
callous = minor_stress_impact_loss
sadistic = minor_stress_impact_loss
brave = medium_stress_impact_gain
just = medium_stress_impact_gain
compassionate = major_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = brave
has_trait = just
has_trait = compassionate
}
}
}
}
}
# Overly-competitive parent watches on, heckles kids
playdate.5010 = {
type = activity_event
content_source = dlc_009
title = playdate.5010.t
desc = playdate.5010.desc
theme = playdate_activity
override_background = { reference = courtyard }
left_portrait = {
character = root
animation = clutching_ball
}
center_portrait = {
character = scope:embarrassed_child
animation = shame
}
right_portrait = {
character = scope:obnoxious_parent
animation = throne_room_cheer_1
}
cooldown = { years = 3 }
trigger = {
is_physically_able = yes
has_character_flag = playdate_sports
scope:activity = {
any_attending_character = {
is_physically_able_ai = yes
this != root
any_parent = {
is_available_ai_adult = yes
}
save_temporary_scope_as = parent_child
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
is_physically_able_ai = yes
this != root
any_parent = {
is_available_ai_adult = yes
}
}
weight = {
base = 1
modifier = {
add = 1000
location = root.location
}
modifier = {
add = 100
is_ruler = no
}
}
save_scope_as = embarrassed_child
random_parent = {
limit = {
is_available_ai_adult = yes
}
save_scope_as = obnoxious_parent
}
}
}
}
option = { #Pretend they hit you
name = playdate.5010.a
trigger = {
OR = {
has_trait = callous
has_trait = deceitful
has_trait = arbitrary
}
}
flavor = playdate.5010.a_flavor
duel = {
skill = intrigue
value = average_skill_rating
# Your ploy is convincing
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = playdate.5010.a.success
send_interface_toast = {
title = playdate.5010.a.success
left_icon = root
add_intrigue_skill = 1
custom_tooltip = playdate.5010.a.tt.success
}
trigger_event = playdate.5011
}
# Nobody believes you
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = playdate.5010.a.failure
send_interface_toast = {
title = playdate.5010.a.failure
left_icon = root
right_icon = scope:obnoxious_parent
reverse_add_opinion = {
target = scope:obnoxious_parent
modifier = angry_opinion
opinion = -35
}
reverse_add_opinion = {
target = scope:embarrassed_child
modifier = annoyed_opinion
opinion = -15
}
}
}
}
stress_impact = {
base = miniscule_stress_impact_loss
pensive = minor_stress_impact_gain
charming = minor_stress_impact_gain
honest = medium_stress_impact_gain
just = medium_stress_impact_gain
compassionate = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = pensive
has_trait = charming
has_trait = honest
has_trait = just
has_trait = compassionate
}
}
}
}
option = { #Tell them to be quiet
name = playdate.5010.b
add_prestige = minor_prestige_gain
random = {
chance = 25
send_interface_toast = {
title = skill_increased
left_icon = root
add_martial_skill = 1
}
}
progress_towards_rival_effect = {
REASON = rival_obnoxious_parent
CHARACTER = scope:obnoxious_parent
OPINION = default_rival_opinion
}
stress_impact = {
base = minor_stress_impact_loss
calm = minor_stress_impact_gain
wrathful = miniscule_stress_impact_loss
impatient = miniscule_stress_impact_loss
stubborn = miniscule_stress_impact_loss
pensive = minor_stress_impact_gain
rowdy = miniscule_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = calm
has_trait = pensive
}
}
}
}
option = { #Deal with it
name = playdate.5010.c
random = {
chance = 25
send_interface_toast = {
title = skill_increased
left_icon = root
add_diplomacy_skill = 1
}
}
add_character_modifier = {
modifier = bp2_ringing_ears_modifier
years = 5
}
stress_impact = {
calm = miniscule_stress_impact_loss
wrathful = minor_stress_impact_gain
impatient = minor_stress_impact_gain
stubborn = minor_stress_impact_gain
pensive = miniscule_stress_impact_loss
rowdy = minor_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = wrathful
has_trait = impatient
has_trait = stubborn
has_trait = rowdy
}
}
}
}
}
# Followup event to 5010
playdate.5011 = {
type = activity_event
content_source = dlc_009
title = playdate.5011.t
desc = playdate.5011.desc
theme = playdate_activity
override_background = { reference = courtyard }
left_portrait = {
character = root
animation = crying
}
center_portrait = {
character = scope:responsible_adult
animation = anger
}
right_portrait = {
character = scope:obnoxious_parent
animation = fear
}
trigger = {
any_courtier_or_guest = {
age > 20
is_physically_able_ai_adult = yes
exists = this
this != scope:obnoxious_parent
}
}
immediate = {
random_courtier_or_guest = {
limit = {
age > 20
is_physically_able_ai_adult = yes
exists = this
this != scope:obnoxious_parent
}
save_scope_as = responsible_adult
}
}
option = { #Playact injured
name = playdate.5011.a
add_intrigue_skill = 2
scope:responsible_adult = {
add_opinion = {
target = scope:obnoxious_parent
modifier = disappointed_opinion
opinion = -30
}
}
set_relation_rival = {
REASON = rival_playacted_hurt
TARGET = scope:obnoxious_parent
}
scope:activity = {
add_activity_log_entry = {
key = playdate_faked_injury_log
tags = { bad }
score = 25
character = root
target = scope:obnoxious_parent
}
}
stress_impact = {
deceitful = minor_stress_impact_loss
arbitrary = minor_stress_impact_loss
callous = minor_stress_impact_loss
just = medium_stress_impact_gain
honest = medium_stress_impact_gain
compassionate = minor_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = just
has_trait = honest
has_trait = compassionate
}
}
}
}
option = { #Fess up
name = playdate.5011.b
random = {
chance = 25
send_interface_toast = {
title = skill_increased
left_icon = root
add_diplomacy_skill = 1
}
}
reverse_add_opinion = {
target = scope:responsible_adult
modifier = disappointed_opinion
opinion = -15 # less because they sort of expect this from a child
}
stress_impact = {
deceitful = medium_stress_impact_gain
arbitrary = medium_stress_impact_gain
callous = minor_stress_impact_gain
just = minor_stress_impact_loss
honest = minor_stress_impact_loss
compassionate = miniscule_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
factor = 0
OR = {
has_trait = deceitful
has_trait = arbitrary
has_trait = callous
}
}
}
}
}
#################################
## END EVENTS
## 9000-9999
## by Linnéa Thimrén
#################################
scripted_trigger playdate_end_events_participant_trigger = {
this != scope:host
is_alive = yes
is_imprisoned = no
}
# Host end event
# by Linnéa Thimrén
playdate.9001 = {
type = activity_event
title = playdate.9001.t
desc = playdate.9001.desc
theme = playdate_activity
left_portrait = {
character = scope:cheer_1
animation = clutching_ball
}
center_portrait = {
character = root
animation = child_hobby_horse
}
right_portrait = {
character = scope:cheer_2
animation = ecstasy
}
immediate = {
if = {
limit = {
has_character_flag = playdate_sports
}
remove_character_flag = playdate_sports
}
scope:activity = {
random_attending_character = {
limit = {
is_physically_able = yes
this != root
}
save_scope_as = cheer_1
}
random_attending_character = {
limit = {
is_physically_able = yes
NOR = {
this = root
this = scope:cheer_1
}
}
save_scope_as = cheer_2
}
}
}
option = {
name = playdate.9001.a
show_as_tooltip = {
scope:activity = {
add_activity_log_entry = {
key = playdate_conc_reward
score = 100
show_in_conclusion = yes
character = root
root = { add_prestige = medium_prestige_gain }
every_attending_character = {
limit = { this != root }
custom = every_guest_scope_tt
add_opinion = {
target = root
modifier = hosted_successful_playdate_opinion
}
}
}
}
}
}
}
#Guest end event
# by Linnéa Thimrén
playdate.9002 = {
type = activity_event
title = playdate.9002.t
desc = playdate.9002.desc
theme = playdate_activity
left_portrait = {
character = root
animation = happiness
}
right_portrait = {
character = scope:host
animation = happiness
}
immediate = {
if = {
limit = {
has_character_flag = playdate_sports
}
remove_character_flag = playdate_sports
}
}
option = {
name = playdate.9002.a
playdate_end_guest_effect = yes
reverse_add_opinion = {
target = scope:host
modifier = attended_my_playdate_opinion
}
}
}
#Parent is notified that their child died during playdate
playdate.4000 = {
type = character_event
title = playdate.4000.t
desc = playdate.4000.desc
theme = death
left_portrait = {
character = scope:participant
animation = fear
}
lower_right_portrait = {
character = scope:host
}
immediate = {
add_stress = major_stress_gain
}
option = {
name = playdate.4000.a
reverse_add_opinion = {
target = scope:host
modifier = forgiven_opinion
}
}
option = {
name = playdate.4000.b
reverse_add_opinion = {
target = scope:host
modifier = shamed_me_opinion
}
}
option = {
name = playdate.4000.c
progress_towards_rival_effect = {
CHARACTER = scope:host
REASON = rival_let_child_drown_corresponding
OPINION = default_rival_opinion
}
}
}