GetPlayerBarracks0 = function()
	Trigger.AfterDelay(DateTime.Seconds(0.6), function()
		BarracksWayPoint0 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = LandingPoint0 })
		BarracksLandWayPoint0 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = LandingPoint0 + CVec.New(0, 1) })
		BarracksEntryWayPoint0 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = Map.ClosestEdgeCell(LandingPoint0) })
		BarracksConscriptLandWayPoint0 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = LandingPoint0 + CVec.New(1, 1) })
		BarracksExitWayPoint0 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = Map.ClosestEdgeCell(LandingPoint0 + CVec.New(Utils.RandomInteger(-1, 1), 0)) })
	end)
	Trigger.AfterDelay(DateTime.Seconds(0.8), function()
		BarracksLandingPoin0 = BarracksWayPoint0.Location
		BarracksLandingEnte0 = BarracksLandWayPoint0.Location
		BarracksLandingPath0 = { BarracksEntryWayPoint0.Location, BarracksConscriptLandWayPoint0.Location }
		BarracksLandingExit0 = { BarracksExitWayPoint0.Location }
	end)
	WorldBarracks0 = Map.ActorsInCircle(Map.CenterOfCell(StartingWaypoint0.Location), WDist.FromCells(25), function(barrack) return (barrack.Type == "tent" or barrack.Type == "barr") and barrack.Owner == multi0 end)
	Utils.Do(WorldBarracks0, function(s)
		LandingPoint0 = s.Location
		Trigger.OnPassengerEntered(s, function(barrack, enterinfantry)
			if (enterinfantry.Owner == multi0 or enterinfantry.Owner == neutral or enterinfantry.Owner == neutral0 or enterinfantry.Owner == neutral1 or enterinfantry.Owner == neutral2 or enterinfantry.Owner == neutral3 or enterinfantry.Owner == gdi or enterinfantry.Owner == un) and (enterinfantry.Type == "c1" or enterinfantry.Type == "c2" or enterinfantry.Type == "c3" or enterinfantry.Type == "c4" or enterinfantry.Type == "c5" or enterinfantry.Type == "c6" or enterinfantry.Type == "c7" or enterinfantry.Type == "c8" or enterinfantry.Type == "c9" or enterinfantry.Type == "c10") then
				Media.PlaySoundNotification(multi0, "CarDoorSound" .. Utils.RandomInteger(1, 9))
				ConscriptableCitizensBarrackACount0 = ConscriptableCitizensBarrackACount0 + 1
				local TrainEnableBox = Actor.Create("trainbarracka.enable", true, { Owner = multi0, Location = BarracksLandingPoin0 + Utils.Random({ CVec.New(Utils.RandomInteger(0, 2), -1), CVec.New(3, Utils.RandomInteger(0, 2)), CVec.New(-1, Utils.RandomInteger(0, 2)) }), SubCell = Utils.RandomInteger(3, 5) })
			end
		end)
		Trigger.OnPassengerExited(s, function(_, exitinfantry)
			if (exitinfantry.Owner == multi0 or exitinfantry.Owner == neutral or exitinfantry.Owner == neutral0 or exitinfantry.Owner == neutral1 or exitinfantry.Owner == neutral2 or exitinfantry.Owner == neutral3 or exitinfantry.Owner == gdi or exitinfantry.Owner == un) and (exitinfantry.Type == "c1" or exitinfantry.Type == "c2" or exitinfantry.Type == "c3" or exitinfantry.Type == "c4" or exitinfantry.Type == "c5" or exitinfantry.Type == "c6" or exitinfantry.Type == "c7" or exitinfantry.Type == "c8" or exitinfantry.Type == "c9" or exitinfantry.Type == "c10") then
				Media.PlaySoundNotification(multi0, "CarDoorSound" .. Utils.RandomInteger(1, 9))
				exitinfantry.Destroy()
				local TrainEnableBox = Map.ActorsInCircle(Map.CenterOfCell(s.Location), WDist.FromCells(3), function(box) return box.Type == "trainbarracka.enable" end)
				Utils.Do(TrainEnableBox, function(TrainEnableBox)
					TrainEnableBox.Destroy()
				end)
				if ConscriptableCitizensBarrackACount0 == 0 then
					Trigger.AfterDelay(Utils.RandomInteger(333, 666), function() 
						ReConscriptPlayerBarracks0()
					end)
				end
			end
		end)
		Trigger.OnProduction(s, function(self, produced)
			if (produced.Type == "idog.autotarget" or produced.Type == "ie1.autotarget" or produced.Type == "ie2.autotarget" or produced.Type == "ie3.autotarget" or produced.Type == "ie3aa.autotarget" or produced.Type == "ie4.autotarget" or produced.Type == "ie5.autotarget" or produced.Type == "ie7.autotarget" or produced.Type == "ie10.autotarget" or produced.Type == "ie11.autotarget" or produced.Type == "ie12.autotarget" or produced.Type == "ie13.autotarget" or produced.Type == "imedi.autotarget" or produced.Type == "imedi" or produced.Type == "imech.autotarget" or produced.Type == "imech" or produced.Type == "ispy.autotarget" or produced.Type == "ishok.autotarget" or produced.Type == "isniper.autotarget" or produced.Type == "ipartisan.autotarget" or produced.Type == "imgnstinfantry.autotarget") and produced.Owner == multi0 then
				ConscriptableCitizensBarrackACount0 = ConscriptableCitizensBarrackACount0 - 1
				GeneralTeamA0 = GeneralTeamA0 + 1
				if self.HasPassengers and not self.IsDead then
					self.UnloadPassenger()
				end
				Trigger.OnKilled(produced, function()
					GeneralTeamA0 = GeneralTeamA0 - 1
				end)
				produced.GrantUpgrade("nocontrol")
				produced.GrantUpgrade("autocontrol")
				if FieldGeneralLiveState0 then 
					Utils.Do(FieldGeneral0, function(g)
						Trigger.OnIdle(produced, function(a)
							if not g.IsDead and g.IsInWorld then
								if not a.IsDead and a.IsInWorld then a.Guard(g) end
							else
								if not s.IsDead and s.IsInWorld then
			        	      	      			if not a.IsDead and a.IsInWorld then a.Patrol({s.Location + CVec.New(Utils.RandomInteger(-2, 2), Utils.RandomInteger(-2, 2)), s.Location + CVec.New(Utils.RandomInteger(-2, 2), Utils.RandomInteger(-2, 2)), s.Location + CVec.New(Utils.RandomInteger(-2, 2), Utils.RandomInteger(-2, 2)), s.Location + CVec.New(Utils.RandomInteger(-2, 2), Utils.RandomInteger(-2, 2))}, true, Utils.RandomInteger(66, 122)) end
								else
			        	      	      			if not a.IsDead and a.IsInWorld then a.Patrol({a.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1)), a.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1))}, true, Utils.RandomInteger(88, 166)) end
								end
							end
						end)
					end)
				else
					Trigger.OnIdle(produced, function(a)
						if not a.IsDead and a.IsInWorld then a.Patrol({a.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1)), a.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1))}, true, Utils.RandomInteger(88, 166)) end
					end)
				end
			end
		end)
		Trigger.OnProduction(s, function(self, produced)
			if produced.Type == "spy" then
				ConscriptableCitizensBarrackACount0 = ConscriptableCitizensBarrackACount0 - 1
				SpyProduced0 = SpyProduced0 + 1
				Trigger.AfterDelay(DateTime.Seconds(1), function() 
					Media.DisplayMessage("Spy trained! [" .. tostring(SpyProduced0) .. "]", multi0.Name .. "'s Intel-Report", multi0.Color)
				end)
				if self.HasPassengers and not self.IsDead then
					self.UnloadPassenger()
				end
				Trigger.OnKilled(produced, function()
					SpyProduced0 = SpyProduced0 - 1
				end)
			end
		end)
		Trigger.OnProduction(s, function(self, produced)
			if produced.Type == "spy.england" and produced.Owner == multi0 then
				ConscriptableCitizensBarrackACount0 = ConscriptableCitizensBarrackACount0 - 1
				JamesBondProduced0 = JamesBondProduced0 + 1
				Media.DisplayMessage("James Bond agent[007] Arrived!", multi0.Name .. "'s Intel-Report", multi0.Color)
				JamesBondSurvive0 = multi0.AddSecondaryObjective("James Bond must, be survive!")
				if self.HasPassengers and not self.IsDead then
					self.UnloadPassenger()
				end
				Trigger.OnKilled(produced, function()
					JamesBondProduced0 = JamesBondProduced0 - 1
					multi0.MarkFailedObjective(JamesBondSurvive0)
				end)
			end
		end)
		Trigger.OnProduction(s, function(self, produced)
			if produced.Type == "e7" and produced.Owner == multi0 then
				ConscriptableCitizensBarrackACount0 = ConscriptableCitizensBarrackACount0 - 1
				HeroProduced0 = HeroProduced0 + 1
				Media.DisplayMessage("Battle-Hero Arrived!", multi0.Name .. "'s Field-Report", multi0.Color)
				BattleHeroSurvive0 = multi0.AddSecondaryObjective("Battle-Hero must, be survive!")
				if self.HasPassengers and not self.IsDead then
					self.UnloadPassenger()
				end
				Trigger.OnKilled(produced, function()
					HeroProduced0 = HeroProduced0 - 1
					multi0.MarkFailedObjective(BattleHeroSurvive0)
				end)
			end
		end)
		Trigger.OnKilled(s, function()
			PlayerBarracksState0 = false
			PlayerBarracksStateA0 = false
			multi0.MarkFailedObjective(DefendBarrack0)
		end)
	end)
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(0.88, 1.22)), function()
		multi0.MarkCompletedObjective(BuildBarrack0) 
	end)
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(2.88, 3.66)), function()
		DefendBarrack0 = multi0.AddSecondaryObjective("Defend your barrack!") 
	end)
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(4.2, 8.4)), function() 
		BuildWeaponFactory0 = multi0.AddSecondaryObjective("Build a weapon factory!") 
	end)
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(66.99, 99.66)), function()
		PlayerBarrackSpeech0()
	end)
