Feedback, ideas, and brainstorming pls - Lurchuip Scenario

Part 2 of code (too long for single post):

Code:
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_CLAN_OF_EMBERS'):
				pClanOfEmbersCityPlot = CyMap().plot(32, 36)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity1") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(32, 36)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 32, 36, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)										
				pClanOfEmbersCityPlot = CyMap().plot(43, 36)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity2") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(43, 36)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 43, 36, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(23, 35)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity3") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(23, 35)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 23, 35, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(28, 33)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity4") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(28, 33)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 28, 33, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(35, 32)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity5") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(35, 32)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 35, 32, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(40, 32)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity6") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(40, 32)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 40, 32, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(48, 32)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity7") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(48, 32)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 48, 32, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(28, 28)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity8") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(28, 28)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 28, 28, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(32, 28)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity9") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(32, 28)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 32, 28, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(37, 28)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity10") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(37, 28)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 37, 28, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(15, 25)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity11") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(15, 25)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 15, 25, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(20, 24)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity12") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(20, 24)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 20, 24, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(24, 23)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity13") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(24, 23)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 24, 23, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(29, 23)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity14") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(29, 23)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 29, 23, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(40, 22)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity15") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(40, 22)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 40, 22, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(17, 19)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity16") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(17, 19)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 17, 19, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(23, 18)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity17") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(23, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 23, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(28, 18)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity18") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(28, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 28, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(33, 18)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity19") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(33, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 33, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(38, 18)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity20") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(38, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 38, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(45, 18)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity21") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(45, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 45, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(27, 13)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity22") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(27, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 27, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(32, 13)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity23") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(32, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 32, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(38, 13)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity24") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(38, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 38, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(43, 13)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity25") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(43, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 43, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pClanOfEmbersCityPlot = CyMap().plot(48, 13)
				if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity26") <= 1:
					if pClanOfEmbersCityPlot.getNumUnits() == 0:
						if pClanOfEmbersCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(48, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 48, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								

			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_DOVIELLO'):
				pDovielloCityPlot = CyMap().plot(53, 3)
				if CyGame().getSorenRandNum(1000, "DovielloCity1") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(53, 3)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 53, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(47, 3)
				if CyGame().getSorenRandNum(1000, "DovielloCity2") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(47, 3)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 47, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(29, 3)
				if CyGame().getSorenRandNum(1000, "DovielloCity3") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(29, 3)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 29, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(24, 3)
				if CyGame().getSorenRandNum(1000, "DovielloCity4") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(24, 3)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 24, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(19, 3)
				if CyGame().getSorenRandNum(1000, "DovielloCity5") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(19, 3)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 19, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(50, 8)
				if CyGame().getSorenRandNum(1000, "DovielloCity6") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(50, 8)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 50, 8, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(45, 8)
				if CyGame().getSorenRandNum(1000, "DovielloCity7") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(45, 8)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 45, 8, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(32, 8)
				if CyGame().getSorenRandNum(1000, "DovielloCity8") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(32, 8)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 32, 8, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(27, 8)
				if CyGame().getSorenRandNum(1000, "DovielloCity9") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(27, 8)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 27, 8, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(22, 8)
				if CyGame().getSorenRandNum(1000, "DovielloCity10") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(22, 8)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 22, 8, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(38, 9)
				if CyGame().getSorenRandNum(1000, "DovielloCity11") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(38, 9)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 38, 9, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(48, 13)
				if CyGame().getSorenRandNum(1000, "DovielloCity12") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(48, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 48, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(43, 13)
				if CyGame().getSorenRandNum(1000, "DovielloCity13") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(43, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 43, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(38, 13)
				if CyGame().getSorenRandNum(1000, "DovielloCity14") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(38, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 38, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(32, 13)
				if CyGame().getSorenRandNum(1000, "DovielloCity15") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(32, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 32, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(27, 13)
				if CyGame().getSorenRandNum(1000, "DovielloCity16") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(27, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 27, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(22, 13)
				if CyGame().getSorenRandNum(1000, "DovielloCity17") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(22, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 22, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(45, 18)
				if CyGame().getSorenRandNum(1000, "DovielloCity18") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(45, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 45, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(38, 18)
				if CyGame().getSorenRandNum(1000, "DovielloCity19") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(38, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 38, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(33, 18)
				if CyGame().getSorenRandNum(1000, "DovielloCity20") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(33, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 33, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(28, 18)
				if CyGame().getSorenRandNum(1000, "DovielloCity21") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(28, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 28, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pDovielloCityPlot = CyMap().plot(23, 18)
				if CyGame().getSorenRandNum(1000, "DovielloCity22") <= 1:
					if pDovielloCityPlot.getNumUnits() == 0:
						if pDovielloCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(23, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 23, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								

			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_ELOHIM'):
				iBlank = 1
 
Part 3 of code (too long for single post):

Code:
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_KURIOTATES'):
				#The first 4 sites (including capital) will be cities, after that the sites will be settlements
				#Kuriotates cities have a radius of 3 compared to other civs that have city radii of 2
				#Settlements can get larger when the AI casts Legends or if Octopus Overlords is in the settlements
				iKurioSite1 = 0
				iKurioSite2 = 0
				iKurioSite3 = 0
				if pNewCityCivPlayer.getNumCities() < 4:
					if CyMap().plot(70, 22).getNumUnits() == 0 and CyMap().plot(70, 22).isOwned() == False:
						iKurioSite1 = 5
					if CyMap().plot(79, 19).getNumUnits() == 0 and CyMap().plot(70, 22).isOwned() == False:
						iKurioSite2 = 5
					if CyMap().plot(63, 13).getNumUnits() == 0 and CyMap().plot(70, 22).isOwned() == False:		
						iKurioSite3 = 5
					if iKurioSite1 == 5 or iKurioSite2 == 5 or iKurioSite3 == 5:
						#At least one tier 1 site is vacant
						#If all 3 sites are available then chance is 5/1000 each, if 2 sites are available then chance is 10/1000, if 1 site is available then chance is 15/1000
						pKuriotatesCityPlot = CyMap().plot(70, 22)
						if CyGame().getSorenRandNum(1000, "KuriotatesCity1") <= (20 - iKurioSite1 - iKurioSite2 - iKurioSite3):
							if pKuriotatesCityPlot.getNumUnits() == 0:
								if pKuriotatesCityPlot.isOwned() == False:
									pNewCityCivPlayer.initCity(70, 22)
									pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 70, 22, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)										
						pKuriotatesCityPlot = CyMap().plot(79, 19)
						if CyGame().getSorenRandNum(1000, "KuriotatesCity2") <= (20 - iKurioSite1 - iKurioSite2 - iKurioSite3):
							if pKuriotatesCityPlot.getNumUnits() == 0:
								if pKuriotatesCityPlot.isOwned() == False:
									pNewCityCivPlayer.initCity(79, 19)
									pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 79, 19, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
						pKuriotatesCityPlot = CyMap().plot(63, 13)
						if CyGame().getSorenRandNum(1000, "KuriotatesCity3") <= (20 - iKurioSite1 - iKurioSite2 - iKurioSite3):
							if pKuriotatesCityPlot.getNumUnits() == 0:
								if pKuriotatesCityPlot.isOwned() == False:
									pNewCityCivPlayer.initCity(63, 13)
									pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 63, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					if iKurioSite1 == 0 and iKurioSite2 == 0 and iKurioSite3 == 0:
						#None of the 3 tier 1 sites are vacant but there are less than 4 cities (including the capital)
						#Therefore try to build a city on a second tier site
						pKuriotatesCityPlot = CyMap().plot(79, 4)
						if CyGame().getSorenRandNum(1000, "KuriotatesCity4") <= 8:
							if pKuriotatesCityPlot.getNumUnits() == 0:
								if pKuriotatesCityPlot.isOwned() == False:
									pNewCityCivPlayer.initCity(79, 4)
									pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 79, 4, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
						pKuriotatesCityPlot = CyMap().plot(73, 3)
						if CyGame().getSorenRandNum(1000, "KuriotatesCity5") <= 8:
							if pKuriotatesCityPlot.getNumUnits() == 0:
								if pKuriotatesCityPlot.isOwned() == False:
									pNewCityCivPlayer.initCity(73, 3)
									pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 73, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
						pKuriotatesCityPlot = CyMap().plot(66, 8)
						if CyGame().getSorenRandNum(1000, "KuriotatesCity6") <= 8:
							if pKuriotatesCityPlot.getNumUnits() == 0:
								if pKuriotatesCityPlot.isOwned() == False:
									pNewCityCivPlayer.initCity(66, 8)
									pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 66, 8, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
						pKuriotatesCityPlot = CyMap().plot(70, 15)
						if CyGame().getSorenRandNum(1000, "KuriotatesCity7") <= 8:
							if pKuriotatesCityPlot.getNumUnits() == 0:
								if pKuriotatesCityPlot.isOwned() == False:
									pNewCityCivPlayer.initCity(70, 15)
									pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 70, 15, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
						pKuriotatesCityPlot = CyMap().plot(72, 29)
						if CyGame().getSorenRandNum(1000, "KuriotatesCity8") <= 8:
							if pKuriotatesCityPlot.getNumUnits() == 0:
								if pKuriotatesCityPlot.isOwned() == False:
									pNewCityCivPlayer.initCity(72, 29)
									pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 72, 29, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				if pNewCityCivPlayer.getNumCities() > 3:
					#This is when all 4 main cities have been built
					#These are settlements only but uses tier 2 and tier 3 sites
					pKuriotatesCityPlot = CyMap().plot(79, 4)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity9") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(79, 4)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 79, 4, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(73, 3)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity10") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(73, 3)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 73, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(66, 8)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity11") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(66, 8)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 66, 8, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(70, 15)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity12") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(70, 15)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 70, 15, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(72, 29)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity13") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(72, 29)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 72, 29, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(76, 3)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity14") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(76, 3)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 76, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(68, 2)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity15") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(68, 2)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 68, 2, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(61, 3)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity16") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(61, 3)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 61, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(63, 7)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity17") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(63, 7)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 63, 7, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(74, 14)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity18") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(74, 14)	
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 74, 14, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(77, 12)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity19") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(77, 12)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 77, 12, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(81, 15)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity20") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(81, 15)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 81, 15, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(75, 17)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity21") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(75, 17)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 75, 17, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(62, 18)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity22") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(62, 18)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 62, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(59, 18)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity23") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(59, 18)	
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 59, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(82, 26)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity24") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(82, 26)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 82, 26, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								

			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_LJOSALFAR'):
				pLjosalfarCityPlot = CyMap().plot(38, 43)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity1") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(38, 43)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 38, 43, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(43, 48)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity2") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(43, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 43, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(49, 48)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity3") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(49, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 49, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(55, 48)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity4") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(55, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 55, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(61, 48)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity5") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(61, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 61, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(66, 48)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity6") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(66, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 66, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(38, 43)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity7") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(38, 43)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 38, 43, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(43, 43)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity8") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(43, 43)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 43, 43, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(57, 43)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity9") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(57, 43)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 57, 43, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(63, 43)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity10") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(63, 43)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 63, 43, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(47, 39)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity11") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(47, 39)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 47, 39, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(55, 38)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity12") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(55, 38)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 55, 38, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(64, 38)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity13") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(64, 38)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 64, 38, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(38, 38)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity14") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(38, 38)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 38, 38, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(43, 36)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity15") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(43, 36)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 43, 36, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(48, 32)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity16") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(48, 32)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 48, 32, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(54, 34)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity17") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(54, 34)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 54, 34, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLjosalfarCityPlot = CyMap().plot(61, 34)
				if CyGame().getSorenRandNum(1000, "LjosalfarCity18") <= 1:
					if pLjosalfarCityPlot.getNumUnits() == 0:
						if pLjosalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(61, 34)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 61, 34, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
 
