예제 #1
0
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()
예제 #2
0
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()
예제 #3
0
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()
예제 #4
0
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()
예제 #5
0
 def __init__(self, triggerID, popUpID):
     super(TutorialQueueTrigger, self).__init__(triggerID)
     self._event = ContentChangedEvent(popUpID)
예제 #6
0
 def __init__(self, triggerID, popUpID):
     super(TutorialQueueTrigger, self).__init__(triggerID)
     self._event = ContentChangedEvent(popUpID)
예제 #7
0
def changeContent(targetID, value):
    ContentChangedEvent(targetID).fire(value)