Example #1
0
def makeVehiclePostProgressionUnlockMsg(vehicle):
    msgKey = R.strings.system_messages.vehiclePostProgression.vehiclesUnlockPostProgression
    return makeSuccess(backport.text(msgKey.single.body(),
                                     vehicle=vehicle.userName),
                       msgType=SM_TYPE.InformationHeader,
                       msgPriority=NotificationPriorityLevel.HIGH,
                       msgData={'header': backport.text(msgKey.title())
                                }) if vehicle.postProgressionAvailability(
                                    unlockOnly=True) else makeSuccess()
Example #2
0
def makeSetSlotCategoryMsg(vehicle, slot):
    msgKey = R.strings.system_messages.vehiclePostProgression.setSlotCategory
    return makeSuccess(backport.text(msgKey.body(),
                                     vehicle=vehicle.userName,
                                     category=_getSlotCategoryName(slot)),
                       msgType=SM_TYPE.InformationHeader,
                       msgData={'header': backport.text(msgKey.title())},
                       msgPriority=NotificationPriorityLevel.HIGH
                       ) if slot is not None else makeSuccess()
Example #3
0
def makeChangeSlotCategoryMsg(vehicle, slot, price):
    msgKey = R.strings.system_messages.vehiclePostProgression.changeSlotCategory
    if slot is not None:
        userMsg = backport.text(msgKey.body(),
                                vehicle=vehicle.userName,
                                category=_getSlotCategoryName(slot))
        spentString = makeSpentString(price)
        return makeSuccess(' '.join((userMsg, spentString)),
                           msgType=SM_TYPE.ChangeSlotCategory)
    else:
        return makeSuccess()
Example #4
0
 def _successHandler(self, code, ctx=None):
     restoreInfo = ''
     sellForGold = self.vehicle.getSellPrice(preferred=True).getCurrency(byWeight=True) == Currency.GOLD
     if self.vehicle.isPremium and not self.vehicle.isUnique and not self.vehicle.isUnrecoverable and self.__lobbyContext.getServerSettings().isVehicleRestoreEnabled() and not sellForGold:
         timeKey, formattedTime = getTimeLeftInfo(self.itemsCache.items.shop.vehiclesRestoreConfig.restoreDuration)
         restoreInfo = backport.text(R.strings.system_messages.vehicle.restoreDuration.dyn(timeKey, R.invalid)(), time=formattedTime)
     additionalMsgs = []
     if self.__compensationRequired:
         additionalMsgs.append(makeCrewSkinCompensationMessage(self.__compensationAmount))
     if self.__hasPairModification:
         additionalMsgs.append(makeAllPairsDiscardMsg(self.vehicle.userName))
     g_tankActiveCamouflage[self.vehicle.intCD] = SeasonType.UNDEFINED
     msgCtx = {'vehName': self.vehicle.userName}
     if self.usedDemountKitsCount:
         msgCtx['countDK'] = self.usedDemountKitsCount
     if self.isDismantlingForMoney:
         msgCtx['gainMoney'] = formatPrice(self.gainMoney)
         msgCtx['spendMoney'] = formatPrice(self.spendMoney)
     else:
         msgCtx['money'] = formatPrice(self.gainMoney)
     if not self.isRemovedAfterRent:
         msgCtx['restoreInfo'] = restoreInfo
     sysMsgR = R.strings.system_messages.dyn('vehicle_remove' if self.isRemovedAfterRent else 'vehicle_sell', R.invalid)
     if sysMsgR:
         sysMsgR = sysMsgR.dyn('success_dismantling' if self.isDismantlingForMoney else 'success', R.invalid)
     if sysMsgR and self.usedDemountKitsCount:
         sysMsgR = sysMsgR.dyn('with_demount_kit', R.invalid)
     if self.isRemovedAfterRent:
         smType = SM_TYPE.Remove
     elif sellForGold:
         smType = SM_TYPE.SellingForGold
     else:
         smType = SM_TYPE.Selling
     return makeSuccess(userMsg=backport.text(sysMsgR(), **msgCtx), msgType=smType, auxData=additionalMsgs)
