def _onEventsCacheResync(self):
     """
     Callback to be invoked when the event cache is re-synced.
     """
     if self.__isEventsEnabled != g_eventsCache.isEventEnabled():
         if g_eventsCache.isEventEnabled():
             g_currentVehicle.onChanged += self._onCurrentVehicleChanged
         else:
             g_currentVehicle.onChanged -= self._onCurrentVehicleChanged
         self.__isEventsEnabled = g_eventsCache.isEventEnabled()
         self._invalidate(resetSubscription=True)
 def _onEventsCacheResync(self):
     """
     Callback to be invoked when the event cache is re-synced.
     """
     if self.__isEventsEnabled != g_eventsCache.isEventEnabled():
         if g_eventsCache.isEventEnabled():
             g_currentVehicle.onChanged += self._onCurrentVehicleChanged
         else:
             g_currentVehicle.onChanged -= self._onCurrentVehicleChanged
         self.__isEventsEnabled = g_eventsCache.isEventEnabled()
         self._invalidate(resetSubscription=True)
Exemplo n.º 3
0
 def onUnitVehicleChanged(self, dbID, vInfo):
     functional = self.unitFunctional
     pInfo = functional.getPlayerInfo(dbID=dbID)
     if g_eventsCache.isEventEnabled() and pInfo.isCreator():
         self.__isFallout = None
         if not vInfo.isEmpty():
             vehicle = g_itemsCache.items.getItemByCD(vInfo.vehTypeCD)
             self.__isFallout = vehicle.isEvent
         self._updateRallyData()
         self._setActionButtonState()
         return
     else:
         if pInfo.isInSlot:
             slotIdx = pInfo.slotIdx
             if not vInfo.isEmpty():
                 vehicleVO = makeVehicleVO(g_itemsCache.items.getItemByCD(vInfo.vehTypeCD), functional.getRosterSettings().getLevelsRange(), isFallout=self.__isFallout, isCreator=pInfo.isCreator())
                 slotCost = vInfo.vehLevel
             else:
                 slotState = functional.getSlotState(slotIdx)
                 vehicleVO = None
                 if slotState.isClosed:
                     slotCost = settings.UNIT_CLOSED_SLOT_COST
                 else:
                     slotCost = 0
             self.as_setMemberVehicleS(slotIdx, slotCost, vehicleVO)
         return
Exemplo n.º 4
0
 def __getActionButtonStateVO(self):
     stateString = ''
     unitFunctional = self.unitFunctional
     pInfo = unitFunctional.getPlayerInfo()
     isInQueue = unitFunctional.getFlags().isInIdle()
     isEnabled = g_currentVehicle.isReadyToPrebattle() and not isInQueue
     playerReady = pInfo.isReady
     if not g_currentVehicle.isPresent():
         stateString = i18n.makeString('#cybersport:window/unit/message/vehicleNotSelected')
     elif not g_currentVehicle.isReadyToPrebattle():
         stateString = i18n.makeString('#cybersport:window/unit/message/vehicleNotValid')
     elif not playerReady:
         stateString = i18n.makeString(MESSENGER.DIALOGS_SQUAD_MESSAGE_GETREADY)
     elif g_eventsCache.isEventEnabled() and self.__isFallout is not None and self.__isFallout != g_currentVehicle.item.isEvent:
         stateString = error(MENU.CURRENTVEHICLESTATUS_NOTVALIDVEHICLE)
     elif playerReady and not isInQueue:
         stateString = i18n.makeString(MESSENGER.DIALOGS_SQUAD_MESSAGE_GETNOTREADY)
     stateString = TextManager.getText(TEXT_MANAGER_STYLES.MAIN_TEXT if isEnabled else TEXT_MANAGER_STYLES.ERROR_TEXT, stateString)
     if playerReady:
         label = CYBERSPORT.WINDOW_UNIT_NOTREADY
     else:
         label = CYBERSPORT.WINDOW_UNIT_READY
     return {'stateString': stateString,
      'label': label,
      'isEnabled': isEnabled,
      'isReady': playerReady}
Exemplo n.º 5
0
 def _addSquadInfo(self, options, isIgnored):
     if not isIgnored and not self.isSquadCreator():
         canCreate = self.prbDispatcher.getFunctionalCollection().canCreateSquad()
         options.append(self._makeItem(USER.CREATE_SQUAD, MENU.contextmenu(USER.CREATE_SQUAD), optInitData={'enabled': canCreate}))
         if g_eventsCache.isEventEnabled():
             options.append(self._makeItem(USER.CREATE_EVENT_SQUAD, MENU.contextmenu(USER.CREATE_EVENT_SQUAD), optInitData={'enabled': canCreate}))
     return options
