def onCombatResult(self, argsList):
		self.up.aztecUP(argsList)
		self.rnf.immuneMode(argsList)
		self.up.vikingUP(argsList) # includes Moorish Corsairs
		
		pWinningUnit, pLosingUnit = argsList
		
		vic.onCombatResult(pWinningUnit, pLosingUnit)
		
		iUnitPower = 0
		pLosingUnitInfo = gc.getUnitInfo(pLosingUnit.getUnitType())
		
		if pLosingUnitInfo.getUnitCombatType() != gc.getInfoTypeForString("UNITCOMBAT_SIEGE"):
			iUnitPower = pLosingUnitInfo.getPowerValue()
		
		sta.onCombatResult(pWinningUnit.getOwner(), pLosingUnit.getOwner(), iUnitPower)
		
		# catch slaves by defeating native and barbarian Pombos or Impis
		if pLosingUnit.getOwner() in [iBarbarian, iNative] and pLosingUnit.getUnitType() in [iZuluImpi, iCongolesePombos]:
			if gc.getMap().plot(pLosingUnit.getX(), pLosingUnit.getY()).getOwner() == pWinningUnit.getOwner():
				if gc.getPlayer(pWinningUnit.getOwner()).getCivics(2) == iCivicSlavery:
					iRand = gc.getGame().getSorenRandNum(5, "Caught slaves?")
					if iRand == 1:
						iNewUnit = utils.getUniqueUnitType(pWinningUnit.getOwner(), gc.getUnitInfo(iSlave).getUnitClassType())
						utils.makeUnit(iNewUnit, pWinningUnit.getOwner(), (pWinningUnit.getX(), pWinningUnit.getY()), 1)
						CyInterface().addMessage(pWinningUnit.getOwner(),True,15,CyTranslator().getText("TXT_KEY_UP_ENSLAVE_WIN", ()),'SND_REVOLTEND',1,'Art/Units/slave/button_slave.dds',ColorTypes(8),pWinningUnit.getX(),pWinningUnit.getY(),True,True)

		# Maya Holkans give food to closest city on victory
		if pWinningUnit.getUnitType() == iMayanHolkan:
			iOwner = pWinningUnit.getOwner()
			city = gc.getMap().findCity(pWinningUnit.getX(), pWinningUnit.getY(), iOwner, TeamTypes.NO_TEAM, False, False, TeamTypes.NO_TEAM, DirectionTypes.NO_DIRECTION, CyCity())
			if city: 
				city.changeFood(5)
				sAdjective = gc.getPlayer(pLosingUnit.getOwner()).getCivilizationAdjectiveKey()
				CyInterface().addMessage(iOwner, False, iDuration, CyTranslator().getText("TXT_KEY_MAYA_HOLKAN_EFFECT", (sAdjective, pLosingUnit.getNameKey(), 5, city.getName())), "", 0, "", ColorTypes(iWhite), -1, -1, True, True)
	def onGreatPersonBorn(self, argsList):
		'Great Person Born'
		pUnit, iPlayer, pCity = argsList
		
		gp.onGreatPersonBorn(pUnit, iPlayer, pCity)
		vic.onGreatPersonBorn(iPlayer, pUnit)
		sta.onGreatPersonBorn(iPlayer)
	def onGreatPersonBorn(self, argsList):
		'Great Person Born'
		pUnit, iPlayer, pCity = argsList
		player = PyPlayer(iPlayer)
		iUnitType = pUnit.getUnitType()
		iUnitClassType = pUnit.getUnitClassType()
		sName = pUnit.getName()
		
		# Leoreth: replace graphics for female GP names
		if sName[0] == "f":
			pUnit.setName(sName[1:])
			pUnit = utils.replace(pUnit, con.dFemaleGreatPeople[utils.getBaseUnit(iUnitType)])
		
		# Leoreth: display notification
		if iPlayer not in [con.iIndependent, con.iIndependent2, con.iBarbarian]:
			pDisplayCity = pCity
			if pDisplayCity.isNone(): pDisplayCity = gc.getMap().findCity(pUnit.getX(), pUnit.getY(), PlayerTypes.NO_PLAYER, TeamTypes.NO_TEAM, False, False, TeamTypes.NO_TEAM, DirectionTypes.NO_DIRECTION, CyCity())
				
			sCity = "%s (%s)" % (pDisplayCity.getName(), gc.getPlayer(pDisplayCity.getOwner()).getCivilizationShortDescription(0))
			sMessage = localText.getText("TXT_KEY_MISC_GP_BORN", (pUnit.getName(), sCity))
			sUnrevealedMessage = localText.getText("TXT_KEY_MISC_GP_BORN_SOMEWHERE", (pUnit.getName(),))
			
			if pCity.isNone(): sMessage = localText.getText("TXT_KEY_MISC_GP_BORN_OUTSIDE", (pUnit.getName(), sCity))
		
			for iLoopPlayer in range(con.iNumPlayers):
				if gc.getPlayer(iLoopPlayer).isAlive():
					if pUnit.plot().isRevealed(gc.getPlayer(iLoopPlayer).getTeam(), False):
						CyInterface().addMessage(iLoopPlayer, False, con.iDuration, sMessage, "AS2D_UNIT_GREATPEOPLE", InterfaceMessageTypes.MESSAGE_TYPE_MAJOR_EVENT, pUnit.getButton(), ColorTypes(gc.getInfoTypeForString("COLOR_UNIT_TEXT")), pUnit.getX(), pUnit.getY(), True, True)
					else:
						CyInterface().addMessage(iLoopPlayer, False, con.iDuration, sUnrevealedMessage, "AS2D_UNIT_GREATPEOPLE", InterfaceMessageTypes.MESSAGE_TYPE_MAJOR_EVENT, "", ColorTypes(gc.getInfoTypeForString("COLOR_UNIT_TEXT")), -1, -1, False, False)

		vic.onGreatPersonBorn(iPlayer, pUnit)
		sta.onGreatPersonBorn(iPlayer)
	def onCityRazed(self, argsList):
		city, iPlayer = argsList

		dc.onCityRazed(city.getOwner())
		self.pla.onCityRazed(city, iPlayer) #Plague
			
		vic.onCityRazed(iPlayer, city)	
		sta.onCityRazed(iPlayer, city)
	def onPlayerChangeStateReligion(self, argsList):
		'Player changes his state religion'
		iPlayer, iNewReligion, iOldReligion = argsList
		
		if iPlayer < iNumPlayers:
			dc.onPlayerChangeStateReligion(iPlayer, iNewReligion)
			
		sta.onPlayerChangeStateReligion(iPlayer)
        def onCityRazed(self, argsList):
                city, iPlayer = argsList

                self.dc.onCityRazed(argsList)
		self.pla.onCityRazed(city,iPlayer) #Plague
                        
                vic.onCityRazed(iPlayer, city)	
		sta.onCityRazed(iPlayer, city)
	def onBuildingBuilt(self, argsList):
		city, iBuildingType = argsList
		iOwner = city.getOwner()
		tCity = (city.getX(), city.getY())
		
		vic.onBuildingBuilt(iOwner, iBuildingType)
		self.rel.onBuildingBuilt(city, iOwner, iBuildingType)
		
		if iOwner < iNumPlayers:
			self.com.onBuildingBuilt(iOwner, iBuildingType, city)
		
		if isWorldWonderClass(gc.getBuildingInfo(iBuildingType).getBuildingClassType()):
			sta.onWonderBuilt(iOwner, iBuildingType)
			
		if iBuildingType == iPalace:
			sta.onPalaceMoved(iOwner)
			dc.onPalaceMoved(iOwner)
			
			if city.isHasRealBuilding(iAdministrativeCenter): city.setHasRealBuilding(iAdministrativeCenter, False)
			
			# Leoreth: in case human Phoenicia moves palace to Carthage
			if iOwner == iCarthage and tCity == (58, 39):
				utils.setReborn(iCarthage, True)

		# Leoreth: update trade routes when Porcelain Tower is built to start its effect
		if iBuildingType == iPorcelainTower:
			gc.getPlayer(iOwner).updateTradeRoutes()

		# Leoreth/Voyhkah: Empire State Building
		if iBuildingType == iEmpireStateBuilding:
			iPop = city.getPopulation()
			city.setBuildingCommerceChange(gc.getInfoTypeForString("BUILDINGCLASS_EMPIRE_STATE_BUILDING"), 0, iPop)
			
		# Leoreth: Machu Picchu
		if iBuildingType == iMachuPicchu:
			iNumPeaks = 0
			for i in range(21):
				if city.getCityIndexPlot(i).isPeak():
					iNumPeaks += 1
			city.setBuildingCommerceChange(gc.getInfoTypeForString("BUILDINGCLASS_MACHU_PICCHU"), 0, iNumPeaks * 2)
			
		# Leoreth: Great Wall
		if iBuildingType == iGreatWall:
			for iPlot in range(gc.getMap().numPlots()):
				plot = gc.getMap().plotByIndex(iPlot)
				if plot.getOwner() == iOwner and not plot.isWater():
					plot.setWithinGreatWall(True)
					
		# Leoreth: La Mezquita
		if iBuildingType == iMezquita:
			lGPList = [0, 0, 0, 0, 0, 0, 0]
			for city in utils.getCityList(iOwner):
				for i in range(7):
					iSpecialistUnit = utils.getUniqueUnit(iOwner, iGreatProphet + i)
					lGPList[i] += city.getGreatPeopleUnitProgress(iSpecialistUnit)
			iGPType = utils.getUniqueUnit(iOwner, iGreatProphet + utils.getHighestIndex(lGPList))
			utils.makeUnit(iGPType, iOwner, tCity, 1)
			CyInterface().addMessage(iOwner, False, iDuration, CyTranslator().getText("TXT_KEY_MEZQUITA_FREE_GP", (gc.getUnitInfo(iGPType).getText(), city.getName())), "", InterfaceMessageTypes.MESSAGE_TYPE_MINOR_EVENT, gc.getUnitInfo(iGPType).getButton(), ColorTypes(iWhite), city.getX(), city.getY(), True, True)
	def onReleasedPlayer(self, argsList):
		iPlayer, iReleasedPlayer = argsList
		
		lCities = []
		for city in utils.getCityList(iPlayer):
			if city.plot().isCore(iReleasedPlayer) and not city.plot().isCore(iPlayer) and not city.isCapital():
				lCities.append(city)
				
		sta.doResurrection(iReleasedPlayer, lCities, False)
		
		gc.getPlayer(iReleasedPlayer).AI_changeAttitudeExtra(iPlayer, 2)
