Beispiel #1
0
 def create(self, ctx, callback=None):
     if not isinstance(ctx, TrainingSettingsCtx):
         LOG_ERROR('Invalid context to create training', ctx)
         if callback:
             callback(False)
     elif info.isRequestInCoolDown(REQUEST_TYPE.CREATE):
         SystemMessages.pushMessage(messages.getJoinFailureMessage(
             JOIN_FAILURE.COOLDOWN),
                                    type=SystemMessages.SM_TYPE.Error)
         if callback:
             callback(False)
     elif prb_control.getClientPrebattle() is None or ctx.isForced():
         ctx.startProcessing(callback=callback)
         BigWorld.player().prb_createTraining(ctx.getArenaTypeID(),
                                              ctx.getRoundLen(),
                                              ctx.isOpened(),
                                              ctx.getComment())
         info.setRequestCoolDown(
             REQUEST_TYPE.CREATE,
             coolDown=REQUEST_COOLDOWN.PREBATTLE_CREATION)
     else:
         LOG_ERROR(
             'First, player has to confirm exit from the current prebattle',
             prb_control.getPrebattleType())
         if callback:
             callback(False)
     return
    def createFunctional(self, dispatcher, ctx):
        clientPrb = prb_control.getClientPrebattle()
        if clientPrb is not None:
            if prb_control.isPrebattleSettingsReceived(prebattle=clientPrb):
                prbSettings = prb_control.getPrebattleSettings(prebattle=clientPrb)
                prbType = prb_control.getPrebattleType(settings=prbSettings)
                clazz = None
                if prbType in _SUPPORTED_FUNCTIONAL:
                    clazz = _SUPPORTED_FUNCTIONAL[prbType]
                if clazz:
                    prbFunctional = clazz(prbSettings)
                    for listener in dispatcher._globalListeners:
                        prbFunctional.addListener(listener())

                    createParams = ctx.getCreateParams()
                    if 'settings' in createParams and isStatefulFunctional(prbFunctional):
                        guiSettings = createParams['settings']
                        if guiSettings:
                            prbFunctional.applyStates(guiSettings.get(CTRL_ENTITY_TYPE.PREBATTLE))
                else:
                    LOG_ERROR('Prebattle with given type is not supported', prbType)
                    prbFunctional = PrbNotSupportedFunctional(prbSettings)
            else:
                prbFunctional = PrbInitFunctional()
        else:
            prbType = ctx.getPrbType()
            clazz = None
            if prbType in _SUPPORTED_INTRO:
                clazz = _SUPPORTED_INTRO[prbType]
            if clazz is None:
                clazz = NoPrbFunctional
            prbFunctional = clazz()
        return prbFunctional
Beispiel #3
0
 def canAssignToTeam(self, team = 1):
     clientPrb = prb_control.getClientPrebattle()
     result = False
     if clientPrb is not None:
         settings = prb_control.getPrebattleSettings(prebattle=clientPrb)
         rosters = prb_control.getPrebattleRosters(prebattle=clientPrb)
         prbType = prb_control.getPrebattleType(clientPrb, settings)
         result, _ = TeamNoPlayersInBattle(prbType).check(rosters, team, settings.getTeamLimits(team))
     return result
Beispiel #4
0
 def canAssignToTeam(self, team=1):
     clientPrb = prb_control.getClientPrebattle()
     result = False
     if clientPrb is not None:
         settings = prb_control.getPrebattleSettings(prebattle=clientPrb)
         rosters = prb_control.getPrebattleRosters(prebattle=clientPrb)
         prbType = prb_control.getPrebattleType(clientPrb, settings)
         result, _ = TeamNoPlayersInBattle(prbType).check(
             rosters, team, settings.getTeamLimits(team))
     return result
Beispiel #5
0
 def doAction(self, action, dispatcher = None):
     if action.actionName == PREBATTLE_ACTION_NAME.LEAVE_TRAINING_LIST:
         events_dispatcher.loadHangar()
     elif prb_control.getClientPrebattle() is None:
         self.__loadTrainingList()
     elif prb_control.isTraining():
         if dispatcher is not None:
             self.__loadTrainingRoom(dispatcher)
         else:
             LOG_ERROR('Dispatcher not found')
     else:
         LOG_ERROR('Player is joined to prebattle', prb_control.getPrebattleType())
     return True
