Esempio n. 1
0
 def __pe_onBattleResultsReceived(self, isActiveVehicle, _):
     if isActiveVehicle:
         arena = getClientArena()
         LOG_DEBUG('Try to exit from arena', arena)
         if arena:
             self.__ctx.lastArenaUniqueID = arena.arenaUniqueID
         leaveArena()
Esempio n. 2
0
 def switch(self, scope):
     self.__targetIDs = []
     if scope != MESSENGER_SCOPE.BATTLE:
         return
     arena = getClientArena()
     if arena:
         arena.onVehicleKilled += self.__onVehicleKilled
Esempio n. 3
0
 def _setTipsInfo(self):
     arena = arena_info.getClientArena()
     arenaDP = self._battleCtx.getArenaDP()
     if arena_info.hasResourcePoints():
         bgUrl = RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTRESOURCEPOINTSEVENT
     elif arena_info.hasFlags():
         bgUrl = RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTFLAGSEVENT
     else:
         bgUrl = ''
     if self.__isFallout:
         self.as_setEventInfoPanelDataS({'bgUrl': bgUrl,
          'items': getHelpTextAsDicts(arena_info.getArenaType())})
         self.as_setVisualTipInfoS(self.__makeVisualTipVO(arenaDP, arena))
     elif not self.__isTipInited:
         battlesCount = DEFAULT_BATTLES_COUNT
         if g_lobbyContext.getBattlesCount() is not None:
             battlesCount = g_lobbyContext.getBattlesCount()
         classTag, vLvl, nation = arenaDP.getVehicleInfo().getTypeInfo()
         criteria = tips.getTipsCriteria(arena)
         criteria.setBattleCount(battlesCount)
         criteria.setClassTag(classTag)
         criteria.setLevel(vLvl)
         criteria.setNation(nation)
         tip = criteria.find()
         self.as_setTipTitleS(text_styles.highTitle(tip.status))
         self.as_setTipS(text_styles.playerOnline(tip.body))
         self.as_setVisualTipInfoS(self.__makeVisualTipVO(arenaDP, arena, tip))
         self.__isTipInited = True
     return
Esempio n. 4
0
 def __addArenaExtraData(self, arenaDP):
     arena = getClientArena()
     if arena:
         extraData = arena.extraData or {}
         descExtra = getPrebattleFullDescription(extraData)
         arenaTypeID = getArenaTypeID()
         arenaSubType = getArenaSubTypeName(arenaTypeID)
         team = arenaDP.getNumberOfTeam()
         enemy = arenaDP.getNumberOfTeam(True)
         hasBase = isBaseExists(arenaTypeID, team)
         opponents = extraData.get('opponents', {})
         team1 = opponents.get(str(team), {}).get('name', '#menu:loading/team1')
         team2 = opponents.get(str(enemy), {}).get('name', '#menu:loading/team2')
         self.as_setTeamsS(team1, team2)
         if arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES:
             self.as_setWinTextS(i18n.makeString('#arenas:type/fallout/description'))
         else:
             self.as_setWinTextS(getBattleSubTypeWinText(arenaTypeID, 1 if hasBase else 2))
         if descExtra:
             self.as_setBattleTypeNameS(descExtra)
             self.as_setBattleTypeFrameNumS(arena.guiType + 1)
         elif arena.guiType in [constants.ARENA_GUI_TYPE.RANDOM, constants.ARENA_GUI_TYPE.TRAINING]:
             self.as_setBattleTypeNameS('#arenas:type/%s/name' % arenaSubType)
             self.as_setBattleTypeFrameNameS(getNecessaryArenaFrameName(arenaSubType, hasBase))
             if arena.guiType == constants.ARENA_GUI_TYPE.TRAINING and self.__logArenaUniID == False:
                 self.__logArenaUniID = True
                 from time import strftime, localtime
                 from debug_utils import LOG_NOTE
                 LOG_NOTE('arenaUniqueID: %d | timestamp: %s' % (arena.arenaUniqueID, strftime('%d.%m.%Y %H:%M:%S', localtime())))
         else:
             self.as_setBattleTypeNameS('#menu:loading/battleTypes/%d' % arena.guiType)
             if arena.guiType in constants.ARENA_GUI_TYPE_LABEL.LABELS:
                 self.as_setBattleTypeFrameNameS(constants.ARENA_GUI_TYPE_LABEL.LABELS[arena.guiType])
             else:
                 self.as_setBattleTypeFrameNumS(arena.guiType + 1)