Пример #9
0
    def setUp(self):
        try:
            self.setup = Stability.SetupDeviceConnections()
            self.a = self.setup.initializeTestDevice()
            self.id = self.setup.device_id
            self.stabdl = Stability.StabDL(self.a)
            self.error = ''
            self.a.input.back(3)

        except Exception, e:
            self.a.log.debug("", "\n Set up")
Пример #10
0
 def setUp(self):
     try:
         self.error = ''
         self.setup = Stability.SetupDeviceConnections()
         self.a = self.setup.initializeTestDevice()
         self.stabdl = Stability.StabDL(self.a)
         self.id = self.setup.device_id
         self.iozonePath = "../testcases/setup/iozone"
         self.usbPath = ""
         self.a.input.back(3)
     except:
         self.a.log.debug("", "\n Set up")
    def onCityRazed(self, argsList):
        city, iPlayer = argsList

        dc.onCityRazed(city.getPreviousOwner())
        self.pla.onCityRazed(city, iPlayer)  #Plague

        vic.onCityRazed(iPlayer, city)
        sta.onCityRazed(iPlayer, city)

        # Israeli UP
        if city.isHasReligion(iJudaism):
            self.up.computeAliyahBonus()
Пример #12
0
    def onReleasedPlayer(self, argsList):
        iPlayer, iReleasedPlayer = argsList

        lCities = []
        for city in utils.getCityList(iPlayer):
            if city.plot().isCore(iReleasedPlayer) and not city.plot().isCore(
                    iPlayer) and not city.isCapital():
                lCities.append(city)

        sta.doResurrection(iReleasedPlayer, lCities, False)

        gc.getPlayer(iReleasedPlayer).AI_changeAttitudeExtra(iPlayer, 2)
Пример #13
0
    def setUp(self):
        try:

            self.error = ''
            self.setup = Stability.SetupDeviceConnections()
            self.a = self.setup.initializeTestDevice()
            self.stabdl = Stability.StabDL(self.a)
            self.id = self.setup.device_id
            self.path = "/mnt/sdcard/Pictures/Screenshots"
            self.a.input.back(3)
        except:
            self.a.log.debug("", "\n Set up")
    def onRevolution(self, argsList):
        'Called at the start of a revolution'
        iPlayer = argsList[0]

        sta.onRevolution(iPlayer)

        if iPlayer < iNumPlayers:
            dc.onRevolution(iPlayer)

        utils.checkSlaves(iPlayer)

        cnm.onRevolution(iPlayer)
Пример #15
0
    def onChangeWar(self, argsList):
        bWar, iTeam, iOtherTeam = argsList

        sta.onChangeWar(bWar, iTeam, iOtherTeam)
        self.up.onChangeWar(bWar, iTeam, iOtherTeam)

        if iTeam < iNumPlayers and iOtherTeam < iNumPlayers:
            cong.onChangeWar(bWar, iTeam, iOtherTeam)

        # don't start AIWars if they get involved in natural wars
        if bWar and iTeam < iNumPlayers and iOtherTeam < iNumPlayers:
            data.players[iTeam].iAggressionLevel = 0
            data.players[iOtherTeam].iAggressionLevel = 0
Пример #16
0
	def onChangeWar(self, argsList):
		bWar, iTeam, iOtherTeam, bGlobalWar = argsList
		
		sta.onChangeWar(bWar, iTeam, iOtherTeam)
		self.up.onChangeWar(bWar, iTeam, iOtherTeam)
		
		if iTeam < con.iNumPlayers and iOtherTeam < con.iNumPlayers:
			cong.onChangeWar(argsList)
		
		# don't start AIWars if they get involved in natural wars
		if bWar and iTeam < con.iNumPlayers and iOtherTeam < con.iNumPlayers:
			sd.setAggressionLevel(iTeam, 0)
			sd.setAggressionLevel(iOtherTeam, 0)
	def onChangeWar(self, argsList):
		bWar, iTeam, iOtherTeam = argsList
		
		sta.onChangeWar(bWar, iTeam, iOtherTeam)
		self.up.onChangeWar(bWar, iTeam, iOtherTeam)
		
		if iTeam < iNumPlayers and iOtherTeam < iNumPlayers:
			cong.onChangeWar(bWar, iTeam, iOtherTeam)
		
		# don't start AIWars if they get involved in natural wars
		if bWar and iTeam < iNumPlayers and iOtherTeam < iNumPlayers:
			data.players[iTeam].iAggressionLevel = 0
			data.players[iOtherTeam].iAggressionLevel = 0
Пример #18
0
    def setUp(self):
        try :

            self.error = ''
            self.downloadTime = 80
            self.upgradeTime = 350
            self.setup = Stability.SetupDeviceConnections()
            self.a = self.setup.initializeTestDevice()
            self.stabdl = Stability.StabDL(self.a)
            self.id = self.setup.device_id   
            self.a.input.back(3)
        except :
            self.a.log.debug("", "\n Set up")
Пример #19
0
 def setUp(self):
     try:
         #self.playtime = 1*60*60 # play 'playtime' seconds for each video
         self.playtime = 2
         self.temPlaytime = 2
         self.setup = Stability.SetupDeviceConnections()
         self.a = self.setup.initializeTestDevice()
         self.error = ''
         self.stabdl = Stability.StabDL(self.a)
         self.id = self.setup.device_id
         self.a.input.back(3)
     except Exception, e:
         self.a.log.debug("", "\n Set up")
Пример #20
0
    def setUp(self):
        try :
            self.setup = Stability.SetupDeviceConnections()
            self.a = self.setup.initializeTestDevice()
            self.id= self.setup.device_id
            self.stabdl=Stability.StabDL(self.a)
            #self.a.input.down()
            #self.a.input.center()
            self.a.input.back(2)       


        except :
            self.a.log.debug("", "\n Set up")
	def onRevolution(self, argsList):
		'Called at the start of a revolution'
		iPlayer = argsList[0]
		
		sta.onRevolution(iPlayer)
		
		if iPlayer < iNumPlayers:
			dc.onRevolution(iPlayer)
			
		if gc.getPlayer(iPlayer).getCivics(1) == iCivicEgalitarianism:
			utils.clearSlaves(iPlayer)
			
		if iPlayer in [iEgypt]:
			cnm.onRevolution(iPlayer)
