예제 #1
0
    def __init__(self, customEM):

        CvUtil.pyPrint(localText.getText("TXT_KEY_REV_MOD_INITIALIZING", ()))

        self.EventKeyDown = 6
        self.customEM = customEM
        self.RevOpt = RevOpt
        self.bShowActivePopup = RevOpt.isActivePopup()

        self.revComponentsText = ""

        # RevolutionDCM
        self.titleFormat = "<font=3b><color=250,170,0,255>"
        self.sectionFormat = "<font=3><color=200,200,0,255>"
        self.optionFormat = "<font=2><color=0,180,0,255>"
        self.noneOptionFormat = "<font=2><color=0,0,255,255>"
        self.helpTextTitle = "<font=3><color=255,255,0,255>"
        self.helpTextFormat = "<font=2><color=255,255,255,255>"

        customEM.addEventHandler("kbdEvent", self.onKbdEvent)
        customEM.addEventHandler("GameStart", self.onGameStart)
        customEM.addEventHandler("OnLoad", self.onGameLoad)
        # customEM.addEventHandler( 'Init', self.onInit )

        # Determine if game is already running and Python has just been reloaded
        if game.isFinalInitialized():
            # print "Game initialized!"
            self.onGameLoad(None, bShowPopup=False)
예제 #2
0
파일: AIAutoPlay.py 프로젝트: markourm/fall
	def pickHumanHandler( self, iPlayerID, netUserData, popupReturn ) :

		CvUtil.pyPrint('Handling pick human popup')

		if( popupReturn.getButtonClicked() == 0 ):  # if you pressed cancel
			CyInterface().addImmediateMessage("Kill your remaining units if you'd like to see end game screens","")
			return

#-------------------------------------------------------------------------------------------------
# Lemmy101 RevolutionMP edit
#-------------------------------------------------------------------------------------------------
		toKillPlayer = gc.getPlayer(iPlayerID)
#-------------------------------------------------------------------------------------------------
# END Lemmy101 RevolutionMP edit
#-------------------------------------------------------------------------------------------------   

		newHumanIdx = popupReturn.getSelectedPullDownValue( 1 )
		newPlayer = gc.getPlayer(newHumanIdx)

		# game.setActivePlayer( newHumanIdx, False )
		# newPlayer.setIsHuman(True)

		# CvUtil.pyPrint("You now control the %s"%(newPlayer.getCivilizationDescription(0)))
		# CyInterface().addImmediateMessage("You now control the %s"%(newPlayer.getCivilizationDescription(0)),"")
#-------------------------------------------------------------------------------------------------
# Lemmy101 RevolutionMP edit
#-------------------------------------------------------------------------------------------------
		self.doNewHuman(newHumanIdx, toKillPlayer.getID())
		self.bLaunchedChangeHumanPopup = False
예제 #3
0
	def addUpgradePath(self, graph, unitFrom, unitTo):

		# Check if unit numbers are valid
		if (unitFrom >= 0 and graph.has_key(unitFrom) and unitTo >= 0 and graph.has_key(unitTo)):
			graph[unitFrom].upgradesTo.add(unitTo)
			graph[unitTo].upgradesFrom.add(unitFrom)
			CvUtil.pyPrint(self.unitToString(unitFrom) + localText.getText("TXT_KEY_UNIT_UPGRADES_GRAPH_UPGRADE_TO",()) + self.unitToString(unitTo) + ".")			
예제 #4
0
 def __link__(szLink):
     if szLink.strip().startswith("http"):
         CvUtil.pyPrint("Visit link: " + str(szLink))
         import webbrowser
         webbrowser.open(szLink)
         return
     return CvScreensInterface.pediaMainScreen.link_orig(szLink)
	def onUnitPromoted(self, argsList):
		'Unit Promoted'
		pUnit, iPromotion = argsList
		player = gc.getPlayer(pUnit.getOwner())
		if (not self.__LOG_UNITPROMOTED):
			return
		CvUtil.pyPrint('Unit Promotion Event: %s - %s' %(player.getCivilizationDescription(0), pUnit.getName(),))
예제 #6
0
	def addUpgradePath(self, graph, unitFrom, unitTo):

		# Check if unit numbers are valid
		if (unitFrom >= 0 and graph.has_key(unitFrom) and unitTo >= 0 and graph.has_key(unitTo)):
			graph[unitFrom].upgradesTo.add(unitTo)
			graph[unitTo].upgradesFrom.add(unitFrom)
			CvUtil.pyPrint(self.unitToString(unitFrom) + " upgrades to " + self.unitToString(unitTo) + ".")			
	def onImprovementBuilt(self, argsList):
		'Improvement Built'
		iImprovement, iX, iY = argsList
		if (not self.__LOG_IMPROVEMENT):
			return
		CvUtil.pyPrint('Improvement %s was built at %d, %d'
			%(gc.getImprovementInfo(iImprovement).getDescription(), iX, iY))
	def onRouteBuilt(self, argsList):
		'Route Built'
		iRoute, iX, iY = argsList
		if (not self.__LOG_IMPROVEMENT):
			return
		CvUtil.pyPrint('Route %s was built at %d, %d'
			%(gc.getRouteInfo(iRoute).getDescription(), iX, iY))
	def onImprovementDestroyed(self, argsList):
		'Improvement Destroyed'
		iImprovement, iOwner, iX, iY = argsList
		if (not self.__LOG_IMPROVEMENT):
			return
		CvUtil.pyPrint('Improvement %s was Destroyed at %d, %d'
			%(gc.getImprovementInfo(iImprovement).getDescription(), iX, iY))
	def onCityBuildingBuilding(self, argsList):
		'City begins building a Building'
		pCity = argsList[0]
		iBuildingType = argsList[1]
		if (not self.__LOG_CITYBUILDING):
			return
		CvUtil.pyPrint("%s has begun building a %s" %(pCity.getName(),gc.getBuildingInfo(iBuildingType).getDescription()))