Part 4 of code (too long for single post):

Code:
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_LUCHUIRP'):
				pLuchuirpCityPlot = CyMap().plot(61, 48)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity1") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(61, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 61, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(66, 48)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity2") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(66, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 66, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(71, 48)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity3") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(71, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 71, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(76, 48)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity4") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(76, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 76, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(80, 48)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity5") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(80, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 80, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(63, 43)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity6") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(63, 43)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 63, 43, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(68, 43)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity7") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(68, 43)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 68, 43, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(80, 43)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity8") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(80, 43)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 80, 43, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(73, 42)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity9") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(73, 42)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 73, 42, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(79, 39)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity10") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(79, 39)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 79, 39, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(64, 38)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity11") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(64, 38)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 64, 38, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(69, 37)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity12") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(69, 37)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 69, 37, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(54, 34)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity13") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(54, 34)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 54, 34, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(61, 34)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity14") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(61, 34)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 61, 34, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(79, 34)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity15") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(79, 34)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 79, 34, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(75, 33)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity16") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(75, 33)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 75, 33, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(72, 33)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity17") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(72, 33)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 72, 33, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(68, 32)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity18") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(68, 32)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 68, 32, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(56, 29)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity19") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(56, 29)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 56, 29, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(61, 28)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity20") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(61, 28)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 61, 28, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(75, 28)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity21") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(75, 28)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 75, 28, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(80, 28)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity22") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(80, 28)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 80, 28, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(70, 27)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity23") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(70, 27)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 70, 27, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(63, 24)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity24") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(63, 24)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 63, 24, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(74, 24)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity25") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(74, 24)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 74, 24, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(79, 23)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity26") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(79, 23)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 79, 23, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(69, 22)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity27") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(69, 22)	
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 69, 22, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(65, 19)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity28") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(65, 19)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 65, 19, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(74, 19)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity29") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(74, 19)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 74, 19, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(60, 18)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity30") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(60, 18)	
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 60, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(79, 18)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity31") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(79, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 79, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pLuchuirpCityPlot = CyMap().plot(78, 13)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity32") <= 2:
					if pLuchuirpCityPlot.getNumUnits() == 0:
						if pLuchuirpCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(78, 13)	
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 78, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
							
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_SHEAIM'):
				pSheaimCityPlot = CyMap().plot(3, 3)
				if CyGame().getSorenRandNum(1000, "SheaimCity1") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(3, 3)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 3, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(8, 3)
				if CyGame().getSorenRandNum(1000, "SheaimCity2") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(8, 3)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 8, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(13, 3)
				if CyGame().getSorenRandNum(1000, "SheaimCity3") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(13, 3)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 13, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(19, 3)
				if CyGame().getSorenRandNum(1000, "SheaimCity4") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(19, 3)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 19, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(24, 3)
				if CyGame().getSorenRandNum(1000, "SheaimCity5") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(24, 3)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 24, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(3, 8)
				if CyGame().getSorenRandNum(1000, "SheaimCity6") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(3, 8)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 3, 8, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(8, 8)
				if CyGame().getSorenRandNum(1000, "SheaimCity7") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(8, 8)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 8, 8, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(22, 8)
				if CyGame().getSorenRandNum(1000, "SheaimCity8") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(22, 8)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 22, 8, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(27, 8)
				if CyGame().getSorenRandNum(1000, "SheaimCity9") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(27, 8)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 27, 8, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(22, 13)
				if CyGame().getSorenRandNum(1000, "SheaimCity10") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(22, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 22, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(27, 13)
				if CyGame().getSorenRandNum(1000, "SheaimCity11") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(27, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 27, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(32, 13)
				if CyGame().getSorenRandNum(1000, "SheaimCity12") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(32, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 32, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(3, 15)
				if CyGame().getSorenRandNum(1000, "SheaimCity13") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(3, 15)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 3, 15, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(8, 15)
				if CyGame().getSorenRandNum(1000, "SheaimCity14") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(8, 15)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 8, 15, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(13, 15)
				if CyGame().getSorenRandNum(1000, "SheaimCity15") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(13, 15)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 13, 15, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(18, 15)
				if CyGame().getSorenRandNum(1000, "SheaimCity16") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(18, 15)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 18, 15, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(23, 18)
				if CyGame().getSorenRandNum(1000, "SheaimCity17") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(23, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 23, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(28, 18)
				if CyGame().getSorenRandNum(1000, "SheaimCity18") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(28, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 28, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(17, 19)
				if CyGame().getSorenRandNum(1000, "SheaimCity19") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(17, 19)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 17, 19, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(5, 20)
				if CyGame().getSorenRandNum(1000, "SheaimCity20") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(5, 20)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 5, 20, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(10, 20)
				if CyGame().getSorenRandNum(1000, "SheaimCity21") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(10, 20)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 10, 20, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(24, 23)
				if CyGame().getSorenRandNum(1000, "SheaimCity22") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(24, 23)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 24, 23, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(3, 24)
				if CyGame().getSorenRandNum(1000, "SheaimCity23") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(3, 24)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 3, 24, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(20, 24)
				if CyGame().getSorenRandNum(1000, "SheaimCity24") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(20, 24)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 20, 24, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(15, 25)
				if CyGame().getSorenRandNum(1000, "SheaimCity25") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(15, 25)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 15, 25, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSheaimCityPlot = CyMap().plot(9, 26)
				if CyGame().getSorenRandNum(1000, "SheaimCity26") <= 1:
					if pSheaimCityPlot.getNumUnits() == 0:
						if pSheaimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(9, 26)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 9, 26, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
 
Part 5 of code (too long for single post):

Code:
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_SVARTALFAR'):
				pSvartalfarCityPlot = CyMap().plot(17, 48)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity1") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(17, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 17, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(23, 48)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity2") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(23, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 23, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(28, 48)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity3") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(28, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 28, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(38, 48)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity4") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(38, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 38, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(43, 48)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity5") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(43, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 43, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(49, 48)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity6") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(49, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 49, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(33, 46)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity7") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(33, 46)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 33, 46, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(20, 43)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity8") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(20, 43)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 20, 43, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(25, 43)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity9") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(25, 43)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 25, 43, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(38, 43)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity10") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(38, 43)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 38, 43, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(43, 43)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity11") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(43, 43)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 43, 43, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(47, 39)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity12") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(47, 39)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 47, 39, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(27, 38)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity13") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(27, 38)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 27, 38, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(38, 38)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity14") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(38, 38)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 38, 38, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(32, 36)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity15") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(32, 36)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 32, 36, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(43, 36)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity16") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(43, 36)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 43, 36, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(23, 35)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity17") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(23, 35)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 23, 35, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(28, 33)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity18") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(28, 33)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 28, 33, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(35, 32)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity19") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(35, 32)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 35, 32, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(48, 32)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity20") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(48, 32)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 48, 32, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(23, 30)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity21") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(23, 30)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 23, 30, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(28, 28)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity22") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(28, 28)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 28, 28, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(15, 25)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity23") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(15, 25)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 15, 25, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				pSvartalfarCityPlot = CyMap().plot(20, 24)
				if CyGame().getSorenRandNum(1000, "SvartalfarCity24") <= 1:
					if pSvartalfarCityPlot.getNumUnits() == 0:
						if pSvartalfarCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(20, 24)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 20, 24, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
 