Пример #22
0
 def setUp(self):
     self.setup = Stability.SetupDeviceConnections()
     self.a = self.setup.initializeTestDevice()
     self.stabdl = Stability.StabDL(self.a)
     self.error = ''
     self.id = self.setup.device_id
     self.a.input.back(3)
     for m in self.a.ui.windows():
         if "Application Error" in str(m):
             print m
             self.a.input.right()
             time.sleep(1)
             self.a.input.center()
             time.sleep(2)
Пример #23
0
	def onRevolution(self, argsList):
		'Called at the start of a revolution'
		iPlayer = argsList[0]
		
		sta.onRevolution(iPlayer)
		
		if iPlayer < iNumPlayers:
			self.dc.onRevolution(iPlayer)
			
		if gc.getPlayer(iPlayer).getCivics(1) == con.iCivicEgalitarianism:
			utils.clearSlaves(iPlayer)
			
		if iPlayer in [con.iEgypt]:
			cnm.onRevolution(iPlayer)
Пример #24
0
    def onCombatResult(self, argsList):
        self.rnf.immuneMode(argsList)
        self.up.vikingUP(argsList)  # includes Moorish Corsairs

        pWinningUnit, pLosingUnit = argsList
        iWinningPlayer = pWinningUnit.getOwner()
        iLosingPlayer = pLosingUnit.getOwner()

        vic.onCombatResult(pWinningUnit, pLosingUnit)

        iUnitPower = 0
        pLosingUnitInfo = gc.getUnitInfo(pLosingUnit.getUnitType())

        if pLosingUnitInfo.getUnitCombatType() != gc.getInfoTypeForString(
                "UNITCOMBAT_SIEGE"):
            iUnitPower = pLosingUnitInfo.getPowerValue()

        sta.onCombatResult(iWinningPlayer, iLosingPlayer, iUnitPower)

        # capture slaves
        if iWinningPlayer == iAztecs and not pAztecs.isReborn():
            utils.captureUnit(pLosingUnit, pWinningUnit, iAztecSlave, 35)

        elif iLosingPlayer == iNative:
            if iWinningPlayer not in lCivBioNewWorld or True in data.lFirstContactConquerors:
                if gc.getPlayer(iWinningPlayer).isSlavery() or gc.getPlayer(
                        iWinningPlayer).isColonialSlavery():
                    utils.captureUnit(pLosingUnit, pWinningUnit, iSlave, 35)

        # Maya Holkans give food to closest city on victory
        if pWinningUnit.getUnitType() == iHolkan:
            iOwner = pWinningUnit.getOwner()
            city = gc.getMap().findCity(pWinningUnit.getX(),
                                        pWinningUnit.getY(), iOwner,
                                        TeamTypes.NO_TEAM, False, False,
                                        TeamTypes.NO_TEAM,
                                        DirectionTypes.NO_DIRECTION, CyCity())
            if city:
                city.changeFood(5)
                if utils.getHumanID() == pWinningUnit.getOwner():
                    data.iTeotlSacrifices += 1
                sAdjective = gc.getPlayer(
                    pLosingUnit.getOwner()).getCivilizationAdjectiveKey()
                CyInterface().addMessage(
                    iOwner, False, iDuration,
                    CyTranslator().getText(
                        "TXT_KEY_MAYA_HOLKAN_EFFECT",
                        (sAdjective, pLosingUnit.getNameKey(), 5,
                         city.getName())), "", 0, "", ColorTypes(iWhite), -1,
                    -1, True, True)
Пример #25
0
    def onVassalState(self, argsList):
        'Vassal State'
        iMaster, iVassal, bVassal, bCapitulated = argsList

        if bCapitulated:
            sta.onVassalState(iMaster, iVassal)

        if iVassal == iInca:
            utils.setReborn(iInca, True)

        # move Mongolia's core south in case they vassalize China
        if bCapitulated and iVassal == iChina and iMaster == iMongolia:
            utils.setReborn(iMongolia, True)

        dc.onVassalState(iMaster, iVassal)
Пример #26
0
        def onVassalState(self, argsList):
		'Vassal State'
		iMaster, iVassal, bVassal, bCapitulated = argsList
		
		if bCapitulated:
			sta.onVassalState(iMaster, iVassal)
		
		if iVassal == con.iInca:
			gc.getPlayer(con.iInca).setReborn(True)
			
		# move Mongolia's core south in case they vassalize China
		if bCapitulated and iVassal == con.iChina and iMaster == con.iMongolia:
			gc.getPlayer(con.iMongolia).setReborn(True)
		
		self.dc.onVassalState(argsList)
Пример #27
0
    def setUp(self):
        try :
            #self.loop = 1  
            self.play_urls=[]
            self.error_urls = []
            self.error=""
            self.start_over = 1
            self.setup = Stability.SetupDeviceConnections()
            self.a = self.setup.initializeTestDevice()
            self.stabdl=Stability.StabDL(self.a)   
            self.pf=Stability.PlayFiles(self.a, self.playtime) 
            self.a.input.back(3)

        except Exception, e:
            self.a.log.debug("", "\n Set up")
	def onVassalState(self, argsList):
		'Vassal State'
		iMaster, iVassal, bVassal, bCapitulated = argsList
		
		if bCapitulated:
			sta.onVassalState(iMaster, iVassal)
		
		if iVassal == iInca:
			utils.setReborn(iInca, True)
			
		# move Mongolia's core south in case they vassalize China
		if bCapitulated and iVassal == iChina and iMaster == iMongolia:
			utils.setReborn(iMongolia, True)
		
		dc.onVassalState(iVassal)
Пример #29
0
 def setUp(self):
     self.setup = Stability.SetupDeviceConnections()
     self.a = self.setup.initializeTestDevice()
     self.id = self.setup.device_id
     self.error = ''
     self.timeout = 1800
     os.system('adb -s %s logcat -c' % self.id)
Пример #30
0
 def setUp(self):
     self.setup = Stability.SetupDeviceConnections()
     self.a = self.setup.initializeTestDevice()
     self.id = self.setup.device_id
     self.error = ''
     self.source = {'Tuner': 170, 'VGA': 4401, 'CVBS': 4402, 'HDMI': 4435}
     self.a.input.back(3)
Пример #31
0
 def setUp(self):
     self.setup = Stability.SetupDeviceConnections()
     self.a = self.setup.initializeTestDevice()
     self.id = self.setup.device_id
     self.a.input.back(3)
     self.error = ''
     self.source = {170: 'Tuner', 4401: 'VGA', 4402: 'CVBS', 269: 'HDMI'}
Пример #32
0
    def testChangeOneTo4k(self):
        """直播台1切换到4K频道的时间|"""
        try:
            self.navigateToLvie()
            time.sleep(15)
            self.a.device.sh("input keyevent 8")
            time.sleep(30)
            #press 30 channel
            self.a.device.sh("input keyevent 10")
            self.a.device.sh("input keyevent 7")
            time.sleep(30)
            log_dir = os.path.join(android.log.report_directory(), android.log.logs_directory(), 'logcat_main.%s.1.txt' % self.id)
            """
            log_dir = './liujian/report.20140901_144253/logs/00001/logcat_main.10.58.48.104:5555.1.txt'
            """
            cloud = Stability.cloudStatus(log_dir)
            result = cloud.playerProgress()
            during = -1
            for i in result: 
                if 'Time' in i:
                    during = i.split(':')[1].strip()
            self.a.log.debug("", "raise self.failureException('switch 1 to 4k time: %s ms')" %during)
            if int(during) > 20000:
                self.error = "switch live 1 to 4k time is more than 20000ms"
                raise Exception

        except Exception, e:
            self.a.log.debug("", "\n testChangeLiveChannel")
            self.fail("Error happened: %s %s" % (self.error, e))
