tf2-item-format
Version:
Format's TF2 items like backpack.tf does
76 lines • 2.88 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const decomposeName_1 = __importDefault(require("../../shared/decomposeName"));
const isStrangeTexture_1 = __importDefault(require("./ItemName/isStrangeTexture"));
const isUnusual_1 = __importDefault(require("./ItemName/isUnusual"));
/**
* Class that handles name.
*/
class ItemName {
constructor(econ) {
this.econ = econ;
this.item = econ.item;
this.origin = this.getOrigin();
}
getOrigin() {
return (this.item.market_name || this.item.market_hash_name
// || this.item.name
);
}
getShort() {
const { australium, wear, killstreak, texture, elevated, festivized, quality, isUniqueHat, output, outputQuality, target, itemNumber, } = this.econ.getNameAttributes('', false, false);
return (0, decomposeName_1.default)(this.origin, Object.assign({ quality: { value: quality, elevated: !!elevated }, australium,
festivized,
isUniqueHat,
// We know it's a string here:
killstreak: killstreak, wear: wear, texture: texture, craftable: true, itemNumber }, (output || target
? {
usableItem: {
output,
target,
outputQuality: outputQuality,
},
}
: {})));
}
/**
* Returns full name like backpack.tf
* @return {string}
*/
getFull() {
let name = this.origin;
const { craftable, tradable, texture, quality, effect, isUniqueHat, itemNumber, } = this.econ.getNameAttributes('', false, false);
if (isUniqueHat) {
name = name.replace('The ', '');
}
if (effect) {
if ((0, isUnusual_1.default)(quality))
name = name.replace('Unusual ', `${effect} `);
else {
name = name.replace(`${quality} `, `${quality} ${effect} `);
}
}
if (!name.includes('Strange') && (0, isStrangeTexture_1.default)(quality, texture))
name = `Strange ${name}`;
if (!tradable)
name = `Non-Tradable ${name}`;
if (!craftable)
name = `Non-Craftable ${name}`;
if (this.shouldAddItemNumber(itemNumber)) {
name += ` #${itemNumber.value}`;
name = name.replace('Series ', '');
}
if (name.includes('Keyless Case Series')) {
name = name.replace('Series ', '');
}
return name;
}
shouldAddItemNumber(itemNumber) {
return !!itemNumber && !this.origin.endsWith(` #${itemNumber.value}`);
}
}
exports.default = ItemName;
//# sourceMappingURL=ItemName.js.map