﻿
namespace = knights

#########################################
# Knight Injured/Killed in Battle		#
# by Alexander Oltner & Sean Hughes		#
# knights.0001							#
#########################################

knights.0001 = {
	hidden = yes

	trigger = {
		is_alive = yes
	}

	immediate = {
		random_list = {
			1000 = { # Nothing happens
				modifier = {
					add = 1000
					has_perk = stalwart_leader_perk
					is_ai = no
				}
				modifier = {
					add = 300
					has_perk = stalwart_leader_perk
					is_ai = yes
				}
			}
			15 = { # Berserkers rip people's heads off
				trigger = {
					has_trait = berserker
					scope:combat_side.enemy_side = {
						any_side_knight = {
							is_alive = yes
							this.prowess <= { value = root.prowess multiply = 0.8 }
						}
					}
				}
				modifier = {
					add = 1000
					has_perk = stalwart_leader_perk
					is_ai = no
				}
				modifier = {
					add = 300
					has_perk = stalwart_leader_perk
					is_ai = yes
				}
				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
					}
				}
				if = {
					limit = {
						scope:combat_side.enemy_side = {
							any_side_knight = {
								is_alive = yes
								this.prowess <= { value = root.prowess multiply = 0.8 }
							}
						}
					}
					scope:combat_side.enemy_side = {
						random_side_knight = {
							limit = {
								is_alive = yes
								this.prowess <= { value = root.prowess multiply = 0.8 }
							}
							save_temporary_scope_as = enemy_knight
						}
					}
					if = {
						limit = {
							root = { is_alive = yes }
							scope:enemy_knight = { is_alive = yes }
						}
						scope:combat_side = {
							battle_event = {
								key = "berserker_rage_killed_enemy_no_trait"
								left_portrait = root
								right_portrait = scope:enemy_knight
								type = death
								target_right = yes
							}
						}
						add_prestige = knight_prestige_gain_on_kill
						knight_increase_prowess_chance_effect = yes
						scope:enemy_knight = {
							death = {
								death_reason = death_head_ripped_off
								killer = root
							}
						}
					}
				}
			}
			15 = { # Become a Berserker
				trigger = {
					faith = {
						has_doctrine = tenet_warmonger
					}
					NOR = {
						has_trait = craven
						has_trait = berserker
						has_trait = calm
					}
				}
				modifier = {
					add = 1000
					has_perk = stalwart_leader_perk
					is_ai = no
				}
				modifier = {
					add = 300
					has_perk = stalwart_leader_perk
					is_ai = yes
				}
				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
					has_culture = culture:norse
				}
				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
					}
				}
				if = {
					limit = {
						scope:combat_side.enemy_side = {
							any_side_knight = {
								this.prowess <= { value = root.prowess multiply = 0.8 }
							}
						}
					}
					scope:combat_side.enemy_side = {
						random_side_knight = {
							limit = {
								this.prowess <= { value = root.prowess multiply = 0.8 }
							}
							save_temporary_scope_as = enemy_knight
						}
					}
					if = {
						limit = {
							root = { is_alive = yes }
							scope:enemy_knight = { is_alive = yes }
						}
						scope:combat_side = {
							battle_event = {
								key = "berserker_rage_killed_enemy"
								left_portrait = root
								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 = root
							}
						}
					}
				}
				else = {
					if = {
						limit = {
							root = { is_alive = yes }
						}
						scope:combat_side = {
							battle_event = {
								key = "berserker_rage_no_enemy"
								left_portrait = root
								type = death
								target_right = yes
							}
						}
						add_trait = berserker
					}
				}
			}
			100 = { # Wounded
				trigger = {
					NOT = {
						has_trait_rank = {
							trait = wounded
							rank = 2
						}
					}
				}
				modifier = {
					factor = { # Prowess directly reduces chance of injury/death
						value = 20 # Value at which 'immortality' happens
						subtract = prowess
						divide = 40
						min = 0 # 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.8 # Outnumber by factor of 2 gives a 0.9 modifier
						max = 1
					}
					scope:combat_side.side_strength > scope:combat_side.enemy_side.side_strength
				}
				modifier = {
					factor = 2
					has_trait = brave
				}
				modifier = {
					factor = 0.5
					has_trait = craven
				}
				modifier = {
					factor = 1.1
					has_trait_rank = {
						trait = wounded
						rank = 1
					}
				}
				modifier = {
					factor = 1.25
					has_trait_rank = {
						trait = wounded
						rank = 2
					}
				}
				if = {
					limit = {
						scope:combat_side.enemy_side = {
							any_side_knight = {
								this.prowess >= { value = root.prowess multiply = 0.8 }
							}
						}
					}
					scope:combat_side.enemy_side = {
						random_side_knight = {
							limit = {
								this.prowess >= { value = root.prowess multiply = 0.8 }
							}
							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 = root
							right_portrait = scope:enemy_knight
							type = wound
						}
					}
					increase_wounds_effect = { REASON = fight }
				}
				else = {
					scope:combat_side = {
						battle_event = {
							key = "knight_wounded_no_enemy"
							left_portrait = root
							type = wound
						}
					}
					increase_wounds_effect = { REASON = fight }
				}
			}
			40 = { # Maimed
				trigger = {
					NAND = {
						has_trait = one_legged
						has_trait = disfigured
						has_trait = one_eyed
						has_trait = maimed
					}
				}
				modifier = {
					factor = { # Prowess directly reduces chance of injury/death
						value = 20 # Value at which 'immortality' happens
						subtract = prowess
						divide = 30
						min = 0 # 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.8 # Outnumber by factor of 2 gives a 0.9 modifier
						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 > { value = scope:combat_side.enemy_side.side_strength multiply = 5 }
				}
				modifier = {
					factor = 2
					has_trait = brave
				}
				modifier = {
					factor = 0.5
					has_trait = craven
				}
				modifier = {
					factor = 1.1
					has_trait_rank = {
						trait = wounded
						rank = 1
					}
				}
				modifier = {
					factor = 1.25
					has_trait_rank = {
						trait = wounded
						rank = 2
					}
				}
				modifier = {
					factor = 1.5
					has_trait_rank = {
						trait = wounded
						rank = 3
					}
				}
				if = {
					limit = {
						scope:combat_side.enemy_side = {
							any_side_knight = {
								this.prowess >= { value = root.prowess multiply = 0.8 }
							}
						}
					}
					scope:combat_side.enemy_side = {
						random_side_knight = {
							limit = {
								this.prowess >= { value = root.prowess multiply = 0.8 }
							}
							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 = root
							right_portrait = scope:enemy_knight
							type = wound
						}
					}
					maimed_in_battle_effect = yes
				}
				else = {
					scope:combat_side = {
						battle_event = {
							key = "knight_maimed_no_enemy"
							left_portrait = root
							type = wound
						}
					}
					maimed_in_battle_effect = yes
				}
			}
			30 = { # Killed
				modifier = {
					factor = { # Prowess directly reduces chance of injury/death
						value = 20 # Value at which 'immortality' happens
						subtract = prowess
						divide = 30
						min = 0 # 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.8 # Outnumber by factor of 2 gives a 0.9 modifier
						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 > { value = scope:combat_side.enemy_side.side_strength multiply = 5 }
				}
				modifier = {
					factor = 2
					has_trait = brave
				}
				modifier = {
					factor = 0.5
					has_trait = craven
				}
				modifier = {
					factor = 2
					has_trait_rank = {
						trait = wounded
						rank = 1
					}
				}
				modifier = {
					factor = 3
					has_trait_rank = {
						trait = wounded
						rank = 2
					}
				}
				modifier = {
					factor = 4
					has_trait_rank = {
						trait = wounded
						rank = 3
					}
				}
				modifier = {
					factor = 3
					OR = {
						has_trait = one_legged
						has_trait = disfigured
						has_trait = one_eyed
						has_trait = maimed
					}
				}
				if = {
					limit = {
						scope:combat_side.enemy_side = {
							any_side_knight = {
								this.prowess >= { value = root.prowess multiply = 0.8 }
							}
						}
					}
					scope:combat_side.enemy_side = {
						random_side_knight = {
							limit = {
								this.prowess >= { value = root.prowess multiply = 0.8 }
							}
							save_temporary_scope_as = enemy_knight
							add_prestige = knight_prestige_gain_on_kill_inverse
							knight_increase_prowess_chance_effect = yes
						}
					}

					if = {
						limit = {
							root = { is_alive = yes }
							scope:enemy_knight = { is_alive = yes }
						}
						scope:combat_side = {
							battle_event = {
								key = "knight_killed_by_enemy"
								left_portrait = root
								right_portrait = scope:enemy_knight
								type = death
							}
							# For after-battle messaging
							add_to_variable_list = {
								name = slain_side_knights
								target = root
							}
						}
						death = {
							death_reason = death_battle
							killer = scope:enemy_knight
						}
					}
				}
				else = {
					scope:combat_side = {
						battle_event = {
							key = "knight_killed_no_enemy"
							left_portrait = root
							type = death
						}
						# For after-battle messaging
						add_to_variable_list = {
							name = slain_side_knights
							target = root
						}
					}
					death = {
						death_reason = death_battle
					}
				}
			}
		}
	}
}