def __connectionStatusCallback(self, stage, status, serverMsg,
                                isAutoRegister):
     LOG_MX('__connectionStatusCallback', stage, status)
     self.__rawStatus = status
     if stage == 0:
         pass
     elif stage == 1:
         if status != 'LOGGED_ON':
             self.__setConnectionStatus(CONNECTION_STATUS.disconnected)
     elif stage == 2:
         self.__setConnectionStatus(CONNECTION_STATUS.connected)
         loginInfo = Settings.g_instance.userPrefs[Settings.KEY_LOGIN_INFO]
         ClientLog.g_instance.general(
             'Client login: (%s, %s, %s), localtime=%s, servertime=%s' %
             (loginInfo.readString('host'),
              hashlib.sha1(loginInfo.readString('user')).hexdigest(),
              loginInfo.readString('name'),
              datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
              '{servertime}'))
         self.onConnected()
     elif stage == 6:
         LOG_INFO('ConnectionManager: Disconnect ')
         self.__setConnectionStatus(CONNECTION_STATUS.disconnected)
         ClientLog.g_instance.general('Client disconnected.')
         self.onDisconnected()
     else:
         LOG_UNEXPECTED('stage:%d, status:%s, serverMsg:%s' %
                        (stage, status, serverMsg))
def _createRibbonFromPlayerFeedbackEvent(event):
    ribbonCls = None
    etype = event.getType()
    if etype in _FEEDBACK_EVENT_TO_RIBBON_CLS:
        ribbonCls = _FEEDBACK_EVENT_TO_RIBBON_CLS[etype]
    elif etype == FEEDBACK_EVENT_ID.PLAYER_ASSIST_TO_KILL_ENEMY:
        if event.getBattleEventType() == _BET.TRACK_ASSIST:
            ribbonCls = _TrackAssistRibbon
        elif event.getBattleEventType() == _BET.RADIO_ASSIST:
            ribbonCls = _RadioAssistRibbon
    elif etype == FEEDBACK_EVENT_ID.PLAYER_DAMAGED_HP_ENEMY:
        damageExtra = event.getExtra()
        if damageExtra.isShot():
            ribbonCls = _CausedDamageRibbon
        elif damageExtra.isFire():
            ribbonCls = _FireHitRibbon
        else:
            ribbonCls = _RamHitRibbon
    if ribbonCls is not None:
        return ribbonCls(event)
    else:
        LOG_UNEXPECTED(
            'Could not find a proper ribbon class associated with the given feedback event',
            event)
        return
示例#3
0
 def _handleEvent(self, e):
     eventType = e.eventType
     if eventType in _EVENT_HANDLERS:
         handler = _EVENT_HANDLERS[eventType]
         handler(self._app.containerManager, e)
     else:
         LOG_UNEXPECTED('Unsupported event:', eventType, e)
示例#4
0
 def getPosition(self, markerType=_MARKER_TYPE.CLIENT):
     if markerType == _MARKER_TYPE.CLIENT:
         return self.__clientMarker.getPosition()
     if markerType == _MARKER_TYPE.SERVER:
         return self.__serverMarker.getPosition()
     LOG_UNEXPECTED('Gun maker control is not found by type', markerType)
     return Math.Vector3()
示例#5
0
 def __onViewCreated(self, pyView):
     if pyView == self.__currentView:
         self.__loadNextView()
     else:
         LOG_UNEXPECTED(
             'Got onCreated event for view {}. Unexpected case.'.format(
                 pyView))
示例#6
0
def _getIconHtmlTagForCurrency(currency):
    getter = getattr(icons, currency)
    if getter:
        return getter()
    LOG_UNEXPECTED('Could not fetch an icon getter for the following currency',
                   currency)
    return ''
 def viewLoadCanceled(self, alias, name):
     viewKey = ViewKey(alias, name)
     if viewKey in self.__loadingItems:
         LOG_UNEXPECTED(
             'View loading for key {} has been canceled on FE side.'.format(
                 viewKey), self.__loadingItems[viewKey])
         self.cancelLoading(viewKey)
 def setPosition(self, position, markerType=_MARKER_TYPE.CLIENT):
     if markerType == _MARKER_TYPE.CLIENT:
         self.__clientMarker.setPosition(position)
     elif markerType == _MARKER_TYPE.SERVER:
         self.__serverMarker.setPosition(position)
     else:
         LOG_UNEXPECTED('Gun maker control is not found by type',
                        markerType)
示例#9
0
def _createRibbonFromPlayerFeedbackEvent(ribbonID, event):
    etype = event.getType()
    if etype in _FEEDBACK_EVENT_TO_RIBBON_CLS_FACTORY:
        factory = _FEEDBACK_EVENT_TO_RIBBON_CLS_FACTORY[etype]
        ribbonCls = factory.getRibbonClass(event)
        if ribbonCls is not None:
            return ribbonCls.createFromFeedbackEvent(ribbonID, event)
    LOG_UNEXPECTED('Could not find a proper ribbon class associated with the given feedback event', event)
    return
示例#10
0
 def __invalidateRibbon(self, ribbon, method):
     if self._shouldShowRibbon(ribbon):
         if ribbon.getType() in _RIBBONS_FMTS:
             updater = _RIBBONS_FMTS[ribbon.getType()]
             updater(ribbon, self.__arenaDP, method)
         else:
             LOG_UNEXPECTED('Could not find formatter for ribbon ', ribbon)
     else:
         self.__ribbonsAggregator.resetRibbonData(ribbon.getID())
