ProductionUnits = { "trooper", "trooper", "light_inf" }
ProductionBuildings = { OBarrack }
OrdosInfantryTypes = { "light_inf", "light_inf", "light_inf", "trooper", "trooper", "trooper" }
Multi0Reinforcements = { "trooper", "trooper", "trooper", "trooper", "trike", "quad", "quad", "combat_tank_h" }
Multi0Path = { Multi0Waypoint.Location, Multi0Waypoint2.Location }
Multi0EntryPath = { Multi0Waypoint.Location }

Multi1Reinforcements = { "trooper", "trooper", "trooper", "trooper", "combat_tank_h", "combat_tank_h", "siege_tank" }
Multi1Path = { Multi1Waypoint.Location, Multi1Waypoint2.Location }
Multi1EntryPath = { Multi1Waypoint.Location, Multi1Rally.Location }

Multi2Reinforcements = { "light_inf", "trooper", "trooper", "trooper", "trike", "quad", "quad", "combat_tank_h", "missile_tank" }
Multi2Path = { Multi2Waypoint.Location, Multi2Waypoint2.Location }
Multi2EntryPath = { Multi2Waypoint.Location }

Multi3Reinforcements = { "quad", "raider", "raider", "trooper", "trike", "quad", "quad", "siege_tank", "trooper", "light_inf"  }
Multi3Path = { Multi3Waypoint.Location, Multi3Waypoint2.Location }
Multi3EntryPath = { Multi3Waypoint.Location }

OrdosReinforcements = { "trooper", "trooper", "trooper", "trooper", "trike", "quad", "quad", "combat_tank_o" }
OrdosEntryPath = { OrdosRally1.Location, OrdosRally2.Location }

CreepsReinforcements = { "trooper", "trooper", "light_inf", "light_inf", "trike", "quad", "combat_tank_h", "missile_tank" }
CreepsReinforcements2 = { "siege_tank", "siege_tank", "light_inf", "light_inf", "combat_tank_h", "quad" }
CreepsReinforcements3 = { "siege_tank", "siege_tank", "light_inf", "light_inf", "combat_tank_h", "quad" }
CreepsReinforcements4 = { "siege_tank", "siege_tank", "combat_tank_h", "combat_tank_h", "combat_tank_h" }
CreepsReinforcements5 = { "quad", "raider", "raider", "quad", "raider" }
CreepsReinforcements6 = { "e4", "e4", "e4", "trooper", "light_inf" }
CreepsReinforcements7 = { "e4", "e4", "e4", "e4", "e4", "e4", "e4", "e4", "e4", "e4", "e4", "e4" }
OrdosReinforcements6 = { "e4", "e4", "e4", "e4", "e4", "e4", "e4", "e4", "e4", "e4", "e4", "e4" }
CreepsEntryPath = { CreepsRally1.Location, CreepsRally2.Location }

OrdosReinforcements2 = { "raider", "trooper", "trooper" }
OrdosReinforcements3 = { "combat_tank_o", "missile_tank", "missile_tank", "quad", "raider", "raider", "trooper", "trooper" }
OrdosReinforcements4 = { "siege_tank", "siege_tank", "combat_tank_o", "combat_tank_o", "combat_tank_o" }
OrdosReinforcements5 = { "e4", "e4", "e4", "e4", "trooper", "trooper" }
OrdosReinforcements7 = { "siege_tank", "siege_tank", "combat_tank_o", "combat_tank_o", "combat_tank_o" }
OrdosPath = { Actor139.Location }
OrdosEntryPath2 = { Actor139.Location, Actor141.Location }

OrdosEntryPathH = { OrdosH.Location, OrdosRally2.Location }
OrdosEntryPathB = { OrdosB.Location, Actor141.Location  }
CreepsEntryPathH = { CreepsH.Location, CreepsRally1.Location }
CreepsEntryPathL = { CreepsL.Location, Actor139.Location }
CreepsEntryPathB = { CreepsB.Location, Actor140.Location }

InitialOrdosReinforcements = { "light_inf", "light_inf", "quad", "quad", "raider", "raider", "trooper", "trooper" }