you are repeating the same code a lot, consolidate it a bit - use loops and arrays
for example, this code
Code:
pLuchuirpCityPlot = CyMap().plot(61, 48)
if CyGame().getSorenRandNum(1000, "LuchuirpCity1") <= 2:
	if pLuchuirpCityPlot.getNumUnits() == 0:
		if pLuchuirpCityPlot.isOwned() == False:
			pNewCityCivPlayer.initCity(61, 48)
			pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 61, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
pLuchuirpCityPlot = CyMap().plot(66, 48)
if CyGame().getSorenRandNum(1000, "LuchuirpCity2") <= 2:
	if pLuchuirpCityPlot.getNumUnits() == 0:
		if pLuchuirpCityPlot.isOwned() == False:
			pNewCityCivPlayer.initCity(66, 48)
			pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 66, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
pLuchuirpCityPlot = CyMap().plot(71, 48)
if CyGame().getSorenRandNum(1000, "LuchuirpCity3") <= 2:
	if pLuchuirpCityPlot.getNumUnits() == 0:
		if pLuchuirpCityPlot.isOwned() == False:
			pNewCityCivPlayer.initCity(71, 48)
			pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 71, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
can be reduced into
Code:
places = [(61, 48), (66, 48), (71, 48)]    # <<< add additional coordinates here
for i in range(len(places)):
	x = places[i][0]
	y = places[i][1]
	pLuchuirpCityPlot = CyMap().plot(x, y)
	if CyGame().getSorenRandNum(1000, "LuchuirpCity"+str(i)) <= 2:
		if pLuchuirpCityPlot.getNumUnits() == 0:
			if pLuchuirpCityPlot.isOwned() == False:
				pNewCityCivPlayer.initCity(x, y)
				pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), x, y, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)

