4374 lines
96 KiB
Text
4374 lines
96 KiB
Text
# Give away an artifact to improve relations
|
|
gift_artifact_interaction = {
|
|
category = interaction_category_friendly
|
|
common_interaction = yes
|
|
interface_priority = 60
|
|
desc = gift_artifact_interaction_desc
|
|
icon = artisan_inspiration
|
|
|
|
target_type = artifact
|
|
target_filter = actor_artifacts
|
|
|
|
greeting = positive
|
|
notification_text = GIFT_ARTIFACT_PROPOSAL
|
|
|
|
answer_accept_key = GIFT_ARTIFACT_ACCEPT
|
|
answer_reject_key = GIFT_ARTIFACT_REJECT
|
|
|
|
ai_targets = {
|
|
ai_recipients = scripted_relations
|
|
ai_recipients = liege
|
|
ai_recipients = spouses
|
|
ai_recipients = vassals
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = neighboring_rulers
|
|
ai_recipients = peer_vassals
|
|
max = 10
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = family
|
|
ai_recipients = children
|
|
ai_recipients = dynasty
|
|
max = 20
|
|
}
|
|
ai_target_quick_trigger = {
|
|
adult = yes
|
|
}
|
|
ai_frequency = 84
|
|
|
|
can_be_picked_artifact = {
|
|
trigger_if = {
|
|
limit = {
|
|
scope:actor = {
|
|
is_ai = no
|
|
}
|
|
}
|
|
scope:target = {
|
|
is_equipped = no
|
|
}
|
|
}
|
|
scope:actor = {
|
|
any_character_artifact = {
|
|
this = scope:target
|
|
}
|
|
}
|
|
#Artifacts locked from being giftable by a variable
|
|
scope:target = {
|
|
NOR = {
|
|
has_variable = 1025_treasure_map
|
|
has_variable = ungiftable
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
#You can't give yourself a gift, even if it should count as self-care
|
|
is_shown = {
|
|
NOT = {
|
|
scope:recipient = scope:actor
|
|
}
|
|
scope:actor = {
|
|
has_any_artifact = yes
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
# needs to have an artifact to give away
|
|
scope:recipient = { is_busy_in_events_localised = yes }
|
|
scope:actor = {
|
|
NOT = {
|
|
is_at_war_with = scope:recipient
|
|
}
|
|
is_imprisoned = no
|
|
trigger_if = {
|
|
limit = {
|
|
is_ai = no
|
|
}
|
|
custom_description = {
|
|
text = "any_unequipped_artifact_tt"
|
|
any_character_artifact = {
|
|
is_equipped = no
|
|
}
|
|
}
|
|
}
|
|
}
|
|
trigger_if = {
|
|
limit = {
|
|
exists = scope:target.var:banner_dynasty
|
|
exists = scope:recipient.dynasty
|
|
}
|
|
custom_description = {
|
|
text = "gift_artifact_dynasty_banner_head_tt"
|
|
scope:recipient = scope:target.var:banner_dynasty.dynast
|
|
}
|
|
}
|
|
}
|
|
|
|
on_accept = {
|
|
# Warning for multiple gifts
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
has_opinion_modifier = {
|
|
target = scope:actor
|
|
modifier = gift_artifact_opinion
|
|
}
|
|
}
|
|
}
|
|
custom_tooltip = ALREADY_SENT_GIFT_WARNING
|
|
}
|
|
# Struggle Catalyst
|
|
if = { # Struggle Catalyst
|
|
limit = {
|
|
scope:actor = {
|
|
any_character_struggle = {
|
|
involvement = involved
|
|
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
|
|
CATALYST = catalyst_gift_independent_ruler
|
|
CHAR = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
scope:actor = {
|
|
every_character_struggle = {
|
|
involvement = involved
|
|
activate_struggle_catalyst = {
|
|
catalyst = catalyst_gift_independent_ruler
|
|
character = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
fp3_struggle_involves_one_supporter_and_one_detractor = {
|
|
FIRST = scope:actor
|
|
SECOND = scope:recipient
|
|
}
|
|
scope:actor = {
|
|
any_character_struggle = {
|
|
#involvement = involved
|
|
activate_struggle_catalyst_secondary_character_involvement_either_trigger = {
|
|
CATALYST = catalyst_gift_supporter_detractor_ruler
|
|
CHAR = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
scope:actor = {
|
|
every_character_struggle = {
|
|
#involvement = involved
|
|
limit = {
|
|
activate_struggle_catalyst_secondary_character_involvement_either_trigger = {
|
|
CATALYST = catalyst_gift_supporter_detractor_ruler
|
|
CHAR = scope:recipient
|
|
}
|
|
}
|
|
activate_struggle_catalyst = {
|
|
catalyst = catalyst_gift_supporter_detractor_ruler
|
|
character = scope:actor
|
|
}
|
|
log_debug_variable_for_persian_struggle_effect = { VAR = concession_catalyst_gift_supporter_detractor_ruler }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scope:target = {
|
|
set_variable = {
|
|
name = suppress_artifact_notifications
|
|
value = yes
|
|
days = 1
|
|
}
|
|
set_variable = { name = gifted_artifact value = yes days = 9125 }
|
|
}
|
|
scope:recipient = {
|
|
# Verify that they could become friend
|
|
if = {
|
|
limit = {
|
|
NAND = {
|
|
has_relation_friend = scope:actor
|
|
has_relation_lover = scope:actor
|
|
has_relation_soulmate = scope:actor
|
|
has_relation_best_friend = scope:actor
|
|
}
|
|
}
|
|
gifting_leads_towards_friendship_effect = yes
|
|
}
|
|
}
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_neutral
|
|
title = gift_artifact_interaction_notification
|
|
left_icon = scope:recipient
|
|
right_icon = scope:target
|
|
scope:recipient = {
|
|
if = {
|
|
limit = { scope:target = { can_be_claimed_by = scope:recipient } }
|
|
if = {
|
|
limit = { any_personal_claimed_artifact = { this = scope:target } }
|
|
show_as_tooltip = { remove_personal_artifact_claim = scope:target }
|
|
}
|
|
else = { show_as_tooltip = { house = { remove_house_artifact_claim = scope:target } } }
|
|
}
|
|
}
|
|
|
|
scope:target = { set_owner = scope:recipient }
|
|
|
|
|
|
if = {
|
|
limit = {
|
|
scope:target = { is_unique = yes }
|
|
}
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = scope:actor
|
|
TARGET = scope:recipient
|
|
VALUE = medium_unity_gain
|
|
DESC = clan_unity_given_artifact.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
stress_impact = {
|
|
greedy = major_stress_impact_gain
|
|
generous = major_stress_impact_loss
|
|
}
|
|
}
|
|
else_if = {# Unity goes here, too!
|
|
limit = { scope:target = { rarity = masterwork } }
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = scope:actor
|
|
TARGET = scope:recipient
|
|
VALUE = minor_unity_gain
|
|
DESC = clan_unity_given_artifact.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
stress_impact = {
|
|
greedy = minor_stress_impact_gain
|
|
generous = minor_stress_impact_loss
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:target = { rarity = famed } }
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = scope:actor
|
|
TARGET = scope:recipient
|
|
VALUE = minor_unity_gain
|
|
DESC = clan_unity_given_artifact.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
stress_impact = {
|
|
greedy = medium_stress_impact_gain
|
|
generous = medium_stress_impact_loss
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:target = { rarity = illustrious } }
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = scope:actor
|
|
TARGET = scope:recipient
|
|
VALUE = minor_unity_gain
|
|
DESC = clan_unity_given_artifact.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
stress_impact = {
|
|
greedy = major_stress_impact_gain
|
|
generous = major_stress_impact_loss
|
|
}
|
|
}
|
|
if = {
|
|
limit = { scope:recipient = { is_ai = yes } }
|
|
reverse_add_opinion = {
|
|
target = scope:recipient
|
|
modifier = gift_artifact_opinion
|
|
opinion = gift_artifact_opinion
|
|
}
|
|
}
|
|
#FP3 Tenet Communal Possessions Perk - piety gain for gift giving.
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
faith = {
|
|
has_doctrine_parameter = piety_from_gifts_active
|
|
}
|
|
}
|
|
}
|
|
scope:actor = {
|
|
if = {
|
|
limit = { #the better the artifact, the more piety you gain
|
|
scope:target = { rarity = illustrious }
|
|
}
|
|
add_piety = massive_piety_gain
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:target = { rarity = famed }
|
|
}
|
|
add_piety = major_piety_gain
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:target = { rarity = masterwork }
|
|
}
|
|
add_piety = medium_piety_gain
|
|
}
|
|
else = {
|
|
add_piety = minor_piety_gain
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Warning for low opinion gain
|
|
if = {
|
|
limit = {
|
|
scope:target = { artifact_durability <= define:NInventory|ARTIFACT_LOW_DURABILITY }
|
|
}
|
|
custom_tooltip = artifact_gift_low_durability_tt
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:target = { artifact_durability <= define:NInventory|ARTIFACT_VERY_LOW_DURABILITY }
|
|
}
|
|
custom_tooltip = artifact_gift_very_low_durability_tt
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:target = {
|
|
OR = {
|
|
AND = {
|
|
has_variable = banner_house
|
|
NOT = { var:banner_house = scope:recipient.house }
|
|
}
|
|
AND = {
|
|
has_variable = banner_dynasty
|
|
NOT = { var:banner_dynasty = scope:recipient.dynasty }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
custom_tooltip = artifact_gift_useless_banner_tt
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
can_equip_artifact = scope:target
|
|
can_benefit_from_artifact = scope:target
|
|
}
|
|
}
|
|
}
|
|
custom_tooltip = artifact_gift_useless_tt
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
NOT = { can_equip_artifact = scope:target }
|
|
}
|
|
}
|
|
custom_tooltip = artifact_gift_equip_tt
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
NOT = { can_benefit_from_artifact = scope:target }
|
|
}
|
|
}
|
|
custom_tooltip = artifact_gift_benefit_tt
|
|
}
|
|
if = {
|
|
limit = { scope:recipient.liege = scope:actor }
|
|
custom_tooltip = artifact_gift_vassal_tt
|
|
}
|
|
if = {
|
|
limit = { scope:recipient = scope:actor.faith.religious_head }
|
|
custom_tooltip = artifact_gift_religious_head_tt
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
hidden_effect = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_neutral
|
|
title = gift_artifact_interaction_notification
|
|
left_icon = scope:actor
|
|
right_icon = scope:target
|
|
|
|
show_as_tooltip = {
|
|
scope:target = { set_owner = scope:recipient }
|
|
if = {
|
|
limit = { is_ai = yes }
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = gift_artifact_opinion
|
|
opinion = gift_artifact_opinion
|
|
}
|
|
}
|
|
|
|
# Unity stuff, scales with tier # If we're a clan this interaction affects unity
|
|
if = { # In a better world, this would be a switch
|
|
limit = { scope:target = { rarity = Masterwork } } # todo_cd_polish, make the UI show this before you gift
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = scope:actor
|
|
TARGET = scope:recipient
|
|
VALUE = minor_unity_gain
|
|
DESC = clan_unity_given_artifact.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:target = { rarity = Famed } }
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = scope:actor
|
|
TARGET = scope:recipient
|
|
VALUE = medium_unity_gain
|
|
DESC = clan_unity_given_artifact.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:target = { rarity = Illustrious } }
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = scope:actor
|
|
TARGET = scope:recipient
|
|
VALUE = major_unity_gain
|
|
DESC = clan_unity_given_artifact.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
is_ruler = no
|
|
trigger_if = {
|
|
limit = {
|
|
scope:target = {
|
|
artifact_slot_type = primary_armament
|
|
}
|
|
}
|
|
OR = {
|
|
NOT = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
rarity = illustrious
|
|
}
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
NOT = {
|
|
rarity = illustrious
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
rarity = famed
|
|
}
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
NOR = {
|
|
rarity = illustrious
|
|
rarity = famed
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
rarity = masterwork
|
|
}
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
NOR = {
|
|
rarity = illustrious
|
|
rarity = famed
|
|
rarity = masterwork
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
NOR = {
|
|
rarity = illustrious
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
trigger_if = {
|
|
limit = {
|
|
scope:target = {
|
|
artifact_slot_type = armor
|
|
}
|
|
}
|
|
OR = {
|
|
NOT = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
rarity = illustrious
|
|
}
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
NOT = {
|
|
rarity = illustrious
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
rarity = famed
|
|
}
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
NOR = {
|
|
rarity = illustrious
|
|
rarity = famed
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
rarity = masterwork
|
|
}
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
NOR = {
|
|
rarity = illustrious
|
|
rarity = famed
|
|
rarity = masterwork
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
NOR = {
|
|
rarity = illustrious
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
trigger_if = {
|
|
limit = {
|
|
scope:target = {
|
|
artifact_slot_type = regalia
|
|
}
|
|
}
|
|
OR = {
|
|
NOT = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
rarity = illustrious
|
|
}
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
NOT = {
|
|
rarity = illustrious
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
rarity = famed
|
|
}
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
NOR = {
|
|
rarity = illustrious
|
|
rarity = famed
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
rarity = masterwork
|
|
}
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
NOR = {
|
|
rarity = illustrious
|
|
rarity = famed
|
|
rarity = masterwork
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
NOR = {
|
|
rarity = illustrious
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
trigger_if = {
|
|
limit = {
|
|
scope:target = {
|
|
artifact_slot_type = helmet
|
|
}
|
|
}
|
|
OR = {
|
|
NOT = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
rarity = illustrious
|
|
}
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
NOT = {
|
|
rarity = illustrious
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
rarity = famed
|
|
}
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
NOR = {
|
|
rarity = illustrious
|
|
rarity = famed
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
rarity = masterwork
|
|
}
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
NOR = {
|
|
rarity = illustrious
|
|
rarity = famed
|
|
rarity = masterwork
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
NOR = {
|
|
rarity = illustrious
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:target = {
|
|
equip_artifact_to_owner_replace = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
auto_accept = no
|
|
|
|
ai_accept = {
|
|
base = 0
|
|
modifier = {
|
|
add = 100
|
|
desc = ARTIFACT_REASON
|
|
}
|
|
modifier = {
|
|
add = -80
|
|
NOT = {
|
|
can_equip_artifact = scope:target
|
|
}
|
|
desc = ARTIFACT_NOT_EQUIPPABLE_REASON
|
|
}
|
|
modifier = {
|
|
add = -40
|
|
NOT = {
|
|
can_benefit_from_artifact = scope:target
|
|
}
|
|
desc = ARTIFACT_NOT_BENEFIT_REASON
|
|
}
|
|
modifier = {
|
|
add = -500
|
|
scope:target = {
|
|
has_variable = unwanted_artifact
|
|
}
|
|
#No harm in reusing the wording
|
|
desc = ARTIFACT_CURSED_REASON
|
|
}
|
|
modifier = {
|
|
add = -1000
|
|
scope:target = {
|
|
has_variable = cursed_artifact
|
|
}
|
|
desc = ARTIFACT_CURSED_REASON
|
|
}
|
|
modifier = {
|
|
add = 100
|
|
exists = scope:target.var:banner_dynasty
|
|
exists = scope:recipient.dynasty
|
|
scope:recipient = scope:target.var:banner_dynasty.dynast
|
|
desc = ARTIFACT_DYNASTY_BANNER_REASON
|
|
}
|
|
modifier = {
|
|
add = -200
|
|
OR = {
|
|
exists = scope:target.var:banner_dynasty
|
|
exists = scope:target.var:banner_house
|
|
}
|
|
exists = scope:recipient.house
|
|
trigger_if = {
|
|
limit = { exists = scope:target.var:banner_dynasty }
|
|
NOT = { scope:target.var:banner_dynasty = scope:recipient.dynasty }
|
|
}
|
|
trigger_else = {
|
|
NOT = { scope:target.var:banner_house = scope:recipient.house }
|
|
}
|
|
desc = ARTIFACT_USELESS_BANNER_REASON
|
|
}
|
|
# Struggle motive
|
|
modifier = {
|
|
desc = AI_STRUGGLE_INTENT
|
|
scope:recipient = {
|
|
is_independent_ruler = yes
|
|
any_character_struggle = {
|
|
involvement = involved
|
|
}
|
|
}
|
|
add = {
|
|
value = 0
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
any_character_struggle = {
|
|
phase_has_catalyst = catalyst_gift_independent_ruler
|
|
}
|
|
has_character_flag = agenda_towards_escalation
|
|
}
|
|
}
|
|
add = -100
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
any_character_struggle = {
|
|
phase_has_catalyst = catalyst_gift_independent_ruler
|
|
}
|
|
}
|
|
}
|
|
add = 200
|
|
}
|
|
}
|
|
}
|
|
# Unity modifiers
|
|
evaluate_action_increasing_house_unity = {
|
|
VALUE = 100
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
has_any_artifact = yes
|
|
trigger_if = {
|
|
limit = {
|
|
exists = scope:target.var:banner_dynasty
|
|
exists = scope:recipient.dynasty
|
|
scope:recipient = scope:target.var:banner_dynasty.dynast
|
|
}
|
|
NOT = {
|
|
scope:actor = {
|
|
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:recipient }
|
|
}
|
|
}
|
|
}
|
|
trigger_else = {
|
|
is_adult = yes
|
|
ai_greed <= high_positive_ai_value
|
|
# the AI shouldn't give away equipped artifacts
|
|
has_any_unequipped_artifact = yes
|
|
|
|
NOT = {
|
|
has_trait = greedy
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_min_reply_days = 0
|
|
ai_max_reply_days = 0
|
|
|
|
ai_will_do = {
|
|
base = 0
|
|
|
|
modifier = {
|
|
add = 100
|
|
scope:recipient = {
|
|
OR = {
|
|
has_relation_friend = scope:actor
|
|
has_relation_lover = scope:actor
|
|
is_close_or_extended_family_of = scope:actor
|
|
AND = {
|
|
exists = dynasty
|
|
exists = scope:actor.dynasty
|
|
dynasty = scope:actor.dynasty
|
|
}
|
|
|
|
AND = {
|
|
ai_greed <= low_negative_ai_value
|
|
OR = { # Lieges/vassals, within realm
|
|
is_vassal_of = scope:actor
|
|
target_is_vassal_or_below = scope:actor
|
|
}
|
|
opinion = {
|
|
target = scope:recipient
|
|
value >= medium_positive_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scope:target = {
|
|
is_equipped = no
|
|
}
|
|
|
|
scope:recipient = {
|
|
OR = {
|
|
AND = { # Players like nice gifts
|
|
scope:target = {
|
|
OR = {
|
|
rarity = famed
|
|
rarity = illustrious
|
|
}
|
|
}
|
|
is_ai = no
|
|
}
|
|
AND = { # Might as well give Court Artifacts to their liege if they cant use them themselves
|
|
has_royal_court = yes
|
|
has_dlc_feature = court_artifacts
|
|
target_is_vassal_or_below = scope:actor
|
|
scope:actor = {
|
|
has_royal_court = no
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
artifact_slot_type = throne
|
|
artifact_slot_type = wall_big
|
|
artifact_slot_type = wall_small
|
|
artifact_slot_type = sculpture
|
|
artifact_slot_type = book
|
|
artifact_slot_type = pedestal
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = primary_armament
|
|
}
|
|
scope:actor = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
}
|
|
}
|
|
NOT = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = regalia
|
|
}
|
|
scope:actor = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
}
|
|
}
|
|
NOT = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = helmet
|
|
}
|
|
scope:actor = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
}
|
|
}
|
|
NOT = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = armor
|
|
}
|
|
scope:actor = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
}
|
|
}
|
|
NOT = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
can_equip_artifact = scope:target # To avoid gifting old children's toys to adults...
|
|
can_benefit_from_artifact = scope:target
|
|
scope:target = {
|
|
artifact_slot_type = miscellaneous
|
|
}
|
|
scope:actor = {
|
|
any_equipped_character_artifact = {
|
|
count >= 4
|
|
artifact_slot_type = miscellaneous
|
|
}
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count < 4
|
|
artifact_slot_type = miscellaneous
|
|
}
|
|
}
|
|
AND = {
|
|
has_royal_court = yes
|
|
scope:target = {
|
|
artifact_slot_type = throne
|
|
}
|
|
scope:actor = {
|
|
OR = {
|
|
has_royal_court = no
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = throne
|
|
}
|
|
}
|
|
}
|
|
NOT = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = throne
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
has_royal_court = yes
|
|
scope:target = {
|
|
artifact_slot_type = wall_big
|
|
}
|
|
scope:actor = {
|
|
OR = {
|
|
has_royal_court = no
|
|
any_equipped_character_artifact = {
|
|
count >= 3
|
|
artifact_slot_type = wall_big
|
|
}
|
|
}
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count < 3
|
|
artifact_slot_type = wall_big
|
|
}
|
|
}
|
|
AND = {
|
|
has_royal_court = yes
|
|
scope:target = {
|
|
artifact_slot_type = wall_small
|
|
}
|
|
scope:actor = {
|
|
OR = {
|
|
has_royal_court = no
|
|
any_equipped_character_artifact = {
|
|
count >= 3
|
|
artifact_slot_type = wall_small
|
|
}
|
|
}
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count < 3
|
|
artifact_slot_type = wall_small
|
|
}
|
|
}
|
|
AND = {
|
|
has_royal_court = yes
|
|
scope:target = {
|
|
artifact_slot_type = sculpture
|
|
}
|
|
scope:actor = {
|
|
OR = {
|
|
has_royal_court = no
|
|
any_equipped_character_artifact = {
|
|
count >= 2
|
|
artifact_slot_type = sculpture
|
|
}
|
|
}
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count < 2
|
|
artifact_slot_type = sculpture
|
|
}
|
|
}
|
|
AND = {
|
|
has_royal_court = yes
|
|
scope:target = {
|
|
artifact_slot_type = book
|
|
}
|
|
scope:actor = {
|
|
OR = {
|
|
has_royal_court = no
|
|
any_equipped_character_artifact = {
|
|
count >= 2
|
|
artifact_slot_type = book
|
|
}
|
|
}
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count < 2
|
|
artifact_slot_type = book
|
|
}
|
|
}
|
|
AND = {
|
|
has_royal_court = yes
|
|
scope:target = {
|
|
artifact_slot_type = pedestal
|
|
}
|
|
scope:actor = {
|
|
OR = {
|
|
has_royal_court = no
|
|
any_equipped_character_artifact = {
|
|
count >= 4
|
|
artifact_slot_type = pedestal
|
|
}
|
|
}
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count < 4
|
|
artifact_slot_type = pedestal
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Struggle
|
|
modifier = {
|
|
scope:recipient = {
|
|
is_independent_ruler = yes
|
|
}
|
|
scope:actor = {
|
|
any_character_struggle = {
|
|
involvement = involved
|
|
}
|
|
}
|
|
add = {
|
|
value = 0
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
any_character_struggle = {
|
|
phase_has_catalyst = catalyst_gift_independent_ruler
|
|
}
|
|
has_character_flag = agenda_towards_escalation
|
|
}
|
|
}
|
|
add = -100
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:actor = {
|
|
any_character_struggle = {
|
|
phase_has_catalyst = catalyst_gift_independent_ruler
|
|
}
|
|
}
|
|
}
|
|
add = 200
|
|
}
|
|
}
|
|
}
|
|
|
|
# Unity modifiers
|
|
evaluate_action_increasing_house_unity = {
|
|
VALUE = 100
|
|
}
|
|
|
|
modifier = {
|
|
factor = 2
|
|
scope:recipient = {
|
|
is_ai = no
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0.25
|
|
scope:recipient = {
|
|
highest_held_title_tier = tier_barony
|
|
}
|
|
}
|
|
|
|
modifier = { # Unlanded characters do not equip artifacts, no point in giving them artifacts
|
|
factor = 0
|
|
scope:recipient = {
|
|
is_ruler = no
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0
|
|
scope:recipient = {
|
|
has_relation_rival = scope:actor
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0
|
|
scope:target = {
|
|
has_variable = cursed_artifact
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0
|
|
scope:target = {
|
|
is_equipped = yes
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0
|
|
scope:target = {
|
|
has_variable = gifted_artifact
|
|
}
|
|
}
|
|
|
|
modifier = { # So that the AI doesn't give player toys
|
|
factor = 0
|
|
scope:recipient = {
|
|
is_ai = no
|
|
NOT = {
|
|
can_equip_artifact = scope:target
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0
|
|
scope:target = { exists = var:relic_religion}
|
|
scope:actor = {
|
|
has_religion = scope:target.var:relic_religion
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0
|
|
OR = {
|
|
exists = scope:target.var:banner_house
|
|
exists = scope:target.var:banner_dynasty
|
|
}
|
|
scope:recipient = {
|
|
NOT = {
|
|
can_benefit_from_artifact = scope:target
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = 100
|
|
exists = scope:target.var:banner_dynasty
|
|
exists = scope:recipient.dynasty
|
|
scope:recipient = scope:target.var:banner_dynasty.dynast
|
|
NOT = {
|
|
scope:actor = {
|
|
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:recipient }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Demand an artifact you have a claim on
|
|
demand_artifact_interaction = {
|
|
category = interaction_category_diplomacy
|
|
common_interaction = yes
|
|
interface_priority = 60
|
|
use_diplomatic_range = yes
|
|
desc = demand_artifact_interaction_desc
|
|
icon = artisan_inspiration
|
|
|
|
target_type = artifact
|
|
target_filter = recipient_artifacts_claimable
|
|
|
|
greeting = negative
|
|
notification_text = DEMAND_ARTIFACT_PROPOSAL
|
|
|
|
answer_accept_key = DEMAND_ARTIFACT_ACCEPT
|
|
answer_reject_key = DEMAND_ARTIFACT_REJECT
|
|
|
|
ai_targets = {
|
|
ai_recipients = scripted_relations
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = liege
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = neighboring_rulers
|
|
ai_recipients = peer_vassals
|
|
ai_recipients = nearby_domicile_owners
|
|
max = 10
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = vassals
|
|
max = 10
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = family
|
|
max = 10
|
|
}
|
|
ai_target_quick_trigger = {
|
|
adult = yes
|
|
}
|
|
ai_frequency = 60
|
|
|
|
is_shown = {
|
|
NOT = {
|
|
scope:recipient = scope:actor
|
|
}
|
|
|
|
custom_description = {
|
|
text = "demand_artifact_interaction_valid_tt_1"
|
|
scope:recipient = {
|
|
# needs to have an artifact we can claim
|
|
any_character_artifact = {
|
|
can_be_claimed_by = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
is_highlighted = {
|
|
always = yes
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
|
|
scope:recipient = { is_busy_in_events_localised = yes }
|
|
|
|
scope:actor = {
|
|
NOT = {
|
|
is_at_war_with = scope:recipient
|
|
}
|
|
}
|
|
|
|
trigger_if = {
|
|
limit = {
|
|
scope:actor = {
|
|
has_variable = demanded_this_artifact_interaction_recently
|
|
}
|
|
}
|
|
custom_description = {
|
|
text = "demand_artifact_interaction_is_valid_tt_2"
|
|
exists = scope:demanded_artifact
|
|
scope:actor = {
|
|
has_variable = demanded_this_artifact_interaction_recently
|
|
var:demanded_this_artifact_interaction_recently = scope:demanded_artifact
|
|
}
|
|
}
|
|
}
|
|
scope:actor = { is_imprisoned = no }
|
|
}
|
|
|
|
on_accept = {
|
|
scope:target = {
|
|
save_scope_as = demanded_artifact
|
|
}
|
|
if = {
|
|
limit = {
|
|
exists = scope:demanded_artifact
|
|
}
|
|
scope:actor = {
|
|
set_variable = {
|
|
name = demanded_this_artifact_interaction_recently
|
|
value = scope:demanded_artifact
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_neutral
|
|
title = demand_artifact_interaction_notification
|
|
left_icon = scope:recipient
|
|
right_icon = scope:target
|
|
scope:target = {
|
|
set_owner = scope:actor
|
|
}
|
|
|
|
scope:recipient = {
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = insult_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
can_set_relation_potential_rival_trigger = { CHARACTER = scope:actor }
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
set_relation_potential_rival = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
is_ai = yes
|
|
}
|
|
}
|
|
scope:actor = {
|
|
add_opinion = {
|
|
target = scope:recipient
|
|
modifier = pleased_opinion
|
|
opinion = 30
|
|
}
|
|
}
|
|
}
|
|
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = scope:actor
|
|
TARGET = scope:recipient
|
|
VALUE = minor_unity_loss
|
|
DESC = clan_unity_demanded_artifact.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
}
|
|
|
|
auto_accept = {
|
|
custom_description = {
|
|
text = "spending_hook"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:hook = yes
|
|
scope:actor = { has_strong_hook = scope:recipient }
|
|
}
|
|
}
|
|
|
|
send_option = {
|
|
is_shown = {
|
|
NOT = { scope:actor = scope:recipient }
|
|
}
|
|
is_valid = {
|
|
scope:actor = {
|
|
has_usable_hook = scope:recipient
|
|
}
|
|
}
|
|
flag = hook
|
|
localization = GENERIC_SPEND_A_HOOK
|
|
}
|
|
should_use_extra_icon = {
|
|
scope:actor = { has_usable_hook = scope:recipient }
|
|
}
|
|
extra_icon = "gfx/interface/icons/character_interactions/hook_icon.dds"
|
|
|
|
send_options_exclusive = no
|
|
|
|
ai_accept = {
|
|
base = 0
|
|
modifier = {
|
|
add = -50
|
|
desc = ARTIFACT_REASON
|
|
}
|
|
modifier = {
|
|
add = 70
|
|
scope:actor.max_military_strength > scope:recipient.max_military_strength
|
|
desc = ARTIFACT_MILITARY_STRONGER_REASON
|
|
}
|
|
modifier = {
|
|
add = -70
|
|
scope:actor.max_military_strength < scope:recipient.max_military_strength
|
|
desc = ARTIFACT_MILITARY_WEAKER_REASON
|
|
}
|
|
modifier = {
|
|
add = -50
|
|
scope:target = { can_be_claimed_by = scope:recipient }
|
|
desc = ARTIFACT_CLAIM_REASON
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = ai_boldness
|
|
multiply = -1
|
|
divide = 2
|
|
}
|
|
NOT = { ai_boldness = 0 }
|
|
desc = ARTIFACT_BOLDNESS_REASON
|
|
}
|
|
modifier = {
|
|
add = -50
|
|
scope:actor = {
|
|
has_relation_rival = scope:recipient
|
|
}
|
|
desc = ARTIFACT_RIVAL_REASON
|
|
}
|
|
modifier = {
|
|
add = -80
|
|
scope:actor = {
|
|
has_relation_nemesis = scope:recipient
|
|
}
|
|
desc = ARTIFACT_NEMESIS_REASON
|
|
}
|
|
modifier = {
|
|
add = 50
|
|
scope:recipient = {
|
|
target_is_liege_or_above = scope:actor
|
|
}
|
|
desc = ARTIFACT_LIEGE_REASON
|
|
}
|
|
modifier = {
|
|
scope:hook = yes
|
|
add = 100
|
|
desc = SCHEME_WEAK_HOOK_USED
|
|
}
|
|
|
|
# Unity modifiers
|
|
evaluate_action_decreasing_house_unity = { VALUE = 100 }
|
|
}
|
|
|
|
ai_potential = {
|
|
is_adult = yes
|
|
is_at_war = no
|
|
ai_greed >= low_negative_ai_value
|
|
has_outstanding_artifact_claims = yes
|
|
}
|
|
|
|
on_decline = {
|
|
scope:target = {
|
|
save_scope_as = demanded_artifact
|
|
}
|
|
if = {
|
|
limit = {
|
|
exists = scope:demanded_artifact
|
|
}
|
|
scope:actor = {
|
|
set_variable = {
|
|
name = demanded_this_artifact_interaction_recently
|
|
value = scope:demanded_artifact
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = demand_artifact_interaction_notification
|
|
left_icon = scope:recipient
|
|
right_icon = scope:target
|
|
custom_tooltip = demand_artifact_interaction_notification_refused
|
|
|
|
scope:recipient = {
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = insult_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
is_ai = yes
|
|
}
|
|
}
|
|
scope:actor = {
|
|
add_opinion = {
|
|
target = scope:recipient
|
|
modifier = refusal_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_min_reply_days = 7
|
|
ai_max_reply_days = 14
|
|
|
|
ai_will_do = {
|
|
base = 100
|
|
|
|
modifier = { # The AI will only use a Hook if they couldn't otherwise do this
|
|
scope:hook = yes
|
|
add = -1
|
|
}
|
|
|
|
modifier = {
|
|
add = 50
|
|
has_relation_rival = scope:recipient
|
|
}
|
|
modifier = {
|
|
add = 80
|
|
has_relation_nemesis = scope:recipient
|
|
}
|
|
modifier = {
|
|
add = -50
|
|
target_is_liege_or_above = scope:recipient
|
|
}
|
|
# Recipient is flaunting their artifacts and needs to be taken down a peg - from hold_court.3080
|
|
modifier = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_character_modifier = petition_event_artifact_exhibition_for_prestige
|
|
has_character_modifier = petition_event_artifact_exhibition_for_gold
|
|
}
|
|
}
|
|
add = 35
|
|
}
|
|
modifier = { # An Intimidated character is very unlikely to raise their hand
|
|
add = -25
|
|
scope:actor = {
|
|
has_dread_level_towards = {
|
|
target = scope:recipient
|
|
level = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
# Unity modifiers
|
|
evaluate_action_decreasing_house_unity = {
|
|
VALUE = 100
|
|
}
|
|
|
|
modifier = { # A Cowed character will never take this interaction
|
|
factor = 0
|
|
scope:actor = {
|
|
has_dread_level_towards = {
|
|
target = scope:recipient
|
|
level = 2
|
|
}
|
|
}
|
|
}
|
|
modifier = { # The AI doesn't demand from players they like
|
|
factor = 0
|
|
scope:recipient = {
|
|
is_ai = no
|
|
}
|
|
scope:actor = {
|
|
OR = {
|
|
has_relation_friend = scope:recipient
|
|
has_relation_lover = scope:recipient
|
|
opinion = {
|
|
target = scope:recipient
|
|
value >= high_positive_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
modifier = { # The AI doesn't demand from players that have refused already
|
|
factor = 0
|
|
scope:recipient = {
|
|
is_ai = no
|
|
}
|
|
scope:actor = {
|
|
has_opinion_modifier = {
|
|
target = scope:recipient
|
|
modifier = refusal_opinion
|
|
}
|
|
}
|
|
}
|
|
modifier = { # Only the House Head will demand house claimed artifacts from existing House members
|
|
factor = 0
|
|
exists = scope:actor.house.house_head
|
|
exists = scope:recipient.house
|
|
scope:actor.house.house_head = scope:actor
|
|
scope:actor.house = scope:recipient.house
|
|
|
|
NOT = {
|
|
any_personal_claimed_artifact = {
|
|
this = scope:target
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
opinion = {
|
|
target = scope:recipient
|
|
value >= medium_positive_opinion
|
|
}
|
|
ai_greed <= high_positive_ai_value
|
|
}
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_relation_friend = scope:actor
|
|
has_relation_lover = scope:actor
|
|
}
|
|
}
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
has_royal_court = no
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
artifact_slot_type = throne
|
|
artifact_slot_type = wall_big
|
|
artifact_slot_type = wall_small
|
|
artifact_slot_type = sculpture
|
|
artifact_slot_type = book
|
|
artifact_slot_type = pedestal
|
|
}
|
|
}
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
scope:recipient = {
|
|
OR = {
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = primary_armament
|
|
}
|
|
OR = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
rarity = illustrious
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
rarity = famed
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
rarity = masterwork
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
rarity = common
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = regalia
|
|
}
|
|
OR = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
rarity = illustrious
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
rarity = famed
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
rarity = masterwork
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
rarity = common
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = helmet
|
|
}
|
|
OR = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
rarity = illustrious
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
rarity = famed
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
rarity = masterwork
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
rarity = common
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = armor
|
|
}
|
|
OR = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = illustrious
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = famed
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = masterwork
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = common
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = miscellaneous
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 4
|
|
artifact_slot_type = miscellaneous
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = throne
|
|
}
|
|
OR = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = throne
|
|
rarity = illustrious
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = throne
|
|
rarity = famed
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = throne
|
|
rarity = masterwork
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = throne
|
|
rarity = common
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = wall_big
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 3
|
|
artifact_slot_type = wall_big
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = wall_small
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 3
|
|
artifact_slot_type = wall_small
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = sculpture
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 2
|
|
artifact_slot_type = sculpture
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = book
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 2
|
|
artifact_slot_type = book
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = pedestal
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 4
|
|
artifact_slot_type = pedestal
|
|
}
|
|
}
|
|
}
|
|
}
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
# Challenge someone to a non-lethal duel for an artifact you have a claim on
|
|
challenge_for_artifact_interaction = {
|
|
icon = icon_combat
|
|
interface_priority = 30
|
|
common_interaction = yes
|
|
category = interaction_category_hostile
|
|
ai_maybe = yes
|
|
ai_max_reply_days = 0
|
|
popup_on_receive = yes
|
|
pause_on_receive = yes
|
|
use_diplomatic_range = yes
|
|
can_send_despite_rejection = yes
|
|
desc = challenge_for_artifact_interaction_desc
|
|
|
|
target_type = artifact
|
|
target_filter = recipient_artifacts_claimable
|
|
|
|
greeting = negative
|
|
notification_text = REQUEST_ARTIFACT_COMBAT_TEXT
|
|
|
|
answer_accept_key = REQUEST_ARTIFACT_COMBAT_ACCEPT
|
|
answer_reject_key = REQUEST_ARTIFACT_COMBAT_REJECT
|
|
|
|
is_shown = {
|
|
# Can't duel yourself.
|
|
NOT = { scope:actor = scope:recipient }
|
|
custom_description = {
|
|
text = "challenge_for_artifact_interaction_valid_tt_1"
|
|
scope:recipient = {
|
|
# needs to have an artifact we can claim
|
|
any_character_artifact = {
|
|
can_be_claimed_by = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
rival_single_combat_shown_and_not_invalid_trigger = yes
|
|
scope:recipient = { can_start_single_combat_trigger = yes }
|
|
scope:recipient = {
|
|
custom_description = {
|
|
text = fp1_tbc_recipient_banned_from_combat
|
|
can_start_single_combat_banned_checks_trigger = no
|
|
}
|
|
}
|
|
scope:recipient = { is_imprisoned = no }
|
|
scope:actor = { is_imprisoned = no }
|
|
}
|
|
|
|
can_send = {
|
|
scope:actor = {
|
|
custom_description = {
|
|
text = "character_interactions_hostile_actions_disabled_delay"
|
|
NOT = { has_character_flag = flag_hostile_actions_disabled_delay }
|
|
}
|
|
}
|
|
}
|
|
|
|
is_highlighted = {
|
|
rival_single_combat_shown_and_not_invalid_trigger = yes
|
|
# 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 = { can_start_single_combat_banned_checks_trigger = no }
|
|
scope:recipient = { is_imprisoned = no }
|
|
scope:actor = { is_imprisoned = no }
|
|
}
|
|
|
|
cost = { prestige = challenge_for_artifact_prestige_cost_value }
|
|
cooldown = { years = 2 }
|
|
cooldown_against_recipient = { years = 5 }
|
|
|
|
on_send = {
|
|
scope:actor = {
|
|
add_character_flag = {
|
|
flag = flag_hostile_actions_disabled_delay
|
|
days = 10
|
|
}
|
|
}
|
|
}
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
remove_character_flag = flag_hostile_actions_disabled_delay
|
|
}
|
|
# Set up the bout immediately.
|
|
## First inform.
|
|
scope:actor = {
|
|
custom_tooltip = challenge_to_single_combat_interaction.enter_non_lethal_bout.tt
|
|
custom_tooltip = challenge_to_artifact_combat_interaction_victor_gets.tt
|
|
custom_tooltip = challenge_to_artifact_combat_interaction_loser_gets.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 = terrain_scope
|
|
OUTPUT_EVENT = artifact.2001
|
|
INVALIDATION_EVENT = fp1_tbc.0021
|
|
}
|
|
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = scope:actor
|
|
TARGET = scope:recipient
|
|
VALUE = major_unity_loss
|
|
DESC = clan_unity_challenge_artifact.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = scope:actor
|
|
TARGET = scope:recipient
|
|
VALUE = minor_unity_gain
|
|
DESC = clan_unity_challenge_artifact_refusal.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
|
|
# Scope:recipient declines processing.
|
|
scope:actor = {
|
|
# Inform them of the decline & scope:recipient loses some prestige.
|
|
send_interface_toast = {
|
|
type = event_toast_effect_neutral
|
|
title = challenge_to_single_combat_interaction.challenge_rejected.t
|
|
left_icon = scope:recipient
|
|
right_icon = scope:actor
|
|
scope:recipient = {
|
|
add_prestige = {
|
|
value = 0
|
|
subtract = challenge_for_artifact_prestige_cost_value
|
|
}
|
|
}
|
|
show_as_tooltip = {
|
|
add_prestige = challenge_for_artifact_prestige_cost_value
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
add_prestige_no_experience = challenge_for_artifact_prestige_cost_value
|
|
# Cooldown is removed.
|
|
remove_interaction_cooldown = challenge_for_artifact_interaction
|
|
}
|
|
# Clear up hostile actions flag.
|
|
if = {
|
|
limit = {
|
|
has_character_flag = flag_hostile_actions_disabled_delay
|
|
}
|
|
remove_character_flag = flag_hostile_actions_disabled_delay
|
|
}
|
|
}
|
|
}
|
|
|
|
auto_accept = no
|
|
|
|
ai_accept = {
|
|
base = 50 # Try to make it 0 for most interactions
|
|
|
|
# Relative fighting ability.
|
|
modifier = {
|
|
desc = CTSC_RELATIVE_PROWESS
|
|
scope:actor.prowess < scope:recipient.prowess
|
|
add = {
|
|
value = scope:recipient.prowess
|
|
subtract = scope:actor.prowess
|
|
multiply = 2
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = CTSC_RELATIVE_PROWESS
|
|
scope:recipient.prowess < scope:actor.prowess
|
|
add = {
|
|
value = scope:actor.prowess
|
|
subtract = scope:recipient.prowess
|
|
multiply = -2
|
|
}
|
|
}
|
|
# Weight up for personality values.
|
|
ai_value_modifier = {
|
|
who = scope:recipient
|
|
ai_boldness = 1
|
|
ai_vengefulness = 0.75
|
|
ai_honor = 0.5
|
|
ai_rationality = -0.25
|
|
ai_greed = -0.5
|
|
}
|
|
# Apply tier differences.
|
|
## King -> Baron.
|
|
modifier = {
|
|
desc = AI_REFUSAL_RANK_DIFFERENCE
|
|
scope:actor = {
|
|
tier_difference = {
|
|
target = scope:recipient
|
|
value >= 4
|
|
}
|
|
}
|
|
add = 15
|
|
}
|
|
## Duke -> Baron.
|
|
modifier = {
|
|
desc = AI_REFUSAL_RANK_DIFFERENCE
|
|
scope:actor = {
|
|
tier_difference = {
|
|
target = scope:recipient
|
|
value = 3
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
## Count -> Baron.
|
|
modifier = {
|
|
desc = AI_REFUSAL_RANK_DIFFERENCE
|
|
scope:actor = {
|
|
tier_difference = {
|
|
target = scope:recipient
|
|
value = 2
|
|
}
|
|
}
|
|
add = 5
|
|
}
|
|
## King <- Baron.
|
|
modifier = {
|
|
desc = AI_REFUSAL_RANK_DIFFERENCE
|
|
scope:actor = {
|
|
tier_difference = {
|
|
target = scope:recipient
|
|
value = -2
|
|
}
|
|
}
|
|
add = -20
|
|
}
|
|
## Duke <- Baron.
|
|
modifier = {
|
|
desc = AI_REFUSAL_RANK_DIFFERENCE
|
|
scope:actor = {
|
|
tier_difference = {
|
|
target = scope:recipient
|
|
value = -3
|
|
}
|
|
}
|
|
add = -30
|
|
}
|
|
## Count <- Baron.
|
|
modifier = {
|
|
desc = AI_REFUSAL_RANK_DIFFERENCE
|
|
scope:actor = {
|
|
tier_difference = {
|
|
target = scope:recipient
|
|
value <= -4
|
|
}
|
|
}
|
|
add = -40
|
|
}
|
|
# Rival modifier
|
|
modifier = {
|
|
desc = offer_vassalization_interaction_aibehavior_rival_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_rival = scope:actor
|
|
}
|
|
}
|
|
add = 30
|
|
}
|
|
# Nemesis modifier
|
|
modifier = {
|
|
desc = offer_vassalization_interaction_aibehavior_nemesis_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_nemesis = scope:actor
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
# Prestige too low to decline
|
|
modifier = {
|
|
desc = cannot_afford_prestige_loss_tt
|
|
trigger = { scope:recipient.prestige < challenge_for_artifact_prestige_limit_value } # 1/3rd of potential loss
|
|
add = 30
|
|
}
|
|
|
|
# Unity modifiers
|
|
evaluate_action_decreasing_house_unity = {
|
|
VALUE = 100
|
|
}
|
|
}
|
|
|
|
# AI
|
|
ai_potential = {
|
|
NOT = { has_trait = craven }
|
|
is_imprisoned = no
|
|
can_start_single_combat_trigger = yes
|
|
ai_greed >= low_negative_ai_value
|
|
has_outstanding_artifact_claims = yes
|
|
}
|
|
|
|
ai_target_quick_trigger = {
|
|
adult = yes
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = scripted_relations
|
|
}
|
|
|
|
ai_targets = {
|
|
ai_recipients = liege
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = neighboring_rulers
|
|
ai_recipients = peer_vassals
|
|
ai_recipients = nearby_domicile_owners
|
|
max = 10
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = family
|
|
max = 10
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = vassals
|
|
max = 10
|
|
}
|
|
|
|
ai_frequency = 60
|
|
|
|
ai_will_do = {
|
|
base = -50
|
|
|
|
# Factor for personality (excluding realism).
|
|
modifier = {
|
|
add = ai_boldness
|
|
}
|
|
modifier = {
|
|
ai_vengefulness > 0
|
|
add = ai_vengefulness
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = ai_compassion
|
|
multiply = -0.25
|
|
}
|
|
}
|
|
# Don't challenge your spouse, unless they're your nemesis.
|
|
modifier = {
|
|
scope:recipient = {
|
|
is_spouse_of = scope:actor
|
|
NOT = { has_relation_nemesis = scope:actor }
|
|
}
|
|
add = -1000
|
|
}
|
|
# Don't challenge people hopelessly out of your league unless you're really, really not seeing things clearly.
|
|
modifier = {
|
|
scope:actor = {
|
|
prowess_diff = {
|
|
target = scope:recipient
|
|
value <= -15
|
|
}
|
|
ai_rationality >= high_negative_ai_value
|
|
}
|
|
add = -1000
|
|
}
|
|
# Don't challenge your liege - it's really bad form - unless you are REALLY motivated
|
|
modifier = {
|
|
scope:actor = {
|
|
is_vassal_of = scope:recipient
|
|
}
|
|
add = -100
|
|
}
|
|
# Challenge them if they are your rival
|
|
modifier = {
|
|
scope:actor = {
|
|
has_relation_rival = scope:recipient
|
|
}
|
|
add = 30
|
|
}
|
|
# Totally challenge them if they are your nemesis!
|
|
modifier = {
|
|
scope:actor = {
|
|
has_relation_nemesis = scope:recipient
|
|
}
|
|
add = 50
|
|
}
|
|
# Recipient is flaunting their artifacts and needs to be taken down a peg - from hold_court.3080
|
|
modifier = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_character_modifier = petition_event_artifact_exhibition_for_prestige
|
|
has_character_modifier = petition_event_artifact_exhibition_for_gold
|
|
}
|
|
}
|
|
add = 35
|
|
}
|
|
modifier = { # An Intimidated character is very unlikely to raise their hand
|
|
add = -25
|
|
scope:actor = {
|
|
has_dread_level_towards = {
|
|
target = scope:recipient
|
|
level = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
# Unity modifiers
|
|
evaluate_action_decreasing_house_unity = {
|
|
VALUE = 100
|
|
}
|
|
|
|
|
|
modifier = { # A Cowed character will never take this interaction
|
|
factor = 0
|
|
scope:actor = {
|
|
has_dread_level_towards = {
|
|
target = scope:recipient
|
|
level = 2
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
opinion = {
|
|
target = scope:recipient
|
|
value >= medium_positive_opinion
|
|
}
|
|
ai_greed <= high_positive_ai_value
|
|
}
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_relation_friend = scope:actor
|
|
has_relation_lover = scope:actor
|
|
}
|
|
}
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
has_royal_court = no
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
artifact_slot_type = throne
|
|
artifact_slot_type = wall_big
|
|
artifact_slot_type = wall_small
|
|
artifact_slot_type = sculpture
|
|
artifact_slot_type = book
|
|
artifact_slot_type = pedestal
|
|
}
|
|
}
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
scope:recipient = {
|
|
OR = {
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = primary_armament
|
|
}
|
|
OR = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
rarity = illustrious
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
rarity = famed
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
rarity = masterwork
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
rarity = common
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = regalia
|
|
}
|
|
OR = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
rarity = illustrious
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
rarity = famed
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
rarity = masterwork
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
rarity = common
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = helmet
|
|
}
|
|
OR = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
rarity = illustrious
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
rarity = famed
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
rarity = masterwork
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
rarity = common
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = armor
|
|
}
|
|
OR = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = illustrious
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = famed
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = masterwork
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = common
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = miscellaneous
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 4
|
|
artifact_slot_type = miscellaneous
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = throne
|
|
}
|
|
OR = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = throne
|
|
rarity = illustrious
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = throne
|
|
rarity = famed
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = throne
|
|
rarity = masterwork
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = throne
|
|
rarity = common
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = wall_big
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 3
|
|
artifact_slot_type = wall_big
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = wall_small
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 3
|
|
artifact_slot_type = wall_small
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = sculpture
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 2
|
|
artifact_slot_type = sculpture
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = book
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 2
|
|
artifact_slot_type = book
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = pedestal
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 4
|
|
artifact_slot_type = pedestal
|
|
}
|
|
}
|
|
}
|
|
}
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
#Steal an artifact that you have a claim on
|
|
start_stealing_back_artifact = {
|
|
icon = icon_scheme_steal_back_artifact
|
|
interface_priority = 70
|
|
category = interaction_category_hostile
|
|
common_interaction = yes
|
|
|
|
send_name = START_SCHEME
|
|
|
|
scheme = steal_back_artifact
|
|
ignores_pending_interaction_block = yes
|
|
|
|
target_type = artifact
|
|
target_filter = recipient_artifacts
|
|
|
|
is_shown = {
|
|
NOR = {
|
|
scope:recipient = scope:actor
|
|
scope:recipient = { is_imprisoned_by = scope:actor }
|
|
}
|
|
OR = {
|
|
scope:recipient = {
|
|
# needs to have an artifact we can claim
|
|
any_character_artifact = {
|
|
can_be_claimed_by = scope:actor
|
|
}
|
|
}
|
|
scope:actor = {
|
|
OR = {
|
|
employs_court_position = master_thief_camp_officer
|
|
any_character_active_contract = {
|
|
has_task_contract_type = laamp_steal_artifact_contract
|
|
var:task_contract_target ?= scope:recipient
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
is_highlighted = {
|
|
always = yes
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
trigger_if = {
|
|
limit = {
|
|
scope:actor = {
|
|
any_character_artifact = {
|
|
scope:actor = { has_artifact_claim = prev }
|
|
}
|
|
}
|
|
}
|
|
|
|
custom_description = {
|
|
text = steal_back_artifact_can_start_scheme
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:actor = {
|
|
can_start_scheme = {
|
|
type = steal_back_artifact
|
|
target_character = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
}
|
|
trigger_if = {
|
|
limit = {
|
|
scope:actor = {
|
|
NOR = {
|
|
employs_court_position = master_thief_camp_officer
|
|
any_character_task_contract = {
|
|
has_task_contract_type = laamp_steal_artifact_contract
|
|
var:task_contract_target ?= scope:recipient
|
|
}
|
|
}
|
|
}
|
|
}
|
|
custom_description = {
|
|
text = steal_back_artifact_must_have_claim_blocker
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
|
|
scope:recipient = {
|
|
any_character_artifact = {
|
|
scope:actor = {
|
|
has_artifact_claim = prev
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
custom_description = {
|
|
object = scope:recipient
|
|
text = you_have_been_caught_trying_to_steal_artifact_from_target
|
|
scope:recipient = {
|
|
NOT = {
|
|
has_opinion_modifier = {
|
|
target = scope:actor
|
|
modifier = attempted_to_steal_artifact_from_me
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
custom_description = {
|
|
object = scope:recipient
|
|
text = you_have_recently_stolen_artifact_from_target
|
|
scope:recipient = {
|
|
NOT = {
|
|
has_opinion_modifier = {
|
|
target = scope:actor
|
|
modifier = stole_artifact_from_me
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
desc = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:actor = {
|
|
can_start_scheme = {
|
|
type = steal_back_artifact
|
|
target_character = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
desc = scheme_interaction_tt_steal_back_artifact_approved
|
|
}
|
|
}
|
|
can_be_picked_artifact = {
|
|
trigger_if = {
|
|
limit = {
|
|
scope:actor = {
|
|
NOR = {
|
|
employs_court_position = master_thief_camp_officer
|
|
any_character_active_contract = {
|
|
has_task_contract_type = laamp_steal_artifact_contract
|
|
var:task_contract_object ?= scope:target
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:actor = {
|
|
has_artifact_claim = scope:target
|
|
}
|
|
}
|
|
}
|
|
# Scheme Starter Packages
|
|
options_heading = schemes.t.agent_packages
|
|
send_options_exclusive = yes
|
|
## Balanced agents.
|
|
send_option = {
|
|
flag = agent_focus_balance
|
|
current_description = start_stealing_back_artifact.tt.agent_focus_balance
|
|
}
|
|
## Focused on Success Chance.
|
|
send_option = {
|
|
flag = agent_focus_success
|
|
current_description = start_stealing_back_artifact.tt.agent_focus_success
|
|
}
|
|
## Focused on Speed.
|
|
send_option = {
|
|
flag = agent_focus_speed
|
|
current_description = start_stealing_back_artifact.tt.agent_focus_speed
|
|
}
|
|
## Focused on Secrecy.
|
|
send_option = {
|
|
flag = agent_focus_secrecy
|
|
current_description = start_stealing_back_artifact.tt.agent_focus_secrecy
|
|
}
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
stress_impact = {
|
|
vengeful = medium_stress_impact_loss
|
|
honest = minor_stress_impact_gain
|
|
just = minor_stress_impact_loss
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_neutral
|
|
title = start_stealing_back_artifact_notification
|
|
|
|
left_icon = scope:actor
|
|
right_icon = scope:recipient
|
|
|
|
if = {
|
|
limit = {
|
|
any_character_active_contract = {
|
|
has_task_contract_type = laamp_steal_artifact_contract
|
|
var:task_contract_target ?= scope:recipient
|
|
}
|
|
}
|
|
random_character_active_contract = {
|
|
limit = {
|
|
has_task_contract_type = laamp_steal_artifact_contract
|
|
var:task_contract_target ?= scope:recipient
|
|
}
|
|
save_scope_as = scheme_contract
|
|
}
|
|
# Success.
|
|
if = {
|
|
limit = { scope:agent_focus_success ?= yes }
|
|
begin_contract_scheme_with_agents_effect = {
|
|
SCHEME_TYPE = steal_back_artifact
|
|
TARGET_TYPE = target_character
|
|
TARGET_SCOPE = scope:recipient
|
|
TASK_CONTRACT = scope:scheme_contract
|
|
# Success.
|
|
AGENT_1 = agent_thief
|
|
AGENT_2 = agent_thief
|
|
AGENT_3 = agent_thug
|
|
# Speed.
|
|
AGENT_4 = agent_infiltrator
|
|
# Secrecy.
|
|
AGENT_5 = agent_lookout
|
|
}
|
|
}
|
|
# Speed.
|
|
else_if = {
|
|
limit = { scope:agent_focus_speed ?= yes }
|
|
begin_contract_scheme_with_agents_effect = {
|
|
SCHEME_TYPE = steal_back_artifact
|
|
TARGET_TYPE = target_character
|
|
TARGET_SCOPE = scope:recipient
|
|
TASK_CONTRACT = scope:scheme_contract
|
|
# Speed.
|
|
AGENT_1 = agent_infiltrator
|
|
AGENT_2 = agent_infiltrator
|
|
AGENT_3 = agent_footpad
|
|
# Success.
|
|
AGENT_4 = agent_thief
|
|
# Secrecy.
|
|
AGENT_5 = agent_lookout
|
|
}
|
|
}
|
|
# Secrecy.
|
|
else_if = {
|
|
limit = { scope:agent_focus_secrecy ?= yes }
|
|
begin_contract_scheme_with_agents_effect = {
|
|
SCHEME_TYPE = steal_back_artifact
|
|
TARGET_TYPE = target_character
|
|
TARGET_SCOPE = scope:recipient
|
|
TASK_CONTRACT = scope:scheme_contract
|
|
# Secrecy.
|
|
AGENT_1 = agent_lookout
|
|
AGENT_2 = agent_alibi
|
|
AGENT_3 = agent_decoy
|
|
# Success.
|
|
AGENT_4 = agent_thief
|
|
# Speed.
|
|
AGENT_5 = agent_infiltrator
|
|
}
|
|
}
|
|
# Balanced.
|
|
else = {
|
|
begin_contract_scheme_with_agents_effect = {
|
|
SCHEME_TYPE = steal_back_artifact
|
|
TARGET_TYPE = target_character
|
|
TARGET_SCOPE = scope:recipient
|
|
TASK_CONTRACT = scope:scheme_contract
|
|
# Success.
|
|
AGENT_1 = agent_thief
|
|
AGENT_2 = agent_thief
|
|
# Speed.
|
|
AGENT_3 = agent_infiltrator
|
|
AGENT_4 = agent_infiltrator
|
|
# Secrecy.
|
|
AGENT_5 = agent_lookout
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
# Success.
|
|
if = {
|
|
limit = { scope:agent_focus_success ?= yes }
|
|
begin_scheme_with_agents_effect = {
|
|
SCHEME_TYPE = steal_back_artifact
|
|
TARGET_TYPE = target_character
|
|
TARGET_SCOPE = scope:recipient
|
|
# Success.
|
|
AGENT_1 = agent_thief
|
|
AGENT_2 = agent_thief
|
|
AGENT_3 = agent_thug
|
|
# Speed.
|
|
AGENT_4 = agent_infiltrator
|
|
# Secrecy.
|
|
AGENT_5 = agent_lookout
|
|
}
|
|
}
|
|
# Speed.
|
|
else_if = {
|
|
limit = { scope:agent_focus_speed ?= yes }
|
|
begin_scheme_with_agents_effect = {
|
|
SCHEME_TYPE = steal_back_artifact
|
|
TARGET_TYPE = target_character
|
|
TARGET_SCOPE = scope:recipient
|
|
# Speed.
|
|
AGENT_1 = agent_infiltrator
|
|
AGENT_2 = agent_infiltrator
|
|
AGENT_3 = agent_footpad
|
|
# Success.
|
|
AGENT_4 = agent_thief
|
|
# Secrecy.
|
|
AGENT_5 = agent_lookout
|
|
}
|
|
}
|
|
# Secrecy.
|
|
else_if = {
|
|
limit = { scope:agent_focus_secrecy ?= yes }
|
|
begin_scheme_with_agents_effect = {
|
|
SCHEME_TYPE = steal_back_artifact
|
|
TARGET_TYPE = target_character
|
|
TARGET_SCOPE = scope:recipient
|
|
# Secrecy.
|
|
AGENT_1 = agent_lookout
|
|
AGENT_2 = agent_alibi
|
|
AGENT_3 = agent_decoy
|
|
# Success.
|
|
AGENT_4 = agent_thief
|
|
# Speed.
|
|
AGENT_5 = agent_infiltrator
|
|
}
|
|
}
|
|
# Balanced.
|
|
else = {
|
|
begin_scheme_with_agents_effect = {
|
|
SCHEME_TYPE = steal_back_artifact
|
|
TARGET_TYPE = target_character
|
|
TARGET_SCOPE = scope:recipient
|
|
# Success.
|
|
AGENT_1 = agent_thief
|
|
AGENT_2 = agent_thief
|
|
# Speed.
|
|
AGENT_3 = agent_infiltrator
|
|
AGENT_4 = agent_infiltrator
|
|
# Secrecy.
|
|
AGENT_5 = agent_lookout
|
|
}
|
|
}
|
|
}
|
|
scope:new_scheme ?= {
|
|
set_variable = {
|
|
name = target_artifact
|
|
value = scope:target
|
|
}
|
|
}
|
|
show_as_tooltip = {
|
|
stress_impact = {
|
|
vengeful = medium_stress_impact_loss
|
|
honest = minor_stress_impact_gain
|
|
just = minor_stress_impact_loss
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# AI
|
|
ai_potential = {
|
|
is_imprisoned = no
|
|
ai_greed >= low_negative_ai_value
|
|
intrigue >= low_skill_rating
|
|
has_outstanding_artifact_claims = yes
|
|
NOT = {
|
|
any_scheme = {
|
|
OR = {
|
|
scheme_type = murder
|
|
scheme_type = abduct
|
|
scheme_type = claim_throne
|
|
scheme_type = fabricate_hook
|
|
scheme_type = steal_back_artifact
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_target_quick_trigger = {
|
|
adult = yes
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = scripted_relations
|
|
}
|
|
|
|
ai_targets = {
|
|
ai_recipients = liege
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = neighboring_rulers
|
|
ai_recipients = peer_vassals
|
|
ai_recipients = nearby_domicile_owners
|
|
max = 10
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = family
|
|
max = 10
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = vassals
|
|
max = 10
|
|
}
|
|
|
|
ai_frequency = 60
|
|
|
|
ai_will_do = {
|
|
base = -30
|
|
# Factor for personality (excluding realism).
|
|
modifier = {
|
|
add = {
|
|
value = ai_boldness
|
|
multiply = -1
|
|
}
|
|
}
|
|
modifier = {
|
|
ai_vengefulness > 0
|
|
add = ai_vengefulness
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = ai_compassion
|
|
multiply = -0.25
|
|
}
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
has_relation_rival = scope:recipient
|
|
}
|
|
add = 60
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
has_relation_nemesis = scope:recipient
|
|
}
|
|
add = 150
|
|
}
|
|
# Recipient is flaunting their artifacts and needs to be taken down a peg - from hold_court.3080
|
|
modifier = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_character_modifier = petition_event_artifact_exhibition_for_prestige
|
|
has_character_modifier = petition_event_artifact_exhibition_for_gold
|
|
}
|
|
}
|
|
add = 35
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
opinion = {
|
|
target = scope:recipient
|
|
value >= medium_positive_opinion
|
|
}
|
|
ai_greed <= high_positive_ai_value
|
|
}
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_relation_friend = scope:actor
|
|
has_relation_lover = scope:actor
|
|
}
|
|
}
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
has_royal_court = no
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
artifact_slot_type = throne
|
|
artifact_slot_type = wall_big
|
|
artifact_slot_type = wall_small
|
|
artifact_slot_type = sculpture
|
|
artifact_slot_type = book
|
|
artifact_slot_type = pedestal
|
|
}
|
|
}
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
scope:recipient = {
|
|
OR = {
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = primary_armament
|
|
}
|
|
OR = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
rarity = illustrious
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
rarity = famed
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
rarity = masterwork
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
rarity = common
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = regalia
|
|
}
|
|
OR = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
rarity = illustrious
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
rarity = famed
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
rarity = masterwork
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = regalia
|
|
rarity = common
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = helmet
|
|
}
|
|
OR = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
rarity = illustrious
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
rarity = famed
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
rarity = masterwork
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
rarity = common
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = armor
|
|
}
|
|
OR = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = illustrious
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = famed
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = masterwork
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = common
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = miscellaneous
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 4
|
|
artifact_slot_type = miscellaneous
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = throne
|
|
}
|
|
OR = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = throne
|
|
rarity = illustrious
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = throne
|
|
rarity = famed
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = famed
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = throne
|
|
rarity = masterwork
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
rarity = masterwork
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
any_equipped_character_artifact = {
|
|
artifact_slot_type = throne
|
|
rarity = common
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = wall_big
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 3
|
|
artifact_slot_type = wall_big
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = wall_small
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 3
|
|
artifact_slot_type = wall_small
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = sculpture
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 2
|
|
artifact_slot_type = sculpture
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = book
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 2
|
|
artifact_slot_type = book
|
|
}
|
|
}
|
|
AND = {
|
|
scope:target = {
|
|
artifact_slot_type = pedestal
|
|
rarity = common
|
|
}
|
|
any_equipped_character_artifact = {
|
|
count >= 4
|
|
artifact_slot_type = pedestal
|
|
}
|
|
}
|
|
}
|
|
}
|
|
factor = 0
|
|
}
|
|
start_hostile_scheme_ai_base_modifiers = yes # At the end so Cowed can block it completely
|
|
}
|
|
|
|
auto_accept = yes
|
|
}
|
|
|
|
buy_artifact_claim = {
|
|
category = interaction_category_diplomacy
|
|
common_interaction = yes
|
|
ignores_pending_interaction_block = yes
|
|
icon = artisan_inspiration
|
|
|
|
target_type = artifact
|
|
target_filter = recipient_artifacts
|
|
|
|
is_shown = {
|
|
# interaction locked behind Accomplished Forger perk from the Diplomacy lifestyle
|
|
scope:actor = {
|
|
has_perk = accomplished_forger_perk
|
|
is_landless_adventurer = no
|
|
}
|
|
NOR = {
|
|
# Can't buy from yourself
|
|
scope:recipient = scope:actor
|
|
# Can't buy from one of your prisoners
|
|
scope:recipient = { is_imprisoned_by = scope:actor }
|
|
}
|
|
scope:recipient = {
|
|
in_diplomatic_range = scope:actor
|
|
any_character_artifact = {
|
|
exists = this
|
|
scope:actor = {
|
|
NOT = { has_personal_artifact_claim = prev }
|
|
}
|
|
NOR = {
|
|
# maybe? nah. we can't.
|
|
has_variable = pope_hat
|
|
# This is the only way I have found to exclude dynastic banners
|
|
artifact_type = wall_big
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
can_be_picked = {
|
|
scope:target = {
|
|
NOR = {
|
|
# can't already have a claim on the artifact
|
|
scope:actor = { has_personal_artifact_claim = prev }
|
|
# no pope hats or dynastic banners
|
|
has_variable = pope_hat
|
|
artifact_type = wall_big
|
|
}
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
# Can't buy an artifact claim against yourself or one of your prisoners
|
|
NOR = {
|
|
scope:recipient = scope:actor
|
|
scope:recipient = { is_imprisoned_by = scope:actor }
|
|
}
|
|
scope:recipient = {
|
|
# needs to have an artifact
|
|
any_character_artifact = {
|
|
exists = this
|
|
# actor can't already have a claim on said artifact
|
|
scope:actor = {
|
|
NOT = { has_personal_artifact_claim = prev }
|
|
}
|
|
}
|
|
is_busy_in_events_localised = yes
|
|
}
|
|
|
|
# Claim costs are calculated with scripted values located 00_lifestyle_values. The piety interaction costs copy those used for the regular Buy Claim interaciton and the prestige costs are calculated according to the same method.
|
|
|
|
# Checks to determine piety cost for Religious Artifacts
|
|
trigger_if = {
|
|
limit = {
|
|
exists = scope:target.var:relic
|
|
scope:target = { rarity = common }
|
|
}
|
|
scope:actor = { piety >= minor_buy_claim_piety_value }
|
|
}
|
|
trigger_else_if = {
|
|
limit = {
|
|
exists = scope:target.var:relic
|
|
scope:target = { rarity = masterwork }
|
|
}
|
|
scope:actor = { piety >= medium_buy_claim_piety_value }
|
|
}
|
|
trigger_else_if = {
|
|
limit = {
|
|
exists = scope:target.var:relic
|
|
scope:target = { rarity = famed }
|
|
}
|
|
scope:actor = { piety >= major_buy_claim_piety_value }
|
|
}
|
|
trigger_else = {
|
|
limit = {
|
|
exists = scope:target.var:relic
|
|
scope:target = { rarity = illustrious }
|
|
}
|
|
scope:actor = { piety >= massive_buy_claim_piety_value }
|
|
}
|
|
|
|
# Checks to determine prestige cost for regular artifacts
|
|
trigger_if = {
|
|
limit = {
|
|
exists = scope:target
|
|
NOT = { exists = scope:target.var:relic }
|
|
scope:target = { rarity = common }
|
|
}
|
|
scope:actor = { prestige >= minor_buy_claim_prestige_value }
|
|
}
|
|
trigger_else_if = {
|
|
limit = {
|
|
exists = scope:target
|
|
NOT = { exists = scope:target.var:relic }
|
|
scope:target = { rarity = masterwork }
|
|
}
|
|
scope:actor = { prestige >= medium_buy_claim_prestige_value }
|
|
}
|
|
trigger_else_if = {
|
|
limit = {
|
|
exists = scope:target
|
|
NOT = { exists = scope:target.var:relic }
|
|
scope:target = { rarity = famed }
|
|
}
|
|
scope:actor = { prestige >= major_buy_claim_prestige_value }
|
|
}
|
|
trigger_else = {
|
|
limit = {
|
|
exists = scope:target
|
|
NOT = { exists = scope:target.var:relic }
|
|
scope:target = { rarity = illustrious }
|
|
}
|
|
scope:actor = { prestige >= massive_buy_claim_prestige_value }
|
|
}
|
|
}
|
|
|
|
desc = buy_artifact_claim_desc
|
|
|
|
auto_accept = yes
|
|
|
|
on_accept = {
|
|
# If it's a religous artifact...
|
|
if = {
|
|
limit = {
|
|
exists = scope:target.var:relic
|
|
}
|
|
# Toast to the actor
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_artifact_good
|
|
title = bought_artifact_claim.t
|
|
left_icon = scope:recipient
|
|
right_icon = scope:target
|
|
# Determine piety cost
|
|
if = {
|
|
limit = {
|
|
exists = scope:target.var:relic
|
|
scope:target = { rarity = common }
|
|
}
|
|
scope:actor = { add_piety = minor_buy_claim_piety_loss }
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
exists = scope:target.var:relic
|
|
scope:target = { rarity = masterwork }
|
|
}
|
|
scope:actor = { add_piety = medium_buy_claim_piety_loss }
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
exists = scope:target.var:relic
|
|
scope:target = { rarity = famed }
|
|
}
|
|
scope:actor = { add_piety = major_buy_claim_piety_loss }
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
exists = scope:target.var:relic
|
|
scope:target = { rarity = illustrious }
|
|
}
|
|
scope:actor = { add_piety = massive_buy_claim_piety_loss }
|
|
}
|
|
add_personal_artifact_claim = scope:target
|
|
}
|
|
}
|
|
# Toast to the recipient
|
|
scope:recipient = {
|
|
send_interface_message = {
|
|
type = event_artifact_bad_text
|
|
title = sold_artifact_claim.t
|
|
desc = sold_artifact_claim.desc
|
|
left_icon = scope:actor
|
|
right_icon = scope:target
|
|
}
|
|
}
|
|
}
|
|
# If it's not a religous artifact...
|
|
else = {
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_artifact_bad
|
|
title = bought_artifact_claim.t
|
|
left_icon = scope:recipient
|
|
right_icon = scope:target
|
|
# Determine prestige cost
|
|
if = {
|
|
limit = {
|
|
exists = scope:target
|
|
scope:target = { rarity = common }
|
|
}
|
|
scope:actor = { add_prestige = minor_buy_claim_prestige_loss }
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
exists = scope:target
|
|
scope:target = { rarity = masterwork }
|
|
}
|
|
scope:actor = { add_prestige = medium_buy_claim_prestige_loss }
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
exists = scope:target
|
|
scope:target = { rarity = famed }
|
|
}
|
|
scope:actor = { add_prestige = major_buy_claim_prestige_loss }
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
exists = scope:target
|
|
scope:target = { rarity = illustrious }
|
|
}
|
|
scope:actor = { add_prestige = massive_buy_claim_prestige_loss}
|
|
}
|
|
add_personal_artifact_claim = scope:target
|
|
}
|
|
}
|
|
|
|
scope:recipient = {
|
|
send_interface_message = {
|
|
type = event_artifact_bad_text
|
|
title = sold_artifact_claim.t
|
|
desc = sold_artifact_claim.desc
|
|
left_icon = scope:actor
|
|
right_icon = scope:target
|
|
}
|
|
}
|
|
}
|
|
scope:actor = {
|
|
stress_impact = {
|
|
just = medium_stress_impact_gain
|
|
honest = medium_stress_impact_gain
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = claimed_my_artifact_opinion
|
|
opinion = -40
|
|
}
|
|
# Recipient grows closer to forming a rivalry with the actor
|
|
if = {
|
|
limit = {
|
|
can_set_relation_potential_rival_trigger = {
|
|
CHARACTER = scope:actor
|
|
}
|
|
}
|
|
set_relation_potential_rival = scope:actor
|
|
}
|
|
}
|
|
|
|
# If we're a clan this interaction affects unity
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = scope:actor
|
|
TARGET = scope:recipient
|
|
VALUE = minor_unity_loss
|
|
DESC = clan_unity_bought_artifact_claim.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
}
|
|
|
|
# AI STUFF
|
|
ai_target_quick_trigger = {
|
|
adult = yes
|
|
}
|
|
|
|
ai_targets = {
|
|
# Only want AI to target neighbors
|
|
ai_recipients = neighboring_rulers
|
|
ai_recipients = nearby_domicile_owners
|
|
}
|
|
|
|
ai_frequency = 30
|
|
|
|
ai_potential = {
|
|
# The basic requirements
|
|
is_imprisoned = no
|
|
is_playable_character = yes
|
|
is_available_ai_adult = yes
|
|
|
|
# They must be well supplied
|
|
prestige > major_prestige_value
|
|
piety > major_piety_value
|
|
|
|
# Only really greedy AI characters get to use this
|
|
ai_greed >= high_positive_ai_value
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 30
|
|
|
|
# Unity modifiers
|
|
evaluate_action_decreasing_house_unity = {
|
|
VALUE = 100
|
|
}
|
|
|
|
# Make it more likely for AI characters to buy claims if they have a royal court
|
|
modifier = {
|
|
scope:actor = {
|
|
has_royal_court = yes
|
|
has_dlc_feature = court_artifacts
|
|
}
|
|
factor = 2
|
|
}
|
|
|
|
# Prevent AI from buying artifact claims for court artifacts if they don't have a royal court
|
|
modifier = {
|
|
scope:actor = {
|
|
has_royal_court = no
|
|
}
|
|
scope:target = {
|
|
OR = {
|
|
artifact_slot_type = throne
|
|
artifact_slot_type = wall_big
|
|
artifact_slot_type = wall_small
|
|
artifact_slot_type = sculpture
|
|
artifact_slot_type = book
|
|
artifact_slot_type = pedestal
|
|
}
|
|
}
|
|
factor = 0
|
|
}
|
|
|
|
# AI won't buy claims on artifacts owned by their lovers or friends
|
|
modifier = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_relation_friend = scope:actor
|
|
has_relation_lover = scope:actor
|
|
# is_close_or_extended_family_of = scope:actor
|
|
}
|
|
}
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
# Demand an artifact you have a claim on
|
|
demand_dynasty_banner_interaction = {
|
|
icon = icon_dynasty
|
|
category = interaction_category_diplomacy
|
|
common_interaction = yes
|
|
interface_priority = 60
|
|
use_diplomatic_range = yes
|
|
desc = demand_dynasty_banner_interaction_desc
|
|
|
|
target_type = artifact
|
|
target_filter = recipient_artifacts
|
|
|
|
greeting = negative
|
|
notification_text = DEMAND_ARTIFACT_PROPOSAL
|
|
|
|
answer_accept_key = DEMAND_ARTIFACT_ACCEPT
|
|
answer_reject_key = DEMAND_ARTIFACT_REJECT
|
|
|
|
ai_targets = {
|
|
ai_recipients = scripted_relations
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = liege
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = neighboring_rulers
|
|
ai_recipients = peer_vassals
|
|
ai_recipients = nearby_domicile_owners
|
|
max = 10
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = vassals
|
|
max = 10
|
|
}
|
|
ai_targets = {
|
|
ai_recipients = family
|
|
max = 10
|
|
}
|
|
ai_target_quick_trigger = {
|
|
adult = yes
|
|
}
|
|
ai_frequency = 60
|
|
|
|
is_shown = {
|
|
NOT = {
|
|
scope:recipient = scope:actor
|
|
}
|
|
NOT = { #Landless have no court in which to display such a banner, and no real authority over a landed relative
|
|
scope:actor = { government_has_flag = government_is_landless_adventurer }
|
|
}
|
|
exists = scope:actor.dynasty
|
|
exists = scope:recipient.dynasty
|
|
scope:recipient.dynasty = scope:actor.dynasty
|
|
scope:recipient = {
|
|
# needs to have a banner of our dynasty
|
|
any_character_artifact = {
|
|
AND = {
|
|
exists = var:banner_dynasty
|
|
var:banner_dynasty = scope:recipient.dynasty
|
|
var:banner_dynasty.dynast = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
is_highlighted = {
|
|
always = yes
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
|
|
scope:recipient = { is_busy_in_events_localised = yes }
|
|
|
|
scope:actor = {
|
|
NOT = {
|
|
is_at_war_with = scope:recipient
|
|
}
|
|
is_imprisoned = no
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:target }
|
|
custom_description = {
|
|
text = "demand_dynasty_banner_artifact_tt"
|
|
exists = scope:target.var:banner_dynasty
|
|
scope:target.var:banner_dynasty = scope:recipient.dynasty
|
|
scope:actor = scope:target.var:banner_dynasty.dynast
|
|
}
|
|
}
|
|
}
|
|
|
|
on_accept = {
|
|
scope:target = {
|
|
save_scope_as = demanded_artifact
|
|
}
|
|
if = {
|
|
limit = {
|
|
exists = scope:demanded_artifact
|
|
}
|
|
scope:actor = {
|
|
set_variable = {
|
|
name = demanded_this_artifact_interaction_recently
|
|
value = scope:demanded_artifact
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = demand_artifact_interaction_notification
|
|
left_icon = scope:recipient
|
|
right_icon = scope:target
|
|
scope:target = {
|
|
set_owner = scope:actor
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
is_ai = yes
|
|
}
|
|
}
|
|
scope:actor = {
|
|
add_opinion = {
|
|
target = scope:recipient
|
|
modifier = pleased_opinion
|
|
opinion = 30
|
|
}
|
|
}
|
|
}
|
|
|
|
# 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_received_banner.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
scope:target = {
|
|
save_scope_as = demanded_artifact
|
|
}
|
|
if = {
|
|
limit = {
|
|
exists = scope:demanded_artifact
|
|
}
|
|
scope:actor = {
|
|
set_variable = {
|
|
name = demanded_this_artifact_interaction_recently
|
|
value = scope:demanded_artifact
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = demand_artifact_interaction_notification
|
|
left_icon = scope:recipient
|
|
right_icon = scope:target
|
|
custom_tooltip = demand_artifact_interaction_notification_refused
|
|
|
|
scope:recipient = {
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = insult_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
is_ai = yes
|
|
}
|
|
}
|
|
scope:actor = {
|
|
add_opinion = {
|
|
target = scope:recipient
|
|
modifier = refusal_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
}
|
|
|
|
# If we're a clan this interaction affects unity
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = scope:actor
|
|
TARGET = scope:recipient
|
|
VALUE = minor_unity_loss
|
|
DESC = clan_unity_refused_banner.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
}
|
|
|
|
auto_accept = {
|
|
custom_description = {
|
|
text = "spending_hook"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:hook = yes
|
|
scope:actor = { has_strong_hook = scope:recipient }
|
|
}
|
|
}
|
|
|
|
send_option = {
|
|
is_shown = {
|
|
NOT = { scope:actor = scope:recipient }
|
|
}
|
|
is_valid = {
|
|
scope:actor = {
|
|
has_usable_hook = scope:recipient
|
|
}
|
|
}
|
|
flag = hook
|
|
localization = GENERIC_SPEND_A_HOOK
|
|
}
|
|
should_use_extra_icon = {
|
|
scope:actor = { has_usable_hook = scope:recipient }
|
|
}
|
|
extra_icon = "gfx/interface/icons/character_interactions/hook_icon.dds"
|
|
|
|
send_options_exclusive = no
|
|
|
|
ai_accept = {
|
|
base = 100
|
|
modifier = {
|
|
add = 70
|
|
scope:actor.max_military_strength > scope:recipient.max_military_strength
|
|
desc = ARTIFACT_MILITARY_STRONGER_REASON
|
|
}
|
|
modifier = {
|
|
add = -70
|
|
scope:actor.max_military_strength < scope:recipient.max_military_strength
|
|
desc = ARTIFACT_MILITARY_WEAKER_REASON
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = ai_boldness
|
|
multiply = -1
|
|
divide = 2
|
|
}
|
|
NOT = { ai_boldness = 0 }
|
|
desc = ARTIFACT_BOLDNESS_REASON
|
|
}
|
|
modifier = {
|
|
add = -50
|
|
scope:actor = {
|
|
has_relation_rival = scope:recipient
|
|
}
|
|
desc = ARTIFACT_RIVAL_REASON
|
|
}
|
|
modifier = {
|
|
add = -80
|
|
scope:actor = {
|
|
has_relation_nemesis = scope:recipient
|
|
}
|
|
desc = ARTIFACT_NEMESIS_REASON
|
|
}
|
|
modifier = {
|
|
add = 50
|
|
scope:recipient = {
|
|
target_is_liege_or_above = scope:actor
|
|
}
|
|
desc = ARTIFACT_LIEGE_REASON
|
|
}
|
|
modifier = {
|
|
scope:hook = yes
|
|
add = 100
|
|
desc = SCHEME_WEAK_HOOK_USED
|
|
}
|
|
# Unity modifiers
|
|
evaluate_action_increasing_house_unity = {
|
|
VALUE = 100
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
is_adult = yes
|
|
is_at_war = no
|
|
ai_greed >= low_negative_ai_value
|
|
has_outstanding_artifact_claims = yes
|
|
}
|
|
|
|
|
|
|
|
ai_min_reply_days = 7
|
|
ai_max_reply_days = 14
|
|
|
|
ai_will_do = {
|
|
base = 100
|
|
|
|
modifier = { # The AI will only use a Hook if they couldn't otherwise do this
|
|
scope:hook = yes
|
|
add = -1
|
|
}
|
|
|
|
modifier = {
|
|
add = 50
|
|
has_relation_rival = scope:recipient
|
|
}
|
|
modifier = {
|
|
add = 80
|
|
has_relation_nemesis = scope:recipient
|
|
}
|
|
modifier = {
|
|
add = 50
|
|
target_is_liege_or_above = scope:recipient
|
|
}
|
|
modifier = { # An Intimidated character is very unlikely to raise their hand
|
|
add = -25
|
|
scope:actor = {
|
|
has_dread_level_towards = {
|
|
target = scope:recipient
|
|
level = 1
|
|
}
|
|
}
|
|
}
|
|
# Unity modifiers
|
|
evaluate_action_increasing_house_unity = {
|
|
VALUE = 100
|
|
}
|
|
modifier = { # A Cowed character will never take this interaction
|
|
factor = 0
|
|
scope:actor = {
|
|
has_dread_level_towards = {
|
|
target = scope:recipient
|
|
level = 2
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_relation_friend = scope:actor
|
|
has_relation_lover = scope:actor
|
|
}
|
|
}
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
# Destroy Artifact
|
|
destroy_artifact_interaction = {
|
|
interface_priority = 30
|
|
common_interaction = yes
|
|
icon = artifact
|
|
category = interaction_category_friendly
|
|
desc = destroy_artifact_interaction_desc
|
|
icon = artifact
|
|
|
|
target_type = artifact
|
|
target_filter = actor_artifacts
|
|
|
|
ai_targets = {
|
|
ai_recipients = self
|
|
}
|
|
|
|
# You can only destroy your own artifacts
|
|
is_shown = {
|
|
scope:recipient = scope:actor
|
|
scope:actor = {
|
|
has_any_artifact = yes
|
|
}
|
|
}
|
|
|
|
can_be_picked_artifact = {
|
|
custom_tooltip = {
|
|
text = artifact_is_related_to_contract_tt
|
|
NOT = {
|
|
scope:target = { has_variable = 1025_treasure_map }
|
|
}
|
|
}
|
|
}
|
|
|
|
has_valid_target_showing_failures_only = {
|
|
trigger_if = {
|
|
limit = {
|
|
NOT = {
|
|
scope:recipient.faith = { has_doctrine_parameter = destroying_artifacts_is_pious }
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = artifact_is_rarer_than_masterwork_tt
|
|
OR = {
|
|
scope:target = { rarity = common }
|
|
scope:target = { rarity = masterwork }
|
|
}
|
|
}
|
|
}
|
|
trigger_if = {
|
|
limit = {
|
|
NOR = {
|
|
scope:target = { rarity = common }
|
|
scope:target = { rarity = masterwork }
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = destroying_artifacts_is_not_pious_tt
|
|
scope:recipient.faith = { has_doctrine_parameter = destroying_artifacts_is_pious }
|
|
}
|
|
}
|
|
scope:actor = {
|
|
trigger_if = {
|
|
limit = { is_landless_adventurer = yes }
|
|
employs_court_position = armorer_camp_officer
|
|
}
|
|
}
|
|
}
|
|
|
|
on_accept = {
|
|
destroy_artifact_aniconist_effect = {
|
|
ARTIFACT = scope:target
|
|
DESTROYER = scope:actor
|
|
GIVE_GOLD = yes
|
|
PIETY_BY_DEFAULT = no
|
|
}
|
|
}
|
|
|
|
ai_frequency = 24
|
|
|
|
ai_potential = {
|
|
OR = {
|
|
faith = { # Aniconists will always want to destroy artifacts
|
|
has_doctrine_parameter = destroying_artifacts_is_pious
|
|
}
|
|
gold <= minor_gold_value # Poor rulers will consider getting rid of their trash for gold
|
|
AND = { # Economic boom personalities will bolster their treasury by getting rid of trash more often
|
|
gold <= medium_gold_value
|
|
ai_has_economical_boom_personality = yes
|
|
}
|
|
any_character_artifact = { # All rulers want to get rid of actively detrimental trash
|
|
has_variable = unwanted_artifact
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 0
|
|
modifier = { # Rulers will always destroy unwanted artifacts
|
|
add = 100
|
|
scope:target = {
|
|
has_variable = unwanted_artifact
|
|
}
|
|
}
|
|
modifier = { # Rulers will consider destroying trash artifacts if they're poor
|
|
add = 100
|
|
scope:target = {
|
|
has_variable = ai_to_ai_destroy_in_sieges
|
|
}
|
|
}
|
|
modifier = { # AI rulers will destroy common unequipped artifacts if money is low
|
|
add = 100
|
|
OR = {
|
|
gold <= minor_gold_value # Poor rulers will consider getting rid of their trash for gold
|
|
AND = { # Economic boom personalities will bolster their treasury by getting rid of trash more often
|
|
gold <= medium_gold_value
|
|
ai_has_economical_boom_personality = yes
|
|
}
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
is_equipped = no
|
|
}
|
|
}
|
|
modifier = { # AI rulers will destroy all unequipped artifacts to get out of debt
|
|
add = 100
|
|
gold <= 0
|
|
scope:target = {
|
|
is_equipped = no
|
|
}
|
|
}
|
|
modifier = { # Common artifact trinkets on their last legs can be considered for destruction if money is low
|
|
add = 100
|
|
OR = {
|
|
gold <= minor_gold_value # Poor rulers will consider getting rid of their trash for gold
|
|
AND = { # Economic boom personalities will bolster their treasury by getting rid of trash more often
|
|
gold <= medium_gold_value
|
|
ai_has_economical_boom_personality = yes
|
|
}
|
|
}
|
|
scope:target = {
|
|
rarity = common
|
|
artifact_slot_type = miscellaneous
|
|
artifact_durability <= define:NInventory|ARTIFACT_LOW_DURABILITY
|
|
}
|
|
}
|
|
modifier = { # Aniconists destroy most things
|
|
add = 100
|
|
faith = {
|
|
has_doctrine_parameter = destroying_artifacts_is_pious
|
|
}
|
|
OR = { # This errors in the ai_potential so it's been moved here
|
|
has_trait = zealous
|
|
scope:target = { is_equipped = no }
|
|
scope:target = { exists = var:relic }
|
|
}
|
|
# The logic below relies on the idea that they have the destroying_artifacts_is_pious doctrine parameter. If the restrictions are loosened, these triggers should be updated
|
|
NOR = {
|
|
has_trait = cynical
|
|
AND = {
|
|
has_trait = greedy
|
|
NOT = { has_trait = zealous }
|
|
}
|
|
}
|
|
OR = {
|
|
has_trait = zealous # Destroy all the artifacts
|
|
any_character_artifact = {
|
|
is_equipped = no
|
|
}
|
|
any_character_artifact = {
|
|
exists = var:relic
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|