def _getMarkerSymbol(self, vehicleID):
     vehicleArenaInfoVO = self.__sessionProvider.getArenaDP(
     ).getVehicleInfo(vehicleID)
     return settings.BRmarkersSymbolsNames.BRANDER_BOT_SYMBOL if isSpawnedBot(
         vehicleArenaInfoVO.vehicleType.tags) else super(
             BattleRoyaleVehicleMarkerPlugin,
             self)._getMarkerSymbol(vehicleID)
Exemplo n.º 2
0
 def playEffect(self, kind, *modifs):
     self._stopEffects()
     if kind == 'empty' or self._vehicle is None:
         return
     else:
         enableDecal = True
         if kind in ('explosion', 'destruction') and self.isFlying:
             enableDecal = False
         if self.isUnderwater:
             if kind not in ('submersionDeath',):
                 return
         effects = self.typeDescriptor.type.effects[kind]
         if not effects:
             return
         vehicle = self._vehicle
         effects = random.choice(effects)
         args = dict(isPlayerVehicle=vehicle.isPlayerVehicle, showShockWave=vehicle.isPlayerVehicle, showFlashBang=vehicle.isPlayerVehicle, entity_id=vehicle.id, isPlayer=vehicle.isPlayerVehicle, showDecal=enableDecal, start=vehicle.position + Math.Vector3(0.0, 1.0, 0.0), end=vehicle.position + Math.Vector3(0.0, -1.0, 0.0))
         if isSpawnedBot(self.typeDescriptor.type.tags) and kind in ('explosion', 'destruction'):
             if isPlayerAvatar():
                 if self.isFlying:
                     instantExplosionEff = self.typeDescriptor.type.effects['instantExplosion']
                     if instantExplosionEff:
                         effects = random.choice(instantExplosionEff)
                 BigWorld.player().terrainEffects.addNew(self._vehicle.position, effects[1], effects[0], None, **args)
         else:
             self.boundEffects.addNew(None, effects[1], effects[0], **args)
         return
Exemplo n.º 3
0
def _getVehicleData(arenaDP, vehArenaID):
    vTypeInfoVO = arenaDP.getVehicleInfo(vehArenaID).vehicleType
    vehicleClassTag = vTypeInfoVO.classTag or ''
    vehicleName = vTypeInfoVO.shortNameWithPrefix
    if isBattleRoyale(vTypeInfoVO.tags) and isSpawnedBot(vTypeInfoVO.tags):
        vehicleClassTag = ''
    return (vehicleName, vehicleClassTag)
    def format(self, vInfoVO, playerName=None):
        if isSpawnedBot(vInfoVO.vehicleType.tags):
            botVehID = vInfoVO.vehicleID
            botVehicle = BigWorld.entities.get(botVehID)
            if botVehicle:
                masterVehId = botVehicle.masterVehID
                for vI in self.__sessionProvider.getArenaDP(
                ).getVehiclesInfoIterator():
                    if vI.vehicleID == masterVehId:
                        vInfoVO = vI
                        break
                else:
                    defBotName = ' '
                    _logger.warning(
                        'The Master vehicle of a bot (id=%s) has not been found, use default name %s',
                        botVehID, defBotName)
                    vInfoVO = VehicleArenaInfoVO(botVehID)
                    return super(BattleRoyalePlayerFullNameFormatter,
                                 self).format(vInfoVO, playerName=defBotName)

            else:
                defBotName = ' '
                _logger.warning(
                    'Bot vehicle (id=%s) has not been found, use default name %s',
                    botVehID, defBotName)
                vInfoVO = VehicleArenaInfoVO(botVehID)
                return super(BattleRoyalePlayerFullNameFormatter,
                             self).format(vInfoVO, playerName=defBotName)
        selfFormat = super(BattleRoyalePlayerFullNameFormatter,
                           self).format(vInfoVO, playerName)
        return selfFormat
 def _setVehicleInfo(self,
                     vehicleID,
                     entry,
                     vInfo,
                     guiProps,
                     isSpotted=False):
     super(BattleRoyaleVehiclePlugin,
           self)._setVehicleInfo(vehicleID, entry, vInfo, guiProps,
                                 isSpotted)
     playerName = ''
     playerFakeName = ''
     playerClan = ''
     playerInfoVO = vInfo.player
     isSpawnedBotVehicle = isSpawnedBot(vInfo.vehicleType.tags)
     if guiProps.isFriend:
         if isSpawnedBotVehicle:
             marker = self.__getSquadBotVehMarker()
         else:
             marker = self.__getSquadVehMarker()
             playerName = playerInfoVO.name
             playerFakeName = playerInfoVO.fakeName
             playerClan = playerInfoVO.clanAbbrev
         entryName = 'squadman'
     else:
         if isSpawnedBotVehicle:
             marker = self.__getEnemyBotVehMarker()
         else:
             marker = self.__getEnemyVehMarker()
         entryName = 'enemy'
     self.parentObj.invoke(entry.getID(), 'show', marker, playerName,
                           playerFakeName, playerClan, entryName)
