예제 #1
0
def __updateVehicleDossierImpl(vehTypeCompDescr, dossierDescr, results):
    bonusType = results['bonusType']
    if BONUS_CAPS.checkAny(bonusType, BONUS_CAPS.DOSSIER_ACHIEVEMENTS_7X7):
        _updatePerBattleSeries(dossierDescr['achievements7x7'],
                               'tacticalBreakthroughSeries',
                               results['winnerTeam'] == results['team'])
    if not BONUS_CAPS.checkAny(bonusType,
                               BONUS_CAPS.DOSSIER_ACHIEVEMENTS_15X15):
        return
    achievements = dossierDescr['achievements']
    if achievements['markOfMastery'] < results['markOfMastery']:
        achievements['markOfMastery'] = results['markOfMastery']
    damageRating = int(results['damageRating'] * 100)
    if damageRating != 0:
        achievements['damageRating'] = damageRating
    achievements['movingAvgDamage'] = results['movingAvgDamage']
    if achievements['marksOnGun'] < results['marksOnGun']:
        achievements['marksOnGun'] = results['marksOnGun']
    if results['winnerTeam'] == results['team'] and results['aimerSeries'] > 0:
        dossierDescr['singleAchievements']['aimer'] = 1
        if achievements['maxAimerSeries'] < results['aimerSeries']:
            achievements['maxAimerSeries'] = results['aimerSeries']
    isSPG = isVehicleSPG(vehTypeCompDescr)
    _updatePerBattleSeries(
        achievements, 'invincibleSeries', results['deathCount'] == 0
        and results['damageReceived'] == 0 and not isSPG)
    _updatePerBattleSeries(achievements, 'diehardSeries',
                           results['deathCount'] == 0 and not isSPG)
    _updateInBattleSeries(achievements, 'sniper', results)
    _updateInBattleSeries(achievements, 'killing', results)
    _updateInBattleSeries(achievements, 'piercing', results)
예제 #2
0
 def __constructComponents(self):
     player = BigWorld.player()
     typeDescr = player.vehicleTypeDescriptor
     if typeDescr.hasSiegeMode:
         if not self.siegeModeControl:
             self.siegeModeControl = SiegeModeControl()
         self.__commands.append(self.siegeModeControl)
         self.siegeModeControl.onSiegeStateChanged += lambda *args: self.steadyVehicleMatrixCalculator.relinkSources()
         if not self.siegeModeSoundNotifications:
             notifications = None
             if typeDescr.hasHydraulicChassis:
                 notifications = SiegeModeSoundNotifications()
             elif typeDescr.hasTurboshaftEngine:
                 notifications = TurboshaftModeSoundNotifications()
             if notifications:
                 self.siegeModeSoundNotifications = notifications
                 self.siegeModeControl.onSiegeStateChanged += self.siegeModeSoundNotifications.onSiegeStateChanged
         self.siegeModeControl.onRequestFail += self.__onRequestFail
         self.siegeModeControl.onSiegeStateChanged += SiegeModeCameraShaker.shake
     if typeDescr.isDualgunVehicle and not self.dualGunControl:
         self.dualGunControl = DualGunController(typeDescr)
     elif not typeDescr.isDualgunVehicle:
         self.dualGunControl = None
     if self.bootcampCtrl.isInBootcamp() and constants.HAS_DEV_RESOURCES:
         self.__commands.append(BootcampModeControl())
     if ARENA_BONUS_TYPE_CAPS.checkAny(player.arena.bonusType, ARENA_BONUS_TYPE_CAPS.RADAR):
         self.__commands.append(RadarControl())
     if ARENA_BONUS_TYPE_CAPS.checkAny(player.arena.bonusType, ARENA_BONUS_TYPE_CAPS.BATTLEROYALE):
         self.__commands.append(VehicleUpdateControl())
         self.__commands.append(VehicleUpgradePanelControl())
         self.__detachedCommands.append(VehicleUpgradePanelControl())
     return
