Feedback, ideas, and brainstorming pls - Lurchuip Scenario

Can anyone help debug my use of setAttitudeExtra that I'm trying to use here (it gives an ingame error of no attribute etc EDIT: Possibly that it is looking at teams but the command is a CyPlayer command...)? As you can see, I'm trying to get the Calabim to have that very negative attitude with the 5 good civs (as a simple test to see if it works). FYI, the other code there works but the war code was remarked out because of the no new cities problem if you declare war via python.

Code:
		#Make the good civs at permanent peace with eachother, the evil civs at non-permanent peace with eachother, and the good and evil civs at war		
		#If the setPermanentWarPeace boolean is True then the civs cannot change their peace or war status.  Use declareWar first to keep them at war with the True boolean.
		#If the declareWar boolean is True then you get a pop-up message that the civ declares war on you, if it is False then there is no pop-up message
		#If the meet boolean is True then you get a pop-up message that you met them for the first time, if it is False then there is no pop-up message
		
		for iWarAndPeaceTeam in range(gc.getMAX_CIV_TEAMS()):
			pWarAndPeaceTeam = gc.getTeam(iWarAndPeaceTeam)
			if pWarAndPeaceTeam.isAlive():
				#Make good civs meet other good civs
				if iWarAndPeaceTeam == iBannorTeamID:
					pWarAndPeaceTeam.meet(iElohimTeamID, False)
					pWarAndPeaceTeam.meet(iKuriotatesTeamID, False)
					pWarAndPeaceTeam.meet(iLjosalfarTeamID, False)
					pWarAndPeaceTeam.meet(iLuchuirpTeamID, False)
				if iWarAndPeaceTeam == iElohimTeamID:
					pWarAndPeaceTeam.meet(iKuriotatesTeamID, False)
					pWarAndPeaceTeam.meet(iLjosalfarTeamID, False)
					pWarAndPeaceTeam.meet(iLuchuirpTeamID, False)
				if iWarAndPeaceTeam == iKuriotatesTeamID:
					pWarAndPeaceTeam.meet(iLjosalfarTeamID, False)
					pWarAndPeaceTeam.meet(iLuchuirpTeamID, False)
				if iWarAndPeaceTeam == iLjosalfarTeamID:
					pWarAndPeaceTeam.meet(iLuchuirpTeamID, False)
				#Make evil civs meet other evil civs
				if iWarAndPeaceTeam == iCalabimTeamID:
					pWarAndPeaceTeam.meet(iClanOfEmbersTeamID, False)
					pWarAndPeaceTeam.meet(iDovielloTeamID, False)
					pWarAndPeaceTeam.meet(iSheaimTeamID, False)
					pWarAndPeaceTeam.meet(iSvartalfarTeamID, False)
				if iWarAndPeaceTeam == iClanOfEmbersTeamID:
					pWarAndPeaceTeam.meet(iDovielloTeamID, False)
					pWarAndPeaceTeam.meet(iSheaimTeamID, False)
					pWarAndPeaceTeam.meet(iSvartalfarTeamID, False)
				if iWarAndPeaceTeam == iDovielloTeamID:
					pWarAndPeaceTeam.meet(iSheaimTeamID, False)
					pWarAndPeaceTeam.meet(iSvartalfarTeamID, False)
				if iWarAndPeaceTeam == iSheaimTeamID:
					pWarAndPeaceTeam.meet(iSvartalfarTeamID, False)			
				#This section makes the evils civs at war with the good civs 
				if iWarAndPeaceTeam == iCalabimTeamID:
					pWarAndPeaceTeam.AI_setAttitudeExtra(iBannorTeamID, -100)
					pWarAndPeaceTeam.AI_setAttitudeExtra(iElohimTeamID, -100)
					pWarAndPeaceTeam.AI_setAttitudeExtra(iKuriotatesTeamID, -100)
					pWarAndPeaceTeam.AI_setAttitudeExtra(iLjosalfarTeamID, -100)
					pWarAndPeaceTeam.AI_setAttitudeExtra(iLuchuirpTeamID, -100)
