예제 #1
0
 def _createByAccountState(self, ctx):
     created = None
     clientPrb = prb_getters.getClientPrebattle()
     if clientPrb is not None:
         if prb_getters.isPrebattleSettingsReceived(prebattle=clientPrb):
             prbSettings = prb_getters.getPrebattleSettings(
                 prebattle=clientPrb)
             prbType = prb_getters.getPrebattleType(settings=prbSettings)
             clazz = None
             if prbType in _SUPPORTED_FUNCTIONAL:
                 clazz = _SUPPORTED_FUNCTIONAL[prbType]
             ctx.removeFlags(FUNCTIONAL_FLAG.PREBATTLE_BITMASK)
             ctx.addFlags(FUNCTIONAL_FLAG.PREBATTLE)
             if clazz:
                 created = clazz(prbSettings)
             else:
                 LOG_ERROR('Prebattle with given type is not supported',
                           prbType)
                 created = not_supported.NotSupportedFunctional()
         elif not ctx.hasFlags(FUNCTIONAL_FLAG.PREBATTLE_INIT):
             ctx.removeFlags(FUNCTIONAL_FLAG.PREBATTLE_BITMASK)
             ctx.addFlags(FUNCTIONAL_FLAG.PREBATTLE_INIT)
             created = default.PrbInitFunctional()
     else:
         created = self._createByPrbType(ctx)
     return created
예제 #2
0
 def __init__(self, pID, roster, group, waitingID=''):
     super(GroupAssignLegacyCtx,
           self).__init__(entityType=prb_getters.getPrebattleType(),
                          waitingID=waitingID)
     self.__group = group
     self.__pID = pID
     self.__roster = roster
예제 #3
0
 def __init__(self, isReadyState, isInitial=False, waitingID=''):
     super(SetPlayerStateCtx,
           self).__init__(entityType=prb_getters.getPrebattleType(),
                          waitingID=waitingID)
     self.__isReadyState = isReadyState
     self.__isInitial = isInitial
     self.__errorString = ''
예제 #4
0
 def __init__(self, pID, roster, waitingID=''):
     super(AssignLegacyCtx,
           self).__init__(entityType=prb_getters.getPrebattleType(),
                          waitingID=waitingID)
     self.__pID = pID
     self.__roster = roster
     self.__errorString = ''
예제 #5
0
 def __init__(self, roster, fLane, tLane, waitingID=''):
     super(GroupSwapInTeamLegacyCtx,
           self).__init__(entityType=prb_getters.getPrebattleType(),
                          waitingID=waitingID)
     self.__roster = roster
     self.__fromLane = fLane
     self.__toLane = tLane
예제 #6
0
 def join(self, ctx, callback=None):
     if prb_getters.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_getters.getPrebattleType())
         if callback:
             callback(False)
     return
예제 #7
0
 def __init__(self,
              team,
              isReadyState,
              waitingID='',
              isForced=True,
              gamePlayMask=0):
     super(SetTeamStateCtx,
           self).__init__(entityType=prb_getters.getPrebattleType(),
                          waitingID=waitingID,
                          isForced=isForced)
     self.__team = team
     self.__isReadyState = isReadyState
     self.__gamePlayMask = gamePlayMask
예제 #8
0
 def canAssignToTeam(self, team = 1):
     result = super(BattleSessionPrbPermissions, self).canAssignToTeam(team)
     if not result:
         return False
     else:
         clientPrb = prb_getters.getClientPrebattle()
         result = False
         if clientPrb is not None:
             settings = prb_getters.getPrebattleSettings(prebattle=clientPrb)
             rosters = prb_getters.getPrebattleRosters(prebattle=clientPrb)
             prbType = prb_getters.getPrebattleType(clientPrb, settings)
             result, _ = limits.TeamNoPlayersInBattle(prbType).check(rosters, team, settings.getTeamLimits(team))
         return result
예제 #9
0
 def canAssignToTeam(self, team = 1):
     result = super(BattleSessionPermissions, self).canAssignToTeam(team)
     if not result:
         return False
     else:
         clientPrb = prb_getters.getClientPrebattle()
         result = False
         if clientPrb is not None:
             settings = prb_getters.getPrebattleSettings(prebattle=clientPrb)
             rosters = prb_getters.getPrebattleRosters(prebattle=clientPrb)
             prbType = prb_getters.getPrebattleType(clientPrb, settings)
             result, _ = TeamNoPlayersInBattle(prbType).check(rosters, team, settings.getTeamLimits(team))
         return result
