示例#1
0
 def __call__(self, account, ob, **kw):
     ob = ob or getObject(kw['idTypeList'])
     adaptedOB = super(ISellPriceUpgradeAdapter,
                       self).__call__(account, ob, **kw)
     from db.DBLogic import g_instance
     adaptedOB['credits'] = g_instance.getUpgradeSellPrice(ob)
     return adaptedOB
示例#2
0
 def view(self, account, requestID, idTypeList, ob=None, **kw):
     if ob is not None:
         return ob
     else:
         return getObject(
             idTypeList,
             account) or idTypeList == EMPTY_IDTYPELIST and account or None
 def updateSpecs(self):
     if self.__lobby is None:
         return
     else:
         selectedPlane = self.getCarouselAirplaneSelected()
         if selectedPlane:
             selectedPlane.clearSpecsTable()
             globalID = self.inventory.getInstalledUpgradesGlobalID(selectedPlane.planeID)
             player = self.__lobby.getPlayer()
             if player is not None:
                 from exchangeapi.ErrorCodes import SUCCESS
                 idTypeList = [[globalID, 'planePreset'], [Settings.g_instance.gameUI['measurementSystem'], 'measurementSystem']]
                 player.responseSender(idTypeList, 'IConfigSpecs', getObject(idTypeList), SUCCESS, 'view')
                 idTypeList = [[globalID, 'planePreset']]
                 player.responseSender(idTypeList, 'IShortConfigSpecs', getObject(idTypeList), SUCCESS, 'view')
         return
 def __call__(self, account, ob, **kw):
     ob = ob or getObject(kw['idTypeList'])
     adaptedOB = super(IRentSchemeAdapter,
                       self).__call__(account, ob.options, **kw)
     adaptedOB['rentScheme'] = [
         el.__dict__ for el in adaptedOB['rentScheme'].price
     ] if adaptedOB['rentScheme'] and IS_CHINA else []
     return adaptedOB
示例#5
0
 def __call__(self, account, ob, **kw):
     adaptedOb = super(IClassPlaneAdapter, self).__call__(account, ob, **kw)
     plane = getObject(kw['idTypeList'])
     if plane is not None and adaptedOb['classValue'] is not None:
         adaptedOb['classIcoPath'] = PLANE_TYPE_ICO_PATH.icon(
             plane.planeType, adaptedOb['classValue'])
     else:
         adaptedOb['classIcoPath'] = ''
     return adaptedOb
 def __call__(self, account, ob, **kw):
     ob = ob or getObject(kw['idTypeList'])
     adaptedOB = super(IPriceUpgradeAdapter,
                       self).__call__(account, ob, **kw)
     from db.DBLogic import g_instance as dbInst
     price = list(dbInst.getUpgradePrice(ob))
     if kw['idTypeList'][0][1] in ALLOW_CREDIT_BUYS and price[1] > 0:
         price[0] = price[1] * _economics.Economics.goldRateForCreditBuys
     adaptedOB['price'] = price
     return adaptedOB
示例#7
0
 def __call__(self, account, ob, **kw):
     from db.DBLogic import g_instance as db_instance
     ob = ob or getObject(kw['idTypeList'])
     adaptedOB = super(INationShellAdapter,
                       self).__call__(account, ob, **kw)
     if ob is not None:
         adaptedOB['nationID'] = db_instance.getNationIDbyName(ob.country)
         adaptedOB['flagPath'] = NATION_FLAG_TEMPLATE.format(ob.country)
     else:
         adaptedOB['nationID'] = -1
         adaptedOB['flagPath'] = ''
     return adaptedOB
示例#8
0
 def __call__(self, account, ob, **kw):
     from db.DBLogic import g_instance as db_instance
     ob = ob or getObject(kw['idTypeList'])
     adaptedOB = super(INationUpgradeAdapter,
                       self).__call__(account, ob, **kw)
     if hasattr(ob, 'variant'):
         planeID = db_instance.getAircraftIDbyName(
             ob.variant[0].aircraftName)
         data = db_instance.getAircraftData(planeID)
         adaptedOB['nationID'] = db_instance.getNationIDbyName(
             data.airplane.country)
         adaptedOB['flagPath'] = NATION_FLAG_TEMPLATE.format(
             data.airplane.country)
     return adaptedOB
