def __init__(self, path, data): super(Token, self).__init__('token', dict(data), path) self._id = _getNodeValue(self._data, 'id') self._consumable = 'consume' in self._data self._relation = _findRelation(self._data.keys()) self._relationValue = int(_getNodeValue(self._data, self._relation, 0)) self._complex = formatters.parseComplexToken(self._id)
def _format(self, bonus): result = [] for tokenID, token in bonus.getTokens().iteritems(): complexToken = parseComplexToken(tokenID) if complexToken.isDisplayable: userName = i18n.makeString(self._getUserName(complexToken.styleID)) tooltip = makeTooltip(i18n.makeString(TOOLTIPS.QUESTS_BONUSES_TOKEN_HEADER, userName=userName), i18n.makeString(TOOLTIPS.QUESTS_BONUSES_TOKEN_BODY)) result.append(PreformattedBonus(images=self.__getTokenImages(complexToken.styleID), label=_formatCountLabel(token.count), userName=self._getUserName(tokenID), labelFormatter=self._getLabelFormatter(bonus), tooltip=tooltip, align=LABEL_ALIGN.RIGHT, isCompensation=self._isCompensation(bonus))) return result
def formatValue(self): result = [] for tokenID, _ in self._value.iteritems(): complexToken = parseComplexToken(tokenID) if complexToken.isDisplayable: userName = self._getUserName(complexToken.styleID) result.append( i18n.makeString(TOOLTIPS.MISSIONS_TOKEN_HEADER, name=userName)) return ', '.join(result) if result else None
def _pack(cls, bonus): bonusTokens = bonus.getTokens() result = [] bonusPackers = cls.__getTokenBonusPackers() for tokenID, token in bonusTokens.iteritems(): complexToken = parseComplexToken(tokenID) tokenType = cls.__getTokenBonusType(tokenID, complexToken) specialPacker = bonusPackers.get(tokenType) if specialPacker is None: continue packedBonus = cls.__packToken(specialPacker, bonus, complexToken, token) if packedBonus is not None: result.append(packedBonus) return result
def _getToolTip(cls, bonus): bonusTokens = bonus.getTokens() tooltipPackers = cls._getTooltipsPackers() result = [] for tokenID, _ in bonusTokens.iteritems(): complexToken = parseComplexToken(tokenID) tokenType = cls._getTokenBonusType(tokenID, complexToken) tooltipDataPacker = tooltipPackers.get(tokenType) if tooltipDataPacker is None: _logger.warning( 'There is not a tooltip creator for a token bonus %s', tokenType) continue result.append(tooltipDataPacker(tokenID, complexToken)) return result