def _updateData(self):
     if self.fortCtrl.getFort().level >= FORT_BATTLE_DIVISIONS.ABSOLUTE.minFortLevel:
         defenceDivisionName = _ms(FORTIFICATIONS.ROSTERINTROWINDOW_ABSOLUTEDIVISIONNAME)
     else:
         defenceDivisionName = _ms(FORTIFICATIONS.ROSTERINTROWINDOW_CHAMPIONDIVISIONNAME)
     defenceStart, defenceEnd = self.fortCtrl.getFort().getDefencePeriod()
     if self._type == FortRosterIntroWindow.TYPE_FORT_UPGRADE:
         bgIcon = RES_FORT.MAPS_FORT_ABSOLUTEROSTERINTRO
         header = _ms(FORTIFICATIONS.ROSTERINTROWINDOW_ABSOLUTE_HEADER)
     else:
         bgIcon = RES_FORT.MAPS_FORT_CHAMPIONROSTERINTRO
         header = _ms(FORTIFICATIONS.ROSTERINTROWINDOW_CHAMPION_HEADER)
     offDay = self.fortCtrl.getFort().getOffDayStr() if self.fortCtrl.getFort().isOffDayEnabled() else None
     if offDay is not None:
         defenceDescription = _ms(
             FORTIFICATIONS.ROSTERINTROWINDOW_DEFENCEDESCRIPTION_OFFDAY,
             start=BigWorld.wg_getShortTimeFormat(defenceStart),
             end=BigWorld.wg_getShortTimeFormat(defenceEnd),
             offDay=offDay,
         )
     else:
         defenceDescription = _ms(
             FORTIFICATIONS.ROSTERINTROWINDOW_DEFENCEDESCRIPTION_NOOFFDAY,
             start=BigWorld.wg_getShortTimeFormat(defenceStart),
             end=BigWorld.wg_getShortTimeFormat(defenceEnd),
         )
     fortLevel = self.fortCtrl.getFort().level
     self.as_setDataS(
         {
             "windowTitle": _ms(FORTIFICATIONS.ROSTERINTROWINDOW_WINDOWTITLE),
             "bgIcon": bgIcon,
             "header": header,
             "defenceTitle": _ms(FORTIFICATIONS.ROSTERINTROWINDOW_DEFENCETITLE),
             "defenceIcon": RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_DEFENCEFUTURE,
             "defenceDescription": defenceDescription,
             "defenceDivisionName": defenceDivisionName,
             "defenceDivisionIcon": getDivisionIcon(
                 fortLevel, FORT_BATTLE_DIVISIONS.ABSOLUTE.minFortLevel, determineAlert=False
             ),
             "attackTitle": _ms(FORTIFICATIONS.ROSTERINTROWINDOW_ATTACKTITLE),
             "attackIcon": _ms(RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_OFFENCEFUTURE),
             "championDivisionDescription": _ms(FORTIFICATIONS.ROSTERINTROWINDOW_CHAMPIONDIVISIONDESCRIPTION),
             "championDivisionName": _ms(FORTIFICATIONS.ROSTERINTROWINDOW_CHAMPIONDIVISIONNAME),
             "championDivisionIcon": getDivisionIcon(
                 FORT_BATTLE_DIVISIONS.CHAMPION.minFortLevel, fortLevel, determineAlert=True
             ),
             "absoluteDivisionDescription": _ms(FORTIFICATIONS.ROSTERINTROWINDOW_ABSOLUTEDIVISIONDESCRIPTION),
             "absoluteDivisionName": _ms(FORTIFICATIONS.ROSTERINTROWINDOW_ABSOLUTEDIVISIONNAME),
             "absoluteDivisionIcon": getDivisionIcon(
                 FORT_BATTLE_DIVISIONS.ABSOLUTE.minFortLevel, fortLevel, determineAlert=True
             ),
             "acceptBtnLabel": _ms(MENU.AWARDWINDOW_OKBUTTON),
         }
     )
     setRosterIntroWindowSetting(self._type)
     return
    def _populatePreviewBlock(self):
        fort = self.fortCtrl.getFort()
        localDateTime = time_utils.getDateTimeInLocal(self.__selectedDate)
        targetDayStartTimestamp, _ = time_utils.getDayTimeBoundsForLocal(self.__selectedDate)
        eventItems, dateInfo, noEventsText = [], None, None
        dateString = _ms(MENU.DATETIME_SHORTDATEFORMATWITHOUTYEAR, weekDay=_ms('#menu:dateTime/weekDays/full/%d' % localDateTime.isoweekday()), monthDay=localDateTime.day, month=toLower(_ms('#menu:dateTime/months/full/%d' % localDateTime.month)))
        if fort.isOnVacationAt(self.__selectedDate):
            noEventsText = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_EMPTY_VACATION, date=fort.getVacationDateStr())
        elif not self._isValidTime(self.__selectedDate):
            noEventsText = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_EMPTY_NOTAVAILABLE)
        else:
            for dayStartTimestamp, battles in self._getBattlesByDay().iteritems():
                if dayStartTimestamp == targetDayStartTimestamp:
                    for battle in sorted(battles):
                        startTimestamp = battle.getStartTime()
                        battleHasEnded = battle.isEnded()
                        opponentsClanInfo = battle.getOpponentClanInfo()
                        if battle.getType() == BATTLE_ITEM_TYPE.ATTACK:
                            if battleHasEnded:
                                icon = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_OFFENCEPAST
                            else:
                                icon = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_OFFENCEFUTURE
                            titleTpl = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_ITEM_TITLE_OFFENCE)
                        else:
                            if battleHasEnded:
                                icon = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_DEFENCEPAST
                            else:
                                icon = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_DEFENCEFUTURE
                            titleTpl = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_ITEM_TITLE_DEFENCE)
                        tankIconVO = getDivisionIcon(battle.defenderFortLevel, battle.attackerFortLevel, determineAlert=battle.getType() == BATTLE_ITEM_TYPE.ATTACK)
                        if battle.isWin():
                            background = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_BATTLEFORTVICTORY
                            resultLabel = 'win'
                        elif battle.isLose():
                            background = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_BATTLEFORTDEFEAT
                            resultLabel = 'lose'
                        else:
                            background, resultLabel = (None, None)
                        eventItem = {'icon': icon,
                         'title': titleTpl % {'clanName': '[%s]' % opponentsClanInfo[1]},
                         'clanID': opponentsClanInfo[0],
                         'direction': _ms(FORTIFICATIONS.GENERAL_DIRECTION, value=_ms('#fortifications:General/directionName%d' % battle.getDirection())),
                         'timeInfo': _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_ITEM_TIMEINFO) % {'startTime': BigWorld.wg_getShortTimeFormat(startTimestamp),
                                      'endTime': BigWorld.wg_getShortTimeFormat(startTimestamp + time_utils.ONE_HOUR)},
                         'background': background,
                         'tankIconVO': tankIconVO,
                         'showTankIcon': not battleHasEnded}
                        if battleHasEnded and resultLabel:
                            resultText = makeHtmlString('html_templates:lobby/fortifications', 'battleResult', {'result': _ms(MENU.finalstatistic_commonstats_resultlabel(resultLabel))})
                            eventItem.update({'result': resultText})
                        eventItems.append(eventItem)

            if not len(eventItems):
                noEventsText = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_EMPTY_NOEVENTS)
        if len(eventItems) > 0:
            dateInfo = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_INFO_BATTLESCOUNT, eventsCount=len(eventItems))
        self.as_updatePreviewDataS({'dateString': dateString,
         'dateInfo': dateInfo,
         'noEventsText': noEventsText,
         'events': eventItems})
 def _updateData(self):
     if not self.fortCtrl.getFort().isDefenceHourEnabled():
         self.destroy()
         raise self.fortCtrl.getFort().isDefenceHourEnabled() or AssertionError
         return
     else:
         if self.fortCtrl.getFort().level >= FORT_BATTLE_DIVISIONS.ABSOLUTE.minFortLevel:
             defenceDivisionName = _ms(FORTIFICATIONS.ROSTERINTROWINDOW_ABSOLUTEDIVISIONNAME)
         else:
             defenceDivisionName = _ms(FORTIFICATIONS.ROSTERINTROWINDOW_CHAMPIONDIVISIONNAME)
         defenceStart, defenceEnd = self.fortCtrl.getFort().getDefencePeriod()
         if self._type == FortRosterIntroWindow.TYPE_FORT_UPGRADE:
             bgIcon = RES_FORT.MAPS_FORT_ABSOLUTEROSTERINTRO
             header = _ms(FORTIFICATIONS.ROSTERINTROWINDOW_ABSOLUTE_HEADER)
         else:
             bgIcon = RES_FORT.MAPS_FORT_CHAMPIONROSTERINTRO
             header = _ms(FORTIFICATIONS.ROSTERINTROWINDOW_CHAMPION_HEADER)
         offDay = self.fortCtrl.getFort().getOffDayStr() if self.fortCtrl.getFort().isOffDayEnabled() else None
         if offDay is not None:
             defenceDescription = _ms(FORTIFICATIONS.ROSTERINTROWINDOW_DEFENCEDESCRIPTION_OFFDAY, start=BigWorld.wg_getShortTimeFormat(defenceStart), end=BigWorld.wg_getShortTimeFormat(defenceEnd), offDay=offDay)
         else:
             defenceDescription = _ms(FORTIFICATIONS.ROSTERINTROWINDOW_DEFENCEDESCRIPTION_NOOFFDAY, start=BigWorld.wg_getShortTimeFormat(defenceStart), end=BigWorld.wg_getShortTimeFormat(defenceEnd))
         fortLevel = self.fortCtrl.getFort().level
         self.as_setDataS({'windowTitle': _ms(FORTIFICATIONS.ROSTERINTROWINDOW_WINDOWTITLE),
          'bgIcon': bgIcon,
          'header': header,
          'defenceTitle': _ms(FORTIFICATIONS.ROSTERINTROWINDOW_DEFENCETITLE),
          'defenceIcon': RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_DEFENCEFUTURE,
          'defenceDescription': defenceDescription,
          'defenceDivisionName': defenceDivisionName,
          'defenceDivisionIcon': getDivisionIcon(fortLevel, FORT_BATTLE_DIVISIONS.ABSOLUTE.minFortLevel, determineAlert=False),
          'attackTitle': _ms(FORTIFICATIONS.ROSTERINTROWINDOW_ATTACKTITLE),
          'attackIcon': _ms(RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_OFFENCEFUTURE),
          'championDivisionDescription': _ms(FORTIFICATIONS.ROSTERINTROWINDOW_CHAMPIONDIVISIONDESCRIPTION),
          'championDivisionName': _ms(FORTIFICATIONS.ROSTERINTROWINDOW_CHAMPIONDIVISIONNAME),
          'championDivisionIcon': getDivisionIcon(FORT_BATTLE_DIVISIONS.CHAMPION.minFortLevel, fortLevel, determineAlert=True),
          'absoluteDivisionDescription': _ms(FORTIFICATIONS.ROSTERINTROWINDOW_ABSOLUTEDIVISIONDESCRIPTION),
          'absoluteDivisionName': _ms(FORTIFICATIONS.ROSTERINTROWINDOW_ABSOLUTEDIVISIONNAME),
          'absoluteDivisionIcon': getDivisionIcon(FORT_BATTLE_DIVISIONS.ABSOLUTE.minFortLevel, fortLevel, determineAlert=True),
          'acceptBtnLabel': _ms(MENU.AWARDWINDOW_OKBUTTON)})
         return