here's more about data structures: https://docs.python.org/2/tutorial/datastructures.html
 
I want to increase the AC very slightly for each evil civ in play each turn. However it was suggested that the AC is integer only. If there are e.g. 2 evil civs in play, I might want the AC to increase by 0.2 each turn. EDIT: I could use a 20% chance of a +1 to the AC which would mimic adding 0.2 each turn over the long run.

Does anyone have any suggestions on how to do this please?
 
well, you could store the decimal part separately, and once it is >= 1 then add the whole part to the AC; and for storing the decimal part you could use the BugData.getTable/setTable like you used here
 
Balanced teams a bit through adding units (scouts for all otherwise fights won't happen easily!), gifting gold, etc. Used anw's code to create flames near the Ljosalfar in order to nerf them a bit (forested grassland start is powerful for them):

Code:
		# Create flames on forest tiles between the Luchuirp and the Ljosalfar if no units are on the tiles (nerfs Ljosalfar and simulates Luchuirp starting fires to harm Ljosalfar)
		if iGameTurn < 100:
			FlamePlaces = [(64, 50), (64, 49), (64, 48), (64, 47), (63, 50), (63, 49), (63, 48), (63, 47), (63, 46), (63, 45), (63, 50), (62, 49), (62, 48), (62, 47), (62, 46), (62, 45), (61, 50), (61, 49), (61, 48), (61, 47), (61, 46), (61, 45), (60, 50), (60, 49), (60, 48), (60, 47), (60, 46), (60, 45), (59, 50), (59, 49), (59, 48), (59, 47), (59, 46), (59, 45), (58, 50), (58, 49), (58, 48), (58, 47), (58, 46), (58, 45), (57, 50), (57, 49), (57, 48), (57, 47), (57, 46), (57, 45), (56, 50), (56, 49), (56, 48), (56, 47), (56, 46), (56, 45), (55, 50), (55, 49), (55, 48), (55, 47), (55, 46), (55, 45)]
			for iFlame in range(len(FlamePlaces)):
				xFlame = FlamePlaces[iFlame][0]
				yFlame = FlamePlaces[iFlame][1]
				pFlamePlot = CyMap().plot(xFlame, yFlame)
				if CyGame().getSorenRandNum(1000, "LuchuirpCity"+str(iFlame)) <= 5:
					if pFlamePlot.getFeatureType() == gc.getInfoTypeForString('FEATURE_FOREST'):
						if pFlamePlot.isOwned() == False:
							if pFlamePlot.getNumUnits() == 0:
								pFlamePlot.setFeatureType(gc.getInfoTypeForString('FEATURE_FLAMES'), 0)



For simplicity's sake, I went with the randomish AC increase method (teamID's are defined previously in the code):

