コード例 #1
0
 def __init__(self, tankman):
     self.__tankman = tankman
     restorePrice, _ = getTankmenRestoreInfo(tankman)
     super(TankmanRestore, self).__init__(tankman, (plugins.TankmanLockedValidator(tankman),
      plugins.TankmanOperationConfirmator('restoreTankman', tankman),
      plugins.BarracksSlotsValidator(berthsNeeded=1),
      plugins.MoneyValidator(restorePrice),
      plugins.IsLongDisconnectedFromCenter()))
コード例 #2
0
ファイル: processorstankman.py プロジェクト: Difrex/wotsdk
 def __init__(self, tankman):
     raise tankman is not None or AssertionError('tankman must be given')
     self.__tankman = tankman
     restorePrice, _ = getTankmenRestoreInfo(tankman)
     super(TankmanRestore, self).__init__(tankman, [plugins.TankmanOperationConfirmator('restoreTankman', tankman),
      plugins.BarracksSlotsValidator(berthsNeeded=1),
      plugins.MoneyValidator(restorePrice),
      plugins.IsLongDisconnectedFromCenter()])
     return
コード例 #3
0
 def _successHandler(self, code, ctx=None):
     restorePrice, _ = getTankmenRestoreInfo(self.__tankman)
     if restorePrice:
         currency = restorePrice.getCurrency()
         return makeI18nSuccess('restore_tankman/financial_success',
                                type=_getSysMsgType(restorePrice),
                                money=formatPriceForCurrency(
                                    restorePrice, currency))
     return makeI18nSuccess('restore_tankman/success',
                            type=SM_TYPE.Information)
コード例 #4
0
    def __showDismissedTankmen(self, criteria):
        tankmen = self.restore.getDismissedTankmen()
        tankmenList = list()
        for tankman in tankmen:
            if not criteria(tankman):
                continue
            skillsList = []
            for skill in tankman.skills:
                skillsList.append({'tankmanID': tankman.invID,
                 'id': str(tankman.skills.index(skill)),
                 'name': skill.userName,
                 'desc': skill.description,
                 'icon': skill.icon,
                 'level': skill.level,
                 'active': skill.isEnable and skill.isActive})

            newSkillsCount, lastNewSkillLvl = tankman.newSkillCount
            if newSkillsCount > 0:
                skillsList.append({'buy': True,
                 'buyCount': newSkillsCount - 1,
                 'tankmanID': tankman.invID,
                 'level': lastNewSkillLvl})
            restoreInfo = getTankmenRestoreInfo(tankman)
            actionBtnTooltip = makeTooltip(TOOLTIPS.BARRACKS_TANKMEN_RECOVERYBTN_HEADER, getRecoveryStatusText(restoreInfo))
            tankmanData = _packTankmanData(tankman)
            tankmanData.update({'isRankNameVisible': False,
             'recoveryPeriodText': _makeRecoveryPeriodText(restoreInfo),
             'actionBtnLabel': MENU.BARRACKS_BTNRECOVERY,
             'actionBtnTooltip': actionBtnTooltip,
             'skills': skillsList,
             'isSkillsVisible': True})
            tankmenList.append(tankmanData)

        tankmenCountStr = _ms(MENU.BARRACKS_DISMISSEDTANKMENCOUNT, curValue=len(tankmenList), total=len(tankmen))
        placeCount = self.restore.getMaxTankmenBufferLength()
        placeCountStr = _ms(MENU.BARRACKS_RECOVERYCOUNT, total=placeCount, info=icons.info())
        noInfoData = None
        hasNoInfoData = len(tankmenList) == 0
        if hasNoInfoData:
            if len(tankmen) == 0:
                tankmenRestoreConfig = g_itemsCache.items.shop.tankmenRestoreConfig
                freeDays = tankmenRestoreConfig.freeDuration / time_utils.ONE_DAY
                creditsDays = tankmenRestoreConfig.creditsDuration / time_utils.ONE_DAY - freeDays
                noInfoData = {'title': text_styles.highTitle(MENU.BARRACKS_NORECOVERYTANKMEN_TITLE),
                 'message': text_styles.main(_ms(MENU.BARRACKS_NORECOVERYTANKMEN_MESSAGE, price=moneyWithIcon(tankmenRestoreConfig.cost), totalDays=freeDays + creditsDays, freeDays=freeDays, paidDays=creditsDays))}
            else:
                noInfoData = {'message': text_styles.main(MENU.BARRACKS_NOFILTEREDRECOVERYTANKMEN_MESSAGE)}
        placesCountTooltip = makeTooltip(TOOLTIPS.BARRACKS_PLACESCOUNT_DISMISS_HEADER, _ms(TOOLTIPS.BARRACKS_PLACESCOUNT_DISMISS_BODY, placeCount=placeCount))
        self.as_setTankmenS({'tankmenCount': text_styles.playerOnline(tankmenCountStr),
         'placesCount': text_styles.playerOnline(placeCountStr),
         'placesCountTooltip': placesCountTooltip,
         'tankmenData': tankmenList,
         'hasNoInfoData': hasNoInfoData,
         'noInfoData': noInfoData})
        return
