Пример #1
0
 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
Пример #2
0
 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
Пример #3
0
 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)
Пример #4
0
 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)
Пример #5
0
 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)
Пример #6
0
 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))