Пример #33
0
    def testChangeOneTo4k(self):
        """直播台1切换到4K频道的时间|"""
        try:
            self.navigateToLvie()
            time.sleep(15)
            self.a.device.sh("input keyevent 8")
            time.sleep(30)
            #press 30 channel
            self.a.device.sh("input keyevent 10")
            self.a.device.sh("input keyevent 7")
            time.sleep(30)
            log_dir = os.path.join(android.log.report_directory(), android.log.logs_directory(), 'logcat_main.%s.1.txt' % self.id)
            """
            log_dir = './liujian/report.20140901_144253/logs/00001/logcat_main.10.58.48.104:5555.1.txt'
            """
            cloud = Stability.cloudStatus(log_dir)
            result = cloud.playerProgress()
            during = -1
            for i in result: 
                if 'Time' in i:
                    during = i.split(':')[1].strip()
            self.a.log.debug("", "raise self.failureException('switch 1 to 4k time: %s ms')" %during)
            print "SHOW:",during
            if int(during) > 20000:
                self.error = "switch live 1 to 4k time is more than 20000ms"
                raise Exception

        except Exception, e:
            self.a.log.debug("", "\n testChangeLiveChannel")
            self.fail("Error happened: %s %s" % (self.error, e))
Пример #34
0
    def setUp(self):
        try:
            self.setup = Stability.SetupDeviceConnections()
            self.a = self.setup.initializeTestDevice()
            self.id = self.setup.device_id

        except Exception, e:
            self.a.log.debug("", "\n Set up")
Пример #35
0
    def handler(self, log_dir):
        cloud = Stability.cloudStatus(log_dir)
        result = cloud.livePlayProgress()
        #self.a.log.debug("", "raise self.failureException('utp version: %s')" %(cloud.getUtpVersion()))
        output = [
        "频道切换的总时长",\
        "用户播放操作    应用获取播放地址",\
        "应用获取播放地址    播放器获取播放地址",\
        "播放器获取播放地址    播放器请求解析URL(M3U8)",\
        "播放器请求解析URL(M3U8)    UTP接收播放请求",\
        "UTP接收播放请求    UTP请求调度获取下载地址",\
        "UTP请求调度获取下载地址    UTP开始下载第一个m3u8",\
        "UTP开始下载第一个m3u8    UTP模块解析m3u8分配下载任务",\
        "UTP模块解析m3u8分配下载任务    UTP开始下载第一个分片",\
        "UTP开始下载第一个分片    UTP下载完成第一个分片",\
        "播放器请求解析URL(M3U8)    播放器获取并解析URL(M3U8)完成",\
        "播放器获取并解析URL(M3U8)完成    播放器请求第一个ts分段",\
        "播放器请求第一个ts分段    开始V/A初始化",\
        "开始V/A初始化    完成V/A初始化",\
        "完成V/A初始化    播放器Prepared",\
        "播放器Prepared    播放器start",\
        "播放器start    第一帧显示时间",\
        "utp获取镜像IP",\
        "UTP第一个分片(下载时长ms, 数据量Byte, 下载速度Bps)",\
        ]
        if len(result) != len(output):
            self.error = "cannot parser log"
            raise Exception
        during = re.search("\((\d+), '(.*)'\)", result[0]).group(2)
        print "SHOW:",during
        isError = ''
#during = int(result[0].split(":")[1].strip())
        for i in range(len(output)):
            flag, gap = re.search("\((\d+), '(.*)'\)", result[i]).groups()
            forp = ''
            if int(flag) == 0:
                forp = gap + ", 找不到 "+ output[i]
                isError +="cannot find  "+ result[i] + '; '
            elif int(flag) == 1:
               forp = gap + ", 找不到" +  output[i].split('    ')[1]
               isError +="cannot find  "+ result[i].split(':')[0].split('->')[1] + '; '
            elif int(flag) == 2:
                forp = gap + ", 找不到" +  output[i].split('    ')[0]
                isError +="cannot find  "+ result[i].split(':')[0].split('->')[0] + '; '
            else:
                if re.compile('^\d+$').match(gap):
                    forp = int(gap)
                else:
                    forp = gap

            print output[i],":", forp 
            self.a.log.debug("", "raise self.failureException('%s:%s')" %(output[i],forp)) 
        if int(during) > 1800:
            self.error = "switch time %s ms more then 1800 ms" %during
            raise Exception
        elif isError:
            self.error = isError
            raise Exception
Пример #36
0
    def handler(self, log_dir):
        cloud = Stability.cloudStatus(log_dir)
        result = cloud.livePlayProgress()
        self.a.log.debug("", "raise self.failureException('utp version: %s')" %(cloud.getUtpVersion()))
        output = [
        "频道切换的总时长",\
        "用户播放操作    应用获取播放地址",\
        "应用获取播放地址    播放器获取播放地址",\
        "播放器获取播放地址    播放器请求解析URL(M3U8)",\
        "播放器请求解析URL(M3U8)    UTP接收播放请求",\
        "UTP接收播放请求    UTP请求调度获取下载地址",\
        "UTP请求调度获取下载地址    UTP开始下载第一个m3u8",\
        "UTP开始下载第一个m3u8    UTP模块解析m3u8分配下载任务",\
        "UTP模块解析m3u8分配下载任务    UTP开始下载第一个分片",\
        "UTP开始下载第一个分片    UTP下载完成第一个分片",\
        "播放器请求解析URL(M3U8)    播放器获取并解析URL(M3U8)完成",\
        "播放器获取并解析URL(M3U8)完成    播放器请求第一个ts分段",\
        "播放器请求第一个ts分段    开始V/A初始化",\
        "开始V/A初始化    完成V/A初始化",\
        "完成V/A初始化    播放器Prepared",\
        "播放器Prepared    播放器start",\
        "播放器start    第一帧显示时间",\
        "utp获取镜像IP",\
        "UTP第一个分片(下载时长ms, 数据量Byte, 下载速度Bps)",\
        ]
        if len(result) != len(output):
            self.error = "cannot parser log"
            raise Exception
        during = re.search("\((\d+), '(.*)'\)", result[0]).group(2)
        print during
        isError = ''
#during = int(result[0].split(":")[1].strip())
        for i in range(len(output)):
            flag, gap = re.search("\((\d+), '(.*)'\)", result[i]).groups()
            forp = ''
            if int(flag) == 0:
                forp = gap + ", 找不到 "+ output[i]
                isError +="cannot find  "+ result[i] + '; '
            elif int(flag) == 1:
               forp = gap + ", 找不到" +  output[i].split('    ')[1]
               isError +="cannot find  "+ result[i].split(':')[0].split('->')[1] + '; '
            elif int(flag) == 2:
                forp = gap + ", 找不到" +  output[i].split('    ')[0]
                isError +="cannot find  "+ result[i].split(':')[0].split('->')[0] + '; '
            else:
                if re.compile('^\d+$').match(gap):
                    forp = int(gap)
                else:
                    forp = gap

            print output[i],":", forp 
            self.a.log.debug("", "raise self.failureException('%s:%s')" %(output[i],forp)) 
        if int(during) > 1800:
            self.error = "switch time %s ms more then 1800 ms" %during
            raise Exception
        elif isError:
            self.error = isError
            raise Exception
Пример #37
0
 def setUp(self):
     self.setup = Stability.SetupDeviceConnections()
     self.a = self.setup.initializeTestDevice()
     self.id = self.setup.device_id
     self.filePath = "../testcases/setup"
     self.package = "com.lemi.controller.lemigameassistance"
     self.apk = "LemiGameAssistance_v_1.0.1.21_release.apk"
     self.error = ''
     self.a.input.back(3)
Пример #38
0
 def setUp(self):
     try :
         self.error = ''
         self.setup = Stability.SetupDeviceConnections()
         self.a = self.setup.initializeTestDevice()
         self.stabdl = Stability.StabDL(self.a)
         self.id = self.setup.device_id  
         self.stressAppPath = "../testcases/setup/stressapptest" 
         self.usbPath = ""
         #self.a.input.back(3)
         #print "serial connection"
         #self.ser = ''
         #self.ser = serial.Serial(port='/dev/ttyUSB1', baudrate=115200, timeout=0)
         #if  not self.ser.isOpen():
             #self.error = 'cannot open %s' % self.ser.port
             #raise Exception
     except :
         #self.a.log.debug("", "\n Set up")
         self.fail("Error happened: %s" %self.error)
Пример #39
0
        def onBeginGameTurn(self, argsList):
                iGameTurn = argsList[0]
                
                self.rnf.checkTurn(iGameTurn)
                self.barb.checkTurn(iGameTurn)
                self.rel.checkTurn(iGameTurn)
                self.res.checkTurn(iGameTurn)
                self.up.checkTurn(iGameTurn)
                self.aiw.checkTurn(iGameTurn)
                self.pla.checkTurn(iGameTurn)
                self.com.checkTurn(iGameTurn)
		self.corp.checkTurn(iGameTurn)
		
		sta.checkTurn(iGameTurn)
		cong.checkTurn(iGameTurn)
		
		if iGameTurn % 10 == 0:
                        self.dc.checkTurn(iGameTurn)
			
                return 0
