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
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)
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()
def __onViewCreated(self, pyView): if pyView == self.__currentView: self.__loadNextView() else: LOG_UNEXPECTED( 'Got onCreated event for view {}. Unexpected case.'.format( pyView))
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)
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
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())
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)
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)
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)
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)
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
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))
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)