コード例 #5
0
ファイル: barracksbarracks.py プロジェクト: aevitas/wotsdk
    def __showDismissedTankmen(self, criteria):
        tankmen = getRestoreController().getDismissedTankmen()
        tankmenList = list()
        for tankman in tankmen:
            if not criteria(tankman):
                continue
            skillsList = []
            for skill in tankman.skills:
                skillsList.append({'tankmanID': tankman.invID,
                 'id': str(tankman.skills.index(skill)),
                 'name': skill.userName,
                 'desc': skill.description,
                 'icon': skill.icon,
                 'level': skill.level,
                 'active': skill.isEnable and skill.isActive})

            newSkillsCount, lastNewSkillLvl = tankman.newSkillCount
            if newSkillsCount > 0:
                skillsList.append({'buy': True,
                 'buyCount': newSkillsCount - 1,
                 'tankmanID': tankman.invID,
                 'level': lastNewSkillLvl})
            restoreInfo = getTankmenRestoreInfo(tankman)
            actionBtnTooltip = makeTooltip(TOOLTIPS.BARRACKS_TANKMEN_RECOVERYBTN_HEADER, getRecoveryStatusText(restoreInfo))
            tankmanData = _packTankmanData(tankman)
            tankmanData.update({'isRankNameVisible': False,
             'recoveryPeriodText': _makeRecoveryPeriodText(restoreInfo),
             'actionBtnLabel': MENU.BARRACKS_BTNRECOVERY,
             'actionBtnTooltip': actionBtnTooltip,
             'skills': skillsList,
             'isSkillsVisible': True})
            tankmenList.append(tankmanData)

        tankmenCountStr = _ms(MENU.BARRACKS_DISMISSEDTANKMENCOUNT, curValue=len(tankmenList), total=len(tankmen))
        placeCount = getRestoreController().getMaxTankmenBufferLength()
        placeCountStr = _ms(MENU.BARRACKS_RECOVERYCOUNT, total=placeCount, info=icons.info())
        noInfoData = None
        hasNoInfoData = len(tankmenList) == 0
        if hasNoInfoData:
            if len(tankmen) == 0:
                tankmenRestoreConfig = g_itemsCache.items.shop.tankmenRestoreConfig
                freeDays = tankmenRestoreConfig.freeDuration / time_utils.ONE_DAY
                creditsDays = tankmenRestoreConfig.creditsDuration / time_utils.ONE_DAY - freeDays
                noInfoData = {'title': text_styles.highTitle(MENU.BARRACKS_NORECOVERYTANKMEN_TITLE),
                 'message': text_styles.main(_ms(MENU.BARRACKS_NORECOVERYTANKMEN_MESSAGE, price=moneyWithIcon(tankmenRestoreConfig.cost), totalDays=freeDays + creditsDays, freeDays=freeDays, paidDays=creditsDays))}
            else:
                noInfoData = {'message': text_styles.main(MENU.BARRACKS_NOFILTEREDRECOVERYTANKMEN_MESSAGE)}
        placesCountTooltip = makeTooltip(TOOLTIPS.BARRACKS_PLACESCOUNT_DISMISS_HEADER, _ms(TOOLTIPS.BARRACKS_PLACESCOUNT_DISMISS_BODY, placeCount=placeCount))
        self.as_setTankmenS({'tankmenCount': text_styles.playerOnline(tankmenCountStr),
         'placesCount': text_styles.playerOnline(placeCountStr),
         'placesCountTooltip': placesCountTooltip,
         'tankmenData': tankmenList,
         'hasNoInfoData': hasNoInfoData,
         'noInfoData': noInfoData})
        return