예제 #3
0
def __updateVehicleDossierImpl(vehTypeCompDescr, dossierDescr, results,
                               dossierXP):
    bonusType = results['bonusType']
    if BONUS_CAPS.checkAny(bonusType, BONUS_CAPS.DOSSIER_ACHIEVEMENTS_7X7):
        _updatePerBattleSeries(dossierDescr['achievements7x7'],
                               'tacticalBreakthroughSeries',
                               results['winnerTeam'] == results['team'])
        return
    if BONUS_CAPS.checkAny(bonusType, BONUS_CAPS.DOSSIER_RANKED):
        __updateAggregatedValues(dossierDescr.expand('ranked_10x10'),
                                 dossierDescr.expand('ranked_10x10'), results,
                                 dossierXP, 0)
    if BONUS_CAPS.checkAny(bonusType, BONUS_CAPS.DOSSIER_MAXRANKED):
        __updateMaxValues(dossierDescr.expand('maxRanked_10x10'), results,
                          dossierXP)
    __updateMarksOnGun(dossierDescr, results)
    __updateMarkOfMastery(dossierDescr, results)
    if not BONUS_CAPS.checkAny(bonusType,
                               BONUS_CAPS.DOSSIER_ACHIEVEMENTS_15X15):
        return
    achievements = dossierDescr['achievements']
    if results['winnerTeam'] == results['team'] and results['aimerSeries'] > 0:
        dossierDescr['singleAchievements']['aimer'] = 1
        if achievements['maxAimerSeries'] < results['aimerSeries']:
            achievements['maxAimerSeries'] = results['aimerSeries']
    isSPG = isVehicleSPG(vehTypeCompDescr)
    _updatePerBattleSeries(
        achievements, 'invincibleSeries', results['deathCount'] == 0
        and results['damageReceived'] == 0 and not isSPG)
    _updatePerBattleSeries(achievements, 'diehardSeries',
                           results['deathCount'] == 0 and not isSPG)
    _updateInBattleSeries(achievements, 'sniper', results)
    _updateInBattleSeries(achievements, 'killing', results)
    _updateInBattleSeries(achievements, 'piercing', results)
예제 #4
0
def __updateTankmanDossierImpl(dossierDescr, results):
    if not BONUS_CAPS.checkAny(results['bonusType'], BONUS_CAPS.DOSSIER_TOTAL):
        return
    dossierDescr['total']['battlesCount'] += 1
    if not BONUS_CAPS.checkAny(results['bonusType'], BONUS_CAPS.DOSSIER_ACHIEVEMENTS_15X15):
        return
    for recordDBID in results['achievements']:
        __processArenaAchievement(dossierDescr, recordDBID)
예제 #5
0
def updateRated7x7Dossier(dossierDescr, battleResults, dossierXP):
    bonusType = battleResults['bonusType']
    if BONUS_CAPS.checkAny(bonusType, BONUS_CAPS.DOSSIER_RATED7X7):
        __updateAggregatedValues(dossierDescr.expand('rated7x7'),
                                 dossierDescr.expand('rated7x7'),
                                 battleResults,
                                 dossierXP,
                                 frags8p=0)
    if BONUS_CAPS.checkAny(bonusType, BONUS_CAPS.DOSSIER_MAXRATED7X7):
        __updateMaxValues(dossierDescr.expand('maxRated7x7'), battleResults,
                          dossierXP)
예제 #6
0
 def onBecomePlayer(self):
     self.__enabled = BONUS_CAPS.checkAny(self.arenaBonusType, BONUS_CAPS.TEAM_HEALTH_BAR)
     if not self.__enabled:
         return
     else:
         self.__lastTeamHealthPercentage = None
         return
예제 #7
0
def getAchievementCondition(arenaBonusType, medal):
    if BONUS_CAPS.checkAny(arenaBonusType,
                           BONUS_CAPS.ACHIEVEMENT_CONDITIONS_EXT):
        if medal in ACHIEVEMENT_CONDITIONS_EXT:
            return ACHIEVEMENT_CONDITIONS_EXT[medal]
    return ACHIEVEMENT_CONDITIONS[
        medal] if medal in ACHIEVEMENT_CONDITIONS else {}