Code:
		#Increase the AC for each evil civ alive (and slightly more if Luchuirp have turned evil)
		#Has a 1 in 22 chance of increasing the AC by 1 point each turn (the AC is an integer only)
		if gc.getTeam(iCalabimTeamID).isAlive:
			if CyGame().getSorenRandNum(22, "CalabimAC") <= 1:
				CyGame().changeGlobalCounter(1)
		if gc.getTeam(iClanOfEmbersTeamID).isAlive:				
			if CyGame().getSorenRandNum(22, "ClanOfEmbersAC") <= 1:
				CyGame().changeGlobalCounter(1)
		if gc.getTeam(iDovielloTeamID).isAlive:				
			if CyGame().getSorenRandNum(22, "DovielloAC") <= 1:
				CyGame().changeGlobalCounter(1)
		if gc.getTeam(iSheaimTeamID).isAlive:				
			if CyGame().getSorenRandNum(22, "SheaimAC") <= 1:
				CyGame().changeGlobalCounter(1)
		if gc.getTeam(iSvartalfarTeamID).isAlive:				
			if CyGame().getSorenRandNum(22, "SvartalfarAC") <= 1:
				CyGame().changeGlobalCounter(1)
		if gc.getTeam(iLuchuirpTeamID).isAtWar(iElohimTeamID):
			if CyGame().getSorenRandNum(22, "LuchuirpWarAC") <= 2:
				CyGame().changeGlobalCounter(1)