Example #5
0
 def _successHandler(self, code, ctx=None):
     messageType = MESSENGER.SERVICECHANNELMESSAGES_SYSMSG_CUSTOMIZATIONS_SELL
     if ctx is not None and 'count' in ctx:
         self.count = ctx['count']
     if self.count > 0:
         SystemMessages.pushI18nMessage(messageType, type=SM_TYPE.Selling, **self._getMsgCtx())
     return makeSuccess(auxData=ctx)
Example #6
0
    def _successHandler(self, code, ctx=None):
        additionalMessages = []
        if ctx.get('shells', []):
            totalPrice = MONEY_UNDEFINED
            for shellCompDescr, price, count in ctx.get('shells', []):
                price = Money.makeFromMoneyTuple(price)
                shell = self.itemsCache.items.getItemByCD(shellCompDescr)
                additionalMessages.append(
                    makeI18nSuccess('shell_buy/success',
                                    name=shell.userName,
                                    count=count,
                                    money=formatPrice(price),
                                    type=self._getSysMsgType(price)))
                totalPrice += price

            additionalMessages.append(
                makeI18nSuccess('layout_apply/success_money_spent',
                                money=formatPrice(totalPrice),
                                type=self._getSysMsgType(totalPrice)))
        if ctx.get('eqs', []):
            for eqCompDescr, price, count in ctx.get('eqs', []):
                price = Money.makeFromMoneyTuple(price)
                equipment = self.itemsCache.items.getItemByCD(eqCompDescr)
                additionalMessages.append(
                    makeI18nSuccess('artefact_buy/success',
                                    kind=equipment.userType,
                                    name=equipment.userName,
                                    count=count,
                                    money=formatPrice(price),
                                    type=self._getSysMsgType(price)))

        return makeSuccess(auxData=additionalMessages)
Example #7
0
def makePurchaseStepsMsg(vehicle, stepIDs, price):
    ctx = {'vehicle': vehicle.userName}
    featureUnlockMsgs = []
    levels = []
    for stepID in stepIDs:
        step = vehicle.postProgression.getStep(stepID)
        if step.action.actionType != ACTION_TYPES.PAIR_MODIFICATION:
            levels.append(step.getLevel())
        if step.action.actionType == ACTION_TYPES.FEATURE:
            unlockMsg = makeUnlockFeatureMessage(step.action.getTechName(),
                                                 vehicle.userName)
            if unlockMsg is not None:
                featureUnlockMsgs.append(unlockMsg)

    levels.sort()
    if len(levels) > 1:
        msgKey = R.strings.system_messages.vehiclePostProgression.researchSteps.body
        separator = backport.text(
            R.strings.system_messages.vehiclePostProgression.researchSteps.
            levels.separator())
        ctx['levels'] = separator.join((str(level) for level in levels))
    else:
        msgKey = R.strings.system_messages.vehiclePostProgression.researchStep.body
        ctx['level'] = str(levels[0]) if levels else ''
    userMsg = backport.text(msgKey(), **ctx)
    spentString = makeSpentString(price,
                                  ignoreCurrencies=(ExtendedCurrency.XP, ))
    return makeSuccess(' '.join(
        (userMsg, spentString)), SM_TYPE.ResearchVehiclePostProgressionSteps,
                       featureUnlockMsgs)
Example #8
0
 def _successHandler(self, code, ctx=None):
     html = makeHtmlString(path='html_templates:lobby/processors/system_messages', key='recruit', ctx={'fullName': self.recruitInfo.getFullUserName(),
      'rank': Tankman.getRankUserName(self.nationID, self.recruitInfo.getRankID()),
      'role': getSkillsConfig().getSkill(self.role).userString,
      'vehicleName': self.vehicleName,
      'roleLevel': self.recruitInfo.getRoleLevel()})
     return makeSuccess(html, msgType=SM_TYPE.Information, auxData=ctx)