예제 #11
0
def giveCityCulture( pCity, iPlayer, newCityVal, newPlotVal, overwriteHigher = False, bSilent = False, iPlotBase = 100 ) :
		# Places this culture value in city and city plot
		# Places half this value in neighboring plots

		if( iPlayer < 0 or iPlayer > gc.getBARBARIAN_PLAYER() ) :
			return

		if( overwriteHigher or newCityVal > pCity.getCulture(iPlayer) ) :
			pCity.setCulture( iPlayer, newCityVal, True )
			if( LOG_DEBUG and not bSilent) : CvUtil.pyPrint("  Rev - Culture set to %d"%(pCity.getCulture(iPlayer)))

		if( overwriteHigher or newPlotVal > pCity.plot().getCulture(iPlayer) ) :
			pCity.plot().setCulture( iPlayer, newPlotVal, True )

		gameMap = gc.getMap()

		if( iPlotBase > 0 ) :
			culRadius = 2
			if( pCity.getCultureLevel() > 2 ) :
				culRadius = 3

			for [radius,pPlot] in plotGenerator( pCity.plot(), culRadius ) :
				iTotalCulture = pPlot.countTotalCulture()
				if( radius > 0 and iTotalCulture > 0 ) :

					# Cultural presence drops off with radius
					factor = (iPlotBase+game.getSorenRandNum(iPlotBase/8,'Rev: Culture'))/radius
					newPlotCul = min([newPlotVal, (factor*pPlot.countTotalCulture())/100])
					if( overwriteHigher or newPlotCul > pPlot.getCulture(iPlayer) ) :
						pPlot.setCulture( iPlayer, newPlotCul, True )
	def onCityRazed(self, argsList):
		'City Razed'
		city, iPlayer = argsList
		iOwner = city.findHighestCulture()
		
		#Rhye - start bugfix
		#owner = PyPlayer(city.getOwner())
                owner = PyPlayer(city.getOwner())
                if (city.getOwner() == iPlayer):
                        if (city.getPreviousOwner() != -1):
                                owner = PyPlayer(city.getPreviousOwner())
                #Rhye - end bugfix
		
		razor = PyPlayer(iPlayer)
		CvUtil.pyPrint('Player %d Civilization %s City %s was razed by Player %d' 
			%(owner.getID(), owner.getCivilizationName(), city.getName(), razor.getID()))
		
		# Partisans!
		if city.getPopulation > 1 and iOwner != -1 and iPlayer != -1:
			owner = gc.getPlayer(iOwner)
			if not owner.isBarbarian() and owner.getNumCities() > 0:
				if gc.getTeam(owner.getTeam()).isAtWar(gc.getPlayer(iPlayer).getTeam()):
					if gc.getNumEventTriggerInfos() > 0: # prevents mods that don't have events from getting an error
						iEvent = CvUtil.findInfoTypeNum(gc.getEventTriggerInfo, gc.getNumEventTriggerInfos(),'EVENTTRIGGER_PARTISANS')
						if iEvent != -1 and gc.getGame().isEventActive(iEvent) and owner.getEventTriggerWeight(iEvent) < 0:
							triggerData = owner.initTriggeredData(iEvent, true, -1, city.getX(), city.getY(), iPlayer, city.getID(), -1, -1, -1, -1)
			
		CvUtil.pyPrint("City Razed Event: %s" %(city.getName(),))
	def reportEvent(self, entry, context, argsList):
		'Report an Event to Events.log '
		if (gc.getGame().getActivePlayer() != -1):
			message = "DEBUG Event: %s (%s)" %(entry[0], gc.getActivePlayer().getName())
			CyInterface().addImmediateMessage(message,"")
			CvUtil.pyPrint(message)
		return 0
