Scripted trigger
secret_type_is_blackmailable_simple_trigger
secret_type_is_blackmailable_simple_trigger = { BLACKMAILER = … TARGET = … TYPE = … }game/common/scripted_triggers/00_secret_triggers.txt, line 339 (128 lines). Parameters: $BLACKMAILER$, $TARGET$, $TYPE$.
secret_type_is_blackmailable_simple_trigger is a scripted trigger in Crusader Kings III, written at line 339 of its file. A call passes 3 parameters: BLACKMAILER, TARGET and TYPE. The game's script calls it in 2 places, among them add_random_blackmailable_secret_effect (scripted effect) and random_blackmailable_secret_can_be_added_simple_trigger (scripted trigger). Patch 1.20.1.2, from game/common/scripted_triggers/00_secret_triggers.txt.
The comment above it in the file
Simple Check if a given Secret Type is blackmailable NOTE THAT THIS CAN ONLY EVER CORRECTLY EVALUATE SECRETS THAT THE TARGET DOES NOT ALREADY HAVE ALSO NOTE THAT IT WILL ONLY EVER RETURN TRUE FOR SECRETS THAT ARE NOT RELIANT ON HAVING A VALID TARGET
What it checks
save_temporary_scope_value_as = { name = type_flag value = flag:$TYPE$ }If
scope:type_flag = flag:secret_deviant
Then
secret_deviant_is_valid_trigger = { OWNER = $TARGET$ }One of these
secret_deviant_is_shunned_trigger = { OWNER = $TARGET$ }or
secret_deviant_is_criminal_trigger = { OWNER = $TARGET$ }
Else if
scope:type_flag = flag:secret_homosexual
Then
secret_homosexual_is_valid_trigger = { OWNER = $TARGET$ }One of these
secret_homosexual_is_shunned_trigger = { OWNER = $TARGET$ }or
secret_homosexual_is_criminal_trigger = { OWNER = $TARGET$ }
Else if
scope:type_flag = flag:secret_cannibal
Then
secret_cannibal_is_valid_trigger = { OWNER = $TARGET$ }One of these
secret_cannibal_is_shunned_trigger = { OWNER = $TARGET$ }or
secret_cannibal_is_criminal_trigger = { OWNER = $TARGET$ }
Else if
scope:type_flag = flag:secret_non_believer
Then
secret_non_believer_is_valid_trigger = { OWNER = $TARGET$ }One of these
secret_non_believer_is_shunned_trigger = { OWNER = $TARGET$ }or
secret_non_believer_is_criminal_trigger = { OWNER = $TARGET$ }
Else if
scope:type_flag = flag:secret_incest
Then
secret_incest_is_valid_trigger = { OWNER = $TARGET$ }One of these
secret_incest_is_shunned_trigger = { OWNER = $TARGET$ }or
secret_incest_is_criminal_trigger = { OWNER = $TARGET$ }
Else if
scope:type_flag = flag:secret_witch
Then
secret_witch_is_valid_trigger = { OWNER = $TARGET$ }One of these
secret_witch_is_shunned_trigger = { OWNER = $TARGET$ }or
secret_witch_is_criminal_trigger = { OWNER = $TARGET$ }
NOT = { $BLACKMAILER$ = { is_witch_trigger = yes } }
Else if
scope:type_flag = flag:secret_crypto_religionist
Then
secret_crypto_religionist_is_valid_trigger = { OWNER = $TARGET$ }One of these
secret_crypto_religionist_is_shunned_trigger = { OWNER = $TARGET$ }or
secret_crypto_religionist_is_criminal_trigger = { OWNER = $TARGET$ }
Otherwise
- Never
• 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)
secret_type_is_blackmailable_simple_trigger = {
# TYPE
# TARGET
save_temporary_scope_value_as = {
name = type_flag
value = flag:$TYPE$
}
trigger_if = {
limit = {
scope:type_flag = flag:secret_deviant
}
secret_deviant_is_valid_trigger = {
OWNER = $TARGET$
}
OR = {
secret_deviant_is_shunned_trigger = {
OWNER = $TARGET$
}
secret_deviant_is_criminal_trigger = {
OWNER = $TARGET$
}
}
}
trigger_else_if = {
limit = {
scope:type_flag = flag:secret_homosexual
}
secret_homosexual_is_valid_trigger = {
OWNER = $TARGET$
}
OR = {
secret_homosexual_is_shunned_trigger = {
OWNER = $TARGET$
}
secret_homosexual_is_criminal_trigger = {
OWNER = $TARGET$
}
}
}
trigger_else_if = {
limit = {
scope:type_flag = flag:secret_cannibal
}
secret_cannibal_is_valid_trigger = {
OWNER = $TARGET$
}
OR = {
secret_cannibal_is_shunned_trigger = {
OWNER = $TARGET$
}
secret_cannibal_is_criminal_trigger = {
OWNER = $TARGET$
}
}
}
trigger_else_if = {
limit = {
scope:type_flag = flag:secret_non_believer
}
secret_non_believer_is_valid_trigger = {
OWNER = $TARGET$
}
OR = {
secret_non_believer_is_shunned_trigger = {
OWNER = $TARGET$
}
secret_non_believer_is_criminal_trigger = {
OWNER = $TARGET$
}
}
}
trigger_else_if = {
limit = {
scope:type_flag = flag:secret_incest
}
secret_incest_is_valid_trigger = {
OWNER = $TARGET$
}
OR = {
secret_incest_is_shunned_trigger = {
OWNER = $TARGET$
}
secret_incest_is_criminal_trigger = {
OWNER = $TARGET$
}
}
}
trigger_else_if = {
limit = {
scope:type_flag = flag:secret_witch
}
secret_witch_is_valid_trigger = {
OWNER = $TARGET$
}
OR = {
secret_witch_is_shunned_trigger = {
OWNER = $TARGET$
}
secret_witch_is_criminal_trigger = {
OWNER = $TARGET$
}
}
NOT = {
$BLACKMAILER$ = { is_witch_trigger = yes }
}
}
trigger_else_if = {
limit = {
scope:type_flag = flag:secret_crypto_religionist
}
secret_crypto_religionist_is_valid_trigger = {
OWNER = $TARGET$
}
OR = {
secret_crypto_religionist_is_shunned_trigger = {
OWNER = $TARGET$
}
secret_crypto_religionist_is_criminal_trigger = {As written in game/common/scripted_triggers/00_secret_triggers.txt.
The first 120 of its 128 lines; the rest is in game/common/scripted_triggers/00_secret_triggers.txt from line 339.
Where it is used
Every place in common/, events/ and history/ that calls secret_type_is_blackmailable_simple_trigger.
Scripted effects (1)
Scripted triggers (1)
Source: game/common/scripted_triggers/00_secret_triggers.txt and every file of common/, events/ and history/ that calls it, Crusader Kings III 1.20.1.2.