Beispiel #6
0
 def doAction(self, action, dispatcher=None):
     if action.actionName == PREBATTLE_ACTION_NAME.LEAVE_TRAINING_LIST:
         events_dispatcher.loadHangar()
     elif prb_control.getClientPrebattle() is None:
         self.__loadTrainingList()
     elif prb_control.isTraining():
         if dispatcher is not None:
             self.__loadTrainingRoom(dispatcher)
         else:
             LOG_ERROR('Dispatcher not found')
     else:
         LOG_ERROR('Player is joined to prebattle',
                   prb_control.getPrebattleType())
     return True
Beispiel #7
0
 def create(self, ctx, callback=None):
     if prb_cooldown.validatePrbCreationCooldown():
         if callback:
             callback(False)
     elif getClientPrebattle() is None or ctx.isForced():
         ctx.startProcessing(callback=callback)
         BigWorld.player().prb_createCompany(ctx.isOpened(),
                                             ctx.getComment(),
                                             ctx.getDivision())
         prb_cooldown.setPrbCreationCooldown()
     else:
         LOG_ERROR(
             'First, player has to confirm exit from the current prebattle',
             getPrebattleType())
         if callback:
             callback(False)
Beispiel #8
0
def createPrbFunctional(dispatcher):
    clientPrb = prb_control.getClientPrebattle()
    if clientPrb is not None:
        if prb_control.isPrebattleSettingsReceived(prebattle=clientPrb):
            prbSettings = prb_control.getPrebattleSettings(prebattle=clientPrb)
            prbType = prb_control.getPrebattleType(settings=prbSettings)
            if prbType in _SUPPORTED_PREBATTLE:
                prbFunctional = _SUPPORTED_PREBATTLE[prbType][1](prbSettings)
                for listener in dispatcher._globalListeners:
                    prbFunctional.addListener(listener())

            else:
                LOG_ERROR("Prebattle with given type is not supported", prbType)
                prbFunctional = PrbNotSupportedFunctional(prbSettings)
        else:
            prbFunctional = PrbInitFunctional()
    else:
        prbFunctional = NoPrbFunctional()
    return prbFunctional
Beispiel #9
0
def createPrbFunctional(dispatcher):
    clientPrb = prb_control.getClientPrebattle()
    if clientPrb is not None:
        if prb_control.isPrebattleSettingsReceived(prebattle=clientPrb):
            prbSettings = prb_control.getPrebattleSettings(prebattle=clientPrb)
            prbType = prb_control.getPrebattleType(settings=prbSettings)
            if prbType in _SUPPORTED_PREBATTLE:
                prbFunctional = _SUPPORTED_PREBATTLE[prbType][1](prbSettings)
                for listener in dispatcher._globalListeners:
                    prbFunctional.addListener(listener())

            else:
                LOG_ERROR('Prebattle with given type is not supported', prbType)
                prbFunctional = PrbNotSupportedFunctional(prbSettings)
        else:
            prbFunctional = PrbInitFunctional()
    else:
        prbFunctional = NoPrbFunctional()
    return prbFunctional
Beispiel #10
0
 def create(self, ctx, callback=None):
     if not isinstance(ctx, prb_ctx.TrainingSettingsCtx):
         LOG_ERROR('Invalid context to create training', ctx)
         if callback:
             callback(False)
     elif prb_cooldown.validatePrbCreationCooldown():
         if callback:
             callback(False)
     elif getClientPrebattle() is None or ctx.isForced():
         ctx.startProcessing(callback=callback)
         BigWorld.player().prb_createTraining(ctx.getArenaTypeID(),
                                              ctx.getRoundLen(),
                                              ctx.isOpened(),
                                              ctx.getComment())
         prb_cooldown.setPrbCreationCooldown()
     else:
         LOG_ERROR(
             'First, player has to confirm exit from the current prebattle',
             getPrebattleType())
         if callback:
             callback(False)
    def createFunctional(self, dispatcher, ctx):
        clientPrb = prb_control.getClientPrebattle()
        if clientPrb is not None:
            if prb_control.isPrebattleSettingsReceived(prebattle=clientPrb):
                prbSettings = prb_control.getPrebattleSettings(
                    prebattle=clientPrb)
                prbType = prb_control.getPrebattleType(settings=prbSettings)
                clazz = None
                if prbType in _SUPPORTED_FUNCTIONAL:
                    clazz = _SUPPORTED_FUNCTIONAL[prbType]
                if clazz:
                    prbFunctional = clazz(prbSettings)
                    for listener in dispatcher._globalListeners:
                        prbFunctional.addListener(listener())

                    createParams = ctx.getCreateParams()
                    if 'settings' in createParams and isStatefulFunctional(
                            prbFunctional):
                        guiSettings = createParams['settings']
                        if guiSettings:
                            prbFunctional.applyStates(
                                guiSettings.get(CTRL_ENTITY_TYPE.PREBATTLE))
                else:
                    LOG_ERROR('Prebattle with given type is not supported',
                              prbType)
                    prbFunctional = PrbNotSupportedFunctional(prbSettings)
            else:
                prbFunctional = PrbInitFunctional()
        else:
            prbType = ctx.getPrbType()
            clazz = None
            if prbType in _SUPPORTED_INTRO:
                clazz = _SUPPORTED_INTRO[prbType]
            if clazz is None:
                clazz = NoPrbFunctional
            prbFunctional = clazz()
        return prbFunctional