コード例 #6
0
 def _populate(self):
     self._isDismissState = False
     super(RestoreTankmanDialog, self)._populate()
     restorePrice, _ = getTankmenRestoreInfo(self._tankman)
     isEnabled = True
     if g_itemsCache.items.stats.money.getShortage(restorePrice):
         isEnabled = False
     if isLongDisconnectedFromCenter():
         isEnabled = False
     self.as_setButtonEnablingS(DIALOG_BUTTON_ID.SUBMIT, isEnabled)
     if not isEnabled:
         self.as_setButtonFocusS(DIALOG_BUTTON_ID.CLOSE)
コード例 #7
0
 def _populate(self):
     self._isDismissState = False
     super(RestoreTankmanDialog, self)._populate()
     restorePrice, _ = getTankmenRestoreInfo(self._tankman)
     isEnabled = True
     if g_itemsCache.items.stats.money.getShortage(restorePrice):
         isEnabled = False
     if isLongDisconnectedFromCenter():
         isEnabled = False
     self.as_setButtonEnablingS(DIALOG_BUTTON_ID.SUBMIT, isEnabled)
     if not isEnabled:
         self.as_setButtonFocusS(DIALOG_BUTTON_ID.CLOSE)
コード例 #8
0
def _packDismissedTankman(tankman):
    skillsList = []
    for skill in tankman.skills:
        skillsList.append({
            'tankmanID': tankman.invID,
            'id': str(tankman.skills.index(skill)),
            'name': skill.userName,
            'desc': skill.description,
            'icon': skill.icon,
            'level': skill.level,
            'active': skill.isEnable and skill.isActive
        })

    newSkillsCount, lastNewSkillLvl = tankman.newSkillCount
    if newSkillsCount > 0:
        skillsList.append({
            'buy': True,
            'buyCount': newSkillsCount - 1,
            'tankmanID': tankman.invID,
            'level': lastNewSkillLvl
        })
    restoreInfo = getTankmenRestoreInfo(tankman)
    actionBtnTooltip = makeTooltip(
        TOOLTIPS.BARRACKS_TANKMEN_RECOVERYBTN_HEADER,
        getRecoveryStatusText(restoreInfo))
    tankmanData = _packTankmanData(tankman)
    tankmanData.update({
        'isRankNameVisible':
        False,
        'recoveryPeriodText':
        _makeRecoveryPeriodText(restoreInfo),
        'actionBtnLabel':
        MENU.BARRACKS_BTNRECOVERY,
        'actionBtnTooltip':
        actionBtnTooltip,
        'skills':
        skillsList,
        'isSkillsVisible':
        True
    })
    return tankmanData
コード例 #9
0
 def _buildVO(self):
     actionPriceVO = None
     restorePrice, lengthInHours = getTankmenRestoreInfo(self._tankman)
     warningTexts = []
     if restorePrice.credits == 0:
         restoreCurrency = ICON_TEXT_FRAMES.EMPTY
         restorePriceStr = text_styles.success(_ms(DIALOGS.RESTORETANKMAN_FORFREE))
     else:
         restoreCurrency = ICON_TEXT_FRAMES.CREDITS
         restorePriceStr = str(currency.getBWFormatter(Currency.CREDITS)(restorePrice.credits))
         if self._showPeriodEndWarning:
             daysCount = lengthInHours / time_utils.HOURS_IN_DAY
             warningTexts.append(text_styles.alert(_ms(DIALOGS.RESTORETANKMNAN_NEWPERIODWARNING, daysCount=daysCount)))
         if constants.IS_KOREA and restorePrice.gold > 0:
             warningTexts.append(text_styles.standard(DIALOGS.BUYVEHICLEDIALOG_WARNING))
     return {'questionText': text_styles.stats(_ms(DIALOGS.RESTORETANKMAN_PRICE)),
      'restoreCurrency': restoreCurrency,
      'restorePrice': restorePriceStr,
      'isEnoughMoneyForRestore': g_itemsCache.items.stats.money.credits >= restorePrice.credits,
      'actionPriceVO': actionPriceVO,
      'warningText': '\n\n'.join(warningTexts)}