Exemplo n.º 6
0
 def _addSquadInfo(self, options, isIgnored):
     if not isIgnored and not self.isSquadCreator():
         canCreate = self.prbDispatcher.getFunctionalCollection().canCreateSquad()
         options.append(self._makeItem(USER.CREATE_SQUAD, MENU.contextmenu(USER.CREATE_SQUAD), optInitData={'enabled': canCreate}))
         if g_eventsCache.isEventEnabled():
             options.append(self._makeItem(USER.CREATE_EVENT_SQUAD, MENU.contextmenu(USER.CREATE_EVENT_SQUAD), optInitData={'enabled': canCreate}))
     return options
Exemplo n.º 7
0
 def __updateFalloutState(self):
     if g_eventsCache.isEventEnabled():
         slots = self.unitFunctional.getSlotsIterator(*self.unitFunctional.getUnit())
         creator = findFirst(lambda s: s.player is not None and s.player.isCreator, slots)
         self.__isFallout = None
         if creator is not None and creator.vehicle is not None:
             creatorVehicle = g_itemsCache.items.getItemByCD(creator.vehicle['vehTypeCompDescr'])
             self.__isFallout = creatorVehicle.isEvent
     return
Exemplo n.º 8
0
def getDivisionsList(addAll = True):
    result = []
    if addAll:
        result.append({'data': 0,
         'label': i18n.makeString('#prebattle:labels/company/division/ALL')})
    isEventEnabled = g_eventsCache.isEventEnabled()
    for divID in PREBATTLE_COMPANY_DIVISION.RANGE:
        if divID in PREBATTLE_COMPANY_DIVISION.EVENT_ONLY and not isEventEnabled:
            continue
        divName = PREBATTLE_COMPANY_DIVISION_NAMES[divID]
        result.append({'data': divID,
         'label': getCompanyDivisionString(divName)})

    return result
Exemplo n.º 9
0
def _createItems():
    isInRoaming = g_lobbyContext.getServerSettings().roaming.isInRoaming()
    items = []
    _addRandomBattleType(items)
    _addHistoricalBattleType(items, isInRoaming)
    _addCommandBattleType(items)
    _addSortieBattleType(items, isInRoaming)
    _addTrainingBattleType(items)
    if GUI_SETTINGS.specPrebatlesVisible:
        _addSpecialBattleType(items)
    _addCompanyBattleType(items)
    if _isTutorialEnabled():
        _addTutorialBattleType(items, isInRoaming)
    if g_eventsCache.isEventEnabled():
        _addFalloutBattleType(items)
    return _BattleSelectorItems(items)
 def init(self, *args, **kwargs):
     """
     The init method that will replace the original functional method. Initializes the
     inner extension state.
     
     :param args: Arguments that are passed to the original method
     :param kwargs: Arguments that are passed to the original method
     :return: Result of the original method call.
     """
     self.__isEventsEnabled = g_eventsCache.isEventEnabled()
     self._invalidate(resetSubscription=False)
     rv = self._callOriginalMethod('init', *args, **kwargs)
     g_eventsCache.onSyncCompleted += self._onEventsCacheResync
     if self.__isEventsEnabled:
         g_currentVehicle.onChanged += self._onCurrentVehicleChanged
     return rv
 def init(self, *args, **kwargs):
     """
     The init method that will replace the original functional method. Initializes the
     inner extension state.
     
     :param args: Arguments that are passed to the original method
     :param kwargs: Arguments that are passed to the original method
     :return: Result of the original method call.
     """
     self.__isEventsEnabled = g_eventsCache.isEventEnabled()
     self._invalidate(resetSubscription=False)
     rv = self._callOriginalMethod('init', *args, **kwargs)
     g_eventsCache.onSyncCompleted += self._onEventsCacheResync
     if self.__isEventsEnabled:
         g_currentVehicle.onChanged += self._onCurrentVehicleChanged
     return rv
