######################################################
#	Expert AI mod - AI division limit triggers
######################################################

EAI_infantry_division_limit = {

	OR = {
		AND = {
			meta_trigger = {
				text = { has_army_manpower = { size > [x][y] } } # 1 division cap = 10000 manpower
				x = "[?EAI_division_cap_10k|.0]"
				y = "0000" # avoid var overflow
			}
		}

		AND = { # fielded armies are missing equipment

			# stockpile is low and armies use this equipment
			if = { limit = { check_variable = { num_equipment@infantry_equipment < 1000 }  check_variable = { num_target_equipment_in_armies_k@infantry_equipment > 0 } }

				# fraction of this equipment in armies is < 90%
				set_temp_variable = { t1 = num_equipment_in_armies_k@infantry_equipment }
				divide_temp_variable = { t1 = num_target_equipment_in_armies_k@infantry_equipment }
				check_variable = { t1 < 0.80 }
			}
			else = { always = no }
		}
	}
}

EAI_armored_division_limit = {

	set_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@medium_armor }
	add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@medium_sp_anti_air_brigade }
	add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@medium_sp_artillery_brigade }
	add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@medium_tank_destroyer_brigade }
	add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@amphibious_medium_armor }

	add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@heavy_armor }
	add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@heavy_sp_anti_air_brigade }
	add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@heavy_sp_artillery_brigade }
	add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@heavy_tank_destroyer_brigade }
	add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@amphibious_heavy_armor }

	add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@modern_armor }
	add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@modern_sp_anti_air_brigade }
	add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@modern_sp_artillery_brigade }
	add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@modern_tank_destroyer_brigade }
	# add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@amphibious_modern_armor } #to replace with correct name

	if = { limit = { OR = { check_variable = { EAI_FOCUS/LAND/armor_focus = global.EAI_LARM_FOCUS } check_variable = { EAI_FOCUS/LAND/attachment = global.EAI_LARM_ATTACHMENT } } } # dont count the garbage it starts with

		add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@light_armor }
		add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@light_sp_anti_air_brigade }
		add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@light_sp_artillery_brigade }
		add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@light_tank_destroyer_brigade }
		add_to_temp_variable = { EAI_arm_bat_count = num_battalions_with_type@amphibious_light_armor }
	}

	check_variable = { EAI_arm_bat_count > EAI_armor_division_cap }
}