예제 #8
0
def __updateMarkOfMastery(dossierDescr, results):
    if not BONUS_CAPS.checkAny(results['bonusType'],
                               BONUS_CAPS.DOSSIER_MARK_OF_MASTERY):
        return
    achievements = dossierDescr['achievements']
    if achievements['markOfMastery'] < results['markOfMastery']:
        achievements['markOfMastery'] = results['markOfMastery']
 def __init__(self, arenaBonusType=0):
     self._tagsList = [
         tag for tag, func in PlanTags._tags.iteritems() if func()
     ]
     if arenaBonusType != 0:
         self._tagsList.extend(
             (bonusCapToTag(cap) for cap in BONUS_CAPS.get(arenaBonusType)))
예제 #10
0
def __updateMaxValuesWithAvatar(block, results):
    if BONUS_CAPS.checkAny(results['bonusType'], BONUS_CAPS.DOSSIER_MAXFALLOUT):
        kills = len(results['killList']) + results['avatarKills']
        if kills > 0 and kills >= block['maxFragsWithAvatar']:
            block['maxFragsWithAvatar'] = kills
        damageDealt = results['damageDealt'] + results['avatarDamageDealt']
        if damageDealt > 0 and damageDealt >= block['maxDamageWithAvatar']:
            block['maxDamageWithAvatar'] = damageDealt
 def __isDailyBonusVisible(self):
     if self.__getIsApplied():
         return True
     isBonusEnabled = self.__lobbyContext.getServerSettings().getAdditionalBonusConfig().get('enabled', False)
     bonusLeft = self.__itemsCache.items.stats.applyAdditionalXPCount
     hasPremium = self.__itemsCache.items.stats.isActivePremium(PREMIUM_TYPE.PLUS)
     isProperArena = ARENA_BONUS_TYPE_CAPS.checkAny(self.__arenaBonusType, ARENA_BONUS_TYPE_CAPS.ADDITIONAL_XP_POSTBATTLE)
     return hasPremium and isBonusEnabled and isProperArena and bonusLeft > 0
 def onBecomePlayer(self):
     self.__enabled = BONUS_CAPS.checkAny(self.arenaBonusType,
                                          BONUS_CAPS.RECOVERY_MECHANIC)
     if not self.__enabled:
         return
     else:
         self.__lastRecoveryArgs = None
         return
예제 #13
0
def __updateMarkOfMastery(dossierDescr, results):
    if not BONUS_CAPS.checkAny(results['bonusType'], BONUS_CAPS.DOSSIER_MARK_OF_MASTERY):
        return
    achievements = dossierDescr['achievements']
    markOfMasterField = 'marksOfMasteryCount{}'.format(results['markOfMastery'])
    if markOfMasterField in achievements:
        achievements[markOfMasterField] += 1
    if achievements['markOfMastery'] < results['markOfMastery']:
        achievements['markOfMastery'] = results['markOfMastery']
예제 #14
0
def createEquipmentCtrl(setup):
    isBattleRoyale = ARENA_BONUS_TYPE_CAPS.checkAny(setup.arenaEntity.bonusType, ARENA_BONUS_TYPE_CAPS.BATTLEROYALE)
    if isBattleRoyale:
        clazz = br_equipment_ctrl.BattleRoyaleEquipmentController
    elif setup.isReplayPlaying:
        clazz = equipment_ctrl.EquipmentsReplayPlayer
    else:
        clazz = equipment_ctrl.EquipmentsController
    return clazz()