Esempio n. 5
0
 def start(self, arenaDP = None):
     if arenaDP is None:
         LOG_ERROR('Arena data provider is None')
         return
     else:
         self._dataProvider = arenaDP
         arena = getClientArena()
         if arena is None:
             LOG_NOTE('Arena not found')
             return
         self._arena = weakref.ref(arena)
         self._dataProvider.buildVehiclesData(self._arena().vehicles, self._arena().guiType)
         self._dataProvider.buildStatsData(self._arena().statistics)
         arena.onNewVehicleListReceived += self.__arena_onNewVehicleListReceived
         arena.onVehicleAdded += self.__arena_onVehicleAdded
         arena.onVehicleUpdated += self.__arena_onVehicleUpdated
         arena.onVehicleKilled += self.__arena_onVehicleKilled
         arena.onAvatarReady += self.__arena_onAvatarReady
         arena.onNewStatisticsReceived += self.__arena_onNewStatisticsReceived
         arena.onVehicleStatisticsUpdate += self.__arena_onVehicleStatisticsUpdate
         arena.onTeamKiller += self.__arena_onTeamKiller
         arena.onRespawnAvailableVehicles += self.__arena_onRespawnAvailableVehicles
         arena.onRespawnCooldowns += self.__arena_onRespawnCooldowns
         arena.onRespawnRandomVehicle += self.__arena_onRespawnRandomVehicle
         arena.onRespawnResurrected += self.__arena_onRespawnResurrected
         arena.onInteractiveStats += self.__arena_onInteractiveStats
         return
Esempio n. 6
0
 def __addArenaTypeData(self):
     arena = getClientArena()
     if arena:
         arenaType = arena.arenaType
         self.as_setMapNameS(arenaType.name)
         self.as_setMapBGS(BattleLoading.MAP_BG_SOURCE % arenaType.geometryName)
     self.as_setTipS(tips.getTip())
Esempio n. 7
0
 def _setTipsInfo(self):
     arena = getClientArena()
     isFallout = arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES
     arenaDP = self._battleCtx.getArenaDP()
     if hasResourcePoints():
         bgUrl = RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTRESOURCEPOINTSEVENT
     elif hasFlags():
         bgUrl = RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTFLAGSEVENT
     else:
         bgUrl = ''
     if isFallout:
         self.as_setEventInfoPanelDataS({'bgUrl': bgUrl,
          'items': getHelpTextAsDicts(arena.arenaType)})
     elif not self.__isTipInited:
         battlesCount = DEFAULT_BATTLES_COUNT
         if g_lobbyContext.getBattlesCount() is not None:
             battlesCount = g_lobbyContext.getBattlesCount()
         vType, vLvl, nation = arenaDP.getVehicleInfo().getTypeInfo()
         tipsIterator = tips.getTipsIterator(arena.guiType, battlesCount, vType, nation, vLvl)
         statusStr, tipStr = ('', '')
         if tipsIterator is not None:
             statusStr, tipStr = next(tipsIterator)
         else:
             LOG_ERROR('No required tips found')
         self.as_setTipTitleS(text_styles.highTitle(statusStr))
         self.as_setTipS(text_styles.playerOnline(tipStr))
         self.__isTipInited = True
     return
Esempio n. 8
0
 def _setTipsInfo(self):
     self.as_setEventInfoPanelDataS({
         'bgUrl':
         RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTFLAGSEVENT,
         'items':
         getHelpTextAsDicts(getClientArena().arenaType)
     })
Esempio n. 9
0
 def _addArenaTypeData(self):
     arena = getClientArena()
     if arena:
         arenaType = arena.arenaType
         self.as_setMapIconS(BattleLoading.SMALL_MAP_SOURCE %
                             arenaType.geometryName)
     super(BattleLoading, self)._addArenaTypeData()
Esempio n. 10
0
 def _setTipsInfo(self):
     arena = getClientArena()
     isFallout = arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES
     arenaDP = self._battleCtx.getArenaDP()
     if hasResourcePoints():
         bgUrl = RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTRESOURCEPOINTSEVENT
     elif hasFlags():
         bgUrl = RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTFLAGSEVENT
     else:
         bgUrl = ''
     if isFallout:
         self.as_setEventInfoPanelDataS({
             'bgUrl':
             bgUrl,
             'items':
             getHelpTextAsDicts(arena.arenaType)
         })
     elif not self.__isTipInited:
         battlesCount = DEFAULT_BATTLES_COUNT
         if g_lobbyContext.getBattlesCount() is not None:
             battlesCount = g_lobbyContext.getBattlesCount()
         vType, vLvl, nation = arenaDP.getVehicleInfo().getTypeInfo()
         tipsIterator = tips.getTipsIterator(arena.guiType, battlesCount,
                                             vType, nation, vLvl)
         statusStr, tipStr = ('', '')
         if tipsIterator is not None:
             statusStr, tipStr = next(tipsIterator)
         else:
             LOG_ERROR('No required tips found')
         self.as_setTipTitleS(text_styles.highTitle(statusStr))
         self.as_setTipS(text_styles.playerOnline(tipStr))
         self.__isTipInited = True
 def __pe_onBattleResultsReceived(self, isActiveVehicle, _):
     if isActiveVehicle:
         arena = getClientArena()
         LOG_DEBUG('Try to exit from arena', arena)
         if arena:
             self.__ctx.lastArenaUniqueID = arena.arenaUniqueID
         leaveArena()
Esempio n. 12
0
 def __addArenaTypeData(self):
     arena = getClientArena()
     if arena:
         arenaType = arena.arenaType
         self.as_setMapNameS(arenaType.name)
         self.as_setMapBGS('none')
         BigWorld.wg_setGUIBackground(BattleLoading.MAP_BG_SOURCE % arenaType.geometryName)
     self.as_setTipS(tips.getTip())