예제 #10
0
 def __createByAccountState(self, ctx):
     clientPrb = prb_getters.getClientPrebattle()
     if clientPrb is not None:
         if prb_getters.isPrebattleSettingsReceived(prebattle=clientPrb):
             prbSettings = prb_getters.getPrebattleSettings(
                 prebattle=clientPrb)
             prbType = prb_getters.getPrebattleType(settings=prbSettings)
             clazz = None
             clazz = collectLegacyEntity(prbType)
             if clazz:
                 return clazz(prbSettings)
         else:
             return LegacyInitEntity()
     return self.__createByPrbType(ctx)
예제 #11
0
 def create(self, ctx, callback=None):
     if prb_cooldown.validatePrbCreationCooldown():
         if callback is not None:
             callback(False)
     elif prb_getters.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',
             prb_getters.getPrebattleType())
         if callback is not None:
             callback(False)
     return
예제 #12
0
 def create(self, ctx, callback=None):
     if not isinstance(ctx, EpicTrainingSettingsCtx):
         LOG_ERROR('Invalid context to create training', ctx)
         if callback is not None:
             callback(False)
     elif not self.canCreate():
         if callback is not None:
             callback(False)
     elif prb_getters.getClientPrebattle() is None or ctx.isForced():
         ctx.startProcessing(callback=callback)
         BigWorld.player().prb_createEpicTrainingBattle(
             ctx.getArenaTypeID(), ctx.getRoundLen(), ctx.isOpened(),
             ctx.getComment())
         cooldown.setPrbCreationCooldown()
     else:
         LOG_ERROR(
             'First, player has to confirm exit from the current prebattle',
             prb_getters.getPrebattleType())
         if callback is not None:
             callback(False)
     return
예제 #13
0
 def __createByAccountState(self, ctx):
     """
     Tries to create entity by current account state.
     Args:
         ctx: creation request context.
     
     Returns:
         new prebattle legacy entity
     """
     clientPrb = prb_getters.getClientPrebattle()
     if clientPrb is not None:
         if prb_getters.isPrebattleSettingsReceived(prebattle=clientPrb):
             prbSettings = prb_getters.getPrebattleSettings(prebattle=clientPrb)
             prbType = prb_getters.getPrebattleType(settings=prbSettings)
             clazz = None
             if prbType in _SUPPORTED_ENTITY:
                 clazz = _SUPPORTED_ENTITY[prbType]
             if clazz:
                 return clazz(prbSettings)
         else:
             return LegacyInitEntity()
     return self.__createByPrbType(ctx)
예제 #14
0
 def _createByAccountState(self, ctx):
     created = None
     clientPrb = prb_getters.getClientPrebattle()
     if clientPrb is not None:
         if prb_getters.isPrebattleSettingsReceived(prebattle=clientPrb):
             prbSettings = prb_getters.getPrebattleSettings(prebattle=clientPrb)
             prbType = prb_getters.getPrebattleType(settings=prbSettings)
             clazz = None
             if prbType in _SUPPORTED_FUNCTIONAL:
                 clazz = _SUPPORTED_FUNCTIONAL[prbType]
             ctx.removeFlags(FUNCTIONAL_FLAG.PREBATTLE_BITMASK)
             ctx.addFlags(FUNCTIONAL_FLAG.PREBATTLE)
             if clazz:
                 created = clazz(prbSettings)
             else:
                 LOG_ERROR('Prebattle with given type is not supported', prbType)
                 created = not_supported.NotSupportedFunctional()
         elif not ctx.hasFlags(FUNCTIONAL_FLAG.PREBATTLE_INIT):
             ctx.removeFlags(FUNCTIONAL_FLAG.PREBATTLE_BITMASK)
             ctx.addFlags(FUNCTIONAL_FLAG.PREBATTLE_INIT)
             created = default.PrbInitFunctional()
     else:
         created = self._createByPrbType(ctx)
     return created
예제 #15
0
 def __init__(self, isReadyState, waitingID = ''):
     super(SetPlayerStateCtx, self).__init__(entityType=prb_getters.getPrebattleType(), waitingID=waitingID)
     self.__isReadyState = isReadyState
예제 #16
0
 def __init__(self, **kwargs):
     super(SwapTeamsCtx, self).__init__(entityType=prb_getters.getPrebattleType(), **kwargs)
예제 #17
0
 def __init__(self, pID, roster, waitingID = ''):
     super(AssignPrbCtx, self).__init__(entityType=prb_getters.getPrebattleType(), waitingID=waitingID)
     self.__pID = pID
     self.__roster = roster