#					pWarAndPeaceTeam.declareWar(iBannorTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iBannorTeamID, True)
#					pWarAndPeaceTeam.declareWar(iElohimTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
#					pWarAndPeaceTeam.declareWar(iKuriotatesTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLjosalfarTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLuchuirpTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
#				if iWarAndPeaceTeam == iClanOfEmbersTeamID:
#					pWarAndPeaceTeam.declareWar(iBannorTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iBannorTeamID, True)
#					pWarAndPeaceTeam.declareWar(iElohimTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
#					pWarAndPeaceTeam.declareWar(iKuriotatesTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLjosalfarTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLuchuirpTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
#				if iWarAndPeaceTeam == iDovielloTeamID:
#					pWarAndPeaceTeam.declareWar(iBannorTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iBannorTeamID, True)
#					pWarAndPeaceTeam.declareWar(iElohimTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
#					pWarAndPeaceTeam.declareWar(iKuriotatesTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLjosalfarTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLuchuirpTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
#				if iWarAndPeaceTeam == iSheaimTeamID:
#					pWarAndPeaceTeam.declareWar(iBannorTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iBannorTeamID, True)
#					pWarAndPeaceTeam.declareWar(iElohimTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
#					pWarAndPeaceTeam.declareWar(iKuriotatesTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLjosalfarTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLuchuirpTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
#				if iWarAndPeaceTeam == iSvartalfarTeamID:
#					pWarAndPeaceTeam.declareWar(iBannorTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iBannorTeamID, True)
#					pWarAndPeaceTeam.declareWar(iElohimTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
#					pWarAndPeaceTeam.declareWar(iKuriotatesTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLjosalfarTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLuchuirpTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
				#This makes good civs be at peace with good civs
				if iWarAndPeaceTeam == iBannorTeamID:
					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
				if iWarAndPeaceTeam == iElohimTeamID:
					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
				if iWarAndPeaceTeam == iKuriotatesTeamID:
					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
				if iWarAndPeaceTeam == iLjosalfarTeamID:
					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
				#Try setting the attitudes between evil and good civs at -100 using VOID AI_setAttitudeExtra (PlayerType eIndex, INT iNewValue) and making iNewValue == -100
				#pDovPlayer.AI_setAttitudeExtra(0, 100) makes the Doviello have a +100 attitude with the human player (maybe human player is 0 on eIndex and Doviello player is pDovPlayer)
				#pWarAndPeaceTeam.AI_setAttitudeExtra(iNAMETeamID, -100)
 
The error was that CyTeam doesn't have setAttitude - I have to use CyPlayer to set attitude. I worked on some code to hopefully set attitudes for each Civ using CyPlayer. The irrelevant stuff is in grey, the relevant stuff is kept in black text.

Code:
	[COLOR="DimGray"]	#Find and set the Team (i.e. player) ID numbers for each civ in the game (could be done manually since it is a scenario with fixed civs)
		#ID's need to be remembered for the onBeginGameTurn section (so if code is moved away from CvEventManager.py to other files then use pickle + Bugdata to remember it perhaps?)
		for iGoodAndEvilPlayer in range(gc.getMAX_PLAYERS()):
			pGoodAndEvilPlayer = gc.getPlayer(iGoodAndEvilPlayer)
			if pGoodAndEvilPlayer.isAlive():
				if pGoodAndEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_BANNOR'):
					iBannorTeamID = gc.getPlayer(iGoodAndEvilPlayer).getTeam()
				if pGoodAndEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_CALABIM'):
					iCalabimTeamID = gc.getPlayer(iGoodAndEvilPlayer).getTeam()
				if pGoodAndEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_CLAN_OF_EMBERS'):
					iClanOfEmbersTeamID = gc.getPlayer(iGoodAndEvilPlayer).getTeam()
				if pGoodAndEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_DOVIELLO'):
					iDovielloTeamID = gc.getPlayer(iGoodAndEvilPlayer).getTeam()
				if pGoodAndEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_ELOHIM'):
					iElohimTeamID = gc.getPlayer(iGoodAndEvilPlayer).getTeam()
				if pGoodAndEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_KURIOTATES'):
					iKuriotatesTeamID = gc.getPlayer(iGoodAndEvilPlayer).getTeam()
				if pGoodAndEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_LJOSALFAR'):
					iLjosalfarTeamID = gc.getPlayer(iGoodAndEvilPlayer).getTeam()
				if pGoodAndEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_LUCHUIRP'):
					iLuchuirpTeamID = gc.getPlayer(iGoodAndEvilPlayer).getTeam()
				if pGoodAndEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_SHEAIM'):
					iSheaimTeamID = gc.getPlayer(iGoodAndEvilPlayer).getTeam()
				if pGoodAndEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_SVARTALFAR'):
					iSvartalfarTeamID = gc.getPlayer(iGoodAndEvilPlayer).getTeam()

				
					
		#Make the good civs at permanent peace with eachother, the evil civs at non-permanent peace with eachother, and the good and evil civs at war		
		#If the setPermanentWarPeace boolean is True then the civs cannot change their peace or war status.  Use declareWar first to keep them at war with the True boolean.
		#If the declareWar boolean is True then you get a pop-up message that the civ declares war on you, if it is False then there is no pop-up message
		#If the meet boolean is True then you get a pop-up message that you met them for the first time, if it is False then there is no pop-up message
		
		for iWarAndPeaceTeam in range(gc.getMAX_CIV_TEAMS()):
			pWarAndPeaceTeam = gc.getTeam(iWarAndPeaceTeam)
			if pWarAndPeaceTeam.isAlive():
				#Make good civs meet other good civs
				if iWarAndPeaceTeam == iBannorTeamID:
					pWarAndPeaceTeam.meet(iElohimTeamID, False)
					pWarAndPeaceTeam.meet(iKuriotatesTeamID, False)
					pWarAndPeaceTeam.meet(iLjosalfarTeamID, False)
					pWarAndPeaceTeam.meet(iLuchuirpTeamID, False)
				if iWarAndPeaceTeam == iElohimTeamID:
					pWarAndPeaceTeam.meet(iKuriotatesTeamID, False)
					pWarAndPeaceTeam.meet(iLjosalfarTeamID, False)
					pWarAndPeaceTeam.meet(iLuchuirpTeamID, False)
				if iWarAndPeaceTeam == iKuriotatesTeamID:
					pWarAndPeaceTeam.meet(iLjosalfarTeamID, False)
					pWarAndPeaceTeam.meet(iLuchuirpTeamID, False)
				if iWarAndPeaceTeam == iLjosalfarTeamID:
					pWarAndPeaceTeam.meet(iLuchuirpTeamID, False)
				#Make evil civs meet other evil civs
				if iWarAndPeaceTeam == iCalabimTeamID:
					pWarAndPeaceTeam.meet(iClanOfEmbersTeamID, False)
					pWarAndPeaceTeam.meet(iDovielloTeamID, False)
					pWarAndPeaceTeam.meet(iSheaimTeamID, False)
					pWarAndPeaceTeam.meet(iSvartalfarTeamID, False)
				if iWarAndPeaceTeam == iClanOfEmbersTeamID:
					pWarAndPeaceTeam.meet(iDovielloTeamID, False)
					pWarAndPeaceTeam.meet(iSheaimTeamID, False)
					pWarAndPeaceTeam.meet(iSvartalfarTeamID, False)
				if iWarAndPeaceTeam == iDovielloTeamID:
					pWarAndPeaceTeam.meet(iSheaimTeamID, False)
					pWarAndPeaceTeam.meet(iSvartalfarTeamID, False)
				if iWarAndPeaceTeam == iSheaimTeamID:
					pWarAndPeaceTeam.meet(iSvartalfarTeamID, False)			
				#This section makes the evils civs at war with the good civs 