end
GetPlayerBarracks1 = function()
	Trigger.AfterDelay(DateTime.Seconds(0.6), function()
		BarracksWayPoint1 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = LandingPoint1 })
		BarracksLandWayPoint1 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = LandingPoint1 + CVec.New(0, 1) })
		BarracksEntryWayPoint1 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = Map.ClosestEdgeCell(LandingPoint1) })
		BarracksConscriptLandWayPoint1 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = LandingPoint1 + CVec.New(1, 1) })
		BarracksExitWayPoint1 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = Map.ClosestEdgeCell(LandingPoint1 + CVec.New(Utils.RandomInteger(-1, 1), 0)) })
	end)
	Trigger.AfterDelay(DateTime.Seconds(0.8), function()
		BarracksLandingPoin1 = BarracksWayPoint1.Location
		BarracksLandingEnte1 = BarracksLandWayPoint1.Location
		BarracksLandingPath1 = { BarracksEntryWayPoint1.Location, BarracksConscriptLandWayPoint1.Location }
		BarracksLandingExit1 = { BarracksExitWayPoint1.Location }
	end)
	WorldBarracks1 = Map.ActorsInCircle(Map.CenterOfCell(StartingWaypoint1.Location), WDist.FromCells(25), function(barrack) return (barrack.Type == "tent" or barrack.Type == "barr") and barrack.Owner == multi1 end)
	Utils.Do(WorldBarracks1, function(s) 
		LandingPoint1 = s.Location
		Trigger.OnPassengerEntered(s, function(barrack, enterinfantry)
			if (enterinfantry.Owner == multi1 or enterinfantry.Owner == neutral or enterinfantry.Owner == neutral0 or enterinfantry.Owner == neutral1 or enterinfantry.Owner == neutral2 or enterinfantry.Owner == neutral3 or enterinfantry.Owner == gdi or enterinfantry.Owner == un) and (enterinfantry.Type == "c1" or enterinfantry.Type == "c2" or enterinfantry.Type == "c3" or enterinfantry.Type == "c4" or enterinfantry.Type == "c5" or enterinfantry.Type == "c6" or enterinfantry.Type == "c7" or enterinfantry.Type == "c8" or enterinfantry.Type == "c9" or enterinfantry.Type == "c10") then
				Media.PlaySoundNotification(multi1, "CarDoorSound" .. Utils.RandomInteger(1, 9))
				ConscriptableCitizensBarrackACount1 = ConscriptableCitizensBarrackACount1 + 1
				local TrainEnableBox = Actor.Create("trainbarracka.enable", true, { Owner = multi1, Location = BarracksLandingPoin1 + Utils.Random({ CVec.New(Utils.RandomInteger(0, 2), -1), CVec.New(3, Utils.RandomInteger(0, 2)), CVec.New(-1, Utils.RandomInteger(0, 2)) }), SubCell = Utils.RandomInteger(3, 5) })
			end
		end)
		Trigger.OnPassengerExited(s, function(_, exitinfantry)
			if (exitinfantry.Owner == multi1 or exitinfantry.Owner == neutral or exitinfantry.Owner == neutral0 or exitinfantry.Owner == neutral1 or exitinfantry.Owner == neutral2 or exitinfantry.Owner == neutral3 or exitinfantry.Owner == gdi or exitinfantry.Owner == un) and (exitinfantry.Type == "c1" or exitinfantry.Type == "c2" or exitinfantry.Type == "c3" or exitinfantry.Type == "c4" or exitinfantry.Type == "c5" or exitinfantry.Type == "c6" or exitinfantry.Type == "c7" or exitinfantry.Type == "c8" or exitinfantry.Type == "c9" or exitinfantry.Type == "c10") then
				Media.PlaySoundNotification(multi1, "CarDoorSound" .. Utils.RandomInteger(1, 9))
				exitinfantry.Destroy()
				local TrainEnableBox = Map.ActorsInCircle(Map.CenterOfCell(s.Location), WDist.FromCells(3), function(box) return box.Type == "trainbarracka.enable" end)
				Utils.Do(TrainEnableBox, function(TrainEnableBox)
					TrainEnableBox.Destroy()
				end)
				if ConscriptableCitizensBarrackACount1 == 0 then
					Trigger.AfterDelay(Utils.RandomInteger(333, 666), function()
						ReConscriptPlayerBarracks1()
					end)
				end
			end
		end)
		Trigger.OnProduction(s, function(self, produced)
			if (produced.Type == "idog.autotarget" or produced.Type == "ie1.autotarget" or produced.Type == "ie2.autotarget" or produced.Type == "ie3.autotarget" or produced.Type == "ie3aa.autotarget" or produced.Type == "ie4.autotarget" or produced.Type == "ie5.autotarget" or produced.Type == "ie7.autotarget" or produced.Type == "ie10.autotarget" or produced.Type == "ie11.autotarget" or produced.Type == "ie12.autotarget" or produced.Type == "ie13.autotarget" or produced.Type == "imedi.autotarget" or produced.Type == "imedi" or produced.Type == "imech.autotarget" or produced.Type == "imech" or produced.Type == "ispy.autotarget" or produced.Type == "ishok.autotarget" or produced.Type == "isniper.autotarget" or produced.Type == "ipartisan.autotarget" or produced.Type == "imgnstinfantry.autotarget") and produced.Owner == multi1 then
				ConscriptableCitizensBarrackACount1 = ConscriptableCitizensBarrackACount1 - 1
				GeneralTeamA1 = GeneralTeamA1 + 1
				if self.HasPassengers and not self.IsDead then
					self.UnloadPassenger()
				end
				Trigger.OnKilled(produced, function()
					GeneralTeamA1 = GeneralTeamA1 - 1
				end)
				produced.GrantUpgrade("nocontrol")
				produced.GrantUpgrade("autocontrol")
				if FieldGeneralLiveState1 then 
					Utils.Do(FieldGeneral1, function(g)
						Trigger.OnIdle(produced, function(a)
							if not g.IsDead and g.IsInWorld then
								if not a.IsDead and a.IsInWorld then a.Guard(g) end
							else
								if not s.IsDead and s.IsInWorld then
			        	      	      			if not a.IsDead and a.IsInWorld then a.Patrol({s.Location + CVec.New(Utils.RandomInteger(-2, 2), Utils.RandomInteger(-2, 2)), s.Location + CVec.New(Utils.RandomInteger(-2, 2), Utils.RandomInteger(-2, 2)), s.Location + CVec.New(Utils.RandomInteger(-2, 2), Utils.RandomInteger(-2, 2)), s.Location + CVec.New(Utils.RandomInteger(-2, 2), Utils.RandomInteger(-2, 2))}, true, Utils.RandomInteger(66, 122)) end
								else
			        	      	      			if not a.IsDead and a.IsInWorld then a.Patrol({a.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1)), a.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1))}, true, Utils.RandomInteger(88, 166)) end
								end
							end
						end)
					end)
				else
					Trigger.OnIdle(produced, function(a)
						if not a.IsDead and a.IsInWorld then a.Patrol({a.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1)), a.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1))}, true, Utils.RandomInteger(88, 166)) end
					end)
				end
			end
		end)
		Trigger.OnProduction(s, function(self, produced)
			if produced.Type == "spy" then
				ConscriptableCitizensBarrackACount1 = ConscriptableCitizensBarrackACount1 - 1
				SpyProduced1 = SpyProduced1 + 1
				Trigger.AfterDelay(DateTime.Seconds(1), function() 
					Media.DisplayMessage("Spy trained! [" .. tostring(SpyProduced1) .. "]", multi1.Name .. "'s Intel-Report", multi1.Color)
				end)
				if self.HasPassengers and not self.IsDead then
					self.UnloadPassenger()
				end
				Trigger.OnKilled(produced, function()
					SpyProduced1 = SpyProduced1 - 1
				end)
			end
		end)
		Trigger.OnProduction(s, function(self, produced)
			if produced.Type == "spy.england" and produced.Owner == multi1 then
				ConscriptableCitizensBarrackACount1 = ConscriptableCitizensBarrackACount1 - 1
				JamesBondProduced1 = JamesBondProduced1 + 1
				Media.DisplayMessage("Agent Arrived[007]!", multi1.Name .. "'s Intel-Report", multi1.Color)
				JamesBondSurvive1 = multi1.AddSecondaryObjective("James Bond must, be survive!")
				if self.HasPassengers and not self.IsDead then
					self.UnloadPassenger()
				end
				Trigger.OnKilled(produced, function()
					JamesBondProduced1 = JamesBondProduced1 - 1
					multi1.MarkFailedObjective(JamesBondSurvive1)
				end)
			end
		end)
		Trigger.OnProduction(s, function(self, produced)
			if produced.Type == "e7" and produced.Owner == multi1 then
				ConscriptableCitizensBarrackACount1 = ConscriptableCitizensBarrackACount1 - 1
				HeroProduced1 = HeroProduced1 + 1
				Media.DisplayMessage("Battle-Hero Arrived!", multi1.Name .. "'s Field-Report", multi1.Color)
				BattleHeroSurvive1 = multi1.AddSecondaryObjective("Battle-Hero must, be survive!")
				if self.HasPassengers and not self.IsDead then
					self.UnloadPassenger()
				end
				Trigger.OnKilled(produced, function()
					HeroProduced1 = HeroProduced1 - 1
					multi1.MarkFailedObjective(BattleHeroSurvive1)
				end)
			end
		end)
		Trigger.OnKilled(s, function()
			PlayerBarracksState1 = false
			PlayerBarracksStateA1 = false
			multi1.MarkFailedObjective(DefendBarrack1)
		end)
	end)
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(0.88, 1.22)), function() 
		multi1.MarkCompletedObjective(BuildBarrack1)
	end)
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(2.88, 3.66)), function()
		DefendBarrack1 = multi1.AddSecondaryObjective("Defend your barrack!")
	end)
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(4.2, 8.4)), function() 
		BuildWeaponFactory1 = multi1.AddSecondaryObjective("Build a weapon factory!") 
	end)
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(66.99, 99.66)), function()
		PlayerBarrackSpeech1()
	end)
