Esempio n. 1
0
    def getNextContainer(self, currentQuestId):
        for container in self.containers:
            if container.hasQuest(currentQuestId):
                nextContainerIndex = self.containers.index(container) + QuestLinkDB.getQuestLink(currentQuestId)
                if nextContainerIndex >= len(self.containers):
                    return
                return self.containers[nextContainerIndex]

        return
 def getNextContainer(self, currentQuestId):
     for container in self.containers:
         if container.hasQuest(currentQuestId):
             nextContainerIndex = self.containers.index(container) + QuestLinkDB.getQuestLink(currentQuestId)
             if nextContainerIndex >= len(self.containers):
                 return None
             
             return self.containers[nextContainerIndex]
             continue
Esempio n. 3
0
    def getFilteredContainers(self):
        containerList = self.getContainers()
        filteredContainerList = []
        currIndex = 0
        firstQuestId = self.getFirstQuestId()
        for i in range(len(containerList)):
            if containerList[i].getName() == firstQuestId:
                currIndex = i
                break

        while currIndex < len(containerList):
            container = containerList[currIndex]
            filteredContainerList.append(container)
            currIndex += 1 + QuestLinkDB.getQuestLink(container.getName())

        return filteredContainerList
 def getFilteredContainers(self):
     containerList = self.getContainers()
     filteredContainerList = []
     currIndex = 0
     firstQuestId = self.getFirstQuestId()
     for i in range(len(containerList)):
         if containerList[i].getName() == firstQuestId:
             currIndex = i
             break
             continue
     
     while currIndex < len(containerList):
         container = containerList[currIndex]
         filteredContainerList.append(container)
         currIndex += 1 + QuestLinkDB.getQuestLink(container.getName())
     return filteredContainerList
 def handleQuestComplete(self, completedQuest, completedContainer, prevCompletedQuests = []):
     simbase.air.writeServerEvent('questLadder', self.av.doId, 'handleQuestComplete(%s,%s,%s)' % (completedQuest, completedContainer, prevCompletedQuests))
     self.notify.debug('QC.handleQuestComplete().name: %s' % self.name)
     self.notify.debug('QC.handleQuestComplete().completedQuest: %s' % completedQuest.getName())
     self.notify.debug('QC.handleQuestComplete().completedQuests: %s' % self.completedQuests)
     self.notify.debug('QC.handleQuestComplete().completedContainer: %s' % completedContainer.getName())
     self.notify.debug('QC.handleQuestComplete().completedContainer.completedQuests %s' % completedContainer.completedQuests)
     self.notify.debug('QC.handleQuestComplete().prevCompletedQuests: %s' % prevCompletedQuests)
     self.notify.debug('QC.handleQuestComplete().isComplete?: %s' % self.isComplete())
     qId = completedContainer.getName()
     simbase.air.writeServerEvent('questLadder', self.av.doId, 'ComletedContainer: %s' % qId)
     skipIndex = 1 + QuestLinkDB.getQuestLink(qId)
     nextIndex = self.containers.index(completedContainer) + skipIndex
     if nextIndex >= len(self.containers) and not isinstance(self, QuestChoice):
         if not self.isComplete():
             simbase.air.writeServerEvent('questLadder', self.av.doId, 'Container forced to complete!')
         
         isComplete = True
     else:
         isComplete = self.isComplete()
     if isComplete:
         simbase.air.writeServerEvent('questLadder', self.av.doId, 'Container COMPLETE: %s' % self.getName())
         self.av.questStatus.updateHistory(self)
         qEvent = QuestEvent.QuestContainerCompleted(containerId = self.getName())
         simbase.air.questMgr.handleEvent([
             self.av], qEvent)
         if self.parent:
             simbase.air.writeServerEvent('questLadder', self.av.doId, 'Call handleComlete on parent: %s' % self.parent.getName())
             self.updateCompletedQuests(completedQuest, prevCompletedQuests)
             self.parent.handleQuestComplete(completedQuest, self, self.completedQuests)
             self.completedQuests = []
         else:
             self.notify.debug('QC.handleQuestComplete(): root ladder is completed %s' % self.isComplete())
             self.updateCompletedQuests(completedQuest)
             quests = completedContainer.completedQuests
             self.av._swapQuest(oldQuests = quests, giverId = None, questIds = None, rewards = None)
             self.av.questStatus.handleLadderComplete(self)
     else:
         simbase.air.writeServerEvent('questLadder', self.av.doId, 'Container NOT COMPLETE: %s' % self.getName())
         simbase.air.writeServerEvent('questLadder', self.av.doId, 'Container skipIndex: %s' % skipIndex)
         self.av.questStatus.updateHistory(completedContainer)
         self.updateCompletedQuests(completedQuest)
         self.advance(completedContainer, skipIndex)