Exemplo n.º 12
0
def _createItems():
    isInRoaming = g_lobbyContext.getServerSettings().roaming.isInRoaming()
    items = []
    _addRandomBattleType(items)
    _addHistoricalBattleType(items, isInRoaming)
    _addCommandBattleType(items)
    _addSortieBattleType(items, isInRoaming)
    _addTrainingBattleType(items)
    if GUI_SETTINGS.specPrebatlesVisible:
        _addSpecialBattleType(items)
    _addCompanyBattleType(items)
    if _isTutorialEnabled():
        _addTutorialBattleType(items, isInRoaming)
    if g_eventsCache.isEventEnabled():
        _addFalloutBattleType(items)
    return _BattleSelectorItems(items)
Exemplo n.º 13
0
 def _updateRallyData(self):
     functional = self.unitFunctional
     data = vo_converters.makeUnitVO(functional, unitIdx=functional.getUnitIdx(), app=self.app, isFallout=self.__isFallout)
     self.as_updateRallyS(data)
     falloutFilter = AccountSettings.getFilter(FALLOUT)
     wasShown = falloutFilter['wasShown']
     isNew = False
     isEventEnabled = g_eventsCache.isEventEnabled()
     if isEventEnabled:
         battleTypeName = i18n.makeString(MENU.HEADERBUTTONS_BATTLE_MENU_STANDART) + '\n' + i18n.makeString(MENU.HEADERBUTTONS_BATTLE_MENU_DOMINATION)
         tooltipStr = makeTooltip(body=TOOLTIPS.SQUADWINDOW_EVENT_DOMINATION, note=alert(i18n.makeString(TOOLTIPS.SQUADWINDOW_EVENT_DOMINATION_NOTE, vehicles=self._getEventVehiclesNamesStr())))
         isNew = not wasShown
     else:
         battleTypeName = i18n.makeString(MENU.HEADERBUTTONS_BATTLE_MENU_STANDART)
         tooltipStr = ''
     self.as_updateBattleTypeInfoS(tooltipStr, isEventEnabled)
     self.as_updateBattleTypeS(battleTypeName, isEventEnabled, isNew)
     if isNew:
         falloutFilter['wasShown'] = True
         AccountSettings.setFilter(FALLOUT, falloutFilter)
Exemplo n.º 14
0
 def __updatePrebattleControls(self):
     prbDispatcher = g_prbLoader.getDispatcher()
     if not prbDispatcher:
         return
     else:
         items = battle_selector_items.getItems()
         state = prbDispatcher.getFunctionalState()
         selected = items.update(state)
         canDo, canDoMsg = prbDispatcher.canPlayerDoAction()
         playerInfo = prbDispatcher.getPlayerInfo()
         if selected.isInSquad(state):
             isInSquad = True
         else:
             isInSquad = False
             self.as_doDisableHeaderButtonS(self.BUTTONS.SQUAD, not state.hasLockedState)
         isFallout = g_eventsCache.isEventEnabled()
         if isInSquad:
             tooltip = TOOLTIPS.HEADER_SQUAD_MEMBER
         else:
             tooltip = TOOLTIPS.HEADER_DOMINATIONSQUAD if isFallout else TOOLTIPS.HEADER_SQUAD
         self.as_updateSquadS(isInSquad, tooltip, TOOLTIP_TYPES.COMPLEX)
         isFightBtnDisabled = not canDo or selected.isFightButtonForcedDisabled()
         isEventVehicle = g_currentVehicle.isPresent() and g_currentVehicle.item.isOnlyForEventBattles
         isInCompany = state.isInPrebattle(PREBATTLE_TYPE.COMPANY)
         if isFightBtnDisabled and isEventVehicle and not state.hasLockedState and not isInCompany:
             self.as_setFightBtnTooltipDataS(self.__getFightBtnTooltipData(canDoMsg))
         else:
             self.as_setFightBtnTooltipDataS(None)
         self.as_disableFightButtonS(isFightBtnDisabled)
         self.as_setFightButtonS(selected.getFightButtonLabel(state, playerInfo))
         self.as_updateBattleTypeS(i18n.makeString(selected.getLabel()), selected.getSmallIcon(), not selected.isDisabled(), TOOLTIPS.HEADER_BATTLETYPE, TOOLTIP_TYPES.COMPLEX)
         if selected.isDisabled():
             self.__closeBattleTypeSelectPopover()
         else:
             self.__updateBattleTypeSelectPopover()
         return
Exemplo n.º 15
0
 def isAvailable(self):
     return g_eventsCache.isEventEnabled()
Exemplo n.º 16
0
 def isAvailable(self):
     return g_eventsCache.isEventEnabled()