end
GetPlayerBarracks2 = function()
	Trigger.AfterDelay(DateTime.Seconds(0.6), function()
		BarracksWayPoint2 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = LandingPoint2 })
		BarracksLandWayPoint2 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = LandingPoint2 + CVec.New(0, 1) })
		BarracksEntryWayPoint2 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = Map.ClosestEdgeCell(LandingPoint2) })
		BarracksConscriptLandWayPoint2 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = LandingPoint2 + CVec.New(1, 1) })
		BarracksExitWayPoint2 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = Map.ClosestEdgeCell(LandingPoint2 + CVec.New(Utils.RandomInteger(-1, 1), 0)) })
	end)
	Trigger.AfterDelay(DateTime.Seconds(0.8), function()
		BarracksLandingPoin2 = BarracksWayPoint2.Location
		BarracksLandingEnte2 = BarracksLandWayPoint2.Location
		BarracksLandingPath2 = { BarracksEntryWayPoint2.Location, BarracksConscriptLandWayPoint2.Location }
		BarracksLandingExit2 = { BarracksExitWayPoint2.Location }
	end)
	WorldBarracks2 = Map.ActorsInCircle(Map.CenterOfCell(StartingWaypoint2.Location), WDist.FromCells(25), function(barrack) return (barrack.Type == "tent" or barrack.Type == "barr") and barrack.Owner == multi2 end)
	Utils.Do(WorldBarracks2, function(s) 
		LandingPoint2 = s.Location
		Trigger.OnPassengerEntered(s, function(barrack, enterinfantry)
			if (enterinfantry.Owner == multi2 or enterinfantry.Owner == neutral or enterinfantry.Owner == neutral0 or enterinfantry.Owner == neutral1 or enterinfantry.Owner == neutral2 or enterinfantry.Owner == neutral3 or enterinfantry.Owner == gdi or enterinfantry.Owner == un) and (enterinfantry.Type == "c1" or enterinfantry.Type == "c2" or enterinfantry.Type == "c3" or enterinfantry.Type == "c4" or enterinfantry.Type == "c5" or enterinfantry.Type == "c6" or enterinfantry.Type == "c7" or enterinfantry.Type == "c8" or enterinfantry.Type == "c9" or enterinfantry.Type == "c10") then
				Media.PlaySoundNotification(multi2, "CarDoorSound" .. Utils.RandomInteger(1, 9))
				ConscriptableCitizensBarrackACount2 = ConscriptableCitizensBarrackACount2 + 1
				local TrainEnableBox = Actor.Create("trainbarracka.enable", true, { Owner = multi2, Location = BarracksLandingPoin2 + Utils.Random({ CVec.New(Utils.RandomInteger(0, 2), -1), CVec.New(3, Utils.RandomInteger(0, 2)), CVec.New(-1, Utils.RandomInteger(0, 2)) }), SubCell = Utils.RandomInteger(3, 5) })
			end
		end)
		Trigger.OnPassengerExited(s, function(_, exitinfantry)
			if (exitinfantry.Owner == multi2 or exitinfantry.Owner == neutral or exitinfantry.Owner == neutral0 or exitinfantry.Owner == neutral1 or exitinfantry.Owner == neutral2 or exitinfantry.Owner == neutral3 or exitinfantry.Owner == gdi or exitinfantry.Owner == un) and (exitinfantry.Type == "c1" or exitinfantry.Type == "c2" or exitinfantry.Type == "c3" or exitinfantry.Type == "c4" or exitinfantry.Type == "c5" or exitinfantry.Type == "c6" or exitinfantry.Type == "c7" or exitinfantry.Type == "c8" or exitinfantry.Type == "c9" or exitinfantry.Type == "c10") then
				Media.PlaySoundNotification(multi2, "CarDoorSound" .. Utils.RandomInteger(1, 9))
				exitinfantry.Destroy()
				local TrainEnableBox = Map.ActorsInCircle(Map.CenterOfCell(s.Location), WDist.FromCells(3), function(box) return box.Type == "trainbarracka.enable" end)
				Utils.Do(TrainEnableBox, function(TrainEnableBox)
					TrainEnableBox.Destroy()
				end)
				if ConscriptableCitizensBarrackACount2 == 0 then
					Trigger.AfterDelay(Utils.RandomInteger(333, 666), function()
						ReConscriptPlayerBarracks2()
					end)
				end
			end
		end)
		Trigger.OnProduction(s, function(self, produced)
			if (produced.Type == "idog.autotarget" or produced.Type == "ie1.autotarget" or produced.Type == "ie2.autotarget" or produced.Type == "ie3.autotarget" or produced.Type == "ie3aa.autotarget" or produced.Type == "ie4.autotarget" or produced.Type == "ie5.autotarget" or produced.Type == "ie7.autotarget" or produced.Type == "ie10.autotarget" or produced.Type == "ie11.autotarget" or produced.Type == "ie12.autotarget" or produced.Type == "ie13.autotarget" or produced.Type == "imedi.autotarget" or produced.Type == "imedi" or produced.Type == "imech.autotarget" or produced.Type == "imech" or produced.Type == "ispy.autotarget" or produced.Type == "ishok.autotarget" or produced.Type == "isniper.autotarget" or produced.Type == "ipartisan.autotarget" or produced.Type == "imgnstinfantry.autotarget") and produced.Owner == multi2 then
				ConscriptableCitizensBarrackACount2 = ConscriptableCitizensBarrackACount2 - 1
				GeneralTeamA2 = GeneralTeamA2 + 1
				if self.HasPassengers and not self.IsDead then
					self.UnloadPassenger()
				end
				Trigger.OnKilled(produced, function()
					GeneralTeamA2 = GeneralTeamA2 - 1
				end)
				produced.GrantUpgrade("nocontrol")
				produced.GrantUpgrade("autocontrol")
				if FieldGeneralLiveState2 then 
					Utils.Do(FieldGeneral2, function(g)
						Trigger.OnIdle(produced, function(a)
							if not g.IsDead and g.IsInWorld then
								if not a.IsDead and a.IsInWorld then a.Guard(g) end
							else
								if not s.IsDead and s.IsInWorld then
			        	      	      			if not a.IsDead and a.IsInWorld then a.Patrol({s.Location + CVec.New(Utils.RandomInteger(-2, 2), Utils.RandomInteger(-2, 2)), s.Location + CVec.New(Utils.RandomInteger(-2, 2), Utils.RandomInteger(-2, 2)), s.Location + CVec.New(Utils.RandomInteger(-2, 2), Utils.RandomInteger(-2, 2)), s.Location + CVec.New(Utils.RandomInteger(-2, 2), Utils.RandomInteger(-2, 2))}, true, Utils.RandomInteger(66, 122)) end
								else
			        	      	      			if not a.IsDead and a.IsInWorld then a.Patrol({a.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1)), a.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1))}, true, Utils.RandomInteger(88, 166)) end
								end
							end
						end)
					end)
				else
					Trigger.OnIdle(produced, function(a)
						if not a.IsDead and a.IsInWorld then a.Patrol({a.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1)), a.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1))}, true, Utils.RandomInteger(88, 166)) end
					end)
				end
			end
		end)
		Trigger.OnProduction(s, function(self, produced)
			if produced.Type == "spy" then
				ConscriptableCitizensBarrackACount2 = ConscriptableCitizensBarrackACount2 - 1
				SpyProduced2 = SpyProduced2 + 1
				Trigger.AfterDelay(DateTime.Seconds(1), function() 
					Media.DisplayMessage("Spy trained! [" .. tostring(SpyProduced2) .. "]", multi2.Name .. "'s Intel-Report", multi2.Color)
				end)
				if self.HasPassengers and not self.IsDead then
					self.UnloadPassenger()
				end
				Trigger.OnKilled(produced, function()
					SpyProduced2 = SpyProduced2 - 1
				end)
			end
		end)
		Trigger.OnProduction(s, function(self, produced)
			if produced.Type == "spy.england" and produced.Owner == multi2 then
				ConscriptableCitizensBarrackACount2 = ConscriptableCitizensBarrackACount2 - 1
				JamesBondProduced2 = JamesBondProduced2 + 1
				Media.DisplayMessage("James Bond agent[007] Arrived!", multi2.Name .. "'s Intel-Report", multi2.Color)
				JamesBondSurvive2 = multi2.AddSecondaryObjective("James Bond must, be survive!")
				if self.HasPassengers and not self.IsDead then
					self.UnloadPassenger()
				end
				Trigger.OnKilled(produced, function()
					JamesBondProduced2 = JamesBondProduced2 - 1
					multi2.MarkFailedObjective(JamesBondSurvive2)
				end)
			end
		end)
		Trigger.OnProduction(s, function(self, produced)
			if produced.Type == "e7" and produced.Owner == multi2 then
				ConscriptableCitizensBarrackACount2 = ConscriptableCitizensBarrackACount2 - 1
				HeroProduced2 = HeroProduced2 + 1
				Media.DisplayMessage("Battle-Hero Arrived!", multi2.Name .. "'s Field-Report", multi2.Color)
				BattleHeroSurvive2 = multi2.AddSecondaryObjective("Battle-Hero must, be survive!")
				if self.HasPassengers and not self.IsDead then
					self.UnloadPassenger()
				end
				Trigger.OnKilled(produced, function()
					HeroProduced2 = HeroProduced2 - 1
					multi2.MarkFailedObjective(BattleHeroSurvive2)
				end)
			end
		end)
		Trigger.OnKilled(s, function()
			PlayerBarracksState2 = false
			PlayerBarracksStateA2 = false
			multi2.MarkFailedObjective(DefendBarrack2)
		end)
	end)
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(0.88, 1.22)), function() 
		multi2.MarkCompletedObjective(BuildBarrack2)
	end)
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(2.88, 3.66)), function()
		DefendBarrack2 = multi2.AddSecondaryObjective("Defend your barrack!")
	end)
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(4.2, 8.4)), function()
		BuildWeaponFactory2 = multi2.AddSecondaryObjective("Build a weapon factory!") 
	end)
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(66.99, 99.66)), function()
		PlayerBarrackSpeech2()
	end)