예제 #15
0
def updateClubDossier(dossierDescr, battleResults, geometryID, teamInDefence):
    bonusType = battleResults['bonusType']
    if not BONUS_CAPS.checkAny(bonusType, BONUS_CAPS.DOSSIER_CLUB):
        return
    block = dossierDescr['total']
    block['lastBattleTime'] = int(time.time())
    block = dossierDescr.expand('clubBattles')
    block['battlesCount'] += 1
    team = battleResults['team']
    winnerTeam = battleResults['winnerTeam']
    if team == winnerTeam:
        block['wins'] += 1
    else:
        if winnerTeam == 0:
            LOG_ERROR(
                '[EXCEPTION] updateClubDossier(dossierDescr, battleResults, geometryID): draw is not allowed for cybersport rated battles.'
            )
        block['losses'] += 1
    for record in ('killedVehicles', 'lostVehicles', 'damageDealt',
                   'damageReceived', 'capturePoints', 'droppedCapturePoints'):
        block[record] += battleResults['club'][record]

    isInAttack = team != teamInDefence
    if isInAttack:
        block['battlesCountInAttack'] += 1
        block['damageDealtInAttack'] += battleResults['club']['damageDealt']
    else:
        block['damageDealtInDefence'] += battleResults['club']['damageDealt']
    block = dossierDescr['vehicles']
    for typeCompDescr, xp in battleResults['club']['vehicles']:
        battlesCount, experience = block.get(typeCompDescr, (0, 0))
        block[typeCompDescr] = (battlesCount + 1, experience + xp)

    block = dossierDescr['maps']
    battlesCount, wins = block.get(geometryID, (0, 0))
    block[geometryID] = (battlesCount + 1,
                         wins + 1 if team == winnerTeam else 0)
    if BONUS_CAPS.checkAny(bonusType,
                           BONUS_CAPS.DOSSIER_ACHIEVEMENTS_RATED7X7):
        for recordDBID in battleResults['club']['achievements']:
            __processArenaAchievement(dossierDescr, recordDBID)

        _updatePerBattleSeries(dossierDescr['achievementsRated7x7'],
                               'victoryMarchSeries', team == winnerTeam)
예제 #16
0
 def _assembleBonusCapsComponents(componentSystem):
     from arena_component_system.assembler_helper import ARENA_BONUS_TYPE_CAP_COMPONENTS
     for name, (
             bonusFlag,
             componentClass) in ARENA_BONUS_TYPE_CAP_COMPONENTS.iteritems():
         isBonusTypeCapActive = ARENA_BONUS_TYPE_CAPS.checkAny(
             componentSystem.bonusType, bonusFlag)
         if isBonusTypeCapActive:
             ClientArenaComponentAssembler._addArenaComponent(
                 componentSystem, name, componentClass)
예제 #17
0
def __updateMarksOnGun(dossierDescr, results):
    if not BONUS_CAPS.checkAny(results['bonusType'], BONUS_CAPS.DOSSIER_MARKS_ON_GUN):
        return
    achievements = dossierDescr['achievements']
    damageRating = int(results['damageRating'] * 100)
    if damageRating != 0:
        achievements['damageRating'] = damageRating
    achievements['movingAvgDamage'] = results['movingAvgDamage']
    if achievements['marksOnGun'] < results['marksOnGun']:
        achievements['marksOnGun'] = results['marksOnGun']
예제 #18
0
 def _setupPlugins(self, arenaVisitor):
     setup = {'equipments': plugins.EquipmentsPlugin,
      'vehicles': plugins.ArenaVehiclesPlugin,
      'personal': plugins.PersonalEntriesPlugin,
      'area': plugins.AreaStaticMarkerPlugin,
      'area_markers': plugins.AreaMarkerEntriesPlugin,
      'spgShot': plugins.EnemySPGShotPlugin}
     arenaBonusType = BigWorld.player().arenaBonusType
     if arenaBonusType and BONUS_CAPS.checkAny(arenaBonusType, BONUS_CAPS.DEATHZONES):
         setup['deathzones'] = plugins.DeathZonesMinimapPlugin
     return setup
예제 #19
0
 def setTotalCount(self, vehicles, teams):
     isSquad = ARENA_BONUS_TYPE_CAPS.checkAny(getArena().bonusType,
                                              ARENA_BONUS_TYPE_CAPS.SQUADS)
     countText = str(vehicles)
     if isSquad:
         countText = ' '.join(
             (countText,
              self.__ADDITIONAL_FRAG_TEMPLATE.format(
                  backport.text(
                      R.strings.battle_royale.fragPanel.squadsCount(),
                      squadsCount=str(teams)))))
     self.as_setLeftFieldS(countText)