Example #9
0
    def _successHandler(self, code, ctx=None):
        additionalMessages = []
        removedItems = []
        for eqKd in ctx.get('incompatibleEqs', []):
            item = self.itemsCache.items.getItemByCD(eqKd)
            removedItems.append(item.userName)

        if removedItems:
            additionalMessages.append(
                makeI18nSuccess(self._formMessage('incompatibleEqs'),
                                items="', '".join(removedItems),
                                type=SM_TYPE.Information))
        additionalMessages.append(
            makeI18nSuccess(sysMsgKey=self._formMessage('success'),
                            type=SM_TYPE.Information,
                            auxData=additionalMessages,
                            **self._getMsgCtx()))
        equipSideEffects = ctx.get('equipSideEffects', [])
        if EquipSideEffect.AMMO_AUTO_LOADED in equipSideEffects:
            additionalMessages.append(
                makeI18nSuccess(sysMsgKey='charge/success',
                                type=SM_TYPE.Information,
                                auxData=additionalMessages))
        elif EquipSideEffect.AMMO_AUTO_LOAD_FAILED in equipSideEffects:
            additionalMessages.append(
                makeI18nSuccess(sysMsgKey='charge/inventory_error',
                                vehicle=self.vehicle.userName,
                                type=SM_TYPE.Warning,
                                auxData=additionalMessages))
        return makeSuccess(auxData=additionalMessages)
Example #10
0
 def _successHandler(self, code, ctx=None):
     playSound(Sounds.MODIFICATION_MOUNT)
     vehicle = self._getVehicle()
     messages = []
     if self.__discardMod is not None:
         messages.append(makeDiscardPairsMsg(vehicle, [self.__discardMod]))
     messages.append(makeBuyPairMsg(self._getVehicle(), self.__stepID, self.__modID))
     return makeSuccess(auxData=messages)
Example #11
0
 def _request(self, callback):
     vehDescr = self.vehicle.descriptor
     vehDescr.installTurret(self.item.intCD, self.gunCD)
     self.vehicle.turret = VehicleTurret(vehDescr.turret.compactDescr, descriptor=vehDescr.turret)
     if self.gunCD:
         self.vehicle.descriptor.installComponent(self.gunCD)
         self.vehicle.gun = VehicleGun(self.gunCD, descriptor=self.vehicle.descriptor.gun)
     callback(makeSuccess())
Example #12
0
 def _request(self, callback):
     itemTypeID = self.item.itemTypeID
     moduleName = self.OTHER_PREVIEW_MODULES[itemTypeID]
     self.vehicle.descriptor.installComponent(self.item.intCD)
     itemDescr = getattr(self.vehicle.descriptor, moduleName)
     module = self.itemsFactory.createGuiItem(itemTypeID, itemDescr.compactDescr, descriptor=itemDescr)
     setattr(self.vehicle, moduleName, module)
     callback(makeSuccess())
Example #13
0
 def _request(self, callback):
     vehDescr = self.vehicle.descriptor
     vehDescr.installTurret(self.item.intCD, self.gunCD)
     self.vehicle.turret = VehicleTurret(vehDescr.turret['compactDescr'], descriptor=vehDescr.turret)
     if self.gunCD:
         self.vehicle.descriptor.installComponent(self.gunCD)
         self.vehicle.gun = VehicleGun(self.gunCD, descriptor=self.vehicle.descriptor.gun)
     callback(makeSuccess())
Example #14
0
def makeUnlockFeatureMessage(featureName, vehicleUserName):
    msgKey = R.strings.system_messages.vehiclePostProgression.unlockFeature.dyn(
        featureName)
    return makeSuccess(
        backport.text(msgKey.body(), vehicle=vehicleUserName),
        msgType=SM_TYPE.InformationHeader,
        msgData={'header': backport.text(msgKey.title())},
        msgPriority=NotificationPriorityLevel.HIGH) if msgKey else None
Example #15
0
 def _request(self, callback):
     itemTypeID = self.item.itemTypeID
     moduleName = self.OTHER_PREVIEW_MODULES[itemTypeID]
     cls = ItemsRequester.ITEM_TYPES_MAPPING[itemTypeID]
     self.vehicle.descriptor.installComponent(self.item.intCD)
     itemDescr = getattr(self.vehicle.descriptor, moduleName)
     setattr(self.vehicle, moduleName, cls(itemDescr['compactDescr'], descriptor=itemDescr))
     callback(makeSuccess())
Example #16
0
 def _successHandler(self, code, ctx=None):
     currency = self.item.buyPrices.itemPrice.price.getCurrency(
         byWeight=True)
     messageType = MESSENGER.SERVICECHANNELMESSAGES_SYSMSG_CUSTOMIZATIONS_BUY
     sysMsgType = CURRENCY_TO_SM_TYPE.get(currency, SM_TYPE.PurchaseForGold)
     SystemMessages.pushI18nMessage(messageType,
                                    type=sysMsgType,
                                    **self._getMsgCtx())
     return makeSuccess(auxData=ctx)