Esempio n. 13
0
 def _addArenaExtraData(self, arenaDP):
     arena = getClientArena()
     winText = text_styles.main(FALLOUT.BATTLELOADING_MULTITEAM_WINTEXT)
     arenaInfoData = {
         'battleTypeLocaleStr': arena.arenaType.name,
         'winText': winText
     }
     self._setArenaInfo(arenaInfoData)
Esempio n. 14
0
 def switch(self, scope):
     self.__targetIDs = []
     if scope != MESSENGER_SCOPE.BATTLE:
         return
     from gui.battle_control.arena_info import getClientArena
     arena = getClientArena()
     if arena:
         arena.onVehicleKilled += self.__onVehicleKilled
Esempio n. 15
0
 def switch(self, scope):
     self.__targetIDs = []
     if scope != MESSENGER_SCOPE.BATTLE:
         return
     from gui.battle_control.arena_info import getClientArena
     arena = getClientArena()
     if arena:
         arena.onVehicleKilled += self.__onVehicleKilled
Esempio n. 16
0
 def updateStats():
     arena = getClientArena()
     if arena != None:
         players = []
         for pl in arena.vehicles.values():
             players.append(pl['accountDBID'])
         Statistics.getEmo().updateList(players)        
     else:
         Statistics.emo = None
Esempio n. 17
0
 def _populate(self):
     super(BattleLoading, self)._populate()
     arena = getClientArena()
     self.__isFalloutMultiTeam = getIsMultiteam()
     g_sessionProvider.addArenaCtrl(self)
     BigWorld.wg_updateColorGrading()
     BigWorld.wg_enableGUIBackground(True, False)
     self._addArenaTypeData()
     Waiting.close()
Esempio n. 18
0
 def updateStats():
     arena = getClientArena()
     if arena != None:
         players = []
         for pl in arena.vehicles.values():
             players.append(pl['accountDBID'])
         Statistics.getEmo().updateList(players)
     else:
         Statistics.emo = None
Esempio n. 19
0
 def __addArenaTypeData(self):
     arena = getClientArena()
     if arena:
         arenaType = arena.arenaType
         mapBG = arenaType.geometryName
         if arena.guiType != constants.ARENA_GUI_TYPE.EVENT_BATTLES:
             self.as_setMapNameS(arenaType.name)
         elif arenaType.gameplayName in ('fallout', 'fallout2'):
             mapBG += '_fallout'
         BigWorld.wg_setGUIBackground(BattleLoading.MAP_BG_SOURCE % mapBG)
 def __pe_onBattleResultsReceived(self, isActiveVehicle, _):
     """
     It's listener of event _PlayerEvents.onBattleResultsReceived.
     :param isActiveVehicle: bool.
     """
     if isActiveVehicle:
         arena = getClientArena()
         LOG_DEBUG('Try to exit from arena', arena)
         if arena:
             self.__ctx.lastArenaUniqueID = arena.arenaUniqueID
         leaveArena()
Esempio n. 21
0
 def _addArenaExtraData(self, arenaDP):
     arenaInfoData = {'mapName': self._battleCtx.getArenaTypeName(isInBattle=False),
      'winText': self._battleCtx.getArenaWinString(isInBattle=False),
      'battleTypeLocaleStr': self._battleCtx.getArenaDescriptionString(isInBattle=False),
      'battleTypeFrameLabel': self._battleCtx.getArenaFrameLabel(),
      'allyTeamName': self._battleCtx.getTeamName(enemy=False),
      'enemyTeamName': self._battleCtx.getTeamName(enemy=True)}
     arena = arena_info.getClientArena()
     if arena.guiType == constants.ARENA_GUI_TYPE.TUTORIAL:
         arenaInfoData['tipText'] = text_styles.main(BATTLE_TUTORIAL.LOADING_HINT_TEXT)
     self.as_setArenaInfoS(arenaInfoData)
 def __pe_onBattleResultsReceived(self, isActiveVehicle, _):
     """
     It's listener of event _PlayerEvents.onBattleResultsReceived.
     :param isActiveVehicle: bool.
     """
     if isActiveVehicle:
         arena = getClientArena()
         LOG_DEBUG('Try to exit from arena', arena)
         if arena:
             self.__ctx.lastArenaUniqueID = arena.arenaUniqueID
         leaveArena()