WorldLoaded = function()
	Multi0  = Player.GetPlayer("Multi0")
	Multi1  = Player.GetPlayer("Multi1")
	Multi2  = Player.GetPlayer("Multi2")
	Multi3  = Player.GetPlayer("Multi3")
	Ordos  = Player.GetPlayer("Ordos")
	Creeps  = Player.GetPlayer("Creeps")
	
	Trigger.AfterDelay(DateTime.Seconds(40), function()
	    local units = Reinforcements.ReinforceWithTransport(Multi0, "carryall.reinforce", Multi0Reinforcements, Multi0Path, { Multi0Path[1] })[2]
		Media.PlaySpeechNotification(Multi0, "Reinforce")
		Reinforcements.Reinforce(Multi0, Multi0Reinforcements, Multi0EntryPath)
	end)	
	Trigger.AfterDelay(DateTime.Minutes(1) + DateTime.Seconds(20), function()	
		local units = Reinforcements.ReinforceWithTransport(Multi1, "carryall.reinforce", Multi1Reinforcements, Multi1Path, { Multi1Path[1] })[2]
	    Media.PlaySpeechNotification(Multi1, "Reinforce")
		Reinforcements.Reinforce(Multi1, Multi1Reinforcements, Multi1EntryPath)
	end)
	Trigger.AfterDelay(DateTime.Minutes(1) + DateTime.Seconds(30), function()	
		local units = Reinforcements.ReinforceWithTransport(Multi2, "carryall.reinforce", Multi2Reinforcements, Multi2Path, { Multi2Path[1] })[2]
	    Media.PlaySpeechNotification(Multi2, "Reinforce")
		Reinforcements.Reinforce(Multi2, Multi2Reinforcements, Multi2EntryPath)
	end)
	Trigger.AfterDelay(DateTime.Minutes(1), function()	
		local units = Reinforcements.ReinforceWithTransport(Multi3, "carryall.reinforce", Multi3Reinforcements, Multi3Path, { Multi3Path[1] })[2]
	    Media.PlaySpeechNotification(Multi3, "Reinforce")
		Reinforcements.Reinforce(Multi3, Multi3Reinforcements, Multi3EntryPath)
	end)
	Trigger.AfterDelay(DateTime.Minutes(3) + DateTime.Seconds(20), function()	
	    Media.PlaySpeechNotification(Ordos, "Reinforce")
		Reinforcements.Reinforce(Ordos, OrdosReinforcements, OrdosEntryPath)
	end)
	Trigger.AfterDelay(DateTime.Minutes(3) + DateTime.Seconds(30), function()	
	    Media.PlaySpeechNotification(Creeps, "Reinforce")
		Reinforcements.Reinforce(Creeps, CreepsReinforcements, CreepsEntryPath)
	end)
	Trigger.AfterDelay(DateTime.Minutes(7) + DateTime.Seconds(20), function()	
	    Media.PlaySpeechNotification(Creeps, "Reinforce")
		Reinforcements.Reinforce(Creeps, CreepsReinforcements2, CreepsEntryPath)
	end)
	Trigger.AfterDelay(DateTime.Minutes(7) + DateTime.Seconds(25), function()
		local units = Reinforcements.ReinforceWithTransport(Ordos, "frigate", OrdosReinforcements2, OrdosPath, { OrdosPath[1] })[2]
		Reinforcements.Reinforce(Ordos, OrdosReinforcements3, OrdosEntryPath2) 
	end)
	Trigger.AfterDelay(DateTime.Minutes(7) + DateTime.Seconds(50), function()
		Reinforcements.Reinforce(Ordos, OrdosReinforcements4, OrdosEntryPathH) 
	end)
	Trigger.AfterDelay(DateTime.Minutes(7) + DateTime.Seconds(55), function()
		Reinforcements.Reinforce(Ordos, OrdosReinforcements5, OrdosEntryPathB) 
	end)
	Trigger.AfterDelay(DateTime.Minutes(7) + DateTime.Seconds(40), function()
		Reinforcements.Reinforce(Creeps, CreepsReinforcements4, CreepsEntryPathH) 
	end)
	Trigger.AfterDelay(DateTime.Minutes(8) + DateTime.Seconds(10), function()
		Reinforcements.Reinforce(Creeps, CreepsReinforcements5, CreepsEntryPathL) 
	end)
	Trigger.AfterDelay(DateTime.Minutes(7) + DateTime.Seconds(55), function()
		Reinforcements.Reinforce(Creeps, CreepsReinforcements6, CreepsEntryPathB) 
	end)
	Trigger.AfterDelay(DateTime.Minutes(13) + DateTime.Seconds(10), function()
		Reinforcements.Reinforce(Creeps, CreepsReinforcements7, CreepsEntryPath) 
	end)
	Trigger.AfterDelay(DateTime.Minutes(13), function()
		Reinforcements.Reinforce(Ordos, OrdosReinforcements6, OrdosEntryPath) 
	end)
	Trigger.AfterDelay(DateTime.Minutes(10) + DateTime.Seconds(30), function()
		Reinforcements.Reinforce(Ordos, OrdosReinforcements7, OrdosEntryPathH) 
	end)
end	



