def openVehiclePackPreview(self, cmd):
        items = _parseItemsPack(cmd.items)
        price, oldPrice = _parseBuyPrice(cmd.buy_price)
        vehiclesID = []
        for item in items:
            if item.type in ItemPackTypeGroup.VEHICLE:
                vehiclesID.append(item.id)

        if vehiclesID and self.__validVehiclePreviewPack(vehiclesID):
            localEndTime = None
            if cmd.end_date:
                timestamp = getTimestampFromISO(cmd.end_date)
                datetimeInUTC = getDateTimeInUTC(timestamp)
                localDatetime = utcToLocalDatetime(datetimeInUTC)
                localEndTime = (localDatetime -
                                getDateTimeInLocal(0)).total_seconds()
            event_dispatcher.showVehiclePreview(
                vehTypeCompDescr=vehiclesID[0],
                itemsPack=items,
                price=price,
                oldPrice=oldPrice,
                title=cmd.title,
                endTime=localEndTime,
                previewAlias=self._getVehiclePreviewReturnAlias(cmd),
                previewBackCb=self._getVehiclePreviewReturnCallback(cmd),
                buyParams=cmd.buy_params)
        else:
            _pushInvalidPreviewMessage()
        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 canPlanAttackOn(self, dayTimestamp, clanFortInfo):
        if self.isFrozen():
            return ATTACK_PLAN_RESULT.MY_FROZEN
        currentDefHourTimestamp = time_utils.getTimeForLocal(dayTimestamp, clanFortInfo.getStartDefHour())
        enemyDefHour = clanFortInfo.getDefHourFor(currentDefHourTimestamp)
        enemyDefHourTimestamp = time_utils.getTimeForLocal(dayTimestamp, enemyDefHour)
        if enemyDefHourTimestamp - time_utils.getCurrentTimestamp() <= fortified_regions.g_cache.attackPreorderTime:
            return ATTACK_PLAN_RESULT.PREORDER_TIME
        if self.isOnVacationAt(enemyDefHourTimestamp):
            return ATTACK_PLAN_RESULT.MY_VACATION
        (vacationStart, vacationEnd,) = clanFortInfo.getVacationPeriod()
        if vacationStart <= enemyDefHourTimestamp <= vacationEnd:
            return ATTACK_PLAN_RESULT.OPP_VACATION
        dayDate = time_utils.getDateTimeInLocal(dayTimestamp)
        localOffDay = clanFortInfo.getLocalOffDayFor(currentDefHourTimestamp)
        if dayDate.weekday() == localOffDay:
            return ATTACK_PLAN_RESULT.OPP_OFF_DAY
        if self.defenceHour == clanFortInfo.getStartDefHour():
            return ATTACK_PLAN_RESULT.DEFENCE_HOUR_SAME

        def filterInFight(item):
            if enemyDefHourTimestamp <= item.getStartTime() < enemyDefHourTimestamp + time_utils.ONE_HOUR:
                return True
            return False


        attacksInFight = self.getAttacks(clanFortInfo.getClanDBID(), filterInFight)
        if attacksInFight:
            return ATTACK_PLAN_RESULT.WAR_DECLARED
        if clanFortInfo.closestAttackInCooldown is not None and dayTimestamp < clanFortInfo.closestAttackInCooldown.getStartTime() + time_utils.ONE_DAY * 7 and not clanFortInfo.counterAttacked:
            return ATTACK_PLAN_RESULT.IN_COOLDOWN
        (hasAvailableDirections, hasFreeDirections,) = (False, False)
        for direction in self.getOpenedDirections():
            eventTypeID = FORT_EVENT_TYPE.DIR_OPEN_ATTACKS_BASE + direction
            (availableTime, _, _,) = self.events.get(eventTypeID, (None, None, None))
            if availableTime <= enemyDefHourTimestamp:
                hasAvailableDirections = True

                def filterAttacks(item):
                    if enemyDefHourTimestamp <= item.getStartTime() <= enemyDefHourTimestamp + time_utils.ONE_HOUR and direction == item.getDirection() and not item.isEnded():
                        return True
                    return False


                if not self.getAttacks(filterFunc=filterAttacks):
                    hasFreeDirections = True
                    break

        if not hasAvailableDirections:
            return ATTACK_PLAN_RESULT.MY_NO_DIR
        if not hasFreeDirections:
            return ATTACK_PLAN_RESULT.MY_BUSY
        (isBusy, isAvailable,) = clanFortInfo.isAvailableForAttack(enemyDefHourTimestamp)
        if not isAvailable:
            return ATTACK_PLAN_RESULT.OPP_NO_DIR
        if isBusy:
            return ATTACK_PLAN_RESULT.OPP_BUSY
        return ATTACK_PLAN_RESULT.OK
 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}
     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()
             data.update({'isWarDeclared': self.__upcomingAttack is not None,
              'isAlreadyFought': self.__attackInCooldown is not None and not self.__hasBeenCounterAttacked,
              '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()})
     self.as_setDataS(data)
     return
示例#5
0
    def canPlanAttackOn(self, dayTimestamp, clanFortInfo):
        if self.isFrozen():
            return ATTACK_PLAN_RESULT.MY_FROZEN
        currentDefHourTimestamp = time_utils.getTimeForLocal(dayTimestamp, *clanFortInfo.getLocalDefHour())
        enemyDefHourTimestamp = time_utils.getTimeForLocal(dayTimestamp, *clanFortInfo.getDefHourFor(currentDefHourTimestamp))
        if enemyDefHourTimestamp - time_utils.getCurrentTimestamp() <= fortified_regions.g_cache.attackPreorderTime:
            return ATTACK_PLAN_RESULT.PREORDER_TIME
        if self.isOnVacationAt(enemyDefHourTimestamp):
            return ATTACK_PLAN_RESULT.MY_VACATION
        vacationStart, vacationEnd = clanFortInfo.getVacationPeriod()
        if vacationStart <= enemyDefHourTimestamp <= vacationEnd:
            return ATTACK_PLAN_RESULT.OPP_VACATION
        dayDate = time_utils.getDateTimeInLocal(dayTimestamp)
        localOffDay = clanFortInfo.getLocalOffDayFor(currentDefHourTimestamp)
        if dayDate.weekday() == localOffDay:
            return ATTACK_PLAN_RESULT.OPP_OFF_DAY
        if self.defenceHour == clanFortInfo.getStartDefHour():
            return ATTACK_PLAN_RESULT.DEFENCE_HOUR_SAME

        def filterInFight(item):
            if enemyDefHourTimestamp <= item.getStartTime() < enemyDefHourTimestamp + time_utils.ONE_HOUR:
                return True
            return False

        attacksInFight = self.getAttacks(clanFortInfo.getClanDBID(), filterInFight)
        if attacksInFight:
            return ATTACK_PLAN_RESULT.WAR_DECLARED
        if clanFortInfo.closestAttackInCooldown is not None and dayTimestamp < clanFortInfo.closestAttackInCooldown.getStartTime() + time_utils.ONE_DAY * 7 and not clanFortInfo.counterAttacked:
            return ATTACK_PLAN_RESULT.IN_COOLDOWN
        hasAvailableDirections, hasFreeDirections = False, False
        for direction in self.getOpenedDirections():
            eventTypeID = FORT_EVENT_TYPE.DIR_OPEN_ATTACKS_BASE + direction
            availableTime, _, _ = self.events.get(eventTypeID, (None, None, None))
            if availableTime is None or availableTime <= enemyDefHourTimestamp:
                hasAvailableDirections = True

                def filterAttacks(item):
                    if enemyDefHourTimestamp <= item.getStartTime() <= enemyDefHourTimestamp + time_utils.ONE_HOUR and direction == item.getDirection() and not item.isEnded():
                        return True
                    return False

                if not self.getAttacks(filterFunc=filterAttacks):
                    hasFreeDirections = True
                    break

        if not hasAvailableDirections:
            return ATTACK_PLAN_RESULT.MY_NO_DIR
        if not hasFreeDirections:
            return ATTACK_PLAN_RESULT.MY_BUSY
        isBusy, isAvailable = clanFortInfo.isAvailableForAttack(enemyDefHourTimestamp)
        if not isAvailable:
            return ATTACK_PLAN_RESULT.OPP_NO_DIR
        if isBusy:
            return ATTACK_PLAN_RESULT.OPP_BUSY
        return ATTACK_PLAN_RESULT.OK
示例#6
0
 def getDateParams(self, timestamp):
     from helpers import time_utils
     date = time_utils.getDateTimeInLocal(int(timestamp))
     result = {'year': date.year,
      'month': date.month - 1,
      'date': date.day,
      'hour': date.hour,
      'minute': date.minute,
      'second': date.second,
      'millisecond': date.microsecond * 1000}
     return result
示例#7
0
 def _getDescrBlock(self):
     minStartTime = min([q.getStartTime() for q in self._suitableEvents])
     maxFinishTime = max([q.getFinishTime() for q in self._suitableEvents])
     startDate = time_utils.getDateTimeInLocal(minStartTime)
     finishDate = time_utils.getDateTimeInLocal(maxFinishTime)
     startDateFormat = finishDateFormat = '%d %B %Y'
     if startDate.year == finishDate.year:
         startDateFormat = '%d %B'
         if startDate.month == finishDate.month:
             startDateFormat = '%d'
     return {
         'period':
         text_styles.middleTitle(
             _ms(QUESTS.MISSIONS_TAB_MARATHONS_HEADER_PERIOD,
                 startDate=formatDate(startDateFormat, minStartTime),
                 endDate=formatDate(finishDateFormat, maxFinishTime))),
         'isMultiline':
         True,
         'hasCalendarIcon':
         True
     }
 def isOnOffDay(self):
     return self.getLocalOffDay() == time_utils.getDateTimeInLocal(time_utils.getCurrentTimestamp()).weekday()
示例#9
0
 def isOnOffDay(self):
     return self.getLocalOffDay() == time_utils.getDateTimeInLocal(
         time_utils.getCurrentTimestamp()).weekday()
示例#10
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