コード例 #10
0
 def _buildVO(self):
     actionPriceVO = None
     restorePrice, lengthInHours = getTankmenRestoreInfo(self._tankman)
     warningTexts = []
     if not restorePrice:
         currencyTextFrame = ICON_TEXT_FRAMES.EMPTY
         restorePriceStr = text_styles.success(
             _ms(DIALOGS.RESTORETANKMAN_FORFREE))
         isEnoughMoney = True
     else:
         currencyName = restorePrice.getCurrency()
         currencyTextFrame = self._CURRENCY_TO_TEXT_FRAME[currencyName]
         restorePriceStr = str(
             currency.getBWFormatter(currencyName)(
                 restorePrice.getSignValue(currencyName)))
         isEnoughMoney = self.itemsCache.items.stats.money.get(
             currencyName, 0) >= restorePrice.get(currencyName, 0)
         if self._showPeriodEndWarning and restorePrice.isSet(
                 Currency.GOLD):
             daysCount = lengthInHours / time_utils.HOURS_IN_DAY
             warningTexts.append(
                 text_styles.alert(
                     _ms(DIALOGS.RESTORETANKMAN_NEWPERIODWARNING,
                         daysCount=daysCount)))
         if constants.IS_KOREA and restorePrice.isSet(Currency.GOLD):
             warningTexts.append(
                 text_styles.standard(DIALOGS.BUYVEHICLEDIALOG_WARNING))
     if isLongDisconnectedFromCenter():
         warningTexts.append(
             text_styles.error(
                 DIALOGS.RESTORETANKMAN_DISCONNECTEDFROMCENTER))
     return {
         'questionText':
         text_styles.stats(_ms(DIALOGS.RESTORETANKMAN_PRICE)),
         'restoreCurrency': currencyTextFrame,
         'restorePrice': restorePriceStr,
         'isEnoughMoneyForRestore': isEnoughMoney,
         'actionPriceVO': actionPriceVO,
         'warningText': '\n\n'.join(warningTexts)
     }
コード例 #11
0
ファイル: tooltipstankman.py プロジェクト: aevitas/wotsdk
    def _getValue(self):
        header = ''
        text = ''
        statusTemplate = '#tooltips:tankman/status/%s'
        tankman = self._tooltip.item
        vehicle = None
        if tankman.isInTank:
            vehicle = g_itemsCache.items.getVehicle(tankman.vehicleInvID)
        nativeVehicle = g_itemsCache.items.getItemByCD(tankman.vehicleNativeDescr.type.compactDescr)
        if tankman.isDismissed:
            return {'header': text_styles.warning(TOOLTIPS.BARRACKS_TANKMEN_RECOVERY_HEADER),
             'text': getRecoveryStatusText(getTankmenRestoreInfo(tankman)),
             'level': TANKMAN_DISMISSED}
        else:
            inactiveRoles = list()
            if tankman.isInTank:
                for skill in tankman.skills:
                    if not skill.isEnable:
                        role = self.__getRoleBySkill(skill)
                        if role not in inactiveRoles:
                            inactiveRoles.append(role)

            if vehicle is not None and nativeVehicle.innationID != vehicle.innationID:
                if (vehicle.isPremium or vehicle.isPremiumIGR) and vehicle.type in nativeVehicle.tags:
                    header = makeString(statusTemplate % 'wrongPremiumVehicle/header')
                    text = makeString(statusTemplate % 'wrongPremiumVehicle/text') % {'vehicle': vehicle.shortUserName}
                else:
                    header = makeString(statusTemplate % 'wrongVehicle/header') % {'vehicle': vehicle.shortUserName}
                    text = makeString(statusTemplate % 'wrongVehicle/text')
            elif len(inactiveRoles):

                def roleFormat(role):
                    return makeString(statusTemplate % 'inactiveSkillsRoleFormat') % makeString(getSkillsConfig()[role]['userString'])

                header = makeString(statusTemplate % 'inactiveSkills/header')
                text = makeString(statusTemplate % 'inactiveSkills/text') % {'skills': ', '.join([ roleFormat(role) for role in inactiveRoles ])}
            return {'header': header,
             'text': text,
             'level': Vehicle.VEHICLE_STATE_LEVEL.WARNING}
            return