Exemplo n.º 17
0
 def __updatePrebattleControls(self):
     if not self.prbDispatcher:
         return
     else:
         items = battle_selector_items.getItems()
         suadItems = battle_selector_items.getSquadItems()
         state = self.prbDispatcher.getFunctionalState()
         selected = items.update(state)
         squadSelected = suadItems.update(state)
         canDo, canDoMsg = self.prbDispatcher.canPlayerDoAction()
         playerInfo = self.prbDispatcher.getPlayerInfo()
         if selected.isInSquad(state):
             isInSquad = True
         else:
             isInSquad = False
             self.as_doDisableHeaderButtonS(
                 self.BUTTONS.SQUAD,
                 self.prbDispatcher.getFunctionalCollection().
                 canCreateSquad())
         falloutCtrl = getFalloutCtrl()
         isFallout = falloutCtrl.isSelected()
         isEvent = g_eventsCache.isEventEnabled()
         if isInSquad:
             tooltip = TOOLTIPS.HEADER_SQUAD_MEMBER
         elif isFallout:
             tooltip = TOOLTIPS.HEADER_DOMINATIONSQUAD
         elif isEvent:
             tooltip = TOOLTIPS.HEADER_SQUAD_MEMBER
         else:
             tooltip = TOOLTIPS.HEADER_SQUAD
         if state.isInUnit(constants.PREBATTLE_TYPE.EVENT):
             iconSquad = RES_ICONS.MAPS_ICONS_BATTLETYPES_40X40_EVENTSQUAD
         else:
             iconSquad = RES_ICONS.MAPS_ICONS_BATTLETYPES_40X40_SQUAD
         self.as_updateSquadS(isInSquad, tooltip, TOOLTIP_TYPES.COMPLEX,
                              isEvent, iconSquad)
         isFightBtnDisabled = not canDo or selected.isFightButtonForcedDisabled(
         )
         if isFightBtnDisabled and not state.hasLockedState:
             if state.isInPreQueue(
                     queueType=constants.QUEUE_TYPE.SANDBOX
             ) and canDoMsg == QUEUE_RESTRICTION.LIMIT_LEVEL:
                 self.as_setFightBtnTooltipS(self.__getSandboxTooltipData())
             elif isFallout:
                 self.as_setFightBtnTooltipS(
                     self.__getFalloutFightBtnTooltipData(canDoMsg))
             elif isEvent and state.isInUnit(
                     constants.PREBATTLE_TYPE.EVENT):
                 self.as_setFightBtnTooltipS(self.__getEventTooltipData())
             elif isInSquad:
                 self.as_setFightBtnTooltipS(
                     self.__getSquadFightBtnTooltipData(canDoMsg))
             else:
                 self.as_setFightBtnTooltipS(None)
         else:
             self.as_setFightBtnTooltipS(None)
         self.as_disableFightButtonS(isFightBtnDisabled)
         self.as_setFightButtonS(
             selected.getFightButtonLabel(state, playerInfo))
         self.as_updateBattleTypeS(i18n.makeString(selected.getLabel()),
                                   selected.getSmallIcon(),
                                   selected.isSelectorBtnEnabled(),
                                   TOOLTIPS.HEADER_BATTLETYPE,
                                   TOOLTIP_TYPES.COMPLEX,
                                   selected.getData())
         if selected.isDisabled():
             self.__closeBattleTypeSelectPopover()
         else:
             self.__updateBattleTypeSelectPopover()
         if squadSelected.isDisabled():
             self.__closeSquadTypeSelectPopover()
         else:
             self.__updateSquadTypeSelectPopover()
         isNavigationEnabled = not state.isNavigationDisabled()
         self.as_doDisableHeaderButtonS(self.BUTTONS.PREM,
                                        isNavigationEnabled)
         self.as_doDisableHeaderButtonS(self.BUTTONS.SILVER,
                                        isNavigationEnabled)
         self.as_doDisableHeaderButtonS(self.BUTTONS.GOLD,
                                        isNavigationEnabled)
         self.as_doDisableHeaderButtonS(self.BUTTONS.FREE_XP,
                                        isNavigationEnabled)
         self.as_doDisableHeaderButtonS(self.BUTTONS.ACCOUNT,
                                        isNavigationEnabled)
         self.as_doDisableHeaderButtonS(self.BUTTONS.PREMSHOP,
                                        isNavigationEnabled)
         self.updateAccountAttrs()
         return