示例#9
0
    def __call__(self, account, ob, **kw):
        from db.DBLogic import g_instance as db_instance
        ob = ob or getObject(kw['idTypeList'])
        adaptedOB = super(INationListAdapter, self).__call__(account, ob, **kw)
        adaptedOB['nationIDList'] = []
        adaptedOB['flagPathList'] = []
        if ob is not None:
            for x in ob.nations:
                adaptedOB['nationIDList'].append(
                    db_instance.getNationIDbyName(x))
                adaptedOB['flagPathList'].append(
                    NATION_FLAG_TEMPLATE.format(x))

        return adaptedOB
示例#10
0
def getBotName(playerName, planeID, country=None):
    if playerName.find(
            BOT_NAME_PREFFIX) == 0 and playerName.find(BOT_NAME_SUFFIX) != 0:
        nameIndex = int(playerName[playerName.find(BOT_NAME_PREFFIX) +
                                   1:playerName.find(BOT_NAME_SUFFIX)])
        poBodyTypeIndex = CREW_BODY_TYPE_LOCALIZE_PO_INDEX[
            DEFAULT_CREW_BODY_TYPE]
        if country is None:
            country = getObject([[planeID, 'plane']]).country
        return localizePilot(
            CONTRY_PO_FILE_WRAPPER[country], FIRST_NAME_MSG_ID %
            (CONTRY_MSG_ID_WRAPPER[country], poBodyTypeIndex, nameIndex))
    else:
        return playerName
        return
示例#11
0
 def processBaseItem(idTypeList, ifacename, data):
     from exchangeapi.AdapterUtils import getAdapter
     from exchangeapi.Connectors import getObject
     idList, typeList = splitIDTypeList(idTypeList)
     adapter = getAdapter(ifacename, typeList)
     ob = getattr(adapter, request.method)(
         account=account,
         data=data,
         requestID=requestID,
         initByServer=initByServer,
         idTypeList=idTypeList,
         ob=OBJECTS.setdefault(idFromList(typeList), {}).setdefault(
             idFromList(idList), getObject(
                 idTypeList, account))) if adapter else None
     return (ob, adapter)
示例#12
0
 def __call__(self, account, ob, **kw):
     from db.DBLogic import g_instance as db_instance
     ob = ob or getObject(kw['idTypeList'])
     adaptedOB = super(INationAmmoBeltAdapter,
                       self).__call__(account, ob, **kw)
     adaptedOB['nationID'] = -1
     adaptedOB['flagPath'] = ''
     if ob is not None:
         guns = db_instance.getBeltSuitableGuns(ob.id)
         if guns:
             adaptedOB['nationID'] = db_instance.getNationIDbyName(
                 guns[0].country)
             adaptedOB['flagPath'] = NATION_FLAG_TEMPLATE.format(
                 guns[0].country)
     return adaptedOB
示例#13
0
 def __call__(self, account, ob, **kw):
     name = ob.client.name.locale
     description = ob.client.description.locale
     planeId = part2bomber(ob.id)
     bigIconPath = ob.client.icon.big
     smallIconPath = ob.client.icon.small
     position = ob.client.place
     adaptedOB = super(IBomberPartAdapter,
                       self).__call__(account, getObject(kw['idTypeList']),
                                      **kw)
     if adaptedOB:
         adaptedOB['name'] = localizeLobby(name)
         adaptedOB['description'] = localizeTooltips(description)
         adaptedOB['planeID'] = planeId
         adaptedOB['bigIconPath'] = bigIconPath
         adaptedOB['smallIconPath'] = smallIconPath
         adaptedOB['position'] = position
     return adaptedOB
