idk why I dont have a cursor
This commit is contained in:
parent
701d55c01f
commit
cda3acdcea
349 changed files with 78627 additions and 7804 deletions
595
common/scripted_triggers/00_secret_triggers.txt
Normal file
595
common/scripted_triggers/00_secret_triggers.txt
Normal file
|
|
@ -0,0 +1,595 @@
|
|||
|
||||
#Triggers revolving around secrets
|
||||
|
||||
#has_secret_unknown_by_root_trigger
|
||||
#Being_blackmailed_by_root_trigger
|
||||
#is_blackmailable_secret_trigger
|
||||
#secret_is_always_interesting_trigger
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
has_secret_unknown_by_root_trigger = {
|
||||
any_secret = {
|
||||
NOT = {
|
||||
is_known_by = root
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
being_blackmailed_by_root_trigger = {
|
||||
root = {
|
||||
OR = {
|
||||
has_hook_of_type = {
|
||||
target = prev
|
||||
type = weak_blackmail_hook
|
||||
}
|
||||
has_hook_of_type = {
|
||||
target = prev
|
||||
type = strong_blackmail_hook
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
is_blackmailable_secret_trigger = { #Should not include is known
|
||||
$PARTICIPANT$ = { save_temporary_scope_as = is_blackmailable_secret_participant }
|
||||
$BLACKMAILER$ = { save_temporary_scope_as = is_blackmailable_secret_blackmailer }
|
||||
is_shunned_or_criminal_for = scope:is_blackmailable_secret_participant
|
||||
can_be_exposed_by = scope:is_blackmailable_secret_blackmailer
|
||||
#Can we actually add a hook of the correct type
|
||||
trigger_if = {
|
||||
limit = { is_shunned_for = scope:is_blackmailable_secret_participant }
|
||||
custom_description = {
|
||||
text = "already_has_a_superior_hook"
|
||||
subject = scope:is_blackmailable_secret_blackmailer
|
||||
object = scope:is_blackmailable_secret_participant
|
||||
scope:is_blackmailable_secret_blackmailer = {
|
||||
can_add_hook = {
|
||||
type = weak_blackmail_hook
|
||||
target = scope:is_blackmailable_secret_participant
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
trigger_if = {
|
||||
limit = { is_criminal_for = scope:is_blackmailable_secret_participant }
|
||||
custom_description = {
|
||||
text = "already_has_a_superior_hook"
|
||||
subject = scope:is_blackmailable_secret_blackmailer
|
||||
object = scope:is_blackmailable_secret_participant
|
||||
scope:is_blackmailable_secret_blackmailer = {
|
||||
can_add_hook = {
|
||||
type = strong_blackmail_hook
|
||||
target = scope:is_blackmailable_secret_participant
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#If an AI promised not to reveal a secret they have to be very dishonest to do it
|
||||
trigger_if = {
|
||||
limit = { exists = var:promised_not_to_reveal}
|
||||
custom_description = {
|
||||
text = "promised_not_to_reveal_secret"
|
||||
var:promised_not_to_reveal = scope:is_blackmailable_secret_blackmailer
|
||||
scope:is_blackmailable_secret_blackmailer = {
|
||||
is_ai = yes
|
||||
ai_honor <= medium_negative_ai_value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Some things you can't blackmail others about
|
||||
custom_description = {
|
||||
text = "cant_blackmail_another_witch"
|
||||
subject = scope:is_blackmailable_secret_blackmailer
|
||||
NAND = {
|
||||
secret_type = secret_witch
|
||||
scope:is_blackmailable_secret_blackmailer = { is_witch_trigger = yes }
|
||||
}
|
||||
}
|
||||
# Can't blackmail a crypto-religionist of the same faith
|
||||
trigger_if = {
|
||||
limit = { secret_type = secret_crypto_religionist }
|
||||
custom_description = {
|
||||
text = cannot_blackmail_crypto_religionist_of_same_faith
|
||||
scope:is_blackmailable_secret_blackmailer = {
|
||||
NOR = {
|
||||
exists = secret_faith
|
||||
secret_faith ?= scope:is_blackmailable_secret_participant.secret_faith
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
trigger_if = {
|
||||
limit = { secret_type = secret_lover }
|
||||
custom_description = {
|
||||
text = cannot_blackmail_own_lover_secret
|
||||
NOT = { secret_target = scope:is_blackmailable_secret_blackmailer }
|
||||
}
|
||||
}
|
||||
trigger_if = {
|
||||
limit = {
|
||||
secret_type = secret_unmarried_illegitimate_child
|
||||
}
|
||||
custom_description = {
|
||||
text = cannot_blackmail_over_own_bastard
|
||||
secret_target = {
|
||||
NOR = {
|
||||
mother = scope:is_blackmailable_secret_blackmailer
|
||||
real_father = scope:is_blackmailable_secret_blackmailer
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
trigger_if = {
|
||||
limit = {
|
||||
secret_type = secret_disputed_heritage
|
||||
}
|
||||
custom_description = {
|
||||
text = cannot_blackmail_over_own_bastard
|
||||
NOT = {
|
||||
secret_target = {
|
||||
OR = {
|
||||
mother = scope:is_blackmailable_secret_blackmailer
|
||||
real_father = scope:is_blackmailable_secret_blackmailer
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
secret_is_always_interesting_trigger = { #Even if they can't be used for blackmail
|
||||
OR = {
|
||||
secret_type = secret_lover
|
||||
secret_type = secret_murder
|
||||
secret_type = secret_murder_attempt
|
||||
secret_type = secret_disputed_heritage
|
||||
secret_type = secret_unmarried_illegitimate_child
|
||||
secret_type = secret_crypto_religionist
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#Checks whether a secret would incriminate its secret target if known
|
||||
#Parameters:
|
||||
# TARGET
|
||||
secret_is_incriminating_trigger = {
|
||||
OR = {
|
||||
exists = secret_target
|
||||
any_secret_participant = {
|
||||
count >= 1
|
||||
}
|
||||
}
|
||||
OR = {
|
||||
AND = {
|
||||
secret_type = secret_lover
|
||||
secret_target = $TARGET$
|
||||
}
|
||||
AND = {
|
||||
secret_type = secret_disputed_heritage
|
||||
OR = {
|
||||
secret_target = $TARGET$
|
||||
secret_target.mother = $TARGET$
|
||||
any_secret_participant = {
|
||||
this = $TARGET$
|
||||
}
|
||||
}
|
||||
}
|
||||
AND = {
|
||||
secret_type = secret_unmarried_illegitimate_child
|
||||
OR = {
|
||||
secret_target = $TARGET$
|
||||
secret_target.mother = $TARGET$
|
||||
any_secret_participant = {
|
||||
this = $TARGET$
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
###Expose secret triggers###
|
||||
|
||||
block_exposed_secret_general_notifications = { #Because you're already getting your own, special event
|
||||
OR = {
|
||||
#Is one of the involved parties
|
||||
this = scope:secret_exposer
|
||||
this = scope:exposed_secret_character
|
||||
this = scope:exposed_secret_owner
|
||||
AND = {
|
||||
exists = scope:exposed_secret_target
|
||||
this = scope:exposed_secret_target
|
||||
}
|
||||
#For lover secret: No events for spouses or lovers, they get infidelity_confrontation.1000 instead
|
||||
trigger_if = {
|
||||
limit = { scope:secret = { secret_type = secret_lover } }
|
||||
OR = {
|
||||
is_spouse_of = scope:exposed_secret_owner
|
||||
has_relation_lover = scope:exposed_secret_owner
|
||||
is_spouse_of = scope:exposed_secret_target
|
||||
has_relation_lover = scope:exposed_secret_target
|
||||
}
|
||||
}
|
||||
#For bastard secrets: No events for child mother and real father
|
||||
trigger_else_if = {
|
||||
limit = {
|
||||
scope:secret = {
|
||||
OR = {
|
||||
secret_type = secret_disputed_heritage
|
||||
secret_type = secret_unmarried_illegitimate_child
|
||||
}
|
||||
}
|
||||
}
|
||||
OR = {
|
||||
scope:exposed_secret_target.mother = scope:show_me #mother
|
||||
scope:exposed_secret_target.real_father = scope:show_me #real father
|
||||
}
|
||||
}
|
||||
trigger_else = { } #Just to avoid errors
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
show_me_exposed_secret_event_trigger = {
|
||||
expose_secret_scope_saving_trigger = { SECRET = $SECRET$ CHARACTER = $CHARACTER$ } #Saves show_me, exposed_secret_character, exposed_secret_owner & exposed_secret_target
|
||||
block_exposed_secret_general_notifications = no #Isn't the owner/target/exposer or other involved character
|
||||
#Is someone who cares
|
||||
OR = {
|
||||
is_spouse_of_even_if_dead = scope:exposed_secret_character
|
||||
is_close_family_of = scope:exposed_secret_character
|
||||
AND = {
|
||||
exists = scope:exposed_secret_character.player_heir
|
||||
scope:exposed_secret_character = { player_heir = scope:show_me }
|
||||
}
|
||||
AND = {
|
||||
scope:exposed_secret_character = { exists = liege }
|
||||
scope:exposed_secret_character = { liege = scope:show_me }
|
||||
}
|
||||
AND = { #For bastards, fathers also care
|
||||
$SECRET$ = { secret_type = secret_disputed_heritage }
|
||||
exists = scope:father
|
||||
this = scope:father
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
show_me_exposed_secret_feed_message_trigger = {
|
||||
expose_secret_scope_saving_trigger = { SECRET = $SECRET$ CHARACTER = $CHARACTER$ } #Saves show_me, exposed_secret_character, exposed_secret_owner & exposed_secret_target
|
||||
block_exposed_secret_general_notifications = no #Isn't the owner/target/exposer or other involved character
|
||||
NOT = { show_me_exposed_secret_event_trigger = { SECRET = $SECRET$ CHARACTER = $CHARACTER$ } } #I.e. hasn't already been notified
|
||||
}
|
||||
|
||||
expose_secret_scope_saving_trigger = { #Because we save the same scopes in two triggers that need to be the same
|
||||
save_temporary_scope_as = show_me
|
||||
$CHARACTER$ = {
|
||||
save_temporary_scope_as = exposed_secret_character #Most of the time this is owner, but for secrets with targets/other involved parties it can also be them
|
||||
}
|
||||
$SECRET$ = {
|
||||
secret_owner = { save_temporary_scope_as = exposed_secret_owner }
|
||||
trigger_if = {
|
||||
limit = { exists = secret_target }
|
||||
secret_target = { save_temporary_scope_as = exposed_secret_target }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
###Triggers for give_random_likely_secret_effect
|
||||
|
||||
give_random_likely_secret_murder_attempt_victim_trigger = {
|
||||
is_ai = yes
|
||||
save_temporary_scope_as = victim
|
||||
scope:murderer = {
|
||||
NOT = {
|
||||
any_secret = {
|
||||
secret_type = secret_murder_attempt
|
||||
secret_target = scope:victim
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
give_random_likely_secret_lover_trigger = {
|
||||
is_adult = yes
|
||||
is_ai = yes
|
||||
NOT = { any_relation = { type = lover this = scope:lover_1 } }
|
||||
NOT = { is_spouse_of = scope:lover_1 }
|
||||
NOT = { has_trait = celibate }
|
||||
opinion = {
|
||||
target = scope:lover_1
|
||||
value >= 20
|
||||
}
|
||||
reverse_opinion = {
|
||||
target = scope:lover_1
|
||||
value >= 20
|
||||
}
|
||||
save_temporary_scope_as = lover_2
|
||||
possible_mutual_interest_trigger = { CHARACTER_1 = scope:lover_1 CHARACTER_2 = scope:lover_2 }
|
||||
}
|
||||
|
||||
give_random_likely_secret_incestous_lover_trigger = {
|
||||
is_adult = yes
|
||||
is_ai = yes
|
||||
NOT = { any_relation = { type = lover this = scope:lover_1 } }
|
||||
NOT = { is_spouse_of = scope:lover_1 }
|
||||
OR = {
|
||||
save_temporary_scope_as = lover_2
|
||||
possible_mutual_interest_trigger = { CHARACTER_1 = scope:lover_1 CHARACTER_2 = scope:lover_2 }
|
||||
AND = {
|
||||
matching_gender_and_sexuality_trigger = { CHARACTER_1 = scope:lover_1 CHARACTER_2 = scope:lover_2 }
|
||||
opinion = {
|
||||
target = scope:lover_1
|
||||
value >= 40
|
||||
}
|
||||
reverse_opinion = {
|
||||
target = scope:lover_1
|
||||
value >= 40
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#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
|
||||
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 = {
|
||||
OWNER = $TARGET$
|
||||
}
|
||||
}
|
||||
}
|
||||
trigger_else = { #Murder stuff, Bastard secrets, etc.
|
||||
always = no
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
random_blackmailable_secret_can_be_added_simple_trigger = {
|
||||
$TARGET$ = { save_temporary_scope_as = target }
|
||||
OR = {
|
||||
AND = {
|
||||
secret_type_is_blackmailable_simple_trigger = {
|
||||
TYPE = secret_deviant
|
||||
TARGET = scope:target
|
||||
BLACKMAILER = $BLACKMAILER$
|
||||
}
|
||||
scope:target = {
|
||||
NOT = {
|
||||
any_secret = {
|
||||
secret_type = secret_deviant
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
AND = {
|
||||
secret_type_is_blackmailable_simple_trigger = {
|
||||
TYPE = secret_homosexual
|
||||
TARGET = scope:target
|
||||
BLACKMAILER = $BLACKMAILER$
|
||||
}
|
||||
scope:target = {
|
||||
NOT = {
|
||||
any_secret = {
|
||||
secret_type = secret_homosexual
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
AND = {
|
||||
secret_type_is_blackmailable_simple_trigger = {
|
||||
TYPE = secret_cannibal
|
||||
TARGET = scope:target
|
||||
BLACKMAILER = $BLACKMAILER$
|
||||
}
|
||||
scope:target = {
|
||||
NOT = {
|
||||
any_secret = {
|
||||
secret_type = secret_cannibal
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
AND = {
|
||||
secret_type_is_blackmailable_simple_trigger = {
|
||||
TYPE = secret_non_believer
|
||||
TARGET = scope:target
|
||||
BLACKMAILER = $BLACKMAILER$
|
||||
}
|
||||
scope:target = {
|
||||
NOT = {
|
||||
any_secret = {
|
||||
secret_type = secret_non_believer
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
AND = {
|
||||
secret_type_is_blackmailable_simple_trigger = {
|
||||
TYPE = secret_incest
|
||||
TARGET = scope:target
|
||||
BLACKMAILER = $BLACKMAILER$
|
||||
}
|
||||
scope:target = {
|
||||
NOT = {
|
||||
any_secret = {
|
||||
secret_type = secret_incest
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
AND = {
|
||||
secret_type_is_blackmailable_simple_trigger = {
|
||||
TYPE = secret_witch
|
||||
TARGET = scope:target
|
||||
BLACKMAILER = $BLACKMAILER$
|
||||
}
|
||||
scope:target = {
|
||||
NOT = {
|
||||
any_secret = {
|
||||
secret_type = secret_witch
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
AND = {
|
||||
secret_type_is_blackmailable_simple_trigger = {
|
||||
TYPE = secret_crypto_religionist
|
||||
TARGET = scope:target
|
||||
BLACKMAILER = $BLACKMAILER$
|
||||
}
|
||||
scope:target = {
|
||||
NOT = {
|
||||
any_secret = {
|
||||
secret_type = secret_crypto_religionist
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# If during the council task find secret's the spymaster can fabricate a hook on the target
|
||||
spymaster_task_courtier_valid_for_hook_fabrication_trigger = {
|
||||
is_available_ai_adult = yes
|
||||
save_temporary_scope_as = target_check
|
||||
NOR = {
|
||||
this = scope:councillor
|
||||
root = {
|
||||
has_hook = scope:target_check
|
||||
}
|
||||
root = {
|
||||
any_scheme = {
|
||||
scheme_target_character = scope:target_character
|
||||
scheme_is_character_agent = scope:target_check
|
||||
}
|
||||
}
|
||||
any_secret = { # Should prioritise actually finding Secrets
|
||||
is_known_by = root
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue