# These effects require the following event targets to have been set up previously:
#  --- Marshal: expd_ct_marshal_performing_training
#  --- Trainee: commander_improved

expd_ct_choose_marshal_training_for_trainee = {
	
	event_target:commander_improved = {
		
		if = {
			limit = { expd_ct_this_character_has_no_conventional_leadership_traits = yes }
			
			# Set the trainee cooldown as early as possible in the process, to avoid exploits
			hidden_tooltip = {
				add_character_modifier = {
					name = drill_cooldown_timer
					hidden = yes
					years = 5
				}
			}
			
			random_list = {
				# As a general principle, any weighting must fall into one of the following categories:
				#  --- Marshal has this trait (x2)
				#  --- Trainee already has a synergistic trait (x2)
				#       --- Any synergistic Chinese trait
				#       --- Any synergistic Warrior Lodge trait
				#       --- Any synergistic personality trait
				#  --- Trainee already has an antagonistic trait (x0.5)
				#       --- Any antagonistic Chinese trait
				#       --- Any antagonistic Warrior Lodge trait
				#       --- Any antagonistic personality trait
				#  --- Trainee already has a contradictory trait (x0)
				# In practice, each list item will only have about 1/4-1/3 of these modifiers.
				
				
				
				
				# Light Foot Leader
				10 = {
					custom_tooltip = {
						text = expd_ct_marshal_training_type_light_foot_leader_tt
						set_character_flag = light_foot_leader
					}
					modifier = {
						factor = 2
						event_target:expd_ct_marshal_performing_training = { trait = light_foot_leader }
					}
					# Synergy with other Light Foot traits
					modifier = {
						factor = 2
						OR = {
							trait = west_african_leader
							trait = bon_leader
						}
					}
				}
				
				
				
				# Heavy Infantry Leader (gives Heavy Foot bonus, ie. Pikemen and Heavy Infantry)
				10 = {
					custom_tooltip = {
						text = expd_ct_marshal_training_type_heavy_infantry_leader_tt
						set_character_flag = heavy_infantry_leader
					}
					modifier = {
						factor = 2
						event_target:expd_ct_marshal_performing_training = { trait = heavy_infantry_leader }
					}
					# Synergy with other Heavy Foot traits
					modifier = {
						factor = 2
						trait = norse_leader
					}
				}
				
				
				
				# Cavalry
				10 = {
					custom_tooltip = {
						text = expd_ct_marshal_training_type_cavalry_leader_tt
						set_character_flag = cavalry_leader
					}
					modifier = {
						factor = 2
						event_target:expd_ct_marshal_performing_training = { trait = cavalry_leader }
					}
					# Synergy with other Cavalry traits
					modifier = {
						factor = 2
						OR = {
							trait = tengri_leader
							trait = west_african_leader
						}
					}
				}
				
				
				
				# Experimenter
				10 = {
					custom_tooltip = {
						text = expd_ct_marshal_training_type_trickster_tt
						set_character_flag = trickster
					}
					modifier = {
						factor = 2
						event_target:expd_ct_marshal_performing_training = { trait = trickster }
					}
				}
				
				
				
				# Organizer
				10 = {
					custom_tooltip = {
						text = expd_ct_marshal_training_type_organizer_tt
						set_character_flag = organizer
					}
					modifier = {
						factor = 2
						event_target:expd_ct_marshal_performing_training = { trait = organizer }
					}
					# Synergy with other movement traits
					modifier = {
						factor = 2
						trait = levy_coordinator # Way of the Tiger
					}
					modifier = {
						factor = 2
						OR = {
							trait = zun_leader
							trait = bon_leader
							trait = hellenic_leader
						}
					}
				}
				
				
				
				# Aggressive (-Defence, +Damage, NB: Does not affect morale damage/defence)
				10 = {
					custom_tooltip = {
						text = expd_ct_marshal_training_type_aggressive_leader_tt
						set_character_flag = aggressive_leader
					}
					modifier = {
						factor = 2
						event_target:expd_ct_marshal_performing_training = { trait = aggressive_leader }
					}
					# Synergy with other Damage traits
					modifier = {
						factor = 2
						trait = master_of_flame
					}
					# Antagonistic to Defence traits
					modifier = {
						factor = 0.5
						trait = patient
					}
					modifier = {
						factor = 0.5
						OR = {
							trait = baltic_leader
							trait = finnish_leader
						}
					}
				}
				
				
				
				# Defensive (-Damage, +Defence, NB: Does not impact morale damage/defence)
				10 = {
					custom_tooltip = {
						text = expd_ct_marshal_training_type_defensive_leader_tt
						set_character_flag = defensive_leader
					}
					modifier = {
						factor = 2
						event_target:expd_ct_marshal_performing_training = { trait = defensive_leader }
					}
					# Synergy with other defensive traits
					modifier = {
						factor = 2
						trait = patient
					}
					modifier = {
						factor = 2
						OR = {
							trait = baltic_leader
							trait = finnish_leader
						}
					}
					# Antagonistic to Damage traits
					modifier = {
						factor = 0.5
						trait = master_of_flame
					}
				}
				
				
				
				# Direct Leader, ie. bonus to leading the center
				10 = {
					custom_tooltip = {
						text = expd_ct_marshal_training_type_experimenter_tt
						set_character_flag = experimenter
					}
					modifier = {
						factor = 2
						event_target:expd_ct_marshal_performing_training = { trait = experimenter }
					}
					# Synergy with other Leading the Center traits
					modifier = {
						factor = 2
						trait = logistics_expert # Way of the Dog
					}
					modifier = {
						factor = 2
						trait = finnish_leader # Winter supply limit on has an impact if the commander is in the center
					}
					# Antagonistic to Flanking traits
					modifier = {
						factor = 0.5
						trait = levy_coordinator # Way of the Tiger
					}
					modifier = {
						factor = 0.5
						trait = baltic_leader
					}
				}
				
				
				
				# Flanker
				10 = {
					custom_tooltip = {
						text = expd_ct_marshal_training_type_flanker_tt
						set_character_flag = flanker
					}
					modifier = {
						factor = 2
						event_target:expd_ct_marshal_performing_training = { trait = flanker }
					}
					# Synergy with other Flanking traits
					modifier = {
						factor = 2
						trait = levy_coordinator # Way of the Tiger
					}
					modifier = {
						factor = 2
						trait = baltic_leader
					}
					# Antagonistic to Leading the Center traits
					modifier = {
						factor = 0.5
						trait = finnish_leader # The Winter Supply limit bonus is only effective in the center
					}
					# Contradictory to Way of the Dog (it is completely useless in the flank)
					modifier = {
						factor = 0
						trait = logistics_expert # Way of the Dog
					}
				}
				
				
				
				# Siege
				10 = {
					custom_tooltip = {
						text = expd_ct_marshal_training_type_siege_leader_tt
						set_character_flag = siege_leader
					}
					modifier = {
						factor = 2
						event_target:expd_ct_marshal_performing_training = { trait = siege_leader }
					}
					# Synergy with other Siege traits
					modifier = {
						factor = 2
						trait = sapper
					}
					modifier = {
						factor = 2
						trait = zun_leader
					}
				}
				
				
				
			}
		}
		
		else = {
			# If the character is not receiving a trait, still give them a cooldown to avoid exploits, but make it much shorter (compared with no cooldown in the base game)
			hidden_tooltip = {
				add_character_modifier = {
					name = drill_cooldown_timer
					hidden = yes
					years = 1
				}
				set_character_flag = expd_ct_marshal_no_trait_gain
			}
		}
		
	}
	
}