AI city creation code with anw's code condensation! :)
Code:
		#Create AI cities randomly here (because the AI very rarely builds cities while they are at war from the start)
		#check if (3, 48) is owned or has any units on it
		#roll a die, there is a .1% chance that a calabim city will be built on it (e.g. 29 sites, each has a 0.1% chance of a new city -> 3% chance of a new city that turn)
		#Needs a new name for each getSorenRandNum for a new random number
		for iNewCityCivPlayer in range(gc.getMAX_PLAYERS()):
			pNewCityCivPlayer = gc.getPlayer(iNewCityCivPlayer)
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_BANNOR'):
				BannorSites = [(47, 3), (53, 3), (58, 3), (63, 3), (68, 3), (45, 8), (50, 8), (61, 9), (43, 13), (48, 13), (53, 13), (58, 13), (63, 13), (45, 18), (50, 18), (55, 18), (60, 18)]
				for iBannCityNum in range(len(BannorSites)):
					xBannSite = BannorSites[iBannCityNum][0]
					yBannSite = BannorSites[iBannCityNum][1]
					pBannorCityPlot = CyMap().plot(xBannSite, yBannSite)
					if CyGame().getSorenRandNum(1000, "BannorCity"+str(iBannCityNum)) <= 1:
						if pBannorCityPlot.getNumUnits() == 0:
							if pBannorCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(xBannSite, yBannSite)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), xBannSite, yBannSite, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
					
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_CALABIM'):	
				CalabimSites = [(3, 48), (7, 48), (12, 48), (17, 48), (23, 48), (28, 48), (7, 43), (13, 43), (20, 43), (25, 43), (3, 39), (16, 39), (8, 38), (27, 38), (23, 35), (4, 33), (18, 33), (28, 33), (9, 31), (14, 30), (23, 30), (4, 29), (9, 26), (15, 25), (3, 24), (20, 24), (5, 20), (10, 20), (17, 19)]
				for iCalaCityNum in range(len(CalabimSites)):
					xCalaSite = CalabimSites[iCalaCityNum][0]
					yCalaSite = CalabimSites[iCalaCityNum][1]
					pCalabimCityPlot = CyMap().plot(xCalaSite, yCalaSite)
					if CyGame().getSorenRandNum(1000, "CalabimCity"+str(iCalaCityNum)) <= 1:
						if pCalabimCityPlot.getNumUnits() == 0:
							if pCalabimCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(xCalaSite, yCalaSite)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), xCalaSite, yCalaSite, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
										
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_CLAN_OF_EMBERS'):
				ClanOfEmbersSites = [(32, 36), (43, 36), (23, 35), (28, 33), (35, 32), (40, 32), (48, 32), (28, 28), (32, 28), (37, 28), (15, 25), (20, 24), (24, 23), (29, 23), (40, 22), (17, 19), (23, 18), (28, 18), (33, 18), (38, 32), (45, 18), (27, 13), (32, 13), (38, 13), (43, 13), (48, 13)]
				for iClanCityNum in range(len(ClanOfEmbersSites)):
					xClanSite = ClanOfEmbersSites[iClanCityNum][0]
					yClanSite = ClanOfEmbersSites[iClanCityNum][1]
					pClanOfEmbersCityPlot = CyMap().plot(xClanSite, yClanSite)
					if CyGame().getSorenRandNum(1000, "ClanOfEmbersCity"+str(iClanCityNum)) <= 1:
						if pClanOfEmbersCityPlot.getNumUnits() == 0:
							if pClanOfEmbersCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(xClanSite, yClanSite)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), xClanSite, yClanSite, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
						
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_DOVIELLO'):
				DovielloSites = [(53, 3), (47, 3), (29, 3), (24, 3), (19, 3), (50, 8), (45, 8), (32, 8), (27, 8), (22, 8), (38, 9), (48, 13), (43, 13), (38, 13), (32, 13), (27, 13), (22, 13), (45, 18), (38, 18), (33, 18), (28, 18), (23, 18)]
				for iDovCityNum in range(len(DovielloSites)):
					xDovSite = DovielloSites[iDovCityNum][0]
					yDovSite = DovielloSites[iDovCityNum][1]
					pDovielloCityPlot = CyMap().plot(xDovSite, yDovSite)
					if CyGame().getSorenRandNum(1000, "DovielloCity"+str(iDovCityNum)) <= 1:
						if pDovielloCityPlot.getNumUnits() == 0:
							if pDovielloCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(xDovSite, yDovSite)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BEASTMAN'), xDovSite, yDovSite, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)	

			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_ELOHIM'):
				iBlank = 1
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_KURIOTATES'):
				#The first 4 sites (including capital) will be cities, after that the sites will be settlements
				#Kuriotates cities have a radius of 3 compared to other civs that have city radii of 2
				#Settlements can get larger when the AI casts Legends or if Octopus Overlords is in the settlements
				iKurioSite1 = 0
				iKurioSite2 = 0
				iKurioSite3 = 0
				if pNewCityCivPlayer.getNumCities() < 4:
					if CyMap().plot(70, 22).getNumUnits() == 0 and CyMap().plot(70, 22).isOwned() == False:
						iKurioSite1 = 5
					if CyMap().plot(79, 19).getNumUnits() == 0 and CyMap().plot(70, 22).isOwned() == False:
						iKurioSite2 = 5
					if CyMap().plot(63, 13).getNumUnits() == 0 and CyMap().plot(70, 22).isOwned() == False:		
						iKurioSite3 = 5
					if iKurioSite1 == 5 or iKurioSite2 == 5 or iKurioSite3 == 5:
						#At least one tier 1 site is vacant
						#If all 3 sites are available then chance is 6/1000 each, if 2 sites are available then chance is 11/1000, if 1 site is available then chance is 16/1000
						pKuriotatesCityPlot = CyMap().plot(70, 22)
						if CyGame().getSorenRandNum(1000, "KuriotatesCity1") <= (21 - iKurioSite1 - iKurioSite2 - iKurioSite3):
							if pKuriotatesCityPlot.getNumUnits() == 0:
								if pKuriotatesCityPlot.isOwned() == False:
									pNewCityCivPlayer.initCity(70, 22)
									pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 70, 22, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)										
						pKuriotatesCityPlot = CyMap().plot(79, 19)
						if CyGame().getSorenRandNum(1000, "KuriotatesCity2") <= (21 - iKurioSite1 - iKurioSite2 - iKurioSite3):
							if pKuriotatesCityPlot.getNumUnits() == 0:
								if pKuriotatesCityPlot.isOwned() == False:
									pNewCityCivPlayer.initCity(79, 19)
									pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 79, 19, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
						pKuriotatesCityPlot = CyMap().plot(63, 13)
						if CyGame().getSorenRandNum(1000, "KuriotatesCity3") <= (21 - iKurioSite1 - iKurioSite2 - iKurioSite3):
							if pKuriotatesCityPlot.getNumUnits() == 0:
								if pKuriotatesCityPlot.isOwned() == False:
									pNewCityCivPlayer.initCity(63, 13)
									pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 63, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					if iKurioSite1 == 0 and iKurioSite2 == 0 and iKurioSite3 == 0:
						#None of the 3 tier 1 sites are vacant but there are less than 4 cities (including the capital)
						#Therefore try to build a city on a second tier site
						pKuriotatesCityPlot = CyMap().plot(79, 4)
						if CyGame().getSorenRandNum(1000, "KuriotatesCity4") <= 8:
							if pKuriotatesCityPlot.getNumUnits() == 0:
								if pKuriotatesCityPlot.isOwned() == False:
									pNewCityCivPlayer.initCity(79, 4)
									pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 79, 4, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
						pKuriotatesCityPlot = CyMap().plot(73, 3)
						if CyGame().getSorenRandNum(1000, "KuriotatesCity5") <= 8:
							if pKuriotatesCityPlot.getNumUnits() == 0:
								if pKuriotatesCityPlot.isOwned() == False:
									pNewCityCivPlayer.initCity(73, 3)
									pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 73, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
						pKuriotatesCityPlot = CyMap().plot(66, 8)
						if CyGame().getSorenRandNum(1000, "KuriotatesCity6") <= 8:
							if pKuriotatesCityPlot.getNumUnits() == 0:
								if pKuriotatesCityPlot.isOwned() == False:
									pNewCityCivPlayer.initCity(66, 8)
									pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 66, 8, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
						pKuriotatesCityPlot = CyMap().plot(70, 15)
						if CyGame().getSorenRandNum(1000, "KuriotatesCity7") <= 8:
							if pKuriotatesCityPlot.getNumUnits() == 0:
								if pKuriotatesCityPlot.isOwned() == False:
									pNewCityCivPlayer.initCity(70, 15)
									pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 70, 15, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
						pKuriotatesCityPlot = CyMap().plot(72, 29)
						if CyGame().getSorenRandNum(1000, "KuriotatesCity8") <= 8:
							if pKuriotatesCityPlot.getNumUnits() == 0:
								if pKuriotatesCityPlot.isOwned() == False:
									pNewCityCivPlayer.initCity(72, 29)
									pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 72, 29, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
				if pNewCityCivPlayer.getNumCities() > 3:
					#This is when all 4 main cities have been built
					#These are settlements only but uses tier 2 and tier 3 sites
					pKuriotatesCityPlot = CyMap().plot(79, 4)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity9") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(79, 4)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 79, 4, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(73, 3)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity10") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(73, 3)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 73, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(66, 8)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity11") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(66, 8)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 66, 8, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(70, 15)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity12") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(70, 15)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 70, 15, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(72, 29)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity13") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(72, 29)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 72, 29, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(76, 3)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity14") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(76, 3)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 76, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(68, 2)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity15") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(68, 2)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 68, 2, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(61, 3)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity16") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(61, 3)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 61, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(63, 7)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity17") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(63, 7)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 63, 7, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(74, 14)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity18") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(74, 14)	
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 74, 14, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(77, 12)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity19") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(77, 12)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 77, 12, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(81, 15)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity20") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(81, 15)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 81, 15, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(75, 17)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity21") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(75, 17)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 75, 17, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(62, 18)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity22") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(62, 18)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 62, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(59, 18)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity23") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(59, 18)	
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 59, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								
					pKuriotatesCityPlot = CyMap().plot(82, 26)
					if CyGame().getSorenRandNum(1000, "KuriotatesCity24") <= 1:
						if pKuriotatesCityPlot.getNumUnits() == 0:
							if pKuriotatesCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(82, 26)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 82, 26, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)								

			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_LJOSALFAR'):
				LjosalfarSites = [(38, 43), (43, 48), (49, 48), (55, 48), (61, 48), (66, 48), (38, 43), (43, 43), (57, 43), (63, 43), (47, 39), (55, 38), (64, 38), (38, 38), (43, 36), (48, 32), (54, 34), (61, 34)]
				for iLjoCityNum in range(len(LjosalfarSites)):
					xLjoSite = LjosalfarSites[iLjoCityNum][0]
					yLjoSite = LjosalfarSites[iLjoCityNum][1]
					pLjosalfarCityPlot = CyMap().plot(xLjoSite, yLjoSite)
					if CyGame().getSorenRandNum(1000, "LjosalfarCity"+str(iLjoCityNum)) <= 1:
						if pLjosalfarCityPlot.getNumUnits() == 0:
							if pLjosalfarCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(xLjoSite, yLjoSite)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), xLjoSite, yLjoSite, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)		
						
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_LUCHUIRP'):
				LuchuirpSites = [(61, 48), (66, 48), (71, 48), (76, 48), (80, 48), (63, 43), (68, 43), (80, 43), (73, 42), (79, 39), (64, 38), (69, 37), (54, 34), (61, 34), (79, 34), (75, 33), (72, 33), (68, 32), (56, 29), (61, 28), (75, 28), (80, 28), (70, 27), (63, 24), (74, 24), (79, 23), (69, 22), (65, 19), (74, 19), (60, 18), (79, 18), (78, 13)]
				for iLuchCityNum in range(len(LuchuirpSites)):
					xLuchSite = LuchuirpSites[iLuchCityNum][0]
					yLuchSite = LuchuirpSites[iLuchCityNum][1]
					pLuchuirpCityPlot = CyMap().plot(xLuchSite, yLuchSite)
					if CyGame().getSorenRandNum(1000, "LuchuirpCity"+str(iLuchCityNum)) <= 2:
						if pLuchuirpCityPlot.getNumUnits() == 0:
							if pLuchuirpCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(xLuchSite, yLuchSite)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), xLuchSite, yLuchSite, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)		
																		
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_SHEAIM'):
				SheaimSites = [(3, 3), (8, 3), (13, 3), (19, 3), (24, 3), (3, 8), (8, 8), (22, 8), (27, 8), (22, 13), (27, 13), (32, 13), (3, 15), (8, 15), (13, 15), (18, 15), (23, 18), (28, 18), (17, 19), (5, 20), (10, 20), (24, 23), (3, 24), (20, 24), (15, 25), (9, 26)]
				for iSheCityNum in range(len(SheaimSites)):
					xSheSite = SheaimSites[iSheCityNum][0]
					ySheSite = SheaimSites[iSheCityNum][1]
					pSheaimCityPlot = CyMap().plot(xSheSite, ySheSite)
					if CyGame().getSorenRandNum(1000, "SheaimCity"+str(iSheCityNum)) <= 1:
						if pSheaimCityPlot.getNumUnits() == 0:
							if pSheaimCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(xSheSite, ySheSite)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), xSheSite, ySheSite, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
									
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_SVARTALFAR'):
				SvartalfarSites = [(17, 48), (23, 48), (28, 48), (38, 48), (43, 48), (49, 48), (33, 46), (20, 43), (25, 43), (38, 43), (43, 43), (47, 39), (27, 38), (38, 38), (32, 36), (43, 36), (23, 35), (28, 33), (35, 32), (48, 32), (23, 30), (28, 28), (15, 25), (20, 24)]
				for iSvartCityNum in range(len(SvartalfarSites)):
					xSvartSite = SvartalfarSites[iSvartCityNum][0]
					ySvartSite = SvartalfarSites[iSvartCityNum][1]
					pSvartalfarCityPlot = CyMap().plot(xSvartSite, ySvartSite)
					if CyGame().getSorenRandNum(1000, "SvartalfarCity"+str(iSvartCityNum)) <= 1:
						if pSvartalfarCityPlot.getNumUnits() == 0:
							if pSvartalfarCityPlot.isOwned() == False:
								pNewCityCivPlayer.initCity(xSvartSite, ySvartSite)
								pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), xSvartSite, ySvartSite, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)