예제 #18
0
 def __init__(self, team, isReadyState, waitingID = '', isForced = True, gamePlayMask = 0):
     super(SetTeamStateCtx, self).__init__(entityType=prb_getters.getPrebattleType(), waitingID=waitingID, isForced=isForced)
     self.__team = team
     self.__isReadyState = isReadyState
     self.__gamePlayMask = gamePlayMask
예제 #19
0
 def __init__(self, pID, waitingID = ''):
     super(KickPlayerCtx, self).__init__(entityType=prb_getters.getPrebattleType(), waitingID=waitingID)
     self.__pID = pID
예제 #20
0
 def __init__(self, lane, waitingID=''):
     super(GroupSwapBetweenTeamLegacyCtx, self).__init__(entityType=prb_getters.getPrebattleType(), waitingID=waitingID)
     self.__lane = lane
예제 #21
0
 def join(self, ctx, callback = None):
     if prb_getters.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_getters.getPrebattleType())
         if callback:
             callback(False)
     return
예제 #22
0
 def __init__(self, comment, waitingID = ''):
     super(ChangeCommentCtx, self).__init__(entityType=prb_getters.getPrebattleType(), waitingID=waitingID)
     self.__comment = truncate_utf8(comment, PREBATTLE_COMMENT_MAX_LENGTH)
예제 #23
0
 def __init__(self, division, waitingID=''):
     super(ChangeDivisionCtx, self).__init__(entityType=prb_getters.getPrebattleType(), waitingID=waitingID)
     self.__division = int(division)
예제 #24
0
 def __init__(self, pID, waitingID=''):
     super(KickPlayerCtx, self).__init__(entityType=prb_getters.getPrebattleType(), waitingID=waitingID)
     self.__pID = pID
예제 #25
0
 def __init__(self, comment, waitingID=''):
     super(ChangeCommentCtx, self).__init__(entityType=prb_getters.getPrebattleType(), waitingID=waitingID)
     self.__comment = truncate_utf8(comment, PREBATTLE_COMMENT_MAX_LENGTH)
예제 #26
0
파일: ctx.py 프로젝트: kusaku/wot_scripts
 def __init__(self, channels, waitingID = ''):
     super(ChangeArenaVoipCtx, self).__init__(entityType=prb_getters.getPrebattleType(), waitingID=waitingID)
     self.__channels = channels
예제 #27
0
 def __init__(self, **kwargs):
     super(SwapTeamsCtx, self).__init__(entityType=prb_getters.getPrebattleType(), **kwargs)
예제 #28
0
 def __init__(self, channels, waitingID = ''):
     super(ChangeArenaVoipCtx, self).__init__(entityType=prb_getters.getPrebattleType(), waitingID=waitingID)
     self.__channels = int(channels)
예제 #29
0
 def __init__(self, waitingID = '', flags = _FUNCTIONAL_FLAG.UNDEFINED):
     super(LeavePrbCtx, self).__init__(entityType=prb_getters.getPrebattleType(), waitingID=waitingID, flags=flags)
예제 #30
0
 def __init__(self, isOpened, waitingID = ''):
     super(ChangeOpenedCtx, self).__init__(entityType=prb_getters.getPrebattleType(), waitingID=waitingID)
     self.__isOpened = isOpened
예제 #31
0
 def create(self, ctx, callback = None):
     if not isinstance(ctx, prb_ctx.TrainingSettingsCtx):
         LOG_ERROR('Invalid context to create training', ctx)
         if callback is not None:
             callback(False)
     elif prb_cooldown.validatePrbCreationCooldown():
         if callback is not None:
             callback(False)
     elif prb_getters.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', prb_getters.getPrebattleType())
         if callback is not None:
             callback(False)
     return
예제 #32
0
 def __init__(self, division, waitingID = ''):
     super(ChangeDivisionCtx, self).__init__(entityType=prb_getters.getPrebattleType(), waitingID=waitingID)
     self.__division = int(division)
예제 #33
0
 def __init__(self, waitingID = '', flags = _FUNCTIONAL_FLAG.UNDEFINED):
     super(LeavePrbCtx, self).__init__(entityType=prb_getters.getPrebattleType(), waitingID=waitingID, flags=flags)
예제 #34
0
 def __init__(self, isOpened, waitingID=''):
     super(ChangeOpenedCtx, self).__init__(entityType=prb_getters.getPrebattleType(), waitingID=waitingID)
     self.__isOpened = isOpened
예제 #35
0
 def create(self, ctx, callback = None):
     if prb_cooldown.validatePrbCreationCooldown():
         if callback is not None:
             callback(False)
     elif prb_getters.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', prb_getters.getPrebattleType())
         if callback is not None:
             callback(False)
     return