EAI_armor_production_design_upgrade_fix_needed = {
	OR = {
		AND = {
			OR = {
				AND = {
					check_variable = { num_equipment@medium_tank_amphibious_chassis < 50}
					check_variable = { num_equipment_in_armies_k@medium_tank_amphibious_chassis > 0.1}
				}
				AND = {
					check_variable = { num_equipment@heavy_tank_amphibious_chassis < 50}
					check_variable = { num_equipment_in_armies_k@heavy_tank_amphibious_chassis > 0.1}
				}
				AND = {
					check_variable = { num_equipment@light_tank_amphibious_chassis < 50}
					check_variable = { num_equipment_in_armies_k@light_tank_amphibious_chassis > 0.1}
				}
			}
			EAI_amphibious_division_focus = yes
		}
		AND = {
			OR = {
				AND = {
					check_variable = { num_equipment@medium_tank_chassis < 50}
					check_variable = { num_equipment_in_armies_k@medium_tank_chassis > 0.1}
				}
				OR = {
					AND = {
						check_variable = { num_equipment@mechanized_equipment < 50}
						check_variable = { num_equipment_in_armies_k@mechanized_equipment > 0.1}
					}
					AND = {
						check_variable = { num_equipment@motorized_equipment < 50}
						check_variable = { num_equipment_in_armies_k@motorized_equipment > 0.1}
					}
				}
			}
			EAI_MARM_military_focus = yes
			NOT = { EAI_amphibious_division_focus = yes }
		}
		AND = {
			OR = {
				AND = {
					check_variable = { num_equipment@heavy_tank_chassis < 50}
					check_variable = { num_equipment_in_armies_k@heavy_tank_chassis > 0.1}
				}
				OR = {
					AND = {
						check_variable = { num_equipment@mechanized_equipment < 50}
						check_variable = { num_equipment_in_armies_k@mechanized_equipment > 0.1}
					}
					AND = {
						check_variable = { num_equipment@motorized_equipment < 50}
						check_variable = { num_equipment_in_armies_k@motorized_equipment > 0.1}
					}
				}
			}
			EAI_HARM_military_focus = yes
			NOT = { EAI_amphibious_division_focus = yes }
		} 
		AND = {
			OR = {
				AND = {
					check_variable = { num_equipment@light_tank_chassis < 50}
					check_variable = { num_equipment_in_armies_k@light_tank_chassis > 0.1}
				}
				OR = {
					AND = {
						check_variable = { num_equipment@mechanized_equipment < 50}
						check_variable = { num_equipment_in_armies_k@mechanized_equipment > 0.1}
					}
					AND = {
						check_variable = { num_equipment@motorized_equipment < 50}
						check_variable = { num_equipment_in_armies_k@motorized_equipment > 0.1}
					}
				}
			}
			EAI_LARM_military_focus = yes
			NOT = { EAI_amphibious_division_focus = yes }
		} 
		AND = {
			OR = {
				AND = {
					check_variable = { num_equipment@modern_tank_chassis < 50}
					check_variable = { num_equipment_in_armies_k@modern_tank_chassis > 0.1}
				}
				OR = {
					AND = {
						check_variable = { num_equipment@mechanized_equipment < 50}
						check_variable = { num_equipment_in_armies_k@mechanized_equipment > 0.1}
					}
					AND = {
						check_variable = { num_equipment@motorized_equipment < 50}
						check_variable = { num_equipment_in_armies_k@motorized_equipment > 0.1}
					}
				}
			}
			EAI_MODARM_equipment_production = yes
			NOT = { EAI_amphibious_division_focus = yes }
		}
	}
}

EAI_light_armor_division_limit = {
	
	if = { limit = { check_variable = { num_equipment@light_tank_chassis < 1000 }  check_variable = { num_target_equipment_in_armies_k@light_tank_chassis > 0 } }

		set_temp_variable = { t1 = num_equipment_in_armies_k@light_tank_chassis }
		divide_temp_variable = { t1 = num_target_equipment_in_armies_k@light_tank_chassis }
		check_variable = { t1 < 0.50 }
	}
	else = { always = no }
}

EAI_medium_armor_division_limit = {
	
	if = { limit = { check_variable = { num_equipment@medium_tank_chassis < 1000 }  check_variable = { num_target_equipment_in_armies_k@medium_tank_chassis > 0 } }

		set_temp_variable = { t1 = num_equipment_in_armies_k@medium_tank_chassis }
		divide_temp_variable = { t1 = num_target_equipment_in_armies_k@medium_tank_chassis }
		check_variable = { t1 < 0.50 }
	}
	else = { always = no }
}

EAI_heavy_armor_division_limit = {
	
	if = { limit = { check_variable = { num_equipment@heavy_tank_chassis < 1000 }  check_variable = { num_target_equipment_in_armies_k@heavy_tank_chassis > 0 } }

		set_temp_variable = { t1 = num_equipment_in_armies_k@heavy_tank_chassis }
		divide_temp_variable = { t1 = num_target_equipment_in_armies_k@heavy_tank_chassis }
		check_variable = { t1 < 0.50 }
	}
	else = { always = no }
}

EAI_modern_armor_division_limit = {
	
	if = { limit = { check_variable = { num_equipment@modern_tank_chassis < 1000 }  check_variable = { num_target_equipment_in_armies_k@modern_tank_chassis > 0 } }

		set_temp_variable = { t1 = num_equipment_in_armies_k@modern_tank_chassis }
		divide_temp_variable = { t1 = num_target_equipment_in_armies_k@modern_tank_chassis }
		check_variable = { t1 < 0.50 }
	}
	else = { always = no }
}