Exemplo n.º 6
0
def _getSpawnedBotMsgData(vehicleID, battleSessionProvider=None):
    ctx = battleSessionProvider.getCtx()
    vTypeInfoVO = ctx.getArenaDP().getVehicleInfo(vehicleID).vehicleType
    if isSpawnedBot(vTypeInfoVO.tags):
        botMasterPlayer = ctx.getPlayerFullName(vehicleID, showVehShortName=False)
        playerInfo = '%s (%s)' % (botMasterPlayer, vTypeInfoVO.shortNameWithPrefix)
        return ('ALLY_HIT', {'entity': playerInfo}, (('entity', vehicleID),))
    else:
        return None
Exemplo n.º 7
0
 def updateVehiclesStats(self, updated, arenaDP):
     getVehicleInfo = arenaDP.getVehicleInfo
     for _, vStatsVO in updated:
         vInfoVO = getVehicleInfo(vStatsVO.vehicleID)
         if isSpawnedBot(
                 vInfoVO.vehicleType.tags
         ) and vStatsVO.spottedStatus == VehicleSpottedStatus.SPOTTED:
             vehicleDescr = vehicles.VehicleDescr(
                 compactDescr=vInfoVO.vehicleType.strCompactDescr)
             if vehicleDescr.type.name == self.__KAMIKAZE_VEH_NAME:
                 BREvents.playSound(BREvents.KAMIKAZE_DETECTED)
    def __initSquadPlayers(self):
        self.__vehicleIDs = []
        arenaDP = self.__sessionProvider.getArenaDP()
        collection = vos_collections.AllyItemsCollection().ids(arenaDP)
        names = []
        clans = []
        for vId in collection:
            vInfoVO = arenaDP.getVehicleInfo(vId)
            playerVehId = BigWorld.player().observedVehicleID or arenaDP.getPlayerVehicleID()
            if not vInfoVO.isObserver() and playerVehId != vId and not isSpawnedBot(vInfoVO.vehicleType.tags):
                self.__vehicleIDs.append(vId)
                names.append(vInfoVO.player.name)
                clanAbbrev = getClanAbbrevString(vInfoVO.player.clanAbbrev) if vInfoVO.player.clanAbbrev else None
                clans.append(clanAbbrev)

        self.as_setInitDataS(backport.text(R.strings.battle_royale.playersPanel.title()), names, clans)
        return
 def __addMarkerToPool(self, vehicleID, vInfo, vProxy=None):
     if not vInfo.isAlive() and isSpawnedBot(vInfo.vehicleType.tags):
         return
     else:
         if vProxy is not None:
             matrixProvider = self._clazz.fetchMatrixProvider(vProxy)
             active = True
         else:
             matrixProvider = None
             active = False
         markerID = self._createMarkerWithMatrix(self._getMarkerSymbol(vehicleID), matrixProvider=matrixProvider, active=active)
         self._setMarkerRenderInfo(markerID, _VEHICLE_MARKER_MIN_SCALE, _VEHICLE_MARKER_BOUNDS, _INNER_VEHICLE_MARKER_BOUNDS, _VEHICLE_MARKER_CULL_DISTANCE, _VEHICLE_MARKER_BOUNDS_MIN_SCALE)
         marker = self._clazz(markerID, vehicleID, vProxy=vProxy, active=active, isPlayerTeam=vInfo.team == avatar_getter.getPlayerTeam())
         marker.onVehicleModelChanged += self.__onVehicleModelChanged
         self._markers[vehicleID] = marker
         if marker.isActive():
             if not marker.isAlive():
                 self.__updateMarkerState(markerID, 'dead', True, '')
                 self._setMarkerBoundEnabled(markerID, False)
             elif not avatar_getter.isVehicleAlive() and marker.getIsPlayerTeam():
                 self._setMarkerBoundEnabled(markerID, False)
         return marker
