﻿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
						
					}
				}
			}
		}
	}
}