CvEventManager code so far 04/07/15: http://pastebin.com/SmwE7hje
Map uploads saved in an older version of Tholal's MNAI and need some code tweaks. Put here as backup.
 

Attachments

  • Elohim Scenario S5.CivBeyondSwordWBSave
    418.6 KB · Views: 183
  • Elohim Scenario 9x.CivBeyondSwordSave
    86.8 KB · Views: 231
Some videos of me playing the scenario (showcasing features of it - there are some other things that happen as part of the scenario plot...) - I figured I'd post them because people are still around the forums

Loading the scenario:

Link to video.


There are arsonists trying to sabotage the Ljosalfar - presumably their evil neighbours the Svartalfar... Or is it?

Link to video.



An important part of the game is protecting yourself and your allies from the effects of a rising Armageddon counter (AC). The AC rises partly randomly depending on passive factors such as the number of evils civs in the game and other similar reasons.

Link to video.


Armageddon will be very bad for you! Do everything you can to prevent it! Seems like only the Sheaim and the Luchuirp are doing well with a rising AC. It must be the evil Sheaim trying to destroy the world...

Link to video.


The Luchuirp have suggested creating a massive Stack of Doom (SoD) and marching deep into the evil lands. Perhaps taking down the evil Sheaim will cripple the evil. During a certain time period all NEW good civ units are forcibly marched to a marshalling tile on the map and on a certain turn the SoD starts marching to the Sheaim lands.