예제 #20
0
def __updateMarkOfMastery(dossierDescr, results):
    """
    Updates markOfMastery medal for vehicle.
    :param dossierDescr: vehicle dossier.
    :param results: battle results.
    """
    if not BONUS_CAPS.checkAny(results['bonusType'],
                               BONUS_CAPS.DOSSIER_MARK_OF_MASTERY):
        return
    achievements = dossierDescr['achievements']
    if achievements['markOfMastery'] < results['markOfMastery']:
        achievements['markOfMastery'] = results['markOfMastery']
예제 #21
0
def getAchievementCondition(arenaBonusType, medal):
    """
    Returns condition for medal depending on arena bonus type.
    :param arenaBonusType: arena bonus type.
    :param medal: medal name.
    :return: dict with medal conditions. See ACHIEVEMENT_CONDITIONS and other conditions.
    """
    if BONUS_CAPS.checkAny(arenaBonusType,
                           BONUS_CAPS.ACHIEVEMENT_CONDITIONS_EXT):
        return ACHIEVEMENT_CONDITIONS_EXT.get(medal,
                                              ACHIEVEMENT_CONDITIONS[medal])
    return ACHIEVEMENT_CONDITIONS[medal]
예제 #22
0
def __updateAccountDossierCuts(dossierDescr, results, dossierXP,
                               vehTypeCompDescr, vehDossierDescr):
    if not vehDossierDescr is not None:
        raise AssertionError
        bonusType = results['bonusType']
        if BONUS_CAPS.checkAny(bonusType, BONUS_CAPS.DOSSIER_15X15):
            a15x15Cut = dossierDescr['a15x15Cut']
            vehA15x15 = vehDossierDescr['a15x15']
            a15x15Cut[vehTypeCompDescr] = (
                vehA15x15['battlesCount'], vehA15x15['wins'],
                vehDossierDescr['achievements']['markOfMastery'],
                vehA15x15['xp'])
        if BONUS_CAPS.checkAny(bonusType, BONUS_CAPS.DOSSIER_7X7):
            a7x7Cut = dossierDescr['a7x7Cut']
            vehA7x7 = vehDossierDescr['a7x7']
            a7x7Cut[vehTypeCompDescr] = (vehA7x7['battlesCount'],
                                         vehA7x7['wins'], vehA7x7['xp'],
                                         vehA7x7['originalXP'],
                                         vehA7x7['damageDealt'],
                                         vehA7x7['damageAssistedRadio'],
                                         vehA7x7['damageAssistedTrack'])
        if BONUS_CAPS.checkAny(bonusType, BONUS_CAPS.DOSSIER_SORTIE):
            sortieCut = dossierDescr['fortSortiesCut']
            vehSortie = vehDossierDescr['fortSorties']
            sortieCut[vehTypeCompDescr] = (vehSortie['battlesCount'],
                                           vehSortie['wins'], vehSortie['xp'])
        if BONUS_CAPS.checkAny(bonusType, BONUS_CAPS.DOSSIER_FORT_BATTLE):
            battleCut = dossierDescr['fortBattlesCut']
            vehBattles = vehDossierDescr['fortBattles']
            battleCut[vehTypeCompDescr] = (vehBattles['battlesCount'],
                                           vehBattles['wins'],
                                           vehBattles['xp'])
        if BONUS_CAPS.checkAny(bonusType, BONUS_CAPS.DOSSIER_RATED7X7):
            rated7x7Cut = dossierDescr['rated7x7Cut']
            vehRated7x7 = vehDossierDescr['rated7x7']
            rated7x7Cut[vehTypeCompDescr] = (
                vehRated7x7['battlesCount'], vehRated7x7['wins'],
                vehRated7x7['xp'], vehRated7x7['originalXP'],
                vehRated7x7['damageDealt'], vehRated7x7['damageAssistedRadio'],
                vehRated7x7['damageAssistedTrack'])
        if BONUS_CAPS.checkAny(bonusType, BONUS_CAPS.DOSSIER_GLOBAL_MAP):
            globalMapCommonCut = dossierDescr['globalMapCommonCut']
            vehGlobalMapCommon = vehDossierDescr['globalMapCommon']
            globalMapCommonCut[vehTypeCompDescr] = (
                vehGlobalMapCommon['battlesCount'], vehGlobalMapCommon['wins'],
                vehGlobalMapCommon['xp'])
        falloutAccountDossierCut = BONUS_CAPS.checkAny(
            bonusType,
            BONUS_CAPS.DOSSIER_FALLOUT) and dossierDescr['falloutCut']
        falloutVehicleDossier = vehDossierDescr['fallout']
        falloutAccountDossierCut[vehTypeCompDescr] = (
            falloutVehicleDossier['battlesCount'],
            falloutVehicleDossier['wins'], falloutVehicleDossier['xp'],
            falloutVehicleDossier['winPoints'])
    return