예제 #14
0
    def pickHumanHandler( self, iPlayerID, netUserData, popupReturn ) :

        CvUtil.pyPrint('Handling pick human popup')

        if( popupReturn.getButtonClicked() == 0 ):  # if you pressed cancel
            CyInterface().addImmediateMessage("Kill your remaining units if you'd like to see end game screens","")
            return

        toKillPlayer = gc.getActivePlayer()

        newHumanIdx = popupReturn.getSelectedPullDownValue( 1 )
        newPlayer = gc.getPlayer(newHumanIdx)

        # game.setActivePlayer( newHumanIdx, False )
        # newPlayer.setIsHuman(True)

        # CvUtil.pyPrint("You now control the %s"%(newPlayer.getCivilizationDescription(0)))
        # CyInterface().addImmediateMessage("You now control the %s"%(newPlayer.getCivilizationDescription(0)),"")
        
        ChangePlayer.changeHuman( newHumanIdx, toKillPlayer.getID() )

        if( toKillPlayer.getNumCities() == 0 ) :
            # Kills off the lion in the ice field
            CvUtil.pyPrint("Killing off player %d"%(toKillPlayer.getID()))
            toKillPlayer.killUnits()
            toKillPlayer.setIsHuman(False)
예제 #15
0
    def onTechAcquired(self, argsList):
        "Tech Acquired"

        iTechType, iTeam, iPlayer, bAnnounce = argsList
        # Note that iPlayer may be NULL (-1) and not a refer to a player object

        CvUtil.pyPrint("%s was finished by Team %d" % (PyInfo.TechnologyInfo(iTechType).getDescription(), iTeam))
예제 #16
0
	def onSetPlayerAlive( self, argsList ) :

		iPlayerID = argsList[0]
		bNewValue = argsList[1]
		if( bNewValue == True and iPlayerID < gc.getMAX_CIV_PLAYERS() ) :
			pPlayer = gc.getPlayer( iPlayerID )

			if( pPlayer.isHuman() or game.getActivePlayer() == iPlayerID ) :
				if( self.bLeaveHumanName ) :
					CvUtil.pyPrint("  Name - Leaving name for human player")
					return
			 
			[newCivDesc, newCivShort, newCivAdj] = self.nameForNewPlayer( iPlayerID )
			
			newDesc  = CvUtil.convertToStr(newCivDesc)
			newShort = CvUtil.convertToStr(newCivShort)
			newAdj   = CvUtil.convertToStr(newCivAdj)

			newDesc = remove_diacriticals(newDesc)
			newShort = remove_diacriticals(newShort)
			newAdj = remove_diacriticals(newAdj)

			if( self.LOG_DEBUG ) :
				CvUtil.pyPrint("  Name - Setting civ name for new civ to %s"%(newDesc))
					
			# Pass to pPlayer seems to require a conversion to 'ascii'
			pPlayer.setCivName( newDesc, newShort, newAdj )
예제 #17
0
파일: Tester.py 프로젝트: markourm/fall
	def onCityLost(self, argsList):
		'City Lost'
		city = argsList[0]
		player = PyPlayer(city.getOwner())

		CvUtil.pyPrint('City %s was lost by Player %d Civilization %s'
			%(city.getName(), player.getID(), player.getCivilizationName()))
예제 #18
0
def clearOutCity( pCity, pPlayer, pEnemyPlayer ) :

	ix = pCity.getX()
	iy = pCity.getY()

	moveXY = getClosestCityXY( ix, iy, pPlayer.getID(), 25, bIncludeBase = False )
	if( moveXY == None ) :
		if( LOG_DEBUG ) : CvUtil.pyPrint("  Revolt - No nearby cities, just placing not too far away")
		retreatPlots = getSpawnablePlots( ix, iy, pPlayer, bLand = True, bIncludePlot = False, bIncludeCities = True, bSameArea = True, iRange = 3, iSpawnPlotOwner = pPlayer.getID(), bCheckForEnemy = True )
		if( len(retreatPlots) == 0 ) :
			retreatPlots = getSpawnablePlots( ix, iy, pPlayer, bLand = True, bIncludePlot = False, bIncludeCities = True, bSameArea = False, iRange = 5, iSpawnPlotOwner = -1, bCheckForEnemy = True )

		if( len(retreatPlots) > 0 ) :
			moveXY = retreatPlots[game.getSorenRandNum(len(retreatPlots),'Rev')]

	if( not moveXY == None ) :
		moveEnemyUnits2( ix, iy, pEnemyPlayer.getID(), moveXY[0], moveXY[1], bMoveAir = True )

		# Handle water units
		waterUnits = getEnemyUnits( ix, iy, pEnemyPlayer.getID(), domain = DomainTypes.DOMAIN_SEA )

		if( len(waterUnits) > 0 ) :
			retreatPlots = getSpawnablePlots( ix, iy, pPlayer, bLand = False, bIncludePlot = False, bIncludeCities = False, bSameArea = False, iRange = 1, iSpawnPlotOwner = pPlayer.getID(), bCheckForEnemy = True )
			if( len(retreatPlots) == 0 ) :
				retreatPlots = getSpawnablePlots( ix, iy, pPlayer, bLand = False, bIncludePlot = False, bIncludeCities = False, bSameArea = False, iRange = 5, iSpawnPlotOwner = -1, bCheckForEnemy = True )
			if( len(retreatPlots) > 0 ) :
				moveXY = retreatPlots[game.getSorenRandNum(len(retreatPlots),'Rev')]
				for unit in waterUnits :
					if( unit.canMoveInto(gc.getMap().plot(moveXY[0],moveXY[1]),False,False,True) ) :
						if( LOG_DEBUG ) : CvUtil.pyPrint("  Rev - Moving water unit %s (id: %d, player: %d)"%(unit.getName(),unit.getID(),unit.getOwner()))
						unit.setXY( moveXY[0], moveXY[1], False, False, False )