Link to video.

Link to video.


Plot spoiler:

Spoiler :
In many (not necessarily all!) of your games, the Luchuirp will become powerful enough that they reveal their true colours and declare war on the good civs!


Link to video.
 
Oh, hey, cool, I hadn't really noticed this thread before, but it looks like you were able to convince the AI to start empire-building?


The map looks a bit flat. Terrain could perhaps use some variation.
 
Yeah Tholal sorted the AI out a bit (it was made on MNAI 2.6) so occasionally they send settlers out but the main way the AI gets cities is this - there are a bunch of potential city spots around the map and if they are vacant then each civ has a small % chance each turn of creating a city there with a warrior in it*. The scenario works it just lacks flavour text really (I'm not much of a creative writer) but I think it's a fun (and hard) scenario.

It's a bit late now to add more hills/mountains though, the scenario is basically done... There are lots of hills up in the top right where the Luchuirp are...




*EDIT: I should explain that a bit further: I manually went over the whole map and found what I considered the good sites to build. Some sites deep in a certain civ's territory will only be available for a random city build by one particular civ (e.g. far into the top left corner is the Calabim so sites around the top left corner are only potential sites for the Calabim) but sites around where the vague territory of multiple civs meet, you can have 2 or 3 civs able to get a city built on that site. For example, plot (17, 48) could at random build a Calabim city or a Svartalfar city (if the city would be legal - i.e. no city in or adjacent and no unit in it).
 
Top Bottom