expd_ct_apply_marshal_training_to_trainee_base_game_event = {
	event_target:commander_improved = {
		expd_ct_apply_marshal_training_to_this_character_trait = yes
		expd_ct_apply_marshal_training_to_this_character_skill = yes
	}
}

expd_ct_apply_marshal_training_to_trainee_following_targetted_decision = {
	event_target:commander_improved = {
		hidden_tooltip = { expd_ct_apply_marshal_training_to_this_character_trait = yes } # Hide the trait gain because we already show the random choice weightings
		expd_ct_apply_marshal_training_to_this_character_skill = yes
		show_trait = light_foot_leader
		show_trait = heavy_infantry_leader
		show_trait = cavalry_leader
		show_trait = trickster
		show_trait = organizer
		show_trait = aggressive_leader
		show_trait = defensive_leader
		show_trait = experimenter
		show_trait = flanker
		show_trait = siege_leader
	}
}

expd_ct_apply_marshal_training_to_this_character_trait = {
	# Add the selected trait to the trainee
	if = {
		limit = {          has_character_flag = light_foot_leader }
		add_trait                             = light_foot_leader
		hidden_tooltip = { clr_character_flag = light_foot_leader }
	}
	if = {
		limit = {          has_character_flag = heavy_infantry_leader }
		add_trait                             = heavy_infantry_leader
		hidden_tooltip = { clr_character_flag = heavy_infantry_leader }
	}
	if = {
		limit = {          has_character_flag = cavalry_leader }
		add_trait                             = cavalry_leader
		hidden_tooltip = { clr_character_flag = cavalry_leader }
	}
	if = {
		limit = {          has_character_flag = trickster } # Experimenter
		add_trait                             = trickster
		hidden_tooltip = { clr_character_flag = trickster }
	}
	if = {
		limit = {          has_character_flag = organizer }
		add_trait                             = organizer
		hidden_tooltip = { clr_character_flag = organizer }
	}
	if = {
		limit = {          has_character_flag = aggressive_leader }
		add_trait                             = aggressive_leader
		hidden_tooltip = { clr_character_flag = aggressive_leader }
	}
	if = {
		limit = {          has_character_flag = defensive_leader }
		add_trait                             = defensive_leader
		hidden_tooltip = { clr_character_flag = defensive_leader }
	}
	if = {
		limit = {          has_character_flag = experimenter } # Direct Leader
		add_trait                             = experimenter
		hidden_tooltip = { clr_character_flag = experimenter }
	}
	if = {
		limit = {          has_character_flag = flanker }
		add_trait                             = flanker
		hidden_tooltip = { clr_character_flag = flanker }
	}
	if = {
		limit = {          has_character_flag = siege_leader }
		add_trait                             = siege_leader
		hidden_tooltip = { clr_character_flag = siege_leader }
	}
}

expd_ct_apply_marshal_training_to_this_character_skill = {
	# Add 1/2/3 martial skill (always 2 or 3 if there was no trait gain)
	random_list = {
		70 = {
			modifier = {
				factor = 0
				has_character_flag = expd_ct_marshal_no_trait_gain
			}
			change_martial = 1
		}
		20 = {
			change_martial = 2
		}
		10 = {
			change_martial = 3
		}
	}
	hidden_tooltip = { clr_character_flag = expd_ct_marshal_no_trait_gain }
}