예제 #19
0
	def setNewNameByCivics( self, iPlayer ) :
		[newCivDesc, newCivShort, newCivAdj] = self.newNameByCivics( iPlayer )

		if( gc.getPlayer(iPlayer).isHuman() or game.getActivePlayer() == iPlayer ) :
			if( self.bLeaveHumanName ) :
				CvUtil.pyPrint("  Name - Leaving name for human player")
				return
			else :
				#CvUtil.pyPrint("  Name - Changing name for human player!")
				pass

		newDesc  = CvUtil.convertToStr(newCivDesc)
		newShort = CvUtil.convertToStr(newCivShort)
		newAdj   = CvUtil.convertToStr(newCivAdj)

		newDesc = remove_diacriticals(newDesc)
		newShort = remove_diacriticals(newShort)
		newAdj = remove_diacriticals(newAdj)
		
		if( not newDesc == gc.getPlayer(iPlayer).getCivilizationDescription(0) ) :
			szMessage = BugUtil.getText("TXT_KEY_MOD_DCN_NEWCIV_NAME_DESC", newDesc)
			CyInterface().addMessage(iPlayer, false, gc.getDefineINT("EVENT_MESSAGE_TIME"), szMessage, None, InterfaceMessageTypes.MESSAGE_TYPE_INFO, None, gc.getInfoTypeForString("COLOR_HIGHLIGHT_TEXT"), -1, -1, False, False)
			if( self.LOG_DEBUG ) :
				CvUtil.pyPrint("  Name - Setting civ name due to civics to %s"%(newDesc))
		
		gc.getPlayer(iPlayer).setCivName( newDesc, newShort, newAdj )
		
		return
예제 #20
0
	def onTechAcquired(self, argsList):
		'Tech Acquired'
		iTechType, iTeam, iPlayer, bAnnounce = argsList
		# Note that iPlayer may be NULL (-1) and not a refer to a player object

### MyMod
		iFreeUnit = -1
		if iTechType == gc.getInfoTypeForString('TECH_PHILOSOPHY'):
			iFreeUnit = gc.getInfoTypeForString('UNIT_TAOIST_MISSIONARY')
		if iTechType == gc.getInfoTypeForString('TECH_DIVINE_RIGHT'):
			iFreeUnit = gc.getInfoTypeForString('UNIT_ISLAMIC_MISSIONARY')
		if (iPlayer != -1 and iFreeUnit != -1):
			pPlayer = gc.getPlayer(iPlayer)
			if (pPlayer.isAlive()):
				py = PyPlayer(iPlayer)
				if pPlayer.getNumCities() > 0:
					pCity = py.getCityList()[0]
					pPlot = pCity.plot()
					newUnit = pPlayer.initUnit(iFreeUnit, pPlot.getX(), pPlot.getY(), UnitAITypes.UNITAI_MISSIONARY, DirectionTypes.DIRECTION_SOUTH)
### /MyMod

		# Show tech splash when applicable
		if (iPlayer > -1 and bAnnounce and not CyInterface().noTechSplash()):
			if (gc.getGame().isFinalInitialized() and not gc.getGame().GetWorldBuilderMode()):
				if ((not gc.getGame().isNetworkMultiPlayer()) and (iPlayer == gc.getGame().getActivePlayer())):
					popupInfo = CyPopupInfo()
					popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_PYTHON_SCREEN)
					popupInfo.setData1(iTechType)
					popupInfo.setText(u"showTechSplash")
					popupInfo.addPopup(iPlayer)

		if (not self.__LOG_TECH):
			return
		CvUtil.pyPrint('%s was finished by Team %d'
			%(PyInfo.TechnologyInfo(iTechType).getDescription(), iTeam))
예제 #21
0
	def resetName( self, iPlayer, bVerbose = True ) :
		
		pPlayer = gc.getPlayer(iPlayer)
		
		civInfo = gc.getCivilizationInfo(pPlayer.getCivilizationType())
		origDesc  = civInfo.getDescription()
		origShort = civInfo.getShortDescription(0)
		origAdj   = civInfo.getAdjective(0)

		if( not game.isOption(GameOptionTypes.GAMEOPTION_LEAD_ANY_CIV) ) :
			if( not self.bLeaveHumanName or not (pPlayer.isHuman() or game.getActivePlayer() == iPlayer) ) :
				if( pPlayer.getLeaderType() in LeaderCivNames.LeaderCivNames.keys() ) :
					[origDesc,origShort,origAdj] = LeaderCivNames.LeaderCivNames[pPlayer.getLeaderType()]

		newDesc  = CvUtil.convertToStr(origDesc)
		newShort = CvUtil.convertToStr(origShort)
		newAdj   = CvUtil.convertToStr(origAdj)
			
		newDesc = remove_diacriticals(newDesc)
		newShort = remove_diacriticals(newShort)
		newAdj = remove_diacriticals(newAdj)

		if( self.LOG_DEBUG ) :
			CvUtil.pyPrint("  Name - Re-setting civ name for player %d to %s"%(iPlayer,newDesc))
		
		gc.getPlayer(iPlayer).setCivName( newDesc, newShort, newAdj )