end
GetPlayerBarracks3 = function()
	Trigger.AfterDelay(DateTime.Seconds(0.6), function()
		BarracksWayPoint3 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = LandingPoint3 })
		BarracksLandWayPoint3 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = LandingPoint3 + CVec.New(0, 1) })
		BarracksEntryWayPoint3 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = Map.ClosestEdgeCell(LandingPoint3) })
		BarracksConscriptLandWayPoint3 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = LandingPoint3 + CVec.New(1, 1) })
		BarracksExitWayPoint3 = Actor.Create("waypoint", true, { Owner = clearpoint, Location = Map.ClosestEdgeCell(LandingPoint3 + CVec.New(Utils.RandomInteger(-1, 1), 0)) })
	end)
	Trigger.AfterDelay(DateTime.Seconds(0.8), function()
		BarracksLandingPoin3 = BarracksWayPoint3.Location
		BarracksLandingEnte3 = BarracksLandWayPoint3.Location
		BarracksLandingPath3 = { BarracksEntryWayPoint3.Location, BarracksConscriptLandWayPoint3.Location }
		BarracksLandingExit3 = { BarracksExitWayPoint3.Location }
	end)
	WorldBarracks3 = Map.ActorsInCircle(Map.CenterOfCell(StartingWaypoint3.Location), WDist.FromCells(25), function(barrack) return (barrack.Type == "tent" or barrack.Type == "barr") and barrack.Owner == multi3 end)
	Utils.Do(WorldBarracks3, function(s) 
		LandingPoint3 = s.Location
		Trigger.OnPassengerEntered(s, function(barrack, enterinfantry)
			if (enterinfantry.Owner == multi3 or enterinfantry.Owner == neutral or enterinfantry.Owner == neutral0 or enterinfantry.Owner == neutral1 or enterinfantry.Owner == neutral2 or enterinfantry.Owner == neutral3 or enterinfantry.Owner == gdi or enterinfantry.Owner == un) and (enterinfantry.Type == "c1" or enterinfantry.Type == "c2" or enterinfantry.Type == "c3" or enterinfantry.Type == "c4" or enterinfantry.Type == "c5" or enterinfantry.Type == "c6" or enterinfantry.Type == "c7" or enterinfantry.Type == "c8" or enterinfantry.Type == "c9" or enterinfantry.Type == "c10") then
				Media.PlaySoundNotification(multi3, "CarDoorSound" .. Utils.RandomInteger(1, 9))
				ConscriptableCitizensBarrackACount3 = ConscriptableCitizensBarrackACount3 + 1
				local TrainEnableBox = Actor.Create("trainbarracka.enable", true, { Owner = multi3, Location = BarracksLandingPoin3 + Utils.Random({ CVec.New(Utils.RandomInteger(0, 2), -1), CVec.New(3, Utils.RandomInteger(0, 2)), CVec.New(-1, Utils.RandomInteger(0, 2)) }), SubCell = Utils.RandomInteger(3, 5) })
			end
		end)
		Trigger.OnPassengerExited(s, function(_, exitinfantry)
			if (exitinfantry.Owner == multi3 or exitinfantry.Owner == neutral or exitinfantry.Owner == neutral0 or exitinfantry.Owner == neutral1 or exitinfantry.Owner == neutral2 or exitinfantry.Owner == neutral3 or exitinfantry.Owner == gdi or exitinfantry.Owner == un) and (exitinfantry.Type == "c1" or exitinfantry.Type == "c2" or exitinfantry.Type == "c3" or exitinfantry.Type == "c4" or exitinfantry.Type == "c5" or exitinfantry.Type == "c6" or exitinfantry.Type == "c7" or exitinfantry.Type == "c8" or exitinfantry.Type == "c9" or exitinfantry.Type == "c10") then
				Media.PlaySoundNotification(multi3, "CarDoorSound" .. Utils.RandomInteger(1, 9))
				exitinfantry.Destroy()
				local TrainEnableBox = Map.ActorsInCircle(Map.CenterOfCell(s.Location), WDist.FromCells(3), function(box) return box.Type == "trainbarracka.enable" end)
				Utils.Do(TrainEnableBox, function(TrainEnableBox)
					TrainEnableBox.Destroy()
				end)
				if ConscriptableCitizensBarrackACount3 == 0 then
					Trigger.AfterDelay(Utils.RandomInteger(333, 666), function()
						ReConscriptPlayerBarracks3()
					end)
				end
			end
		end)
		Trigger.OnProduction(s, function(self, produced)
			if (produced.Type == "idog.autotarget" or produced.Type == "ie1.autotarget" or produced.Type == "ie2.autotarget" or produced.Type == "ie3.autotarget" or produced.Type == "ie3aa.autotarget" or produced.Type == "ie4.autotarget" or produced.Type == "ie5.autotarget" or produced.Type == "ie7.autotarget" or produced.Type == "ie10.autotarget" or produced.Type == "ie11.autotarget" or produced.Type == "ie12.autotarget" or produced.Type == "ie13.autotarget" or produced.Type == "imedi.autotarget" or produced.Type == "imedi" or produced.Type == "imech.autotarget" or produced.Type == "imech" or produced.Type == "ispy.autotarget" or produced.Type == "ishok.autotarget" or produced.Type == "isniper.autotarget" or produced.Type == "ipartisan.autotarget" or produced.Type == "imgnstinfantry.autotarget") and produced.Owner == multi3 then
				ConscriptableCitizensBarrackACount3 = ConscriptableCitizensBarrackACount3 - 1
				GeneralTeamA3 = GeneralTeamA3 + 1
				if self.HasPassengers and not self.IsDead then
					self.UnloadPassenger()
				end
				Trigger.OnKilled(produced, function()
					GeneralTeamA3 = GeneralTeamA3 - 1
				end)
				produced.GrantUpgrade("nocontrol")
				produced.GrantUpgrade("autocontrol")
				if FieldGeneralLiveState3 then 
					Utils.Do(FieldGeneral3, function(g)
						Trigger.OnIdle(produced, function(a)
							if not g.IsDead and g.IsInWorld then
								if not a.IsDead and a.IsInWorld then a.Guard(g) end
							else
								if not s.IsDead and s.IsInWorld then
			        	      	      			if not a.IsDead and a.IsInWorld then a.Patrol({s.Location + CVec.New(Utils.RandomInteger(-2, 2), Utils.RandomInteger(-2, 2)), s.Location + CVec.New(Utils.RandomInteger(-2, 2), Utils.RandomInteger(-2, 2)), s.Location + CVec.New(Utils.RandomInteger(-2, 2), Utils.RandomInteger(-2, 2)), s.Location + CVec.New(Utils.RandomInteger(-2, 2), Utils.RandomInteger(-2, 2))}, true, Utils.RandomInteger(66, 122)) end
								else
			        	      	      			if not a.IsDead and a.IsInWorld then a.Patrol({a.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1)), a.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1))}, true, Utils.RandomInteger(88, 166)) end
								end
							end
						end)
					end)
				else
					Trigger.OnIdle(produced, function(a)
						if not a.IsDead and a.IsInWorld then a.Patrol({a.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1)), a.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1))}, true, Utils.RandomInteger(88, 166)) end
					end)
				end
			end
		end)
		Trigger.OnProduction(s, function(self, produced)
			if produced.Type == "spy" then
				ConscriptableCitizensBarrackACount3 = ConscriptableCitizensBarrackACount3 - 1
				SpyProduced3 = SpyProduced3 + 1
				Trigger.AfterDelay(DateTime.Seconds(1), function() 
					Media.DisplayMessage("Spy trained! [" .. tostring(SpyProduced3) .. "]", multi3.Name .. "'s Intel-Report", multi3.Color)
				end)
				if self.HasPassengers and not self.IsDead then
					self.UnloadPassenger()
				end
				Trigger.OnKilled(produced, function()
					SpyProduced3 = SpyProduced3 - 1
				end)
			end
		end)
		Trigger.OnProduction(s, function(self, produced)
			if produced.Type == "spy.england" and produced.Owner == multi3 then
				ConscriptableCitizensBarrackACount3 = ConscriptableCitizensBarrackACount3 - 1
				JamesBondProduced3 = JamesBondProduced3 + 1
				Media.DisplayMessage("James Bond agent[007] Arrived!", multi3.Name .. "'s Intel-Report", multi3.Color)
				JamesBondSurvive3 = multi3.AddSecondaryObjective("James Bond must, be survive!")
				if self.HasPassengers and not self.IsDead then
					self.UnloadPassenger()
				end
				Trigger.OnKilled(produced, function()
					JamesBondProduced3 = JamesBondProduced3 - 1
					multi3.MarkFailedObjective(JamesBondSurvive3)
				end)
			end
		end)
		Trigger.OnProduction(s, function(self, produced)
			if produced.Type == "e7" and produced.Owner == multi3 then
				ConscriptableCitizensBarrackACount3 = ConscriptableCitizensBarrackACount3 - 1
				HeroProduced3 = HeroProduced3 + 1
				Media.DisplayMessage("Battle-Hero Arrived!", multi3.Name .. "'s Field-Report", multi3.Color)
				BattleHeroSurvive3 = multi3.AddSecondaryObjective("Battle-Hero must, be survive!")
				if self.HasPassengers and not self.IsDead then
					self.UnloadPassenger()
				end
				Trigger.OnKilled(produced, function()
					HeroProduced3 = HeroProduced3 - 1
					multi3.MarkFailedObjective(BattleHeroSurvive3)
				end)
			end
		end)
		Trigger.OnKilled(s, function()
			PlayerBarracksState3 = false
			PlayerBarracksStateA3 = false
			multi3.MarkFailedObjective(DefendBarrack3)
		end)
	end)
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(0.88, 1.22)), function() 
		multi3.MarkCompletedObjective(BuildBarrack3)
	end)
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(2.88, 3.66)), function() 
		DefendBarrack3 = multi3.AddSecondaryObjective("Defend your barrack!")
	end)
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(4.2, 8.4)), function()
		BuildWeaponFactory3 = multi3.AddSecondaryObjective("Build a weapon factory!")
	end)
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(66.99, 99.66)), function()
		PlayerBarrackSpeech3()
	end)