Esempio n. 23
0
 def _addArenaExtraData(self, arenaDP):
     arena = getClientArena()
     if arena:
         arenaType = arena.arenaType
         extraData = arena.extraData or {}
         descExtra = getPrebattleFullDescription(extraData)
         arenaTypeID = getArenaTypeID()
         arenaSubType = getArenaSubTypeName(arenaTypeID)
         team = arenaDP.getNumberOfTeam()
         enemy = arenaDP.getNumberOfTeam(True)
         hasBase = isBaseExists(arenaTypeID, team)
         allyTeamName, enemyTeamName = self._battleCtx.getTeamName(
             team), self._battleCtx.getTeamName(enemy)
         if arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES:
             winText = i18n.makeString('#arenas:type/%s/description' %
                                       arenaSubType)
         else:
             winText = getBattleSubTypeWinText(arenaTypeID,
                                               1 if hasBase else 2)
         if descExtra:
             battleTypeLocaleStr = descExtra
             if arena.guiType != constants.ARENA_GUI_TYPE.UNKNOWN and arena.guiType in constants.ARENA_GUI_TYPE_LABEL.LABELS:
                 battleTypeFrameLabel = constants.ARENA_GUI_TYPE_LABEL.LABELS[
                     arena.guiType]
             else:
                 battleTypeFrameLabel = 'neutral'
         elif arena.guiType in [
                 constants.ARENA_GUI_TYPE.RANDOM,
                 constants.ARENA_GUI_TYPE.TRAINING
         ]:
             battleTypeLocaleStr = '#arenas:type/%s/name' % arenaSubType
             battleTypeFrameLabel = getNecessaryArenaFrameName(
                 arenaSubType, hasBase)
         elif arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES and hasResourcePoints(
         ):
             battleTypeFrameLabel = 'resourcePoints'
             battleTypeLocaleStr = MENU.LOADING_BATTLETYPES_RESOURCEPOINTS
         else:
             battleTypeLocaleStr = '#menu:loading/battleTypes/%d' % arena.guiType
             if arena.guiType != constants.ARENA_GUI_TYPE.UNKNOWN and arena.guiType in constants.ARENA_GUI_TYPE_LABEL.LABELS:
                 battleTypeFrameLabel = constants.ARENA_GUI_TYPE_LABEL.LABELS[
                     arena.guiType]
             else:
                 battleTypeFrameLabel = 'neutral'
         arenaInfoData = {
             'mapName': arenaType.name,
             'winText': winText,
             'battleTypeLocaleStr': battleTypeLocaleStr,
             'battleTypeFrameLabel': battleTypeFrameLabel,
             'allyTeamName': allyTeamName,
             'enemyTeamName': enemyTeamName
         }
         self._setArenaInfo(arenaInfoData)
Esempio n. 24
0
    def invalidateVehiclesInfo(self, arenaDP):
        regionGetter = self._battleCtx.getRegionCode
        isSpeaking = self.app.voiceChatManager.isPlayerSpeaking
        userGetter = self.usersStorage.getUser
        actionGetter = VehicleActions.getBitMask
        playerTeam = arenaDP.getNumberOfTeam()
        arena = getClientArena()
        isFallout = arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES
        for isEnemy in (False, True):
            result = []
            for vInfoVO, _, viStatsVO in arenaDP.getVehiclesIterator(isEnemy):
                result.append(self._makeItem(vInfoVO, viStatsVO, userGetter, isSpeaking, actionGetter, regionGetter, playerTeam, isEnemy, self._getSquadIdx(arenaDP, vInfoVO), isFallout))

            self._setVehiclesData(isEnemy, result)
Esempio n. 25
0
 def __init__(self, avatar = None):
     super(ArenaDataProvider, self).__init__()
     self.__playerTeam = avatar_getter.getPlayerTeam(avatar)
     self.__teamsOnArena = range(1, arena_info.getMaxTeamsOnArena(avatar) + 1)
     self.__playerVehicleID = avatar_getter.getPlayerVehicleID(avatar)
     self.__vInfoVOs = {}
     self.__vStatsVOs = arena_vos.VehicleArenaStatsDict()
     self.__prbStats = {}
     self.__playersVIDs = {}
     self.__viStatsVOs = arena_vos.VehicleArenaInteractiveStatsDict()
     self.__teamsVIStats = {}
     self.__teamSquadIndices = {}
     self.__invitationStatuses = {}
     self.__description = arena_descrs.createDescription(arena_info.getClientArena(avatar))
     fo_precache.add(settings.UNKNOWN_CONTOUR_ICON_RES_PATH)
Esempio n. 26
0
 def __init__(self, avatar=None):
     super(ArenaDataProvider, self).__init__()
     self.__playerTeam = avatar_getter.getPlayerTeam(avatar)
     self.__teamsOnArena = range(1,
                                 arena_info.getMaxTeamsOnArena(avatar) + 1)
     self.__playerVehicleID = avatar_getter.getPlayerVehicleID(avatar)
     self.__vInfoVOs = {}
     self.__vStatsVOs = arena_vos.VehicleArenaStatsDict()
     self.__prbStats = {}
     self.__playersVIDs = {}
     self.__viStatsVOs = arena_vos.VehicleArenaInteractiveStatsDict()
     self.__teamsVIStats = {}
     self.__teamSquadIndices = {}
     self.__invitationStatuses = {}
     self.__description = arena_descrs.createDescription(
         arena_info.getClientArena(avatar))
     fo_precache.add(settings.UNKNOWN_CONTOUR_ICON_RES_PATH)
Esempio n. 27
0
    def invalidateVehiclesInfo(self, arenaDP):
        regionGetter = self._battleCtx.getRegionCode
        isSpeaking = self.app.voiceChatManager.isPlayerSpeaking
        userGetter = self.usersStorage.getUser
        actionGetter = VehicleActions.getBitMask
        playerTeam = arenaDP.getNumberOfTeam()
        arena = getClientArena()
        isFallout = arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES
        for isEnemy in (False, True):
            result = []
            for vInfoVO, _, viStatsVO in arenaDP.getVehiclesIterator(isEnemy):
                result.append(
                    self._makeItem(vInfoVO, viStatsVO, userGetter, isSpeaking,
                                   actionGetter, regionGetter,
                                   playerTeam, isEnemy,
                                   self._getSquadIdx(arenaDP,
                                                     vInfoVO), isFallout))

            self._setVehiclesData(isEnemy, result)