示例#11
0
def _enemyDetectionRibbonFormatter(ribbon, arenaDP, updater):
    count = ribbon.getCount()
    if count > 1:
        updater(ribbonID=ribbon.getID(), ribbonType=ribbon.getType(), leftFieldStr=_formatCounter(count))
    else:
        vIDs = ribbon.getVehIDs()
        if vIDs:
            vehicleName, vehicleClassTag = _getVehicleData(arenaDP, vIDs[0])
        else:
            LOG_UNEXPECTED('Enemy detection ribbon has no vehicle ID!', ribbon)
            vehicleName = ''
            vehicleClassTag = ''
        updater(ribbonID=ribbon.getID(), ribbonType=ribbon.getType(), vehName=vehicleName, vehType=vehicleClassTag)
示例#12
0
 def update(self, markerType, position, dir, size, relaxTime, collData):
     if markerType == _MARKER_TYPE.CLIENT:
         self.__clientState = (position, dir, collData)
         if self.__gunMarkersFlags & _MARKER_FLAG.CLIENT_MODE_ENABLED:
             self.__clientMarker.update(markerType, position, dir, size,
                                        relaxTime, collData)
     elif markerType == _MARKER_TYPE.SERVER:
         self.__serverState = (position, dir, collData)
         if self.__gunMarkersFlags & _MARKER_FLAG.SERVER_MODE_ENABLED:
             self.__serverMarker.update(markerType, position, dir, size,
                                        relaxTime, collData)
     else:
         LOG_UNEXPECTED('Gun maker control is not found by type',
                        markerType)
示例#13
0
 def addMessage(self, message, fillColor=FILL_COLORS.BLACK, accountDBID=0):
     if accountDBID == self._accDbID:
         accountDBID = 0
     if fillColor == FILL_COLORS.BLACK:
         self.as_showBlackMessageS(message, accountDBID)
     elif fillColor == FILL_COLORS.RED:
         self.as_showRedMessageS(message, accountDBID)
     elif fillColor == FILL_COLORS.BROWN:
         self.as_showSelfMessageS(message, accountDBID)
     elif fillColor == FILL_COLORS.GREEN:
         self.as_showGreenMessageS(message, accountDBID)
     else:
         LOG_UNEXPECTED('Unexpected fill color: ', fillColor)
     if accountDBID > 0:
         self._addedMsgIDs.add(accountDBID)
示例#14
0
 def addMessage(self, message, fillColor=FILL_COLORS.BLACK, avatarSessionID=''):
     if self.__isInTimeWarp:
         return
     if avatarSessionID == self._avatarSessionID:
         avatarSessionID = ''
     if fillColor == FILL_COLORS.BLACK:
         self.as_showBlackMessageS(message, avatarSessionID)
     elif fillColor == FILL_COLORS.RED:
         self.as_showRedMessageS(message, avatarSessionID)
     elif fillColor == FILL_COLORS.BROWN:
         self.as_showSelfMessageS(message, avatarSessionID)
     elif fillColor == FILL_COLORS.GREEN:
         self.as_showGreenMessageS(message, avatarSessionID)
     else:
         LOG_UNEXPECTED('Unexpected fill color: ', fillColor)
     if avatarSessionID:
         self._addedMsgIDs.add(avatarSessionID)
示例#15
0
 def __addViewToCache(self, pyView):
     view = self.__viewCache.getView(pyView.key)
     if view is not None:
         LOG_UNEXPECTED(
             'The view with key {} is already in the cache.'.format(
                 pyView.key), pyView, view)
         if view != pyView:
             view.destroy()
             if self.__viewCache.addView(pyView):
                 LOG_DEBUG('View {} has been added to the cache {}'.format(
                     pyView, self.__viewCache))
             else:
                 LOG_DEBUG('Cannot add view {} in the cache {}'.format(
                     pyView, self.__viewCache))
     elif self.__viewCache.addView(pyView):
         LOG_DEBUG('View {} has been added to the cache {}'.format(
             pyView, self.__viewCache))
     else:
         LOG_DEBUG('Cannot add view {} in the cache {}'.format(
             pyView, self.__viewCache))
     return
示例#16
0
 def __connectionStatusCallback(self, stage, status, serverMsg,
                                isAutoRegister):
     LOG_MX('__connectionStatusCallback', stage, status)
     self.__rawStatus = status
     if stage == 0:
         pass
     elif stage == 1:
         if status != 'LOGGED_ON':
             self.__setConnectionStatus(CONNECTION_STATUS.disconnected)
             self.onRejected()
         else:
             self.__setConnectionStatus(CONNECTION_STATUS.connected)
             self.onConnected()
     elif stage == 2:
         pass
     elif stage == 6:
         self.__setConnectionStatus(CONNECTION_STATUS.disconnected)
         self.onDisconnected()
     else:
         LOG_UNEXPECTED('stage:%d, status:%s, serverMsg:%s' %
                        (stage, status, serverMsg))
示例#17
0
def _enemyDetectionRibbonFormatter(ribbon, arenaDP, updater):
    """
    Proxy to show BATTLE_EFFICIENCY_TYPES.DETECTION ribbon.
    
    :param ribbon: An instance of _EnemyDetectionRibbon class.
    :param updater: Reference to view update method.
    """
    count = ribbon.getCount()
    if count > 1:
        updater(ribbonID=ribbon.getID(),
                ribbonType=ribbon.getType(),
                leftFieldStr=_formatCounter(count))
    else:
        vIDs = ribbon.getVehIDs()
        if vIDs:
            vehicleName, vehicleClassTag = _getVehicleData(arenaDP, vIDs[0])
        else:
            LOG_UNEXPECTED('Enemy detection ribbon has no vehicle ID!', ribbon)
            vehicleName = ''
            vehicleClassTag = ''
        updater(ribbonID=ribbon.getID(),
                ribbonType=ribbon.getType(),
                vehName=vehicleName,
                vehType=vehicleClassTag)