Scripted effect · Khans of the Steppe files
migration_message_effect
migration_message_effect = yesgame/common/scripted_effects/09_dlc_mpo_scripted_effects.txt, line 337 (122 lines). No parameters.
migration_message_effect is a scripted effect in Crusader Kings III, in the Khans of the Steppe files, written at line 337 of its file. It takes no parameters: migration_message_effect = yes. The game's script calls it in 1 place, among them migration_title_and_vassal_change_effect (scripted effect). Patch 1.20.1.2, from game/common/scripted_effects/09_dlc_mpo_scripted_effects.txt.
What it does
- If a Tributary:
suzerain = { … }
- Else, if is not an Independent Ruler:
clear_saved_scope = top_liege_temp
clear_saved_scope = old_holder
• the game's own tooltip text · ◦ our reading of the script line · code the script where neither exists
“They” is whatever it runs on (the scope it is called in). The scripted triggers and effects it calls link to their own pages; $PARAMETERS$ stay as written: each call fills them in.
The script as written (120 lines of game script)
migration_message_effect = {
save_scope_as = old_holder
every_neighboring_top_liege_realm_owner = { add_to_temporary_list = old_holder_neighbours }
# Messages for Self
send_interface_message = {
type = msg_migration_into_realm
title = msg_migration_into_realm_title
desc = msg_migration_into_realm_desc
left_icon = scope:actor
right_icon = scope:target_title
}
if = {
limit = { is_tributary = yes }
# Messages for Suzerains and fellow Tributaries
suzerain = {
save_temporary_scope_as = suzerain_temp
add_to_temporary_list = old_holder_suzerain # for debugging
send_interface_message = {
type = msg_migration_into_realm
title = msg_migration_into_realm_tributary_title
desc = msg_migration_into_realm_tributary_desc
left_icon = scope:actor
right_icon = scope:old_holder
}
every_player = {
limit = {
is_tributary_of = scope:suzerain_temp
NOT = { this = scope:old_holder } # Self
}
send_interface_message = {
type = msg_migration_into_realm
title = msg_migration_into_realm_fellow_tributary_title
desc = msg_migration_into_realm_fellow_tributary_desc
left_icon = scope:actor
right_icon = scope:old_holder
}
}
clear_saved_scope = suzerain_temp
}
}
else_if = {
limit = { is_independent_ruler = no }
# Messages for Lieges and fellow Vassals
top_liege = {
save_temporary_scope_as = top_liege_temp
add_to_temporary_list = old_holder_top_liege # for debugging
send_interface_message = {
type = msg_migration_into_realm
title = msg_migration_into_realm_vassal_title
desc = msg_migration_into_realm_vassal_desc
left_icon = scope:actor
right_icon = scope:old_holder
}
every_player = {
limit = {
is_vassal_of = scope:top_liege_temp
NOT = { this = scope:old_holder } # Self
}
send_interface_message = {
type = msg_migration_into_realm
title = msg_migration_into_realm_fellow_vassal_title
desc = msg_migration_into_realm_fellow_vassal_desc
left_icon = scope:actor
right_icon = scope:old_holder
}
}
}
clear_saved_scope = top_liege_temp
}
# Messages for Vassals
every_player = {
limit = { is_vassal_of = scope:old_holder }
send_interface_message = {
type = msg_migration_into_realm
title = msg_migration_into_liege_title
desc = msg_migration_into_liege_desc
left_icon = scope:actor
right_icon = scope:old_holder
}
}
# Messages for Tributaries
every_player = {
limit = { is_tributary_of = scope:old_holder }
send_interface_message = {
type = msg_migration_into_realm
title = msg_migration_into_suzerain_title
desc = msg_migration_into_suzerain_desc
left_icon = scope:actor
right_icon = scope:old_holder
}
}
# Messages for Neighbours
every_player = {
limit = {
is_in_list = old_holder_neighbours
NOR = { # Exclude all those who have already had a message
this = scope:actor
is_in_list = old_holder # Self
is_in_list = old_holder_suzerain # Suzerains
suzerain = { is_in_list = old_holder_suzerain } # Fellow Tributaries
is_in_list = old_holder_top_liege # Lieges
top_liege = { is_in_list = old_holder_top_liege } # Fellow Vassals
is_vassal_of = scope:old_holder # Vassals
is_tributary_of = scope:old_holder # Tributaries
var:migration_neighbour_cooldown ?= scope:actor # Avoid duplicates
}
}
set_variable = {
name = migration_neighbour_cooldown
value = scope:actor
days = 1
}
send_interface_message = {
type = msg_migration_into_neighbour
title = msg_migration_into_neighbour_title
desc = msg_migration_into_neighbour_desc
left_icon = scope:actor
right_icon = scope:old_holder.top_liege
}
}As written in game/common/scripted_effects/09_dlc_mpo_scripted_effects.txt.
The first 120 of its 122 lines; the rest is in game/common/scripted_effects/09_dlc_mpo_scripted_effects.txt from line 337.
Where it is used
Every place in common/, events/ and history/ that calls migration_message_effect.
Scripted effects (1)
Source: game/common/scripted_effects/09_dlc_mpo_scripted_effects.txt and every file of common/, events/ and history/ that calls it, Crusader Kings III 1.20.1.2.