예제 #23
0
def initAttackManager(arena):
    global _g_instance
    visual = caps.checkAny(
        arena.bonusType,
        caps.GAS_ATTACK_MECHANICS) and arena.arenaType.gameplayName in (
            'fallout', 'fallout2', 'fallout3') and getattr(
                arena.arenaType, 'gasAttackVisual', None)
    if not visual is not None:
        raise AssertionError(
            'Gas attack visual should be defined for arena bonus type: %d' %
            arena.bonusType)
        _g_instance = GasAttackManager(visual)
    return
 def __init__(self, componentSystem):
     ClientArenaComponent.__init__(self, componentSystem)
     self.__playerGroupsEnabled = componentSystem.arenaType.numPlayerGroups > 0
     LOG_DEBUG_DEV('PlayerDataComponent.__playerGroupsEnabled ',
                   self.__playerGroupsEnabled,
                   componentSystem.arenaType.numPlayerGroups > 0)
     self.onPlayerGroupsUpdated = Event.Event(self._eventManager)
     self.__playerIngameRanksEnabled = BONUS_CAPS.checkAny(
         componentSystem.bonusType, BONUS_CAPS.PLAYER_RANK_MECHANICS)
     self.__playerRank = None
     self.onVehicleRanksUpdated = Event.Event(self._eventManager)
     self.onPlayerRankUpdated = Event.Event(self._eventManager)
     return
예제 #25
0
 def showSpawnPoints(self):
     visibleComponents = [BATTLE_VIEW_ALIASES.BR_SELECT_RESPAWN]
     if ARENA_BONUS_TYPE_CAPS.checkAny(BigWorld.player().arena.bonusType,
                                       ARENA_BONUS_TYPE_CAPS.SQUADS):
         visibleComponents.extend([
             BATTLE_VIEW_ALIASES.BATTLE_TEAM_PANEL,
             BATTLE_VIEW_ALIASES.BATTLE_MESSENGER
         ])
     if not self.__selectSpawnToggling:
         self.__selectSpawnToggling.update(
             set(self.as_getComponentsVisibilityS()) -
             set(visibleComponents))
     self._setComponentsVisibility(visible=visibleComponents,
                                   hidden=self.__selectSpawnToggling)
     self.app.enterGuiControlMode(BATTLE_VIEW_ALIASES.BR_SELECT_RESPAWN)
예제 #26
0
def __updateMarksOnGun(dossierDescr, results):
    """
    Updates marksOnGun medal for vehicle and related statistics.
    :param dossierDescr: vehicle dossier.
    :param results: battle results.
    """
    if not BONUS_CAPS.checkAny(results['bonusType'],
                               BONUS_CAPS.DOSSIER_MARKS_ON_GUN):
        return
    achievements = dossierDescr['achievements']
    damageRating = int(results['damageRating'] * 100)
    if damageRating != 0:
        achievements['damageRating'] = damageRating
    achievements['movingAvgDamage'] = results['movingAvgDamage']
    if achievements['marksOnGun'] < results['marksOnGun']:
        achievements['marksOnGun'] = results['marksOnGun']
