1use std::sync::LazyLock;
2
3use crate::ck3::effect_validation::*;
4use crate::ck3::tables::misc::{LEGEND_QUALITY, OUTBREAK_INTENSITIES};
5use crate::effect::Effect;
6use crate::effect_validation::*;
7use crate::everything::Everything;
8use crate::helpers::TigerHashMap;
9use crate::item::Item;
10use crate::scopes::Scopes;
11use crate::token::Token;
12
13use Effect::*;
14
15pub fn scope_effect(name: &Token, data: &Everything) -> Option<(Scopes, Effect)> {
16 let name_lc = name.as_str().to_ascii_lowercase();
17
18 if let result @ Some(_) = SCOPE_EFFECT_MAP.get(&*name_lc).copied() {
19 return result;
20 }
21
22 if let Some(x) = name_lc.strip_suffix("_perk_points") {
23 if let Some(lifestyle) = x.strip_prefix("add_") {
24 data.verify_exists_implied(Item::Lifestyle, lifestyle, name);
25 return Some((Scopes::Character, Effect::ScriptValue));
26 }
27 }
28 if let Some(x) = name_lc.strip_suffix("_xp") {
29 if let Some(lifestyle) = x.strip_prefix("add_") {
30 data.verify_exists_implied(Item::Lifestyle, lifestyle, name);
31 return Some((Scopes::Character, Effect::ScriptValue));
32 }
33 }
34 if let Some(relation) = name_lc.strip_prefix("set_relation_") {
35 data.verify_exists_implied(Item::Relation, relation, name);
36 return Some((Scopes::Character, Vbv(validate_set_relation)));
37 }
38 if let Some(relation) = name_lc.strip_prefix("remove_relation_") {
39 data.verify_exists_implied(Item::Relation, relation, name);
40 return Some((Scopes::Character, Effect::Scope(Scopes::Character)));
41 }
42 std::option::Option::None
43}
44
45static SCOPE_EFFECT_MAP: LazyLock<TigerHashMap<&'static str, (Scopes, Effect)>> =
47 LazyLock::new(|| {
48 let mut hash = TigerHashMap::default();
49 for (from, s, effect) in SCOPE_EFFECT.iter().copied() {
50 hash.insert(s, (from, effect));
51 }
52 hash
53 });
54
55const SCOPE_EFFECT: &[(Scopes, &str, Effect)] = &[
58 (Scopes::TravelPlan, "abort_travel_plan", Boolean),
59 (Scopes::Character, "accept_activity_invite", Scope(Scopes::Activity)),
60 (Scopes::Character, "accept_activity_invite_without_travel", Scope(Scopes::Activity)),
61 (
62 Scopes::all(),
63 "accept_invitation_for_character",
64 Removed(
65 "1.9",
66 "replaced by `accept_activity_invite` or `accept_activity_invite_without_travel`",
67 ),
68 ),
69 (Scopes::Character, "accept_task_contract", Scope(Scopes::TaskContract)),
70 (Scopes::Accolade, "activate_accolade", Yes),
71 (Scopes::Faith, "activate_holy_site", Item(Item::HolySite)),
72 (Scopes::Struggle, "activate_struggle_catalyst", Vbv(validate_activate_struggle_catalyst)),
73 (Scopes::Activity, "add_activity_log_entry", Vbc(validate_add_activity_log_entry)),
74 (Scopes::Scheme, "add_agent_slot", Item(Item::AgentType)),
75 (Scopes::Character, "add_amenity_level", ItemValue("type", Item::Amenity)),
76 (Scopes::Domicile, "add_animate_domicile_building", Item(Item::DomicileBuilding)),
77 (Scopes::Artifact, "add_artifact_history", Vb(validate_add_artifact_history)),
78 (Scopes::Artifact, "add_artifact_modifier", Vv(validate_add_artifact_modifier)),
79 (Scopes::Artifact, "add_artifact_title_history", Vb(validate_add_artifact_title_history)),
80 (Scopes::War, "add_attacker", Scope(Scopes::Character)),
81 (Scopes::Character, "add_barter_goods", ScriptValue), (Scopes::Province, "add_building", Item(Item::Building)),
83 (
84 Scopes::all(),
85 "add_building_slot",
86 Removed("1.9", "replaced by the `extra_building_slot` modifier"),
87 ),
88 (Scopes::Character, "add_character_flag", Vbv(validate_add_character_flag)),
89 (Scopes::Character, "add_character_modifier", Vbv(validate_add_modifier)),
90 (Scopes::SituationSubRegion, "add_character_realm_to_sub_region", Scope(Scopes::Character)),
91 (Scopes::TravelPlan, "add_companion", Scope(Scopes::Character)),
92 (Scopes::Confederation, "add_confederation_member", Scope(Scopes::Character)),
93 (Scopes::Confederation, "add_confederation_member_house", Scope(Scopes::DynastyHouse)),
94 (Scopes::Character, "add_contact", Scope(Scopes::Character)),
95 (Scopes::LandedTitle, "add_county_modifier", Vbv(validate_add_modifier)),
96 (Scopes::Character, "add_courtier", Scope(Scopes::Character)),
97 (
98 Scopes::Culture,
99 "add_culture_tradition",
100 ScopeOrItem(Scopes::CultureTradition, Item::CultureTradition),
101 ),
102 (Scopes::Character, "add_dead_character_flag", Vb(validate_add_dead_character_flag)),
103 (Scopes::War, "add_defender", Scope(Scopes::Character)),
104 (Scopes::SituationSubRegion, "add_dejure_title_to_sub_region", Scope(Scopes::LandedTitle)),
105 (Scopes::TravelPlan, "add_destination_progress", Timespan),
106 (Scopes::Character, "add_diplomacy_skill", ScriptValue),
107 (Scopes::Faith, "add_doctrine", ScopeOrItem(Scopes::Doctrine, Item::Doctrine)),
108 (Scopes::Domicile, "add_domicile_building", Item(Item::DomicileBuilding)),
109 (Scopes::Character, "add_dread", ScriptValue),
110 (Scopes::Artifact, "add_durability", ScriptValue),
111 (Scopes::Dynasty, "add_dynasty_modifier", Vbv(validate_add_modifier)),
112 (Scopes::Dynasty, "add_dynasty_perk", Item(Item::DynastyPerk)),
113 (Scopes::Dynasty, "add_dynasty_prestige", ScriptValue),
114 (Scopes::Dynasty, "add_dynasty_prestige_level", ScriptValue),
115 (Scopes::Faction, "add_faction_discontent", ScriptValue),
116 (Scopes::Culture, "add_fascination_progress", ScriptValue),
117 (Scopes::Culture, "add_fascination_progress_time", ScriptValue),
118 (Scopes::Character, "add_focus_progress", ScriptValue),
119 (Scopes::CasusBelli, "add_from_contribution_attackers", Vb(validate_add_from_contribution)),
120 (Scopes::CasusBelli, "add_from_contribution_defenders", Vb(validate_add_from_contribution)),
121 (
122 Scopes::SituationSubRegion,
123 "add_geographical_region",
124 ScopeOrItem(Scopes::GeographicalRegion, Item::Region),
125 ),
126 (Scopes::Accolade, "add_glory", ScriptValue),
127 (Scopes::Character, "add_gold", NonNegativeValue),
128 (Scopes::Province, "add_great_building", Item(Item::Building)),
130 (Scopes::Province, "add_great_building_slot", Item(Item::Building)),
131 (Scopes::Character, "add_hook", Vb(validate_add_hook)),
132 (Scopes::Character, "add_hook_no_toast", Vb(validate_add_hook)),
133 (Scopes::DynastyHouse, "add_house_artifact_claim", Scope(Scopes::Artifact)),
134 (Scopes::DynastyHouse, "add_house_modifier", Vbv(validate_add_modifier)),
135 (Scopes::DynastyHouse, "add_house_unity_modifier", Vbv(validate_add_modifier)),
136 (Scopes::Culture, "add_innovation", Item(Item::Innovation)),
137 (
138 Scopes::Culture,
139 "add_innovation_progress",
140 TargetValue("target", Scopes::CultureInnovation, "value"),
141 ),
142 (
143 Scopes::Culture,
144 "add_innovation_progress_time",
145 TargetValue("target", Scopes::CultureInnovation, "value"),
146 ),
147 (Scopes::None, "add_internal_flag", Identifier("flag name")),
148 (Scopes::Character, "add_intrigue_skill", ScriptValue),
149 (Scopes::Character, "add_joined_faction_discontent", ScriptValue),
150 (Scopes::Character, "add_knows_of_killer", Scope(Scopes::Character)),
151 (Scopes::Character, "add_learning_skill", ScriptValue),
152 (Scopes::Legend, "add_legend_county_modifier", Vbv(validate_add_modifier)),
153 (Scopes::Legend, "add_legend_owner_modifier", Vbv(validate_add_modifier)),
154 (Scopes::Legend, "add_legend_province_modifier", Vbv(validate_add_modifier)),
155 (Scopes::Province, "add_legend_spread", Scope(Scopes::Legend)),
156 (Scopes::Character, "add_legitimacy", ScriptValue),
157 (Scopes::Character, "add_long_term_gold", ScriptValue),
158 (Scopes::Army, "add_loot", ScriptValue),
159 (Scopes::Situation, "add_manual_participant", Scope(Scopes::Character)),
160 (Scopes::Character, "add_martial_skill", ScriptValue),
161 (Scopes::Culture, "add_name_list", Item(Item::NameList)),
162 (Scopes::Character, "add_opinion", Vb(validate_add_opinion)),
163 (Scopes::Character, "add_perk", Item(Item::Perk)),
164 (Scopes::Character, "add_personal_artifact_claim", Scope(Scopes::Artifact)),
165 (Scopes::SituationSubRegion, "add_phase_max_duration", Vb(validate_phase_duration)),
166 (Scopes::Character, "add_piety", Effect::ScriptValue),
167 (Scopes::Character, "add_piety_and_experience", ScriptValue),
168 (Scopes::Character, "add_piety_experience", ScriptValue),
169 (Scopes::Character, "add_piety_level", ScriptValue),
170 (Scopes::Character, "add_piety_no_experience", ScriptValue),
171 (Scopes::Character, "add_pressed_claim", Scope(Scopes::LandedTitle)),
172 (Scopes::Character, "add_prestige", Effect::ScriptValue),
173 (Scopes::Character, "add_prestige_and_experience", ScriptValue),
174 (Scopes::Character, "add_prestige_experience", ScriptValue),
175 (Scopes::Character, "add_prestige_level", ScriptValue),
176 (Scopes::Character, "add_prestige_no_experience", ScriptValue),
177 (Scopes::Province, "add_province_modifier", Vbv(validate_add_modifier)),
178 (Scopes::Character, "add_prowess_skill", ScriptValue),
179 (
180 Scopes::Culture,
181 "add_random_innovation",
182 Choice(&["culture_group_military", "culture_group_civic", "culture_group_regional", "yes"]),
183 ),
184 (Scopes::Culture, "add_random_valid_tradition", Scope(Scopes::Character)),
185 (Scopes::Culture, "add_random_valid_tradition_replace_if_necessary", Scope(Scopes::Character)),
186 (Scopes::Character, "add_realm_law", Item(Item::Law)),
187 (Scopes::Character, "add_realm_law_skip_effects", Item(Item::Law)),
188 (Scopes::Character, "add_relation_flag", Vb(validate_add_relation_flag)),
189 (Scopes::Character, "add_reserved_gold", ScriptValue),
190 (Scopes::Scheme, "add_scheme_breach", ScriptValue),
191 (Scopes::Character, "add_scheme_cooldown", Vb(validate_scheme_cooldown)),
192 (Scopes::Scheme, "add_scheme_modifier", Vb(validate_scheme_modifier)),
193 (Scopes::Scheme, "add_scheme_progress", ScriptValue),
194 (Scopes::Character, "add_secret", Vb(validate_add_secret)),
195 (Scopes::Secret, "add_secret_participant", Scope(Scopes::Character)),
196 (Scopes::Character, "add_short_term_gold", ScriptValue),
197 (Scopes::Province, "add_special_building", Item(Item::SpecialBuilding)),
198 (Scopes::Province, "add_special_building_slot", Item(Item::SpecialBuilding)),
199 (Scopes::Culture, "add_spread_progress", ScriptValue),
200 (Scopes::Culture, "add_spread_progress_time", ScriptValue),
201 (Scopes::Character, "add_stewardship_skill", ScriptValue),
202 (Scopes::Character, "add_stress", ScriptValue),
203 (Scopes::Character, "add_subject_standing", ScriptValue),
204 (Scopes::Army, "add_supply", NonNegativeValue),
205 (
206 Scopes::SituationSubRegion,
207 "add_takeover_phase_duration",
208 Vb(validate_add_takeover_phase_duration),
209 ),
210 (
211 Scopes::SituationSubRegion,
212 "add_takeover_phase_points",
213 Vb(validate_add_takeover_phase_points),
214 ),
215 (Scopes::Character, "add_targeting_factions_discontent", ScriptValue),
216 (Scopes::LandedTitle, "add_title_law", Item(Item::Law)),
217 (Scopes::LandedTitle, "add_title_law_effects", Item(Item::Law)),
218 (Scopes::SituationSubRegion, "add_title_to_sub_region", Removed("1.18", "")),
219 (Scopes::Character, "add_to_activity", Scope(Scopes::Activity)),
220 (Scopes::Character, "add_to_activity_without_travel", Scope(Scopes::Activity)),
221 (Scopes::Character, "add_to_agent_slot", Scope(Scopes::AgentSlot)),
222 (
224 Scopes::Activity,
225 "add_to_current_phase_guest_subset",
226 Vb(validate_current_phase_guest_subset),
227 ),
228 (Scopes::None, "add_to_global_variable_list", Vb(validate_add_to_variable_list)),
229 (Scopes::Activity, "add_to_guest_subset", Vb(validate_guest_subset)),
231 (Scopes::all(), "add_to_list", Vbv(validate_add_to_list)),
232 (Scopes::None, "add_to_local_variable_list", Vb(validate_add_to_variable_list)),
233 (Scopes::all(), "add_to_scheme", Removed("1.13", "replaced with add_to_agent_slot")),
234 (Scopes::all(), "add_to_temporary_list", Vbv(validate_add_to_list)),
235 (Scopes::None, "add_to_variable_list", Vb(validate_add_to_variable_list)),
236 (Scopes::Character, "add_trait", ScopeOrItem(Scopes::Trait, Item::Trait)),
237 (Scopes::Character, "add_trait_force_tooltip", ScopeOrItem(Scopes::Trait, Item::Trait)),
238 (Scopes::Character, "add_trait_xp", Vb(validate_add_trait_xp)),
239 (Scopes::Character, "add_travel_option", Item(Item::TravelOption)),
240 (Scopes::TravelPlan, "add_travel_plan_modifier", Vbv(validate_add_modifier)),
241 (Scopes::Province, "add_travel_point_of_interest", Item(Item::PointOfInterest)),
242 (Scopes::TravelPlan, "add_travel_waypoint", Scope(Scopes::Province)),
243 (Scopes::Character, "add_treasury", ScriptValue),
244 (Scopes::Character, "add_treasury_or_gold", ScriptValue),
245 (Scopes::Character, "add_truce_both_ways", Vb(validate_add_truce)),
246 (Scopes::Character, "add_truce_one_way", Vb(validate_add_truce)),
247 (Scopes::Character, "add_tyranny", ScriptValue),
248 (Scopes::DynastyHouse, "add_unity_value", Vb(validate_add_unity)),
249 (Scopes::Character, "add_unpressed_claim", Scope(Scopes::LandedTitle)),
250 (Scopes::Character, "add_visiting_courtier", Scope(Scopes::Character)),
251 (Scopes::Character, "add_war_chest_gold", ScriptValue),
252 (Scopes::Character, "adopt", Scope(Scopes::Character)),
253 (Scopes::Character, "ai_attempt_to_build_building_effect", Yes),
254 (
255 Scopes::Character,
256 "ai_attempt_to_host_activity",
257 ScopeOrItem(Scopes::ActivityType, Item::ActivityType),
258 ),
259 (Scopes::Character, "ai_start_best_war", Vb(validate_start_best_war)),
260 (Scopes::Character, "allow_alliance", Scope(Scopes::Character)),
261 (Scopes::Character, "allow_in_scheme", Scope(Scopes::Scheme)),
262 (Scopes::Character, "apply_ai_vassal_admin_province_obligation_liege_most_desired", Yes),
263 (Scopes::Character, "apply_ai_vassal_admin_province_obligation_vassal_most_desired", Yes),
264 (Scopes::Character, "apply_ai_vassal_obligation_liege_most_desired", Yes),
265 (Scopes::Character, "apply_ai_vassal_obligation_vassal_most_desired", Yes),
266 (Scopes::Character, "appoint_court_position", Vb(validate_appoint_court_position)),
267 (Scopes::None, "assert_if", Unchecked),
268 (Scopes::None, "assert_read", Unchecked),
269 (Scopes::Army, "assign_commander", Scope(Scopes::Character)),
270 (Scopes::Character, "assign_council_task", Vb(validate_assign_council_task)),
271 (Scopes::Character, "assign_councillor_type", Vb(validate_assign_councillor_type)),
272 (Scopes::Scheme, "auto_assign_scheme_agents", Yes),
273 (Scopes::Character, "banish", Yes),
274 (Scopes::CombatSide, "battle_event", Vb(validate_battle_event)),
275 (Scopes::Character, "becomes_independent", Target("change", Scopes::TitleAndVassalChange)),
276 (Scopes::Province, "begin_create_holding", Vbv(validate_begin_create_holding)),
277 (Scopes::Character, "break_alliance", Scope(Scopes::Character)),
278 (Scopes::Character, "break_betrothal", Scope(Scopes::Character)),
279 (Scopes::None, "cancel_great_project", Scope(Scopes::GreatProject)),
280 (Scopes::TravelPlan, "cancel_travel_plan", Boolean),
281 (Scopes::Character, "cancel_truce_both_ways", Scope(Scopes::Character)),
282 (Scopes::Character, "cancel_truce_one_way", Scope(Scopes::Character)),
283 (Scopes::Character, "change_age", ScriptValue),
284 (
285 Scopes::LandedTitle,
286 "change_appointment_investment",
287 Vb(validate_change_appointment_investment),
288 ),
289 (
290 Scopes::LandedTitle,
291 "change_appointment_investment_for_anyone",
292 Vb(validate_change_appointment_investment),
293 ),
294 (Scopes::Confederation, "change_cohesion", ScriptValue),
295 (Scopes::LandedTitle, "change_county_control", ScriptValue),
296 (Scopes::LandedTitle, "change_county_fertility", ScriptValue),
297 (Scopes::Culture, "change_cultural_acceptance", Vb(validate_change_cultural_acceptance)),
298 (Scopes::Character, "change_current_court_grandeur", ScriptValue),
299 (Scopes::Character, "change_current_weight", ScriptValue),
300 (
301 Scopes::LandedTitle,
302 "change_de_jure_drift_progress",
303 TargetValue("target", Scopes::LandedTitle, "value"),
304 ),
305 (Scopes::LandedTitle, "change_development_level", ScriptValue),
306 (Scopes::LandedTitle, "change_development_progress", ScriptValue),
307 (Scopes::LandedTitle, "change_development_progress_with_overflow", ScriptValue),
308 (Scopes::Character, "change_diarchy_swing", ScriptValue),
309 (Scopes::Faith, "change_fervor", ScriptValue),
310 (Scopes::Character, "change_first_name", Vbv(validate_change_first_name)),
311 (Scopes::None, "change_global_variable", Vb(validate_change_variable)),
312 (Scopes::Character, "change_government", Item(Item::GovernmentType)),
313 (Scopes::Domicile, "change_herd", ScriptValue),
314 (Scopes::HouseRelation, "change_house_relation_level", Vb(validate_house_relation_level)),
315 (Scopes::Character, "change_influence", ScriptValue),
316 (Scopes::Character, "change_influence_and_experience", ScriptValue),
317 (Scopes::Character, "change_influence_experience", ScriptValue),
318 (Scopes::Character, "change_influence_level", ScriptValue),
319 (Scopes::Character, "change_influence_no_experience", ScriptValue),
320 (Scopes::Inspiration, "change_inspiration_progress", Integer),
321 (Scopes::Character, "change_liege", Vb(validate_change_liege)),
322 (Scopes::None, "change_local_variable", Vb(validate_change_variable)),
323 (Scopes::Regiment, "change_maa_regiment_size", Vbv(validate_change_maa_regiment_size)),
324 (Scopes::Regiment, "change_maa_troops_count", ScriptValue),
325 (Scopes::Character, "change_merit", ScriptValue),
326 (Scopes::Character, "change_merit_experience", ScriptValue),
327 (Scopes::Character, "change_merit_level", ScriptValue),
328 (Scopes::Character, "change_merit_no_experience", ScriptValue),
329 (Scopes::Scheme, "change_opportunities", ScriptValue),
330 (Scopes::SituationSubRegion, "change_phase", Vbv(validate_change_phase)),
331 (Scopes::Character, "change_prison_type", Item(Item::PrisonType)),
332 (Scopes::Domicile, "change_provisions", ScriptValue),
333 (
335 Scopes::Character,
336 "change_realm_law_level",
337 ItemTarget("law_group", Item::LawGroup, "change", Scopes::Value),
338 ),
339 (
340 Scopes::Character,
341 "change_realm_law_level_skip_effects",
342 ItemTarget("law_group", Item::LawGroup, "change", Scopes::Value),
343 ),
344 (Scopes::Character, "change_strife_opinion", ScriptValue),
345 (Scopes::Struggle, "change_struggle_phase", Vbv(validate_change_struggle_phase)),
346 (
347 Scopes::Struggle,
348 "change_struggle_phase_duration",
349 Vb(validate_change_struggle_phase_duration),
350 ),
351 (Scopes::Character, "change_target_weight", ScriptValue),
352 (Scopes::LandedTitle, "change_title_holder", Vb(validate_change_title_holder)),
353 (Scopes::LandedTitle, "change_title_holder_include_vassals", Vb(validate_change_title_holder)),
354 (
356 Scopes::LandedTitle,
357 "change_title_law_level",
358 ItemTarget("law_group", Item::LawGroup, "change", Scopes::Value),
359 ),
360 (
361 Scopes::LandedTitle,
362 "change_title_law_level_effects",
363 ItemTarget("law_group", Item::LawGroup, "change", Scopes::Value),
364 ),
365 (Scopes::Situation, "change_top_phase", Vbv(validate_change_phase)),
366 (Scopes::Character, "change_trait_rank", Vb(validate_change_trait_rank)),
367 (Scopes::None, "change_variable", Vb(validate_change_variable)),
368 (Scopes::GreatHolyWar, "change_war_chest_gold", ScriptValue),
369 (Scopes::GreatHolyWar, "change_war_chest_piety", ScriptValue),
370 (Scopes::GreatHolyWar, "change_war_chest_prestige", ScriptValue),
371 (Scopes::None, "clamp_global_variable", Vb(validate_clamp_variable)),
372 (Scopes::None, "clamp_local_variable", Vb(validate_clamp_variable)),
373 (Scopes::None, "clamp_variable", Vb(validate_clamp_variable)),
374 (Scopes::Artifact, "clear_artifact_modifiers", Yes),
375 (Scopes::Character, "clear_appointment_timeout", Yes),
376 (Scopes::War, "clear_claimant", Yes),
377 (Scopes::Culture, "clear_culture_traditions", Yes),
378 (Scopes::Character, "clear_designated_heir", Yes),
379 (Scopes::Character, "clear_forced_vote", Yes),
380 (Scopes::None, "clear_global_variable_list", Identifier("list name")),
381 (Scopes::HouseRelation, "clear_house_relation", Yes),
382 (Scopes::Confederation, "clear_leading_house", Yes),
383 (Scopes::Legend, "clear_legend_chapter", Item(Item::LegendChapter)),
384 (Scopes::None, "clear_local_variable_list", Identifier("list name")),
385 (Scopes::None, "clear_saved_scope", Identifier("scope name")),
386 (Scopes::Army, "clear_supply", Yes),
387 (Scopes::LandedTitle, "clear_title_laws", Yes),
388 (Scopes::LandedTitle, "clear_title_laws_effects", Yes),
389 (Scopes::Character, "clear_traits", Yes),
390 (Scopes::None, "clear_variable_list", Identifier("list name")),
391 (Scopes::None, "close_all_views", Yes),
392 (Scopes::None, "close_view", Vbv(validate_close_view)),
393 (Scopes::Activity, "complete_activity", Removed("1.9", "")),
394 (Scopes::Character, "complete_activity_intent", Boolean),
395 (Scopes::None, "complete_great_project", Scope(Scopes::GreatProject)),
396 (Scopes::None, "complete_great_project_animated", Scope(Scopes::GreatProject)),
397 (Scopes::TaskContract, "complete_task_contract", Item(Item::TaskContractReward)),
398 (Scopes::TravelPlan, "complete_travel_plan", Boolean),
399 (Scopes::Domicile, "construct_domicile_building", Item(Item::DomicileBuilding)),
400 (Scopes::Character, "consume_banish_reasons", Scope(Scopes::Character)),
401 (Scopes::Character, "consume_divorce_reasons", Scope(Scopes::Character)),
402 (Scopes::Character, "consume_execute_reasons", Scope(Scopes::Character)),
403 (Scopes::Character, "consume_imprisonment_reasons", Scope(Scopes::Character)),
404 (Scopes::Character, "consume_revoke_title_reason", Scope(Scopes::Character)),
405 (Scopes::Culture, "copy_all_traditions_from", Scope(Scopes::Culture)),
406 (Scopes::Artifact, "copy_artifact_modifiers", Scope(Scopes::Artifact)),
407 (Scopes::Character, "copy_inheritable_appearance_from", Scope(Scopes::Character)),
408 (Scopes::Character, "copy_localized_text", Vb(validate_copy_localized_text)),
409 (Scopes::LandedTitle, "copy_title_history", Scope(Scopes::LandedTitle)),
410 (Scopes::Character, "copy_traits", Scope(Scopes::Character)),
411 (Scopes::None, "create_accolade", Vb(validate_create_accolade)),
412 (Scopes::None, "create_adventurer_title", Vb(validate_create_adventurer_title)),
413 (Scopes::Character, "create_alliance", Vbv(validate_create_alliance)),
414 (Scopes::Character, "create_artifact", Vb(validate_create_artifact)),
415 (Scopes::Character, "create_betrothal", Scope(Scopes::Character)),
416 (Scopes::Character, "create_betrothal_matrilineal", Scope(Scopes::Character)),
417 (Scopes::Character, "create_cadet_branch", Vb(validate_create_cadet_branch)),
418 (Scopes::None, "create_character", Vb(validate_create_character)),
419 (Scopes::Character, "create_character_memory", Vb(validate_create_character_memory)),
420 (Scopes::Character, "create_confederation", Vb(validate_create_confederation)),
421 (Scopes::Character, "create_divergent_culture", Yes),
422 (Scopes::Character, "create_divergent_culture_with_side_effects", Yes),
423 (Scopes::Character, "create_divergent_culture_with_side_effects_excluding_cost", Yes),
424 (Scopes::None, "create_dynamic_title", Vb(validate_create_dynamic_title)),
425 (Scopes::Character, "create_dynasty", Vb(validate_create_dynasty)),
426 (Scopes::Province, "create_epidemic_outbreak", Vb(validate_create_epidemic_outbreak)),
427 (
428 Scopes::Character,
429 "create_faction",
430 ItemTarget("type", Item::Faction, "target", Scopes::Character),
431 ),
432 (Scopes::None, "create_holy_order", Vb(validate_create_holy_order)),
433 (Scopes::Character, "create_hybrid_culture", Scope(Scopes::Culture)),
434 (Scopes::Character, "create_hybrid_culture_with_side_effects", Scope(Scopes::Culture)),
435 (Scopes::Character, "create_inspiration", Vbv(validate_create_inspiration)),
436 (Scopes::Character, "create_legend", Vb(validate_create_legend)),
437 (Scopes::Character, "create_legend_seed", Vb(validate_create_legend)),
438 (Scopes::Character, "create_maa_regiment", Vb(validate_create_maa_regiment)),
439 (Scopes::None, "create_nomad_title", Vb(validate_create_nomad_title)),
440 (Scopes::Character, "create_story", Vbv(validate_create_story)),
441 (Scopes::Character, "create_task_contract", Vb(validate_create_task_contract)),
442 (Scopes::None, "create_title_and_vassal_change", Vb(validate_create_title_and_vassal_change)),
443 (Scopes::None, "custom_description", Control),
444 (Scopes::None, "custom_description_no_bullet", Control),
445 (Scopes::None, "custom_label", ControlOrLabel),
446 (Scopes::None, "custom_tooltip", ControlOrLabel),
447 (Scopes::Accolade, "deactivate_accolade", Yes),
448 (Scopes::Faith, "deactivate_holy_site", Item(Item::HolySite)),
449 (Scopes::Character, "death", Vbv(validate_death)),
450 (Scopes::None, "debug_log", UncheckedTodo),
451 (Scopes::None, "debug_log_date", Yes),
452 (Scopes::None, "debug_log_scopes", Boolean),
453 (Scopes::None, "debug_log_stack_trace", UncheckedTodo),
454 (Scopes::None, "debug_trigger_event", Item(Item::Event)),
455 (Scopes::Character, "decline_activity_invite", Scope(Scopes::Activity)),
456 (
457 Scopes::all(),
458 "decline_invitation_for_character",
459 Removed("1.9", "replaced by `decline_activity_invite`"),
460 ),
461 (Scopes::Character, "decline_invitation_for_character", Scope(Scopes::Activity)),
462 (Scopes::TravelPlan, "delay_travel_plan", Vb(validate_delay_travel_plan)),
463 (Scopes::Army, "deplete_army_by_percentage", ScriptValue),
464 (Scopes::Character, "depose", Yes),
465 (Scopes::Character, "depose_diarch", Boolean),
466 (Scopes::Character, "designate_diarch", Scope(Scopes::Character)),
467 (Scopes::Character, "destroy_all_event_troops", Boolean),
468 (Scopes::None, "destroy_artifact", ScopeOkThis(Scopes::Artifact)),
469 (Scopes::None, "destroy_character_memory", Scope(Scopes::CharacterMemory)),
470 (Scopes::Faction, "destroy_faction", Yes),
471 (Scopes::None, "destroy_inspiration", Scope(Scopes::Inspiration)),
472 (Scopes::Regiment, "destroy_maa_regiment", Boolean),
473 (Scopes::Character, "destroy_owned_artifact", Scope(Scopes::Artifact)),
474 (Scopes::Character, "destroy_title", Scope(Scopes::LandedTitle)),
475 (Scopes::Secret, "disable_exposure_by", Scope(Scopes::Character)),
476 (Scopes::Confederation, "disband_confederation", Yes),
477 (Scopes::GreatHolyWar, "divide_war_chest", Vb(validate_divide_war_chest)),
478 (Scopes::Character, "divorce", Scope(Scopes::Character)),
479 (Scopes::GreatHolyWar, "do_ghw_title_handout", Scope(Scopes::TitleAndVassalChange)),
480 (Scopes::Province, "downgrade_building_effect", Item(Item::Building)),
481 (Scopes::Character, "duel", Vbc(validate_duel)),
482 (Scopes::None, "else", Control),
483 (Scopes::None, "else_if", Control),
484 (Scopes::Character, "enact_treasury_budgets", Yes),
485 (Scopes::Character, "enact_treasury_budgets_init", Yes),
486 (Scopes::Character, "enact_treasury_budgets_no_costs", Yes),
487 (Scopes::Character, "enact_treasury_budgets_no_costs_no_opinion_effects", Yes),
488 (Scopes::Character, "enact_treasury_budgets_no_opinion_effects", Yes),
489 (Scopes::Character, "end_diarchy", Boolean),
490 (Scopes::Character, "end_inspiration_sponsorship", Scope(Scopes::Inspiration)),
491 (Scopes::Character, "end_pregnancy", Yes),
492 (Scopes::Scheme, "end_scheme", Yes),
493 (Scopes::Situation, "end_situation", Yes),
494 (Scopes::StoryCycle, "end_story", Yes),
495 (Scopes::Struggle, "end_struggle", Vv(validate_end_struggle)),
496 (Scopes::Character, "end_tributary", Yes),
497 (Scopes::War, "end_war", Choice(&["attacker", "defender", "white_peace", "invalidated"])),
499 (Scopes::Artifact, "equip_artifact_to_owner", Yes),
500 (Scopes::Artifact, "equip_artifact_to_owner_replace", Yes),
501 (Scopes::None, "error_log", UncheckedTodo),
502 (Scopes::None, "error_log_scopes", Boolean),
503 (Scopes::None, "error_log_stack_trace", UncheckedTodo),
504 (Scopes::Character, "execute_decision", Item(Item::Decision)),
505 (Scopes::Scheme, "expose_scheme", Yes),
506 (Scopes::Scheme, "expose_scheme_agent", Scope(Scopes::Character)),
507 (Scopes::Secret, "expose_secret", Scope(Scopes::Character)),
508 (Scopes::Faction, "faction_remove_war", Yes),
509 (Scopes::Faction, "faction_start_war", Vb(validate_faction_start_war)),
510 (Scopes::Character, "finish_council_task", Yes),
511 (Scopes::Character, "fire_councillor", Scope(Scopes::Character)),
512 (Scopes::Character, "fire_councillor_skip_effects", Scope(Scopes::Character)),
513 (Scopes::Character, "fire_tax_collector", Scope(Scopes::Character)),
514 (Scopes::Character, "forbid_from_scheme", Scope(Scopes::Scheme)),
515 (
516 Scopes::all(),
517 "force_add_to_scheme",
518 Removed("1.13", "replaced with force_add_to_agent_slot"),
519 ),
520 (Scopes::Character, "force_add_to_agent_slot", Vb(validate_force_add_to_agent_slot)),
521 (Scopes::Character, "force_character_skill_recalculation", Yes),
522 (Scopes::Character, "force_step_down_landed_titles", Yes),
523 (Scopes::Character, "force_vote_as", Vb(validate_force_vote_as)),
524 (Scopes::CombatSide, "force_win", Yes),
525 (Scopes::Character, "fund_great_project_contribution", Vb(validate_contribution)),
526 (Scopes::Province, "generate_building", Yes),
527 (
528 Scopes::LandedTitle
529 .union(Scopes::Dynasty)
530 .union(Scopes::DynastyHouse)
531 .union(Scopes::Confederation),
532 "generate_coa",
533 Vv(validate_generate_coa),
534 ),
535 (Scopes::Culture, "get_all_innovations_from", Scope(Scopes::Culture)),
536 (Scopes::Culture, "get_random_innovation_from", Scope(Scopes::Culture)),
537 (Scopes::Character, "get_title", Scope(Scopes::LandedTitle)),
538 (Scopes::Character, "give_domain_to_herders", Yes),
539 (Scopes::Character, "give_nickname", Item(Item::Nickname)),
540 (Scopes::Character, "give_noble_family_title", Vb(validate_give_noble_family_title)),
541 (Scopes::None, "hidden_effect", Control),
542 (
543 Scopes::None,
544 "hidden_effect_new_artifact",
545 Removed("1.9", "replaced by `hidden_effect_new_object`"),
546 ),
547 (Scopes::None, "hidden_effect_new_object", Control),
548 (Scopes::None, "if", Control),
549 (Scopes::Character, "imprison", Vb(validate_imprison)),
550 (Scopes::Character, "infect_with_epidemic", Scope(Scopes::Epidemic)),
551 (Scopes::None, "info_log", UncheckedTodo),
552 (Scopes::None, "info_log_scopes", Boolean),
553 (Scopes::None, "info_log_stack_trace", UncheckedTodo),
554 (Scopes::None, "invalidate_activity", Scope(Scopes::Activity)),
555 (Scopes::TaskContract, "invalidate_contract", Boolean),
556 (Scopes::Character, "invalidate_diarch_if_needed", Boolean),
557 (Scopes::Scheme, "invalidate_scheme", Yes),
558 (Scopes::Inspiration, "invest_gold", NonNegativeValue),
559 (
560 Scopes::all(),
561 "invite_character_to_activity",
562 Removed("1.9", "replaced by `invite_to_activity` which works the other way around"),
563 ),
564 (Scopes::Character, "invite_to_activity", Scope(Scopes::Activity)),
565 (Scopes::Culture, "join_era", Item(Item::CultureEra)),
566 (Scopes::Character, "join_faction", Scope(Scopes::Faction)),
567 (Scopes::Character, "join_faction_forced", Vb(validate_join_faction_forced)),
568 (Scopes::Character, "join_faction_skip_check", Scope(Scopes::Faction)),
569 (Scopes::Character, "learn_court_language_of", ScopeOkThis(Scopes::Character)),
570 (Scopes::Character, "learn_language", Item(Item::Language)),
571 (Scopes::Character, "learn_language_of_culture", Scope(Scopes::Culture)),
572 (Scopes::LandedTitle, "lease_out_to", Scope(Scopes::HolyOrder)),
573 (Scopes::Culture, "leave_era", Item(Item::CultureEra)),
574 (Scopes::Character, "leave_faction", Scope(Scopes::Faction)),
575 (Scopes::Situation, "log_natural_disaster", UncheckedTodo),
576 (Scopes::all(), "lose_combat", Removed("1.9", "")),
577 (Scopes::Domicile, "lower_domicile_building", Item(Item::DomicileBuilding)),
578 (Scopes::Domicile, "lower_domicile_building_no_refund", Item(Item::DomicileBuilding)),
579 (Scopes::Character, "make_claim_strong", Scope(Scopes::LandedTitle)),
580 (Scopes::Character, "make_claim_weak", Scope(Scopes::LandedTitle)),
581 (Scopes::Character, "make_concubine", Scope(Scopes::Character)),
582 (Scopes::Character, "make_pregnant", Vb(validate_make_pregnant)),
583 (Scopes::Character, "make_pregnant_no_checks", Vb(validate_make_pregnant)),
584 (Scopes::StoryCycle, "make_story_owner", Scope(Scopes::Character)),
585 (Scopes::Character, "make_trait_active", ScopeOrItem(Scopes::Trait, Item::Trait)),
586 (Scopes::Character, "make_trait_active_force_tooltip", ScopeOrItem(Scopes::Trait, Item::Trait)),
587 (Scopes::Character, "make_trait_inactive", ScopeOrItem(Scopes::Trait, Item::Trait)),
588 (
589 Scopes::Character,
590 "make_trait_inactive_force_tooltip",
591 ScopeOrItem(Scopes::Trait, Item::Trait),
592 ),
593 (Scopes::Character, "make_unprunable", Yes),
594 (Scopes::Character, "marry", Scope(Scopes::Character)),
595 (Scopes::Character, "marry_matrilineal", Scope(Scopes::Character)),
596 (Scopes::SituationParticipantGroup, "mass_recalculate_participant_groups", Yes),
597 (Scopes::all(), "move_activity", Removed("1.9", "")),
598 (Scopes::Character, "move_budget_gold", Vb(validate_move_budget)),
599 (Scopes::Character, "move_budget_treasury", Vb(validate_move_budget)),
600 (Scopes::Domicile, "move_domicile", Scope(Scopes::Province)),
601 (Scopes::LandedTitle, "move_title_name_to", Scope(Scopes::LandedTitle)),
602 (Scopes::Character, "move_to_pool", Yes),
603 (Scopes::Character, "move_to_pool_at", Scope(Scopes::Province)),
604 (Scopes::None, "multiply_focus_progress", UncheckedTodo),
605 (Scopes::Character, "open_appoint_court_position_window", Item(Item::CourtPosition)),
606 (Scopes::None, "open_interaction_window", Vb(validate_open_interaction_window)),
607 (Scopes::None, "open_view", Vbv(validate_open_view)),
608 (Scopes::all_but_none(), "open_view_data", Vbv(validate_open_view)),
609 (
610 Scopes::Character,
611 "overlord_contract_set_obligation_level",
612 Vb(validate_contract_set_obligation_level),
613 ),
614 (Scopes::None, "pan_camera_to_province", Scope(Scopes::Province)),
615 (Scopes::None, "pan_camera_to_title", Scope(Scopes::LandedTitle)),
616 (Scopes::TravelPlan, "pause_travel_plan", Boolean),
617 (Scopes::TravelPlan, "pause_travel_plan_mp", Boolean),
618 (Scopes::Character, "pay_gold_to_treasury", TargetValue("target", Scopes::Character, "value")),
619 (Scopes::Character, "pay_herd", TargetValue("target", Scopes::Character, "value")),
620 (Scopes::Character, "pay_long_term_gold", Vb(validate_pay_gold)),
621 (Scopes::Character, "pay_long_term_income", Vb(validate_pay_income)),
622 (
623 Scopes::Character,
624 "pay_long_term_treasury",
625 TargetValue("target", Scopes::Character, "treasury"),
626 ),
627 (Scopes::Character, "pay_long_term_treasury_income", Vb(validate_pay_income)),
628 (Scopes::Character, "pay_reserved_gold", Vb(validate_pay_gold)),
629 (Scopes::Character, "pay_reserved_income", Vb(validate_pay_income)),
630 (
631 Scopes::Character,
632 "pay_reserved_treasury",
633 TargetValue("target", Scopes::Character, "treasury"),
634 ),
635 (Scopes::Character, "pay_reserved_treasury_income", Vb(validate_pay_income)),
636 (Scopes::Character, "pay_short_term_gold", Vb(validate_pay_gold)),
637 (Scopes::Character, "pay_short_term_income", Vb(validate_pay_income)),
638 (
639 Scopes::Character,
640 "pay_short_term_treasury",
641 TargetValue("target", Scopes::Character, "treasury"),
642 ),
643 (Scopes::Character, "pay_short_term_treasury_income", Vb(validate_pay_income)),
644 (Scopes::Character, "pay_treasury", TargetValue("target", Scopes::Character, "value")),
645 (Scopes::Character, "pay_treasury_or_gold", TargetValue("target", Scopes::Character, "value")),
646 (Scopes::Character, "pay_treasury_to_gold", TargetValue("target", Scopes::Character, "value")),
647 (Scopes::Character, "pay_war_chest_gold", Vb(validate_pay_gold)),
648 (Scopes::Character, "pay_war_chest_income", Vb(validate_pay_income)),
649 (
650 Scopes::Character,
651 "pay_war_chest_treasury",
652 TargetValue("target", Scopes::Character, "treasury"),
653 ),
654 (Scopes::Character, "pay_war_chest_treasury_income", Vb(validate_pay_income)),
655 (Scopes::Province, "plan_great_project", Vb(validate_plan_great_project)),
656 (Scopes::Character, "play_music_cue", Item(Item::Music)),
657 (Scopes::Character, "play_sound_effect", Item(Item::Sound)),
658 (Scopes::GreatHolyWar, "pledge_attacker", Scope(Scopes::Character)),
659 (Scopes::GreatHolyWar, "pledge_defender", Scope(Scopes::Character)),
660 (Scopes::Character, "populate_task_contracts_for_area", Vb(validate_contracts_for_area)),
661 (Scopes::Activity, "progress_activity_phase_after", Timespan),
662 (Scopes::None, "random", Control),
663 (Scopes::None, "random_list", Vbc(validate_random_list)),
664 (Scopes::None, "random_log_scopes", Boolean),
665 (Scopes::LandedTitle, "raze_county", Vb(validate_raze_county)),
667 (Scopes::Province, "rebuild_great_building", Yes),
668 (Scopes::None, "recalculate_cultural_heads_of_type", Choice(&["domain", "herd"])),
669 (Scopes::Character, "recalculate_participant_group", Scope(Scopes::Situation)),
670 (Scopes::Situation, "record_situation_special_event", Vb(validate_situation_special_event)),
671 (Scopes::all(), "recruit_courtier", Removed("1.9.1", "replaced by `add_courtier`")),
672 (Scopes::Province, "refill_garrison", Yes),
673 (Scopes::Province, "refill_levy", Yes),
674 (Scopes::Army, "refill_supply", Yes),
675 (Scopes::Artifact, "reforge_artifact", Vb(validate_create_artifact)),
676 (Scopes::Character, "refund_all_perks", Yes),
677 (Scopes::Character, "refund_perks", Item(Item::Lifestyle)),
678 (Scopes::Character, "release_from_prison", Yes),
679 (Scopes::Accolade, "remove_acclaimed_knight", Yes),
680 (Scopes::Scheme, "remove_agent_slot", Scope(Scopes::AgentSlot)),
681 (Scopes::Character, "remove_all_character_modifier_instances", Item(Item::Modifier)),
682 (Scopes::LandedTitle, "remove_all_county_modifier_instances", Item(Item::Modifier)),
683 (Scopes::Dynasty, "remove_all_dynasty_modifier_instances", Item(Item::Modifier)),
684 (Scopes::DynastyHouse, "remove_all_house_modifier_instances", Item(Item::Modifier)),
685 (Scopes::DynastyHouse, "remove_all_house_unity_modifier_instances", Item(Item::Modifier)),
686 (Scopes::Legend, "remove_all_legend_county_modifier_instances", Item(Item::Modifier)),
687 (Scopes::Legend, "remove_all_legend_owner_modifier_instances", Item(Item::Modifier)),
688 (Scopes::Legend, "remove_all_legend_province_modifier_instances", Item(Item::Modifier)),
689 (Scopes::Province, "remove_all_province_modifier_instances", Item(Item::Modifier)),
690 (Scopes::Character, "remove_all_realm_laws", Yes),
691 (Scopes::TravelPlan, "remove_all_travel_plan_modifier_instances", Item(Item::Modifier)),
692 (Scopes::Artifact, "remove_artifact_feature_group", Item(Item::ArtifactFeatureGroup)),
693 (Scopes::Artifact, "remove_artifact_modifier", Item(Item::Modifier)),
694 (Scopes::Character, "remove_barter_goods", Yes),
695 (Scopes::Culture, "remove_bonus_fascination_innovation", Yes),
696 (Scopes::Province, "remove_building", Item(Item::Building)),
697 (Scopes::TravelPlan, "remove_character", Scope(Scopes::Character)),
698 (Scopes::Character, "remove_character_flag", Unchecked),
699 (Scopes::Character, "remove_character_modifier", Item(Item::Modifier)),
700 (
701 Scopes::SituationSubRegion,
702 "remove_character_realm_from_sub_region",
703 Scope(Scopes::Character),
704 ),
705 (Scopes::Character, "remove_character_secret_faith", Yes),
706 (Scopes::Character, "remove_claim", Scope(Scopes::LandedTitle)),
707 (Scopes::Army, "remove_commander", Yes),
708 (Scopes::Character, "remove_concubine", Scope(Scopes::Character)),
709 (Scopes::Confederation, "remove_confederation_member", Scope(Scopes::Character)),
710 (Scopes::Confederation, "remove_confederation_member_house", Scope(Scopes::DynastyHouse)),
711 (Scopes::LandedTitle, "remove_county_modifier", Item(Item::Modifier)),
712 (Scopes::Character, "remove_courtier_or_guest", Vbv(validate_remove_courtier_or_guest)),
713 (
714 Scopes::Culture,
715 "remove_culture_tradition",
716 ScopeOrItem(Scopes::CultureTradition, Item::CultureTradition),
717 ),
718 (Scopes::Character, "remove_dead_character_variable", Identifier("variable name")),
719 (Scopes::Character, "remove_decision_cooldown", Item(Item::Decision)),
720 (Scopes::SituationSubRegion, "remove_dejure_title_from_sub_region", Scope(Scopes::LandedTitle)),
721 (Scopes::Faith, "remove_doctrine", ScopeOrItem(Scopes::Doctrine, Item::Doctrine)),
722 (Scopes::Domicile, "remove_domicile_building", Item(Item::DomicileBuilding)),
723 (Scopes::Domicile, "remove_domicile_building_no_refund", Item(Item::DomicileBuilding)),
724 (Scopes::Dynasty, "remove_dynasty_modifier", Item(Item::Modifier)),
725 (Scopes::Dynasty, "remove_dynasty_perk", Item(Item::DynastyPerk)),
726 (Scopes::Character, "remove_from_activity", Scope(Scopes::Activity)),
727 (
728 Scopes::Activity,
729 "remove_from_current_phase_guest_subset",
730 Vb(validate_current_phase_guest_subset),
731 ),
732 (Scopes::Activity, "remove_from_guest_subset", Vb(validate_guest_subset)),
733 (Scopes::all_but_none(), "remove_from_list", Vv(validate_remove_from_list)),
734 (Scopes::Situation, "remove_geographical_region", Scope(Scopes::GeographicalRegion)),
735 (Scopes::None, "remove_global_variable", Identifier("variable name")),
736 (Scopes::Province, "remove_holding", Yes),
737 (Scopes::Character, "remove_hook", ItemTarget("type", Item::Hook, "target", Scopes::Character)),
738 (Scopes::DynastyHouse, "remove_house_artifact_claim", Scope(Scopes::Artifact)),
739 (Scopes::DynastyHouse, "remove_house_modifier", Item(Item::Modifier)),
740 (Scopes::DynastyHouse, "remove_house_unity_modifier", Item(Item::Modifier)),
741 (Scopes::LandedTitle, "remove_important_location", Yes),
742 (
743 Scopes::Culture,
744 "remove_innovation",
745 ScopeOrItem(Scopes::CultureInnovation, Item::Innovation),
746 ),
747 (Scopes::Character, "remove_interaction_cooldown", Item(Item::CharacterInteraction)),
748 (
749 Scopes::Character,
750 "remove_interaction_cooldown_against",
751 ItemTarget("interaction", Item::CharacterInteraction, "target", Scopes::Character),
752 ),
753 (Scopes::Legend, "remove_legend_county_modifier", Item(Item::Modifier)),
754 (Scopes::Legend, "remove_legend_owner_modifier", Item(Item::Modifier)),
755 (Scopes::Legend, "remove_legend_province_modifier", Item(Item::Modifier)),
756 (Scopes::Province, "remove_legend_spread", Scope(Scopes::Legend)),
757 (Scopes::None, "remove_list_global_variable", Vb(validate_add_to_variable_list)),
758 (Scopes::None, "remove_list_local_variable", Vb(validate_add_to_variable_list)),
759 (Scopes::None, "remove_list_variable", Vb(validate_add_to_variable_list)),
760 (Scopes::None, "remove_local_variable", Identifier("variable name")),
761 (Scopes::Character, "remove_localized_text", Identifier("text name")),
762 (Scopes::Character, "remove_long_term_gold", NonNegativeValue),
763 (Scopes::Character, "remove_long_term_treasury", ScriptValue),
764 (Scopes::Situation, "remove_manual_participant", Scope(Scopes::Character)),
765 (Scopes::Character, "remove_nickname", Boolean),
766 (Scopes::Character, "remove_opinion", Vb(validate_remove_opinion)),
767 (Scopes::War, "remove_participant", Scope(Scopes::Character)),
768 (Scopes::Character, "remove_perk", Item(Item::Perk)),
769 (Scopes::Character, "remove_personal_artifact_claim", Scope(Scopes::Artifact)),
770 (Scopes::Province, "remove_province_modifier", Item(Item::Modifier)),
771 (Scopes::Culture, "remove_random_culture_tradition", Yes),
772 (Scopes::Character, "remove_realm_law", Item(Item::Law)),
773 (Scopes::Character, "remove_relation_flag", Vb(validate_add_relation_flag)),
774 (Scopes::Faith, "remove_religious_head_title", Yes),
775 (Scopes::Character, "remove_reserved_gold", NonNegativeValue),
776 (Scopes::Character, "remove_reserved_treasury", ScriptValue),
777 (
778 Scopes::Character,
779 "remove_scheme_cooldown_against",
780 ItemTarget("scheme", Item::Scheme, "target", Scopes::Character),
781 ),
782 (Scopes::Scheme, "remove_scheme_modifier", Item(Item::Modifier)),
783 (Scopes::Secret, "remove_secret", Yes),
784 (Scopes::Character, "remove_short_term_gold", NonNegativeValue),
785 (Scopes::Character, "remove_short_term_treasury", ScriptValue),
786 (Scopes::Faction, "remove_special_character", Yes),
787 (Scopes::Faction, "remove_special_title", Yes),
788 (Scopes::LandedTitle, "remove_title_from_important_location", Scope(Scopes::LandedTitle)),
789 (Scopes::SituationSubRegion, "remove_title_from_sub_region", Removed("1.18", "")),
790 (Scopes::LandedTitle, "remove_title_law", Item(Item::Law)),
792 (Scopes::LandedTitle, "remove_title_law_effects", Item(Item::Law)),
793 (
794 Scopes::SituationSubRegion,
795 "remove_title_to_sub_region",
796 Removed("1.16.2", "renamed to remove_title_from_sub_region"),
797 ),
798 (Scopes::Character, "remove_trait", ScopeOrItem(Scopes::Trait, Item::Trait)),
799 (Scopes::Character, "remove_trait_force_tooltip", ScopeOrItem(Scopes::Trait, Item::Trait)),
800 (Scopes::TravelPlan, "remove_travel_option", Item(Item::TravelOption)),
801 (Scopes::TravelPlan, "remove_travel_plan_modifier", Item(Item::Modifier)),
802 (Scopes::Province, "remove_travel_point_of_interest", Item(Item::PointOfInterest)),
803 (Scopes::Character, "remove_treasury", ScriptValue),
804 (Scopes::Character, "remove_treasury_or_gold", ScriptValue),
805 (Scopes::None, "remove_variable", Identifier("variable name")),
806 (Scopes::Character, "remove_war_chest_gold", NonNegativeValue),
807 (Scopes::Character, "remove_war_chest_treasury", ScriptValue),
808 (Scopes::Province, "replace_building_effect", Item(Item::Building)),
809 (Scopes::Character, "replace_court_position", Vb(validate_replace_court_position)),
810 (
811 Scopes::TravelPlan,
812 "reroute_to_home",
813 Removed("1.15", "replaced with return_home character effect"),
814 ),
815 (Scopes::Character, "reset_beneficiary", Yes),
816 (
817 Scopes::LandedTitle
818 .union(Scopes::Dynasty)
819 .union(Scopes::DynastyHouse)
820 .union(Scopes::Confederation),
821 "reset_coa",
822 Yes,
823 ),
824 (Scopes::Culture, "reset_culture_creation_date", Yes),
825 (Scopes::GreatHolyWar, "reset_designated_winner", Yes),
826 (Scopes::Scheme, "reset_scheme_progress", Yes),
827 (Scopes::LandedTitle, "reset_title_name", Yes),
828 (Scopes::LandedTitle, "reset_title_prefix", Yes),
829 (Scopes::None, "resolve_title_and_vassal_change", Scope(Scopes::TitleAndVassalChange)),
830 (Scopes::TravelPlan, "resume_travel_plan", Boolean),
831 (Scopes::TravelPlan, "resume_travel_plan_mp", Boolean),
832 (Scopes::Character, "return_home", Boolean),
833 (Scopes::Character, "return_hostage", Yes),
834 (Scopes::Character, "return_to_court", Yes),
835 (Scopes::Secret, "reveal_to", Scope(Scopes::Character)),
836 (Scopes::Character, "reverse_add_opinion", Vb(validate_add_opinion)),
837 (Scopes::Character, "revoke_court_position", Vb(validate_revoke_court_position)),
838 (Scopes::LandedTitle, "revoke_lease", Yes),
839 (Scopes::None, "round_global_variable", Vb(validate_round_variable)),
840 (Scopes::None, "round_local_variable", Vb(validate_round_variable)),
841 (Scopes::None, "round_variable", Vb(validate_round_variable)),
842 (Scopes::Province, "ruin_great_building", Yes),
843 (Scopes::None, "run_interaction", Vb(validate_open_interaction_window)),
844 (Scopes::Character, "save_opinion_value_as", Vb(validate_save_opinion_value)),
845 (Scopes::all_but_none(), "save_scope_as", Vv(validate_save_scope)),
846 (Scopes::None, "save_scope_value_as", Vb(validate_save_scope_value)),
847 (Scopes::Character, "save_temporary_opinion_value_as", Vb(validate_save_opinion_value)),
848 (Scopes::all_but_none(), "save_temporary_scope_as", Vv(validate_save_scope)),
849 (Scopes::None, "save_temporary_scope_value_as", Vb(validate_save_scope_value)),
850 (Scopes::all(), "scheme_freeze_days", Removed("1.9", "replaced by `scheme_freeze`")),
851 (Scopes::Scheme, "scheme_freeze", Vb(validate_scheme_freeze)),
852 (Scopes::Scheme, "scheme_unfreeze", Yes),
853 (Scopes::Character, "scriptedtests_recalculate_character_modifier", Unchecked),
854 (Scopes::Character, "scriptedtests_recalculate_succession", Unchecked),
855 (Scopes::None, "send_china_tutorial_finished_telemetry", Yes),
856 (Scopes::None, "send_china_tutorial_started_telemetry", Yes),
857 (Scopes::Character, "send_interface_message", Vbc(validate_send_interface)),
858 (Scopes::Character, "send_interface_popup", Vbc(validate_send_interface)),
859 (Scopes::Character, "send_interface_toast", Vbc(validate_send_interface)),
860 (Scopes::None, "send_long_tutorial_finished_telemetry", Yes),
861 (Scopes::None, "send_long_tutorial_started_telemetry", Yes),
862 (Scopes::None, "send_short_tutorial_finished_telemetry", Yes),
863 (Scopes::None, "send_short_tutorial_started_telemetry", Yes),
864 (Scopes::Character, "set_absolute_country_control", Boolean),
865 (Scopes::Activity, "set_activity_host", Scope(Scopes::Character)),
866 (Scopes::Character, "set_activity_intent", Vbv(validate_set_activity_intent)),
867 (Scopes::Character, "set_age", ScriptValue),
868 (Scopes::CombatSide, "set_allow_early_retreat", Boolean),
869 (Scopes::LandedTitle, "set_always_follows_primary_heir", Yes),
870 (Scopes::Character, "set_amenity_level", ItemValue("type", Item::Amenity)),
871 (Scopes::Character, "set_appointment_timeout", Vb(validate_appointment_timeout)),
872 (Scopes::Army, "set_army_location", Scope(Scopes::Province)),
873 (Scopes::Artifact, "set_artifact_description", Desc),
874 (Scopes::Artifact, "set_artifact_feature", Item(Item::ArtifactFeature)),
875 (Scopes::Artifact, "set_artifact_feature_group", Item(Item::ArtifactFeatureGroup)),
876 (Scopes::Artifact, "set_artifact_name", Desc),
877 (Scopes::Artifact, "set_artifact_rarity", Item(Item::ArtifactRarity)),
878 (Scopes::Character, "set_beneficiary", Scope(Scopes::Character)),
879 (
880 Scopes::Culture,
881 "set_bonus_fascination_innovation",
882 ScopeOrItem(Scopes::CultureInnovation, Item::Innovation),
883 ),
884 (Scopes::War, "set_called_to", Scope(Scopes::Character)),
885 (Scopes::LandedTitle, "set_can_be_named_after_dynasty", Boolean),
886 (Scopes::LandedTitle, "set_can_use_nomadic_naming", Boolean),
887 (Scopes::LandedTitle, "set_capital_barony", Yes),
888 (Scopes::LandedTitle, "set_capital_county", Scope(Scopes::LandedTitle)),
889 (Scopes::War, "set_casus_belli", Item(Item::CasusBelli)),
890 (Scopes::Character, "set_character_faith", Scope(Scopes::Faith)),
891 (Scopes::Character, "set_character_faith_history", Scope(Scopes::Faith)),
892 (Scopes::Character, "set_character_faith_with_conversion", Scope(Scopes::Faith)),
893 (Scopes::Character, "set_character_secret_faith", Scope(Scopes::Faith)),
894 (Scopes::Character, "set_child_of_concubine_on_pregnancy", Boolean),
895 (
896 Scopes::LandedTitle
897 .union(Scopes::Dynasty)
898 .union(Scopes::DynastyHouse)
899 .union(Scopes::Confederation),
900 "set_coa",
901 Vv(validate_set_coa),
902 ),
903 (Scopes::Confederation, "set_cohesion", ScriptValue),
904 (Scopes::LandedTitle, "set_color_from_title", Scope(Scopes::LandedTitle)),
905 (Scopes::Confederation, "set_confederation_color", Color),
906 (Scopes::Confederation, "set_confederation_name", Desc),
907 (Scopes::Character, "set_council_task", Vb(validate_set_council_task)),
908 (Scopes::LandedTitle, "set_county_culture", Scope(Scopes::Culture)),
909 (Scopes::LandedTitle, "set_county_faith", Scope(Scopes::Faith)),
910 (Scopes::Character, "set_court_language", Item(Item::Language)),
911 (Scopes::Character, "set_court_type", Item(Item::CourtType)),
912 (Scopes::Culture, "set_cultural_acceptance", TargetValue("target", Scopes::Culture, "value")),
913 (Scopes::Character, "set_culture", Scope(Scopes::Culture)),
914 (Scopes::Struggle, "set_culture_as_involved", Scope(Scopes::Culture)),
915 (Scopes::Struggle, "set_culture_as_uninvolved", Scope(Scopes::Culture)),
916 (Scopes::Culture, "set_culture_name", Vb(validate_set_culture_name)),
917 (Scopes::Culture, "set_culture_pillar", Item(Item::CulturePillar)),
918 (Scopes::Character, "set_culture_same_as", Scope(Scopes::Character)),
919 (Scopes::Character, "set_current_court_grandeur", ScriptValue),
920 (Scopes::LandedTitle, "set_de_jure_liege_title", Scope(Scopes::LandedTitle)),
921 (Scopes::Character, "set_dead_character_variable", Vb(validate_set_dead_character_variable)),
922 (Scopes::Character, "set_death_reason", Vb(validate_set_death_reason)),
923 (Scopes::Character, "set_default_education", Yes),
924 (Scopes::LandedTitle, "set_definitive_form", Boolean),
925 (Scopes::LandedTitle, "set_delete_on_destroy", Boolean),
926 (Scopes::Character, "set_designated_heir", Scope(Scopes::Character)),
927 (Scopes::Character, "set_designated_heir_unsafe", Scope(Scopes::Character)),
928 (Scopes::GreatHolyWar, "set_designated_winner", Scope(Scopes::Character)),
929 (Scopes::LandedTitle, "set_destroy_if_invalid_heir", Boolean),
930 (Scopes::LandedTitle, "set_destroy_on_gain_same_tier", Boolean),
931 (Scopes::LandedTitle, "set_destroy_on_succession", Boolean),
932 (Scopes::Character, "set_diarch", Scope(Scopes::Character)),
933 (Scopes::Character, "set_diarchy_mandate", Item(Item::DiarchyMandate)),
934 (Scopes::Character, "set_diarchy_swing", ScriptValue),
935 (Scopes::Character, "set_diarchy_type", Item(Item::DiarchyType)),
936 (Scopes::CombatSide, "set_disallowed_retreat", Boolean),
937 (Scopes::Domicile, "set_domicile_culture", Scope(Scopes::Culture)),
938 (Scopes::Domicile, "set_domicile_faith", Scope(Scopes::Faith)),
939 (Scopes::Domicile, "set_domicile_owner", Removed("1.16", "")),
940 (Scopes::Dynasty, "set_dynasty_name", Desc),
941 (Scopes::Character, "set_employer", Scope(Scopes::Character)),
942 (Scopes::Epidemic, "set_epidemic_outbreak_intensity", Choice(OUTBREAK_INTENSITIES)),
943 (Scopes::Character, "set_ethnicity", Item(Item::Ethnicity)),
944 (Scopes::Culture, "set_ethos_from", Scope(Scopes::Culture)),
945 (Scopes::Struggle, "set_faith_as_involved", Scope(Scopes::Faith)),
946 (Scopes::Struggle, "set_faith_as_uninvolved", Scope(Scopes::Faith)),
947 (Scopes::Character, "set_father", Scope(Scopes::Character)),
948 (Scopes::LandedTitle, "set_figurehead_title", UncheckedTodo),
949 (Scopes::Character, "set_focus", Vv(validate_set_focus)),
950 (Scopes::None, "set_focus_progress", UncheckedTodo),
951 (Scopes::None, "set_generated_asexuality_chance", ScriptValue),
952 (Scopes::None, "set_generated_bisexuality_chance", ScriptValue),
953 (Scopes::None, "set_generated_homosexuality_chance", ScriptValue),
954 (Scopes::None, "set_global_variable", Vbv(validate_set_variable)),
955 (Scopes::Province, "set_great_building", Item(Item::Building)),
957 (Scopes::Province, "set_great_building_slot", Item(Item::Building)),
958 (Scopes::GreatHolyWar, "set_great_holy_war_target", Vb(validate_set_ghw_target)),
959 (Scopes::Culture, "set_heritage_from", Scope(Scopes::Culture)),
960 (Scopes::Province, "set_holding_type", Item(Item::HoldingType)),
961 (Scopes::Character, "set_house", Scope(Scopes::DynastyHouse)),
962 (
963 Scopes::DynastyHouse,
964 "set_house_aspiration",
965 ItemTarget("type", Item::HouseAspiration, "level", Scopes::Value),
966 ),
967 (Scopes::DynastyHouse, "set_house_head", Scope(Scopes::Character)),
968 (Scopes::DynastyHouse, "set_house_name", Desc),
969 (Scopes::DynastyHouse, "set_house_name_from_dynasty", Scope(Scopes::Dynasty)),
970 (Scopes::DynastyHouse, "set_house_name_from_house", Scope(Scopes::DynastyHouse)),
971 (Scopes::DynastyHouse, "set_house_relation", Vb(validate_house_relation)),
972 (Scopes::Character, "set_immortal_age", ScriptValue),
973 (Scopes::LandedTitle, "set_important_location", Vb(validate_set_important_location)),
974 (Scopes::Character, "set_killer_public", Boolean),
975 (Scopes::Character, "set_knight_status", Choice(&["force", "forbid", "default", "allow"])),
976 (Scopes::Character, "set_known_bastard_on_pregnancy", Boolean),
977 (Scopes::LandedTitle, "set_landless_title", Boolean),
978 (Scopes::Culture, "set_language_from", Scope(Scopes::Culture)),
979 (Scopes::Confederation, "set_leading_house", Scope(Scopes::DynastyHouse)),
980 (Scopes::Legend, "set_legend_chapter", Vb(validate_set_legend_chapter)),
981 (Scopes::Legend, "set_legend_property", Vb(validate_set_legend_property)),
982 (Scopes::Legend, "set_legend_quality", Choice(LEGEND_QUALITY)),
983 (Scopes::None, "set_local_variable", Vbv(validate_set_variable)),
984 (Scopes::Character, "set_location", Vbv(validate_set_location)),
985 (Scopes::Character, "set_location_to_default", Boolean),
986 (Scopes::Culture, "set_martial_custom_from", Scope(Scopes::Culture)),
987 (Scopes::Artifact, "set_max_durability", ScriptValue),
988 (Scopes::Character, "set_mother", Scope(Scopes::Character)),
989 (Scopes::Culture, "set_name_list", Item(Item::NameList)),
990 (Scopes::LandedTitle, "set_no_automatic_claims", Yes),
991 (Scopes::LandedTitle, "set_noble_family_title", Boolean),
992 (Scopes::Character, "set_num_pregnancy_children", Integer),
993 (Scopes::Character, "set_override_designated_winner", Boolean),
994 (Scopes::Character, "set_owned_legend", Scope(Scopes::Legend)),
995 (Scopes::Artifact, "set_owner", Vbv(validate_set_owner)),
996 (Scopes::Character, "set_player_character", Scope(Scopes::Character)),
997 (Scopes::Character, "set_pregnancy_assumed_father", Scope(Scopes::Character)),
998 (Scopes::Character, "set_pregnancy_gender", Choice(&["male", "female", "random"])),
999 (Scopes::Character, "set_primary_spouse", Scope(Scopes::Character)),
1000 (Scopes::Character, "set_primary_title_to", Scope(Scopes::LandedTitle)),
1001 (Scopes::Character, "set_promoted_legend", Scope(Scopes::Legend)),
1002 (Scopes::Character, "set_real_father", Scope(Scopes::Character)),
1003 (Scopes::Character, "set_real_mother", Scope(Scopes::Character)),
1004 (Scopes::Character, "set_realm_capital", Scope(Scopes::LandedTitle)),
1005 (Scopes::Faith, "set_religious_head_title", Scope(Scopes::LandedTitle)),
1006 (Scopes::Character, "set_reserved_gold_maximum", ScriptValue),
1007 (Scopes::Character, "set_ruler_objective_decision", Item(Item::Decision)),
1008 (Scopes::Secret, "set_secret_owner", Scope(Scopes::Character)),
1009 (Scopes::Character, "set_sexuality", Item(Item::Sexuality)),
1010 (Scopes::Artifact, "set_should_decay", Boolean),
1011 (Scopes::Situation, "set_situation_center_province", Scope(Scopes::Province)),
1012 (Scopes::CombatSide, "set_skip_pursuit", Boolean),
1013 (Scopes::Faction, "set_special_character", Scope(Scopes::Character)),
1014 (
1015 Scopes::Activity,
1016 "set_special_guest",
1017 ItemTarget("type", Item::SpecialGuest, "target", Scopes::Character),
1018 ),
1019 (Scopes::Faction, "set_special_title", Scope(Scopes::LandedTitle)),
1020 (Scopes::LandedTitle, "set_state_faith", Scope(Scopes::Faith)),
1021 (Scopes::Character, "set_subject_contract_modification_blocked", Boolean),
1022 (Scopes::TaskContract, "set_task_contract_target", Scope(Scopes::Character)),
1023 (Scopes::LandedTitle, "set_title_color", Color),
1024 (Scopes::LandedTitle, "set_title_name", Vv(validate_set_title_name)),
1025 (Scopes::LandedTitle, "set_title_name_dynamic", Vv(validate_set_title_name)),
1026 (Scopes::LandedTitle, "set_title_prefix", Item(Item::Localization)),
1027 (Scopes::Character, "set_to_lowborn", Yes),
1028 (Scopes::Character, "set_trait_rank", Vb(validate_change_trait_rank)),
1029 (Scopes::TravelPlan, "set_travel_leader", Scope(Scopes::Character)),
1030 (Scopes::TravelPlan, "set_travel_plan_owner", Scope(Scopes::Character)),
1031 (Scopes::Character, "set_treasury_budget_base_rate_military", ScriptValue),
1032 (Scopes::Character, "set_treasury_budget_base_rate_ministries", ScriptValue),
1033 (Scopes::Character, "set_treasury_budget_base_rate_salaries", ScriptValue),
1034 (Scopes::None, "set_variable", Vbv(validate_set_variable)),
1035 (Scopes::Character, "set_vassal_contract_modification_blocked", Boolean),
1036 (Scopes::LandedTitle, "set_vassal_wars_are_redirected_to_holder", Removed("1.18.1", "")),
1037 (Scopes::GreatHolyWar, "set_war_declarer", Scope(Scopes::Character)),
1038 (Scopes::CombatSide, "set_winner", Boolean),
1039 (Scopes::None, "setup_claim_cb", Vb(validate_setup_cb)),
1040 (Scopes::None, "setup_de_jure_cb", Vb(validate_setup_cb)),
1041 (Scopes::None, "setup_invasion_cb", Vb(validate_setup_cb)),
1042 (Scopes::None, "show_as_tooltip", Control),
1043 (Scopes::Activity, "skip_activity_phase", Boolean),
1044 (Scopes::all(), "spawn_activity", Removed("1.9", "")),
1045 (Scopes::Character, "spawn_army", Vb(validate_spawn_army)),
1046 (Scopes::Secret, "spend_by", Scope(Scopes::Character)),
1047 (Scopes::Character, "sponsor_inspiration", Scope(Scopes::Inspiration)),
1048 (Scopes::Character, "start_default_task", Yes),
1049 (Scopes::Character, "start_diarchy", Removed("1.16", "replaced with try_start_diarchy")),
1050 (Scopes::GreatHolyWar, "start_ghw_war", Item(Item::CasusBelli)),
1051 (Scopes::Faith, "start_great_holy_war", Vb(validate_set_ghw_target)),
1052 (Scopes::Character, "start_scheme", Vb(validate_start_scheme)),
1053 (Scopes::None, "start_struggle", Vb(validate_start_struggle)),
1054 (Scopes::Character, "start_travel_plan", Vb(validate_start_travel_plan)),
1055 (Scopes::Character, "start_tributary", Vb(validate_start_tributary)),
1056 (Scopes::None, "start_tutorial_lesson", UncheckedTodo),
1057 (Scopes::None, "start_situation", Vb(validate_start_situation)),
1058 (Scopes::Character, "start_war", Vb(validate_start_war)),
1059 (Scopes::None, "stats_log", UncheckedTodo),
1060 (Scopes::Character, "stop_promoting_legend", Yes),
1061 (Scopes::Character, "store_localized_text_in_death", Identifier("text name")),
1062 (Scopes::Character, "stress_impact", Vb(validate_stress_impact)),
1063 (Scopes::Army, "subtract_supply", NonNegativeValue),
1064 (Scopes::None, "switch", Vb(validate_switch)),
1065 (Scopes::Character, "take_hostage", Scope(Scopes::Character)),
1066 (
1067 Scopes::LandedTitle,
1068 "title_create_faction",
1069 ItemTarget("type", Item::Faction, "target", Scopes::Character),
1070 ),
1071 (Scopes::LandedTitle, "title_join_faction", Scope(Scopes::Faction)),
1072 (Scopes::LandedTitle, "title_leave_faction", Scope(Scopes::Faction)),
1073 (Scopes::LandedTitle, "transfer_owned_maa_control", Scope(Scopes::LandedTitle)),
1074 (Scopes::Regiment, "transfer_title_maa", Scope(Scopes::LandedTitle)),
1075 (Scopes::LandedTitle, "transfer_title_maa_ownership", Scope(Scopes::LandedTitle)),
1076 (
1077 Scopes::Character,
1078 "tributary_contract_set_obligation_level",
1079 Vb(validate_contract_set_obligation_level),
1080 ),
1081 (Scopes::None, "trigger_event", Vbv(validate_trigger_event)),
1082 (Scopes::Situation, "trigger_situation_catalyst", Vbv(validate_situation_catalyst)),
1083 (Scopes::SituationSubRegion, "trigger_sub_region_catalyst", Vbv(validate_situation_catalyst)),
1084 (Scopes::None, "try_create_important_action", Vb(validate_try_create_important_action)),
1085 (Scopes::None, "try_create_suggestion", Vb(validate_try_create_suggestion)),
1086 (Scopes::Character, "try_start_diarchy", Item(Item::DiarchyType)),
1087 (Scopes::Artifact, "unequip_artifact_from_owner", Yes),
1088 (Scopes::Character, "unlearn_court_language_of", ScopeOkThis(Scopes::Character)),
1089 (Scopes::Character, "unlearn_language", Item(Item::Language)),
1090 (Scopes::Character, "unlearn_language_of_culture", Scope(Scopes::Culture)),
1091 (Scopes::GreatHolyWar, "unpledge_attacker", Scope(Scopes::Character)),
1092 (Scopes::GreatHolyWar, "unpledge_defender", Scope(Scopes::Character)),
1093 (Scopes::Province, "upgrade_building_effect", Item(Item::Building)),
1094 (Scopes::LandedTitle, "update_dynamic_coa", Yes),
1095 (Scopes::Character, "use_hook", Scope(Scopes::Character)),
1096 (Scopes::Character, "vassal_contract_decrease_obligation_level", Item(Item::SubjectContract)),
1097 (Scopes::Character, "vassal_contract_increase_obligation_level", Item(Item::SubjectContract)),
1098 (
1099 Scopes::Character,
1100 "vassal_contract_set_obligation_level",
1101 Vb(validate_contract_set_obligation_level),
1102 ),
1103 (Scopes::Character, "visit_court_of", Scope(Scopes::Character)),
1104 (Scopes::None, "while", Control),
1105 (Scopes::all(), "win_combat", Removed("1.9", "")),
1106];