Exemplo n.º 10
0
 def _setVehicleInfo(self,
                     vehicleID,
                     entry,
                     vInfo,
                     guiProps,
                     isSpotted=False):
     super(BattleRoyaleVehiclePlugin,
           self)._setVehicleInfo(vehicleID, entry, vInfo, guiProps,
                                 isSpotted)
     playerName = ''
     playerFakeName = ''
     playerClan = ''
     playerInfoVO = vInfo.player
     isSpawnedBotVehicle = isSpawnedBot(vInfo.vehicleType.tags)
     if guiProps.isFriend:
         if isSpawnedBotVehicle:
             marker = self.__getBotVehMarker()
         else:
             marker = self.__getSquadVehMarker()
             playerName = playerInfoVO.name
             playerFakeName = playerInfoVO.fakeName
             playerClan = playerInfoVO.clanAbbrev
         entryName = 'squadman'
     else:
         if isSpawnedBotVehicle:
             marker = self.__getBotVehMarker()
         else:
             marker = self.__getEnemyVehMarker()
         entryName = 'enemy'
     if not self.__isMinimapSmall and not isSpawnedBotVehicle:
         marker = '_'.join((marker, 'big'))
     if avatar_getter.isVehiclesColorized():
         if self.__sessionProvider.arenaVisitor.getArenaBonusType(
         ) == ARENA_BONUS_TYPE.BATTLE_ROYALE_TRN_SOLO:
             playerName = ''
         entryName = 'team{}'.format(vInfo.team)
     self.parentObj.invoke(entry.getID(), 'show', marker, playerName,
                           playerFakeName, playerClan, entryName)
 def addVehicleInfo(self, vInfoVO, arenaDP):
     if not vInfoVO.isObserver() and vInfoVO.isAlive() and not isSpawnedBot(
             vInfoVO.vehicleType.tags):
         self.__addToVehicles(vInfoVO)
         self.__updateData()
 def __getVehicleMarker(self, vInfo=None):
     if vInfo and isSpawnedBot(vInfo.vehicleType.tags):
         return MarkersAs3Descr.AS_ADD_MARKER_BOT_VEHICLE
     return MarkersAs3Descr.AS_ADD_MARKER_ENEMY_VEHICLE if self.__isMinimapSmall else MarkersAs3Descr.AS_ADD_MARKER_ENEMY_VEHICLE_BIG
Exemplo n.º 13
0
def _isVehicleSpawnedBot(vehicleID, battleSessionProvider=None):
    ctx = battleSessionProvider.getCtx()
    vTypeInfoVO = ctx.getArenaDP().getVehicleInfo(vehicleID).vehicleType
    return isSpawnedBot(vTypeInfoVO.tags)
Exemplo n.º 14
0
 def __onVehicleEnterWorld(self, vehicle):
     if isSpawnedBot(vehicle.typeDescriptor.type.tags):
         highlightDelay = getKamikazeEquipmentDescr().clientVisuals.highlightDelay
         if highlightDelay >= 0.0:
             self.delayCallback(highlightDelay, self.__showEffect, vehicle.id)
Exemplo n.º 15
0
 def __needsMarker(vInfo):
     return vInfo.isAlive() or not isSpawnedBot(vInfo.vehicleType.tags)
 def updateVehiclesInfo(self, updated, arenaDP):
     super(BattleRoyaleVehicleMarkerPlugin,
           self).updateVehiclesInfo(updated, arenaDP)
     for _, vInfo in updated:
         if not vInfo.isAlive() and isSpawnedBot(vInfo.vehicleType.tags):
             self._hideVehicleMarker(vInfo.vehicleID)
 def invalidateVehicleStatus(self, flags, vInfo, arenaDP):
     if not vInfo.isAlive() and isSpawnedBot(vInfo.vehicleType.tags):
         self._hideVehicleMarker(vInfo.vehicleID)
Exemplo n.º 18
0
 def getActiveVehiclesGenerator(self):
     for vInfo in self.__vInfoVOs.itervalues():
         if not isSpawnedBot(
                 vInfo.vehicleType.tags) and not vInfo.isObserver():
             yield (vInfo, self.__vStatsVOs[vInfo.vehicleID])
Exemplo n.º 19
0
 def addVehicleInfo(self, vInfoVO, arenaDP):
     if not vInfoVO.isObserver() and vInfoVO.isAlive() and not isSpawnedBot(
             vInfoVO.vehicleType.tags):
         self.__vehicleTeams[vInfoVO.vehicleID] = vInfoVO.team
     self.__updateScore()