end
PlayerBarrackSpeech0 = function()
	if PlayerBarracksState0 then
		Utils.Do(WorldBarracks0, function(b)
			if not b.IsDead and b.IsInWorld then
				b.GrantTimedUpgrade("mouth.prefix", Utils.RandomInteger(44, 66))
				Media.FloatingText(Utils.Random({ "-" .. tostring(Invocation0) .. ", " .. tostring(ConscriptableCitizensBarrackACount0) .. " conscriptabling citizen are avaible!", "-" .. tostring(Invocation0) .. ", " .. tostring(SpyProduced0) .. " spy are trained!" }), b.CenterPosition + WVec.New(Utils.Random({ -1, 3 }), Utils.Random({ -1, 3 }), Utils.Random({ -22, 22 })), Utils.RandomInteger(88, 122), multi0.Color)
			end
		end)
	end
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(66.99, 99.66)), function() PlayerBarrackSpeech0() end)
end
PlayerBarrackSpeech1 = function()
	if PlayerBarracksState1 then
		Utils.Do(WorldBarracks1, function(b)
			if not b.IsDead and b.IsInWorld then
				b.GrantTimedUpgrade("mouth.prefix", Utils.RandomInteger(44, 66))
				Media.FloatingText(Utils.Random({ "-" .. tostring(Invocation1) .. ", " .. tostring(ConscriptableCitizensBarrackACount1) .. " conscriptabling citizen are avaible!", "-" .. tostring(Invocation1) .. ", " .. tostring(SpyProduced1) .. " spy are trained!" }), b.CenterPosition + WVec.New(Utils.Random({ -1, 3 }), Utils.Random({ -1, 3 }), Utils.Random({ -22, 22 })), Utils.RandomInteger(88, 122), multi1.Color)
			end
		end)
	end
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(66.99, 99.66)), function() PlayerBarrackSpeech1() end)
end
PlayerBarrackSpeech2 = function()
	if PlayerBarracksState2 then
		Utils.Do(WorldBarracks2, function(b)
			if not b.IsDead and b.IsInWorld then
				b.GrantTimedUpgrade("mouth.prefix", Utils.RandomInteger(44, 66))
				Media.FloatingText(Utils.Random({ "-" .. tostring(Invocation2) .. ", " .. tostring(ConscriptableCitizensBarrackACount2) .. " conscriptabling citizen are avaible!", "-" .. tostring(Invocation2) .. ", " .. tostring(SpyProduced2) .. " spy are trained!" }), b.CenterPosition + WVec.New(Utils.Random({ -1, 3 }), Utils.Random({ -1, 3 }), Utils.Random({ -22, 22 })), Utils.RandomInteger(88, 122), multi2.Color)
			end
		end)
	end
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(66.99, 99.66)), function() PlayerBarrackSpeech2() end)
end
PlayerBarrackSpeech3 = function()
	if PlayerBarracksState3 then
		Utils.Do(WorldBarracks3, function(b)
			if not b.IsDead and b.IsInWorld then
				b.GrantTimedUpgrade("mouth.prefix", Utils.RandomInteger(44, 66))
				Media.FloatingText(Utils.Random({ "-" .. tostring(Invocation3) .. ", " .. tostring(ConscriptableCitizensBarrackACount3) .. " conscriptabling citizen are avaible!", "-" .. tostring(Invocation3) .. ", " .. tostring(SpyProduced3) .. " spy are trained!" }), b.CenterPosition + WVec.New(Utils.Random({ -1, 3 }), Utils.Random({ -1, 3 }), Utils.Random({ -22, 22 })), Utils.RandomInteger(88, 122), multi3.Color)
			end
		end)
	end
	Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(66.99, 99.66)), function() PlayerBarrackSpeech0() end)