Esempio n. 28
0
 def start(self, avatar=None):
     import BattleReplay
     replayCtrl = BattleReplay.g_replayCtrl
     isReplayRecording = replayCtrl.isRecording
     isReplayPlaying = replayCtrl.isPlaying
     self.__arenaDP = ArenaDataProvider(avatar=avatar)
     self.__ctx.start(self.__arenaDP)
     self.__ammoCtrl = consumables.createAmmoCtrl(isReplayPlaying,
                                                  isReplayRecording)
     self.__equipmentsCtrl = consumables.createEquipmentCtrl(
         isReplayPlaying)
     self.__optDevicesCtrl = consumables.createOptDevicesCtrl()
     self.__vehicleStateCtrl = vehicle_state_ctrl.createCtrl(
         isReplayRecording)
     isMultiTeam = self.__arenaDP.isMultipleTeams()
     self.__arenaLoadCtrl = ArenaLoadController(isMultiTeam)
     self.__arenaTeamsBasesCtrl = createTeamsBasesCtrl(isReplayPlaying)
     self.__periodCtrl = createPeriodCtrl(isReplayPlaying,
                                          isReplayRecording)
     self.__drrScaleCtrl = DRRScaleController()
     self.__respawnsCtrl = RespawnsController()
     self.__repairCtrl = RepairController()
     self.__dynSquadFunctional = DynSquadFunctional()
     self.__notificationsCtrl = NotificationsController(self.__arenaDP)
     ctx = weakref.proxy(self.__ctx)
     self.__arenaListeners = ListenersCollection()
     self.__arenaListeners.addController(ctx, self.__arenaLoadCtrl)
     self.__arenaListeners.addController(ctx, self.__arenaTeamsBasesCtrl)
     self.__arenaListeners.addController(ctx, self.__periodCtrl)
     self.__arenaListeners.addController(ctx, self.__respawnsCtrl)
     self.__arenaListeners.start(getClientArena(avatar=avatar),
                                 arenaDP=self.__arenaDP)
     self.__feedback = createFeedbackAdaptor(isReplayPlaying)
     self.__feedback.start(self.__arenaDP)
     self.__messagesCtrl = createBattleMessagesCtrl(isReplayPlaying)
     self.__messagesCtrl.start(ctx)
     self.__hitDirectionCtrl = HitDirectionController()
     self.__hitDirectionCtrl.start()
     g_playerEvents.onBattleResultsReceived += self.__pe_onBattleResultsReceived
     self.__chatCommands = ChatCommandsController()
     self.__chatCommands.start(self.__arenaDP, self.__feedback)
     self.__requestsCtrl = AvatarRequestsController()
     self.__avatarStatsCtrl = AvatarStatsController()
Esempio n. 29
0
 def __setTipsInfo(self):
     showFalloutEventInfo = False
     arena = getClientArena()
     if arena is not None:
         showFalloutEventInfo = arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES
     if showFalloutEventInfo:
         self.as_setEventInfoPanelDataS({'bgUrl': RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTEVENT,
          'items': FalloutInfoPanelHelper.getHelpTextAsDicts(arena.arenaType)})
     elif self.__updateTipTI is None:
         battlesCount = DEFAULT_BATTLES_COUNT
         if g_lobbyContext.getBattlesCount() is not None:
             battlesCount = g_lobbyContext.getBattlesCount()
         arenaDP = self.__battleCtx.getArenaDP()
         vType, vLvl, nation = arenaDP.getVehicleInfo().getTypeInfo()
         self.__tipsGetter = tips.getTipsIterator(battlesCount, vType, nation, vLvl)
         if self.__tipsGetter is not None:
             self._updateTipsInfo()
             self.__updateTipTI = TimeInterval(NEW_TIP_DURATION, self, '_updateTipsInfo')
             self.__updateTipTI.start()
     return
