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

499 lines
11 KiB
Text

namespace = tournament_events
##################################################
# You are offered a favour by a pretty person
# by James Beaumont
# 8000
##################################################
scripted_trigger 8000_valid_to_offer_favor = {
is_ai = yes
is_adult = yes
is_lowborn = no # Prevent random uninteresting pool characters from showing up
OR = {
AND = {
is_married = no
is_concubine = no
}
is_consort_of = root
might_cheat_on_every_partner_trigger = yes
}
NOT = {
relation_with_character_is_incestuous_in_faith_trigger = {
CHARACTER = root
FAITH = root.faith
}
}
OR = {
is_attracted_to_gender_of = root
has_sexuality = asexual # This is romance and courtship, asexuals should be fine with it most of the time
}
OR = {
AND = {
root.faith = { NOT = { has_doctrine_parameter = homosexuality_accepted } }
NOT = { sex_same_as = root }
}
root.faith = { has_doctrine_parameter = homosexuality_accepted }
}
NOR = {
has_relation_soulmate = root
# Celibates should abstain always
has_trait = celibate
# No priests giving favours
AND = {
is_clergy = yes
NOT = { faith = { has_doctrine_parameter = clergy_can_marry } }
}
}
}
tournament_events.8000 = { # Start
type = activity_event
title = tournament_events.8000.t
desc = {
desc = tournament_events.8000.desc.intro
first_valid = {
triggered_desc = {
trigger = {
any_in_list = {
list = potential_favour_givers
count > 1
}
}
desc = tournament_events.8000.desc.mid.two
}
desc = tournament_events.8000.desc.mid
}
first_valid = {
triggered_desc = {
trigger = {
NOR = {
is_attracted_to_gender_of = scope:favor_giver_1
is_attracted_to_gender_of = scope:favor_giver_2
has_sexuality = asexual
}
}
desc = tournament_events.8000.desc.outro.homo
}
}
}
theme = tournament_locale_camp
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
character = scope:favor_giver_1
animation = flirtation
}
lower_right_portrait = {
character = scope:favor_giver_2
animation = flirtation
}
cooldown = { years = 1 }
trigger = {
activity_is_competing_trigger = yes
scope:activity = {
any_guest_subset_current_phase = { # There is a spectator who fancies you
name = spectator
8000_valid_to_offer_favor = yes
}
}
NOT = { has_trait = celibate }
OR = { # For AI priests in tournaments
is_clergy = no
faith = { has_doctrine_parameter = clergy_can_marry }
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
has_activity_intent = woo_attendee_intent
}
}
immediate = {
hidden_effect = {
save_scope_as = favor_recipient
scope:activity = {
every_guest_subset_current_phase = {
name = spectator
limit = { 8000_valid_to_offer_favor = yes }
add_to_list = potential_favour_givers
}
random_in_list = {
list = potential_favour_givers
weight = {
base = 20
modifier = { # If they are wooing you, they're much more likely to do this
factor = 100
has_activity_intent = woo_attendee_intent
intent_target = root
}
modifier = { # Get their intent target where possible
add = 20
this = root.intent_target
}
modifier = { # Get someone fertile for the player
add = 20
fertility > low_fertility
}
modifier = { # They love knights and stuff
add = 20
has_trait = gallant
}
modifier = {
add = ai_honor
}
modifier = { # Cheaters are possible, but should be less likely
add = 20
OR = {
AND = {
is_married = no
is_concubine = no
}
is_consort_of = root
is_concubine_of = root
}
}
modifier = { # Get someone interesting
add = 20
is_claimant = yes
}
modifier = {
add = 20
OR = {
has_same_sinful_trait = root
has_same_virtue_trait = root
}
}
}
save_scope_as = favor_giver_1
hidden_effect = {
create_artifact_tournament_favor_effect = {
OWNER = scope:favor_giver_1
RECIPIENT = root
}
}
scope:newly_created_artifact = { save_scope_as = favor_1 }
}
if = {
limit = {
any_in_list = {
list = potential_favour_givers
count > 1
}
}
random_in_list = {
list = potential_favour_givers
limit = {
this != scope:favor_giver_1
}
weight = {
base = 20
modifier = { # If they are wooing you, they're much more likely to do this
factor = 100
has_activity_intent = woo_attendee_intent
intent_target = root
}
modifier = { # Get their intent target where possible
add = 20
this = root.intent_target
}
modifier = {
add = 20
fertility > low_fertility
}
modifier = {
add = 20
has_trait = gallant
}
modifier = {
add = ai_honor
}
modifier = {
OR = {
AND = {
is_married = no
is_concubine = no
}
is_consort_of = root
is_concubine_of = root
}
}
modifier = {
add = 20
OR = {
has_same_sinful_trait = root
has_same_virtue_trait = root
}
}
}
save_scope_as = favor_giver_2
hidden_effect = {
create_artifact_tournament_favor_effect = {
OWNER = scope:favor_giver_2
RECIPIENT = root
}
}
scope:newly_created_artifact = { save_scope_as = favor_2 }
}
}
}
}
add_prestige = medium_prestige_gain
custom_tooltip = tournament_events.1251.favor_tt
}
option = { # Why, suitor 1 is perfect for me!
name = tournament_events.8000.a
scope:activity = {
add_activity_log_entry = {
key = tournament_favor_given_log
score = 25
tags = { favors good }
character = scope:favor_recipient
target = scope:favor_giver_1
# Effects
show_as_tooltip = {
scope:favor_1 = { set_owner = root }
}
hidden_effect = {
if = {
limit = { exists = scope:favor_2 }
destroy_artifact = scope:favor_2
}
}
}
}
hidden_effect = {
scope:favor_1 = { equip_artifact_to_owner_replace = yes }
}
if = {
limit = {
NOT = {
# They are not wooing me
scope:favor_giver_1 = {
any_scheme = {
type = courting
scheme_target_character = root
}
}
# I am not wooing them
any_scheme = {
type = courting
scheme_target_character = root
}
}
}
scope:favor_giver_1 = {
start_scheme = {
type = courting
target_character = root
}
}
}
else = {
set_relation_soulmate = {
reason = soulmate_tournament
target = scope:favor_giver_1
}
}
reverse_add_opinion = {
target = scope:favor_giver_1
modifier = flattered_opinion
opinion = 20
}
if = {
limit = { exists = scope:favor_giver_2 }
reverse_add_opinion = {
target = scope:favor_giver_2
modifier = rebuffed_opinion
opinion = -15
}
}
stress_impact = {
gallant = minor_stress_impact_loss
arrogant = minor_stress_impact_loss
chaste = minor_stress_impact_gain
cynical = minor_stress_impact_gain
zealous = minor_stress_impact_gain
humble = minor_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = chaste
has_trait = cynical
has_trait = zealous
has_trait = humble
}
}
modifier = {
factor = 0.5
NOT = { # Only 0.5 since gay characters may pretend to be interested in a homophobic environment
is_attracted_to_gender_of = scope:favor_giver_1
has_sexuality = asexual
}
}
}
}
option = { # Why, suitor 2 is perfect for me!
name = tournament_events.8000.b
trigger = {
exists = scope:favor_giver_2
}
scope:activity = {
add_activity_log_entry = {
key = tournament_favor_given_log
score = 25
tags = { favors good }
character = scope:favor_recipient
target = scope:favor_giver_1
# Effects
show_as_tooltip = {
scope:favor_2 = { set_owner = root }
}
hidden_effect = {
if = {
limit = { exists = scope:favor_1 }
destroy_artifact = scope:favor_1
}
}
}
}
hidden_effect = {
scope:favor_2 = { equip_artifact_to_owner_replace = yes }
}
if = {
limit = {
NOT = {
# They are not wooing me
scope:favor_giver_2 = {
any_scheme = {
type = courting
scheme_target_character = root
}
}
# I am not wooing them
any_scheme = {
type = courting
scheme_target_character = root
}
}
}
scope:favor_giver_2 = {
start_scheme = {
type = courting
target_character = root
}
}
}
else = {
set_relation_soulmate = {
reason = soulmate_tournament
target = scope:favor_giver_2
}
}
reverse_add_opinion = {
target = scope:favor_giver_2
modifier = flattered_opinion
opinion = 20
}
reverse_add_opinion = {
target = scope:favor_giver_1
modifier = rebuffed_opinion
opinion = -15
}
stress_impact = {
gallant = minor_stress_impact_loss
arrogant = minor_stress_impact_loss
chaste = minor_stress_impact_gain
cynical = minor_stress_impact_gain
zealous = minor_stress_impact_gain
humble = minor_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = chaste
has_trait = cynical
has_trait = zealous
has_trait = humble
}
}
modifier = {
factor = 0.5
NOT = {
is_attracted_to_gender_of = scope:favor_giver_1
has_sexuality = asexual
}
}
}
}
option = { # Oh bugger off both of you
name = tournament_events.8000.c
add_prestige = medium_prestige_gain
activity_tournament_change_contestant_score_effect = { SCORE = increase_minor }
reverse_add_opinion = {
target = scope:favor_giver_1
modifier = rebuffed_opinion
opinion = -15
}
hidden_effect = {
if = {
limit = { exists = scope:favor_1 }
destroy_artifact = scope:favor_1
}
if = {
limit = { exists = scope:favor_2 }
destroy_artifact = scope:favor_2
}
}
if = {
limit = { exists = scope:favor_giver_2 }
reverse_add_opinion = {
target = scope:favor_giver_2
modifier = rebuffed_opinion
opinion = -15
}
}
stress_impact = {
gallant = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
lustful = minor_stress_impact_gain
rakish = minor_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = gallant
has_trait = arrogant
has_trait = lustful
has_trait = rakish
}
}
modifier = {
factor = 0.5
NOT = {
is_attracted_to_gender_of = scope:favor_giver_1
has_sexuality = asexual
}
}
}
}
}