#				if iWarAndPeaceTeam == iCalabimTeamID:
#					pWarAndPeaceTeam.declareWar(iBannorTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iBannorTeamID, True)
#					pWarAndPeaceTeam.declareWar(iElohimTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
#					pWarAndPeaceTeam.declareWar(iKuriotatesTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLjosalfarTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLuchuirpTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
#				if iWarAndPeaceTeam == iClanOfEmbersTeamID:
#					pWarAndPeaceTeam.declareWar(iBannorTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iBannorTeamID, True)
#					pWarAndPeaceTeam.declareWar(iElohimTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
#					pWarAndPeaceTeam.declareWar(iKuriotatesTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLjosalfarTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLuchuirpTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
#				if iWarAndPeaceTeam == iDovielloTeamID:
#					pWarAndPeaceTeam.declareWar(iBannorTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iBannorTeamID, True)
#					pWarAndPeaceTeam.declareWar(iElohimTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
#					pWarAndPeaceTeam.declareWar(iKuriotatesTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLjosalfarTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLuchuirpTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
#				if iWarAndPeaceTeam == iSheaimTeamID:
#					pWarAndPeaceTeam.declareWar(iBannorTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iBannorTeamID, True)
#					pWarAndPeaceTeam.declareWar(iElohimTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
#					pWarAndPeaceTeam.declareWar(iKuriotatesTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLjosalfarTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLuchuirpTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
#				if iWarAndPeaceTeam == iSvartalfarTeamID:
#					pWarAndPeaceTeam.declareWar(iBannorTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iBannorTeamID, True)
#					pWarAndPeaceTeam.declareWar(iElohimTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
#					pWarAndPeaceTeam.declareWar(iKuriotatesTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLjosalfarTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLuchuirpTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
				#This makes good civs be at peace with good civs
				if iWarAndPeaceTeam == iBannorTeamID:
					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
				if iWarAndPeaceTeam == iElohimTeamID:
					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
				if iWarAndPeaceTeam == iKuriotatesTeamID:
					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
				if iWarAndPeaceTeam == iLjosalfarTeamID:
					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
		
		
		#Try setting the attitudes between evil and good civs at -100 using VOID AI_setAttitudeExtra (PlayerType eIndex, INT iNewValue) and making iNewValue == -100
		#pDovPlayer.AI_setAttitudeExtra(0, 100) makes the Doviello have a +100 attitude with the human player (maybe human player is 0 on eIndex and Doviello player is pDovPlayer)
		#pWarAndPeaceCiv.AI_setAttitudeExtra(iNAMECivID, -100)
		#setAttitude only works in reference to the Player not the Team
		#bPlayer = gc.getPlayer(gc.getBARBARIAN_PLAYER()) will get the barbarian player - can something similar be done to find each good civ and each evil civ?
		[/COLOR]
		
		#This gets CivID's for each player firstly
		for iGoodVsEvilPlayer in range(gc.getMAX_PLAYERS()):
			pGoodVsEvilPlayer = gc.getPlayer(iGoodVsEvilPlayer)
			if pGoodVsEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_BANNOR'):
				iBannorCivID = pGoodVsEvilPlayer.getID()
			if pGoodVsEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_CALABIM'):
				iCalabimCivID = pGoodVsEvilPlayer.getID()	
			if pGoodVsEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_CLAN_OF_EMBERS'):
				iClanOfEmbersCivID = pGoodVsEvilPlayer.getID()
			if pGoodVsEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_DOVIELLO'):
				iDovielloCivID = pGoodVsEvilPlayer.getID()	
			if pGoodVsEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_ELOHIM'):
				iElohimCivID = pGoodVsEvilPlayer.getID()	
			if pGoodVsEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_KURIOTATES'):
				iKuriotatesCivID = pGoodVsEvilPlayer.getID()	
			if pGoodVsEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_LJOSALFAR'):
				iLjosalfarCivID = pGoodVsEvilPlayer.getID()	
			if pGoodVsEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_LUCHUIRP'):
				iLuchuirpCivID = pGoodVsEvilPlayer.getID()	
			if pGoodVsEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_SHEAIM'):
				iSheaimCivID = pGoodVsEvilPlayer.getID()	
			if pGoodVsEvilPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_SVARTALFAR'):
				iSvartalfarCivID = pGoodVsEvilPlayer.getID()	

		#This uses those CivID's from above to set negative attitudes between good and evil civs
		for iGoodVsEvilPlayer2 in range(gc.getMAX_PLAYERS()):
			pGoodVsEvilPlayer2 = gc.getPlayer(iGoodVsEvilPlayer2)
			if pGoodVsEvilPlayer2.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_BANNOR'):
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iCalabimCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iClanOfEmbersCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iDovielloCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iSheaimCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iSvartalfarCivID, -100)
			if pGoodVsEvilPlayer2.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_CALABIM'):
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iBannorCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iElohimCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iKuriotatesCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iLjosalfarCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iLuchuirpCivID, -100)
			if pGoodVsEvilPlayer2.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_CLAN_OF_EMBERS'):
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iBannorCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iElohimCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iKuriotatesCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iLjosalfarCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iLuchuirpCivID, -100)
			if pGoodVsEvilPlayer2.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_DOVIELLO'):
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iBannorCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iElohimCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iKuriotatesCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iLjosalfarCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iLuchuirpCivID, -100)
			if pGoodVsEvilPlayer2.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_ELOHIM'):
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iCalabimCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iClanOfEmbersCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iDovielloCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iSheaimCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iSvartalfarCivID, -100)
			if pGoodVsEvilPlayer2.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_KURIOTATES'):
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iCalabimCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iClanOfEmbersCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iDovielloCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iSheaimCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iSvartalfarCivID, -100)
			if pGoodVsEvilPlayer2.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_LJOSALFAR'):
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iCalabimCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iClanOfEmbersCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iDovielloCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iSheaimCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iSvartalfarCivID, -100)
			if pGoodVsEvilPlayer2.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_LUCHUIRP'):
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iCalabimCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iClanOfEmbersCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iDovielloCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iSheaimCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iSvartalfarCivID, -100)
			if pGoodVsEvilPlayer2.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_SHEAIM'):
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iBannorCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iElohimCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iKuriotatesCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iLjosalfarCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iLuchuirpCivID, -100)
			if pGoodVsEvilPlayer2.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_SVARTALFAR'):
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iBannorCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iElohimCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iKuriotatesCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iLjosalfarCivID, -100)
				pGoodVsEvilPlayer2.AI_setAttitudeExtra(iLuchuirpCivID, -100)