Esempio n. 30
0
 def _addArenaExtraData(self, arenaDP):
     arena = getClientArena()
     if arena:
         arenaType = arena.arenaType
         extraData = arena.extraData or {}
         descExtra = getPrebattleFullDescription(extraData)
         arenaTypeID = getArenaTypeID()
         arenaSubType = getArenaSubTypeName(arenaTypeID)
         team = arenaDP.getNumberOfTeam()
         enemy = arenaDP.getNumberOfTeam(True)
         hasBase = isBaseExists(arenaTypeID, team)
         allyTeamName, enemyTeamName = self._battleCtx.getTeamName(team), self._battleCtx.getTeamName(enemy)
         if arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES:
             winText = i18n.makeString('#arenas:type/%s/description' % arenaSubType)
         else:
             winText = getBattleSubTypeWinText(arenaTypeID, 1 if hasBase else 2)
         if descExtra:
             battleTypeLocaleStr = descExtra
             if arena.guiType != constants.ARENA_GUI_TYPE.UNKNOWN and arena.guiType in constants.ARENA_GUI_TYPE_LABEL.LABELS:
                 battleTypeFrameLabel = constants.ARENA_GUI_TYPE_LABEL.LABELS[arena.guiType]
             else:
                 battleTypeFrameLabel = 'neutral'
         elif arena.guiType in [constants.ARENA_GUI_TYPE.RANDOM, constants.ARENA_GUI_TYPE.TRAINING]:
             battleTypeLocaleStr = '#arenas:type/%s/name' % arenaSubType
             battleTypeFrameLabel = getNecessaryArenaFrameName(arenaSubType, hasBase)
         elif arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES and hasResourcePoints():
             battleTypeFrameLabel = 'resourcePoints'
             battleTypeLocaleStr = MENU.LOADING_BATTLETYPES_RESOURCEPOINTS
         else:
             battleTypeLocaleStr = '#menu:loading/battleTypes/%d' % arena.guiType
             if arena.guiType != constants.ARENA_GUI_TYPE.UNKNOWN and arena.guiType in constants.ARENA_GUI_TYPE_LABEL.LABELS:
                 battleTypeFrameLabel = constants.ARENA_GUI_TYPE_LABEL.LABELS[arena.guiType]
             else:
                 battleTypeFrameLabel = 'neutral'
         arenaInfoData = {'mapName': arenaType.name,
          'winText': winText,
          'battleTypeLocaleStr': battleTypeLocaleStr,
          'battleTypeFrameLabel': battleTypeFrameLabel,
          'allyTeamName': allyTeamName,
          'enemyTeamName': enemyTeamName}
         self._setArenaInfo(arenaInfoData)
Esempio n. 31
0
    def start(self, avatar=None):
        import BattleReplay

        replayCtrl = BattleReplay.g_replayCtrl
        isReplayRecording = replayCtrl.isRecording
        isReplayPlaying = replayCtrl.isPlaying
        self.__arenaDP = ArenaDataProvider(avatar=avatar)
        self.__ctx.start(self.__arenaDP)
        self.__ammoCtrl = consumables.createAmmoCtrl(isReplayPlaying, isReplayRecording)
        self.__equipmentsCtrl = consumables.createEquipmentCtrl(isReplayPlaying)
        self.__optDevicesCtrl = consumables.createOptDevicesCtrl()
        self.__vehicleStateCtrl = vehicle_state_ctrl.createCtrl(isReplayRecording)
        isMultiTeam = self.__arenaDP.isMultipleTeams()
        self.__arenaLoadCtrl = ArenaLoadController(isMultiTeam)
        self.__arenaTeamsBasesCtrl = createTeamsBasesCtrl(isReplayPlaying)
        self.__periodCtrl = createPeriodCtrl(isReplayPlaying, isReplayRecording)
        self.__drrScaleCtrl = DRRScaleController()
        self.__respawnsCtrl = RespawnsController()
        self.__repairCtrl = RepairController()
        self.__dynSquadFunctional = DynSquadFunctional()
        self.__notificationsCtrl = NotificationsController(self.__arenaDP)
        ctx = weakref.proxy(self.__ctx)
        self.__arenaListeners = ListenersCollection()
        self.__arenaListeners.addController(ctx, self.__arenaLoadCtrl)
        self.__arenaListeners.addController(ctx, self.__arenaTeamsBasesCtrl)
        self.__arenaListeners.addController(ctx, self.__periodCtrl)
        self.__arenaListeners.addController(ctx, self.__respawnsCtrl)
        self.__arenaListeners.start(getClientArena(avatar=avatar), arenaDP=self.__arenaDP)
        self.__feedback = createFeedbackAdaptor(isReplayPlaying)
        self.__feedback.start(self.__arenaDP)
        self.__messagesCtrl = createBattleMessagesCtrl(isReplayPlaying)
        self.__messagesCtrl.start(ctx)
        self.__hitDirectionCtrl = HitDirectionController()
        self.__hitDirectionCtrl.start()
        g_playerEvents.onBattleResultsReceived += self.__pe_onBattleResultsReceived
        self.__chatCommands = ChatCommandsController()
        self.__chatCommands.start(self.__arenaDP, self.__feedback)
        self.__requestsCtrl = AvatarRequestsController()
        self.__avatarStatsCtrl = AvatarStatsController()
Esempio n. 32
0
 def _addArenaTypeData(self):
     arena = getClientArena()
     if arena:
         arenaType = arena.arenaType
         self.as_setMapIconS(BattleLoading.SMALL_MAP_SOURCE % arenaType.geometryName)
     BigWorld.wg_setGUIBackground(getArenaIcon(BattleLoading.MAP_BG_SOURCE))