예제 #27
0
 def start(self):
     self.__settings = AccountSettings.getSettings(RADAR_HINT_SECTION)
     self._updateCounterOnStart(self.__settings, self._HINT_DAY_COOLDOWN,
                                self._HINT_BATTLES_COOLDOWN)
     arenaDP = self._sessionProvider.getArenaDP()
     self.__isObserver = arenaDP.getVehicleInfo().isObserver(
     ) if arenaDP is not None else False
     arena = BigWorld.player().arena
     if arena is not None:
         self.__isEnabled = ARENA_BONUS_TYPE_CAPS.checkAny(
             arena.bonusType, ARENA_BONUS_TYPE_CAPS.RADAR)
     if self._sessionProvider.dynamic.radar:
         self._sessionProvider.dynamic.radar.addRuntimeView(self)
     vStateCtrl = self._sessionProvider.shared.vehicleState
     if vStateCtrl:
         vStateCtrl.onPostMortemSwitched += self.__onPostMortemSwitched
         vStateCtrl.onVehicleStateUpdated += self.__onVehicleStateUpdated
     return
예제 #28
0
 def _buildVehicle(self, vehicle):
     result = super(FunRandomCarouselDataProvider,
                    self)._buildVehicle(vehicle)
     state, _ = vehicle.getState()
     if state == Vehicle.VEHICLE_STATE.UNSUITABLE_TO_QUEUE:
         validationResult = self.__controller.isSuitableVehicle(vehicle)
         resPath = R.strings.fun_random.funRandomCarousel.lockedTooltip
         if validationResult is not None:
             result['lockedTooltip'] = getUnsuitable2queueTooltip(
                 validationResult, resPath)
     result['isEarnCrystals'] = result[
         'isEarnCrystals'] and self.__isCrystalsFarmEnabled
     if not ARENA_BONUS_TYPE_CAPS.checkAny(
             ARENA_BONUS_TYPE.FUN_RANDOM,
             ARENA_BONUS_TYPE_CAPS.DAILY_MULTIPLIED_XP):
         result['xpImgSource'] = ''
     result['tooltip'] = TOOLTIPS_CONSTANTS.FUN_RANDOM_CAROUSEL_VEHICLE
     return result
예제 #29
0
def __updateMaxValues(block, results, dossierXP):
    maxValuesChanged = []
    if dossierXP != 0 and dossierXP >= block['maxXP']:
        block['maxXP'] = dossierXP
        maxValuesChanged.append('maxXPVehicle')
    kills = len(results['killList'])
    if kills > 0 and kills >= block['maxFrags']:
        block['maxFrags'] = kills
        maxValuesChanged.append('maxFragsVehicle')
    damageDealt = results['damageDealt']
    if damageDealt > 0 and damageDealt >= block['maxDamage']:
        block['maxDamage'] = damageDealt
        maxValuesChanged.append('maxDamageVehicle')
    if BONUS_CAPS.checkAny(results['bonusType'], BONUS_CAPS.DOSSIER_MAXFALLOUT):
        winPoints = results['winPoints']
        if winPoints > 0 and winPoints >= block['maxWinPoints']:
            block['maxWinPoints'] = winPoints
        maxValuesChanged.append('maxWinPointsVehicle')
    return maxValuesChanged
예제 #30
0
 def __init__(self, componentSystem):
     ClientArenaComponent.__init__(self, componentSystem)
     self.__playerGroupsEnabled = componentSystem.arenaType.numPlayerGroups > 0
     LOG_DEBUG_DEV('PlayerDataComponent.__playerGroupsEnabled ',
                   self.__playerGroupsEnabled,
                   componentSystem.arenaType.numPlayerGroups > 0)
     if self.__playerGroupsEnabled:
         self.addSyncDataCallback(ARENA_SYNC_OBJECTS.PLAYER_GROUP,
                                  'playerGroups',
                                  self._vehiclePlayerGroupsUpdated)
     self.onPlayerGroupsUpdated = Event.Event(self._eventManager)
     self.__playerIngameRanksEnabled = BONUS_CAPS.checkAny(
         componentSystem.bonusType, BONUS_CAPS.PLAYER_RANK_MECHANICS)
     if self.__playerIngameRanksEnabled:
         self.addSyncDataCallback(ARENA_SYNC_OBJECTS.PLAYER_RANK,
                                  'ranksByTeam', self.__onTeamRanksUpdated)
     self.__playerRank = None
     self.onVehicleRanksUpdated = Event.Event(self._eventManager)
     self.onPlayerRankUpdated = Event.Event(self._eventManager)
     return