コード例 #12
0
    def _getValue(self):
        header = ''
        text = ''
        statusTemplate = '#tooltips:tankman/status/%s'
        tankman = self._tooltip.item
        vehicle = None
        if tankman.isInTank:
            vehicle = self.itemsCache.items.getVehicle(tankman.vehicleInvID)
        nativeVehicle = self.itemsCache.items.getItemByCD(tankman.vehicleNativeDescr.type.compactDescr)
        if tankman.isDismissed:
            return {'header': text_styles.warning(TOOLTIPS.BARRACKS_TANKMEN_RECOVERY_HEADER),
             'text': getRecoveryStatusText(getTankmenRestoreInfo(tankman)),
             'level': TANKMAN_DISMISSED}
        else:
            inactiveRoles = list()
            if tankman.isInTank:
                for skill in tankman.skills:
                    if not skill.isEnable:
                        role = self.__getRoleBySkill(skill)
                        if role not in inactiveRoles:
                            inactiveRoles.append(role)

            if vehicle is not None and nativeVehicle.innationID != vehicle.innationID:
                if (vehicle.isPremium or vehicle.isPremiumIGR) and vehicle.type in nativeVehicle.tags:
                    header = makeString(statusTemplate % 'wrongPremiumVehicle/header')
                    text = makeString(statusTemplate % 'wrongPremiumVehicle/text') % {'vehicle': vehicle.shortUserName}
                else:
                    header = makeString(statusTemplate % 'wrongVehicle/header') % {'vehicle': vehicle.shortUserName}
                    text = makeString(statusTemplate % 'wrongVehicle/text')
            elif inactiveRoles:

                def roleFormat(role):
                    return makeString(statusTemplate % 'inactiveSkillsRoleFormat') % makeString(getSkillsConfig().getSkill(role).userString)

                header = makeString(statusTemplate % 'inactiveSkills/header')
                text = makeString(statusTemplate % 'inactiveSkills/text') % {'skills': ', '.join([ roleFormat(role) for role in inactiveRoles ])}
            return {'header': header,
             'text': text,
             'level': Vehicle.VEHICLE_STATE_LEVEL.WARNING}
            return
コード例 #13
0
 def _buildVO(self):
     actionPriceVO = None
     restorePrice, lengthInHours = getTankmenRestoreInfo(self._tankman)
     warningTexts = []
     if restorePrice.credits == 0:
         restoreCurrency = ICON_TEXT_FRAMES.EMPTY
         restorePriceStr = text_styles.success(
             _ms(DIALOGS.RESTORETANKMAN_FORFREE))
     else:
         restoreCurrency = ICON_TEXT_FRAMES.CREDITS
         restorePriceStr = str(
             currency.getBWFormatter(Currency.CREDITS)(
                 restorePrice.credits))
         if self._showPeriodEndWarning:
             daysCount = lengthInHours / time_utils.HOURS_IN_DAY
             warningTexts.append(
                 text_styles.alert(
                     _ms(DIALOGS.RESTORETANKMAN_NEWPERIODWARNING,
                         daysCount=daysCount)))
         if constants.IS_KOREA and restorePrice.gold > 0:
             warningTexts.append(
                 text_styles.standard(DIALOGS.BUYVEHICLEDIALOG_WARNING))
     if isLongDisconnectedFromCenter():
         warningTexts.append(
             text_styles.error(
                 DIALOGS.RESTORETANKMAN_DISCONNECTEDFROMCENTER))
     return {
         'questionText':
         text_styles.stats(_ms(DIALOGS.RESTORETANKMAN_PRICE)),
         'restoreCurrency':
         restoreCurrency,
         'restorePrice':
         restorePriceStr,
         'isEnoughMoneyForRestore':
         g_itemsCache.items.stats.money.credits >= restorePrice.credits,
         'actionPriceVO':
         actionPriceVO,
         'warningText':
         '\n\n'.join(warningTexts)
     }
