def _createByAccountState(self, ctx): unitMrg = prb_getters.getClientUnitMgr() if unitMrg is None: return self._createNoUnitFunctional(ctx) else: if unitMrg.id and unitMrg.unitIdx: entity = prb_getters.getUnit(unitMrg.unitIdx, safe=True) if entity: flags = FUNCTIONAL_FLAG.UNIT if ctx.hasFlags( FUNCTIONAL_FLAG.UNIT_INTRO ) and entity.getPrebattleType() == ctx.getEntityType(): flags |= FUNCTIONAL_FLAG.SWITCH if entity.isSquad(): flags |= FUNCTIONAL_FLAG.SQUAD if entity.isEvent(): flags |= FUNCTIONAL_FLAG.EVENT_BATTLES if entity.isFalloutSquad(): flags |= FUNCTIONAL_FLAG.FALLOUT_SQUAD ctx.removeFlags(FUNCTIONAL_FLAG.UNIT_BITMASK | FUNCTIONAL_FLAG.ACTIONS_BITMASK) ctx.addFlags(flags) created = self._createUnitFunctional( entity.getPrebattleType(), unit_items.DynamicRosterSettings(entity), flags=flags) else: LOG_ERROR('Unit is not found in unit manager', unitMrg.unitIdx, unitMrg.units) unitMrg.leave() created = self._createNoUnitFunctional(ctx) else: created = self._createByPrbType(ctx) return created
def _createByAccountState(self, ctx): unitMrg = prb_getters.getClientUnitMgr() if unitMrg is None: return self._createNoUnitFunctional(ctx) else: if unitMrg.id and unitMrg.unitIdx: entity = prb_getters.getUnit(unitMrg.unitIdx, safe=True) if entity: flags = FUNCTIONAL_FLAG.UNIT if ctx.hasFlags(FUNCTIONAL_FLAG.UNIT_INTRO) and entity.getPrebattleType() == ctx.getEntityType(): flags |= FUNCTIONAL_FLAG.SWITCH if entity.isSquad(): flags |= FUNCTIONAL_FLAG.SQUAD if entity.isEvent(): flags |= FUNCTIONAL_FLAG.EVENT_BATTLES if entity.isFalloutSquad(): flags |= FUNCTIONAL_FLAG.FALLOUT_SQUAD ctx.removeFlags(FUNCTIONAL_FLAG.UNIT_BITMASK | FUNCTIONAL_FLAG.ACTIONS_BITMASK) ctx.addFlags(flags) created = self._createUnitFunctional(entity.getPrebattleType(), unit_items.DynamicRosterSettings(entity), flags=flags) else: LOG_ERROR('Unit is not found in unit manager', unitMrg.unitIdx, unitMrg.units) unitMrg.leave() created = self._createNoUnitFunctional(ctx) else: created = self._createByPrbType(ctx) return created
def __createByAccountState(self, ctx): unitMrg = prb_getters.getClientUnitMgr() if unitMrg is None: return elif unitMrg.id: entity = prb_getters.getUnit(safe=True) if entity is None: LOG_ERROR('Unit is not found in unit manager', unitMrg.id, unitMrg.unit) unitMrg.leave() return return self._createEntityByType(entity.getPrebattleType(), _SUPPORTED_UNIT_BY_TYPE) else: return self.__createByPrbType(ctx)
def __createByAccountState(self, ctx): """ Tries to create entity by current account state. Args: ctx: creation request context. Returns: new prebattle unit entity """ unitMrg = prb_getters.getClientUnitMgr() if unitMrg is None: return elif unitMrg.id: entity = prb_getters.getUnit(safe=True) if entity is None: LOG_ERROR('Unit is not found in unit manager', unitMrg.id, unitMrg.unit) unitMrg.leave() return return self._createEntityByType(entity.getPrebattleType(), _SUPPORTED_UNIT_BY_TYPE) else: return self.__createByPrbType(ctx)
def __getElenQuestsVO(self, vehicle): eventsData = self._eventsController.getEventsSettingsData() hangarFlagData = self._eventsController.getHangarFlagData() isElenEnabled = ServicesLocator.lobbyContext.getServerSettings( ).isElenEnabled() dataError = eventsData is None or hangarFlagData is None if dataError or not isElenEnabled or not eventsData.hasActiveEvents( ) or hangarFlagData.isSpecialAccount(): return else: isRegistered = False currentEvent = eventsData.getEventForVehicle(vehicle.intCD) if currentEvent is not None and currentEvent.isStarted( ) and not currentEvent.isFinished(): eventId = currentEvent.getEventID() isRegistered = hangarFlagData.isRegistered(eventId) hasAnotherActiveEvents = eventsData.hasAnotherActiveEvents( eventId) regIsFinished = currentEvent.isRegistrationFinished() notValidEvent = regIsFinished and not isRegistered or hangarFlagData.wasCanceled( eventId) if notValidEvent and not hasAnotherActiveEvents: return if notValidEvent and hasAnotherActiveEvents: enable = False else: enable = True else: if not eventsData.hasActiveEventsByState( hangarFlagData.getHangarFlags()): return eventId = None enable = False if enable: eventQuestsTooltip = TOOLTIPS_CONSTANTS.EVENT_QUESTS_PREVIEW eventQuestsTooltipIsSpecial = True battleType = currentEvent.getBattleType() wrongBattleType = self.prbEntity.getEntityType() != battleType inSquadState = self.prbDispatcher.getFunctionalState( ).isInUnit(constants.PREBATTLE_TYPE.SQUAD) if inSquadState: unit = prb_getters.getUnit(safe=True) if len(unit.getMembers()) == 1: inSquadState = False wrongSquadState = inSquadState and not currentEvent.getIsSquadAllowed( ) noserver = not currentEvent.isAvailableServer( self._connectionMgr.peripheryID) hasWarning = wrongBattleType or noserver or wrongSquadState registrationWillExpiredSoon = currentEvent.isRegistrationFinishSoon( ) endSoonWarning = currentEvent.isEndSoon( ) and not hasWarning and isRegistered if registrationWillExpiredSoon and not isRegistered or endSoonWarning: eventQuestsLabel = icons.makeImageTag( RES_ICONS.MAPS_ICONS_EVENTBOARDS_FLAGICONS_TIME_ICON) elif hasWarning and isRegistered: eventQuestsLabel = icons.makeImageTag( RES_ICONS.MAPS_ICONS_EVENTBOARDS_FLAGICONS_ALERT_ICON) else: eventQuestsLabel = icons.makeImageTag( RES_ICONS.MAPS_ICONS_EVENTBOARDS_FLAGICONS_ICON_FLAG) if isRegistered: eventQuestsIcon = RES_ICONS.MAPS_ICONS_EVENTBOARDS_FLAGICONS_CUP_ICON else: eventQuestsIcon = RES_ICONS.MAPS_ICONS_EVENTBOARDS_FLAGICONS_CROSS else: if not eventsData.hasActiveEvents(): return eventQuestsTooltip = TOOLTIPS.HANGAR_ELEN_BOTTOM_NOEVENTS eventQuestsTooltipIsSpecial = False eventQuestsLabel = '--' eventQuestsIcon = RES_ICONS.MAPS_ICONS_EVENTBOARDS_FLAGICONS_CUP_DISABLE_ICON quests = [ self._headerQuestFormaterVo( enable, eventQuestsIcon, eventQuestsLabel, HANGAR_HEADER_QUESTS.QUEST_TYPE_EVENT, questID=eventId, isReward=True, tooltip=eventQuestsTooltip, isTooltipSpecial=eventQuestsTooltipIsSpecial) ] return self._wrapQuestGroup( HANGAR_HEADER_QUESTS.QUEST_GROUP_EVENTS, '', quests)
def _getBottom(self, currentEvent): noserver = not currentEvent.isAvailableServer( self._connectionMgr.peripheryID) isRegistered = self._eventsController.getHangarFlagData().isRegistered( currentEvent.getEventID()) battleType = currentEvent.getBattleType() wrongBattleType = self.prbEntity.getEntityType() != battleType if battleType == constants.ARENA_GUI_TYPE.RANDOM: battleTypeText = TOOLTIPS.HANGAR_ELEN_BOTTOM_WRONGBATTLETYPE_RANDOM battleTypeBodyText = TOOLTIPS.HANGAR_ELEN_BOTTOM_ALLPERIPHERY_BODY elif battleType == constants.ARENA_GUI_TYPE.RANKED: battleTypeText = TOOLTIPS.HANGAR_ELEN_BOTTOM_WRONGBATTLETYPE_RANKED battleTypeBodyText = TOOLTIPS.HANGAR_ELEN_BOTTOM_ALLPERIPHERY_NOTRANDOM_BODY else: battleTypeText = '' battleTypeBodyText = '' inSquadState = self.prbDispatcher.getFunctionalState().isInUnit( constants.PREBATTLE_TYPE.SQUAD) if inSquadState: unit = prb_getters.getUnit(safe=True) if len(unit.getMembers()) == 1: inSquadState = False wrongSquadState = inSquadState and not currentEvent.getIsSquadAllowed() if not isRegistered: return formatters.packTextBlockData(text=text_styles.neutral( _ms(TOOLTIPS.HANGAR_ELEN_BOTTOM_GOREGISTER)), padding=formatters.packPadding( left=20, top=3, bottom=16)) if noserver: return formatters.packTextBlockData(text=makeHtmlString( 'html_templates:lobby/textStyle', 'alignText', { 'align': 'center', 'message': text_styles.critical( _ms(TOOLTIPS.HANGAR_ELEN_BOTTOM_UNAVAILABLE)) }), padding=formatters.packPadding( top=3, bottom=16)) if wrongBattleType: return formatters.packTextBlockData(text=makeHtmlString( 'html_templates:lobby/textStyle', 'alignText', { 'align': 'center', 'message': text_styles.critical(_ms(battleTypeText)) }), padding=formatters.packPadding( top=3, bottom=16)) return formatters.packTextBlockData( text=makeHtmlString( 'html_templates:lobby/textStyle', 'alignText', { 'align': 'center', 'message': text_styles.critical( _ms(TOOLTIPS.HANGAR_ELEN_BOTTOM_WRONGSQUADSTATE)) }), padding=formatters.packPadding(top=3, bottom=16) ) if wrongSquadState else formatters.packImageTextBlockData( title='', desc=text_styles.standard(_ms(battleTypeBodyText)), padding=formatters.packPadding(left=20, right=20, top=3, bottom=16))