end
ReConscriptPlayerBarracks0 = function()
	ConscriptableCivilians0 = Reinforcements.ReinforceWithTransport(Utils.Random({ multi0, neutral, neutral0, neutral1, neutral3, neutral4, gdi, un }), Utils.Random({ "", "small" }) .. "tran", ConscriptableCitizens, BarracksLandingPath0, BarracksLandingExit0)[2]
	Utils.Do(ConscriptableCivilians0, function(cciv)
		cciv.Owner = Utils.Random({ multi0, neutral, neutral0, neutral1, neutral3, neutral4, gdi, un })
		cciv.Stance = "HoldFire"
		cciv.GrantUpgrade("nocontrol")
		Trigger.OnIdle(cciv, function(c)
			if not c.IsDead then c.Scatter() end
			if not c.IsDead then c.Move(BarracksLandingPoin0 + CVec.New(0, 1)) end
			if not c.IsDead then c.Wait(Utils.RandomInteger(28, 36)) end
			if not c.IsDead and PlayerBarracksState0 then
				Utils.Do(WorldBarracks0, function(wb)
					c.EnterTransport(wb, Utils.RandomInteger(2, 4), Utils.Random({ true, false }))
				end)
			end
		end)
	end)
	Trigger.OnAllKilled(ConscriptableCivilians0, function()
		Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(6, 9)), function() ReConscriptPlayerBarracks0() end)
	end)
