ai_update_intelligence_agency = {
	update_current_agency_upgrades = yes

	if = {
		limit = {
			ai_can_upgrade_agency = yes
			ai_agency_upgrade_type_score = yes
		}

		for_each_loop = {
			array = global.agency_upgrades
			break = no_break

			if = {
				limit = {
					NOT = { is_in_array = { current_upgrade_array = v } }
					meta_trigger = {
						text = {
							NOT = { has_done_agency_upgrade = [V] }
							[V] = yes
						}
						V = "[?v.GetTokenKey]"
					}
				}

				if = {
					limit = {
						check_variable = { ai_score > 0 }
					}
					add_to_temp_variable = { ai_score = ai_type_weight@var:ai_type }
				}

				set_temp_variable = { cost_weight = cost }
				multiply_temp_variable = { cost_weight = 0.01 }

				set_temp_variable = { score_cost_mult = 1 }
				subtract_from_temp_variable = { score_cost_mult = cost_weight }
				multiply_temp_variable = { ai_score = score_cost_mult }

				for_each_loop = {
					array = agency_upgrade_score
					value = s

					if = {
						limit = {
							check_variable = { ai_score > s }
						}
						add_to_temp_array = { array = agency_upgrade index = i value = v }
						add_to_temp_array = { array = agency_upgrade_score index = i value = ai_score }
						set_temp_variable = { break = 1 }
					}
				}

				if = {
					limit = {
						check_variable = { break = 0 }
					}
					add_to_temp_array = { array = agency_upgrade value = v }
					add_to_temp_array = { array = agency_upgrade_score value = ai_score }
				}
				else = {
					set_temp_variable = { break = 0 }
				}
			}
		}

		for_each_loop = {
			array = agency_upgrade

			if = {
				limit = {
					check_variable = { modifier@agency_upgrades > current_upgrade_array^num }
				}
				add_agency_upgrade_to_queue = yes
			}
		}
	}
}