示例#14
0
 def __call__(self, account, ob, **kw):
     if ob is None:
         return ob
     else:
         adaptedOB = super(IEquipmentAdapter,
                           self).__call__(account,
                                          getObject(kw['idTypeList']), **kw)
         adaptedOB['buyAvailable'] = ob.buyAvailable
         adaptedOB['minLevel'] = ob.minLevel
         adaptedOB['maxLevel'] = ob.maxLevel
         from db.DBLogic import g_instance as dbInst
         adaptedOB['nations'] = [
             dbInst.getNationIDbyName(x) for x in ob.nations
         ]
         adaptedOB['name'] = localizeLobby(adaptedOB['name'])
         adaptedOB['description'] = localizeLobby(adaptedOB['description'])
         adaptedOB[
             'suitablePlaneIDs'] = dbInst.getAvailablePlanesByEquipmentID(
                 kw['idTypeList'][0][0])
         return adaptedOB
    def __call__(self, account, ob, **kw):
        if ob is None:
            return ob
        else:

            def localizeIfNotEmpty(tag):
                ret = localizeLobby(tag)
                if ret == tag:
                    return ''
                return ret

            adaptedOB = super(IConsumableAdapter,
                              self).__call__(account,
                                             getObject(kw['idTypeList']), **kw)
            adaptedOB['buyAvailable'] = ob.buyAvailable
            adaptedOB['name'] = localizeLobby(adaptedOB['name'])
            adaptedOB['description'] = localizeLobby(adaptedOB['description'])
            adaptedOB['fullDescription'] = localizeLobby(
                adaptedOB['fullDescription'])
            adaptedOB['effectContinuous'] = localizeIfNotEmpty(
                adaptedOB['effectContinuous'])
            adaptedOB['effectOnUse'] = localizeIfNotEmpty(
                adaptedOB['effectOnUse'])
            from db.DBLogic import g_instance as dbInst
            adaptedOB['minLevel'] = ob.minLevel
            adaptedOB['maxLevel'] = ob.maxLevel
            adaptedOB['nations'] = [
                dbInst.getNationIDbyName(x) for x in ob.nations
            ]
            adaptedOB['planeTypes'] = ob.planeType
            adaptedOB['coolDownTime'] = ob.coolDownTime
            adaptedOB['effectTime'] = ob.effectTime
            adaptedOB['chargesCount'] = ob.chargesCount
            adaptedOB[
                'suitablePlaneIDs'] = dbInst.getAvailablePlanesByConsumableID(
                    kw['idTypeList'][0][0])
            adaptedOB['behaviour'] = ob.behaviour
            adaptedOB['readyOnRespawn'] = ob.readyOnRespawn
            adaptedOB['isExclusive'] = ob.isExclusive
            return adaptedOB
    def __call__(self, account, ob, **kw):
        ob = ob or getObject(kw['idTypeList'])
        adaptedOB = super(IQuestDynDescriptionAdapter,
                          self).__call__(account, ob, **kw)
        for n in ('description', ):
            adaptedOB[n], _dynVar = adaptedOB[n]
            if adaptedOB[n].isupper():
                adaptedOB[n] = localizeLobby(adaptedOB[n], **_dynVar)
            else:
                adaptedOB[n] = adaptedOB[n].format(**_dynVar)

        if 'PACK_DUNKIRK_1595Q' in adaptedOB['tokens']:
            adaptedOB['awards'].extend([{
                'type': 'plane',
                'id': 1595
            }, {
                'type': 'camouflage',
                'id': -1362167281
            }, {
                'type': 'crewmember',
                'id': 4
            }, {
                'type': 'slots',
                'value': 1
            }])
        if 'PACK_DUNKIRK_5593Q' in adaptedOB['tokens']:
            adaptedOB['awards'].extend([{
                'type': 'plane',
                'id': 5593
            }, {
                'type': 'camouflage',
                'id': -1513881259
            }, {
                'type': 'crewmember',
                'id': 5
            }, {
                'type': 'slots',
                'value': 1
            }])
        return adaptedOB
    def __call__(self, account, ob, **kw):
        ob = ob or getObject(kw['idTypeList'])
        adaptedOB = super(IQuestDescriptionAdapter, self).__call__(account, ob, **kw)
        for n in ('name',):
            adaptedOB[n], _dynVar = adaptedOB[n]
            if adaptedOB[n].isupper():
                adaptedOB[n] = localizeLobby(adaptedOB[n], **_dynVar)
                if adaptedOB[n].isupper():
                    adaptedOB[n] = localizeAchievements(adaptedOB[n])
            else:
                adaptedOB[n] = adaptedOB[n].format(**_dynVar)

        if 'names' in adaptedOB['maps']:
            import db.DBLogic
            from Helpers.i18n import localizeMap
            locationMap = {}
            for locationData in db.DBLogic.g_instance.getArenaList():
                locationMap[locationData.typeID] = locationData.typeName

            locationMap[-1] = 'map_undefined'
            names = (localizeMap(locationMap[mapID].upper()) for mapID in adaptedOB['maps']['names'])
            adaptedOB['maps']['names'] = list(names)
        return adaptedOB
 def __call__(self, account, ob, **kw):
     ob = super(ICrewMemberAdapter, self).__call__(account, ob, **kw)
     from exchangeapi.Connectors import getObject
     country = getObject([[ob['planeSpecializedOn'], 'plane']]).country
     bodyTypeStr = CREW_BODY_TYPE_PATH[ob['bodyType']]
     bodyTypePO = CREW_BODY_TYPE_LOCALIZE_PO_INDEX[ob['bodyType']]
     icoIndex = ob['icoIndex']
     ob['firstName'] = localizePilot(
         CONTRY_PO_FILE_WRAPPER[country], FIRST_NAME_MSG_ID %
         (CONTRY_MSG_ID_WRAPPER[country], bodyTypePO, ob['firstName'] or 1))
     ob['lastName'] = localizePilot(
         CONTRY_PO_FILE_WRAPPER[country], LAST_NAME_MSG_ID %
         (CONTRY_MSG_ID_WRAPPER[country], bodyTypePO, ob['lastName'] or 1))
     rankID = ob['ranks']
     ob['ranks'] = localizePilot(
         CONTRY_PO_FILE_WRAPPER[country],
         RANKS_MSG_ID % (CONTRY_MSG_ID_WRAPPER[country], rankID))
     ob['rankIcoPath'] = RANKS_ICO_PATH % (country, rankID)
     ob['rankSmallIcoPath'] = RANKS_MINI_ICO_PATH % (country, rankID)
     ob['specialization'] = SpecializationSkillDB[ob['specialization']].id
     ob['crewIcoPath'] = CREW_ICO_PATH % (country, bodyTypeStr, icoIndex)
     ob['miniIcoPath'] = MINI_ICO_PATH % (country, bodyTypeStr, icoIndex)
     ob['infoIcoPath'] = INFO_ICO_PATH % (country, bodyTypeStr, icoIndex)
     ob['skills'] = sorted(
         ob['skills'],
         key=lambda skillID: getattr(SkillDB[skillID], 'uiIndex'))
     ob['nationIcoPath'] = COUNTRY_ICO_PATH % country
     from db.DBLogic import g_instance as db_instance
     ob['nationID'] = db_instance.getNationIDbyName(country)
     ob['maxSP'] = MAX_SKILL_SP
     nextRankID = getNextRank(rankID, ob['specialization'])
     ob['nextRankIcoPath'] = RANKS_ICO_PATH % (
         country, nextRankID) if nextRankID != rankID else ''
     ob['nextRank'] = localizePilot(
         CONTRY_PO_FILE_WRAPPER[country],
         RANKS_MSG_ID % (CONTRY_MSG_ID_WRAPPER[country], nextRankID))
     return ob
 def __call__(self, account, ob, **kw):
     ob = ob or getObject(kw['idTypeList'])
     adaptedOB = super(IPricePlaneAdapter, self).__call__(account, ob, **kw)
     adaptedOB['price'] = [getattr(ob.options, 'price', 0), getattr(ob.options, 'gold', 0)] if ob is not None else None
     return adaptedOB