Пример #40
0
    def setUp(self):
        try:
            #self.playtime = 1*60*60 # play 'playtime' seconds for each video
            self.playtime = 2
            self.temPlaytime = 2
            self.channel_num = 54
            self.temPlaytime = 2
            self.outloop = 1
            self.loop_channel_num = 17
            self.setup = Stability.SetupDeviceConnections()
            self.a = self.setup.initializeTestDevice()
            self.error = ''
            self.stabdl = Stability.StabDL(self.a)
            self.id = self.setup.device_id
            self.a.input.back(3)
            #self.pullDataLogs()
            #self.isPlaying()

        except Exception, e:
            self.a.log.debug("", "\n Set up")
Пример #41
0
    def __init__(self, eventManager):

        self.lastRegionID = -1
        self.bStabilityOverlay = False
        self.EventKeyDown = 6
        self.EventKeyUp = 7
        self.eventManager = eventManager

        # initialize base class
        eventManager.addEventHandler("GameStart", self.onGameStart)
        eventManager.addEventHandler("OnLoad", self.onLoadGame)
        eventManager.addEventHandler("OnPreSave", self.onPreSave)
        eventManager.addEventHandler("BeginGameTurn", self.onBeginGameTurn)
        eventManager.addEventHandler("EndGameTurn", self.onEndGameTurn)
        eventManager.addEventHandler("BeginPlayerTurn", self.onBeginPlayerTurn)
        eventManager.addEventHandler("EndPlayerTurn", self.onEndPlayerTurn)
        eventManager.addEventHandler("firstContact", self.onFirstContact)
        eventManager.addEventHandler("cityAcquired", self.onCityAcquired)
        eventManager.addEventHandler("cityAcquiredAndKept",
                                     self.onCityAcquiredAndKept)
        eventManager.addEventHandler("cityRazed", self.onCityRazed)
        eventManager.addEventHandler("cityBuilt", self.onCityBuilt)
        eventManager.addEventHandler("combatResult", self.onCombatResult)
        eventManager.addEventHandler("buildingBuilt", self.onBuildingBuilt)
        eventManager.addEventHandler("projectBuilt", self.onProjectBuilt)
        eventManager.addEventHandler("techAcquired", self.onTechAcquired)
        eventManager.addEventHandler("religionSpread", self.onReligionSpread)
        eventManager.addEventHandler("unitSpreadReligionAttempt",
                                     self.onUnitSpreadReligionAttempt)
        eventManager.addEventHandler("playerChangeStateReligion",
                                     self.onPlayerChangeStateReligion)
        eventManager.addEventHandler("vassalState", self.onVassalState)
        eventManager.addEventHandler("changeWar", self.onChangeWar)
        eventManager.addEventHandler("unitBuilt", self.onUnitBuilt)
        eventManager.addEventHandler("revolution", self.onRevolution)
        eventManager.addEventHandler("setPlayerAlive", self.onSetPlayerAlive)
        eventManager.addEventHandler("greatPersonBorn", self.onGreatPersonBorn)
        eventManager.addEventHandler("kbdEvent", self.onKbdEvent)

        self.rnf = RiseAndFall.RiseAndFall()
        self.cnm = CityNameManager.CityNameManager()
        self.res = Resources.Resources()
        self.rel = Religions.Religions()
        self.barb = Barbs.Barbs()
        self.aiw = AIWars.AIWars()
        self.vic = Victory.Victory()
        self.sta = Stability.Stability()
        self.pla = Plague.Plague()
        self.com = Communications.Communications()
        self.dc = DynamicCivs.DynamicCivs()
        self.corp = Companies.Companies()
        self.tit = Titles.Titles()
Пример #42
0
    def setUp(self):
        try:
            self.error = ""
            self.setup = Stability.SetupDeviceConnections()
            self.a = self.setup.initializeTestDevice()
            #self.path = "/mnt/usb/sda1/smoke_MultiMedia"
            self.path = "/mnt/usb/sda1/three"
            self.meidaType = None
            self.results = {}
            self.a.input.back(3)

        except Exception, e:
            self.a.log.debug("", "\n Set up")
Пример #43
0
 def setUp(self):
     self.setup = Stability.SetupDeviceConnections()
     self.a = self.setup.initializeTestDevice()
     self.id = self.setup.device_id
     self.a.input.back(3)
     self.error = ''
     self.source = {170: 'Tuner', 4401: 'VGA', 4402: 'CVBS', 269: 'HDMI'}
     for m in self.a.ui.windows():
         if "Application Error" in str(m):
             print m
             self.a.input.right()
             time.sleep(1)
             self.a.input.center()
             time.sleep(2)
	def onBeginGameTurn(self, argsList):
		iGameTurn = argsList[0]
		
		self.rnf.checkTurn(iGameTurn)
		self.barb.checkTurn(iGameTurn)
		self.rel.checkTurn(iGameTurn)
		self.res.checkTurn(iGameTurn)
		self.up.checkTurn(iGameTurn)
		self.aiw.checkTurn(iGameTurn)
		self.pla.checkTurn(iGameTurn)
		self.com.checkTurn(iGameTurn)
		self.corp.checkTurn(iGameTurn)
		
		sta.checkTurn(iGameTurn)
		cong.checkTurn(iGameTurn)
		
		if iGameTurn % 10 == 0:
			dc.checkTurn(iGameTurn)
			
		if utils.getScenario() == i3000BC and iGameTurn == getTurnForYear(600):
			for iPlayer in range(iVikings):
				Modifiers.adjustInflationModifier(iPlayer)
			
		return 0
	def colorCivicTexts(self, iHoverCivic, bHoverOn):
		screen = self.getScreen()
		player = gc.getPlayer(self.iActivePlayer)
		iHoverCategory = gc.getCivicInfo(iHoverCivic).getCivicOptionType()
		
		for iCivic in range(iNumCivics):
			iCategory = gc.getCivicInfo(iCivic).getCivicOptionType()
			if iCategory == iHoverCategory:
				continue
			iX, iY = self.getPosition(iCategory)
			xPos = iX + self.W_CIVIC_CATEGORY - self.BUTTON_SMALL - self.MARGIN
			iLine = iY + self.MARGIN + (iCivic % 6) * self.LINE
			
			sName = "CivicName" + str(iCivic)
			sText = gc.getCivicInfo(iCivic).getDescription()
			iCombovalue = Stability.getCivicCombinationStability(self.iActivePlayer, iHoverCivic, iCivic)
			bGood = iCombovalue > 0
			bBad = iCombovalue < 0
			
			if bHoverOn:
				if bGood:
					if player.canDoCivics(iCivic):
						sText = CyTranslator().changeTextColor(sText, gc.getInfoTypeForString('COLOR_GREEN'))
					else:
						sText = CyTranslator().changeTextColor(sText, gc.getInfoTypeForString('COLOR_PLAYER_MIDDLE_GREEN'))
				elif bBad:
					if player.canDoCivics(iCivic):
						sText = CyTranslator().changeTextColor(sText, gc.getInfoTypeForString('COLOR_RED'))
					else:
						sText = CyTranslator().changeTextColor(sText, gc.getInfoTypeForString('COLOR_PLAYER_CANADA_RED'))
				else:
					if player.canDoCivics(iCivic):
						sText = CyTranslator().changeTextColor(sText, gc.getInfoTypeForString('WHITE'))
					else:
						sText = CyTranslator().changeTextColor(sText, gc.getInfoTypeForString('COLOR_LIGHT_GREY'))
			else:
				if self.SelectedCivics[iCategory] == iCivic:
					screen.show("CivicButton" + str(iCivic))
					sText = CyTranslator().changeTextColor(sText, gc.getInfoTypeForString('COLOR_YELLOW'))
				elif player.canDoCivics(iCivic):
					screen.show("CivicButton" + str(iCivic))
					sText = CyTranslator().changeTextColor(sText, gc.getInfoTypeForString('COLOR_WHITE'))
				else:
					screen.hide("CivicButton" + str(iCivic))
					sText = CyTranslator().changeTextColor(sText, gc.getInfoTypeForString('COLOR_LIGHT_GREY'))
			screen.setText(sName, "", sText, CvUtil.FONT_RIGHT_JUSTIFY, xPos - self.MARGIN, iLine, 0, FontTypes.SMALL_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1)