예제 #22
0
	def onCityAcquired(self, argsList):
	## Platy Builder ##
		if CyGame().GetWorldBuilderMode() and not CvPlatyBuilderScreen.bPython: return
	## Platy Builder ##
		'City Acquired'
		iPreviousOwner,iNewOwner,pCity,bConquest,bTrade = argsList
		CvUtil.pyPrint('City Acquired Event: %s' %(pCity.getName()))
예제 #23
0
	def onModNetMessage(self, argsList):
		'Called whenever CyMessageControl().sendModNetMessage() is called - this is all for you modders!'
		
		iData1, iData2, iData3, iData4, iData5 = argsList
		print("Modder's net message!")
		
		CvUtil.pyPrint( 'onModNetMessage' )
예제 #24
0
def changeHumanHandler( playerID, netUserData, popupReturn ) :
	'Handles changeHuman popup'

	if( popupReturn.getButtonClicked() == 0 ):  # if you pressed cancel
		return

	newHumanIdx = popupReturn.getSelectedPullDownValue( 1 )
	newPlayer = gc.getPlayer(newHumanIdx)
	oldHumanIdx = playerID
	oldPlayer = gc.getPlayer(oldHumanIdx)

	if( newHumanIdx == oldHumanIdx ) :
		if( LOG_DEBUG ) : CvUtil.pyPrint( "   CP : You have selected the same civ, no change")
		CyInterface().addImmediateMessage("You retain control of the %s"%(oldPlayer.getCivilizationDescription(0)),"")
		return


	if( LOG_DEBUG ) : CvUtil.pyPrint( "   CP : You have selected player %d, the %s"%(newHumanIdx, newPlayer.getCivilizationDescription(0)) )

	success = RevUtils.changeHuman( newHumanIdx, oldHumanIdx )

	if( success ) :
		if( LOG_DEBUG ) : CvUtil.pyPrint( "   CP : Number of human players is now %d"%(game.getNumHumanPlayers()) )
		if( LOG_DEBUG ) : CvUtil.pyPrint( "   CP : Active player is now %d"%(game.getActivePlayer()) )
##			for i in range(0,gc.getMAX_CIV_PLAYERS()) :
##				if( LOG_DEBUG ) : CvUtil.pyPrint( "   CP : Player %d is human %d"%(i,gc.getPlayer(i).isHuman()))
		CyInterface().addImmediateMessage("You now control the %s"%(newPlayer.getCivilizationDescription(0)),"")
	else :
		if( LOG_DEBUG ) : CvUtil.pyPrint( "   CP : Error occured, number of human players is now %d"%(game.getNumHumanPlayers()) )
		CyInterface().addImmediateMessage("An error occured in changeHuman ...","")
	def onVictory(self, argsList):
		'Victory'
		iTeam, iVictory = argsList
		if (iVictory >= 0 and iVictory < gc.getNumVictoryInfos()):
			victoryInfo = gc.getVictoryInfo(int(iVictory))
			CvUtil.pyPrint("Victory!  Team %d achieves a %s victory"
				%(iTeam, victoryInfo.getDescription()))
예제 #26
0
 def onEndGoldenAge(self, argsList):
     'End Golden Age'
     iPlayer = argsList[0]
     player = PyPlayer(iPlayer)
     if (not self.__LOG_ENDGOLDENAGE):
         return
     CvUtil.pyPrint('Player %d Civilization %s golden age has ended' %
                    (iPlayer, player.getCivilizationName()))
예제 #27
0
	def onUnitSelected(self, argsList):
		'Unit Selected'
		unit = argsList[0]
		player = PyPlayer(unit.getOwner())
		if (not self.__LOG_UNITSELECTED):
			return
		CvUtil.pyPrint('%s was selected by Player %d Civilization %s' 
			%(PyInfo.UnitInfo(unit.getUnitType()).getDescription(), player.getID(), player.getCivilizationName()))
예제 #28
0
    def onModNetMessage(self, argsList):
        'Called whenever CyMessageControl().sendModNetMessage() is called - this is all for you modders!'

        iData1, iData2, iData3, iData4, iData5 = argsList

        print("Modder's net message!")

        CvUtil.pyPrint('onModNetMessage')