示例#20
0
    def __call__(self, account, o, **kw):
        ob = getObject(kw['idTypeList'])
        adaptedOB = super(IAmmoBeltDescriptionAdapter,
                          self).__call__(account, ob, **kw)
        from db.DBLogic import g_instance as db_instance
        guns = db_instance.getBeltSuitableGuns(ob.id)
        planes = []
        globalMaxDamage = maxFireChance = 0
        globalMinDamage = minFireChance = 100000000
        gunNames = []
        gunUpgradeIds = []
        for gun in guns:
            upgrade = db_instance.upgrades.get(gun.name, None)
            if upgrade is None:
                continue
            for upgradeVariant in upgrade.variant:
                planeID = db_instance.getAircraftIDbyName(
                    upgradeVariant.aircraftName)
                planeData = db_instance.getAircraftData(planeID)
                availableAmmoTypes = AVAILABLE_BELTS_BY_PLANE_TYPE[
                    planeData.airplane.planeType]
                if ob.ammo[0] in availableAmmoTypes and planeID not in planes:
                    planes.append(planeID)

            minDamage, maxDamage = db_instance.calculateBeltMinMaxDamage(
                gun, ob)
            globalMaxDamage = max(maxDamage, globalMaxDamage)
            globalMinDamage = min(minDamage, globalMinDamage)
            fireChance, _ = db_instance.calculateBeltSpec(
                gun, ob, AMMOBELT_SPECS.FIRE_CHANCE)
            maxFireChance = max(fireChance, maxFireChance)
            minFireChance = min(fireChance, minFireChance)
            gunNames.append(localizeComponents('WEAPON_NAME_' + gun.weapName))
            gunUpgradeIds.append(upgrade.id)

        globalMinDamage = wowpRound(globalMinDamage, 2)
        globalMaxDamage = wowpRound(globalMaxDamage, 2)
        minFireChance = wowpRound(minFireChance, 3)
        maxFireChance = wowpRound(maxFireChance, 3)
        strDamage = str(
            globalMinDamage
        ) if globalMinDamage == globalMaxDamage else '{0}-{1}'.format(
            globalMinDamage, globalMaxDamage)
        if maxFireChance > 0:
            strFireChance = '{0}%'.format(
                minFireChance *
                100) if minFireChance == maxFireChance else '{0}-{1}%'.format(
                    minFireChance, maxFireChance)
        else:
            strFireChance = ''
        if guns:
            adaptedOB['caliber'] = wowpRound(guns[0].caliber, 2)
        else:
            adaptedOB['caliber'] = 0.0
        LOG_DEBUG(' TEST LOBBY ', vars(ob))
        adaptedOB['suitableGunIDs'] = gunUpgradeIds
        adaptedOB['hudIcoPath'] = get48ModuleIconPath(ob.lobbyIconPath)
        adaptedOB['suitablePlaneIDs'] = planes
        adaptedOB['name'] = localizeComponents('WEAPON_NAME_' + ob.ui_name)
        adaptedOB['beltType'] = ob.beltType
        adaptedOB['icoPathSmall'] = get24ModuleIconPath(ob.lobbyIconPath)
        adaptedOB['globalMaxDamage'] = globalMaxDamage
        adaptedOB['globalMinDamage'] = globalMinDamage
        adaptedOB['globalMaxFireChance'] = maxFireChance
        adaptedOB['globalMinFireChance'] = minFireChance
        adaptedOB['gunNames'] = ', '.join(set(gunNames))
        adaptedOB['shortDescription'] = '{0} {1}'.format(
            localizeLobby('MODULES_CHARACTERISTICS_DPS'), strDamage)
        adaptedOB['description'] = ''
        if strFireChance:
            adaptedOB['description'] += '\n{0} {1}'.format(
                localizeLobby(
                    'LOBBY_MAINTENANCE_MODULE_PARAMETER_FIRE_CHANSE'),
                strFireChance)
        adaptedOB['tooltipDescription'] = localizeTooltips(
            _BELT_TYPE_DESCRIPTION[
                ob.beltType]) if ob.beltType in _BELT_TYPE_DESCRIPTION else ''
        adaptedOB['buyAvailable'] = getattr(ob, 'buyAvailable', True)
        return adaptedOB