Пример #46
0
    def testVodNoExinfSeek(self):
        """M3U8无#EXTINF资源|播放正常不能seek"""
        try:
            url = 'http://10.154.250.32:8080/live/cloudvideo_robustness/protocol/vod/no_extinf.m3u8'
            cmd = 'am start -a android.intent.action.VIEW -d \'%s\' -n com.stv.videoplayer/.MainActivity' %url
            self.a.device.sh(cmd)
            time.sleep(30)
            if not self.isNoError():
                raise Exception
            self.a.input.right(10)
            time.sleep(10)
            log_dir = os.path.join(android.log.report_directory(), android.log.logs_directory(), 'logcat_main.%s.1.txt' % self.id)
            cloud = Stability.cloudStatus(log_dir)
            seekstatus = cloud.checkVodHlsSeekStatus()
            if seekstatus:
                self.error = 'seek successfully'
                raise Exception

        except Exception,e:
            self.a.log.debug("", "\n testVodHls480p")
            self.fail("Error happened: %s %s" % (self.error, e))
Пример #47
0
 def getMemInfo(self):
     print android.log.report_directory()
     Stability.takeMeminfo(self.id, android.log.report_directory()).meminfo()
Пример #48
0
 def getMemInfo(self):
     while True:
         print android.log.report_directory()
         Stability.takeMeminfo(self.id, android.log.report_directory()).meminfo()
         time.sleep(600)
Пример #49
0
    def _testChangeLiveChannel(self):
        """直播台1切到6的详细时间|"""
        try:
            times = 5
            self.navigateToLvie()
            self.a.device.sh("input keyevent 8")
            time.sleep(20)
            time.sleep(5)
            for i in range(times):
                self.a.device.sh("input keyevent 166")
                time.sleep(30)
            log_dir = os.path.join(android.log.report_directory(), android.log.logs_directory(), 'logcat_main.%s.1.txt' % self.id)
            cloud = Stability.cloudStatus(log_dir)
            result = cloud.playerProgress()
            user_press = r'.*Launcher.*:\ T2LauncherActivity\ --\ onKeyDown:\ KeyEvent\ \{\ action=ACTION_DOWN,\ keyCode=KEYCODE_CHANNEL_(UP|DOWN).*'
            fp = open(log_dir,"r+")
            fpp = open(os.path.join(android.log.report_directory(), android.log.logs_directory(),'logcat_main_liveswitch.txt'), "a+")
            first = 0
            logcat = fp.readlines()
            fp.close()
            for line in logcat:
                if re.compile(user_press).match(line):
                    first = logcat.index(line)
                    break
            fpp.writelines(logcat[first:])
            fpp.close()
            """
            log_dir = '../Log_Cloud_Daily/liujian/report.20140805_061127/logs/00002/logcat_main.10.58.48.104:5555.1.txt'
            cloud = Stability.cloudStatus(log_dir)
            result = cloud.playerProgress()
            """

            good = True
            total = []
            for i in result:
                if str(i).startswith("Time"):
                    print i
                    total.append(i)
            self.a.log.debug("", "raise self.failureException('直播频道1-6的切换时间为(ms): %s ')" %str(total) ) 
            i = 0
            while i < len(total):
                if int(total[i].split(":")[1]) > 2000:
                    good = False
                    self.error += "change %s to %s exceed time; "%(i+1,i+2)  
                    print "change %s to %s exceed time:"%(i+1,i+2),total[i]
                    self.a.log.debug("", "raise self.failureException('频道%s-%s超时: %s ms')" %(i+1, i+2,total[i]))
                    print 
                    if 'ERROR' not in str(result[result.index(total[i])+1]):
                        for j in range(1, 18):
                            print "details:", result[result.index(total[i])+j]
                            self.a.log.debug("", "raise self.failureException('详细时间为: %s ms')" %result[result.index(total[i])+j]) 
                    else:
                        print "details: ERROR"
                        self.a.log.debug("", "raise self.failureException('详细时间流程不正确 ')" ) 

                        
                i += 1 
            summ = 0
            for i in total:
                summ += int(i.split(":")[1])
            averg = summ/len(total)
            print "average time: %s" %averg
            self.a.log.debug("", "raise self.failureException('平均时间为: %s ms')" %averg) 
            if not good:
                raise Exception

                    
        except Exception, e:
            self.a.log.debug("", "\n testChangeLiveChannel")
            self.fail("Error happened: %s %s" % (self.error, e))  
