def __cleanExplorableSystems(self, startSystemID): "cleanup of all explorable systems" universe = fo.getUniverse() systemIDs = universe.systemIDs empireID = fo.empireID() empire = fo.getEmpire() for systemID in systemIDs: system = universe.getSystem(systemID) if not system: continue #print "system with id: " + str(systemID) if (empire.hasExploredSystem(systemID)): self.addExplorableSystem(AIExplorableSystemType.EXPLORABLE_SYSTEM_EXPLORED, systemID) self.removeExplorableSystem(AIExplorableSystemType.EXPLORABLE_SYSTEM_UNEXPLORED, systemID) #print " has been explored" continue if (startSystemID == -1 or not universe.systemsConnected(systemID, startSystemID, empireID)): for explorableSystemsType in EnumsAI.getAIExplorableSystemTypes(): self.removeExplorableSystem(explorableSystemsType, systemID) #print " is not connected to system with id: " + str(startSystemID) continue explorableSystemsType = self.getExplorableSystem(systemID) if (explorableSystemsType == AIExplorableSystemType.EXPLORABLE_SYSTEM_VISIBLE): #print " is already explored system target" continue #print " is now an unexplored system" self.addExplorableSystem(AIExplorableSystemType.EXPLORABLE_SYSTEM_UNEXPLORED, systemID)
def addExplorableSystem(self, explorableSystemsType, systemID): "add explorable system ID with type" if not (explorableSystemsType in EnumsAI.getAIExplorableSystemTypes()): return systems = self.__explorableSystemByType[explorableSystemsType] if systemID in systems: return systems[systemID] = systemID
def getExplorableSystem(self, systemID): "determines system type from ID and returns it" for explorableSystemsType in EnumsAI.getAIExplorableSystemTypes(): systems = self.getExplorableSystems(explorableSystemsType) if systemID in systems: return explorableSystemsType # print "SystemID " + str(systemID) + " not found." return AIExplorableSystemType.EXPLORABLE_SYSTEM_INVALID
def __init__(self): "constructor" self.__missionsByType = {} for missionType in EnumsAI.getAIFleetMissionTypes(): self.__missionsByType[missionType] = {} self.__aiMissionsByFleetID = {} self.__shipRoleByDesignID = {} self.__fleetRoleByID = {} self.__priorityByType = {} self.__explorableSystemByType = {} for explorableSystemsType in EnumsAI.getAIExplorableSystemTypes(): self.__explorableSystemByType[explorableSystemsType] = {}