EAI_motorized_division_limit = {
	
	OR = {
		AND = {
			set_temp_variable = { t1 = num_of_military_factories }
			multiply_temp_variable = { t1 = 2 }
			clamp_temp_variable = { var = t1 min = 0 max = 500 }
			meta_trigger = {
				text = { has_army_manpower = { type = motorized size > [x][y] } }
				x = "[?t1|.0]"
				y = "0000"
			}
		}
		
		### fielded divisions need equipment

		AND = {
			if = { limit = { check_variable = { num_equipment@motorized_equipment < 1000 } check_variable = { num_target_equipment_in_armies_k@motorized_equipment > 0 } }

				set_temp_variable = { t1 = num_equipment_in_armies_k@motorized_equipment }
				divide_temp_variable = { t1 = num_target_equipment_in_armies_k@motorized_equipment }
				check_variable = { t1 < 0.50 }
			}
			else = { always = no }
		}
		AND = {
			if = { limit = { check_variable = { num_equipment@mechanized_equipment < 1000 } check_variable = { num_target_equipment_in_armies_k@mechanized_equipment > 0 } }

				set_temp_variable = { t1 = num_equipment_in_armies_k@mechanized_equipment }
				divide_temp_variable = { t1 = num_target_equipment_in_armies_k@mechanized_equipment }
				check_variable = { t1 < 0.50 }
			}
			else = { always = no }
		}
	}
}

EAI_anti_tank_division_limit = {

	### just to make sure the AI builds anti tank divisions even if it has hit the inf division cap

	if = { limit = { check_variable = { EAI_FOCUS/LAND/antitank_design = global.EAI_LINE_AT_DESIGN } }

		set_temp_variable = { t1 = EAI_division_cap_10k }
		multiply_temp_variable = { t1 = 0.3 }
		check_variable = { num_battalions_with_type@anti_tank_brigade > t1 }
	}

	else_if = { limit = { check_variable = { EAI_FOCUS/LAND/antitank_design = global.EAI_MTD_AT_DESIGN } }

		if = { limit = { check_variable = { EAI_FOCUS/LAND/land_doctrine = global.EAI_MW_DOCTRINE } }

			set_temp_variable = { t1 = EAI_division_cap_10k }
			multiply_temp_variable = { t1 = 0.4 }

			set_temp_variable = { t2 = num_battalions_with_type@medium_sp_anti_air_brigade }
			add_to_temp_variable = { t2 = num_battalions_with_type@modern_sp_anti_air_brigade }

			check_variable = { t2 > t1 }

			else = {	
				set_temp_variable = { t1 = EAI_division_cap_10k }
				multiply_temp_variable = { t1 = 0.2 }

				set_temp_variable = { t2 = num_battalions_with_type@medium_tank_destroyer_brigade }
				add_to_temp_variable = { t2 = num_battalions_with_type@modern_tank_destroyer_brigade }

				check_variable = { t2 > t1 }
			}
		}
	}

	else_if = { limit = { check_variable = { EAI_FOCUS/LAND/antitank_design = global.EAI_HTD_AT_DESIGN } }

		if = { limit = { check_variable = { EAI_FOCUS/LAND/land_doctrine = global.EAI_MW_DOCTRINE } }

			set_temp_variable = { t1 = EAI_division_cap_10k }
			multiply_temp_variable = { t1 = 0.3 }

			set_temp_variable = { t2 = num_battalions_with_type@heavy_sp_anti_air_brigade }
			add_to_temp_variable = { t2 = num_battalions_with_type@modern_sp_anti_air_brigade }

			check_variable = { t2 > t1 }

			else = {	
				set_temp_variable = { t1 = EAI_division_cap_10k }
				multiply_temp_variable = { t1 = 0.15 }

				set_temp_variable = { t2 = num_battalions_with_type@heavy_tank_destroyer_brigade }
				add_to_temp_variable = { t2 = num_battalions_with_type@modern_tank_destroyer_brigade }

				check_variable = { t2 > t1 }
			}
		}
	}
}