def insertBuildingOrderQueue(self, pCity, iBuildingType): if (not SdToolKitAdvanced.sdObjectExists("CGEAutoInsertQueue", pCity)): return OrderQueue = SdToolKitAdvanced.sdObjectGetVal("CGEAutoInsertQueue", pCity, "InsertQueue") bDelete = False for (iBuilding, iTrigger, bTop) in OrderQueue.copy().values(): if (pCity.getNumBuilding(iBuilding) > 0): del OrderQueue[iBuilding] bDelete = True else: if (iBuildingType == iTrigger): pCity.pushOrder(OrderTypes.ORDER_CONSTRUCT, iBuilding, -1, False, False, not bTop, False) del OrderQueue[iBuilding] bDelete = True elif (pCity.getNumBuilding(iTrigger) > 0): del OrderQueue[iBuilding] bDelete = True if (bDelete): SdToolKitAdvanced.sdObjectSetVal("CGEAutoInsertQueue", pCity, "InsertQueue", OrderQueue)
def reminderLoad(self): if (SdToolKitAdvanced.sdObjectExists("CGEReminder", gc.getGame())): self.reminders = SdToolKitAdvanced.sdObjectGetVal( "CGEReminder", gc.getGame(), "Reminder") else: #SdToolKitAdvanced.sdObjectInit("CGEReminder", gc.getGame(), {"Reminder": []}) self.reminders = []
def onGameLoad(self, argsList): # Init things which require a game object or other game data to exist if (not SdToolKitAdvanced.sdObjectExists("AIAutoPlay", game)): SdToolKitAdvanced.sdObjectInit("AIAutoPlay", game, {}) SdToolKitAdvanced.sdObjectSetVal("AIAutoPlay", game, "bCanCancelAuto", True) elif (SdToolKitAdvanced.sdObjectGetVal("AIAutoPlay", game, "bCanCancelAuto") == None): SdToolKitAdvanced.sdObjectSetVal("AIAutoPlay", game, "bCanCancelAuto", True)
def onKbdEvent(self, argsList): 'keypress handler' eventType, key, mx, my, px, py = argsList if (eventType == RevDefs.EventKeyDown): theKey = int(key) if (theKey == int(InputTypes.KB_X) and self.customEM.bShift and self.customEM.bCtrl): # Get it? Shift ... control ... to the AI if (game.getAIAutoPlay() > 0): try: bCanCancelAuto = SdToolKitAdvanced.sdObjectGetVal( "AIAutoPlay", game, "bCanCancelAuto") if (bCanCancelAuto is None): bCanCancelAuto = True SdToolKitAdvanced.sdObjectSetVal( "AIAutoPlay", game, "bCanCancelAuto", True) except: print "Error! AIAutoPlay: Can't find bCanCancelAuto, assuming it would be True" bCanCancelAuto = True if (bCanCancelAuto): if (self.refortify): RevUtils.doRefortify(game.getActivePlayer()) game.setAIAutoPlay(0) self.checkPlayer() else: self.toAIChooser() if (theKey == int(InputTypes.KB_M) and self.customEM.bShift and self.customEM.bCtrl): # Toggle auto moves if (self.LOG_DEBUG): CyInterface().addImmediateMessage("Moving your units...", "") #self.playerID = gc.getActivePlayer().getID() game.setAIAutoPlay(1) if (theKey == int(InputTypes.KB_O) and self.customEM.bShift and self.customEM.bCtrl): RevUtils.doRefortify(game.getActivePlayer())
def insertBuildingOrderQueue(self, pCity, iBuildingType): if (not SdToolKitAdvanced.sdObjectExists("CGEAutoInsertQueue", pCity)): return OrderQueue = SdToolKitAdvanced.sdObjectGetVal("CGEAutoInsertQueue", pCity, "InsertQueue") bDelete = False for (iBuilding, iTrigger, bTop) in OrderQueue.copy().values(): if (pCity.getNumBuilding(iBuilding) > 0): del OrderQueue[iBuilding] bDelete = True else: if (iBuildingType == iTrigger): pCity.pushOrder(OrderTypes.ORDER_CONSTRUCT, iBuilding, -1, False, False, not bTop, False) del OrderQueue[iBuilding] bDelete = True elif (pCity.getNumBuilding(iTrigger) > 0): del OrderQueue[iBuilding] bDelete = True if (bDelete): SdToolKitAdvanced.sdObjectSetVal("CGEAutoInsertQueue", pCity, "InsertQueue", OrderQueue)
def revObjectGetVal(object, var): if (not revObjectExists(object)): if (isinstance(object, CvPythonExtensions.CyPlayer)): print "RevData: Initializing player object" initPlayer(object) elif (isinstance(object, CvPythonExtensions.CyCity)): print "RevData: Initializing city object" initCity(object) else: # SDTK will fail print "ERROR: Not recognized: ", object pass #TODO: remove this once all have been put into data structure defs if (isinstance(object, CvPythonExtensions.CyPlayer) and not var in RevDefs.playerData.keys()): print "WARNING: Unrecognized player variable ", var elif (isinstance(object, CvPythonExtensions.CyCity) and not var in RevDefs.cityData.keys()): print "WARNING: Unrecognized city variable ", var return SdToolKitAdvanced.sdObjectGetVal('Revolution', object, var)
def reminderLoad(self): if (SdToolKitAdvanced.sdObjectExists("CGEReminder", gc.getGame())): self.reminders = SdToolKitAdvanced.sdObjectGetVal("CGEReminder", gc.getGame(), "Reminder") else: #SdToolKitAdvanced.sdObjectInit("CGEReminder", gc.getGame(), {"Reminder": []}) self.reminders = []