예제 #29
0
 def reportEvent(self, entry, context, argsList):
     'Report an Event to Events.log '
     if (gc.getGame().getActivePlayer() != -1):
         message = "DEBUG Event: %s (%s)" % (entry[0],
                                             gc.getActivePlayer().getName())
         CyInterface().addImmediateMessage(message, "")
         CvUtil.pyPrint(message)
     return 0
예제 #30
0
 def onImprovementBuilt(self, argsList):
     'Improvement Built'
     iImprovement, iX, iY = argsList
     if (not self.__LOG_IMPROVEMENT):
         return
     CvUtil.pyPrint(
         'Improvement %s was built at %d, %d' %
         (PyInfo.ImprovementInfo(iImprovement).getDescription(), iX, iY))
예제 #31
0
 def onCityBuilt(self, argsList):
     'City Built'
     city = argsList[0]
     # edead: start comment
     # if (city.getOwner() == gc.getGame().getActivePlayer()):
     # self.__eventEditCityNameBegin(city, False)
     # edead: end
     CvUtil.pyPrint('City Built Event: %s' % (city.getName()))
예제 #32
0
    def __init__(self):
        "constructor - set up class vars, AI and User strings"
        if DebugLogging:
            CvUtil.pyPrint("Launching Diplomacy")

        self.iLastResponseID = -1

        self.diploScreen = CyDiplomacy()
예제 #33
0
 def onImprovementDestroyed(self, argsList):
     'Improvement Destroyed'
     iImprovement, iOwner, iX, iY = argsList
     if (not self.__LOG_IMPROVEMENT):
         return
     CvUtil.pyPrint(
         'Improvement %s was Destroyed at %d, %d' %
         (PyInfo.ImprovementInfo(iImprovement).getDescription(), iX, iY))
예제 #34
0
	def onEndGoldenAge(self, argsList):
		'End Golden Age'
		iPlayer = argsList[0]
		player = PyPlayer(iPlayer)
		if (not self.__LOG_ENDGOLDENAGE):
			return
		CvUtil.pyPrint('Player %d Civilization %s golden age has ended'
			%(iPlayer, player.getCivilizationName()))
예제 #35
0
	def onCorporationRemove(self, argsList):
		'Corporation Has been removed from a City'
		iCorporation, iOwner, pRemoveCity = argsList
		player = PyPlayer(iOwner)
		if (not self.__LOG_RELIGIONSPREAD):
			return
		CvUtil.pyPrint('%s has been removed from Player %d Civilization %s city of %s'
			%(gc.getReligionInfo(iReligion).getDescription(), iOwner, player.getCivilizationName(), pRemoveCity.getName()))
	def onUnitLost(self, argsList):
		'Unit Lost'
		unit = argsList[0]
		player = gc.getPlayer(unit.getOwner())
		if (not self.__LOG_UNITLOST):
			return
		CvUtil.pyPrint('%s was lost by Player %d Civilization %s'
			%(gc.getUnitInfo(unit.getUnitType()).getDescription(), player.getID(), player.getCivilizationDescription(0)))
예제 #37
0
	def onCityLost(self, argsList):
		'City Lost'
		city = argsList[0]
		player = PyPlayer(city.getOwner())
		if (not self.__LOG_CITYLOST):
			return
		CvUtil.pyPrint('City %s was lost by Player %d Civilization %s' 
			%(city.getName(), player.getID(), player.getCivilizationName()))
예제 #38
0
 def onGoodyReceived(self, argsList):
     'Goody received'
     iPlayer, pPlot, pUnit, iGoodyType = argsList
     if (not self.__LOG_GOODYRECEIVED):
         return
     CvUtil.pyPrint(
         '%s received a goody' %
         (gc.getPlayer(iPlayer).getCivilizationDescription(0)), )
예제 #39
0
	def onCorporationSpread(self, argsList):
		'Corporation Has Spread to a City'
		iCorporation, iOwner, pSpreadCity = argsList
		player = PyPlayer(iOwner)
		if (not self.__LOG_RELIGIONSPREAD):
			return
		CvUtil.pyPrint('%s has spread to Player %d Civilization %s city of %s'
			%(gc.getCorporationInfo(iCorporation).getDescription(), iOwner, player.getCivilizationName(), pSpreadCity.getName()))
	def onCityLost(self, argsList):
		'City Lost'
		city = argsList[0]
		player = gc.getPlayer(city.getOwner())
		if (not self.__LOG_CITYLOST):
			return
		CvUtil.pyPrint('City %s was lost by Player %d Civilization %s'
			%(city.getName(), player.getID(), player.getCivilizationDescription(0)))
예제 #41
0
 def onGoldenAge(self, argsList):
     'Golden Age'
     iPlayer = argsList[0]
     player = PyPlayer(iPlayer)
     if (not self.__LOG_GOLDENAGE):
         return
     CvUtil.pyPrint('Player %d Civilization %s has begun a golden age' %
                    (iPlayer, player.getCivilizationName()))
예제 #42
0
 def onTechSelected(self, argsList):
     'Tech Selected'
     iTechType, iPlayer = argsList
     if (not self.__LOG_TECH):
         return
     CvUtil.pyPrint(
         '%s was selected by Player %d' %
         (PyInfo.TechnologyInfo(iTechType).getDescription(), iPlayer))