Example #17
0
def makeAllPairsDiscardMsg(vehicleName):
    msgBody = R.strings.system_messages.vehiclePostProgression.discardAllPairsModification.body(
    )
    msgTitle = R.strings.system_messages.vehiclePostProgression.discardPairModification.title(
    )
    return makeSuccess(backport.text(msgBody, vehicle=vehicleName),
                       msgType=SM_TYPE.InformationHeader,
                       msgData={'header': backport.text(msgTitle)},
                       msgPriority=NotificationPriorityLevel.MEDIUM)
Example #18
0
 def _request(self, callback):
     itemTypeID = self.item.itemTypeID
     moduleName = self.OTHER_PREVIEW_MODULES[itemTypeID]
     cls = ItemsRequester.ITEM_TYPES_MAPPING[itemTypeID]
     self.vehicle.descriptor.installComponent(self.item.intCD)
     itemDescr = getattr(self.vehicle.descriptor, moduleName)
     setattr(self.vehicle, moduleName,
             cls(itemDescr['compactDescr'], descriptor=itemDescr))
     callback(makeSuccess())
Example #19
0
def makeBuyPairMsg(vehicle, stepID, modID):
    msgKey = R.strings.system_messages.vehiclePostProgression.buyPairModification
    mod = vehicle.postProgression.getStep(stepID).action.getModificationByID(
        modID)
    userMsg = backport.text(msgKey.body(),
                            vehicle=vehicle.userName,
                            modification=backport.text(mod.getLocNameRes()()))
    spentString = makeSpentString(mod.getPrice())
    return makeSuccess(' '.join((userMsg, spentString)),
                       SM_TYPE.BuyPostProgressionModForCredits)
Example #20
0
 def _successHandler(self, code, ctx=None):
     year, collectionStr = getCollectionByIntID(self.__collectionID)
     collection = backport.text(R.strings.ny.settings.dyn(collectionStr)())
     if collectionStr == ToySettings.MEGA_TOYS:
         msgId = R.strings.ny.systemMessage.infoMegaCollection()
     else:
         msgId = R.strings.ny.systemMessage.infoCollection()
     year = backport.text(R.strings.ny.systemMessage.dyn(year)())
     msg = backport.text(msgId, collection=collection, year=year)
     return makeSuccess(userMsg=msg, auxData=ctx)
 def _successHandler(self, code, ctx=None):
     additionalMessages = []
     if ctx:
         additionalMessages = [
             ItemBuyProcessorMessage(
                 self.itemsCache.items.getItemByCD(cd), count,
                 Money.makeFromMoneyTuple(price)).makeSuccessMsg()
             for cd, price, count in ctx.get('eqs', [])
         ]
     return makeSuccess(auxData=additionalMessages)
 def makeSuccessMsg(self):
     defaultKey = R.strings.system_messages.dyn(self._formMessage()).success
     if self.__useDemountKit:
         msgKey = R.strings.system_messages.dyn(
             self._formMessage()).demount_kit_success
     else:
         msgKey = R.strings.system_messages.dyn(
             self._formMessage()).money_success
     return makeSuccess(
         backport.text((msgKey() if msgKey else defaultKey),
                       **self._getMsgCtx()), self._getSuccessMsgType())
Example #23
0
    def _successHandler(self, code, ctx=None):
        additionalMessages = []
        removedItems = []
        for eqKd in ctx.get('incompatibleEqs', []):
            item = self.itemsCache.items.getItemByCD(eqKd)
            removedItems.append(item.name)

        if removedItems:
            additionalMessages.append(makeI18nSuccess(self._formMessage('incompatibleEqs'), items="', '".join(removedItems), type=SM_TYPE.Information))
        additionalMessages.append(makeI18nSuccess(sysMsgKey=self._formMessage('success'), type=SM_TYPE.Information, auxData=additionalMessages, **self._getMsgCtx()))
        return makeSuccess(auxData=additionalMessages)