Esempio n. 6
0
 def handleQuestComplete(self, completedQuest, completedContainer, prevCompletedQuests=[]):
     simbase.air.writeServerEvent('questLadder', self.av.doId, 'handleQuestComplete(%s,%s,%s)' % (completedQuest, completedContainer, prevCompletedQuests))
     self.notify.debug('QC.handleQuestComplete().name: %s' % self.name)
     self.notify.debug('QC.handleQuestComplete().completedQuest: %s' % completedQuest.getName())
     self.notify.debug('QC.handleQuestComplete().completedQuests: %s' % self.completedQuests)
     self.notify.debug('QC.handleQuestComplete().completedContainer: %s' % completedContainer.getName())
     self.notify.debug('QC.handleQuestComplete().completedContainer.completedQuests %s' % completedContainer.completedQuests)
     self.notify.debug('QC.handleQuestComplete().prevCompletedQuests: %s' % prevCompletedQuests)
     self.notify.debug('QC.handleQuestComplete().isComplete?: %s' % self.isComplete())
     qId = completedContainer.getName()
     simbase.air.writeServerEvent('questLadder', self.av.doId, 'ComletedContainer: %s' % qId)
     skipIndex = 1 + QuestLinkDB.getQuestLink(qId)
     nextIndex = self.containers.index(completedContainer) + skipIndex
     if nextIndex >= len(self.containers):
         if not isinstance(self, QuestChoice):
             if not self.isComplete():
                 simbase.air.writeServerEvent('questLadder', self.av.doId, 'Container forced to complete!')
             isComplete = True
         else:
             isComplete = self.isComplete()
         if isComplete:
             simbase.air.writeServerEvent('questLadder', self.av.doId, 'Container COMPLETE: %s' % self.getName())
             self.av.questStatus.updateHistory(self)
             qEvent = QuestEvent.QuestContainerCompleted(containerId=self.getName())
             simbase.air.questMgr.handleEvent([self.av], qEvent)
             self.parent and simbase.air.writeServerEvent('questLadder', self.av.doId, 'Call handleComlete on parent: %s' % self.parent.getName())
             self.updateCompletedQuests(completedQuest, prevCompletedQuests)
             self.parent.handleQuestComplete(completedQuest, self, self.completedQuests)
             self.completedQuests = []
         else:
             self.notify.debug('QC.handleQuestComplete(): root ladder is completed %s' % self.isComplete())
             self.updateCompletedQuests(completedQuest)
             quests = completedContainer.completedQuests
             self.av._swapQuest(oldQuests=quests, giverId=None, questIds=None, rewards=None)
             self.av.questStatus.handleLadderComplete(self)
     else:
         simbase.air.writeServerEvent('questLadder', self.av.doId, 'Container NOT COMPLETE: %s' % self.getName())
         simbase.air.writeServerEvent('questLadder', self.av.doId, 'Container skipIndex: %s' % skipIndex)
         self.av.questStatus.updateHistory(completedContainer)
         self.updateCompletedQuests(completedQuest)
         self.advance(completedContainer, skipIndex)
     return