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

6526 lines
122 KiB
Text

namespace = festival
#######################
# ASTRAY IN THE CROWD #
#######################
festival.001 = {
type = activity_event
title = festival.001.t
desc = festival.001.desc
theme = festival_activity
trigger = {
NOT = {
any_owned_story = { story_type = story_cycle_pet_dog }
}
}
left_portrait = {
character = root
animation = happiness
}
center_portrait = {
character = scope:guest_1
animation = admiration
}
right_portrait = {
character = scope:guest_2
animation = laugh
}
cooldown = { years = 1 }
immediate = {
involved_activity = {
#get guest 1
random_attending_character = {
limit = {
this != root
is_ai = yes
}
save_scope_as = guest_1
}
#get guest 2
random_attending_character = {
limit = {
this != root
this != scope:guest_1
is_ai = yes
}
save_scope_as = guest_2
}
}
}
option = {
name = festival.001.a
flavor = festival.001.a.tt
scope:activity = {
add_activity_log_entry = {
key = adopted_a_puppy
score = 10
tags = { good }
character = root
root = {
start_dog_story_cycle_effect = yes
stress_impact = {
callous = minor_stress_impact_gain
compassionate = minor_stress_impact_loss
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = compassionate
}
}
}
option = {
name = festival.001.b
flavor = festival.001.b.tt
custom_tooltip = festival.001.b.custom.tooltip
stress_impact = {
callous = minor_stress_impact_loss
sadistic = minor_stress_impact_loss
compassionate = minor_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
add = 10
OR = {
has_trait = callous
has_trait = sadistic
}
}
}
}
}
#####################
# AN INQUIRING MIND #
#####################
festival.002 = {
type = activity_event
title = festival.002.t
desc = festival.002.desc
theme = festival_activity
trigger = {
}
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
character = scope:curious_child
animation = clutching_toy
}
cooldown = { years = 1 }
immediate = {
create_character = {
template = peasant_child_character
age = { 4 7 }
location = root.location
faith = root.faith
culture = root.culture
save_scope_as = curious_child
}
}
option = {
name = festival.002.a
scope:activity = {
add_activity_log_entry = {
key = edified_a_child
score = 10
tags = { good }
character = root
root = {
duel = {
skill = diplomacy
value = average_skill_rating
target = scope:curious_child
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = festival.002.a.inspired_child
send_interface_toast = {
title = child_is_excited
left_icon = root
add_prestige = minor_prestige_gain
add_stress = minor_stress_loss
}
}
50 = {
desc = festival.002.a.bored_child
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
title = child_is_bored
left_icon = root
add_prestige = minor_prestige_loss
add_stress = minor_stress_gain
}
}
}
}
}
}
ai_chance = {
base = 10
}
}
option = {
name = festival.002.b
flavor = festival.002.b.flavor
trigger = {
has_trait = sadistic
}
scope:activity = {
add_activity_log_entry = {
key = kicked_a_child
score = 10
tags = { neutral }
character = root
root = {
send_interface_toast = {
title = child_is_kicked
left_icon = root
add_prestige = minor_prestige_loss
add_stress = medium_stress_loss
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = gregarious
}
}
}
option = {
name = festival.002.c
scope:activity = {
add_activity_log_entry = {
key = restored_a_lost_child
score = 10
tags = { bad }
character = root
root = {
add_stress = minor_stress_loss
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
OR = {
has_trait = callous
has_trait = shy
has_trait = reclusive
}
}
}
}
after = {
scope:curious_child = {
silent_disappearance_effect = yes
}
}
}
########################
# DELICIOUS DELICACIES #
########################
festival.003 = {
type = activity_event
title = festival.003.t
desc = festival.003.desc
theme = festival_activity
override_background = tavern
trigger = {
}
left_portrait = {
character = root
animation = happiness
}
cooldown = { years = 1 }
immediate = {
}
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = reduce_stress_intent
add = 0.2
}
}
option = {
name = festival.003.a
scope:activity = {
add_activity_log_entry = {
key = ate_well
score = 10
tags = { good }
character = root
root = {
stress_impact = {
base = medium_stress_impact_loss
gluttonous = major_stress_impact_loss
temperate = medium_stress_impact_gain
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = gluttonous
}
}
}
option = {
name = festival.003.b
scope:activity = {
add_activity_log_entry = {
key = practiced_temperance
score = 10
tags = { neutral }
character = root
every_attending_character = {
custom = custom.every_attending_character
limit = { this != root }
add_opinion = {
target = root
modifier = pleased_opinion
opinion = 5
}
}
root = {
stress_impact = {
gluttonous = medium_stress_impact_gain
temperate = medium_stress_impact_loss
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = temperate
}
}
}
}
####################
# WHISPERED WISHES #
####################
festival.004 = {
type = activity_event
title = festival.004.t
desc = festival.004.desc
theme = festival_activity
override_background = tanabata_festival_night_japan
left_portrait = {
character = root
animation = admiration
}
right_portrait = {
trigger = {
is_married = yes
}
character = primary_spouse
animation = flirtation
}
cooldown = { years = 1 }
immediate = {
}
option = {
name = festival.004.a
scope:activity = {
add_activity_log_entry = {
key = wished_for_prosperity
score = 10
tags = { good }
character = root
root = {
add_prestige = minor_prestige_gain
}
scope:activity.activity_location.county = {
add_county_modifier = {
modifier = prosperity_festival_in_province_modifier
years = 5
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
OR = {
short_term_gold < minor_gold_value
has_trait = greedy
}
}
}
}
option = {
name = festival.004.b
trigger = {
is_married = yes
}
scope:activity = {
add_activity_log_entry = {
key = wished_for_love_eternal
score = 10
tags = { good }
character = root
root = {
add_piety = minor_prestige_gain
stress_impact = {
base = minor_stress_impact_loss
diligent = minor_stress_impact_loss
}
primary_spouse = {
add_opinion = {
target = root
modifier = thankful_opinion
opinion = 20
}
}
if = {
limit = {
NOT = {
any_relation = {
type = soulmate
}
}
}
random = {
chance = 25
set_relation_soulmate = { reason = soulmate_festival_reason target = primary_spouse }
}
}
}
}
}
ai_chance = {
base = 10
}
}
option = {
name = festival.004.c
scope:activity = {
add_activity_log_entry = {
key = wished_for_vigor
score = 10
tags = { good }
character = root
root = {
add_prestige = minor_prestige_gain
stress_impact = {
base = minor_stress_impact_loss
diligent = minor_stress_impact_loss
}
add_character_modifier = {
modifier = prosperity_festival_health_modifier
years = 3
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
OR = {
has_trait = ambitious
health < fine_health
}
}
}
}
option = {
name = festival.004.d
trigger = {
is_married = no
}
scope:activity = {
add_activity_log_entry = {
key = wished_to_find_love
score = 10
tags = { good }
character = root
root = {
stress_impact = {
base = minor_stress_impact_gain
shy = minor_stress_impact_gain
lustful = minor_stress_impact_loss
}
add_character_modifier = {
modifier = prosperity_festival_find_love_modifier
years = 3
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = lustful
}
}
}
}
######################
# A CAPTIVE AUDIENCE #
######################
festival.005 = {
type = activity_event
title = festival.005.t
desc = festival.005.desc
theme = festival_activity
trigger = {
exists = cp:councillor_court_chaplain
cp:councillor_court_chaplain = {
has_trait = zealous
}
}
left_portrait = {
character = root
animation = interested
}
right_portrait = {
character = scope:target_chaplain
animation = prayer
}
cooldown = { years = 1 }
immediate = {
cp:councillor_court_chaplain = { save_scope_as = target_chaplain }
}
option = {
name = festival.005.a
scope:activity = {
add_activity_log_entry = {
key = listened_to_chaplain
score = 10
tags = { good }
character = root
root = {
add_piety = medium_piety_gain
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = zealous
}
}
}
option = {
name = festival.005.b
scope:activity = {
add_activity_log_entry = {
key = talked_down_chaplain
score = 10
tags = { good }
character = root
root = {
duel = {
skill = diplomacy
value = high_skill_rating
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
min = 5
desc = festival.005.b.success
send_interface_toast = {
type = event_toast_effect_good
title = festival.005.b.tt.success
left_icon = root
add_prestige = minor_prestige_gain
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
min = 5
desc = festival.005.b.failure
send_interface_toast = {
type = event_toast_effect_bad
title = festival.005.b.tt.failure
left_icon = root
scope:target_chaplain = {
add_opinion = {
target = root
modifier = frustrated_opinion
opinion = -20
}
}
}
}
}
}
}
}
ai_chance = {
base = 10
}
}
option = {
name = festival.005.c
scope:activity = {
add_activity_log_entry = {
key = rousted_chaplain
score = 10
tags = { neutral }
character = root
root = {
add_prestige = minor_prestige_gain
add_piety = minor_piety_loss
scope:target_chaplain = {
add_opinion = {
target = root
modifier = frustrated_opinion
opinion = -20
}
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = cynical
}
}
}
}
#####################
# RITE OF CLEANSING #
#####################
festival.006 = {
type = activity_event
title = festival.006.t
desc = festival.006.desc
theme = festival_activity
trigger = {
root = scope:host
scope:activity = {
any_attending_character = {
is_clergy = yes
}
}
}
left_portrait = {
character = root
animation = prayer
}
right_portrait = {
character = scope:presiding_priest
animation = disapproval
}
cooldown = { years = 1 }
immediate = {
scope:activity = {
random_attending_character = {
limit = {
is_clergy = yes
is_ai = yes
}
save_scope_as = presiding_priest
}
}
}
option = {
name = festival.006.a
scope:activity = {
add_activity_log_entry = {
key = served_with_humility
score = 10
tags = { good }
character = root
root = {
add_piety = minor_piety_gain
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = humble
}
}
}
option = {
name = festival.006.b
scope:activity = {
add_activity_log_entry = {
key = displayed_magnificence
score = 10
tags = { good }
character = root
root = {
add_prestige = medium_prestige_gain
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
OR = {
has_trait = ambitious
has_trait = arrogant
}
}
}
}
option = {
name = festival.006.c
scope:activity = {
add_activity_log_entry = {
key = delegated_ritual
score = 10
tags = { good }
character = root
root = {
add_piety = minor_prestige_gain
add_stress = minor_stress_loss
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = arrogant
}
}
}
}
###################
# MOONLIT CONTEST #
###################
festival.007 = {
type = activity_event
title = festival.007.t
desc = festival.007.desc
theme = festival_activity
override_background = moon_festival_night_japan
left_portrait = {
character = root
animation = aggressive_unarmed
}
right_portrait = {
character = scope:festival_opponent
animation = aggressive_unarmed
}
cooldown = { years = 1 }
immediate = {
hidden_effect = {
scope:activity = {
random_attending_character = {
limit = {
this != root
is_ai = yes
}
save_scope_as = festival_opponent
}
}
}
}
option = {
name = festival.007.a
scope:activity = {
add_activity_log_entry = {
key = fought_for_fortune
score = 10
tags = { good }
character = root
root = {
duel = {
skill = prowess
target = scope:festival_opponent
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
min = 5
desc = festival.007.a.success
send_interface_toast = {
type = event_toast_effect_good
title = festival.007.a.tt.success
left_icon = root
add_prestige = medium_prestige_gain
add_piety = minor_piety_gain
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
min = 5
desc = festival.007.a.failure
send_interface_toast = {
type = event_toast_effect_bad
title = festival.007.a.tt.failure
left_icon = root
add_prestige = minor_prestige_loss
add_piety = minor_piety_loss
}
}
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
OR = {
has_trait = ambitious
prowess > decent_skill_rating
}
}
}
}
option = {
name = festival.007.b
scope:activity = {
add_activity_log_entry = {
key = fought_for_fortune
score = 10
tags = { good }
character = root
root = {
duel = {
skill = intrigue
target = scope:festival_opponent
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
min = 5
desc = festival.007.b.success
send_interface_toast = {
type = event_toast_effect_good
title = festival.007.a.tt.success
left_icon = root
add_prestige = medium_prestige_gain
add_piety = minor_piety_gain
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
min = 5
desc = festival.007.b.failure
send_interface_toast = {
type = event_toast_effect_bad
title = festival.007.a.tt.failure
left_icon = root
add_prestige = medium_prestige_loss
add_piety = minor_piety_loss
}
}
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
OR = {
has_trait = deceitful
intrigue >= high_skill_rating
}
}
}
}
option = {
name = festival.007.c
ai_chance = {
base = 10
modifier = {
add = 10
ai_energy < 0
}
}
}
}
######################
# DANCE OF ABUNDANCE #
######################
festival.008 = {
type = activity_event
title = festival.008.t
desc = festival.008.desc
theme = festival_activity
left_portrait = {
character = root
animation = happiness
}
right_portrait = {
character = scope:dancer
animation = dancing
}
cooldown = { years = 1 }
immediate = {
create_character = {
location = root.location
template = beautiful_peasant_character
faith = root.location.faith
culture = root.location.culture
gender_female_chance = 100
save_scope_as = dancer
}
}
option = {
name = festival.008.a
scope:activity = {
add_activity_log_entry = {
key = observed_dance
score = 10
tags = { good }
character = root
root = {
add_piety = medium_piety_gain
}
every_attending_character = {
limit = {
is_ai = yes
this != root
}
custom = custom.every_attending_character
add_opinion = {
target = root
modifier = respected_tradition_modifier
opinion = 10
}
}
}
}
ai_chance = {
base = 10
}
}
option = {
name = festival.008.b
scope:activity = {
add_activity_log_entry = {
key = observed_dance
score = 10
tags = { good }
character = root
root = {
add_stress = minor_stress_loss
add_piety = minor_piety_gain
}
}
}
ai_chance = {
base = 10
}
}
after = {
if = {
limit = {
scope:dancer = {
NOT = { is_courtier_of = root }
}
}
scope:dancer = {
silent_disappearance_effect = yes
}
}
}
}
######################
# A WISH UPON A TREE #
######################
festival.009 = {
type = activity_event
title = festival.009.t
desc = festival.009.desc
theme = festival_activity
override_background = tanabata_festival_japan
left_portrait = {
character = root
animation = survey
}
right_portrait = {
character = scope:guest_with_wish
animation = prayer
}
cooldown = { years = 1 }
immediate = {
hidden_effect = {
scope:activity = {
random_attending_character = {
limit = {
this != root
is_ai = yes
}
save_scope_as = guest_with_wish
}
}
}
}
option = {
name = festival.009.a
scope:activity = {
add_activity_log_entry = {
key = spied_on_wishes
score = 10
tags = { good }
character = root
root = {
add_hook = {
type = favor_hook
target = scope:guest_with_wish
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
OR = {
ai_honor < 0
has_trait = deceitful
}
}
}
}
option = {
name = festival.009.b
root = {
add_stress = minor_stress_loss
}
ai_chance = {
base = 10
modifier = {
add = 10
OR = {
ai_honor > 0
has_trait = just
}
}
}
}
}
###################
# PAPER BLESSINGS #
###################
festival.010 = {
type = activity_event
title = festival.010.t
desc = festival.010.desc
theme = festival_activity
override_background = tanabata_festival_japan
left_portrait = {
character = root
animation = interested
camera = camera_activity_horse
}
center_portrait = {
character = scope:guest_1
animation = admiration
}
right_portrait = {
character = scope:guest_2
animation = betting
camera = camera_event_center
}
cooldown = { years = 1 }
immediate = {
involved_activity = {
#get guest 1
random_attending_character = {
limit = {
this != root
is_ai = yes
}
save_scope_as = guest_1
}
#get guest 2
random_attending_character = {
limit = {
this != root
this != scope:guest_1
is_ai = yes
}
save_scope_as = guest_2
}
}
}
option = {
name = festival.010.a
scope:activity = {
add_activity_log_entry = {
key = purchased_trinkets
score = 10
tags = { good }
character = root
root = {
add_character_modifier = {
modifier = strong_family_modifier
years = 10
}
remove_short_term_gold = minor_gold_value
}
}
}
ai_chance = {
base = 10
}
}
option = {
name = festival.010.b
scope:activity = {
add_activity_log_entry = {
key = purchased_trinkets
score = 10
tags = { good }
character = root
root = {
add_character_modifier = {
modifier = good_health_modifier
years = 5
}
remove_short_term_gold = minor_gold_value
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
health < fine_health
}
}
}
option = {
name = festival.010.c
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = humble
}
}
}
}
########################
# SILENT CONTEMPLATION #
########################
festival.012 = {
type = activity_event
title = festival.012.t
desc = festival.012.desc
theme = festival_activity
override_background = moon_festival_night_japan
trigger = {
}
left_portrait = {
character = scope:guest_1
animation = dancing
}
center_portrait = {
character = root
animation = admiration
camera = camera_event_center_moved_left
}
right_portrait = {
character = scope:guest_2
animation = dancing
}
cooldown = { years = 1 }
immediate = {
involved_activity = {
#get guest 1
random_attending_character = {
limit = {
this != root
is_ai = yes
}
save_scope_as = guest_1
}
#get guest 2
random_attending_character = {
limit = {
this != root
this != scope:guest_1
is_ai = yes
}
save_scope_as = guest_2
}
}
}
option = {
name = festival.012.a
scope:activity = {
add_activity_log_entry = {
key = contemplated_crowd
score = 10
tags = { good }
character = root
root = {
add_stress = minor_stress_loss
}
}
}
ai_chance = {
base = 10
}
}
option = {
name = festival.012.b
scope:activity = {
add_activity_log_entry = {
key = contemplated_crowd
score = 10
tags = { good }
character = root
root = {
add_character_modifier = {
modifier = festival_spirit_modifier
years = 5
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = gregarious
}
}
}
}
####################
# FESTIVAL OPENING #
####################
festival.014 = {
type = activity_event
title = festival.014.t
desc = festival.014.desc
theme = festival_activity
left_portrait = {
character = root
animation = fanning
}
option = {
name = festival.014.a
}
}
#################
# STAINED HONOR #
#################
festival.016 = {
type = activity_event
title = festival.016.t
desc = festival.016.desc
theme = festival_activity
trigger = {
exists = house
scope:activity = {
any_attending_character = {
is_physically_able_ai_adult = yes
exists = house
house != root.house
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
NOT = {
is_of_major_interest_trigger = { CHARACTER = root }
}
}
}
}
center_portrait = {
character = root
animation = disgust
}
right_portrait = {
character = scope:clumsy_oaf
animation = serving_tray
}
cooldown = { years = 1 }
immediate = {
scope:activity = {
random_attending_character = {
limit = {
is_physically_able_ai_adult = yes
exists = house
house != root.house
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
NOT = {
is_of_major_interest_trigger = { CHARACTER = root }
}
}
save_scope_as = clumsy_oaf
}
}
}
option = {
name = festival.016.a
scope:activity = {
add_activity_log_entry = {
key = demanded_compensation_for_mishap
score = 10
tags = { neutral }
character = root
scope:clumsy_oaf = {
pay_short_term_gold = {
gold = medium_gold_value
target = root
}
add_opinion = {
target = root
modifier = insulted_opinion
opinion = -30
}
house = {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_damage_minor_value
REASON = sake_insult
CHAR = root
TARGET_CHAR = scope:clumsy_oaf
TITLE = scope:dummy_gender
}
}
}
root = {
add_prestige = minor_prestige_gain
add_dread = minor_dread_gain
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = vengeful
}
modifier = {
add = 10
has_trait = arrogant
}
}
}
option = {
name = festival.016.b
scope:activity = {
add_activity_log_entry = {
key = forgave_mishap
score = 10
tags = { good }
character = root
root = {
add_prestige = minor_prestige_loss
}
scope:clumsy_oaf = {
add_opinion = {
target = root
modifier = forgiven_opinion
opinion = 30
}
progress_towards_friend_effect = {
REASON = forgiven_blunder
CHARACTER = root
OPINION = 0
}
house = {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_improve_minor_value
REASON = sake_forgiven
CHAR = root
TARGET_CHAR = scope:clumsy_oaf
TITLE = scope:dummy_gender
}
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 20
OR = {
has_trait = forgiving
}
}
modifier = {
add = 10
OR = {
has_trait = compassionate
}
}
}
}
}
########################
# MUTINOUS MARIONETTES #
########################
festival.017 = {
type = activity_event
title = festival.017.t
desc = festival.017.desc
theme = festival_activity
trigger = {
}
left_portrait = {
character = root
animation = anger
}
right_portrait = {
character = scope:puppeteer
animation = storyteller
}
cooldown = { years = 1 }
immediate = {
create_character = {
template = generic_peasant_character
dynasty = none
location = root.location
culture = root.location.culture
faith = root.location.faith
gender_female_chance = root_soldier_female_chance
save_scope_as = puppeteer
}
}
option = {
name = festival.017.a
scope:activity = {
add_activity_log_entry = {
key = enjoyed_puppetry
score = 10
tags = { good }
character = root
root = {
add_stress = medium_stress_loss
add_prestige = minor_prestige_loss
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = compassionate
}
modifier = {
add = 10
has_trait = forgiving
}
}
}
option = {
name = festival.017.b
scope:activity = {
add_activity_log_entry = {
key = burned_puppets
score = 10
tags = { good }
character = root
root = {
add_dread = minor_dread_gain
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = vengeful
}
modifier = {
add = 10
has_trait = arrogant
}
modifier = {
add = 10
OR = {
has_trait = callous
has_trait = sadistic
}
}
}
}
option = {
name = festival.017.c
scope:activity = {
add_activity_log_entry = {
key = observed_crowd
score = 10
tags = { good }
character = root
root = {
scope:activity.activity_location.county = {
change_county_control = 10
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = deceitful
}
modifier = {
add = 10
intrigue >= high_skill_rating
}
}
}
after = {
scope:puppeteer ?= {
silent_disappearance_effect = yes
}
}
}
######################
# TRANCE AND TRIBUTE #
######################
festival.018 = {
type = activity_event
title = festival.018.t
desc = festival.018.desc
theme = festival_activity
trigger = {
}
left_portrait = {
character = root
animation = wedding_drunk
}
right_portrait = {
character = scope:possessed_priestess
animation = shiver
}
cooldown = { years = 1 }
immediate = {
create_character = {
template = beautiful_maiden_character
dynasty = none
location = root.location
culture = root.location.culture
faith = root.location.faith
save_scope_as = possessed_priestess
}
}
option = {
name = festival.018.a
scope:activity = {
add_activity_log_entry = {
key = made_offering
score = 10
tags = { good }
character = root
root = {
remove_short_term_gold = tiny_gold_value
add_piety = medium_piety_gain
}
}
}
stress_impact = {
base = medium_stress_impact_loss
drunkard = medium_stress_impact_loss
temperate = medium_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = zealous
}
modifier = {
factor = 0
gold <= medium_gold_value
}
}
}
option = {
name = festival.018.b
scope:activity = {
add_activity_log_entry = {
key = made_offering
score = 10
tags = { good }
character = root
root = {
add_piety = minor_piety_gain
add_courtier = scope:possessed_priestess
progress_towards_friend_effect = {
CHARACTER = scope:possessed_priestess
REASON = friend_invited_priestess
OPINION = 30
}
}
}
}
ai_chance = {
base = 10
}
}
option = {
name = festival.018.c
scope:activity = {
add_activity_log_entry = {
key = ejected_priestess
score = 10
tags = { neutral }
character = root
root = {
add_piety = minor_piety_loss
add_dread = minor_dread_gain
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
OR = {
has_trait = cynical
}
}
}
}
after = {
if = {
limit = { is_ai = yes }
scope:possessed_priestess ?= {
silent_disappearance_effect = yes
}
}
}
}
###################
# DRAMA BY DECREE #
###################
festival.019 = {
type = activity_event
title = festival.019.t
desc = festival.019.desc
theme = festival_activity
trigger = {
root = scope:host
scope:activity = {
any_attending_character = {
is_councillor_of = root
is_ai = yes
}
}
}
left_portrait = {
character = root
animation = interested
}
right_portrait = {
character = scope:event_planner
animation = obsequious_bow
}
cooldown = { years = 1 }
immediate = {
scope:activity = {
random_attending_character = {
limit = {
is_councillor_of = root
is_ai = yes
}
save_scope_as = play_planner
}
}
}
option = {
name = festival.019.a
scope:activity = {
add_activity_log_entry = {
key = planned_play
score = 10
tags = { good }
character = root
root = {
dynasty = {
add_dynasty_prestige = minor_dynasty_prestige_gain
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = ambitious
}
}
}
option = {
name = festival.019.b
scope:activity = {
add_activity_log_entry = {
key = planned_play
score = 10
tags = { good }
character = root
scope:activity.activity_location.county = {
add_county_modifier = {
modifier = tgp_japan_instructive_plays_county_modifier
years = 10
}
}
}
}
ai_chance = {
base = 10
}
}
option = {
name = festival.019.c
scope:activity = {
add_activity_log_entry = {
key = planned_play
score = 10
tags = { good }
character = root
root = {
add_piety = minor_piety_value
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = zealous
}
}
}
}
###################
# GALLOPING GLORY #
###################
festival.020 = {
type = activity_event
title = festival.020.t
desc = festival.020.desc
theme = festival_activity
override_background = bp3_riverside
trigger = {
}
left_portrait = {
character = root
animation = survey
}
center_portrait = {
character = scope:archer_one
animation = horse_archer_idle
}
right_portrait = {
character = scope:archer_two
animation = horse_archer_idle
}
cooldown = { years = 1 }
immediate = {
create_character = {
template = knight
dynasty = none
location = root.location
culture = root.location.culture
faith = root.location.faith
gender_female_chance = root_soldier_female_chance
save_scope_as = archer_one
}
create_character = {
template = knight
dynasty = none
location = root.location
culture = root.location.culture
faith = root.location.faith
gender_female_chance = root_soldier_female_chance
save_scope_as = archer_two
}
}
option = {
name = festival.020.a
scope:activity = {
add_activity_log_entry = {
key = competed_in_archery
score = 10
tags = { good }
character = root
root = {
add_prestige = minor_prestige_value
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
prowess >= high_skill_rating
}
}
}
option = {
name = festival.020.b
scope:activity = {
add_activity_log_entry = {
key = gambled_on_archers
score = 10
tags = { good }
character = root
root = {
add_gold = minor_gold_value
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = profligate
}
}
}
option = {
name = festival.020.c
scope:activity = {
add_activity_log_entry = {
key = gained_lucky_fan_fragment
score = 10
tags = { good }
character = root
root = {
add_character_modifier = {
modifier = tgp_japan_lucky_fan_fragments_modifier
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
ai_energy < 0
}
}
}
after = {
scope:archer_one ?= {
silent_disappearance_effect = yes
}
scope:archer_two ?= {
silent_disappearance_effect = yes
}
}
}
######################
# INFERNAL PAGEANTRY #
######################
festival.021 = {
type = activity_event
title = festival.021.t
desc = festival.021.desc
theme = festival_activity
trigger = {
root = scope:host
scope:activity = {
any_attending_character = {
is_clergy = yes
}
}
}
left_portrait = {
character = root
animation = worry
}
center_portrait = {
character = scope:counterattacking_clergy
animation = prayer
}
right_portrait = {
character = scope:alarmed_character
animation = stayback
}
cooldown = { years = 1 }
immediate = {
scope:activity = {
random_attending_character = {
limit = {
is_clergy = yes
is_ai = yes
}
save_scope_as = counterattacking_clergy
}
}
scope:activity = {
random_attending_character = {
limit = {
is_ai = yes
NOT = {
this = scope:counterattacking_clergy
}
}
save_scope_as = alarmed_character
}
}
}
option = {
name = festival.021.a
scope:activity = {
add_activity_log_entry = {
key = banished_demons
score = 10
tags = { good }
character = root
root = {
add_character_modifier = {
modifier = tgp_japan_banisher_of_demons_modifer
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
prowess >= high_skill_rating
}
}
}
option = {
name = festival.021.b
scope:activity = {
add_activity_log_entry = {
key = fire_drilled_people
score = 10
tags = { good }
character = root
scope:activity.activity_location.county = {
add_county_modifier = {
modifier = tgp_japan_fire_drilled_county_modifier
years = 10
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
OR = {
has_trait = paranoid
has_trait = diligent
}
}
}
}
option = {
name = festival.021.c
scope:activity = {
add_activity_log_entry = {
key = banned_demons
score = 10
tags = { good }
character = root
root = {
scope:activity.activity_location.county = {
change_county_control = 10
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = craven
}
}
}
}
###################
# FESTIVAL RUMBLE #
###################
festival.022 = {
type = activity_event
title = festival.022.t
desc = festival.022.desc
theme = festival_activity
trigger = {
root = scope:host
}
left_portrait = {
character = root
animation = interested
}
center_portrait = {
character = scope:rumbler_one
animation = anger
}
right_portrait = {
character = scope:rumbler_two
animation = anger
}
cooldown = { years = 1 }
immediate = {
create_character = {
template = knight
dynasty = none
location = root.location
culture = root.location.culture
faith = root.location.faith
gender_female_chance = root_soldier_female_chance
save_scope_as = rumbler_one
}
create_character = {
template = knight
dynasty = none
location = root.location
culture = root.location.culture
faith = root.location.faith
gender_female_chance = root_soldier_female_chance
save_scope_as = rumbler_two
}
}
option = {
name = festival.022.a
scope:activity = {
add_activity_log_entry = {
key = banned_brawling
score = 10
tags = { good }
character = root
root = {
add_prestige = minor_prestige_gain
}
scope:activity.activity_location.county = {
change_county_control = 10
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = paranoid
}
}
}
option = {
name = festival.022.b
scope:activity = {
add_activity_log_entry = {
key = rewarded_brawlers
score = 10
tags = { good }
character = root
root = {
add_gold = minor_gold_loss
}
scope:activity.activity_location.county = {
add_county_modifier = {
modifier = tgp_japan_prized_generosity_county_modifier
years = 10
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = generous
}
}
}
option = {
name = festival.022.c
scope:activity = {
add_activity_log_entry = {
key = keen_eye_for_business
score = 10
tags = { good }
character = root
root = {
add_gold = minor_gold_value
}
scope:activity.activity_location.county = {
add_county_modifier = {
modifier = tgp_japan_taxed_entertainment_county_modifier
years = 10
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = greedy
}
modifier = {
add = 10
gold < minor_gold_value
}
}
}
after = {
scope:rumbler_one ?= {
silent_disappearance_effect = yes
}
scope:rumbler_two ?= {
silent_disappearance_effect = yes
}
}
}
########################
# PROCESSION IMPERILED #
########################
festival.023 = {
type = activity_event
title = festival.023.t
desc = festival.023.desc
theme = festival_activity
trigger = {
root = scope:host
}
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:stumbler
animation = stunned
}
cooldown = { years = 1 }
immediate = {
create_character = {
template = knight
dynasty = none
location = root.location
culture = root.location.culture
faith = root.location.faith
gender_female_chance = root_soldier_female_chance
save_scope_as = stumbler
}
}
option = {
name = festival.023.a
scope:activity = {
add_activity_log_entry = {
key = saved_festival_float
score = 10
tags = { good }
character = root
root = {
add_prestige = minor_prestige_value
add_piety = minor_piety_value
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
prowess >= high_skill_rating
}
}
}
option = {
name = festival.023.b
scope:activity = {
add_activity_log_entry = {
key = tenderized_villager
score = 10
tags = { good }
character = root
root = {
add_gold = minor_gold_value
add_dread = minor_dread_gain
}
scope:activity.activity_location.county = {
change_county_control = 5
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = callous
}
modifier = {
add = 10
has_trait = sadistic
}
}
}
after = {
scope:stumbler ?= {
silent_disappearance_effect = yes
}
}
}
###################
# WOODEN WARDANCE #
###################
festival.024 = {
type = activity_event
title = festival.024.t
desc = festival.024.desc
theme = festival_activity
trigger = {
root = scope:host
}
left_portrait = {
character = root
animation = admiration
}
center_portrait = {
character = scope:wardancer_one
animation = celebrate_spear
}
right_portrait = {
character = scope:wardancer_two
animation = celebrate_spear
}
cooldown = { years = 1 }
immediate = {
create_character = {
template = knight
dynasty = none
location = root.location
culture = root.location.culture
faith = root.location.faith
gender_female_chance = root_soldier_female_chance
save_scope_as = wardancer_one
}
create_character = {
template = knight
dynasty = none
location = root.location
culture = root.location.culture
faith = root.location.faith
gender_female_chance = root_soldier_female_chance
save_scope_as = wardancer_two
}
}
option = {
name = festival.024.a
scope:activity = {
add_activity_log_entry = {
key = village_draft
score = 10
tags = { good }
character = root
root = {
add_character_modifier = {
modifier = tgp_japan_drafted_villagers_modifier
years = 10
}
}
}
}
ai_chance = {
base = 10
}
}
option = {
name = festival.024.b
scope:activity = {
add_activity_log_entry = {
key = studied_martial_motions
score = 10
tags = { good }
character = root
root = {
add_character_modifier = {
modifier = tgp_japan_precise_insight_modifer
years = 10
}
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = strategist
}
modifier = {
add = 10
martial >= high_skill_rating
}
}
}
option = {
name = festival.024.c
scope:activity = {
add_activity_log_entry = {
key = paraded_troops
score = 10
tags = { good }
character = root
scope:activity.activity_location.county = {
change_county_control = 5
}
}
}
ai_chance = {
base = 10
modifier = {
add = 10
has_trait = ambitious
}
}
}
after = {
scope:wardancer_one ?= {
silent_disappearance_effect = yes
}
scope:wardancer_two ?= {
silent_disappearance_effect = yes
}
}
}
######################
# INTENT FULFILLMENT #
######################
festival.100 = {
type = activity_event
title = festival.100.t
desc = festival.100.desc
theme = festival_activity
cooldown = { years = 1 }
override_background = activity_witch_ritual
left_portrait = {
character = scope:target_character
animation = fanning
}
center_portrait = {
character = root
animation = admiration
camera = camera_event_center_pointing_slighty_left
}
right_portrait = {
character = scope:target_character2
animation = flirtation
}
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = raise_cohesion_intent
add = 50
}
modifier = {
has_activity_intent = add_to_bloc_intent
add = 50
}
}
trigger = {
scope:activity = {
trigger_if = {
limit = {
exists = root.intent_target
}
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
trigger_if = {
limit = {
exists = root.intent_target
}
root.intent_target = this
}
}
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
NOT = { root.intent_target ?= this }
}
}
trigger_else = {
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
save_temporary_scope_as = target_one_check
}
any_attending_character = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= { this != scope:target_one_check.confederation }
}
is_ai = yes
house.house_head = this
}
}
}
}
immediate = {
if = {
limit = {
exists = root.intent_target
}
scope:activity = {
random_attending_character = {
limit = {
root.intent_target ?= this
NOR = {
this = root
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
NOR = {
this = root
root.intent_target ?= this
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
this = scope:target_character
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character2
}
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character2
}
}
}
house.house_confederation ?= {
save_scope_as = root_bloc
}
}
option = {
name = festival.100.a
reverse_add_opinion = {
target = scope:target_character
modifier = accepted_my_invitation
opinion = 20
}
reverse_add_opinion = {
target = scope:target_character2
modifier = refused_my_invitation
opinion = -20
}
scope:activity = {
add_activity_log_entry = {
key = festival_moon_gazed_house_log
tags = { positive }
character = root
target = scope:target_character
scope:target_character.house ?= {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_improve_minor_value
REASON = moon_gazed
CHAR = root
TARGET_CHAR = scope:target_character
TITLE = scope:dummy_gender
}
}
}
}
ai_chance = {
base = 25
modifier = {
add = 50
opinion = {
target = scope:target_character
value >= 25
}
opinion = {
target = scope:target_character2
value < 25
}
}
}
}
option = {
name = festival.100.b
reverse_add_opinion = {
target = scope:target_character2
modifier = accepted_my_invitation
opinion = 20
}
reverse_add_opinion = {
target = scope:target_character
modifier = refused_my_invitation
opinion = -20
}
scope:activity = {
add_activity_log_entry = {
key = festival_moon_gazed_house_log
tags = { positive }
character = root
target = scope:target_character2
scope:target_character.house ?= {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_improve_minor_value
REASON = moon_gazed
CHAR = root
TARGET_CHAR = scope:target_character
TITLE = scope:dummy_gender
}
}
}
}
ai_chance = {
base = 25
modifier = {
add = 50
opinion = {
target = scope:target_character2
value >= 25
}
opinion = {
target = scope:target_character
value < 25
}
}
}
}
option = {
name = festival.100.c
if = {
limit = {
government_has_flag = government_has_influence
}
change_influence = minor_influence_gain
}
pay_short_term_gold = {
target = scope:target_character
gold = minor_gold_value
}
reverse_add_opinion = {
target = scope:target_character
modifier = declined_with_decorum
opinion = 10
}
pay_short_term_gold = {
target = scope:target_character2
gold = minor_gold_value
}
reverse_add_opinion = {
target = scope:target_character2
modifier = declined_with_decorum
opinion = 10
}
ai_chance = {
base = 25
modifier = {
add = 50
opinion = {
target = scope:target_character
value < 25
}
opinion = {
target = scope:target_character2
value < 25
}
}
}
}
option = {
name = festival.100.d
trigger = {
exists = house.house_confederation
}
add_prestige = minor_prestige_value
house.house_confederation ?= {
tgp_bloc_change_cohesion_effect = {
VALUE = cohesion_gain_minor
ICON = root
REASON = festival
}
}
scope:activity = {
every_attending_character = {
limit = {
this != root
is_ai = yes
is_vassal_of = top_liege
highest_held_title_tier > tier_barony
}
custom = all_members_of_root_confederation_in_attendance
add_opinion = {
target = root
modifier = festival_gazed_at_moon_together
opinion = 20
}
}
}
ai_chance = {
base = 25
modifier = {
add = 50
opinion = {
target = scope:target_character
value < 0
}
opinion = {
target = scope:target_character2
value < 0
}
}
}
}
}
festival.101 = {
type = activity_event
title = festival.101.t
desc = festival.101.desc
theme = festival_activity
cooldown = { years = 1 }
left_portrait = {
character = root
animation = disgust
}
right_portrait = {
character = scope:target_character
animation = fanning_coyly
camera = camera_event_center_pointing_forward_fov35
}
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = add_to_bloc_intent
add = 50
}
modifier = {
has_activity_intent = remove_from_bloc_intent
add = 50
}
}
trigger = {
scope:activity = {
trigger_if = {
limit = {
exists = root.intent_target
}
any_attending_character = {
root.intent_target = this
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
}
}
trigger_else = {
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
}
}
}
}
immediate = {
if = {
limit = {
exists = root.intent_target
}
scope:activity = {
random_attending_character = {
limit = {
root.intent_target ?= this
NOR = {
this = root
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
}
}
scope:target_character.house.house_confederation ?= {
save_scope_as = bloc
}
}
option = {
name = festival.101.a
reverse_add_opinion = {
target = scope:target_character
modifier = appreciated_discretion
opinion = 20
}
scope:target_character.house ?= {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_improve_minor_value
REASON = appreciated_discreet_note
CHAR = root
TARGET_CHAR = scope:target_character
TITLE = scope:dummy_gender
}
}
ai_chance = {
base = 25
modifier = {
add = 50
opinion = {
target = scope:target_character
value >= 25
}
}
}
}
option = {
name = festival.101.b
scope:activity = {
add_activity_log_entry = {
key = festival_moon_gazed_house_log
tags = { negative }
character = root
target = scope:target_character
scope:target_character = {
if = {
limit = {
government_has_flag = government_has_influence
}
change_influence = major_influence_loss
}
else = { add_prestige = medium_prestige_loss }
if = {
limit = { exists = house.house_confederation }
scope:activity = {
every_attending_character = {
limit = {
this != scope:target_character
this != root
highest_held_title_tier > tier_barony
OR = {
is_independent_ruler = yes
is_vassal_of = top_liege
}
is_ai = yes
house.house_confederation ?= scope:target_character.house.house_confederation
}
custom = all_members_of_confederation_in_attendance
add_opinion = {
target = scope:target_character
modifier = festival_odious_odor
opinion = -25
}
}
}
}
}
}
}
ai_chance = {
base = 25
modifier = {
add = 50
opinion = {
target = scope:target_character
value < 25
}
}
}
}
}
festival.102 = {
type = activity_event
title = festival.102.t
desc = festival.102.desc
theme = festival_activity
cooldown = { years = 1 }
override_background = tanabata_festival_night_japan
left_portrait = {
character = root
animation = wedding_drunk
}
center_portrait = {
character = scope:target_character2
animation = storyteller
}
right_portrait = {
character = scope:target_character
animation = ecstasy
}
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = add_to_bloc_intent
add = 50
}
modifier = {
has_activity_intent = raise_cohesion_intent
add = 50
}
}
trigger = {
drinks_alcohol_trigger = yes
scope:activity = {
activity_host = { drinks_alcohol_trigger = yes }
trigger_if = {
limit = {
exists = root.intent_target
}
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
root.intent_target = this
}
any_attending_character = {
NOR = {
house.house_confederation ?= root.house.house_confederation
root.intent_target ?= this
}
is_ai = yes
house.house_head = this
}
}
trigger_else = {
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
save_temporary_scope_as = target_one_check
}
any_attending_character = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= { this != scope:target_one_check.confederation }
}
is_ai = yes
house.house_head = this
}
}
}
}
immediate = {
if = {
limit = {
exists = root.intent_target
}
scope:activity = {
random_attending_character = {
limit = {
root.intent_target ?= this
NOR = {
this = root
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
NOR = {
this = root
root.intent_target ?= this
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character2
}
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character2
}
}
}
}
option = {
name = festival.102.a
duel = {
skills = { diplomacy learning }
value = high_skill_rating
60 = {
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = festival.delivered_ode
left_icon = root
add_prestige = minor_prestige_gain
if = {
limit = {
government_has_flag = government_has_influence
}
change_influence = minor_influence_gain
}
if = {
limit = {
AND = {
has_trait = lifestyle_poet
has_trait_xp = {
trait = lifestyle_poet
value < 100
}
}
}
add_trait_xp = {
trait = lifestyle_poet
value = 20
}
}
scope:activity = {
every_attending_character = {
limit = {
is_ai = yes
has_trait = lifestyle_poet
this != root
}
custom = every_poet_attendee
add_opinion = {
target = root
modifier = festival_impressive_poetry
opinion = 25
}
}
}
}
}
40 = {
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
send_interface_toast = {
title = festival.poem_fell_flat
left_icon = root
scope:activity = {
every_attending_character = {
limit = {
is_ai = yes
has_trait = lifestyle_poet
this != root
}
custom = every_poet_attendee
add_opinion = {
target = root
modifier = festival_bad_poetry
opinion = -15
}
}
}
}
}
}
ai_chance = {
base = 25
modifier = {
add = 50
has_trait = lifestyle_poet
}
}
}
option = {
name = festival.102.b
scope:activity = {
add_activity_log_entry = {
key = festival_toasted_head_house_log
tags = { positive }
character = root
target = scope:target_character
root = {
add_prestige = medium_prestige_loss
}
scope:target_character = {
add_prestige = medium_prestige_gain
if = {
limit = {
government_has_flag = government_has_influence
}
change_influence = minor_influence_gain
}
house ?= {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_improve_minor_value
REASON = toasted_head
CHAR = root
TARGET_CHAR = scope:target_character
TITLE = scope:dummy_gender
}
}
}
}
}
ai_chance = {
base = 25
modifier = {
add = 50
opinion = {
target = scope:target_character
value >= 25
}
}
}
}
option = {
name = festival.102.c
stress_impact = {
base = minor_stress_impact_loss
drunkard = minor_stress_impact_gain
}
scope:activity = {
every_attending_character = {
limit = {
is_ai = yes
OR = {
has_trait = temperate
has_trait = shy
}
}
custom = every_temperate_or_shy_attendee
add_opinion = {
target = root
modifier = festival_mild_drinker
opinion = 20
}
}
every_attending_character = {
limit = {
is_ai = yes
OR = {
has_trait = drunkard
has_trait = lifestyle_reveler
}
}
custom = every_drunkard_or_lifestyle_reveler_attendee
add_opinion = {
target = root
modifier = festival_mild_drinker_negative
opinion = -10
}
}
}
ai_chance = {
base = 25
modifier = {
add = 25
has_trait = shy
}
modifier = {
add = 25
has_trait = temperate
}
}
}
}
festival.103 = {
type = activity_event
title = festival.103.t
desc = festival.103.desc
theme = festival_activity
cooldown = { years = 1 }
left_portrait = {
character = root
animation = disbelief
}
right_portrait = {
character = scope:target_character
animation = fanning
}
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = add_to_bloc_intent
add = 50
}
modifier = {
has_activity_intent = remove_from_bloc_intent
add = 50
}
}
trigger = {
scope:activity = {
trigger_if = {
limit = {
exists = root.intent_target
}
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
root.intent_target = this
}
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
NOT = { root.intent_target ?= this }
}
}
trigger_else = {
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
save_temporary_scope_as = target_one_check
}
any_attending_character = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= { this != scope:target_one_check.confederation }
}
is_ai = yes
house.house_head = this
}
}
}
}
immediate = {
if = {
limit = {
exists = root.intent_target
}
scope:activity = {
random_attending_character = {
limit = {
root.intent_target ?= this
NOR = {
this = root
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
NOR = {
this = root
root.intent_target ?= this
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character2
}
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character2
}
}
}
scope:target_character.house.house_confederation ?= {
save_scope_as = bloc
}
house.house_confederation ?= {
save_scope_as = root_bloc
}
}
option = {
name = festival.103.a
progress_towards_friend_effect = {
REASON = friend_defended_talents
CHARACTER = scope:target_character
OPINION = 30
}
stress_impact = {
arrogant = minor_stress_gain
humble = minor_stress_loss
honest = minor_stress_gain
deceitful = minor_stress_loss
}
ai_chance = {
base = 25
modifier = {
add = 50
opinion = {
target = scope:target_character
value >= 25
}
}
}
}
option = {
name = festival.103.b
duel = {
skills = { diplomacy }
target = scope:target_character
60 = {
desc = festival.103.b.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
send_interface_toast = {
left_icon = root
right_icon = scope:target_character
title = festival.103.b.success.toast
root = {
add_prestige = medium_prestige_gain
}
scope:target_character = {
add_prestige = medium_prestige_loss
if = {
limit = { exists = house.house_confederation }
scope:activity = {
every_attending_character = {
limit = {
this != scope:target_character
this != root
highest_held_title_tier > tier_barony
OR = {
is_independent_ruler = yes
is_vassal_of = top_liege
}
is_ai = yes
house.house_confederation ?= scope:target_character.house.house_confederation
}
custom = all_members_of_confederation_in_attendance
add_opinion = {
target = scope:target_character
modifier = festival_boasting_exposed
opinion = -25
}
}
}
}
}
}
}
40 = {
desc = festival.103.b.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
left_icon = root
right_icon = scope:target_character
title = festival.103.b.failure.toast
root = {
add_prestige = minor_prestige_loss
}
}
}
}
ai_chance = {
base = 25
modifier = {
add = 50
opinion = {
target = scope:target_character
value < 0
}
}
}
}
option = {
name = festival.103.c
trigger = {
exists = house.house_confederation
}
house.house_confederation ?= {
tgp_bloc_change_cohesion_effect = {
VALUE = cohesion_gain_minor
ICON = root
REASON = festival
}
}
scope:activity = {
every_attending_character = {
limit = {
this != root
highest_held_title_tier > tier_barony
OR = {
is_independent_ruler = yes
is_vassal_of = top_liege
}
is_ai = yes
house.house_confederation ?= root.house.house_confederation
}
custom = all_members_of_confederation_in_attendance
add_opinion = {
target = root
modifier = festival_praised_poetic_talents
opinion = 10
}
}
}
ai_chance = {
base = 40
}
}
}
festival.104 = {
type = activity_event
title = festival.104.t
desc = festival.104.desc
theme = festival_activity
cooldown = { years = 1 }
left_portrait = {
character = root
animation = worry
}
center_portrait = {
character = scope:target_character
animation = fanning_coyly
}
right_portrait = {
character = scope:target_character2
animation = fanning_coyly
}
weight_multiplier = {
base = 2
modifier = {
has_activity_intent = raise_cohesion_intent
add = 50
}
modifier = {
has_activity_intent = remove_from_bloc_intent
add = 50
}
}
trigger = {
scope:activity = {
trigger_if = {
limit = {
exists = root.intent_target
}
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
root.intent_target = this
}
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
NOT = { root.intent_target ?= this }
count >= 3
}
}
trigger_else = {
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
save_temporary_scope_as = target_one_check
}
any_attending_character = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= { this != scope:target_one_check.confederation }
}
is_ai = yes
house.house_head = this
count >= 3
}
}
}
}
immediate = {
if = {
limit = {
exists = root.intent_target
}
scope:activity = {
random_attending_character = {
limit = {
root.intent_target ?= this
NOR = {
this = root
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
NOR = {
this = root
root.intent_target ?= this
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character2
}
random_attending_character = {
limit = {
NOR = {
this = root
this = scope:target_character2
root.intent_target ?= this
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character3
}
random_attending_character = {
limit = {
NOR = {
this = root
this = scope:target_character2
this = scope:target_character3
root.intent_target ?= this
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character4
}
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character2
}
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
this = root
this = scope:target_character2
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character3
}
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
this = root
this = scope:target_character2
this = scope:target_character3
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character4
}
}
}
scope:target_character.house.house_confederation ?= {
save_scope_as = bloc
}
scope:target_character2.house.house_confederation ?= {
save_scope_as = second_bloc
}
house.house_confederation ?= {
save_scope_as = root_bloc
}
}
option = {
name = festival.104.a
duel = {
skills = { diplomacy }
value = medium_skill_rating
60 = {
desc = festival.104.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
send_interface_toast = {
left_icon = root
right_icon = scope:target_character
title = festival.104.a.success.toast
root = {
add_prestige = minor_prestige_gain
reverse_add_opinion = {
target = scope:target_character
modifier = appreciated_independence_of_spirit
opinion = 25
}
reverse_add_opinion = {
target = scope:target_character2
modifier = appreciated_independence_of_spirit
opinion = 25
}
}
}
}
40 = {
desc = festival.104.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
left_icon = root
right_icon = scope:target_character
title = festival.104.a.failure.toast
root = {
reverse_add_opinion = {
target = scope:target_character
modifier = awkward_intrusion
opinion = -15
}
reverse_add_opinion = {
target = scope:target_character2
modifier = awkward_intrusion
opinion = -15
}
}
}
}
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = 1
}
}
}
option = {
name = festival.104.b
duel = {
skills = { intrigue }
value = high_skill_rating
60 = {
desc = festival.104.b.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
send_interface_toast = {
left_icon = root
right_icon = scope:target_character
title = festival.104.b.success.toast
scope:activity = {
every_attending_character = {
limit = {
this != scope:target_character
this != root
highest_held_title_tier > tier_barony
OR = {
is_independent_ruler = yes
is_vassal_of = top_liege
}
is_ai = yes
house.house_confederation ?= scope:target_character.house.house_confederation
}
custom = all_members_of_confederation_in_attendance
add_opinion = {
target = scope:target_character
modifier = festival_questionable_rumors
opinion = -25
}
}
every_attending_character = {
limit = {
this != scope:target_character2
this != root
highest_held_title_tier > tier_barony
OR = {
is_independent_ruler = yes
is_vassal_of = top_liege
}
is_ai = yes
house.house_confederation ?= scope:target_character2.house.house_confederation
}
custom = all_members_of_second_confederation_in_attendance
add_opinion = {
target = scope:target_character2
modifier = festival_questionable_rumors
opinion = -25
}
}
}
}
}
40 = {
desc = festival.104.b.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
left_icon = root
right_icon = scope:target_character
title = festival.104.b.failure.toast
root = {
add_prestige = minor_prestige_loss
}
}
}
}
stress_impact = {
just = minor_stress_gain
honest = minor_stress_gain
deceitful = minor_stress_loss
}
ai_chance = {
base = 25
modifier = {
add = 25
opinion = {
target = scope:target_character
value < 25
}
}
modifier = {
add = 25
opinion = {
target = scope:target_character2
value < 25
}
}
}
}
option = {
name = festival.104.c
trigger = {
exists = house.house_confederation
}
house.house_confederation ?= {
tgp_bloc_change_cohesion_effect = {
VALUE = cohesion_gain_minor
ICON = root
REASON = festival
}
}
stress_impact = {
forgiving = minor_stress_gain
vengeful = minor_stress_loss
}
ai_chance = {
base = 40
}
}
}
festival.105 = {
type = activity_event
title = festival.105.t
desc = festival.105.desc
theme = festival_activity
override_background = tanabata_festival_japan
cooldown = { years = 1 }
left_portrait = {
character = root
animation = thinking
}
center_portrait = {
character = scope:target_character2
animation = personality_compassionate
}
right_portrait = {
character = scope:target_character3
animation = personality_bold
}
lower_right_portrait = {
character = scope:target_character
}
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = add_to_bloc_intent
add = 50
}
modifier = {
has_activity_intent = raise_cohesion_intent
add = 50
}
}
trigger = {
scope:activity = {
trigger_if = {
limit = {
exists = root.intent_target
}
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
root.intent_target = this
}
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
NOT = { root.intent_target ?= this }
count >= 2
}
}
trigger_else = {
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
save_temporary_scope_as = target_one_check
}
any_attending_character = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= { this != scope:target_one_check.confederation }
}
is_ai = yes
house.house_head = this
count >= 2
}
}
}
}
immediate = {
if = {
limit = {
exists = root.intent_target
}
scope:activity = {
random_attending_character = {
limit = {
root.intent_target ?= this
NOR = {
this = root
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
NOR = {
this = root
root.intent_target ?= this
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character2
}
random_attending_character = {
limit = {
NOR = {
this = root
this = scope:target_character2
root.intent_target ?= this
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character3
}
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character2
}
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
this = root
this = scope:target_character2
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character3
}
}
}
house.house_confederation ?= {
save_scope_as = bloc
}
}
option = {
name = festival.105.a
duel = {
skills = { learning }
target = scope:target_character
60 = {
desc = festival.105.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
send_interface_toast = {
left_icon = root
right_icon = scope:target_character
title = festival.105.a.success.toast
root = {
add_prestige = minor_prestige_gain
}
scope:activity = {
every_attending_character = {
limit = {
is_ai = yes
learning < root.learning
}
custom = every_attendee_with_lower_learning
add_opinion = {
target = root
modifier = impressed_by_wit
opinion = 30
}
}
}
}
}
40 = {
desc = festival.105.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
left_icon = root
right_icon = scope:target_character
title = festival.105.a.failure.toast
scope:activity = {
every_attending_character = {
limit = {
is_ai = yes
learning > root.learning
}
custom = every_attendee_with_greater_learning
add_opinion = {
target = root
modifier = impressed_by_witlessness
opinion = -15
}
}
}
}
}
}
stress_impact = {
lazy = minor_stress_gain
}
ai_chance = {
base = 25
modifier = {
add = 25
learning > high_skill_rating
}
}
}
option = {
name = festival.105.b
scope:target_character = {
add_opinion = {
target = root
modifier = praised_my_wit
opinion = 15
}
}
scope:target_character.house ?= {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_improve_minor_value
REASON = wit_praised
CHAR = root
TARGET_CHAR = scope:target_character
TITLE = scope:dummy_gender
}
}
stress_impact = {
arrogant = minor_stress_gain
humble = minor_stress_loss
}
ai_chance = {
base = 25
modifier = {
add = 25
opinion = {
target = scope:target_character
value > 25
}
}
}
}
option = {
name = festival.105.c
trigger = {
exists = house.house_confederation
}
duel = {
skills = { diplomacy intrigue learning }
value = medium_skill_rating
40 = {
desc = festival.105.c.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
send_interface_toast = {
left_icon = root
right_icon = scope:target_character
title = festival.105.c.success.toast
if = {
limit = {
government_has_flag = government_has_influence
}
change_influence = minor_influence_gain
}
house.house_confederation ?= {
tgp_bloc_change_cohesion_effect = {
VALUE = cohesion_gain_minor
ICON = root
REASON = festival
}
}
scope:activity = {
every_attending_character = {
limit = {
this != root
highest_held_title_tier > tier_barony
OR = {
is_independent_ruler = yes
is_vassal_of = top_liege
}
is_ai = yes
house.house_confederation ?= root.house.house_confederation
}
custom = all_members_of_confederation_in_attendance
add_opinion = {
target = root
modifier = festival_composed_riddles_together
opinion = 30
}
}
}
}
}
60 = {
desc = festival.105.c.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
left_icon = root
right_icon = scope:target_character
title = festival.105.c.failure.toast
scope:activity = {
every_attending_character = {
limit = {
this != root
highest_held_title_tier > tier_barony
OR = {
is_independent_ruler = yes
is_vassal_of = top_liege
}
is_ai = yes
house.house_confederation ?= root.house.house_confederation
}
custom = all_members_of_confederation_in_attendance
add_opinion = {
target = root
modifier = festival_composed_riddles_together_badly
opinion = -15
}
}
}
}
}
}
stress_impact = {
lazy = minor_stress_gain
}
ai_chance = {
base = 40
}
}
}
festival.106 = {
type = activity_event
title = festival.106.t
desc = festival.106.desc
theme = festival_activity
cooldown = { years = 1 }
override_background = tavern
override_effect_2d = { reference = rain }
left_portrait = {
character = root
animation = fanning
}
right_portrait = {
character = scope:target_character
animation = worry
}
lower_right_portrait = {
character = scope:target_character2
}
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = add_to_bloc_intent
add = 50
}
}
trigger = {
scope:activity = {
trigger_if = {
limit = {
exists = root.intent_target
}
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
root.intent_target = this
}
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
NOT = { root.intent_target ?= this }
}
}
trigger_else = {
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
save_temporary_scope_as = target_one_check
}
any_attending_character = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= { this != scope:target_one_check.confederation }
}
is_ai = yes
house.house_head = this
}
}
}
}
immediate = {
if = {
limit = {
exists = root.intent_target
}
scope:activity = {
random_attending_character = {
limit = {
root.intent_target ?= this
NOR = {
this = root
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
NOR = {
this = root
root.intent_target ?= this
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character2
}
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character2
}
}
}
}
option = {
name = festival.106.a
scope:target_character.house ?= {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_improve_minor_value
REASON = appreciated_assistance
CHAR = root
TARGET_CHAR = scope:target_character
TITLE = scope:dummy_gender
}
}
scope:target_character = {
add_opinion = {
target = root
modifier = festival_offered_shelter
opinion = 20
}
}
ai_chance = {
base = 25
modifier = {
add = 25
opinion = {
target = scope:target_character
value >= 25
}
}
}
}
option = {
name = festival.106.b
duel = {
skills = { diplomacy intrigue }
value = medium_skill_rating
50 = {
desc = festival.106.b.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
send_interface_toast = {
left_icon = root
right_icon = scope:target_character2
title = festival.106.b.success.toast
scope:target_character2 = {
add_opinion = {
target = root
modifier = festival_enjoyed_talk
opinion = 20
}
}
}
}
50 = {
desc = festival.106.b.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
left_icon = root
right_icon = scope:target_character2
title = festival.106.b.failure.toast
scope:target_character2 = {
add_opinion = {
target = root
modifier = festival_suspicious
opinion = -10
}
}
}
}
}
if = {
limit = {
can_add_hook = {
type = favor_hook
target = scope:target_character
}
}
add_hook = {
type = favor_hook
target = scope:target_character
}
}
ai_chance = {
base = 25
modifier = {
add = 25
opinion = {
target = scope:target_character
value >= 25
}
}
}
}
option = {
name = festival.106.c
scope:target_character2.house ?= {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_improve_minor_value
REASON = shared_mockery
CHAR = root
TARGET_CHAR = scope:target_character2
TITLE = scope:dummy_gender
}
}
scope:target_character2 = {
add_opinion = {
target = root
modifier = festival_shamed_another
opinion = 10
}
}
scope:target_character.house ?= {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_damage_minor_value
REASON = exposed_my_state
CHAR = root
TARGET_CHAR = scope:target_character
TITLE = scope:dummy_gender
}
}
scope:target_character.house ?= {
change_house_relation_effect = {
HOUSE = scope:target_character2.house
VALUE = house_relation_damage_minor_value
REASON = exposed_my_state
CHAR = scope:target_character2
TARGET_CHAR = scope:target_character
TITLE = scope:dummy_gender
}
}
scope:target_character = {
add_opinion = {
target = root
modifier = festival_shamed_me
opinion = -30
}
}
scope:target_character = {
add_opinion = {
target = scope:target_character2
modifier = festival_shamed_me
opinion = -30
}
}
ai_chance = {
base = 25
modifier = {
add = 25
opinion = {
target = scope:target_character
value < 25
}
}
}
}
}
festival.107 = {
type = activity_event
title = festival.107.t
desc = festival.107.desc
theme = festival_activity
override_background = moon_festival_night_japan
cooldown = { years = 1 }
left_portrait = {
character = root
animation = flirtation_left
camera = camera_body_right
}
center_portrait = {
character = scope:target_character2
animation = fanning_coyly
camera = camera_body_left_slight
}
lower_left_portrait = {
character = scope:target_character
}
lower_right_portrait = {
character = scope:character_of_rumor
}
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = raise_cohesion_intent
add = 50
}
modifier = {
has_activity_intent = add_to_bloc_intent
add = 50
}
}
trigger = {
scope:activity = {
trigger_if = {
limit = {
exists = root.intent_target
}
any_attending_character = {
NOR = {
this = root
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
root.intent_target = this
might_cheat_on_every_partner_trigger = yes
save_temporary_scope_as = target_one_check
}
any_attending_character = {
NOR = {
this = root
house.house_confederation ?= root.house.house_confederation
root.intent_target ?= this
}
is_ai = yes
house.house_head = this
}
}
trigger_else = {
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
might_cheat_on_every_partner_trigger = yes
save_temporary_scope_as = target_one_check
}
any_attending_character = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= { this != scope:target_one_check.confederation }
}
is_ai = yes
house.house_head = this
}
}
any_attending_character = {
NOR = {
this = root
house.house_confederation ?= root.house.house_confederation
root.intent_target ?= this
}
is_ruler = yes
is_ai = yes
house.house_head = this
any_courtier = {
is_physically_able_ai_adult = yes
age < define:NCharacter|FEMALE_ATTRACTION_CUTOFF_AGE # we just default to the lower of the two
trigger_if = {
root.intent_target ?= {
is_male = yes
}
is_female = yes
}
trigger_else = {
is_male = yes
}
is_attracted_to_gender_of = scope:target_one_check
might_cheat_on_every_partner_trigger = yes
has_lustful_adjacent_trait_trigger = yes
}
}
}
}
immediate = {
if = {
limit = {
exists = root.intent_target
}
scope:activity = {
random_attending_character = {
limit = {
root.intent_target ?= this
NOR = {
this = root
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
might_cheat_on_every_partner_trigger = yes
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
NOR = {
this = root
root.intent_target ?= this
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character2
}
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
this = root
}
is_ai = yes
house.house_head = this
might_cheat_on_every_partner_trigger = yes
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character2
}
}
}
scope:activity = {
random_attending_character = {
limit = {
NOR = {
this = root
house.house_confederation ?= root.house.house_confederation
root.intent_target ?= this
}
is_ruler = yes
is_ai = yes
house.house_head = this
any_courtier = {
is_physically_able_ai_adult = yes
age < define:NCharacter|FEMALE_ATTRACTION_CUTOFF_AGE # we just default to the lower of the two
trigger_if = {
root.intent_target ?= {
is_male = yes
}
is_female = yes
}
trigger_else = {
is_male = yes
}
is_attracted_to_gender_of = scope:target_character
might_cheat_on_every_partner_trigger = yes
has_lustful_adjacent_trait_trigger = yes
}
}
save_scope_as = courtier_host
}
}
scope:courtier_host = {
random_courtier = {
limit = {
is_physically_able_ai_adult = yes
age < define:NCharacter|FEMALE_ATTRACTION_CUTOFF_AGE # we just default to the lower of the two
trigger_if = {
root.intent_target ?= {
is_male = yes
}
is_female = yes
}
trigger_else = {
is_male = yes
}
is_attracted_to_gender_of = scope:target_character
might_cheat_on_every_partner_trigger = yes
has_lustful_adjacent_trait_trigger = yes
}
save_scope_as = character_of_rumor
}
}
house.house_confederation ?= {
save_scope_as = root_bloc
}
}
option = {
name = festival.107.a
scope:target_character = {
add_prestige = minor_prestige_loss
}
if = {
limit = {
government_has_flag = government_has_influence
}
change_influence = minor_influence_loss
}
scope:target_character.house ?= {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_damage_minor_value
REASON = malicious_slander
CHAR = root
TARGET_CHAR = scope:target_character
TITLE = scope:dummy_gender
}
}
ai_chance = {
base = 25
modifier = {
add = 25
opinion = {
target = scope:target_character
value < 25
}
}
}
}
option = {
name = festival.107.b
scope:target_character = {
add_prestige = minor_prestige_gain
}
if = {
limit = {
government_has_flag = government_has_influence
}
change_influence = minor_influence_gain
}
scope:target_character.house ?= {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_improve_minor_value
REASON = bolstered_reputation
CHAR = root
TARGET_CHAR = scope:target_character
TITLE = scope:dummy_gender
}
}
ai_chance = {
base = 25
modifier = {
add = 25
opinion = {
target = scope:target_character
value >= 25
}
}
}
}
option = {
name = festival.107.c
trigger = {
exists = house.house_confederation
}
house.house_confederation ?= {
tgp_bloc_change_cohesion_effect = {
VALUE = cohesion_gain_minor
ICON = root
REASON = festival
}
}
scope:activity = {
every_attending_character = {
limit = {
this != root
highest_held_title_tier > tier_barony
OR = {
is_independent_ruler = yes
is_vassal_of = top_liege
}
is_ai = yes
house.house_confederation ?= root.house.house_confederation
has_lustful_adjacent_trait_trigger = yes
}
custom = all_members_of_root_confederation_in_attendance
add_opinion = {
target = root
modifier = festival_enhanced_amorous_reputation
opinion = 20
}
}
}
ai_chance = {
base = 40
}
}
}
festival.108 = {
type = activity_event
title = festival.108.t
desc = festival.108.desc
theme = festival_activity
override_background = tavern
cooldown = { years = 1 }
center_portrait = {
character = root
animation = map_schadenfreude
}
right_portrait = {
character = scope:target_character2
animation = fanning
}
lower_right_portrait = {
character = scope:target_character
}
lower_left_portrait = {
character = scope:target_character4
}
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = remove_from_bloc_intent
add = 50
}
modifier = {
has_activity_intent = add_to_bloc_intent
add = 50
}
modifier = {
has_activity_intent = raise_cohesion_intent
add = 50
}
}
trigger = {
scope:activity = {
trigger_if = {
limit = {
exists = root.intent_target
}
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
root.intent_target = this
save_temporary_scope_as = target
}
any_attending_character = {
house.house_confederation ?= root.house.house_confederation
is_ai = yes
house.house_head = this
NOT = { root.intent_target ?= this }
}
}
trigger_else = {
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
save_temporary_scope_as = target
}
any_attending_character = {
house.house_confederation ?= root.house.house_confederation
is_ai = yes
house.house_head = this
}
}
}
scope:target = {
OR = {
house.house_confederation.leading_house.house_head ?= {
is_ai = yes
is_married = yes
primary_spouse = {
is_physically_able_ai_adult = yes
age < define:NCharacter|FEMALE_ATTRACTION_CUTOFF_AGE # we just default to the lower of the two
}
}
liege ?= {
is_ai = yes
house.house_head = this
is_married = yes
primary_spouse = {
is_physically_able_ai_adult = yes
age < define:NCharacter|FEMALE_ATTRACTION_CUTOFF_AGE # we just default to the lower of the two
}
}
}
}
}
immediate = {
if = {
limit = {
exists = root.intent_target
}
scope:activity = {
random_attending_character = {
limit = {
root.intent_target ?= this
NOR = {
this = root
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
house.house_confederation ?= root.house.house_confederation
NOR = {
this = root
root.intent_target ?= this
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character2
}
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
house.house_confederation ?= root.house.house_confederation
NOT = {
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character2
}
}
}
scope:target_character = {
if = {
limit = {
exists = house.house_confederation.leading_house.house_head
}
house.house_confederation.leading_house.house_head = {
save_scope_as = target_character3
primary_spouse = {
save_scope_as = target_character4
}
}
}
else = {
liege = {
save_scope_as = target_character3
primary_spouse = {
save_scope_as = target_character4
}
}
}
}
}
option = {
name = festival.108.a
scope:target_character3 = {
add_opinion = {
target = scope:target_character
modifier = festival_advanced_upon_my_spouse
opinion = -30
}
}
scope:target_character.house ?= {
change_house_relation_effect = {
HOUSE = scope:target_character3.house
VALUE = house_relation_damage_minor_value
REASON = gifted_a_fan
CHAR = scope:target_character
TARGET_CHAR = scope:target_character3
TITLE = scope:dummy_gender
}
}
ai_chance = {
base = 25
modifier = {
add = 25
opinion = {
target = scope:target_character
value < 25
}
}
}
}
option = {
name = festival.108.b
scope:target_character = {
add_opinion = {
target = root
modifier = festival_returned_my_possession
opinion = 10
}
}
if = {
limit = {
can_add_hook = {
type = favor_hook
target = scope:target_character
}
}
add_hook = {
type = favor_hook
target = scope:target_character
}
}
ai_chance = {
base = 25
modifier = {
add = 25
opinion = {
target = scope:target_character
value >= 25
}
}
}
}
option = {
name = festival.108.c
scope:target_character2 = {
add_opinion = {
target = root
modifier = festival_shared_a_secret
opinion = 10
}
}
scope:target_character2.house ?= {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_improve_minor_value
REASON = shared_secret
CHAR = root
TARGET_CHAR = scope:target_character2
TITLE = scope:dummy_gender
}
}
ai_chance = {
base = 25
modifier = {
add = 25
opinion = {
target = scope:target_character2
value >= 25
}
}
}
}
}
festival.109 = {
type = activity_event
title = festival.109.t
desc = festival.109.desc
theme = festival_activity
cooldown = { years = 1 }
left_portrait = {
character = root
animation = fanning
}
center_portrait = {
character = scope:target_character2
animation = fear
}
right_portrait = {
character = scope:target_character
animation = flirtation
}
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = add_to_bloc_intent
add = 50
}
modifier = {
has_activity_intent = raise_cohesion_intent
add = 50
}
}
trigger = {
scope:activity = {
trigger_if = {
limit = {
exists = root.intent_target
}
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
root.intent_target = this
ai_compassion < low_positive_ai_value
save_temporary_scope_as = target_one_check
}
any_attending_character = {
NOR = {
root.intent_target ?= this
house.house_confederation ?= root.house.house_confederation
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:target_one_check }
this = scope:target_one_check
}
is_ai = yes
house.house_head = this
diplomacy <= low_skill_rating
ai_boldness < low_positive_ai_value
}
}
trigger_else = {
any_attending_character = {
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
ai_compassion < low_positive_ai_value
save_temporary_scope_as = target_one_check
}
any_attending_character = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= { this != scope:target_one_check.confederation }
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:target_one_check }
this = scope:target_one_check
}
is_ai = yes
house.house_head = this
diplomacy <= low_skill_rating
ai_boldness < low_positive_ai_value
}
}
}
}
immediate = {
if = {
limit = {
exists = root.intent_target
}
scope:activity = {
random_attending_character = {
limit = {
root.intent_target ?= this
NOR = {
this = root
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
ai_compassion < low_positive_ai_value
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
NOR = {
this = root
root.intent_target ?= this
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:target_character }
this = scope:target_character
}
is_ai = yes
house.house_head = this
diplomacy <= low_skill_rating
ai_boldness < low_positive_ai_value
}
save_scope_as = target_character2
}
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
this = root
}
is_ai = yes
house.house_head = this
ai_compassion < low_positive_ai_value
}
save_scope_as = target_character
}
random_attending_character = {
limit = {
NOR = {
house.house_confederation ?= root.house.house_confederation
house.house_confederation ?= scope:target_character.confederation
this = root
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:target_character }
this = scope:target_character
}
is_ai = yes
house.house_head = this
diplomacy <= low_skill_rating
ai_boldness < low_positive_ai_value
}
save_scope_as = target_character2
}
}
}
house.house_confederation ?= {
save_scope_as = root_bloc
}
}
option = {
name = festival.109.a
scope:target_character = {
add_opinion = {
target = root
modifier = opposed_me
opinion = -15
}
}
scope:target_character.house ?= {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_damage_minor_value
REASON = forced_to_back_off
CHAR = root
TARGET_CHAR = scope:target_character
TITLE = scope:dummy_gender
}
}
scope:target_character2 = {
add_opinion = {
target = root
modifier = helped_me
opinion = 20
}
}
scope:target_character2.house ?= {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_improve_minor_value
REASON = came_to_my_aid
CHAR = root
TARGET_CHAR = scope:target_character2
TITLE = scope:dummy_gender
}
}
ai_chance = {
base = 25
modifier = {
add = 25
opinion = {
target = scope:target_character2
value >= 25
}
}
modifier = {
add = 25
opinion = {
target = scope:target_character
value < 25
}
}
}
}
option = {
name = festival.109.b
scope:target_character2 = {
add_opinion = {
target = root
modifier = festival_shamed_me
opinion = -20
}
}
scope:target_character2.house ?= {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_damage_minor_value
REASON = compelled_poetry
CHAR = root
TARGET_CHAR = scope:target_character2
TITLE = scope:dummy_gender
}
}
scope:target_character = {
add_opinion = {
target = root
modifier = festival_shamed_another
opinion = 20
}
}
scope:target_character.house ?= {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_improve_minor_value
REASON = shared_mockery
CHAR = root
TARGET_CHAR = scope:target_character
TITLE = scope:dummy_gender
}
}
ai_chance = {
base = 25
modifier = {
add = 25
opinion = {
target = scope:target_character
value >= 25
}
}
modifier = {
add = 25
opinion = {
target = scope:target_character2
value < 25
}
}
}
}
option = {
name = festival.109.c
trigger = {
exists = house.house_confederation
}
if = {
limit = {
can_add_hook = {
type = favor_hook
target = scope:target_character2
}
}
add_hook = {
type = favor_hook
target = scope:target_character2
}
}
house.house_confederation ?= {
tgp_bloc_change_cohesion_effect = {
VALUE = cohesion_gain_minor
ICON = root
REASON = festival
}
}
scope:activity = {
every_attending_character = {
limit = {
this != root
highest_held_title_tier > tier_barony
OR = {
is_independent_ruler = yes
is_vassal_of = top_liege
}
is_ai = yes
house.house_confederation ?= root.house.house_confederation
}
custom = all_members_of_root_confederation_in_attendance
add_opinion = {
target = root
modifier = festival_praised_poetic_prowess
opinion = 20
}
}
}
ai_chance = {
base = 40
}
}
}
festival.114 = {
type = activity_event
title = festival.114.t
desc = festival.114.desc
theme = festival_activity
cooldown = { years = 1 }
left_portrait = {
character = root
animation = personality_compassionate
}
center_portrait = {
character = scope:companion
animation = interested
}
right_portrait = {
character = scope:target_character
camera = camera_event_left_away_3_4_far
}
override_background = activity_witch_ritual
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = add_to_bloc_intent
add = 50
}
modifier = {
has_activity_intent = raise_cohesion_intent
add = 50
}
modifier = {
has_activity_intent = remove_from_bloc_intent
add = 50
}
}
trigger = {
scope:activity = {
trigger_if = {
limit = {
exists = root.intent_target
}
any_attending_character = {
exists = house.house_confederation
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
root.intent_target = this
}
}
trigger_else = {
any_attending_character = {
exists = house.house_confederation
NOT = {
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
}
}
}
}
immediate = {
if = {
limit = {
exists = root.intent_target
}
scope:activity = {
random_attending_character = {
limit = {
exists = house.house_confederation
root.intent_target ?= this
NOR = {
this = root
house.house_confederation ?= root.house.house_confederation
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
#find a companion
ordered_attending_character = {
order_by = "opinion(root)"
max = 1
limit = {
this != root
this != scope:target_character
is_ai = yes
}
save_scope_as = companion
}
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
exists = house.house_confederation
NOR = {
house.house_confederation ?= root.house.house_confederation
this = root
}
is_ai = yes
house.house_head = this
}
save_scope_as = target_character
}
}
}
scope:target_character.house.house_confederation ?= {
save_scope_as = bloc
}
house.house_confederation ?= {
save_scope_as = root_bloc
}
}
option = {
name = festival.114.a
scope:target_character = {
add_opinion = {
target = root
modifier = festival_extended_an_invitation
opinion = 20
}
}
scope:target_character.house ?= {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_improve_minor_value
REASON = extended_a_kind_invitation
CHAR = root
TARGET_CHAR = scope:target_character
TITLE = scope:dummy_gender
}
}
ai_chance = {
base = 25
modifier = {
add = 25
opinion = {
target = scope:target_character
value >= 25
}
}
}
}
option = {
name = festival.114.b
scope:activity = {
every_attending_character = {
limit = {
this != scope:target_character
this != root
highest_held_title_tier > tier_barony
OR = {
is_independent_ruler = yes
is_vassal_of = top_liege
}
is_ai = yes
house.house_confederation ?= root.house.house_confederation
}
custom = all_members_of_confederation_in_attendance
reverse_add_opinion = {
target = scope:target_character
modifier = festival_cast_me_aside
opinion = -30
}
}
}
ai_chance = {
base = 25
modifier = {
add = 25
opinion = {
target = scope:target_character
value < 25
}
}
}
}
option = {
name = festival.114.c
trigger = {
exists = house.house_confederation
}
house.house_confederation ?= {
tgp_bloc_change_cohesion_effect = {
VALUE = cohesion_gain_minor
ICON = root
REASON = festival
}
}
scope:activity = {
every_attending_character = {
limit = {
this != root
highest_held_title_tier > tier_barony
OR = {
is_independent_ruler = yes
is_vassal_of = top_liege
}
is_ai = yes
house.house_confederation ?= root.house.house_confederation
}
custom = all_members_of_root_confederation_in_attendance
add_opinion = {
target = root
modifier = festival_reinforced_group_cohesion
opinion = 15
}
}
}
ai_chance = {
base = 40
}
}
}
####################
# ESTEEMED COMPANY #
####################
scripted_trigger festival_1000_bloc_member_house_trigger = {
NOR = {
root ?= this
scope:bloc_member_head_1 ?= this
}
is_house_head = yes
}
festival.1000 = {
type = activity_event
title = festival.1000.t
desc = {
desc = festival.1000.desc
desc = festival.1000.outro
}
theme = festival_activity
override_background = tavern
left_portrait = {
character = root
animation = war_over_tie
}
center_portrait = {
character = scope:bloc_member_head_1
animation = thinking
}
right_portrait = {
character = scope:bloc_member_head_2
animation = admiration
}
cooldown = { years = 1 }
trigger = {
# Is a house head
is_house_head = yes
# House is in a Bloc
exists = house.house_confederation
OR = {
exists = intent_target
scope:activity = {
any_attending_character = {
count >= 2
is_house_head = yes
this != root
}
}
}
}
immediate = {
house.house_confederation = { save_scope_as = bloc }
# Always save intent target if relevant
if = {
limit = { has_activity_intent = add_to_bloc_intent }
intent_target = { save_scope_as = bloc_member_head_1 }
# Get member of own Bloc
scope:bloc = {
random_confederation_member_house = {
limit = { # Prefer leading house
this = scope:bloc.leading_house
festival_1000_bloc_member_house_trigger = yes
}
alternative_limit = { festival_1000_bloc_member_house_trigger = yes }
house_head = { save_scope_as = bloc_member_head_2 }
}
}
}
else_if = {
limit = { has_activity_intent = remove_from_bloc_intent }
intent_target = {
save_scope_as = bloc_member_head_1
# Get member of their Bloc
house.house_confederation = {
random_confederation_member_house = {
limit = { # Prefer leading house
this = root.intent_target.house.house_confederation.leading_house
festival_1000_bloc_member_house_trigger = yes
}
alternative_limit = { festival_1000_bloc_member_house_trigger = yes }
house_head = { save_scope_as = bloc_member_head_2 }
}
}
}
}
else = {
# Always have at least 2 other house heads in the event
hidden_effect = {
while = {
limit = { NOT = { exists = scope:bloc_member_head_2 } }
scope:activity = {
random_attending_character = {
limit = { festival_1000_bloc_member_house_trigger = yes }
if = {
limit = { exists = scope:bloc_member_head_1 }
save_scope_as = bloc_member_head_2
}
else = { save_scope_as = bloc_member_head_1 }
}
}
}
}
}
}
option = {
name = festival.1000.a
trigger = { has_activity_intent = raise_cohesion_intent }
reason = activity_intent
scope:bloc = {
tgp_bloc_change_cohesion_effect = {
VALUE = cohesion_gain_minor
ICON = root
REASON = festival
}
}
ai_chance = {
base = 100
}
}
option = {
name = festival.1000.b
trigger = { has_activity_intent = add_to_bloc_intent }
reason = activity_intent
reverse_add_opinion = {
target = scope:bloc_member_head_1
modifier = respect_opinion
opinion = 15
}
scope:bloc_member_head_1.house = {
change_house_relation_effect = {
HOUSE = root.house
VALUE = house_relation_improve_minor_value
REASON = festival_increase
CHAR = root
TARGET_CHAR = scope:bloc_member_head_1
TITLE = scope:dummy_gender
}
}
ai_chance = {
base = 100
}
}
option = {
name = festival.1000.c
trigger = { has_activity_intent = remove_from_bloc_intent }
reason = activity_intent
reverse_add_opinion = {
target = scope:bloc_member_head_1
modifier = insulted_opinion
opinion = -15
}
scope:bloc_member_head_1.house = {
change_house_relation_effect = {
HOUSE = scope:bloc_member_head_1.house.house_confederation.leading_house
VALUE = house_relation_damage_minor_value
REASON = festival_decrease
CHAR = root
TARGET_CHAR = scope:bloc_member_head_1
TITLE = scope:dummy_gender
}
}
ai_chance = {
base = 100
}
}
option = {
name = festival.1000.e
trigger = {
NAND = {
has_activity_intent = add_to_bloc_intent
intent_target = scope:bloc_member_head_1
}
}
house = {
change_house_relation_effect = {
HOUSE = scope:bloc_member_head_1.house
VALUE = house_relation_improve_minor_value
REASON = festival_increase
CHAR = root
TARGET_CHAR = scope:bloc_member_head_1
TITLE = scope:dummy_gender
}
}
ai_chance = {
base = 10
opinion_modifier = {
opinion_target = scope:bloc_member_head_1
multiplier = 0.1 # +10 at 100
}
}
}
option = {
name = festival.1000.f
trigger = {
NAND = {
has_activity_intent = add_to_bloc_intent
intent_target = scope:bloc_member_head_2
}
}
house = {
change_house_relation_effect = {
HOUSE = scope:bloc_member_head_2.house
VALUE = house_relation_improve_minor_value
REASON = festival_increase
CHAR = root
TARGET_CHAR = scope:bloc_member_head_2
TITLE = scope:dummy_gender
}
}
ai_chance = {
base = 10
opinion_modifier = {
opinion_target = scope:bloc_member_head_2
multiplier = 0.1 # +10 at 100
}
}
}
option = {
name = festival.1000.g
stress_impact = {
base = minor_stress_impact_loss
gregarious = minor_stress_impact_loss
}
ai_chance = {
base = 10
}
}
}
###########
# CLOSING #
###########
festival.2000 = {
type = activity_event
title = festival.2000.t
desc = {
desc = festival.2000.intro_desc
triggered_desc = {
trigger = {
exists = scope:friendly_attendee
}
desc = festival.2000.intro_part_two
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:bloc_inviter
}
desc = festival.2000.bloc_invitation
}
triggered_desc = {
trigger = {
exists = scope:friend_candidate
}
desc = festival.2000.befriending
}
desc = festival.2000.nobody_likes_you
}
}
}
theme = festival_activity
left_portrait = {
character = root
animation = personality_compassionate
}
right_portrait = {
character = scope:friendly_attendee
animation = personality_compassionate
}
immediate = {
if = {
limit = {
NOT = { exists = house.house_confederation }
}
scope:activity = {
random_attending_character = {
limit = {
is_ai = yes
exists = house.house_confederation
is_house_head = yes
house.house_confederation.leading_house.house_head = {
NOT = { has_any_bad_relationship_with_character_trigger = { CHARACTER = root } }
}
NOT = { has_any_bad_relationship_with_character_trigger = { CHARACTER = root } }
opinion = {
target = root
value >= 50
}
}
save_scope_as = friendly_attendee
save_scope_as = bloc_inviter
house.house_confederation = {
save_scope_as = bloc_name
}
}
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
is_ai = yes
can_set_relation_friend_trigger = { CHARACTER = root }
is_house_head = yes
NOT = {
has_any_relation_trigger = { CHARACTER = root }
}
opinion = {
target = root
value >= 30
}
}
save_scope_as = friendly_attendee
save_scope_as = friend_candidate
}
}
}
}
option = {
name = festival.2000.a_accept
trigger = {
exists = scope:bloc_inviter
}
scope:activity = {
add_activity_log_entry = {
key = festival_joined_a_bloc_log
score = 10
tags = { neutral }
character = root
root.house = {
tgp_join_house_bloc_effect = {
INVITER = scope:friendly_attendee.house
OPINION = flag:yes
}
}
}
}
if = {
limit = {
can_add_hook = {
target = scope:friendly_attendee
type = favor_hook
}
}
add_hook = {
type = favor_hook
target = scope:friendly_attendee
}
}
}
option = {
name = festival.2000.a_decline
trigger = {
exists = scope:bloc_inviter
}
scope:friendly_attendee = {
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -10
}
}
}
option = {
name = festival.2000.b_accept
trigger = {
exists = scope:friend_candidate
}
if = {
limit = {
scope:friendly_attendee = {
can_set_relation_best_friend_trigger = { CHARACTER = root }
}
opinion = {
target = scope:friendly_attendee
value >= 90
}
}
set_relation_best_friend = { reason = friend_festival_bonding target = scope:friendly_attendee }
}
else = {
set_relation_friend = { reason = friend_festival_bonding target = scope:friendly_attendee }
}
}
option = {
name = festival.2000.b_decline
trigger = {
exists = scope:friend_candidate
}
scope:friendly_attendee = {
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -20
}
}
}
option = {
name = festival.2000.c
trigger = {
NOT = {
exists = scope:friendly_attendee
}
}
stress_impact = {
base = minor_stress_impact_loss
}
}
}