Example #24
0
    def _successHandler(self, code, ctx = None):
        additionalMessages = []
        removedItems = []
        for eqKd in ctx.get('incompatibleEqs', []):
            item = g_itemsCache.items.getItemByCD(eqKd)
            removedItems.append(item.name)

        if removedItems:
            additionalMessages.append(makeI18nSuccess(self._formMessage('incompatibleEqs'), items="', '".join(removedItems), type=SM_TYPE.Information))
        additionalMessages.append(makeI18nSuccess(self._formMessage('success'), type=SM_TYPE.Information, auxData=additionalMessages, **self._getMsgCtx()))
        return makeSuccess(auxData=additionalMessages)
Example #25
0
 def _successHandler(self, code, ctx=None):
     item = self.item if self.install else None
     self.vehicle.optDevices.installed[self.slotIdx] = item
     useDemountKit = self.requestCtx.get('useDemountKit', False)
     isAfterConversion = self.requestCtx.get('isAfterConversion', False)
     if not self.install and not self.item.isRemovable and isAfterConversion and self.financeOperation:
         return makeSuccess()
     elif not self.install and not self.item.isRemovable and self.financeOperation:
         return OptDeviceRemoveProcessorMessage(self.item, removalPrice=self.removalPrice.price, useDemountKit=useDemountKit).makeSuccessMsg()
     else:
         return ItemDestroyProcessorMessage(self.item).makeSuccessMsg() if not self.install and not self.financeOperation else super(OptDeviceInstaller, self)._successHandler(code, ctx)
Example #26
0
    def _successHandler(self, code, ctx=None):
        additionalMessages = []
        totalPrice = ZERO_MONEY
        if ctx:
            for cd, price, count in ctx.get('shells', []):
                money = Money.makeFromMoneyTuple(price)
                additionalMessages.append(ItemBuyProcessorMessage(self.itemsCache.items.getItemByCD(cd), count, money).makeSuccessMsg())
                totalPrice += money

            if totalPrice:
                additionalMessages.append(ShellsApplyProcessorMessage(self.__vehicle, totalPrice).makeSuccessMsg())
        return makeSuccess(auxData=additionalMessages)
Example #27
0
 def _successHandler(self, code, ctx=None):
     currency = self.item.buyPrices.itemPrice.price.getCurrency(byWeight=True)
     sysMsgType = CURRENCY_TO_SM_TYPE.get(currency, SM_TYPE.PurchaseForGold)
     msgCtx = self._getMsgCtx()
     if self.count == 1:
         msg = backport.text(R.strings.messenger.serviceChannelMessages.sysMsg.customization.buyOne(), **msgCtx)
     else:
         msgCtx = {'items': backport.text(R.strings.messenger.serviceChannelMessages.sysMsg.customization.item(), **msgCtx) + '.',
          'money': msgCtx['money']}
         msg = backport.text(R.strings.messenger.serviceChannelMessages.sysMsg.customization.buyMany(), **msgCtx)
     SystemMessages.pushMessage(msg, type=sysMsgType)
     return makeSuccess(auxData=ctx)
Example #28
0
 def _successHandler(self, code, ctx=None):
     toyName = backport.text(self.__toy.getName())
     collection = backport.text(
         R.strings.ny.settings.dyn(self.__toy.getCollectionName())())
     year = backport.text(
         R.strings.ny.systemMessage.dyn(self.__toy.COLLECTION_NAME)())
     if not self.__toy.isMega():
         msgId = R.strings.ny.systemMessage.infoToy()
     else:
         msgId = R.strings.ny.systemMessage.infoMegaToy()
     msg = backport.text(msgId,
                         toyName=toyName,
                         collection=collection,
                         year=year)
     return makeSuccess(userMsg=msg, auxData=ctx)
Example #29
0
 def _successHandler(self, code, ctx=None):
     itemsCache = dependency.instance(IItemsCache)
     return makeSuccess(
         msgType=SM_TYPE.BattlePassReward,
         userMsg='',
         auxData={
             'header':
             backport.text(R.strings.messenger.serviceChannelMessages.
                           battlePassReward.header.buyBP()),
             'description':
             backport.text(R.strings.messenger.serviceChannelMessages.
                           battlePassReward.buyWithoutRewards.text()),
             'additionalText':
             self.__makeGoldString(
                 itemsCache.items.shop.getBattlePassCost().get(
                     Currency.GOLD, 0))
         })