Esempio n. 33
0
 def new_setTipsInfo(self):
     DEFAULT_BATTLES_COUNT = 100
     
     arena = getClientArena()
     isFallout = arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES
     arenaDP = self._battleCtx.getArenaDP()
     if hasResourcePoints():
         bgUrl = RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTRESOURCEPOINTSEVENT
     elif hasFlags():
         bgUrl = RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTFLAGSEVENT
     else:
         bgUrl = ''
     if isFallout:
         self.as_setEventInfoPanelDataS({'bgUrl': bgUrl,
          'items': getHelpTextAsDicts(arena.arenaType)})
     if not self._BattleLoading__isTipInited:
         battlesCount = DEFAULT_BATTLES_COUNT
         if g_lobbyContext.getBattlesCount() is not None:
             battlesCount = g_lobbyContext.getBattlesCount()
         vType, vLvl, nation = arenaDP.getVehicleInfo().getTypeInfo()
         tipsIterator = tips.getTipsIterator(arena.guiType, battlesCount, vType, nation, vLvl)
         statusStr, tipStr = ('', '')
         if tipsIterator is not None:
             statusStr, tipStr = next(tipsIterator)
         else:
             LOG_ERROR('No required tips found')
         self.as_setTipTitleS(text_styles.highTitle(statusStr))
         
         #------win chance----
         content = text_styles.playerOnline(tipStr) 
         if Statistics.myConf['win_chance_enable'] and Statistics.okCw():
             win_chance = Statistics.getWinChance()
             if win_chance:
                 arenaTypeID = getArenaTypeID()
                 colour = '#ff0000'
                 if win_chance < 49:
                     colour = '#ff0000'
                 elif win_chance >= 49 and win_chance <= 51:
                     colour = '#ffff00'
                 elif win_chance > 51:
                     colour = '#00ff00'
                 formatz = {'win_chance':win_chance,'color':colour}
                 content += Statistics.myConf['win_chance_text'].format(**formatz)
         self.as_setTipS(content)
         #---------------------
             
         #----- table ----------
         if Statistics.myConf['table_enable'] and Statistics.okCw():
             x, y = GUI.screenResolution()      
             Statistics.table = BattleLoadingBarTable(Statistics.myConf['table_texture'])
             Statistics.table.setWidthMode('PIXEL')
             Statistics.table.setHeightMode('PIXEL')
             Statistics.table.setVerticalPositionMode('PIXEL')
             Statistics.table.setHorizontalPositionMode('PIXEL')
             Statistics.table.setHorizontalAnchor('LEFT')
             Statistics.table.setVerticalAnchor('TOP')
             Statistics.table.setWidth(Statistics.myConf['table_width'])#400
             Statistics.table.setHeight(Statistics.myConf['table_height'])#5
             Statistics.table.setPosition(eval(Statistics.myConf['table_position']))
             Statistics.table.setMaterialFx(Statistics.myConf['table_materialFX'])
             Statistics.table.setColor(eval(Statistics.myConf['table_color']))
             Statistics.table.setVisible(True)
             Statistics.table.add()
             config = {}
             config['texture'] = Statistics.myConf['table_bars_texture']
             config['width'] = Statistics.myConf['table_bars_width']
             config['height'] = Statistics.myConf['table_bars_height']
             config['position'] = eval(Statistics.myConf['table_bars_position'])
             config['delta'] = Statistics.myConf['table_bars_delta']
             config['font'] = Statistics.myConf['table_bars_font']
             config['materialFX'] = Statistics.myConf['table_bars_materialFX']
             config['color'] = (eval(Statistics.myConf['table_bars_color'][0]),eval(Statistics.myConf['table_bars_color'][1]))
             config[VEHICLE_CLASS_NAME.LIGHT_TANK] = Statistics.myConf[VEHICLE_CLASS_NAME.LIGHT_TANK]
             config[VEHICLE_CLASS_NAME.MEDIUM_TANK] = Statistics.myConf[VEHICLE_CLASS_NAME.MEDIUM_TANK]
             config[VEHICLE_CLASS_NAME.HEAVY_TANK] = Statistics.myConf[VEHICLE_CLASS_NAME.HEAVY_TANK]
             config[VEHICLE_CLASS_NAME.SPG] = Statistics.myConf[VEHICLE_CLASS_NAME.SPG]
             config[VEHICLE_CLASS_NAME.AT_SPG] = Statistics.myConf[VEHICLE_CLASS_NAME.AT_SPG]     
             config['table_bars_label'] = Statistics.myConf['table_bars_label']
             config['table_bars_odd_pos'] = Statistics.myConf['table_bars_label_pos']
             config['show_label'] = Statistics.myConf['table_bars_tankType_show']
             config['show_perc'] = Statistics.myConf['table_bars_label_show']
             config['align'] = Statistics.myConf['table_bars_align']
             Statistics.table.addBars(config)
         #---------------------
         
         self._BattleLoading__isTipInited = True
     return
Esempio n. 34
0
 def _addArenaExtraData(self, arenaDP):
     arena = getClientArena()
     winText = text_styles.main(FALLOUT.BATTLELOADING_MULTITEAM_WINTEXT)
     arenaInfoData = {'battleTypeLocaleStr': arena.arenaType.name,
      'winText': winText}
     self._setArenaInfo(arenaInfoData)
Esempio n. 35
0
 def _setTipsInfo(self):
     self.as_setEventInfoPanelDataS({'bgUrl': RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTFLAGSEVENT,
      'items': getHelpTextAsDicts(getClientArena().arenaType)})
Esempio n. 36
0
 def _addArenaTypeData(self):
     arena = getClientArena()
     if arena:
         arenaType = arena.arenaType
         self.as_setMapIconS(BattleLoading.SMALL_MAP_SOURCE % arenaType.geometryName)
     super(BattleLoading, self)._addArenaTypeData()