示例#4
0
    def _prepareAndSetData(self):
        battles = []
        invalidateCbDelay = sys.maxint
        fort = self.fortCtrl.getFort()
        self.__clearCallback()
        for battleItem in self.__applyBattlesFilter(
                fort.getAttacksIn(timePeriod=time_utils.ONE_DAY)):
            battles.append(
                (battleItem,
                 i18n.makeString(
                     FORTIFICATIONS.
                     FORTCLANBATTLELIST_RENDERBATTLENAME_CLANBATTLEOFFENCE,
                     clanName=self.__getFmtClanName(battleItem)),
                 RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_OFFENCEFUTURE,
                 TOOLTIPS.FORTIFICATION_FORTBATTLEDIRECTIONPOPOVER_OFFENSE))

        for battleItem in self.__applyBattlesFilter(
                fort.getDefencesIn(timePeriod=time_utils.ONE_DAY)):
            battles.append(
                (battleItem,
                 i18n.makeString(
                     FORTIFICATIONS.
                     FORTCLANBATTLELIST_RENDERBATTLENAME_CLANBATTLEDEFENCE,
                     clanName=self.__getFmtClanName(battleItem)),
                 RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_DEFENCEFUTURE,
                 TOOLTIPS.FORTIFICATION_FORTBATTLEDIRECTIONPOPOVER_DEFENSE))

        result = []
        for battleItem, descr, icon, typeTip in sorted(
                battles, key=operator.itemgetter(0)):
            startTime, startTimeLeft = battleItem.getStartTime(
            ), battleItem.getStartTimeLeft()
            fortBattle = fort.getBattle(battleItem.getBattleID())
            if fortBattle is not None:
                startTime, startTimeLeft = fortBattle.getRoundStartTime(
                ), fortBattle.getRoundStartTimeLeft()
                if fortBattle.isBattleRound():
                    startTimeLeft = 0
            if startTimeLeft > time_utils.QUARTER_HOUR:
                invalidateCbDelay = min(
                    invalidateCbDelay, startTimeLeft - time_utils.QUARTER_HOUR)
            elif startTimeLeft > 0:
                invalidateCbDelay = min(invalidateCbDelay, startTimeLeft)
            if startTimeLeft <= 0:
                infoTip = TOOLTIPS.FORTIFICATION_FORTBATTLEDIRECTIONPOPOVER_ISINBATTLE
            else:
                infoTip = ''
            if battleItem.isHot() and startTimeLeft > 0:
                timerData = {
                    'timeBeforeBattle': startTimeLeft,
                    'htmlFormatter': text_styles.alert('###')
                }
            else:
                timerData = None
            battleHourFmt = i18n.makeString(
                '#fortifications:fortBattleDirectionPopover/battleDurationFmt')
            battleHourLabel = text_styles.main(
                battleHourFmt % {
                    'prevHour':
                    BigWorld.wg_getShortTimeFormat(startTime),
                    'nextHour':
                    BigWorld.wg_getShortTimeFormat(startTime +
                                                   time_utils.ONE_HOUR)
                })
            divisionIcon = getDivisionIcon(
                battleItem.defenderFortLevel,
                battleItem.attackerFortLevel,
                determineAlert=battleItem.getType() == BATTLE_ITEM_TYPE.ATTACK)
            result.append({
                'description':
                descr,
                'canJoin':
                battleItem.isHot(),
                'battleInfo':
                self.__getBattleInfo(startTime, startTimeLeft),
                'battleHour':
                battleHourLabel,
                'battleTypeIcon':
                icon,
                'fortBattleID':
                battleItem.getBattleID(),
                'battleTypeTooltip':
                typeTip,
                'battleInfoTooltip':
                infoTip,
                'timer':
                timerData,
                'divisionIcon':
                divisionIcon
            })

        title = i18n.makeString(
            FORTIFICATIONS.GENERAL_DIRECTION,
            value=i18n.makeString('#fortifications:General/directionName%d' %
                                  self._direction))
        nextBattles = i18n.makeString(
            FORTIFICATIONS.FORTBATTLEDIRECTIONPOPOVER_COMMINGBATTLES)
        nextBattlesLabel = ''.join(
            (text_styles.standard(nextBattles), text_styles.main(len(result))))
        self.as_setDataS({
            'title': title,
            'nextBattles': nextBattlesLabel,
            'battlesList': result
        })
        if invalidateCbDelay != sys.maxint:
            LOG_DEBUG('FortBattleDirectionPopover, load invalidation callback',
                      invalidateCbDelay)
            self.__loadCallback(invalidateCbDelay)
    def _prepareAndSetData(self):
        battles = []
        invalidateCbDelay = sys.maxint
        fort = self.fortCtrl.getFort()
        self.__clearCallback()
        for battleItem in self.__applyBattlesFilter(fort.getAttacksIn(timePeriod=time_utils.ONE_DAY)):
            battles.append((battleItem,
             i18n.makeString(FORTIFICATIONS.FORTCLANBATTLELIST_RENDERBATTLENAME_CLANBATTLEOFFENCE, clanName=self.__getFmtClanName(battleItem)),
             RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_OFFENCEFUTURE,
             TOOLTIPS.FORTIFICATION_FORTBATTLEDIRECTIONPOPOVER_OFFENSE))

        for battleItem in self.__applyBattlesFilter(fort.getDefencesIn(timePeriod=time_utils.ONE_DAY)):
            battles.append((battleItem,
             i18n.makeString(FORTIFICATIONS.FORTCLANBATTLELIST_RENDERBATTLENAME_CLANBATTLEDEFENCE, clanName=self.__getFmtClanName(battleItem)),
             RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_DEFENCEFUTURE,
             TOOLTIPS.FORTIFICATION_FORTBATTLEDIRECTIONPOPOVER_DEFENSE))

        result = []
        for battleItem, descr, icon, typeTip in sorted(battles, key=operator.itemgetter(0)):
            startTime, startTimeLeft = battleItem.getStartTime(), battleItem.getStartTimeLeft()
            fortBattle = fort.getBattle(battleItem.getBattleID())
            if fortBattle is not None:
                startTime, startTimeLeft = fortBattle.getRoundStartTime(), fortBattle.getRoundStartTimeLeft()
                if fortBattle.isBattleRound():
                    startTimeLeft = 0
            if startTimeLeft > time_utils.QUARTER_HOUR:
                invalidateCbDelay = min(invalidateCbDelay, startTimeLeft - time_utils.QUARTER_HOUR)
            elif startTimeLeft > 0:
                invalidateCbDelay = min(invalidateCbDelay, startTimeLeft)
            if startTimeLeft <= 0:
                infoTip = TOOLTIPS.FORTIFICATION_FORTBATTLEDIRECTIONPOPOVER_ISINBATTLE
            else:
                infoTip = ''
            if battleItem.isHot() and startTimeLeft > 0:
                timerData = {'timeBeforeBattle': startTimeLeft,
                 'htmlFormatter': text_styles.alert('###')}
            else:
                timerData = None
            battleHourFmt = i18n.makeString('#fortifications:fortBattleDirectionPopover/battleDurationFmt')
            battleHourLabel = text_styles.main(battleHourFmt % {'prevHour': BigWorld.wg_getShortTimeFormat(startTime),
             'nextHour': BigWorld.wg_getShortTimeFormat(startTime + time_utils.ONE_HOUR)})
            divisionIcon = getDivisionIcon(battleItem.defenderFortLevel, battleItem.attackerFortLevel, determineAlert=battleItem.getType() == BATTLE_ITEM_TYPE.ATTACK)
            result.append({'description': descr,
             'canJoin': battleItem.isHot(),
             'battleInfo': self.__getBattleInfo(startTime, startTimeLeft),
             'battleHour': battleHourLabel,
             'battleTypeIcon': icon,
             'fortBattleID': battleItem.getBattleID(),
             'battleTypeTooltip': typeTip,
             'battleInfoTooltip': infoTip,
             'timer': timerData,
             'divisionIcon': divisionIcon})

        title = i18n.makeString(FORTIFICATIONS.GENERAL_DIRECTION, value=i18n.makeString('#fortifications:General/directionName%d' % self._direction))
        nextBattles = i18n.makeString(FORTIFICATIONS.FORTBATTLEDIRECTIONPOPOVER_COMMINGBATTLES)
        nextBattlesLabel = ''.join((text_styles.standard(nextBattles), text_styles.main(len(result))))
        self.as_setDataS({'title': title,
         'nextBattles': nextBattlesLabel,
         'battlesList': result})
        if invalidateCbDelay != sys.maxint:
            LOG_DEBUG('FortBattleDirectionPopover, load invalidation callback', invalidateCbDelay)
            self.__loadCallback(invalidateCbDelay)
        return
 def _updateData(self):
     if self.fortCtrl.getFort(
     ).level >= FORT_BATTLE_DIVISIONS.ABSOLUTE.minFortLevel:
         defenceDivisionName = _ms(
             FORTIFICATIONS.ROSTERINTROWINDOW_ABSOLUTEDIVISIONNAME)
     else:
         defenceDivisionName = _ms(
             FORTIFICATIONS.ROSTERINTROWINDOW_CHAMPIONDIVISIONNAME)
     defenceStart, defenceEnd = self.fortCtrl.getFort().getDefencePeriod()
     if self._type == FortRosterIntroWindow.TYPE_FORT_UPGRADE:
         bgIcon = RES_FORT.MAPS_FORT_ABSOLUTEROSTERINTRO
         header = _ms(FORTIFICATIONS.ROSTERINTROWINDOW_ABSOLUTE_HEADER)
     else:
         bgIcon = RES_FORT.MAPS_FORT_CHAMPIONROSTERINTRO
         header = _ms(FORTIFICATIONS.ROSTERINTROWINDOW_CHAMPION_HEADER)
     offDay = self.fortCtrl.getFort().getOffDayStr(
     ) if self.fortCtrl.getFort().isOffDayEnabled() else None
     if offDay is not None:
         defenceDescription = _ms(
             FORTIFICATIONS.ROSTERINTROWINDOW_DEFENCEDESCRIPTION_OFFDAY,
             start=BigWorld.wg_getShortTimeFormat(defenceStart),
             end=BigWorld.wg_getShortTimeFormat(defenceEnd),
             offDay=offDay)
     else:
         defenceDescription = _ms(
             FORTIFICATIONS.ROSTERINTROWINDOW_DEFENCEDESCRIPTION_NOOFFDAY,
             start=BigWorld.wg_getShortTimeFormat(defenceStart),
             end=BigWorld.wg_getShortTimeFormat(defenceEnd))
     fortLevel = self.fortCtrl.getFort().level
     self.as_setDataS({
         'windowTitle':
         _ms(FORTIFICATIONS.ROSTERINTROWINDOW_WINDOWTITLE),
         'bgIcon':
         bgIcon,
         'header':
         header,
         'defenceTitle':
         _ms(FORTIFICATIONS.ROSTERINTROWINDOW_DEFENCETITLE),
         'defenceIcon':
         RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_DEFENCEFUTURE,
         'defenceDescription':
         defenceDescription,
         'defenceDivisionName':
         defenceDivisionName,
         'defenceDivisionIcon':
         getDivisionIcon(fortLevel,
                         FORT_BATTLE_DIVISIONS.ABSOLUTE.minFortLevel,
                         determineAlert=False),
         'attackTitle':
         _ms(FORTIFICATIONS.ROSTERINTROWINDOW_ATTACKTITLE),
         'attackIcon':
         _ms(RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_OFFENCEFUTURE),
         'championDivisionDescription':
         _ms(FORTIFICATIONS.ROSTERINTROWINDOW_CHAMPIONDIVISIONDESCRIPTION),
         'championDivisionName':
         _ms(FORTIFICATIONS.ROSTERINTROWINDOW_CHAMPIONDIVISIONNAME),
         'championDivisionIcon':
         getDivisionIcon(FORT_BATTLE_DIVISIONS.CHAMPION.minFortLevel,
                         fortLevel,
                         determineAlert=True),
         'absoluteDivisionDescription':
         _ms(FORTIFICATIONS.ROSTERINTROWINDOW_ABSOLUTEDIVISIONDESCRIPTION),
         'absoluteDivisionName':
         _ms(FORTIFICATIONS.ROSTERINTROWINDOW_ABSOLUTEDIVISIONNAME),
         'absoluteDivisionIcon':
         getDivisionIcon(FORT_BATTLE_DIVISIONS.ABSOLUTE.minFortLevel,
                         fortLevel,
                         determineAlert=True),
         'acceptBtnLabel':
         _ms(MENU.AWARDWINDOW_OKBUTTON)
     })
     setRosterIntroWindowSetting(self._type)