Example #30
0
    def _successHandler(self, code, ctx = None):
        additionalMessages = []
        if len(ctx.get('shells', [])):
            totalPrice = [0, 0]
            for shellCompDescr, price, count in ctx.get('shells', []):
                shell = g_itemsCache.items.getItemByCD(shellCompDescr)
                additionalMessages.append(makeI18nSuccess('shell_buy/success', name=shell.userName, count=count, money=formatPrice(price), type=self.__getSysMsgType(price)))
                totalPrice[0] += price[0]
                totalPrice[1] += price[1]

            additionalMessages.append(makeI18nSuccess('layout_apply/success_money_spent', money=formatPrice(totalPrice), type=self.__getSysMsgType(totalPrice)))
        if len(ctx.get('eqs', [])):
            for eqCompDescr, price, count in ctx.get('eqs', []):
                equipment = g_itemsCache.items.getItemByCD(eqCompDescr)
                additionalMessages.append(makeI18nSuccess('artefact_buy/success', kind=equipment.userType, name=equipment.userName, count=count, money=formatPrice(price), type=self.__getSysMsgType(price)))

        return makeSuccess(auxData=additionalMessages)
Example #31
0
    def _successHandler(self, code, ctx = None):
        additionalMessages = []
        if len(ctx.get('shells', [])):
            totalPrice = [0, 0]
            for shellCompDescr, price, count in ctx.get('shells', []):
                shell = g_itemsCache.items.getItemByCD(shellCompDescr)
                additionalMessages.append(makeI18nSuccess('shell_buy/success', name=shell.userName, count=count, money=formatPrice(price), type=getPurchaseSysMessageType(price)))
                totalPrice[0] += price[0]
                totalPrice[1] += price[1]

            additionalMessages.append(makeI18nSuccess('layout_apply/success_money_spent', money=formatPrice(totalPrice), type=getPurchaseSysMessageType(totalPrice)))
        if len(ctx.get('eqs', [])):
            for eqCompDescr, price, count in ctx.get('eqs', []):
                equipment = g_itemsCache.items.getItemByCD(eqCompDescr)
                additionalMessages.append(makeI18nSuccess('artefact_buy/success', kind=equipment.userType, name=equipment.userName, count=count, money=formatPrice(price), type=getPurchaseSysMessageType(price)))

        return makeSuccess(auxData=additionalMessages)
Example #32
0
def makeDiscardPairsMsg(vehicle, modifications):
    ctx = {'vehicle': vehicle.userName}
    msgKey = R.strings.system_messages.vehiclePostProgression.discardPairModification
    modificationNames = [
        backport.text(mod.getLocNameRes()()) for mod in modifications
    ]
    if len(modificationNames) > 1:
        msgBody = R.strings.system_messages.vehiclePostProgression.discardPairsModification.body(
        )
        separator = backport.text(
            R.strings.system_messages.vehiclePostProgression.
            discardPairsModification.modifications.separator())
        ctx['modifications'] = separator.join(modificationNames)
    else:
        msgBody = msgKey.body()
        ctx['modification'] = modificationNames[0] if modificationNames else ''
    return makeSuccess(backport.text(msgBody, **ctx),
                       msgType=SM_TYPE.InformationHeader,
                       msgData={'header': backport.text(msgKey.title())},
                       msgPriority=NotificationPriorityLevel.HIGH)
 def _successHandler(self, code, ctx=None):
     chapterName = backport.text(
         R.strings.battle_pass.chapter.dyn(
             self.__battlePassController.getRewardType(
                 self.__chapterID).value).fullName.num(self.__chapterID)())
     return makeSuccess(
         msgType=SM_TYPE.BattlePassBuy,
         userMsg='',
         auxData={
             'header':
             backport.text(R.strings.messenger.serviceChannelMessages.
                           battlePassReward.header.buyBP()),
             'description':
             backport.text(R.strings.messenger.serviceChannelMessages.
                           battlePassReward.buyWithoutRewards.text(),
                           chapter=text_styles.credits(chapterName)),
             'additionalText':
             self.__makeGoldString(
                 self.__battlePassController.getBattlePassCost(
                     self.__chapterID).get(Currency.GOLD, 0))
         })
Example #34
0
 def _successHandler(self, code, ctx=None):
     return makeSuccess()
Example #35
0
 def _successHandler(self, code, ctx = None):
     return makeSuccess(auxData=ctx)