コード例 #14
0
ファイル: processorsplugins.py プロジェクト: aevitas/wotsdk
 def __init__(self, localeKey, tankman):
     super(TankmanOperationConfirmator, self).__init__(localeKey, tankman, None, True)
     self.__previousPrice, _ = restore_contoller.getTankmenRestoreInfo(tankman)
     return
コード例 #15
0
ファイル: processorstankman.py プロジェクト: aevitas/wotsdk
 def _successHandler(self, code, ctx = None):
     restorePrice, _ = getTankmenRestoreInfo(self.__tankman)
     if restorePrice:
         return makeI18nSuccess('restore_tankman/financial_success', type=_getSysMsgType(restorePrice), money=formatPriceForCurrency(restorePrice, Currency.CREDITS))
     else:
         return makeI18nSuccess('restore_tankman/success', type=SM_TYPE.Information)
コード例 #16
0
    def __showDismissedTankmen(self, criteria):
        tankmen = self.restore.getDismissedTankmen()
        tankmenList = list()
        for tankman in tankmen:
            if not criteria(tankman):
                continue
            skillsList = []
            for skill in tankman.skills:
                skillsList.append({
                    'tankmanID': tankman.invID,
                    'id': str(tankman.skills.index(skill)),
                    'name': skill.userName,
                    'desc': skill.description,
                    'icon': skill.icon,
                    'level': skill.level,
                    'active': skill.isEnable and skill.isActive
                })

            newSkillsCount, lastNewSkillLvl = tankman.newSkillCount
            if newSkillsCount > 0:
                skillsList.append({
                    'buy': True,
                    'buyCount': newSkillsCount - 1,
                    'tankmanID': tankman.invID,
                    'level': lastNewSkillLvl
                })
            restoreInfo = getTankmenRestoreInfo(tankman)
            actionBtnTooltip = makeTooltip(
                TOOLTIPS.BARRACKS_TANKMEN_RECOVERYBTN_HEADER,
                getRecoveryStatusText(restoreInfo))
            tankmanData = _packTankmanData(tankman)
            tankmanData.update({
                'isRankNameVisible':
                False,
                'recoveryPeriodText':
                _makeRecoveryPeriodText(restoreInfo),
                'actionBtnLabel':
                MENU.BARRACKS_BTNRECOVERY,
                'actionBtnTooltip':
                actionBtnTooltip,
                'skills':
                skillsList,
                'isSkillsVisible':
                True
            })
            tankmenList.append(tankmanData)

        placeCount = self.restore.getMaxTankmenBufferLength()
        hasNoInfoData, noInfoData = self.__getNoInfoData(
            totalCount=len(tankmen), filteredCount=len(tankmenList))
        self.as_setTankmenS({
            'tankmenCount':
            self.__getTankmenCountStr(tankmenInSlots=len(tankmenList),
                                      totalCount=len(tankmen)),
            'placesCount':
            self.__getPlaceCountStr(free=icons.info(), totalCount=placeCount),
            'placesCountTooltip':
            self.__getPlacesCountTooltip(placeCount=placeCount),
            'tankmenData':
            tankmenList,
            'hasNoInfoData':
            hasNoInfoData,
            'noInfoData':
            noInfoData
        })
コード例 #17
0
 def __init__(self, localeKey, tankman):
     super(TankmanOperationConfirmator,
           self).__init__(localeKey, tankman, None, True)
     self.__previousPrice, _ = restore_contoller.getTankmenRestoreInfo(
         tankman)
     return
コード例 #18
0
 def __priceChanged(self):
     price, _ = restore_contoller.getTankmenRestoreInfo(self.ctx)
     return price != self.__previousPrice
コード例 #19
0
ファイル: processorsplugins.py プロジェクト: aevitas/wotsdk
 def __priceChanged(self):
     price, _ = restore_contoller.getTankmenRestoreInfo(self.ctx)
     return price != self.__previousPrice