Scripted effect
vassal_revocation_tyranny_effect
vassal_revocation_tyranny_effect = yesgame/common/scripted_effects/00_interaction_effects.txt, line 902 (95 lines). No parameters.
vassal_revocation_tyranny_effect is a scripted effect in Crusader Kings III, written at line 902 of its file. It takes no parameters: vassal_revocation_tyranny_effect = yes. The game's script calls it in 2 places, among them Retract Vassal (interaction) and retract_vassal_interaction_effect (scripted effect). Its body carries 3 texts of the game's own for the player. Patch 1.20.1.2, from game/common/scripted_effects/00_interaction_effects.txt.
What it does
If
a check the game hides
Then
If
has_revoke_title_reason = scope:recipient
Then
consume_revoke_title_reason = scope:recipient
Otherwise
change_strife_opinion = major_strife_gain
Else if
vassal_revocation_is_tyrannical_trigger = { VASSAL = scope:recipient }
Then
- If has Legitimacy: Loses 50 Legitimacy
add_tyranny = { … }
Else if
has_revoke_title_reason = scope:recipient
Then
Else if
- Their rite:
- Their faith:
faith_hostility_level = { target = scope:recipient.faith value >= faith_hostile_level }
Then
If
Then
- Every ⟨faith⟩ vassal:
- Where: Their faith is the same as that of recipient
- Opinion: Angry (-5)
• 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 (95 lines of game script)
vassal_revocation_tyranny_effect = { #Despite its name this is referenced when _retracting_ vassals.
if = {
limit = { exists = scope:use_strife_not_tyranny }
# If you have revocation reason, we allow that.
if = {
limit = { has_revoke_title_reason = scope:recipient }
consume_revoke_title_reason = scope:recipient
}
else_if = { #Admin liege revoking from admin vassal
limit = {
government_has_mechanic = administrative
scope:recipient = {
government_has_mechanic = administrative
}
}
}
else = { change_strife_opinion = major_strife_gain }
}
else_if = {
limit = {
vassal_revocation_is_tyrannical_trigger = { VASSAL = scope:recipient }
}
# Special Legitimacy loss if you're revoking without a reason
if = {
limit = { has_legitimacy = yes }
add_legitimacy = minor_legitimacy_loss
}
add_tyranny = {
value = revoke_vassal_tyranny_gain
if = {
limit = {
scope:recipient = {
is_imprisoned = yes
NOT = { is_imprisoned_by = scope:puppet_or_actor }
}
NOT = {
scope:puppet_or_actor = { has_revoke_title_reason = scope:recipient }
}
}
multiply = 2
}
}
}
else_if = {
limit = {
has_revoke_title_reason = scope:recipient
}
custom_tooltip = IS_ALLOWED_TO_REVOKE_VASSAL_DESC
}
else_if = {
limit = {
rite = {
OR = {
rite_has_parameter = pluralism_righteous_revocation_tyranny_reduced
rite_has_parameter = pluralism_fundamentalist_revocation_tyranny_minimal
}
}
faith = {
faith_hostility_level = {
target = scope:recipient.faith
value >= faith_hostile_level
}
}
}
if = {
limit = {
rite = { rite_has_parameter = pluralism_fundamentalist_revocation_tyranny_minimal }
faith = {
faith_hostility_level = {
target = scope:recipient.faith
value = faith_hostile_level
}
}
}
custom_tooltip = IS_ALLOWED_TO_REVOKE_HOSTILE_INFIDEL_VASSAL
}
else = {
custom_tooltip = IS_ALLOWED_TO_REVOKE_EVIL_INFIDEL_VASSAL
}
every_vassal = {
limit = {
faith = scope:recipient.faith
}
custom = INFIDEL_REVOCATION_OPINION
add_opinion = {
modifier = angry_opinion
target = scope:puppet_or_actor
opinion = {
value = revoke_vassal_tyranny_gain
multiply = -1
}
}
}
}
}As written in game/common/scripted_effects/00_interaction_effects.txt.
Where it is used
Every place in common/, events/ and history/ that calls vassal_revocation_tyranny_effect.
Character interactions (1)
Scripted effects (1)
Source: game/common/scripted_effects/00_interaction_effects.txt and every file of common/, events/ and history/ that calls it, Crusader Kings III 1.20.1.2.