class TutorialQueueTrigger(Trigger, GlobalListener): _inQueue = GlobalStorage(GLOBAL_FLAG.IN_QUEUE, False) def __init__(self, triggerID, popUpID): super(TutorialQueueTrigger, self).__init__(triggerID) self._event = ContentChangedEvent(popUpID) def run(self): if not self.isSubscribed: self.startGlobalListening() self.isSubscribed = True super(TutorialQueueTrigger, self).run() def isOn(self, *args): return self._inQueue def clear(self): self._gui.hideWaiting('queue') if self.isSubscribed: self.stopGlobalListening() self.isSubscribed = False self._inQueue = False super(TutorialQueueTrigger, self).clear() def onEnqueued(self, queueType, *args): if queueType != QUEUE_TYPE.TUTORIAL: return if len(args) < 3: LOG_ERROR('Number of argument is invalid', args) queueNumber, queueLen, avgWaitingTime = (0, 0, 0) else: queueNumber, queueLen, avgWaitingTime = args[:3] self._event.fire(avgWaitingTime) if not self._inQueue: self._inQueue = True self.toggle(isOn=True) def onDequeued(self, queueType, *args): if queueType != QUEUE_TYPE.TUTORIAL: return if self._inQueue: self._inQueue = False self.toggle(isOn=False) def onEnqueueError(self, queueType, *args): if queueType == QUEUE_TYPE.TUTORIAL: self._tutorial.refuse() def onKickedFromQueue(self, queueType, *args): if queueType == QUEUE_TYPE.TUTORIAL: self._tutorial.refuse() def onKickedFromArena(self, queueType, *args): if queueType == QUEUE_TYPE.TUTORIAL: self._tutorial.refuse() def onArenaJoinFailure(self, queueType, *args): if queueType == QUEUE_TYPE.TUTORIAL: self._tutorial.refuse()
class TutorialQueueTrigger(Trigger): _inQueue = GlobalStorage(GLOBAL_FLAG.IN_QUEUE, False) def __init__(self, triggerID, popUpID): super(TutorialQueueTrigger, self).__init__(triggerID) self._event = ContentChangedEvent(popUpID) def run(self): if not self.isSubscribed: g_playerEvents.onTutorialEnqueued += self.__pe_onTutorialEnqueued g_playerEvents.onTutorialDequeued += self.__pe_onTutorialDequeued g_playerEvents.onTutorialEnqueueFailure += self.__pe_onTutorialEnqueueFailure g_playerEvents.onArenaJoinFailure += self.__pe_onArenaJoinFailure g_playerEvents.onKickedFromArena += self.__pe_onKickedFromArena self.isSubscribed = True super(TutorialQueueTrigger, self).run() def isOn(self, *args): return self._inQueue def clear(self): self._gui.hideWaiting('queue') if self.isSubscribed: g_playerEvents.onTutorialEnqueued -= self.__pe_onTutorialEnqueued g_playerEvents.onTutorialDequeued -= self.__pe_onTutorialDequeued g_playerEvents.onTutorialEnqueueFailure -= self.__pe_onTutorialEnqueueFailure g_playerEvents.onArenaJoinFailure -= self.__pe_onArenaJoinFailure g_playerEvents.onKickedFromArena -= self.__pe_onKickedFromArena self.isSubscribed = False self._inQueue = False super(TutorialQueueTrigger, self).clear() def __pe_onTutorialEnqueued(self, queueNumber, queueLen, avgWaitingTime): self._event.fire(avgWaitingTime) if not self._inQueue: self._inQueue = True self.toggle(isOn=True) def __pe_onTutorialDequeued(self): if self._inQueue: self._inQueue = False self.toggle(isOn=False) def __pe_onTutorialEnqueueFailure(self, errorCode, errorStr): if errorCode in JOIN_FAILURE_NAMES: text = '#system_messages:arena_start_errors/join/{0:>s}'.format( JOIN_FAILURE_NAMES[errorCode]) else: text = errorStr self._gui.showI18nMessage(text, msgType='Error') self._tutorial.refuse() def __pe_onArenaJoinFailure(self, errorCode, errorStr): self._tutorial.refuse() def __pe_onKickedFromArena(self, errorCode): self._tutorial.refuse()
class TutorialQueueTrigger(Trigger): _inQueue = GlobalStorage(GLOBAL_FLAG.IN_QUEUE, False) def __init__(self, triggerID, popUpID): super(TutorialQueueTrigger, self).__init__(triggerID) self._event = ContentChangedEvent(popUpID) def run(self): if not self.isSubscribed: g_playerEvents.onTutorialEnqueued += self.__pe_onTutorialEnqueued g_playerEvents.onTutorialDequeued += self.__pe_onTutorialDequeued g_playerEvents.onTutorialEnqueueFailure += self.__pe_onTutorialEnqueueFailure g_playerEvents.onArenaJoinFailure += self.__pe_onArenaJoinFailure g_playerEvents.onKickedFromArena += self.__pe_onKickedFromArena self.isSubscribed = True super(TutorialQueueTrigger, self).run() def isOn(self, *args): return self._inQueue def clear(self): self._gui.hideWaiting('queue') if self.isSubscribed: g_playerEvents.onTutorialEnqueued -= self.__pe_onTutorialEnqueued g_playerEvents.onTutorialDequeued -= self.__pe_onTutorialDequeued g_playerEvents.onTutorialEnqueueFailure -= self.__pe_onTutorialEnqueueFailure g_playerEvents.onArenaJoinFailure -= self.__pe_onArenaJoinFailure g_playerEvents.onKickedFromArena -= self.__pe_onKickedFromArena self.isSubscribed = False self._inQueue = False super(TutorialQueueTrigger, self).clear() def __pe_onTutorialEnqueued(self, queueNumber, queueLen, avgWaitingTime): self._event.fire(avgWaitingTime) if not self._inQueue: self._inQueue = True self.toggle(isOn=True) def __pe_onTutorialDequeued(self): if self._inQueue: self._inQueue = False self.toggle(isOn=False) def __pe_onTutorialEnqueueFailure(self, errorCode, errorStr): if errorCode in JOIN_FAILURE_NAMES: text = '#system_messages:arena_start_errors/join/{0:>s}'.format(JOIN_FAILURE_NAMES[errorCode]) else: text = errorStr self._gui.showI18nMessage(text, msgType='Error') self._tutorial.refuse() def __pe_onArenaJoinFailure(self, errorCode, errorStr): self._tutorial.refuse() def __pe_onKickedFromArena(self, errorCode): self._tutorial.refuse()
def __init__(self, triggerID, popUpID): super(TutorialQueueTrigger, self).__init__(triggerID) self._event = ContentChangedEvent(popUpID)
def changeContent(targetID, value): ContentChangedEvent(targetID).fire(value)