예제 #43
0
	def onUnitLost(self, argsList):
		'Unit Lost'
		unit = argsList[0]
		player = PyPlayer(unit.getOwner())
		if (not self.__LOG_UNITLOST):
			return
		CvUtil.pyPrint('%s was lost by Player %d Civilization %s' 
			%(PyInfo.UnitInfo(unit.getUnitType()).getDescription(), player.getID(), player.getCivilizationName()))
예제 #44
0
파일: Tester.py 프로젝트: markourm/fall
	def onGreatPersonBorn(self, argsList):
		'Unit Promoted'
		pUnit, iPlayer, pCity = argsList
		player = PyPlayer(iPlayer)
		if pUnit.isNone() or pCity.isNone():
				return

		CvUtil.pyPrint('A %s was born for %s in %s' %(pUnit.getName(), player.getCivilizationName(), pCity.getName()))
예제 #45
0
파일: Tester.py 프로젝트: markourm/fall
	def onReligionFounded(self, argsList):
		'Religion Founded'

		iReligion, iFounder = argsList
		player = PyPlayer(iFounder)

		CvUtil.pyPrint('Player %d Civilization %s has founded %s'
			%(iFounder, player.getCivilizationName(), gc.getReligionInfo(iReligion).getDescription()))
예제 #46
0
def testList():
    CvUtil.pyPrint(
        format(2, [
            makeTrade(TradeableItems.TRADE_GOLD, 53),
            makeTrade(TradeableItems.TRADE_MAPS),
            makeTrade(TradeableItems.TRADE_PEACE, 1),
            makeTrade(TradeableItems.TRADE_CITY, 1),
            makeTrade(TradeableItems.TRADE_GOLD_PER_TURN, 6),
        ]))
예제 #47
0
    def onBeginPlayerTurn(self, argsList):
        iGameTurn, iPlayer = argsList

        if gc.getGame().getGameTurn() < getTurnForYear(
                con.tBirth[gc.getGame().getActivePlayer()]):
            return

        player = gc.getPlayer(iPlayer)

        # edead: start - Verify human player mercenaries
        if player.isHuman():
            mercenaries = sd.getMercenaryData("HiredMercenaries")
            if mercenaries.has_key(iPlayer):
                playerMercenaries = mercenaries[iPlayer].copy()
                for mercenaryName, mercenary in playerMercenaries.iteritems():
                    if mercenary["iPlacementTurn"] == -1:
                        unit = player.getUnit(mercenary["iUnitID"])
                        if unit.getID() == -1:
                            del mercenaries[iPlayer][mercenaryName]
                            sd.setMercenaryData("HiredMercenaries",
                                                mercenaries)
        # edead: end

        # Debug code - start
        if (g_bDebug):
            CvUtil.pyPrint(player.getName() + " Gold: " +
                           str(player.getGold()) + " is human: " +
                           str(player.isHuman()))
        # Debug code - end

        # Add the mercenaries to the global mercenary pool if the
        # g_bGameTurnMercenaryCreation is set to false
        if (not g_bGameTurnMercenaryCreation):
            objMercenaryUtils.addMercenariesToPool()

        # if g_bDisplayMercenaryManagerOnBeginPlayerTurn is true the the player is human
        # then display the mercenary manager screen
        if (g_bDisplayMercenaryManagerOnBeginPlayerTurn and player.isHuman()):
            self.mercenaryManager.interfaceScreen()

        # if the player is not human then run the think method
        #Rhye - start
        #objMercenaryUtils.computerPlayerThink(iPlayer)

        iAIThinkPeriod = g_iAIThinkPeriod
        if gc.getGame().getGameTurnYear() < 1080 or gc.getGame(
        ).getGameTurnYear() > 1220:
            iAIThinkPeriod += 1  # edead: more mercs in 1080-1220

        if (player.isAlive() and iPlayer < con.iNumPlayers):  # edead
            if (iPlayer % iAIThinkPeriod == iGameTurn % iAIThinkPeriod):
                #print ("AI thinking (Mercenaries)", iPlayer) #Rhye
                objMercenaryUtils.computerPlayerThink(iPlayer)
        #Rhye - end

        # Place any mercenaries that might be ready to be placed.
        objMercenaryUtils.placeMercenaries(iPlayer)
예제 #48
0
def debug(argsList):
    printToScr = True
    printToLog = True
    message = "%s" % (argsList)
    if (printToScr):
        CyInterface().addImmediateMessage(message, "")
    if (printToLog):
        CvUtil.pyPrint(message)
    return 0
예제 #49
0
def sdEcho(echoString):
    printToScr = True
    printToLog = True
    message = "%s" % (echoString)
    if (printToScr):
        CyInterface().addImmediateMessage(message, "")
    if (printToLog):
        CvUtil.pyPrint(message)
    return 0
