1. We have added the ability to collapse/expand forum categories and widgets on forum home.
    Dismiss Notice
  2. Photobucket has changed its policy concerning hotlinking images and now requires an account with a $399.00 annual fee to allow hotlink. More information is available at: this link.
    Dismiss Notice
  3. All Civ avatars are brought back and available for selection in the Avatar Gallery! There are 945 avatars total.
    Dismiss Notice
  4. To make the site more secure, we have installed SSL certificates and enabled HTTPS for both the main site and forums.
    Dismiss Notice
  5. Civ6 is released! Order now! (Amazon US | Amazon UK | Amazon CA | Amazon DE | Amazon FR)
    Dismiss Notice
  6. Dismiss Notice
  7. Forum account upgrades are available for ad-free browsing.
    Dismiss Notice

Feedback, ideas, and brainstorming pls - Lurchuip Scenario

Discussion in 'Civ4 - Fall from Heaven' started by Bad Player, Jun 27, 2014.

  1. Bad Player

    Bad Player Chieftain

    Joined:
    Oct 31, 2005
    Messages:
    3,531
    Location:
    (Bris)Vegas!
    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)
    
     
  2. omegaflames

    omegaflames Chieftain

    Joined:
    Sep 21, 2012
    Messages:
    91
    what exactly does the error say?
     
  3. Bad Player

    Bad Player Chieftain

    Joined:
    Oct 31, 2005
    Messages:
    3,531
    Location:
    (Bris)Vegas!
    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???
     

    Attached Files:

  4. omegaflames

    omegaflames Chieftain

    Joined:
    Sep 21, 2012
    Messages:
    91
    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.
     
  5. Bill Bisco

    Bill Bisco Callous Calling

    Joined:
    Apr 28, 2007
    Messages:
    590
    How are we doing?
     
  6. Bad Player

    Bad Player Chieftain

    Joined:
    Oct 31, 2005
    Messages:
    3,531
    Location:
    (Bris)Vegas!
    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)
    
     
  7. Bad Player

    Bad Player Chieftain

    Joined:
    Oct 31, 2005
    Messages:
    3,531
    Location:
    (Bris)Vegas!
    Possibly I could python code new cities to be built on certain turns...
     
  8. Bill Bisco

    Bill Bisco Callous Calling

    Joined:
    Apr 28, 2007
    Messages:
    590
    Or you could create new cities ala barbarian For them.
     
  9. Bad Player

    Bad Player Chieftain

    Joined:
    Oct 31, 2005
    Messages:
    3,531
    Location:
    (Bris)Vegas!
    Bill - could you expand on what you mean by that please?
     
  10. Bill Bisco

    Bill Bisco Callous Calling

    Joined:
    Apr 28, 2007
    Messages:
    590
    Sorry for the delay. Barbarians automatically create cities without settlers. Perhaps you could do some kind of code for automatic city creation.
     
  11. Bad Player

    Bad Player Chieftain

    Joined:
    Oct 31, 2005
    Messages:
    3,531
    Location:
    (Bris)Vegas!
    Yeah that sounds like it could work. Do you know the code for that (otherwise I'll have to go through the python? for ages)?
     
  12. Bad Player

    Bad Player Chieftain

    Joined:
    Oct 31, 2005
    Messages:
    3,531
    Location:
    (Bris)Vegas!
    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?
     
  13. Bad Player

    Bad Player Chieftain

    Joined:
    Oct 31, 2005
    Messages:
    3,531
    Location:
    (Bris)Vegas!
    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)
    
    		
    
     
  14. lfgr

    lfgr Chieftain

    Joined:
    Feb 6, 2010
    Messages:
    550
    Cities automatically created by barbarians is done in the DLL AFAIK.
     
  15. Bad Player

    Bad Player Chieftain

    Joined:
    Oct 31, 2005
    Messages:
    3,531
    Location:
    (Bris)Vegas!
    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...
     
  16. Bad Player

    Bad Player Chieftain

    Joined:
    Oct 31, 2005
    Messages:
    3,531
    Location:
    (Bris)Vegas!
    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)
     
  17. Bad Player

    Bad Player Chieftain

    Joined:
    Oct 31, 2005
    Messages:
    3,531
    Location:
    (Bris)Vegas!
    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)
     
  18. Bad Player

    Bad Player Chieftain

    Joined:
    Oct 31, 2005
    Messages:
    3,531
    Location:
    (Bris)Vegas!
    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
    
     
  19. Bill Bisco

    Bill Bisco Callous Calling

    Joined:
    Apr 28, 2007
    Messages:
    590
    I'm most excited to see this progress!
     
  20. Bad Player

    Bad Player Chieftain

    Joined:
    Oct 31, 2005
    Messages:
    3,531
    Location:
    (Bris)Vegas!
    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)				
    	
    
     

Share This Page