Esempio n. 37
0
    def new_setTipsInfo(self):
        DEFAULT_BATTLES_COUNT = 100

        arena = getClientArena()
        isFallout = arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES
        arenaDP = self._battleCtx.getArenaDP()
        if hasResourcePoints():
            bgUrl = RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTRESOURCEPOINTSEVENT
        elif hasFlags():
            bgUrl = RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTFLAGSEVENT
        else:
            bgUrl = ''
        if isFallout:
            self.as_setEventInfoPanelDataS({
                'bgUrl':
                bgUrl,
                'items':
                getHelpTextAsDicts(arena.arenaType)
            })
        if not self._BattleLoading__isTipInited:
            battlesCount = DEFAULT_BATTLES_COUNT
            if g_lobbyContext.getBattlesCount() is not None:
                battlesCount = g_lobbyContext.getBattlesCount()
            vType, vLvl, nation = arenaDP.getVehicleInfo().getTypeInfo()
            tipsIterator = tips.getTipsIterator(arena.guiType, battlesCount,
                                                vType, nation, vLvl)
            statusStr, tipStr = ('', '')
            if tipsIterator is not None:
                statusStr, tipStr = next(tipsIterator)
            else:
                LOG_ERROR('No required tips found')
            self.as_setTipTitleS(text_styles.highTitle(statusStr))

            #------win chance----
            content = text_styles.playerOnline(tipStr)
            if Statistics.myConf['win_chance_enable'] and Statistics.okCw():
                win_chance = Statistics.getWinChance()
                if win_chance:
                    arenaTypeID = getArenaTypeID()
                    colour = '#ff0000'
                    if win_chance < 49:
                        colour = '#ff0000'
                    elif win_chance >= 49 and win_chance <= 51:
                        colour = '#ffff00'
                    elif win_chance > 51:
                        colour = '#00ff00'
                    formatz = {'win_chance': win_chance, 'color': colour}
                    content += Statistics.myConf['win_chance_text'].format(
                        **formatz)
            self.as_setTipS(content)
            #---------------------

            #----- table ----------
            if Statistics.myConf['table_enable'] and Statistics.okCw():
                x, y = GUI.screenResolution()
                Statistics.table = BattleLoadingBarTable(
                    Statistics.myConf['table_texture'])
                Statistics.table.setWidthMode('PIXEL')
                Statistics.table.setHeightMode('PIXEL')
                Statistics.table.setVerticalPositionMode('PIXEL')
                Statistics.table.setHorizontalPositionMode('PIXEL')
                Statistics.table.setHorizontalAnchor('LEFT')
                Statistics.table.setVerticalAnchor('TOP')
                Statistics.table.setWidth(
                    Statistics.myConf['table_width'])  #400
                Statistics.table.setHeight(
                    Statistics.myConf['table_height'])  #5
                Statistics.table.setPosition(
                    eval(Statistics.myConf['table_position']))
                Statistics.table.setMaterialFx(
                    Statistics.myConf['table_materialFX'])
                Statistics.table.setColor(
                    eval(Statistics.myConf['table_color']))
                Statistics.table.setVisible(True)
                Statistics.table.add()
                config = {}
                config['texture'] = Statistics.myConf['table_bars_texture']
                config['width'] = Statistics.myConf['table_bars_width']
                config['height'] = Statistics.myConf['table_bars_height']
                config['position'] = eval(
                    Statistics.myConf['table_bars_position'])
                config['delta'] = Statistics.myConf['table_bars_delta']
                config['font'] = Statistics.myConf['table_bars_font']
                config['materialFX'] = Statistics.myConf[
                    'table_bars_materialFX']
                config['color'] = (
                    eval(Statistics.myConf['table_bars_color'][0]),
                    eval(Statistics.myConf['table_bars_color'][1]))
                config[VEHICLE_CLASS_NAME.LIGHT_TANK] = Statistics.myConf[
                    VEHICLE_CLASS_NAME.LIGHT_TANK]
                config[VEHICLE_CLASS_NAME.MEDIUM_TANK] = Statistics.myConf[
                    VEHICLE_CLASS_NAME.MEDIUM_TANK]
                config[VEHICLE_CLASS_NAME.HEAVY_TANK] = Statistics.myConf[
                    VEHICLE_CLASS_NAME.HEAVY_TANK]
                config[VEHICLE_CLASS_NAME.SPG] = Statistics.myConf[
                    VEHICLE_CLASS_NAME.SPG]
                config[VEHICLE_CLASS_NAME.AT_SPG] = Statistics.myConf[
                    VEHICLE_CLASS_NAME.AT_SPG]
                config['table_bars_label'] = Statistics.myConf[
                    'table_bars_label']
                config['table_bars_odd_pos'] = Statistics.myConf[
                    'table_bars_label_pos']
                config['show_label'] = Statistics.myConf[
                    'table_bars_tankType_show']
                config['show_perc'] = Statistics.myConf[
                    'table_bars_label_show']
                config['align'] = Statistics.myConf['table_bars_align']
                Statistics.table.addBars(config)
            #---------------------

            self._BattleLoading__isTipInited = True
        return