Exemplo n.º 18
0
 def __updatePrebattleControls(self):
     if not self.prbDispatcher:
         return
     else:
         items = battle_selector_items.getItems()
         suadItems = battle_selector_items.getSquadItems()
         state = self.prbDispatcher.getFunctionalState()
         selected = items.update(state)
         squadSelected = suadItems.update(state)
         canDo, canDoMsg = self.prbDispatcher.canPlayerDoAction()
         playerInfo = self.prbDispatcher.getPlayerInfo()
         if selected.isInSquad(state):
             isInSquad = True
         else:
             isInSquad = False
             self.as_doDisableHeaderButtonS(self.BUTTONS.SQUAD, self.prbDispatcher.getFunctionalCollection().canCreateSquad())
         falloutCtrl = getFalloutCtrl()
         isFallout = falloutCtrl.isSelected()
         isEvent = g_eventsCache.isEventEnabled()
         if isInSquad:
             tooltip = TOOLTIPS.HEADER_SQUAD_MEMBER
         elif isFallout:
             tooltip = TOOLTIPS.HEADER_DOMINATIONSQUAD
         elif isEvent:
             tooltip = TOOLTIPS.HEADER_SQUAD_MEMBER
         else:
             tooltip = TOOLTIPS.HEADER_SQUAD
         if state.isInUnit(constants.PREBATTLE_TYPE.EVENT):
             iconSquad = RES_ICONS.MAPS_ICONS_BATTLETYPES_40X40_EVENTSQUAD
         else:
             iconSquad = RES_ICONS.MAPS_ICONS_BATTLETYPES_40X40_SQUAD
         self.as_updateSquadS(isInSquad, tooltip, TOOLTIP_TYPES.COMPLEX, isEvent, iconSquad)
         isFightBtnDisabled = not canDo or selected.isFightButtonForcedDisabled()
         if isFightBtnDisabled and not state.hasLockedState:
             if state.isInPreQueue(queueType=constants.QUEUE_TYPE.SANDBOX) and canDoMsg == QUEUE_RESTRICTION.LIMIT_LEVEL:
                 self.as_setFightBtnTooltipS(self.__getSandboxTooltipData())
             elif isFallout:
                 self.as_setFightBtnTooltipS(self.__getFalloutFightBtnTooltipData(canDoMsg))
             elif isEvent and state.isInUnit(constants.PREBATTLE_TYPE.EVENT):
                 self.as_setFightBtnTooltipS(self.__getEventTooltipData())
             elif isInSquad:
                 self.as_setFightBtnTooltipS(self.__getSquadFightBtnTooltipData(canDoMsg))
             else:
                 self.as_setFightBtnTooltipS(None)
         else:
             self.as_setFightBtnTooltipS(None)
         self.as_disableFightButtonS(isFightBtnDisabled)
         self.as_setFightButtonS(selected.getFightButtonLabel(state, playerInfo))
         self.as_updateBattleTypeS(i18n.makeString(selected.getLabel()), selected.getSmallIcon(), selected.isSelectorBtnEnabled(), TOOLTIPS.HEADER_BATTLETYPE, TOOLTIP_TYPES.COMPLEX, selected.getData())
         if selected.isDisabled():
             self.__closeBattleTypeSelectPopover()
         else:
             self.__updateBattleTypeSelectPopover()
         if squadSelected.isDisabled():
             self.__closeSquadTypeSelectPopover()
         else:
             self.__updateSquadTypeSelectPopover()
         isNavigationEnabled = not state.isNavigationDisabled()
         self.as_doDisableHeaderButtonS(self.BUTTONS.PREM, isNavigationEnabled)
         self.as_doDisableHeaderButtonS(self.BUTTONS.SILVER, isNavigationEnabled)
         self.as_doDisableHeaderButtonS(self.BUTTONS.GOLD, isNavigationEnabled)
         self.as_doDisableHeaderButtonS(self.BUTTONS.FREE_XP, isNavigationEnabled)
         self.as_doDisableHeaderButtonS(self.BUTTONS.ACCOUNT, isNavigationEnabled)
         self.as_doDisableHeaderButtonS(self.BUTTONS.PREMSHOP, isNavigationEnabled)
         self.updateAccountAttrs()
         return
Exemplo n.º 19
0
 def isEnabled(self):
     return g_eventsCache.isEventEnabled() and bool(self.__settings['isEnabled'])