示例#7
0
 def __makeData(self):
     fort = self.fortCtrl.getFort()
     data = {'numOfFavorites': len(fort.favorites),
      'favoritesLimit': FORT_MAX_ELECTED_CLANS,
      'canAttackDirection': self.fortCtrl.getPermissions().canPlanAttack(),
      'canAddToFavorite': self.fortCtrl.getPermissions().canAddToFavorite(),
      'isOurFortFrozen': self._isFortFrozen(),
      'isSelected': self.__item is not None,
      'haveResults': self.__hasResults}
     isWarDeclared = False
     isAlreadyFought = False
     if self.__item is not None:
         clanID = self.__item.getClanDBID()
         selectedDefenceHour = time_utils.getDateTimeInLocal(self.__selectedDefencePeriodStart).hour
         if self.__item.getLocalDefHour()[0] != selectedDefenceHour and not self.__weAreAtWar:
             warTime = '%s - %s' % (BigWorld.wg_getShortTimeFormat(self.__selectedDefencePeriodStart), BigWorld.wg_getShortTimeFormat(self.__selectedDefencePeriodEnd))
             warPlannedIcon = makeHtmlString('html_templates:lobby/iconText', 'alert', {})
             warPlannedMsg = makeHtmlString('html_templates:lobby/textStyle', 'alertText', {'message': warTime})
             warPlannedTime = _ms(warPlannedIcon + ' ' + warPlannedMsg)
             data.update({'warPlannedTime': warPlannedTime,
              'warPlannedTimeTT': _ms(TOOLTIPS.FORTIFICATION_FORTINTELLIGENCECLANDESCRIPTION_WARTIME, warTime=warTime)})
         if self.__weAreAtWar:
             closestAttack = self.__upcomingAttack or self.__attackInCooldown
             closestAttackTime = closestAttack.getStartTime()
             isWarDeclared = self.__upcomingAttack is not None
             isAlreadyFought = self.__attackInCooldown is not None and not self.__hasBeenCounterAttacked
             data.update({'isWarDeclared': isWarDeclared,
              'isAlreadyFought': isAlreadyFought,
              'warPlannedDate': BigWorld.wg_getLongDateFormat(closestAttackTime),
              'warNextAvailableDate': BigWorld.wg_getLongDateFormat(closestAttackTime + time_utils.ONE_WEEK)})
         isFrozen = fort.isFrozen()
         clanFortBattlesStats = self.__item.getStatistics().getBattlesStats()
         battlesCount = clanFortBattlesStats.getBattlesCount()
         battlesWinsEff = clanFortBattlesStats.getWinsEfficiency()
         MIN_VALUE = 0.01
         clanAvgDefresValue = functions.roundToMinOrZero(clanFortBattlesStats.getProfitFactor(), MIN_VALUE)
         data.update({'dateSelected': BigWorld.wg_getLongDateFormat(self.__selectedDayStart),
          'selectedDayTimestamp': self.__selectedDayStart,
          'clanTag': '[%s]' % self.__item.getClanAbbrev(),
          'clanName': self.__item.getClanName(),
          'clanInfo': self.__item.getClanMotto(),
          'clanId': clanID,
          'clanEmblem': self.__clanEmblem,
          'isFavorite': clanID in fort.favorites,
          'isFrozen': isFrozen,
          'selectedDateText': self.__getSelectedDateText(),
          'clanBattles': {'value': BigWorld.wg_getNiceNumberFormat(battlesCount) if battlesCount else '--',
                          'icon': RES_ICONS.MAPS_ICONS_LIBRARY_DOSSIER_BATTLES40X32,
                          'ttHeader': _ms(TOOLTIPS.FORTIFICATION_FORTINTELLIGENCECLANDESCRIPTION_BATTLES_HEADER),
                          'ttBody': _ms(TOOLTIPS.FORTIFICATION_FORTINTELLIGENCECLANDESCRIPTION_BATTLES_BODY, wins=BigWorld.wg_getNiceNumberFormat(clanFortBattlesStats.getWinsCount()), defeats=BigWorld.wg_getNiceNumberFormat(clanFortBattlesStats.getLossesCount()))},
          'clanWins': {'value': '%s%%' % BigWorld.wg_getNiceNumberFormat(functions.roundToMinOrZero(battlesWinsEff, MIN_VALUE) * 100) if battlesWinsEff is not None else '--',
                       'icon': RES_ICONS.MAPS_ICONS_LIBRARY_DOSSIER_WINS40X32,
                       'ttHeader': _ms(TOOLTIPS.FORTIFICATION_FORTINTELLIGENCECLANDESCRIPTION_WINS_HEADER),
                       'ttBody': _ms(TOOLTIPS.FORTIFICATION_FORTINTELLIGENCECLANDESCRIPTION_WINS_BODY)},
          'clanAvgDefres': {'value': BigWorld.wg_getNiceNumberFormat(clanAvgDefresValue) if clanAvgDefresValue else '--',
                            'icon': RES_ICONS.MAPS_ICONS_LIBRARY_DOSSIER_DEFRESRATIO40X32,
                            'ttHeader': _ms(TOOLTIPS.FORTIFICATION_FORTINTELLIGENCECLANDESCRIPTION_AVGDEFRES_HEADER),
                            'ttBody': _ms(TOOLTIPS.FORTIFICATION_FORTINTELLIGENCECLANDESCRIPTION_AVGDEFRES_BODY)},
          'directions': self.__getDirectionsData()})
         if self.fortCtrl.getPermissions().canPlanAttack() and not isWarDeclared and not isAlreadyFought:
             attackerLevel = self.fortCtrl.getFort().level
             defenderLevel = self.__item.getLevel()
             data['divisionIcon'] = getDivisionIcon(defenderLevel, attackerLevel)
     self.as_setDataS(data)
     return