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
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
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
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
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
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
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
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)
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
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
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
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