Пример #50
0
 def testInstallApks(self):
     """安装外部应用|安装多个外部应用"""
     try:
         components = ['am start -a android.intent.action.MAIN -n org.xbmc.xbmc/.Splash',
             'am start -a android.intent.action.MAIN  -n org.xbmc.xbmc/.Main',
             'am start -a android.intent.action.MAIN  -n cn.vszone.tv.gamebox/cn.vszone.gamebox.ActivityMain',
             'am start -a android.intent.action.MAIN  -n com.broadin.nanxingbaojian/.LoadActivity',
             'am start -a android.intent.action.MAIN  -n com.tv.clean/.HomeAct',
             'am start -a android.intent.action.MAIN  -n cn.cheerz.ils/cn.cheerz.iptv.MainActivity',
             'am start -a android.intent.action.MAIN  -n com.tencent.mm/.ui.LauncherUI',
             'am start -a android.intent.action.MAIN  -n com.audiocn.kalaok.tv/.activity.MainActivity',
             'am start -a android.intent.action.MAIN  -n com.carrot.iceworld/.CarrotFantasy',
             'am start -a android.intent.action.MAIN  -n cn.kuwo.sing.tv/.view.activity.EntryActivity',
             'am start -a android.intent.action.MAIN  -n com.meishi_tv/.StartActivity',
             'am start -a android.intent.action.MAIN  -n com.moretv.mv/.StartActivity',
             'am start -a android.intent.action.MAIN  -n com.flappybird/org.cocos2dx.cpp.AppActivity',
             'am start -a android.intent.action.MAIN  -n android.videoapp225/android.videoapp.VideoApp',
             'am start -a android.intent.action.MAIN  -n com.broadin.nvxingjiankang/.LoadActivity',
             'am start -a android.intent.action.MAIN  -n com.kugou.playerHD/.activity.SplashActivity',
             'am start -a android.intent.action.MAIN  -n com.example.loseweight/.ShowActivity',
             'am start -a android.intent.action.MAIN  -n com.qiyi.video/.ui.WelcomeActivity',
             'am start -a android.intent.action.MAIN  -n com.netease.vopen.tablet/.activity.WelcomeActivity',
             'am start -a android.intent.action.MAIN  -n com.yodo1tier.ski.tv/com.yodo1.sdk.game.Yodo14GameSplashActivity',
             'am start -a android.intent.action.MAIN  -n android.videoapp195/android.videoapp.VideoApp',
             'am start -a android.intent.action.MAIN  -n com.lovesport.collection/.ShowActivity',
             'am start -a android.intent.action.MAIN  -n com.tmsbg.homeshare.box/.SplashActivity',
             'am start -a android.intent.action.MAIN  -n com.halfbrick.fruitninja/.FruitNinjaActivity',
             'am start -a android.intent.action.MAIN  -n com.trans.runcool/.GameLauncher',
             'am start -a android.intent.action.MAIN  -n com.bf.sgs.hdexp/.MainActivity',
             'am start -a android.intent.action.MAIN  -n com.trans.skee/.GameLauncher']
         path = '../testcases/setup/apks'
         existapps = self.a.device.sh('ls /data/app/')
         apks = commands.getoutput("ls %s/*.apk" %path).split('\n')
         Stability.takeMeminfo(self.id, android.log.report_directory()).meminfo()
         outp = ""
         for a in apks:
             cmd = 'adb -s %s install -r %s' %(self.id, a)
             outp = commands.getoutput(cmd)
             if "Success" not in outp:
                 self.error = outp
                 print outp
         for i in components:
             Stability.takeMeminfo(self.id, android.log.report_directory()).meminfo()
             self.a.device.sh(i)
             time.sleep(5)
             self.a.input.home()
             time.sleep(3)
         
         uninstall = 0
         for i in self.a.device.sh("ls /data/app/").split('\r\n'):
             if i:
                 pkg = i.split('-')[0]
                 cmd = 'pm uninstall %s' %pkg
                 outp = self.a.device.sh(cmd)
                 if 'Success' not in outp:
                     print '%s %s' %(cmd,outp)
                     uninstall += 1
         if uninstall != 0:
             self.error += "uninstall failed"
             raise Exception
                 
     except Exception, e :
         self.a.log.debug("", "\n testInstallApks")
         self.fail("Error happened: %s %s" % ( self.error, e))
        def onBuildingBuilt(self, argsList):
                city, iBuildingType = argsList
                iOwner = city.getOwner()
                vic.onBuildingBuilt(iOwner, iBuildingType)
                if iOwner < con.iNumPlayers:
                        self.com.onBuildingBuilt(iOwner, iBuildingType, city)
		
		if isWorldWonderClass(gc.getBuildingInfo(iBuildingType).getBuildingClassType()):
			sta.onWonderBuilt(iOwner, iBuildingType)
			
		if iBuildingType == con.iPalace:
			sta.onPalaceMoved(iOwner)
			
			if city.isHasRealBuilding(con.iSummerPalace): city.setHasRealBuilding(con.iSummerPalace, False)

		# Leoreth: Apostolic Palace moves holy city
		if iBuildingType == con.iApostolicPalace:
			self.rel.foundOrthodoxy(iOwner)
			
			# Leoreth: build shrine in 3000 BC scenario during HRE autoplay to provide a challenge
			if utils.getScenario() == con.i3000BC and utils.getHumanID() == con.iHolyRome and gc.getGame().getGameTurnYear() < 840:
				gc.getGame().getHolyCity().setHasRealBuilding(con.iChristianShrine, True)
			
			gc.getGame().setHolyCity(con.iChristianity, city, False)

		# Leoreth: update trade routes when Porcelain Tower is built to start its effect
		if iBuildingType == con.iPorcelainTower:
			gc.getPlayer(iOwner).updateTradeRoutes()

		# Leoreth/Voyhkah: Empire State Building
		if iBuildingType == con.iEmpireState:
			iPop = city.getPopulation()
			city.setBuildingCommerceChange(gc.getInfoTypeForString("BUILDINGCLASS_EMPIRE_STATE"), 0, iPop)
			
		# Leoreth: Machu Picchu
		if iBuildingType == con.iMachuPicchu:
			iNumPeaks = 0
			for i in range(21):
				if city.getCityIndexPlot(i).isPeak():
					iNumPeaks += 1
			city.setBuildingCommerceChange(gc.getInfoTypeForString("BUILDINGCLASS_MACHU_PICCHU"), 0, iNumPeaks * 2)
			
		# Leoreth: Great Wall
		if iBuildingType == con.iGreatWall:
			for iPlot in range(gc.getMap().numPlots()):
				plot = gc.getMap().plotByIndex(iPlot)
				if plot.getOwner() == iOwner and not plot.isWater():
					plot.setWithinGreatWall(True)
					
		# Leoreth: La Mezquita
		if iBuildingType == con.iMezquita:
			lGPList = [0, 0, 0, 0, 0, 0, 0]
			for city in utils.getCityList(iOwner):
				for i in range(7):
					iSpecialistUnit = utils.getUniqueUnit(iOwner, con.iProphet + i)
					lGPList[i] += city.getGreatPeopleUnitProgress(iSpecialistUnit)
			iGPType = utils.getUniqueUnit(iOwner, con.iProphet + utils.getHighestIndex(lGPList))
			utils.makeUnit(iGPType, iOwner, (city.getX(), city.getY()), 1)
			CyInterface().addMessage(iOwner, False, con.iDuration, CyTranslator().getText("TXT_KEY_MEZQUITA_FREE_GP", (gc.getUnitInfo(iGPType).getText(), city.getName())), "", InterfaceMessageTypes.MESSAGE_TYPE_MINOR_EVENT, gc.getUnitInfo(iGPType).getButton(), ColorTypes(con.iWhite), city.getX(), city.getY(), True, True)

		# Leoreth: found Buddhism when a Hindu temple is built
		if iBuildingType == con.iHinduTemple:
			self.rel.foundBuddhism(city)
			
		# Leoreth: in case human Phoenicia moves palace to Carthage
		if iBuildingType == con.iPalace:
			if iOwner == con.iCarthage and city.getX() == 58 and city.getY() == 39:
				if not utils.isReborn(iOwner): gc.getPlayer(con.iCarthage).setReborn(True)