end
ReConscriptPlayerBarracks1 = function()
	ConscriptableCivilians1 = Reinforcements.ReinforceWithTransport(Utils.Random({ multi1, neutral, neutral0, neutral1, neutral3, neutral4, gdi, un }), Utils.Random({ "", "small" }) .. "tran", ConscriptableCitizens, BarracksLandingPath1, BarracksLandingExit1)[2]
	Utils.Do(ConscriptableCivilians1, function(cciv)
		cciv.Owner = Utils.Random({ multi1, neutral, neutral0, neutral1, neutral3, neutral4, gdi, un })
		cciv.Stance = "HoldFire"
		cciv.GrantUpgrade("nocontrol")
		Trigger.OnIdle(cciv, function(c)
			if not c.IsDead then c.Scatter() end
			if not c.IsDead then c.Move(BarracksLandingPoin1 + CVec.New(0, 1)) end
			if not c.IsDead then c.Wait(Utils.RandomInteger(28, 36)) end
			if not c.IsDead and PlayerBarracksState1 then 
				Utils.Do(WorldBarracks1, function(wb) 
					c.EnterTransport(wb, Utils.RandomInteger(2, 4), Utils.Random({ true, false }))
				end)
			end
		end)
	end)
	Trigger.OnAllKilled(ConscriptableCivilians1, function()
		Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(6, 9)), function() ReConscriptPlayerBarracks1() end)
	end)