Beispiel #12
0
 def create(self, ctx, callback = None):
     if not isinstance(ctx, context.SquadSettingsCtx):
         LOG_ERROR('Invalid context to create squad', ctx)
         if callback:
             callback(False)
     elif info.isRequestInCoolDown(REQUEST_TYPE.CREATE):
         SystemMessages.pushMessage(messages.getJoinFailureMessage(JOIN_FAILURE.COOLDOWN), type=SystemMessages.SM_TYPE.Error)
         if callback:
             callback(False)
     elif prb_control.getClientPrebattle() is None or ctx.isForced():
         ctx.startProcessing(callback=callback)
         BigWorld.player().prb_createSquad()
         info.setRequestCoolDown(REQUEST_TYPE.CREATE, coolDown=REQUEST_COOLDOWN.PREBATTLE_CREATION)
     else:
         LOG_ERROR('First, player has to confirm exit from the current prebattle', prb_control.getPrebattleType())
         if callback:
             callback(False)
     return
Beispiel #13
0
 def join(self, ctx, callback = None):
     if prb_control.getClientPrebattle() is None or ctx.isForced():
         ctx.startProcessing(callback=callback)
         BigWorld.player().prb_join(ctx.getID())
     else:
         LOG_ERROR('First, player has to confirm exit from the current prebattle', prb_control.getPrebattleType())
         if callback:
             callback(False)
Beispiel #14
0
 def getPrbType(self):
     return getPrebattleType()
 def doAction(self, action, dispatcher = None):
     if isBattleSession():
         events_dispatcher.loadBattleSessionWindow(getPrebattleType())
     else:
         events_dispatcher.loadBattleSessionList()
     return True
Beispiel #16
0
 def getPrbType(self):
     return getPrebattleType()
Beispiel #17
0
 def create(self, ctx, callback = None):
     if prb_cooldown.validatePrbCreationCooldown():
         if callback:
             callback(False)
     elif getClientPrebattle() is None or ctx.isForced():
         ctx.startProcessing(callback=callback)
         BigWorld.player().prb_createEventSquad()
         prb_cooldown.setPrbCreationCooldown()
     else:
         LOG_ERROR('First, player has to confirm exit from the current prebattle', getPrebattleType())
         if callback:
             callback(False)
Beispiel #18
0
 def create(self, ctx, callback = None):
     if not isinstance(ctx, prb_ctx.TrainingSettingsCtx):
         LOG_ERROR('Invalid context to create training', ctx)
         if callback:
             callback(False)
     elif prb_cooldown.validatePrbCreationCooldown():
         if callback:
             callback(False)
     elif getClientPrebattle() is None or ctx.isForced():
         ctx.startProcessing(callback=callback)
         BigWorld.player().prb_createTraining(ctx.getArenaTypeID(), ctx.getRoundLen(), ctx.isOpened(), ctx.getComment())
         prb_cooldown.setPrbCreationCooldown()
     else:
         LOG_ERROR('First, player has to confirm exit from the current prebattle', getPrebattleType())
         if callback:
             callback(False)
Beispiel #19
0
 def join(self, ctx, callback = None):
     if prb_control.getClientPrebattle() is None or ctx.isForced():
         ctx.startProcessing(callback=callback)
         BigWorld.player().prb_join(ctx.getID())
     else:
         LOG_ERROR('First, player has to confirm exit from the current prebattle', prb_control.getPrebattleType())
         if callback:
             callback(False)
     return
Beispiel #20
0
 def doAction(self, action, dispatcher=None):
     if isBattleSession():
         events_dispatcher.loadBattleSessionWindow(getPrebattleType())
     else:
         events_dispatcher.loadBattleSessionList()
     return True