672 lines
15 KiB
Text
672 lines
15 KiB
Text
steal_artifact_in_siege_effect = {
|
|
if = {
|
|
limit = { NOT = { has_variable = artifact_prevent_transfer } }
|
|
# Save scopes for localization
|
|
$LOCATION$ = { save_scope_as = SAISE_location }
|
|
$ATTACKER$ = { save_scope_as = SAISE_attacker }
|
|
$DEFENDER$ = { save_scope_as = SAISE_defender }
|
|
$ARTIFACT$ = { save_scope_as = this_artifact }
|
|
|
|
scope:this_artifact = {
|
|
# Suppress generic notifications, as we will send custom ones
|
|
set_variable = {
|
|
name = suppress_artifact_notifications
|
|
value = yes
|
|
days = 1
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { has_variable = stolen_artifact }
|
|
}
|
|
set_variable = {
|
|
name = stolen_artifact
|
|
value = 1
|
|
}
|
|
}
|
|
else = {
|
|
change_variable = {
|
|
name = stolen_artifact
|
|
add = 1
|
|
}
|
|
}
|
|
|
|
# Transfer the artifact to its new owner
|
|
if = {
|
|
limit = {
|
|
has_variable = ai_to_ai_destroy_in_sieges
|
|
scope:SAISE_attacker = {
|
|
is_ai = yes
|
|
}
|
|
scope:SAISE_defender = {
|
|
is_ai = yes
|
|
}
|
|
}
|
|
destroy_artifact = this
|
|
}
|
|
else = {
|
|
set_owner = {
|
|
target = scope:SAISE_attacker
|
|
history = {
|
|
location = scope:SAISE_location
|
|
actor = scope:SAISE_defender
|
|
recipient = scope:SAISE_attacker
|
|
type = taken_in_siege
|
|
}
|
|
}
|
|
scope:SAISE_defender = { add_personal_artifact_claim = scope:this_artifact }
|
|
if = {
|
|
limit = {
|
|
scope:SAISE_attacker = {
|
|
has_ep3_dlc_trigger = yes
|
|
is_roman_emperor_trigger = yes
|
|
culture = { has_cultural_parameter = holds_triumphs }
|
|
}
|
|
}
|
|
scope:SAISE_attacker = {
|
|
set_variable = {
|
|
name = byz_valid_for_trophy
|
|
value = scope:this_artifact
|
|
years = 9
|
|
}
|
|
}
|
|
}
|
|
|
|
# Send notifications to the relevant parties
|
|
scope:SAISE_defender = {
|
|
send_interface_toast = {
|
|
type = msg_artifact_lost
|
|
title = artifact_lost_toast
|
|
left_icon = scope:this_artifact
|
|
right_icon = scope:SAISE_attacker
|
|
if = {
|
|
limit = { $IS_RAID$ = yes }
|
|
custom_tooltip = artifact_lost_in_raid
|
|
}
|
|
else = {
|
|
custom_tooltip = artifact_lost_in_siege
|
|
}
|
|
}
|
|
}
|
|
scope:SAISE_attacker = {
|
|
send_interface_toast = {
|
|
type = msg_artifact_gained
|
|
right_icon = scope:this_artifact
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { any_claimed_artifact = { this = scope:this_artifact } }
|
|
}
|
|
scope:this_artifact = {
|
|
set_variable = {
|
|
name = last_person_to_steal
|
|
value = scope:SAISE_attacker
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
steal_artifact_in_event_effect = {
|
|
if = {
|
|
limit = { exists = $VICTIM$.capital_province }
|
|
set_local_variable = {
|
|
name = location
|
|
value = $VICTIM$.capital_province
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { exists = $VICTIM$.location }
|
|
set_local_variable = {
|
|
name = location
|
|
value = $VICTIM$.location
|
|
}
|
|
}
|
|
|
|
$ARTIFACT$ = {
|
|
save_scope_as = artifact_to_steal
|
|
hidden_effect = {
|
|
if = {
|
|
limit = {
|
|
exists = local_var:location
|
|
}
|
|
set_owner = {
|
|
target = $THIEF$
|
|
history = {
|
|
type = stolen
|
|
actor = $VICTIM$ #stolen from
|
|
recipient = $THIEF$ #stealer
|
|
location = local_var:location
|
|
}
|
|
}
|
|
}
|
|
else = { #If no location exists it is "conquered"
|
|
set_owner = {
|
|
target = $THIEF$
|
|
history = {
|
|
type = conquest
|
|
actor = $THIEF$ #stealer
|
|
recipient = $VICTIM$ #stolen from
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { has_variable = stolen_artifact }
|
|
}
|
|
set_variable = {
|
|
name = stolen_artifact
|
|
value = 1
|
|
}
|
|
}
|
|
else = {
|
|
change_variable = {
|
|
name = stolen_artifact
|
|
add = 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$VICTIM$ = {
|
|
add_personal_artifact_claim = scope:artifact_to_steal
|
|
}
|
|
}
|
|
|
|
damage_artifact_in_battle_effect = {
|
|
# Save scopes for localization
|
|
$OWNER$ = {
|
|
save_scope_as = DAIBE_owner
|
|
}
|
|
$OPPONENT$ = { save_scope_as = DAIBE_opponent }
|
|
$LOCATION$ = { save_scope_as = DAIBE_location }
|
|
$ARTIFACT$ = {
|
|
save_scope_as = DAIBE_artifact
|
|
|
|
# Suppress generic notifications, as we will send custom ones
|
|
set_variable = {
|
|
name = suppress_artifact_notifications
|
|
value = yes
|
|
days = 1
|
|
}
|
|
|
|
set_variable = {
|
|
name = DAIBE_damage
|
|
value = $DURABILITY_LOSS$
|
|
days = 1
|
|
}
|
|
|
|
# Damage the artifact by the specified amount
|
|
add_durability = {
|
|
value = 0
|
|
subtract = var:DAIBE_damage
|
|
}
|
|
}
|
|
|
|
# Transformed into an if / else as I found the following note somewhere else:
|
|
# NOTE: We must not run ANY script after we destroy an artifact, or we will cause errors
|
|
if = {
|
|
# If the artifact has no durability left, destroy it now.
|
|
limit = { scope:DAIBE_artifact.artifact_durability <= 0 }
|
|
destroy_artifact = scope:DAIBE_artifact
|
|
}
|
|
# Send notifications to the relevant party IF the artifact was not destroyed
|
|
else = {
|
|
$OWNER$ = {
|
|
# Send the toast
|
|
send_interface_toast = {
|
|
title = artifact_damaged_toast
|
|
left_icon = scope:DAIBE_artifact
|
|
right_icon = scope:DAIBE_opponent
|
|
if = {
|
|
limit = {
|
|
$IS_DUEL$ = yes
|
|
}
|
|
custom_tooltip = artifact_damaged_in_duel
|
|
}
|
|
else = {
|
|
custom_tooltip = artifact_damaged_in_siege
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
flag_as_trash_artifact = {
|
|
set_variable = {
|
|
name = ai_to_ai_destroy_in_sieges
|
|
value = yes
|
|
}
|
|
}
|
|
|
|
flag_as_unwanted_artifact = {
|
|
set_variable = {
|
|
name = unwanted_artifact
|
|
value = yes
|
|
}
|
|
}
|
|
|
|
flag_as_cursed_artifact = {
|
|
set_variable = {
|
|
name = cursed_artifact
|
|
value = yes
|
|
}
|
|
}
|
|
|
|
#For use with trinket looks / call this effect (set_up_trinket_adjective_effect = yes) in the line before creating the trinket
|
|
#Use this in the trinket's name/description in the loc-file [ROOT.Char.Custom('TrinketLookAdjective')] /and/ [ROOT.Char.Custom('TrinketLookAdverbFollowup')]
|
|
#Remember to clear the var:trinket_adjective_followup in your after = { ... }
|
|
set_up_trinket_adjective_effect = {
|
|
random_list = {
|
|
50 = {
|
|
set_variable = {
|
|
name = trinket_adjective_followup
|
|
value = flag:adorned
|
|
}
|
|
}
|
|
50 = {
|
|
set_variable = {
|
|
name = trinket_adjective_followup
|
|
value = flag:decorated
|
|
}
|
|
}
|
|
50 = {
|
|
set_variable = {
|
|
name = trinket_adjective_followup
|
|
value = flag:embellished
|
|
}
|
|
}
|
|
50 = {
|
|
set_variable = {
|
|
name = trinket_adjective_followup
|
|
value = flag:ornamented
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
# Grant claims on familial banners
|
|
grant_banner_house_claim_effect = {
|
|
save_scope_as = familial_banner
|
|
hidden_effect = {
|
|
if = { # Dynasty banner not owned or claimed by all child house's already
|
|
limit = {
|
|
exists = var:banner_dynasty
|
|
var:banner_dynasty = {
|
|
any_dynasty_member = {
|
|
this = house.house_head
|
|
house = { artifact_house_not_owns_or_claims_trigger = yes } # House not owns or claims already
|
|
}
|
|
}
|
|
}
|
|
var:banner_dynasty = {
|
|
every_dynasty_member = {
|
|
limit = {
|
|
this = house.house_head
|
|
house = { artifact_house_not_owns_or_claims_trigger = yes } # House not owns or claims already
|
|
}
|
|
house = { add_house_artifact_claim = scope:familial_banner }
|
|
}
|
|
}
|
|
}
|
|
else_if = { # House banner not owned or claimed by creating house already
|
|
limit = {
|
|
exists = var:banner_house
|
|
var:banner_house = { artifact_house_not_owns_or_claims_trigger = yes } # House not owns or claims already
|
|
}
|
|
var:banner_house = { add_house_artifact_claim = scope:familial_banner }
|
|
}
|
|
}
|
|
}
|
|
|
|
#Determine what type of artifact a court artifact is, for defacement
|
|
determine_artifact_damage_type_effect = {
|
|
$ARTIFACT$ = { save_scope_as = artifact_to_determine }
|
|
scope:artifact_to_determine = {
|
|
random_list = {
|
|
10 = {
|
|
trigger = {
|
|
OR = {
|
|
artifact_type = chest
|
|
artifact_type = box
|
|
artifact_type = cabinet
|
|
artifact_type = pedestal
|
|
artifact_type = tapestry
|
|
artifact_type = animal_hide
|
|
artifact_type = animal_hide_big
|
|
artifact_type = wall_big
|
|
artifact_type = wall_shield
|
|
artifact_type = throne
|
|
artifact_type = throne_special
|
|
artifact_type = book
|
|
}
|
|
}
|
|
set_variable = artifact_burned
|
|
}
|
|
10 = {
|
|
trigger = {
|
|
OR = {
|
|
artifact_type = sculpture
|
|
artifact_type = box
|
|
artifact_type = goblet
|
|
artifact_type = pedestal
|
|
artifact_type = book
|
|
artifact_type = elixir
|
|
artifact_type = panacea
|
|
artifact_type = philosophers_stone
|
|
}
|
|
}
|
|
set_variable = artifact_knocked_over
|
|
}
|
|
10 = {
|
|
trigger = {
|
|
OR = {
|
|
artifact_type = sculpture
|
|
artifact_type = chest
|
|
artifact_type = box
|
|
artifact_type = cabinet
|
|
artifact_type = goblet
|
|
artifact_type = pedestal
|
|
artifact_type = tapestry #cloth
|
|
artifact_type = animal_skull
|
|
artifact_type = animal_hide
|
|
artifact_type = animal_hide_big
|
|
artifact_type = wall_big #shields, banners
|
|
artifact_type = wall_small #animal trophy
|
|
artifact_type = wall_shield
|
|
artifact_type = wall_shield_special #kite shields
|
|
artifact_type = throne
|
|
artifact_type = throne_special
|
|
artifact_type = book
|
|
artifact_type = elixir
|
|
artifact_type = panacea
|
|
artifact_type = philosophers_stone #box
|
|
}
|
|
}
|
|
set_variable = artifact_smeared_food
|
|
}
|
|
10 = {
|
|
trigger = {
|
|
OR = {
|
|
artifact_type = chest
|
|
artifact_type = box
|
|
artifact_type = cabinet
|
|
artifact_type = pedestal
|
|
artifact_type = tapestry
|
|
artifact_type = animal_hide
|
|
artifact_type = animal_hide_big
|
|
artifact_type = wall_big
|
|
artifact_type = wall_small
|
|
artifact_type = throne
|
|
artifact_type = throne_special
|
|
artifact_type = book
|
|
}
|
|
}
|
|
set_variable = artifact_spilled_drink
|
|
}
|
|
10 = {
|
|
trigger = {
|
|
OR = {
|
|
artifact_type = tapestry
|
|
artifact_type = animal_hide
|
|
artifact_type = animal_hide_big
|
|
artifact_type = book
|
|
}
|
|
}
|
|
set_variable = artifact_tear
|
|
}
|
|
10 = {
|
|
trigger = {
|
|
OR = {
|
|
artifact_type = tapestry
|
|
artifact_type = animal_skull
|
|
artifact_type = animal_hide
|
|
artifact_type = animal_hide_big
|
|
artifact_type = wall_big
|
|
artifact_type = wall_small
|
|
artifact_type = wall_shield
|
|
artifact_type = wall_shield_special
|
|
}
|
|
}
|
|
set_variable = artifact_tear_down
|
|
}
|
|
10 = {
|
|
trigger = {
|
|
OR = {
|
|
artifact_type = chest
|
|
artifact_type = box
|
|
artifact_type = pedestal
|
|
artifact_type = tapestry
|
|
artifact_type = animal_hide
|
|
artifact_type = animal_hide_big
|
|
artifact_type = wall_big
|
|
artifact_type = wall_small
|
|
artifact_type = wall_shield
|
|
artifact_type = wall_shield_special
|
|
artifact_type = throne
|
|
artifact_type = throne_special
|
|
artifact_type = book
|
|
}
|
|
}
|
|
set_variable = artifact_threw_up
|
|
}
|
|
10 = {
|
|
trigger = {
|
|
OR = {
|
|
artifact_type = sculpture
|
|
artifact_type = chest
|
|
artifact_type = box
|
|
artifact_type = cabinet
|
|
artifact_type = goblet
|
|
artifact_type = pedestal
|
|
artifact_type = tapestry #cloth
|
|
artifact_type = animal_skull
|
|
artifact_type = animal_hide
|
|
artifact_type = animal_hide_big
|
|
artifact_type = wall_big #shields, banners
|
|
artifact_type = wall_small #animal trophy
|
|
artifact_type = wall_shield
|
|
artifact_type = wall_shield_special #kite shields
|
|
artifact_type = throne
|
|
artifact_type = throne_special
|
|
artifact_type = book
|
|
artifact_type = elixir
|
|
artifact_type = panacea
|
|
artifact_type = philosophers_stone #box
|
|
}
|
|
}
|
|
set_variable = artifact_unspeakable
|
|
}
|
|
10 = {
|
|
trigger = {
|
|
NOR = {
|
|
artifact_type = sculpture
|
|
artifact_type = chest
|
|
artifact_type = box
|
|
artifact_type = cabinet
|
|
artifact_type = goblet
|
|
artifact_type = pedestal
|
|
artifact_type = tapestry #cloth
|
|
artifact_type = animal_skull
|
|
artifact_type = animal_hide
|
|
artifact_type = animal_hide_big
|
|
artifact_type = wall_big #shields, banners
|
|
artifact_type = wall_small #animal trophy
|
|
artifact_type = wall_shield
|
|
artifact_type = wall_shield_special #kite shields
|
|
artifact_type = throne
|
|
artifact_type = throne_special
|
|
artifact_type = book
|
|
artifact_type = elixir
|
|
artifact_type = panacea
|
|
artifact_type = philosophers_stone #box
|
|
}
|
|
}
|
|
set_variable = artifact_damage_fallback
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Destroy Artifact effect
|
|
# DESTROYER = Character destroying the artifact
|
|
# ARTIFACT = The artifact to destroy
|
|
destroy_artifact_aniconist_effect = {
|
|
$ARTIFACT$ = {
|
|
save_temporary_scope_as = artifact
|
|
}
|
|
|
|
$DESTROYER$ = {
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
$DESTROYER$.faith = { has_doctrine_parameter = destroying_artifacts_is_pious }
|
|
$PIETY_BY_DEFAULT$ = yes
|
|
}
|
|
}
|
|
give_destroyed_artifact_piety = yes
|
|
}
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
$DESTROYER$.faith = { has_doctrine_parameter = destroying_artifacts_costs_piety }
|
|
$PIETY_BY_DEFAULT$ = yes
|
|
}
|
|
}
|
|
add_piety = medium_piety_loss
|
|
}
|
|
if = {
|
|
limit = {
|
|
$GIVE_GOLD$ = yes
|
|
}
|
|
add_gold = {
|
|
if = {
|
|
limit = {
|
|
scope:artifact = { rarity = illustrious }
|
|
}
|
|
add = {
|
|
value = 25
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:artifact = { rarity = famed }
|
|
}
|
|
add = {
|
|
value = 15
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:artifact = { rarity = masterwork }
|
|
}
|
|
add = {
|
|
value = 8
|
|
}
|
|
}
|
|
else = {
|
|
add = {
|
|
value = 4
|
|
}
|
|
}
|
|
|
|
# Boost the value up to something meaningful
|
|
multiply = {
|
|
value = 10
|
|
}
|
|
|
|
# multiply by durability percentage
|
|
multiply = {
|
|
add = scope:artifact.artifact_durability
|
|
divide = scope:artifact.artifact_max_durability
|
|
divide = 2
|
|
add = 0.5
|
|
}
|
|
|
|
#Nerf it to bits for LAAMPs
|
|
if = {
|
|
limit = {
|
|
$DESTROYER$ = { has_government = landless_adventurer_government }
|
|
}
|
|
multiply = {
|
|
value = 0.1
|
|
round = yes
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
exists = scope:artifact.var:ai_to_ai_destroy_in_sieges # Trash artifact
|
|
}
|
|
max = {
|
|
value = $DESTROYER$.tiny_gold_value
|
|
multiply = 0.5
|
|
}
|
|
}
|
|
|
|
min = 1
|
|
}
|
|
}
|
|
destroy_owned_artifact = scope:artifact
|
|
}
|
|
}
|
|
|
|
give_destroyed_artifact_piety = {
|
|
add_piety = {
|
|
# Base value
|
|
value = 5
|
|
# Add the artifact's quality
|
|
if = {
|
|
limit = { exists = scope:artifact.var:quality }
|
|
add = scope:artifact.var:quality
|
|
}
|
|
# If none can be found, add its wealth
|
|
else_if = {
|
|
limit = { exists = scope:artifact.var:wealth }
|
|
add = scope:artifact.var:wealth
|
|
}
|
|
# Artifact has no quality or wealth (typical for court artifacts), add something based on rarity
|
|
else_if = {
|
|
limit = {
|
|
scope:artifact = { rarity = illustrious }
|
|
}
|
|
add = {
|
|
value = 20
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:artifact = { rarity = famed }
|
|
}
|
|
add = {
|
|
value = 12
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:artifact = { rarity = masterwork }
|
|
}
|
|
add = {
|
|
value = 8
|
|
}
|
|
}
|
|
else = {
|
|
add = {
|
|
value = 4
|
|
}
|
|
}
|
|
# Boost the value up to something meaningful
|
|
multiply = 20
|
|
# Relics are way cooler to burn, double the final value
|
|
if = {
|
|
limit = {
|
|
scope:artifact = { exists = var:relic }
|
|
}
|
|
multiply = {
|
|
value = 2
|
|
desc = aniconist_destroying_relic
|
|
}
|
|
}
|
|
}
|
|
}
|