end
ReConscriptPlayerBarracks2 = function()
	ConscriptableCivilians2 = Reinforcements.ReinforceWithTransport(Utils.Random({ multi2, neutral, neutral0, neutral1, neutral3, neutral4, gdi, un }), Utils.Random({ "", "small" }) .. "tran", ConscriptableCitizens, BarracksLandingPath2, BarracksLandingExit2)[2]
	Utils.Do(ConscriptableCivilians2, function(cciv)
		cciv.Owner = Utils.Random({ multi2, neutral, neutral0, neutral1, neutral3, neutral4, gdi, un })
		cciv.Stance = "HoldFire"
		cciv.GrantUpgrade("nocontrol")
		Trigger.OnIdle(cciv, function(c)
			if not c.IsDead then c.Scatter() end
			if not c.IsDead then c.Move(BarracksLandingPoin2 + CVec.New(0, 1)) end
			if not c.IsDead then c.Wait(Utils.RandomInteger(28, 36)) end
			if not c.IsDead and PlayerBarracksState2 then 
				Utils.Do(WorldBarracks2, function(wb) 
					c.EnterTransport(wb, Utils.RandomInteger(2, 4), Utils.Random({ true, false }))
				end)
			end
		end)
	end)
	Trigger.OnAllKilled(ConscriptableCivilians2, function()
		Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(6, 9)), function() ReConscriptPlayerBarracks2() end)
	end)
end
ReConscriptPlayerBarracks3 = function()
	ConscriptableCivilians3 = Reinforcements.ReinforceWithTransport(Utils.Random({ multi3, neutral, neutral0, neutral1, neutral3, neutral4, gdi, un }), Utils.Random({ "", "small" }) .. "tran", ConscriptableCitizens, BarracksLandingPath3, BarracksLandingExit3)[2]
	Utils.Do(ConscriptableCivilians3, function(cciv)
		cciv.Owner = Utils.Random({ multi3, neutral, neutral0, neutral1, neutral3, neutral4, gdi, un })
		cciv.Stance = "HoldFire"
		cciv.GrantUpgrade("nocontrol")
		Trigger.OnIdle(cciv, function(c)
			if not c.IsDead then c.Scatter() end
			if not c.IsDead then c.Move(BarracksLandingPoin3 + CVec.New(0, 1)) end
			if not c.IsDead then c.Wait(Utils.RandomInteger(28, 36)) end
			if not c.IsDead and PlayerBarracksState3 then
				Utils.Do(WorldBarracks3, function(wb) 
					c.EnterTransport(wb, Utils.RandomInteger(2, 4), Utils.Random({ true, false })) 
					Trigger.OnPassengerEntered(wb, function(barrack, conscript)
						if conscript.Type == "c1" or conscript.Type == "c2" or conscript.Type == "c3" or conscript.Type == "c4" or conscript.Type == "c5" or conscript.Type == "c6" or conscript.Type == "c7" or conscript.Type == "c8" or conscript.Type == "c9" or conscript.Type == "c10" then
							local BarrackaTrainEnableBox = Actor.Create("trainbarracka.enable", true, { Owner = multi3, Location = BarracksLandingPoin3 + Utils.Random({ CVec.New(Utils.RandomInteger(0, 2), -1), CVec.New(3, Utils.RandomInteger(0, 2)), CVec.New(-1, Utils.RandomInteger(0, 2)) }) })
						end
					end)
				end)
			end
		end)
	end)
	Trigger.OnAllKilled(ConscriptableCivilians3, function()
		Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(6, 9)), function() ReConscriptPlayerBarracks3() end)
	end)
end

