N3OW/common/combat_phase_events/00_knight_phase_events.txt

1893 lines
39 KiB
Text
Raw Normal View History

2026-05-29 06:16:14 -04:00
knight_none = {
type = knight
chance = {
base = 2000
modifier = {
factor = 1.5
has_perk = stalwart_leader_perk
is_ai = no
}
modifier = {
factor = 1.15
has_perk = stalwart_leader_perk
is_ai = yes
}
modifier = {
factor = 1.25
is_acclaimed = yes
}
modifier = {
factor = 1.25
dynasty ?= {
has_dynasty_perk = warfare_legacy_3
}
}
# Wounded knights hang back
modifier = {
factor = 1.1
has_trait_rank = {
trait = wounded
rank = 1
}
}
modifier = {
factor = 1.2
has_trait_rank = {
trait = wounded
rank = 2
}
}
modifier = {
factor = 1.3
OR = {
has_trait_rank = {
trait = wounded
rank = 3
}
has_trait = maimed
}
}
}
}
knight_berserker_attack = {
type = knight
is_valid = {
has_trait = berserker
scope:combat_side.enemy_side = {
any_side_knight = {
is_alive = yes
this.prowess <= root.prowess_for_combat_event_opponent
}
}
}
chance = {
base = 30
modifier = {
factor = 1.5
has_perk = stalwart_leader_perk
is_ai = no
}
modifier = {
factor = 1.15
has_perk = stalwart_leader_perk
is_ai = yes
}
modifier = {
factor = 1.25
is_acclaimed = yes
}
modifier = {
factor = 1.25
dynasty ?= {
has_dynasty_perk = warfare_legacy_3
}
}
modifier = {
factor = 2
has_trait = wrathful
}
modifier = {
factor = 10
has_trait = giant
}
modifier = {
factor = 1.25
has_trait_rank = {
trait = wounded
rank = 1
}
}
modifier = {
factor = 1.25
has_trait_rank = {
trait = wounded
rank = 2
}
}
modifier = {
factor = 1.25
has_trait_rank = {
trait = wounded
rank = 3
}
}
modifier = {
factor = 0.25
OR = {
has_trait = one_legged
has_trait = disfigured
has_trait = one_eyed
has_trait = maimed
}
}
}
effect = {
save_scope_as = knight
if = {
limit = {
scope:combat_side.enemy_side = {
any_side_knight = {
is_alive = yes
this.prowess <= scope:knight.prowess_for_combat_event_opponent
}
}
}
scope:combat_side.enemy_side = {
random_side_knight = {
limit = {
is_alive = yes
this.prowess <= scope:knight.prowess_for_combat_event_opponent
}
weight = {
base = 100
modifier = {
factor = 0.75
is_acclaimed = yes
}
modifier = {
factor = 0.75
has_perk = stalwart_leader_perk
}
modifier = {
factor = 0.75
dynasty ?= {
has_dynasty_perk = warfare_legacy_3
}
}
}
save_temporary_scope_as = enemy_knight
}
}
if = {
limit = {
scope:knight = { is_alive = yes }
scope:enemy_knight = { is_alive = yes }
}
add_prestige = knight_prestige_gain_on_kill
knight_increase_prowess_chance_effect = yes
berserker_kill_version_randomization_effect = yes
scope:enemy_knight = {
accolade = { add_glory = minimal_glory_gain }
}
}
}
}
}
knight_become_berserker = {
type = knight
is_valid = {
faith = {
has_doctrine = tenet_warmonger
}
OR = {
culture = { has_cultural_pillar = heritage_north_germanic }
religion = religion:folkgerman_religion
}
NOR = {
has_trait = craven
has_trait = berserker
has_trait = calm
}
}
chance = {
base = 30
modifier = {
factor = 1.5
has_perk = stalwart_leader_perk
is_ai = no
}
modifier = {
factor = 1.15
has_perk = stalwart_leader_perk
is_ai = yes
}
modifier = {
factor = 1.25
is_acclaimed = yes
}
modifier = {
factor = 1.25
dynasty ?= {
has_dynasty_perk = warfare_legacy_3
}
}
modifier = {
factor = 5
has_trait = wrathful
}
modifier = {
factor = 5
has_trait = giant
}
modifier = {
factor = 3
has_trait = impatient
}
modifier = {
factor = 2
has_trait = sadistic
}
modifier = {
factor = 2
has_trait = brave
}
modifier = {
factor = 2
has_trait = ambitious
}
modifier = {
factor = 2
culture = { has_cultural_pillar = heritage_north_germanic }
}
modifier = {
factor = 0.5
has_trait = content
}
modifier = {
factor = 0.25
has_trait = compassionate
}
modifier = {
factor = 0.25
has_trait = temperate
}
modifier = {
factor = 0.25
has_trait = lazy
}
modifier = {
factor = 0.25
has_trait = patient
}
modifier = {
factor = 0.5
has_trait_rank = {
trait = wounded
rank = 1
}
}
modifier = {
factor = 0.5
has_trait_rank = {
trait = wounded
rank = 2
}
}
modifier = {
factor = 0.25
has_trait_rank = {
trait = wounded
rank = 3
}
}
modifier = {
factor = 0.5
OR = {
has_trait = one_legged
has_trait = disfigured
has_trait = one_eyed
has_trait = maimed
}
}
}
effect = {
save_scope_as = knight
if = {
limit = {
scope:combat_side.enemy_side = {
any_side_knight = {
this.prowess <= scope:knight.prowess_for_combat_event_opponent
}
}
}
scope:combat_side.enemy_side = {
random_side_knight = {
limit = {
this.prowess <= scope:knight.prowess_for_combat_event_opponent
}
weight = {
base = 100
modifier = {
factor = 0.75
is_acclaimed = yes
}
modifier = {
factor = 0.75
has_perk = stalwart_leader_perk
}
modifier = {
factor = 0.75
dynasty ?= {
has_dynasty_perk = warfare_legacy_3
}
}
}
save_temporary_scope_as = enemy_knight
}
}
if = {
limit = {
scope:knight = { is_alive = yes }
scope:enemy_knight = { is_alive = yes }
}
scope:combat_side = {
battle_event = {
key = "berserker_rage_killed_enemy"
left_portrait = scope:knight
right_portrait = scope:enemy_knight
type = death
target_right = yes
}
}
add_prestige = knight_prestige_gain_on_kill
knight_increase_prowess_chance_effect = yes
add_trait = berserker
scope:enemy_knight = {
death = {
death_reason = death_head_ripped_off
killer = scope:knight
}
}
}
}
else = {
if = {
limit = {
scope:knight = { is_alive = yes }
}
scope:combat_side = {
battle_event = {
key = "berserker_rage_no_enemy"
left_portrait = scope:knight
type = death
target_right = yes
}
}
add_trait = berserker
}
}
accolade ?= {
add_glory = minimal_glory_gain
}
}
}
knight_shieldmaiden_attack = {
type = knight
is_valid = {
has_trait = shieldmaiden
scope:combat_side.enemy_side = {
any_side_knight = {
is_alive = yes
this.prowess <= root.prowess_for_combat_event_opponent
}
}
}
chance = {
base = 30
modifier = {
factor = 1.5
has_perk = stalwart_leader_perk
is_ai = no
}
modifier = {
factor = 1.15
has_perk = stalwart_leader_perk
is_ai = yes
}
modifier = {
factor = 1.25
is_acclaimed = yes
}
modifier = {
factor = 1.25
dynasty ?= {
has_dynasty_perk = warfare_legacy_3
}
}
modifier = {
factor = 2
has_trait = wrathful
}
modifier = {
factor = 10
has_trait = giant
}
modifier = {
factor = 1.25
has_trait_rank = {
trait = wounded
rank = 1
}
}
modifier = {
factor = 1.25
has_trait_rank = {
trait = wounded
rank = 2
}
}
modifier = {
factor = 1.25
has_trait_rank = {
trait = wounded
rank = 3
}
}
modifier = {
factor = 0.25
OR = {
has_trait = one_legged
has_trait = disfigured
has_trait = one_eyed
has_trait = maimed
}
}
}
effect = {
save_scope_as = knight
if = {
limit = {
scope:combat_side.enemy_side = {
any_side_knight = {
is_alive = yes
this.prowess <= scope:knight.prowess_for_combat_event_opponent
}
}
}
scope:combat_side.enemy_side = {
random_side_knight = {
limit = {
is_alive = yes
this.prowess <= scope:knight.prowess_for_combat_event_opponent
}
weight = {
base = 100
modifier = {
factor = 0.75
is_acclaimed = yes
}
modifier = {
factor = 0.75
has_perk = stalwart_leader_perk
}
modifier = {
factor = 0.75
dynasty ?= {
has_dynasty_perk = warfare_legacy_3
}
}
}
save_temporary_scope_as = enemy_knight
}
}
if = {
limit = {
scope:knight = { is_alive = yes }
scope:enemy_knight = { is_alive = yes }
}
add_prestige = knight_prestige_gain_on_kill
knight_increase_prowess_chance_effect = yes
shieldmaiden_kill_version_randomisation_effect = yes
scope:enemy_knight = {
# Shieldmaidens are especially good at earning glory.
accolade ?= { add_glory = minor_glory_gain }
}
}
}
}
}
knight_becomes_incapable = {
type = knight
is_valid = {
is_incapable = no
}
chance = {
# This is just random bad luck of suffering a serious head injury.
base = 1
}
effect = {
save_scope_as = knight
# Long as we're alive, conk 'em out.
if = {
limit = { is_alive = yes }
add_trait = incapable
create_character_memory = { type = became_incapable_due_to_battle_concussion }
# We have to do this weird double-scoping due to some kind of dark pact with Code, else things won't work.
scope:new_memory = { save_scope_as = battle_memory }
scope:battle_memory = {
set_variable = {
name = battle_location
value = scope:knight.location
}
}
}
}
}
knight_wounded = {
type = knight
is_valid = {
NOT = {
has_trait_rank = {
trait = wounded
rank = 3
}
}
}
chance = {
base = 100
modifier = {
factor = { # Prowess directly reduces chance of injury/death
value = 40 # Value at which 'immortality' happens
subtract = prowess
if = {
limit = {
has_court_position = garuda_court_position
}
add = garuda_prowess_svalue
}
divide = 40
min = 0.1 # Everyone dies.
}
}
modifier = { # Reduce chance when outnumbering the enemy
factor = {
value = scope:combat_side.enemy_side.side_strength
divide = scope:combat_side.side_strength
multiply = 1.4 # Outnumbering 2-1 reduces chance by 30%
max = 1
}
scope:combat_side.side_strength > scope:combat_side.enemy_side.side_strength
}
modifier = {
factor = 1.05
culture = {
has_cultural_parameter = knights_slightly_more_prone_to_injury
}
}
modifier = {
factor = 1.1
faith = {
has_doctrine_parameter = death_is_glory
}
}
modifier = {
factor = 4
has_court_position = garuda_court_position
}
modifier = {
factor = 2
has_trait = brave
}
modifier = {
factor = 0.5
has_trait = craven
}
#House Knight defends family
## Low decrease chance.
modifier = {
factor = accolade_defends_family_actual_low_value
exists = house
exists = liege.house
house = liege.house
scope:combat_side = {
OR = {
any_side_knight = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_low
}
}
any_side_commander = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_low
}
}
}
# Not cumulative with subsequent ranks.
NOR = {
any_side_knight = {
accolade ?= {
OR = {
has_accolade_parameter = accolade_defends_family_medium
has_accolade_parameter = accolade_defends_family_high
}
}
}
any_side_commander = {
accolade ?= {
OR = {
has_accolade_parameter = accolade_defends_family_medium
has_accolade_parameter = accolade_defends_family_high
}
}
}
}
}
}
## Medium decrease chance.
modifier = {
factor = accolade_defends_family_actual_medium_value
exists = house
exists = liege.house
house = liege.house
scope:combat_side = {
OR = {
any_side_knight = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_medium
}
}
any_side_commander = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_medium
}
}
}
# Not cumulative with the subsequent rank.
NOR = {
any_side_knight = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_high
}
}
any_side_commander = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_high
}
}
}
}
}
## High decrease chance.
modifier = {
factor = accolade_defends_family_actual_high_value
exists = house
exists = liege.house
house = liege.house
scope:combat_side = {
OR = {
any_side_knight = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_high
}
}
any_side_commander = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_high
}
}
}
}
}
}
effect = {
save_scope_as = knight
if = {
limit = {
scope:combat_side.enemy_side = {
any_side_knight = {
this.prowess >= scope:knight.prowess_for_combat_event_opponent
}
}
}
scope:combat_side.enemy_side = {
random_side_knight = {
limit = {
this.prowess >= scope:knight.prowess_for_combat_event_opponent
}
save_temporary_scope_as = enemy_knight
add_prestige = knight_prestige_gain_on_wound_inverse
knight_increase_prowess_chance_effect = yes
}
}
scope:combat_side = {
battle_event = {
key = "knight_wounded_by_enemy"
left_portrait = scope:knight
right_portrait = scope:enemy_knight
type = wound
}
}
increase_wounds_effect = { REASON = fight }
# Scope:enemy_knight gets some glory.
scope:enemy_knight = {
if = {
limit = {
is_acclaimed = yes
}
accolade = { add_glory = minimal_glory_gain }
}
}
}
else = {
scope:combat_side = {
battle_event = {
key = "knight_wounded_no_enemy"
left_portrait = scope:knight
type = wound
}
}
increase_wounds_effect = { REASON = fight }
}
}
}
knight_maimed = {
type = knight
is_valid = {
NAND = {
has_trait = one_legged
has_trait = disfigured
has_trait = one_eyed
has_trait = maimed
}
}
chance = {
base = 40
modifier = {
factor = { # Prowess directly reduces chance of injury/death
value = 30 # Value at which 'immortality' happens
subtract = prowess
if = {
limit = {
has_court_position = garuda_court_position
}
add = garuda_prowess_svalue
}
divide = 30
min = 0.1 # Everyone dies.
}
}
modifier = { # Reduce chance when outnumbering the enemy
factor = {
value = scope:combat_side.enemy_side.side_strength
divide = scope:combat_side.side_strength
multiply = 1.4 # Outnumbering 2-1 reduces chance by 30%
max = 1
}
scope:combat_side.side_strength > scope:combat_side.enemy_side.side_strength
}
modifier = { # No deaths when vastly outnumbering the enemy
factor = 0
scope:combat_side.side_strength > scope:combat_side.enemy_side.vastly_outnumbered_combat_side_threshold
}
modifier = {
factor = 1.05
culture = {
has_cultural_parameter = knights_slightly_more_prone_to_injury
}
}
modifier = {
factor = 1.1
faith = {
has_doctrine_parameter = death_is_glory
}
}
modifier = {
factor = 3
has_court_position = garuda_court_position
}
modifier = {
factor = 2
has_trait = brave
}
modifier = {
factor = 0.5
has_trait = craven
}
#House Knight defends family
## Low decrease chance.
modifier = {
factor = accolade_defends_family_actual_low_value
exists = house
exists = liege.house
house = liege.house
scope:combat_side = {
OR = {
any_side_knight = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_low
}
}
any_side_commander = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_low
}
}
}
# Not cumulative with subsequent ranks.
NOR = {
any_side_knight = {
accolade ?= {
OR = {
has_accolade_parameter = accolade_defends_family_medium
has_accolade_parameter = accolade_defends_family_high
}
}
}
any_side_commander = {
accolade ?= {
OR = {
has_accolade_parameter = accolade_defends_family_medium
has_accolade_parameter = accolade_defends_family_high
}
}
}
}
}
}
## Medium decrease chance.
modifier = {
factor = accolade_defends_family_actual_medium_value
exists = house
exists = liege.house
house = liege.house
scope:combat_side = {
OR = {
any_side_knight = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_medium
}
}
any_side_commander = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_medium
}
}
}
# Not cumulative with the subsequent rank.
NOR = {
any_side_knight = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_high
}
}
any_side_commander = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_high
}
}
}
}
}
## High decrease chance.
modifier = {
factor = accolade_defends_family_actual_high_value
exists = house
exists = liege.house
house = liege.house
scope:combat_side = {
OR = {
any_side_knight = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_high
}
}
any_side_commander = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_high
}
}
}
}
}
}
effect = {
save_scope_as = knight
if = {
limit = {
scope:combat_side.enemy_side = {
any_side_knight = {
this.prowess >= scope:knight.prowess_for_combat_event_opponent
}
}
}
scope:combat_side.enemy_side = {
random_side_knight = {
limit = {
this.prowess >= scope:knight.prowess_for_combat_event_opponent
}
save_temporary_scope_as = enemy_knight
add_prestige = knight_prestige_gain_on_wound_inverse
knight_increase_prowess_chance_effect = yes
}
}
scope:combat_side = {
battle_event = {
key = "knight_maimed_by_enemy"
left_portrait = scope:knight
right_portrait = scope:enemy_knight
type = wound
}
}
maimed_in_battle_effect = yes
# Scope:enemy_knight gets some glory.
scope:enemy_knight = {
accolade ?= { add_glory = minimal_glory_gain }
}
}
else = {
scope:combat_side = {
battle_event = {
key = "knight_maimed_no_enemy"
left_portrait = scope:knight
type = wound
}
}
maimed_in_battle_effect = yes
}
}
}
knight_killed = {
type = knight
chance = {
base = 30
modifier = {
factor = { # Prowess directly reduces chance of injury/death
value = 30 # Value at which 'immortality' happens
subtract = prowess
if = {
limit = {
has_court_position = garuda_court_position
}
add = garuda_prowess_svalue
}
divide = 30
min = 0.1 # Everyone dies.
}
}
modifier = { # Reduce chance when outnumbering the enemy
factor = {
value = scope:combat_side.enemy_side.side_strength
divide = scope:combat_side.side_strength
multiply = 1.4 # Outnumbering 2-1 reduces chance by 30%
max = 1
}
scope:combat_side.side_strength > scope:combat_side.enemy_side.side_strength
}
modifier = { # No deaths when vastly outnumbering the enemy
factor = 0
scope:combat_side.side_strength > scope:combat_side.enemy_side.vastly_outnumbered_combat_side_threshold
}
modifier = {
factor = 1.05
culture = {
has_cultural_parameter = knights_slightly_more_prone_to_injury
}
}
modifier = {
factor = 1.1
faith = {
has_doctrine_parameter = death_is_glory
}
}
modifier = {
factor = 3
has_court_position = garuda_court_position
}
modifier = {
factor = 2
has_trait = brave
}
modifier = {
factor = 0.5
has_trait = craven
}
modifier = {
factor = 4
has_trait_rank = {
trait = wounded
rank = 3
}
}
# Accolades.
## Low increase chance.
modifier = {
factor = accolade_hostile_knight_death_in_battle_actual_low_value
scope:combat_side.enemy_side = {
OR = {
any_side_knight = {
accolade ?= {
has_accolade_parameter = accolade_increase_hostile_knight_death_low
}
}
any_side_commander = {
accolade ?= {
has_accolade_parameter = accolade_increase_hostile_knight_death_low
}
}
}
# Not cumulative with subsequent ranks.
NOR = {
any_side_knight = {
accolade ?= {
OR = {
has_accolade_parameter = accolade_increase_hostile_knight_death_medium
has_accolade_parameter = accolade_increase_hostile_knight_death_high
}
}
}
any_side_commander = {
accolade ?= {
OR = {
has_accolade_parameter = accolade_increase_hostile_knight_death_medium
has_accolade_parameter = accolade_increase_hostile_knight_death_high
}
}
}
}
}
}
## Medium increase chance.
modifier = {
factor = accolade_hostile_knight_death_in_battle_actual_medium_value
scope:combat_side.enemy_side = {
OR = {
any_side_knight = {
accolade ?= {
has_accolade_parameter = accolade_increase_hostile_knight_death_medium
}
}
any_side_commander = {
accolade ?= {
has_accolade_parameter = accolade_increase_hostile_knight_death_medium
}
}
}
# Not cumulative with the subsequent rank.
NOR = {
any_side_knight = {
accolade ?= {
has_accolade_parameter = accolade_increase_hostile_knight_death_high
}
}
any_side_commander = {
accolade ?= {
has_accolade_parameter = accolade_increase_hostile_knight_death_high
}
}
}
}
}
## High increase chance.
modifier = {
factor = accolade_hostile_knight_death_in_battle_actual_high_value
scope:combat_side.enemy_side = {
OR = {
any_side_knight = {
accolade ?= {
has_accolade_parameter = accolade_increase_hostile_knight_death_high
}
}
any_side_commander = {
accolade ?= {
has_accolade_parameter = accolade_increase_hostile_knight_death_high
}
}
}
}
}
#House Knight defends family
## Low decrease chance.
modifier = {
factor = accolade_defends_family_actual_low_value
exists = house
exists = liege.house
house = liege.house
scope:combat_side = {
OR = {
any_side_knight = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_low
}
}
any_side_commander = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_low
}
}
}
# Not cumulative with subsequent ranks.
NOR = {
any_side_knight = {
accolade ?= {
OR = {
has_accolade_parameter = accolade_defends_family_medium
has_accolade_parameter = accolade_defends_family_high
}
}
}
any_side_commander = {
accolade ?= {
OR = {
has_accolade_parameter = accolade_defends_family_medium
has_accolade_parameter = accolade_defends_family_high
}
}
}
}
}
}
## Medium decrease chance.
modifier = {
factor = accolade_defends_family_actual_medium_value
exists = house
exists = liege.house
house = liege.house
scope:combat_side = {
OR = {
any_side_knight = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_medium
}
}
any_side_commander = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_medium
}
}
}
# Not cumulative with the subsequent rank.
NOR = {
any_side_knight = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_high
}
}
any_side_commander = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_high
}
}
}
}
}
## High decrease chance.
modifier = {
factor = accolade_defends_family_actual_high_value
exists = house
exists = liege.house
house = liege.house
scope:combat_side = {
OR = {
any_side_knight = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_high
}
}
any_side_commander = {
accolade ?= {
has_accolade_parameter = accolade_defends_family_high
}
}
}
}
}
}
effect = {
save_scope_as = knight
if = {
limit = {
has_variable = hold_court_8050_knight
employer = {
has_variable = hold_court_8050_promise
var:hold_court_8050_promise = PREV
}
}
save_scope_as = knight
location = { save_scope_as = battle_location }
var:hold_court_8050_knight = { save_scope_as = vassal }
remove_variable = hold_court_8050_knight
employer = {
remove_variable = hold_court_8050_promise
trigger_event = {
id = hold_court.8053
days = 1
}
}
}
save_died_in_battle_variables_effect = {
ENEMY = scope:combat_side.enemy_side.side_primary_participant
LEADER = scope:combat_side.side_primary_participant
LOCATION = scope:combat_side.combat.location
}
if = {
limit = {
scope:combat_side.enemy_side = {
any_side_knight = {
this.prowess >= scope:knight.prowess_for_combat_event_opponent
}
}
}
scope:combat_side.enemy_side = {
random_side_knight = {
limit = {
this.prowess >= scope:knight.prowess_for_combat_event_opponent
}
save_temporary_scope_as = enemy_knight
add_prestige = knight_prestige_gain_on_kill_inverse
knight_increase_prowess_chance_effect = yes
# Scope:enemy_knight gets some glory.
scope:enemy_knight = {
if = {
limit = {
is_acclaimed = yes
}
accolade = { add_glory = minor_glory_gain }
}
}
}
}
if = {
limit = {
scope:knight = { is_alive = yes }
scope:enemy_knight = { is_alive = yes }
}
scope:combat_side = {
battle_event = {
key = "knight_killed_by_enemy"
left_portrait = scope:knight
right_portrait = scope:enemy_knight
type = death
}
# For after-battle messaging
add_to_variable_list = {
name = slain_side_knights
target = scope:knight
}
}
if = {
limit ={
exists = house
exists = scope:enemy_knight.house
}
house = {
change_house_relation_effect = {
HOUSE = scope:enemy_knight.house
VALUE = house_relation_damage_medium_value
REASON = killed
CHAR = scope:enemy_knight
TARGET_CHAR = scope:knight
TITLE = scope:dummy_gender
}
}
}
if = {
limit = {
scope:enemy_knight = {
faith = {
has_doctrine = tenet_cranial_trophies
}
}
}
tgp_cranial_trophies_beheading_effect = {
KILLER = scope:enemy_knight
DEAD = scope:knight
}
}
death = {
death_reason = death_battle
killer = scope:enemy_knight
}
}
}
else = {
scope:combat_side = {
battle_event = {
key = "knight_killed_no_enemy"
left_portrait = scope:knight
type = death
}
# For after-battle messaging
add_to_variable_list = {
name = slain_side_knights
target = scope:knight
}
}
death = {
death_reason = death_battle
}
}
if = {
limit = {
is_acclaimed = yes
}
accolade = {
add_glory = minor_glory_gain
}
}
#Mongol severed head content
if = {
limit = {
exists = liege
is_knight_of = liege
OR = {
is_acclaimed = yes
is_close_family_of = liege
is_consort_of = liege
is_powerful_vassal_of = liege
has_relation_blood_brother = liege
}
liege = {
NOR = {
has_variable = beheaded_warrior
has_character_flag = beheaded_warrior_cooldown
}
OR = {
faith.religion = faith:tengri_pagan.religion
AND = {
culture = {
OR = {
has_cultural_pillar = heritage_mongolic
has_cultural_pillar = heritage_turkic
}
}
has_trait = nomadic_philosophy
}
}
}
scope:combat_side = {
any_side_participant = {
this = root.liege
}
}
}
liege = {
set_variable = {
name = beheaded_warrior
value = root
}
set_variable = {
name = beheaded_warrior_foe
value = scope:combat_side.enemy_side.side_primary_participant
}
set_variable = {
name = beheaded_warrior_location
value = scope:combat_side.combat.location
}
if = {
limit = {
root = { is_powerful_vassal_of = liege }
}
set_variable = {
name = beheaded_warrior_powerful_vassal
value = root
}
}
else_if = {
limit = {
root = { is_councillor_of = liege }
}
set_variable = {
name = beheaded_warrior_councillor
value = root
}
}
if = {
limit = {
root = {
is_acclaimed = yes
}
}
set_variable = {
name = beheaded_warrior_accolade
value = root.accolade
}
}
}
}
}
}
knight_qualify_for_accolade = {
type = knight
is_valid = {
knight_army = {
any_army_maa_regiment = { count > 0 }
}
can_be_acclaimed = yes
prowess >= accolade_prowess_requirement_value
# accolade attributes are below max cap
# possibly: no other MAA accolade attributes? TODO LB
}
chance = {
base = 5
modifier = {
factor = liege.accolade_progress
}
modifier = {
factor = 1.5
has_perk = stalwart_leader_perk
is_ai = no
}
modifier = {
factor = 1.15
has_perk = stalwart_leader_perk
is_ai = yes
}
modifier = {
factor = 2.5
is_acclaimed = yes
}
modifier = {
factor = 1.25
dynasty ?= {
has_dynasty_perk = warfare_legacy_3
}
}
modifier = {
factor = 1.5
has_trait = brave
}
modifier = {
factor = 1.5
has_trait = ambitious
}
modifier = {
factor = 0.75
has_trait = content
}
modifier = {
factor = 0.75
has_trait = lazy
}
modifier = {
factor = 0.5
has_trait_rank = {
trait = wounded
rank = 1
}
}
modifier = {
factor = 0.5
has_trait_rank = {
trait = wounded
rank = 2
}
}
modifier = {
factor = 0.25
has_trait_rank = {
trait = wounded
rank = 3
}
}
modifier = {
factor = 0.5
has_trait = maimed
}
}
effect = {
save_scope_as = acclaimed_knight
liege = { # reset liege accolade progress
set_variable = {
name = accolade_progress
value = 0
}
}
random_list = {
10 = {
trigger = {
knight_army = {
any_army_maa_regiment = {
is_unit_type = skirmishers
}
}
skirmisher_attribute_trigger = no # don't bother unlocking if already eligible
}
modifier = {
factor = knight_army.army_number_maa_regiments_of_base_type:skirmishers
}
set_variable = {
name = skirmisher_attribute_unlock
value = yes
}
liege = {
send_interface_message = {
type = msg_accolade_eligibility
title = maa_accolade_unlock.t
left_icon = scope:acclaimed_knight
custom_tooltip = skirmisher_attribute.battle_message_tt
}
}
}
10 = {
trigger = {
knight_army = {
any_army_maa_regiment = {
is_unit_type = archers
NOR = {
is_maa_type = crossbowmen
is_maa_type = shenbigong
is_maa_type = accolade_maa_crossbowers
}
}
}
archer_attribute_trigger = no
}
modifier = {
factor = { # archers who AREN'T crossbows
value = knight_army.army_number_maa_regiments_of_base_type:archers
subtract = knight_army.army_number_maa_regiments_of_type:crossbowmen
subtract = knight_army.army_number_maa_regiments_of_type:shenbigong
subtract = knight_army.army_number_maa_regiments_of_type:accolade_maa_crossbowers
}
}
set_variable = {
name = archer_attribute_unlock
value = yes
}
liege = {
send_interface_message = {
type = msg_accolade_eligibility
title = maa_accolade_unlock.t
left_icon = scope:acclaimed_knight
custom_tooltip = archer_attribute.battle_message_tt
}
}
}
10 = {
trigger = {
knight_army = {
any_army_maa_regiment = {
OR = {
is_maa_type = crossbowmen
is_maa_type = shenbigong
is_maa_type = accolade_maa_crossbowers
}
}
}
crossbowmen_attribute_trigger = no
}
modifier = {
factor = {
value = knight_army.army_number_maa_regiments_of_type:crossbowmen
add = knight_army.army_number_maa_regiments_of_type:shenbigong
add = knight_army.army_number_maa_regiments_of_type:accolade_maa_crossbowers
}
}
set_variable = {
name = crossbowmen_attribute_unlock
value = yes
}
liege = {
send_interface_message = {
type = msg_accolade_eligibility
title = maa_accolade_unlock.t
left_icon = scope:acclaimed_knight
custom_tooltip = crossbowmen_attribute.battle_message_tt
}
}
}
10 = {
trigger = {
knight_army = {
any_army_maa_regiment = {
is_unit_type = pikemen
}
}
pike_attribute_trigger = no
}
modifier = {
factor = knight_army.army_number_maa_regiments_of_base_type:pikemen
}
set_variable = {
name = pike_attribute_unlock
value = yes
}
liege = {
send_interface_message = {
type = msg_accolade_eligibility
title = maa_accolade_unlock.t
left_icon = scope:acclaimed_knight
custom_tooltip = pike_attribute.battle_message_tt
}
}
}
10 = {
trigger = {
knight_army = {
any_army_maa_regiment = {
is_unit_type = heavy_infantry
}
}
vanguard_attribute_trigger = no
}
modifier = {
factor = knight_army.army_number_maa_regiments_of_base_type:heavy_infantry
}
set_variable = {
name = vanguard_attribute_unlock
value = yes
}
liege = {
send_interface_message = {
type = msg_accolade_eligibility
title = maa_accolade_unlock.t
left_icon = scope:acclaimed_knight
custom_tooltip = vanguard_attribute.battle_message_tt
}
}
}
10 = {
trigger = {
knight_army = {
any_army_maa_regiment = {
is_unit_type = light_cavalry
}
}
outrider_attribute_trigger = no
}
modifier = {
factor = knight_army.army_number_maa_regiments_of_base_type:light_cavalry
}
set_variable = {
name = outrider_attribute_unlock
value = yes
}
liege = {
send_interface_message = {
type = msg_accolade_eligibility
title = maa_accolade_unlock.t
left_icon = scope:acclaimed_knight
custom_tooltip = outrider_attribute.battle_message_tt
}
}
}
10 = {
trigger = {
knight_army = {
any_army_maa_regiment = {
is_unit_type = heavy_cavalry
}
}
lancer_attribute_trigger = no
}
modifier = {
factor = knight_army.army_number_maa_regiments_of_base_type:heavy_cavalry
}
set_variable = {
name = lancer_attribute_unlock
value = yes
}
liege = {
send_interface_message = {
type = msg_accolade_eligibility
title = maa_accolade_unlock.t
left_icon = scope:acclaimed_knight
custom_tooltip = lancer_attribute.battle_message_tt
}
}
}
10 = {
trigger = {
knight_army = {
any_army_maa_regiment = {
is_unit_type = camel_cavalry
}
}
camelry_attribute_trigger = no
}
modifier = {
factor = knight_army.army_number_maa_regiments_of_base_type:camel_cavalry
}
set_variable = {
name = camelry_attribute_unlock
value = yes
}
liege = {
send_interface_message = {
type = msg_accolade_eligibility
title = maa_accolade_unlock.t
left_icon = scope:acclaimed_knight
custom_tooltip = camelry_attribute.battle_message_tt
}
}
}
10 = {
trigger = {
knight_army = {
any_army_maa_regiment = {
is_unit_type = elephant_cavalry
}
}
elephantry_attribute_trigger = no
}
modifier = {
factor = knight_army.army_number_maa_regiments_of_base_type:elephant_cavalry
}
set_variable = {
name = elephantry_attribute_unlock
value = yes
}
liege = {
send_interface_message = {
type = msg_accolade_eligibility
title = maa_accolade_unlock.t
left_icon = scope:acclaimed_knight
custom_tooltip = elephantry_attribute.battle_message_tt
}
}
}
10 = {
trigger = {
knight_army = {
any_army_maa_regiment = {
is_unit_type = archer_cavalry
}
}
horse_archer_attribute_trigger = no
}
modifier = {
factor = knight_army.army_number_maa_regiments_of_base_type:archer_cavalry
}
set_variable = {
name = horse_archer_attribute_unlock
value = yes
}
liege = {
send_interface_message = {
type = msg_accolade_eligibility
title = maa_accolade_unlock.t
left_icon = scope:acclaimed_knight
custom_tooltip = horse_archer_attribute.battle_message_tt
}
}
}
10 = {
trigger = {
knight_army = {
any_army_maa_regiment = {
is_unit_type = gunpowder
}
}
gunpowder_attribute_trigger = no
}
modifier = {
factor = knight_army.army_number_maa_regiments_of_base_type:gunpowder
}
set_variable = {
name = gunpowder_attribute_unlock
value = yes
}
liege = {
send_interface_message = {
type = msg_accolade_eligibility
title = maa_accolade_unlock.t
left_icon = scope:acclaimed_knight
custom_tooltip = gunpowder_attribute.battle_message_tt
}
}
}
10 = {
trigger = {
scope:combat_side.enemy_side = {
any_side_participant = {
faith = {
faith_hostility_level = {
target = root.faith
value >= faith_evil_level
}
}
}
}
fanatic_attribute_trigger = no
}
modifier = { # otherwise it would get diluted by maa unlocks in large armies
factor = {
value = knight_army.army_number_maa_regiments
divide = 2
}
}
set_variable = {
name = fanatic_attribute_unlock
value = yes
}
liege = {
send_interface_message = {
type = msg_accolade_eligibility
title = maa_accolade_unlock.t
left_icon = scope:acclaimed_knight
custom_tooltip = fanatic_attribute.battle_message_tt
}
}
}
50 = {
trigger = {
scope:combat_side = { # currently outnumbered 3 to 2
side_army_size >= {
value = enemy_side.side_army_size
multiply = 0.66
}
}
valiant_attribute_trigger = no
}
modifier = { # otherwise it would get diluted by maa unlocks in large armies
factor = {
value = knight_army.army_number_maa_regiments
divide = 2
}
}
set_variable = {
name = valiant_attribute_unlock
value = yes
}
liege = {
send_interface_message = {
type = msg_accolade_eligibility
title = maa_accolade_unlock.t
left_icon = scope:acclaimed_knight
custom_tooltip = valiant_attribute.battle_message_tt
}
}
}
}
}
}