N3OW/common/character_interactions/00_tradition_interactions.txt
2025-02-19 22:32:34 +00:00

411 lines
8.8 KiB
Text

spar_with_knight_interaction = {
icon = icon_combat
interface_priority = 30
common_interaction = yes
category = interaction_category_friendly
ai_min_reply_days = 0
ai_max_reply_days = 0
popup_on_receive = yes
pause_on_receive = yes
desc = spar_with_knight_interaction_desc
greeting = positive
notification_text = REQUEST_SPARRING_TEXT
is_shown = {
scope:actor = {
culture = {
has_cultural_parameter = can_use_sparring_duel
}
}
scope:recipient = {
is_knight_of = scope:actor
}
# Can't duel yourself.
NOT = { scope:actor = scope:recipient }
}
is_valid_showing_failures_only = {
scope:actor = { can_start_single_combat_trigger = yes }
scope:actor = { can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:actor } }
# Scope:recipient must be able to fight personally.
scope:recipient = { can_start_single_combat_trigger = yes }
# Scope:recipient must not be banned from single combat.
scope:recipient = {
custom_description = {
text = fp1_tbc_recipient_banned_from_combat
can_start_single_combat_banned_checks_trigger = no
}
}
# Neither of the characters can be imprisoned.
scope:actor = { is_imprisoned = no }
scope:recipient = { is_imprisoned = no }
scope:actor = { is_at_war = no }
scope:recipient = { is_at_war = no }
}
can_send = {
scope:actor = {
custom_description = {
text = "character_interactions_hostile_actions_disabled_delay"
NOT = { has_character_flag = flag_hostile_actions_disabled_delay }
}
}
}
cost = { prestige = medium_prestige_value }
cooldown = { years = 5 }
cooldown_against_recipient = { years = 10 }
on_send = {
scope:actor = {
add_character_flag = {
flag = flag_hostile_actions_disabled_delay
days = 10
}
}
}
on_accept = {
# Set up the bout immediately.
## First inform.
scope:actor = {
custom_tooltip = challenge_to_single_combat_interaction.enter_non_lethal_bout.tt
custom_tooltip = spar_with_knight_interaction.effect.tt
custom_tooltip = spar_with_knight_interaction.negative_effect.tt
}
scope:recipient = {
custom_tooltip = spar_with_knight_interaction.effect.tt
custom_tooltip = spar_with_knight_interaction.negative_effect.tt
}
## Finally, begin.
configure_start_single_combat_effect = {
SC_INITIATOR = scope:actor
SC_ATTACKER = scope:actor
SC_DEFENDER = scope:recipient
FATALITY = no
FIXED = no
LOCALE = army_camp
OUTPUT_EVENT = culture_tradition_events.0001
INVALIDATION_EVENT = perk_interaction.0102
}
}
ai_accept = {
base = 10 # Try to make it 0 for most interactions
modifier = {
desc = CTSC_RELATIVE_PROWESS
scope:recipient.prowess < scope:actor.prowess
add = {
value = scope:actor.prowess
subtract = scope:recipient.prowess
multiply = -2
}
}
# Personality values
ai_value_modifier = {
who = scope:recipient
ai_boldness = 0.5
ai_honor = {
if = {
limit = {
scope:recipient = {
ai_honor > 0
}
}
value = 0.25
}
}
}
modifier = {
desc = AI_REFUSAL_WOUNDED
scope:recipient = {
OR = {
has_trait = wounded
has_trait = maimed
}
}
add = -200
}
}
# AI
ai_potential = {
culture = {
has_cultural_parameter = can_use_sparring_duel
}
NOT = { has_trait = craven }
is_imprisoned = no
can_start_single_combat_trigger = yes
number_of_knights > 0
primary_title.tier > tier_barony
}
ai_target_quick_trigger = {
adult = yes
}
ai_targets = {
ai_recipients = vassals
max = 10
}
ai_targets = {
ai_recipients = courtiers
max = 10
}
ai_frequency = 60
ai_will_do = {
base = -25
# Factor for personality (excluding realism).
modifier = {
add = {
value = ai_boldness
multiply = 1
}
}
modifier = {
add = {
value = ai_energy
multiply = 0.5
}
}
modifier = {
add = -50
prowess <= low_skill_rating
}
modifier = {
factor = 0
OR = {
has_trait = wounded
has_trait = maimed
}
}
}
}
#Appointing a Podesta over a Commune - Turning a one county holder into a Republican Vassal
#Local culture must have the parameter, as does the granting character.
#Recipient does not need to have local culture.
appoint_podesta_interaction = {
icon = grant_titles_interaction
interface_priority = 30
common_interaction = yes
category = interaction_category_vassal
ai_min_reply_days = 0
ai_max_reply_days = 0
popup_on_receive = yes
pause_on_receive = yes
desc = appoint_podesta_desc
greeting = positive
notification_text = REQUEST_REPUBLIC_TEXT
is_shown = {
NOT = { scope:actor = scope:recipient } # Can't make yourself a Podesta.
scope:actor = {
culture = {
has_cultural_parameter = can_make_republican_vassals
}
any_held_title = {
count > 1
}
}
scope:recipient = {
is_ai = yes
is_landed = yes
target_is_liege_or_above = scope:actor
NOT = { government_has_flag = government_is_republic }
}
}
is_valid_showing_failures_only = {
scope:recipient = { can_be_granted_titles_by = { RULER = scope:actor } }
NOT = { scope:actor = { is_at_war_with = scope:recipient } }
custom_description = {
text = too_many_republics
scope:actor = {
any_vassal = {
count < 4 #Use Script Value
highest_held_title_tier >= tier_county
government_has_flag = government_is_republic
}
}
}
scope:recipient = {
target_is_liege_or_above = scope:actor
NOT = { government_has_flag = government_is_republic }
is_claimant = no
custom_description = {
text = must_be_one_county_count
any_held_title = {
count = 1
tier = tier_county
}
}
custom_description = {
text = must_not_have_landed_relatives
NOT = {
any_close_or_extended_family_member = {
is_landed_or_landless_administrative = yes
}
}
}
custom_description = {
text = must_not_be_heir_to_any_title
scope:recipient = {
any_heir_title = {
count < 1
tier >= tier_county
}
}
}
custom_description = { #The county must be developed or have at least one city
text = county_must_have_city
any_held_title = {
count = 1
tier = tier_county
OR = {
any_county_province = {
has_holding_type = city_holding
}
development_level > 20
}
}
}
custom_description = { #County must be of a culture that has the tradition parameter
text = county_must_have_culture
any_held_title = {
count = 1
tier = tier_county
any_county_province = {
culture = {
has_cultural_parameter = can_make_republican_vassals
}
}
}
}
}
scope:recipient = { is_busy_in_events_localised = yes }
trigger_if = {
limit = {
scope:recipient = {
is_ruler = no
}
}
scope:recipient = {
is_imprisoned = no
}
}
}
cost = { prestige = minor_prestige_value }
cooldown = { years = 5 }
cooldown_against_recipient = { years = 10 }
on_accept = {
scope:actor = {
hidden_effect = {
send_interface_toast = {
type = event_toast_effect_neutral
title = appoint_podesta_interaction_notification
left_icon = scope:actor
right_icon = scope:recipient
scope:recipient = {
show_as_tooltip = {
change_government = republic_government
create_title_and_vassal_change = {
type = returned
save_scope_as = change
add_claim_on_loss = no
}
every_vassal = {
limit = {
government_has_flag = government_is_republic
}
every_held_title = {
change_title_holder = {
holder = scope:recipient
change = scope:change
take_baronies = yes
}
}
}
resolve_title_and_vassal_change = scope:change
}
}
}
}
}
scope:recipient = {
change_government = republic_government
create_title_and_vassal_change = {
type = returned
save_scope_as = change
add_claim_on_loss = no
}
every_vassal = {
limit = {
government_has_flag = government_is_republic
}
every_held_title = {
change_title_holder = {
holder = scope:recipient
change = scope:change
take_baronies = yes
}
}
}
resolve_title_and_vassal_change = scope:change
}
# If we're a clan this interaction affects unity
add_clan_unity_interaction_effect = {
CHARACTER = scope:actor
TARGET = scope:recipient
VALUE = minor_unity_gain
DESC = clan_unity_podesta.desc
REVERSE_NON_HOUSE_TARGET = no
}
}
auto_accept = yes
# AI
ai_potential = {
culture = {
has_cultural_parameter = can_make_republican_vassals
has_cultural_era_or_later = culture_era_high_medieval
}
primary_title.tier > tier_county
}
ai_target_quick_trigger = {
adult = yes
}
ai_targets = {
ai_recipients = vassals
}
ai_frequency = 240
ai_will_do = {
base = 100
}
}