This works in setting negative attitudes (see pic) but the Calabim offered me peace when we talked. Maybe I can force war in python during the game and it might still allow new cities to be built???
 

Attachments

  • Calabim negative attitude.jpg
    Calabim negative attitude.jpg
    240.6 KB · Views: 234
They offered you peace because they weren't ready to be at war with you (hence why you aren't just forcing war right off the bat). Until the AI thinks they are ready to build new cities then they aren't going to do it no matter when you actually declare the war. The attitude modifiers are there to encourage war to start not force because you tried forcing and the AI military/economy simply wasn't ready for it yet.
 
I tested a couple more things:
- I tried making the AI Bannor at war with all 5 evil civs on turn 5 (including the -101 diplo penalty) and the AI still made peace after a while
- I tried making the AI Bannor at war with all 5 evil civs on turn 5 and making it permanent war but the AI at war wouldn't build more cities (good civs at peace did make new cities). FYI the code I used was:
Spoiler :

Code:
		#To test what happens if I make them go to war during the game					
		if iGameTurn == 5:
			for iWarAndPeaceTeam in range(gc.getMAX_CIV_TEAMS()):
				pWarAndPeaceTeam = gc.getTeam(iWarAndPeaceTeam)
				if pWarAndPeaceTeam.isAlive():		
					#This section makes the evils civs at war with the good civs 
					if iWarAndPeaceTeam == iCalabimTeamID:
						pWarAndPeaceTeam.declareWar(iBannorTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
						pWarAndPeaceTeam.setPermanentWarPeace(iBannorTeamID, True)
#					pWarAndPeaceTeam.declareWar(iElohimTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
#					pWarAndPeaceTeam.declareWar(iKuriotatesTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLjosalfarTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLuchuirpTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
					if iWarAndPeaceTeam == iClanOfEmbersTeamID:
						pWarAndPeaceTeam.declareWar(iBannorTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
						pWarAndPeaceTeam.setPermanentWarPeace(iBannorTeamID, True)
#					pWarAndPeaceTeam.declareWar(iElohimTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
#					pWarAndPeaceTeam.declareWar(iKuriotatesTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLjosalfarTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLuchuirpTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
					if iWarAndPeaceTeam == iDovielloTeamID:
						pWarAndPeaceTeam.declareWar(iBannorTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
						pWarAndPeaceTeam.setPermanentWarPeace(iBannorTeamID, True)
#					pWarAndPeaceTeam.declareWar(iElohimTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
#					pWarAndPeaceTeam.declareWar(iKuriotatesTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLjosalfarTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLuchuirpTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
					if iWarAndPeaceTeam == iSheaimTeamID:
						pWarAndPeaceTeam.declareWar(iBannorTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
						pWarAndPeaceTeam.setPermanentWarPeace(iBannorTeamID, True)
#					pWarAndPeaceTeam.declareWar(iElohimTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
#					pWarAndPeaceTeam.declareWar(iKuriotatesTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLjosalfarTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLuchuirpTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
					if iWarAndPeaceTeam == iSvartalfarTeamID:
						pWarAndPeaceTeam.declareWar(iBannorTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
						pWarAndPeaceTeam.setPermanentWarPeace(iBannorTeamID, True)
#					pWarAndPeaceTeam.declareWar(iElohimTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iElohimTeamID, True)
#					pWarAndPeaceTeam.declareWar(iKuriotatesTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iKuriotatesTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLjosalfarTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLjosalfarTeamID, True)
#					pWarAndPeaceTeam.declareWar(iLuchuirpTeamID, False, WarPlanTypes.WARPLAN_LIMITED)
#					pWarAndPeaceTeam.setPermanentWarPeace(iLuchuirpTeamID, True)
 
Interesting test results - I did an always war with duel map test game. I placed towns and gave gold to the enemy and placed settlers on the map. They did build one new city and the rest of the settlers were moved back into the capital.


Not sure how I could use this however... Gift settlers on the map randomly and see if any of them settle? Then delete all settlers in the AI's city?
 
I'm trying to figure out the code to place cities. In BtS (but not FFH2?) there is this code that creates barbarian cities at the start of an empty map:

Code:
	def fillPlot(self, iX, iY, rand):
		"roll the dice and put something on this plot"
		ignoreChance = 4	# 40% chance of doing nothing
		cityChance = 2		# 20% chance of a city
		maxUnitsPerPlot = 10	# stack 1-10 units on a plot
		
		waterPlot = CyMap().plot(iX, iY).isWater()
		if waterPlot:
			ignoreChance = 9	# more likely to ignore a waterplot
			
		r=rand.get(10, "PerfTest")
		
		# check if we should do nothing
		if r<ignoreChance:
			return	
	
		owner = CyMap().plot(iX, iY).getOwner()
		if (owner != -1):
			player = gc.getPlayer(owner)
		else:
			player = gc.getPlayer(GC.getBARBARIAN_PLAYER())
	
		# check if we should place a city 
		r=rand.get(10, "PerfTest")
		if r<cityChance:
			if player.canFound(iX, iY):
				player.initCity(iX, iY)
				# add city buildings TODO
				return
	
		# otherwise place units
		numUnits = rand.get(maxUnitsPerPlot+1, "PerfTest") + 1
	
		if waterPlot:
			r = rand.get(len(self.waterUnits), "PerfTest")
			unitType = self.waterUnits[r]
		else:
			r = rand.get(len(self.landUnits), "PerfTest")
			unitType = self.landUnits[r]
				
		#	print "units", iX, iY
		unitAI = UnitAITypes.UNITAI_UNKNOWN
		for i in range(numUnits):
			player.initUnit(unitType, iX, iY, unitAI, DirectionTypes.NO_DIRECTION)
 
Would the easiest option for me could possibly be to check if the plot is empty on a certain turn and if so then create a city for that civ? I'm thinking maybe each civ has 10 possible plots to found new cities on and each turn there is a small % chance that if the plot is free, they found a new city there (check numunits, check if a city already there). Different civs could want to build on the same locations. I would prefer more randomness though because it makes the scenario different each time and therefore more replayable. :/


For play testing, is there a way to easily transfer a copy of a map I make (not the code, just the map tiles)? EDIT: Found a file with the map tiles in plain text so it is possible...
 
Not enough characters to post the map file in written format. http://codepad.org/j1GTgRnr


I suggest placing units on the map to see where the various city locations are if you take a look at this map.

The cities are all compared to other civs' city locations so there are no illegal city placements UNLESS the human player causes it (quite easily really). So I would have to check 1) possible city location tile is not within anyone's cultural borders and 2) check there are no units in the tile.
if pPlot.getNumUnits() == 0:
if pPlot.isOwned() == False:



Calabim city locations could be:
(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)

Svartlfar city locations could be:
(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)

Luchuirp city locations could be:
(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)

Ljosalfar city locations could be:
(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)

Bannor city locations could be:
(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)

Doviello city locations could be:
(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)

Sheaim city locations could be:
(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)

Clan of Embers city locations could be:
(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, 18)
(45, 18)
(27, 13)
(32, 13)
(38, 13)
(43, 13)
(48, 13)

Kuriotates city locations (settlements?) could be:
(61, 28)
(70, 27)
(74, 24)
(63, 24)
(79, 23)
(74, 19)
(65, 19)
(79, 18)
(60, 18)
(73, 15)
(68, 14)
(78, 13)
(63, 13)
(77, 9)
(61, 9)
(66, 8)
(79, 4)
(74, 4)
(68, 3)
(63, 3)
 
I need to place water and lakes but I'm pretty much done the rest of the map - could you guys please load the map in world builder (http://codepad.org/zqkpYfeF - updated 30/05/15) and give me feedback and where I should put rivers and lakes and what you think of the resource placement and civ placement?

I need to make Elohim win if all evil civs are destroyed - not a conquest victory.

Get rid of Last Days setting

Don't let Luchuirp use world spell for 20 turns (they get extra cities easily so it's a waste of their world spell in this scenario)
 
Code to create new Calabim cities (still needs a defender to be added):

Code:
		for iNewCityCivPlayer in range(gc.getMAX_PLAYERS()):
			pNewCityCivPlayer = gc.getPlayer(iNewCityCivPlayer)
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_BANNOR'):
				i = 1
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_CALABIM'):	
				pCalabimCityPlot = CyMap().plot(3, 48)
				if CyGame().getSorenRandNum(1000, "CalabimCity1") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(3, 48)
				pCalabimCityPlot = CyMap().plot(7, 48)
				if CyGame().getSorenRandNum(1000, "CalabimCity2") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(7, 48)
				pCalabimCityPlot = CyMap().plot(12, 48)
				if CyGame().getSorenRandNum(1000, "CalabimCity3") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(12, 48)
				pCalabimCityPlot = CyMap().plot(17, 48)
				if CyGame().getSorenRandNum(1000, "CalabimCity4") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(17, 48)
				pCalabimCityPlot = CyMap().plot(23, 48)
				if CyGame().getSorenRandNum(1000, "CalabimCity5") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(23, 48)
				pCalabimCityPlot = CyMap().plot(28, 48)
				if CyGame().getSorenRandNum(1000, "CalabimCity6") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(28, 48)
				pCalabimCityPlot = CyMap().plot(7, 43)
				if CyGame().getSorenRandNum(1000, "CalabimCity7") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(7, 43)
				pCalabimCityPlot = CyMap().plot(13, 43)
				if CyGame().getSorenRandNum(1000, "CalabimCity8") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(13, 43)
				pCalabimCityPlot = CyMap().plot(20, 43)
				if CyGame().getSorenRandNum(1000, "CalabimCity9") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(20, 43)
				pCalabimCityPlot = CyMap().plot(25, 43)
				if CyGame().getSorenRandNum(1000, "CalabimCity10") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(25, 43)
				pCalabimCityPlot = CyMap().plot(3, 39)
				if CyGame().getSorenRandNum(1000, "CalabimCity11") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(3, 39)
				pCalabimCityPlot = CyMap().plot(16, 39)
				if CyGame().getSorenRandNum(1000, "CalabimCity12") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(16, 39)
				pCalabimCityPlot = CyMap().plot(8, 38)
				if CyGame().getSorenRandNum(1000, "CalabimCity13") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(8, 38)
				pCalabimCityPlot = CyMap().plot(27, 38)
				if CyGame().getSorenRandNum(1000, "CalabimCity14") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(27, 38)
				pCalabimCityPlot = CyMap().plot(23, 35)
				if CyGame().getSorenRandNum(1000, "CalabimCity15") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(23, 35)
				pCalabimCityPlot = CyMap().plot(4, 33)
				if CyGame().getSorenRandNum(1000, "CalabimCity16") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(4, 33)
				pCalabimCityPlot = CyMap().plot(18, 33)
				if CyGame().getSorenRandNum(1000, "CalabimCity17") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(18, 33)
				pCalabimCityPlot = CyMap().plot(28, 33)
				if CyGame().getSorenRandNum(1000, "CalabimCity18") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(28, 33)
				pCalabimCityPlot = CyMap().plot(9, 31)
				if CyGame().getSorenRandNum(1000, "CalabimCity19") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(9, 31)
				pCalabimCityPlot = CyMap().plot(14, 30)
				if CyGame().getSorenRandNum(1000, "CalabimCity20") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(14, 30)
				pCalabimCityPlot = CyMap().plot(23, 30)
				if CyGame().getSorenRandNum(1000, "CalabimCity21") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(23, 30)
				pCalabimCityPlot = CyMap().plot(4, 29)
				if CyGame().getSorenRandNum(1000, "CalabimCity22") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(4, 29)
				pCalabimCityPlot = CyMap().plot(9, 26)
				if CyGame().getSorenRandNum(1000, "CalabimCity23") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(9, 26)
				pCalabimCityPlot = CyMap().plot(15, 25)
				if CyGame().getSorenRandNum(1000, "CalabimCity24") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(15, 25)
				pCalabimCityPlot = CyMap().plot(3, 24)
				if CyGame().getSorenRandNum(1000, "CalabimCity25") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(3, 24)
				pCalabimCityPlot = CyMap().plot(20, 24)
				if CyGame().getSorenRandNum(1000, "CalabimCity26") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(20, 24)
				pCalabimCityPlot = CyMap().plot(5, 20)
				if CyGame().getSorenRandNum(1000, "CalabimCity27") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(5, 20)	
				pCalabimCityPlot = CyMap().plot(10, 20)
				if CyGame().getSorenRandNum(1000, "CalabimCity28") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(10, 20)
				pCalabimCityPlot = CyMap().plot(17, 19)
				if CyGame().getSorenRandNum(1000, "CalabimCity29") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(17, 19)							
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_CLAN_OF_EMBERS'):
				i = 2
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_DOVIELLO'):
				i = 3
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_ELOHIM'):
				i = 4
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_KURIOTATES'):
				i = 5
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_LJOSALFAR'):
				i = 6
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_LUCHUIRP'):
				i = 7
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_SHEAIM'):
				i = 8
			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_SVARTALFAR'):
				i = 9
 
Code to create new cities (more complicated for the Kuriotates!). Defenders still need to be added. When play-testing, check that cities are placed correctly because I may have made mistakes in transcribing from pen and paper to code.

Part 1 of code (too long for single post):
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'):
				pBannorCityPlot = CyMap().plot(47, 3)
				if CyGame().getSorenRandNum(1000, "BannorCity1") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(47, 3)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 47, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
				pBannorCityPlot = CyMap().plot(53, 3)
				if CyGame().getSorenRandNum(1000, "BannorCity2") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(53, 3)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 53, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
				pBannorCityPlot = CyMap().plot(58, 3)
				if CyGame().getSorenRandNum(1000, "BannorCity3") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(58, 3)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 58, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)							
				pBannorCityPlot = CyMap().plot(63, 3)
				if CyGame().getSorenRandNum(1000, "BannorCity4") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(63, 3)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 63, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
				pBannorCityPlot = CyMap().plot(68, 3)
				if CyGame().getSorenRandNum(1000, "BannorCity5") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(68, 3)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 68, 3, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
				pBannorCityPlot = CyMap().plot(45, 8)
				if CyGame().getSorenRandNum(1000, "BannorCity6") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(45, 8)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 45, 8, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
				pBannorCityPlot = CyMap().plot(50, 8)
				if CyGame().getSorenRandNum(1000, "BannorCity7") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(50, 8)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 50, 8, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
				pBannorCityPlot = CyMap().plot(61, 9)
				if CyGame().getSorenRandNum(1000, "BannorCity8") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(61, 9)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 61, 9, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
				pBannorCityPlot = CyMap().plot(43, 13)
				if CyGame().getSorenRandNum(1000, "BannorCity9") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(43, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 43, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
				pBannorCityPlot = CyMap().plot(48, 13)
				if CyGame().getSorenRandNum(1000, "BannorCity10") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(48, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 48, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
				pBannorCityPlot = CyMap().plot(53, 13)
				if CyGame().getSorenRandNum(1000, "BannorCity11") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(53, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 53, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)		
				pBannorCityPlot = CyMap().plot(58, 13)
				if CyGame().getSorenRandNum(1000, "BannorCity12") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(58, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 58, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pBannorCityPlot = CyMap().plot(63, 13)
				if CyGame().getSorenRandNum(1000, "BannorCity13") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(63, 13)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 63, 13, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)							
				pBannorCityPlot = CyMap().plot(45, 18)
				if CyGame().getSorenRandNum(1000, "BannorCity14") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(45, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 45, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)							
				pBannorCityPlot = CyMap().plot(50, 18)
				if CyGame().getSorenRandNum(1000, "BannorCity15") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(50, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 50, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)							
				pBannorCityPlot = CyMap().plot(55, 18)
				if CyGame().getSorenRandNum(1000, "BannorCity16") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(55, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 55, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)							
				pBannorCityPlot = CyMap().plot(60, 18)
				if CyGame().getSorenRandNum(1000, "BannorCity17") <= 1:
					if pBannorCityPlot.getNumUnits() == 0:
						if pBannorCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(60, 18)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_WARRIOR'), 60, 18, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)							

			if pNewCityCivPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_CALABIM'):	
				pCalabimCityPlot = CyMap().plot(3, 48)
				if CyGame().getSorenRandNum(1000, "CalabimCity1") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(3, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 3, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)							
				pCalabimCityPlot = CyMap().plot(7, 48)
				if CyGame().getSorenRandNum(1000, "CalabimCity2") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(7, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 7, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(12, 48)
				if CyGame().getSorenRandNum(1000, "CalabimCity3") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(12, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 12, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(17, 48)
				if CyGame().getSorenRandNum(1000, "CalabimCity4") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(17, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 17, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(23, 48)
				if CyGame().getSorenRandNum(1000, "CalabimCity5") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(23, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 23, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(28, 48)
				if CyGame().getSorenRandNum(1000, "CalabimCity6") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(28, 48)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 28, 48, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(7, 43)
				if CyGame().getSorenRandNum(1000, "CalabimCity7") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(7, 43)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 7, 43, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(13, 43)
				if CyGame().getSorenRandNum(1000, "CalabimCity8") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(13, 43)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 13, 43, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(20, 43)
				if CyGame().getSorenRandNum(1000, "CalabimCity9") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(20, 43)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 20, 43, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(25, 43)
				if CyGame().getSorenRandNum(1000, "CalabimCity10") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(25, 43)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 25, 43, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(3, 39)
				if CyGame().getSorenRandNum(1000, "CalabimCity11") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(3, 39)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 3, 39, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(16, 39)
				if CyGame().getSorenRandNum(1000, "CalabimCity12") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(16, 39)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 16, 39, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(8, 38)
				if CyGame().getSorenRandNum(1000, "CalabimCity13") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(8, 38)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 8, 38, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(27, 38)
				if CyGame().getSorenRandNum(1000, "CalabimCity14") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(27, 38)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 27, 38, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(23, 35)
				if CyGame().getSorenRandNum(1000, "CalabimCity15") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(23, 35)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 23, 35, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(4, 33)
				if CyGame().getSorenRandNum(1000, "CalabimCity16") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(4, 33)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 4, 33, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(18, 33)
				if CyGame().getSorenRandNum(1000, "CalabimCity17") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(18, 33)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 18, 33, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(28, 33)
				if CyGame().getSorenRandNum(1000, "CalabimCity18") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(28, 33)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 28, 33, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(9, 31)
				if CyGame().getSorenRandNum(1000, "CalabimCity19") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(9, 31)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 9, 31, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(14, 30)
				if CyGame().getSorenRandNum(1000, "CalabimCity20") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(14, 30)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 14, 30, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(23, 30)
				if CyGame().getSorenRandNum(1000, "CalabimCity21") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(23, 30)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 23, 30, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(4, 29)
				if CyGame().getSorenRandNum(1000, "CalabimCity22") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(4, 29)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 4, 29, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(9, 26)
				if CyGame().getSorenRandNum(1000, "CalabimCity23") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(9, 26)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 9, 26, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(15, 25)
				if CyGame().getSorenRandNum(1000, "CalabimCity24") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(15, 25)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 15, 25, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(3, 24)
				if CyGame().getSorenRandNum(1000, "CalabimCity25") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(3, 24)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 3, 24, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(20, 24)
				if CyGame().getSorenRandNum(1000, "CalabimCity26") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(20, 24)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 20, 24, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(5, 20)
				if CyGame().getSorenRandNum(1000, "CalabimCity27") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(5, 20)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 5, 20, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(10, 20)
				if CyGame().getSorenRandNum(1000, "CalabimCity28") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(10, 20)
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 10, 20, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)						
				pCalabimCityPlot = CyMap().plot(17, 19)
				if CyGame().getSorenRandNum(1000, "CalabimCity29") <= 1:
					if pCalabimCityPlot.getNumUnits() == 0:
						if pCalabimCityPlot.isOwned() == False:
							pNewCityCivPlayer.initCity(17, 19)	
							pNewCityCivPlayer.initUnit(gc.getInfoTypeForString('UNIT_BLOODPET'), 17, 19, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
 
Top Bottom