예제 #50
0
 def onCityBuilt(self, argsList):
     'City Built'
     city = argsList[0]
     if (city.getOwner() == gc.getGame().getActivePlayer()):
         self.__eventEditCityNameBegin(city, False)
     # <advc.007>
     if (not self.__LOG_CITYBUILT):
         return  # </advc.007>
     CvUtil.pyPrint('City Built Event: %s' % (city.getName()))
예제 #51
0
	def onGreatPersonBorn(self, argsList):
		'Unit Promoted'
		pUnit, iPlayer, pCity = argsList
		player = PyPlayer(iPlayer)
		if pUnit.isNone() or pCity.isNone():
			return
		if (not self.__LOG_GREATPERSON):
			return
		CvUtil.pyPrint('A %s was born for %s in %s' %(pUnit.getName(), player.getCivilizationName(), pCity.getName()))
예제 #52
0
	def onCorporationFounded(self, argsList):
		'Corporation Founded'
		iCorporation, iFounder = argsList
		player = PyPlayer(iFounder)
		
		if (not self.__LOG_RELIGION):
			return
		CvUtil.pyPrint('Player %d Civilization %s has founded %s'
			%(iFounder, player.getCivilizationName(), gc.getCorporationInfo(iCorporation).getDescription()))
예제 #53
0
	def onFirstContact(self, argsList):
	## Platy Builder ##
		if CyGame().GetWorldBuilderMode() and not CvPlatyBuilderScreen.bPython: return
	## Platy Builder ##
		'Contact'
		iTeamX,iHasMetTeamY = argsList
		if (not self.__LOG_CONTACT):
			return
		CvUtil.pyPrint('Team %d has met Team %d' %(iTeamX, iHasMetTeamY))
예제 #54
0
 def onCityBuildingBuilding(self, argsList):
     'City begins building a Building'
     pCity = argsList[0]
     iBuildingType = argsList[1]
     if (not self.__LOG_CITYBUILDING):
         return
     CvUtil.pyPrint("%s has begun building a %s" %
                    (pCity.getName(),
                     gc.getBuildingInfo(iBuildingType).getDescription()))
예제 #55
0
def check_show_ressources():
    iPlayer = gc.getGame().getActivePlayer()
    if (iPlayer != -1
        and gc.getPlayer(iPlayer).isOption(
            PlayerOptionTypes.PLAYEROPTION_MODDER_1)
       ):
        CvUtil.pyPrint('toggle resource symbols on')
        bResourceOn = ControlTypes.CONTROL_RESOURCE_ALL + 1001
        CyGame().doControlWithoutWidget(bResourceOn)  # Ctrl+r
예제 #56
0
	def onUnitKilled(self, argsList):
		'Unit Killed'
		unit, iAttacker = argsList
		player = PyPlayer(unit.getOwner())
		attacker = PyPlayer(iAttacker)
		if (not self.__LOG_UNITKILLED):
			return
		CvUtil.pyPrint('Player %d Civilization %s Unit %s was killed by Player %d' 
			%(player.getID(), player.getCivilizationName(), PyInfo.UnitInfo(unit.getUnitType()).getDescription(), attacker.getID()))
    def addUpgradePath(self, graph, unitFrom, unitTo):

        # Check if unit numbers are valid
        if (unitFrom >= 0 and graph.has_key(unitFrom) and unitTo >= 0
                and graph.has_key(unitTo)):
            graph[unitFrom].upgradesTo.add(unitTo)
            graph[unitTo].upgradesFrom.add(unitFrom)
            CvUtil.pyPrint(
                self.unitToString(unitFrom) + " upgrades to " +
                self.unitToString(unitTo) + ".")
예제 #58
0
	def onVassalState(self, argsList):
		'Vassal State'
		iMaster, iVassal, bVassal, bCapitulated = argsList
		
		if (bVassal):
			CvUtil.pyPrint("Team %d becomes a Vassal State of Team %d"
				%(iVassal, iMaster))
		else:
			CvUtil.pyPrint("Team %d revolts and is no longer a Vassal State of Team %d"
				%(iVassal, iMaster))
예제 #59
0
	def onImprovementDestroyed(self, argsList):
	## Platy Builder ##
		if CyGame().GetWorldBuilderMode() and not CvPlatyBuilderScreen.bPython: return
	## Platy Builder ##
		'Improvement Destroyed'
		iImprovement, iOwner, iX, iY = argsList
		if (not self.__LOG_IMPROVEMENT):
			return
		CvUtil.pyPrint('Improvement %s was Destroyed at %d, %d'
			%(PyInfo.ImprovementInfo(iImprovement).getDescription(), iX, iY))
예제 #60
0
	def onRouteBuilt(self, argsList):
	## Platy Builder ##
		if CyGame().GetWorldBuilderMode() and not CvPlatyBuilderScreen.bPython: return
	## Platy Builder ##
		'Route Built'
		iRoute, iX, iY = argsList
		if (not self.__LOG_IMPROVEMENT):
			return
		CvUtil.pyPrint('Route %s was built at %d, %d'
			%(gc.getRouteInfo(iRoute).getDescription(), iX, iY))