Пример #52
0
 def playAndHandler(self, url, type):
     self.stabdl.open_intent("Filesystem")
     time.sleep(5)
     cmd = "am start -a android.intent.action.VIEW -d \'%s\' -n com.letv.videoplayer/.MainActivity" %url
     self.a.device.sh(cmd)
     time.sleep(10)
     self.operation()
     self.a.input.back()
     time.sleep(20)
     print "start to handle logcat"
     log_dir = os.path.join(android.log.report_directory(), android.log.logs_directory(), 'logcat_main.%s.1.txt' % self.id)
     cutlog = os.path.join(android.log.report_directory(), android.log.logs_directory(), 'cutplaylogcat.txt')
     
     setdatasource = r'.*MediaPlayerService:\ \[\d+\]\ setDataSource\(%s\)\s*' %url
     first_frame = r'.*MediaPlayerService.*:\ \[(\d+)\]\ notify\ \(\w+,\ 200,\ 3,\ 0\)'
     
     # find start to play
     fo = open(log_dir, "r+")
     fld = fo.readlines();
     fo.close()
     setdataindex = len(fld)
     firstframe = len(fld)
     for i in fld:
         if re.compile(setdatasource).match(i):
             setdataindex = fld.index(i)
             for j in fld[setdataindex:]:
                 if re.compile(first_frame).match(j):
                     firstframe = fld.index(j)
                     break
             break
     
     fw = open(cutlog,"a+")
     fw.writelines(fld[setdataindex:])
     fw.close()
     
     cloud = Stability.cloudStatus(cutlog)
     playerror = cloud.playerError()
     duration = cloud.getPlayDuration()
     resolution = cloud.getResolution()
     playstatus = cloud.checkVodPlayStatus()
     seekstatus = ""
     if type == "hls":
         seekstatus = cloud.checkVodHlsSeekStatus()
     elif type =="http":
         seekstatus = cloud.checkVodHttpSeekStatus()
     pausestatus = cloud.checkVodPauseStatus()
     stopstatus = cloud.checkVodStopStatus()
     self.a.log.debug("", "raise self.failureException('播放视频: %s')" %url)
     self.a.log.debug("", "raise self.failureException('Mediaplayer Error次数: %s')" %playerror)
     self.a.log.debug("", "raise self.failureException('Duration: %s')" %duration)
     self.a.log.debug("", "raise self.failureException('Resolution: %s')" %resolution)
     self.a.log.debug("", "raise self.failureException('seek 是否成功: %s')" %seekstatus)
     self.a.log.debug("", "raise self.failureException('pause是否成功: %s')" %pausestatus)
     self.a.log.debug("", "raise self.failureException('exit是否成功: %s')" %stopstatus)
     fail = False
     if playerror !=0:
         self.error += "player error: %s; " %playerror
         fail = True
     elif not seekstatus: 
         fail = True
         self.error += "seek failed; "
     elif not pausestatus: 
         fail = True
         self.error += "pause failed; "
     elif not stopstatus:
         fail = True
         self.error = "stop failed; "
     if fail: raise Exception
	def onCityAcquired(self, argsList):
		iOwner, iPlayer, city, bConquest, bTrade = argsList
		tCity = (city.getX(), city.getY())
		
		cnm.onCityAcquired(city, iPlayer)
		
		if bConquest:
			sta.onCityAcquired(city, iOwner, iPlayer)
			
		if iPlayer == iArabia:
			self.up.arabianUP(city)
		# elif iPlayer == iMughals and utils.getHumanID() != iMughals:
			# self.up.mughalUP(city)
		# elif iPlayer == iSeljuks:
			# self.up.seljukUP(city)
			
		if iPlayer == iMongolia and bConquest and utils.getHumanID() != iPlayer:
			self.up.mongolUP(city)
			
		if iPlayer < iNumMajorPlayers:
			utils.spreadMajorCulture(iPlayer, tCity)
		
		# relocate capitals
		if utils.getHumanID() != iPlayer:
			if iPlayer == iTurkey and tCity == (68, 45):
				utils.moveCapital(iTurkey, tCity) # Kostantiniyye
			elif iPlayer == iMongolia and tCity == (102, 47):
				utils.moveCapital(iMongolia, tCity) # Khanbaliq
				
		# remove slaves if unable to practice slavery
		if gc.getPlayer(iPlayer).getCivics(1) == iCivicEgalitarianism:
			utils.removeSlaves(city)
		else:
			utils.freeSlaves(city, iPlayer)
					
							
		# kill Seljuks
		#if iOwner == iSeljuks and gc.getPlayer(iSeljuks).isAlive() and gc.getGame().getGameTurnYear() >= 1250:
		#	if city.isCapital() or gc.getPlayer(iSeljuks).getNumCities() <= 2:
		#		sta.completeCollapse(iSeljuks)
				#utils.killAndFragmentCiv(iSeljuks, iIndependent, iIndependent2, -1, False)
				
		# Leoreth: relocate capital for AI if reacquired:
		if utils.getHumanID() != iPlayer and iPlayer < iNumPlayers:
			if data.players[iPlayer].iResurrections == 0:
				if Areas.getCapital(iPlayer) == tCity:
					utils.relocateCapital(iPlayer, city)
			else:
				if Areas.getRespawnCapital(iPlayer) == tCity:
					utils.relocateCapital(iPlayer, city)
					
		# Leoreth: conquering Constantinople adds it to the Turkish core + Rumelia
		if iPlayer == iTurkey and tCity == (68, 45):
			utils.setReborn(iTurkey, True)
					
		# Leoreth: help Byzantium/Constantinople
		if iPlayer == iByzantium and tCity == Areas.getCapital(iByzantium) and gc.getGame().getGameTurn() <= getTurnForYear(330)+3:
			if city.getPopulation() < 5:
				city.setPopulation(5)
				
			city.setHasRealBuilding(iBarracks, True)
			city.setHasRealBuilding(iWalls, True)
			city.setHasRealBuilding(iLibrary, True)
			city.setHasRealBuilding(iMarket, True)
			city.setHasRealBuilding(iGranary, True)
			city.setHasRealBuilding(iHarbor, True)
			city.setHasRealBuilding(iForge, True)
			
			city.setName("Konstantinoupolis", False)
			
			city.setHasRealBuilding(iTemple + 4*gc.getPlayer(iPlayer).getStateReligion(), True)
			
		if bConquest:

			# Colombian UP: no resistance in conquered cities in Latin America
			if iPlayer == iMaya and utils.isReborn(iMaya):
				if utils.isPlotInArea(tCity, tSouthCentralAmericaTL, tSouthCentralAmericaBR):
					city.setOccupationTimer(0)
					
			# Statue of Zeus effect: no city resistance on conquest
			if gc.getPlayer(iPlayer).countNumBuildings(iStatueOfZeus) > 0 and not gc.getTeam(iPlayer).isHasTech(iTheology):
				city.setOccupationTimer(0)
				
			# Byzantium reduced to four cities: core shrinks to Constantinople
			if iOwner == iByzantium and gc.getPlayer(iByzantium).getNumCities <= 4:
				utils.setReborn(iByzantium, True)
					
		if bTrade:
			for i in range(iNumBuildings):
				iNationalWonder = i
				if isNationalWonderClass(gc.getBuildingInfo(iNationalWonder).getBuildingClassType()) and city.hasBuilding(iNationalWonder):
					city.setHasRealBuilding(iNationalWonder, False)
					
		self.pla.onCityAcquired(iOwner, iPlayer, city) # Plague
		self.com.onCityAcquired(city) # Communications
		self.corp.onCityAcquired(argsList) # Companies
		dc.onCityAcquired(iOwner, iPlayer) # DynamicCivs
		
		vic.onCityAcquired(iPlayer, iOwner, city, bConquest)
		
		return 0
	def onTechAcquired(self, argsList):
		iTech, iTeam, iPlayer, bAnnounce = argsList

		iHuman = utils.getHumanID()
		
		iEra = gc.getTechInfo(iTech).getEra()
		
		if utils.getScenario() == i600AD and gc.getGame().getGameTurn() == getTurnForYear(600): #late start condition
			return
			
		if utils.getScenario() == i1700AD and gc.getGame().getGameTurn() == getTurnForYear(1700):
			return
			
		sta.onTechAcquired(iPlayer, iTech)
		AIParameters.onTechAcquired(iPlayer, iTech)
		
		if gc.getGame().getGameTurn() > getTurnForYear(tBirth[iPlayer]):
			vic.onTechAcquired(iPlayer, iTech)
			cnm.onTechAcquired(argsList[2])

		if gc.getPlayer(iPlayer).isAlive() and gc.getGame().getGameTurn() > getTurnForYear(tBirth[iPlayer]) and iPlayer < iNumPlayers:
			self.rel.onTechAcquired(argsList[0], argsList[2])
			if (gc.getGame().getGameTurn() > getTurnForYear(1700)):
				self.aiw.forgetMemory(argsList[0], argsList[2])

		if iTech == iAstronomy:
			if iPlayer in [iSpain, iFrance, iEngland, iGermany, iVikings, iNetherlands, iPortugal]:
				data.players[iPlayer].iAstronomyTurn = gc.getGame().getGameTurn()
				
		elif iTech == iCompass:
			if iPlayer == iVikings:
				gc.getMap().plot(49, 62).setTerrainType(iCoast, True, True)
				
		elif iTech == iMedicine:
			self.pla.onTechAcquired(argsList[0], argsList[2])

		elif iTech == iRailroad:
			self.rnf.onRailroadDiscovered(argsList[2])
			
		if iTech in [iAstronomy, iGunpowder]:
			teamPlayer = gc.getTeam(iPlayer)
			if teamPlayer.isHasTech(iAstronomy) and teamPlayer.isHasTech(iGunpowder):
				self.rnf.earlyTradingCompany(iPlayer)
			
		if iTech in [iEconomics, iRifling]:
			teamPlayer = gc.getTeam(iPlayer)
			if teamPlayer.isHasTech(iEconomics) and teamPlayer.isHasTech(iRifling):
				self.rnf.lateTradingCompany(iPlayer)
	
		if utils.getHumanID() != iPlayer:
			if iPlayer == iJapan and iEra == iIndustrial:
				utils.moveCapital(iPlayer, (116, 47)) # Toukyou
			elif iPlayer == iItaly and iEra == iIndustrial:
				utils.moveCapital(iPlayer, (60, 44)) # Roma
			elif iPlayer == iVikings and iEra == iRenaissance:
				utils.moveCapital(iPlayer, (63, 59)) # Stockholm
			elif iPlayer == iHolyRome and iEra == iRenaissance:
				utils.moveCapital(iPlayer, (62, 49)) # Wien
				
		# Spain's core extends when reaching the Renaissance and there are no Moors in Iberia
		# at the same time, the Moorish core relocates to Africa
		if iPlayer == iSpain and iEra == iRenaissance and not utils.isReborn(iSpain):
			bNoMoors = True
			if gc.getPlayer(iMoors).isAlive():
				for city in utils.getCityList(iMoors):
					if city.plot().getRegionID() == rIberia:
						bNoMoors = False
			if bNoMoors:
				utils.setReborn(iSpain, True)
				utils.setReborn(iMoors, True)
				
		# Italy's core extends when reaching the Industrial era
		if iPlayer == iItaly and iEra == iIndustrial:
			utils.setReborn(iItaly, True)
			
		# Arabia's core moves to Iraq when Philosophy is discovered
		if iPlayer == iArabia and iTech == iPhilosophy:
			utils.setReborn(iArabia, True)
			
		# Japan's core extends when reaching the Industrial era
		if iPlayer == iJapan and iEra == iIndustrial:
			utils.setReborn(iJapan, True)
			
		# Germany's core shrinks when reaching the Modern era
		if iPlayer == iGermany and iEra == iModern:
			utils.setReborn(iGermany, True)
	def onGoldenAge(self, argsList):
		iPlayer = argsList[0]
		
		sta.onGoldenAge(iPlayer)
	def onEndPlayerTurn(self, argsList):
		iGameTurn, iPlayer = argsList
		
		self.rnf.endTurn(iPlayer)
		sta.endTurn(iPlayer)