@firestone-hs/replay-parser
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.9.
39 lines • 5.83 kB
JavaScript
import { GameTag } from '@firestone-hs/reference-data';
import { Entity } from './entity';
export class GameEntity extends Entity {
static create(base, newAttributes) {
// Merge tags
const newTags = newAttributes && newAttributes.tags ? newAttributes.tags : {};
const tags = base.tags ? { ...base.tags, ...newTags } : newTags;
const newEntity = Object.assign(new GameEntity(), base, newAttributes, { tags });
return newEntity;
}
update(definition) {
const newAttributes = {};
if (definition.cardID) {
newAttributes.cardID = definition.cardID;
}
if (definition.name) {
newAttributes.name = definition.name;
}
if (definition.tags) {
newAttributes.tags = definition.tags;
if (newAttributes.tags.PLAYSTATE === 8) {
newAttributes.tags.CONCEDED = 1;
}
}
return GameEntity.create(this, newAttributes);
}
updateTag(tag, value) {
const newTags = { ...this.tags, [GameTag[tag]]: value };
const base = this;
return Object.assign(new GameEntity(), base, { tags: newTags });
}
updateDamage(damage) {
return this;
}
isBattlegrounds() {
return this.getTag(GameTag.TECH_LEVEL_MANA_GEM) === 1;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtZS1lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yZXBsYXktcGFyc2VyL3NyYy9saWIvbW9kZWxzL2dhbWUvZ2FtZS1lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsTUFBTSxPQUFPLFVBQVcsU0FBUSxNQUFNO0lBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBZ0IsRUFBRSxhQUFnQztRQUN0RSxhQUFhO1FBQ2IsTUFBTSxPQUFPLEdBQWtDLGFBQWEsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDN0csTUFBTSxJQUFJLEdBQWtDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUMvRixNQUFNLFNBQVMsR0FBZSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0YsT0FBTyxTQUFTLENBQUM7SUFDbEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxVQUE0QjtRQUN6QyxNQUFNLGFBQWEsR0FBUSxFQUFFLENBQUM7UUFDOUIsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ3RCLGFBQWEsQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztTQUN6QztRQUNELElBQUksVUFBVSxDQUFDLElBQUksRUFBRTtZQUNwQixhQUFhLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7U0FDckM7UUFDRCxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUU7WUFDcEIsYUFBYSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ3JDLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssQ0FBQyxFQUFFO2dCQUN2QyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7YUFDaEM7U0FDRDtRQUNELE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFZLEVBQUUsS0FBYTtRQUMzQyxNQUFNLE9BQU8sR0FBa0MsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN2RixNQUFNLElBQUksR0FBZSxJQUFJLENBQUM7UUFDOUIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUFjO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVNLGVBQWU7UUFDckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHYW1lVGFnIH0gZnJvbSAnQGZpcmVzdG9uZS1ocy9yZWZlcmVuY2UtZGF0YSc7XHJcbmltcG9ydCB7IEVudGl0eURlZmluaXRpb24gfSBmcm9tICcuLi9wYXJzZXIvZW50aXR5LWRlZmluaXRpb24nO1xyXG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuL2VudGl0eSc7XHJcblxyXG5leHBvcnQgY2xhc3MgR2FtZUVudGl0eSBleHRlbmRzIEVudGl0eSB7XHJcblx0cHVibGljIHN0YXRpYyBjcmVhdGUoYmFzZTogR2FtZUVudGl0eSwgbmV3QXR0cmlidXRlcz86IEVudGl0eURlZmluaXRpb24pOiBHYW1lRW50aXR5IHtcclxuXHRcdC8vIE1lcmdlIHRhZ3NcclxuXHRcdGNvbnN0IG5ld1RhZ3M6IHsgW3RhZ05hbWU6IHN0cmluZ106IG51bWJlciB9ID0gbmV3QXR0cmlidXRlcyAmJiBuZXdBdHRyaWJ1dGVzLnRhZ3MgPyBuZXdBdHRyaWJ1dGVzLnRhZ3MgOiB7fTtcclxuXHRcdGNvbnN0IHRhZ3M6IHsgW3RhZ05hbWU6IHN0cmluZ106IG51bWJlciB9ID0gYmFzZS50YWdzID8geyAuLi5iYXNlLnRhZ3MsIC4uLm5ld1RhZ3MgfSA6IG5ld1RhZ3M7XHJcblx0XHRjb25zdCBuZXdFbnRpdHk6IEdhbWVFbnRpdHkgPSBPYmplY3QuYXNzaWduKG5ldyBHYW1lRW50aXR5KCksIGJhc2UsIG5ld0F0dHJpYnV0ZXMsIHsgdGFncyB9KTtcclxuXHRcdHJldHVybiBuZXdFbnRpdHk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdXBkYXRlKGRlZmluaXRpb246IEVudGl0eURlZmluaXRpb24pOiBHYW1lRW50aXR5IHtcclxuXHRcdGNvbnN0IG5ld0F0dHJpYnV0ZXM6IGFueSA9IHt9O1xyXG5cdFx0aWYgKGRlZmluaXRpb24uY2FyZElEKSB7XHJcblx0XHRcdG5ld0F0dHJpYnV0ZXMuY2FyZElEID0gZGVmaW5pdGlvbi5jYXJkSUQ7XHJcblx0XHR9XHJcblx0XHRpZiAoZGVmaW5pdGlvbi5uYW1lKSB7XHJcblx0XHRcdG5ld0F0dHJpYnV0ZXMubmFtZSA9IGRlZmluaXRpb24ubmFtZTtcclxuXHRcdH1cclxuXHRcdGlmIChkZWZpbml0aW9uLnRhZ3MpIHtcclxuXHRcdFx0bmV3QXR0cmlidXRlcy50YWdzID0gZGVmaW5pdGlvbi50YWdzO1xyXG5cdFx0XHRpZiAobmV3QXR0cmlidXRlcy50YWdzLlBMQVlTVEFURSA9PT0gOCkge1xyXG5cdFx0XHRcdG5ld0F0dHJpYnV0ZXMudGFncy5DT05DRURFRCA9IDE7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBHYW1lRW50aXR5LmNyZWF0ZSh0aGlzLCBuZXdBdHRyaWJ1dGVzKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyB1cGRhdGVUYWcodGFnOiBHYW1lVGFnLCB2YWx1ZTogbnVtYmVyKTogR2FtZUVudGl0eSB7XHJcblx0XHRjb25zdCBuZXdUYWdzOiB7IFt0YWdOYW1lOiBzdHJpbmddOiBudW1iZXIgfSA9IHsgLi4udGhpcy50YWdzLCBbR2FtZVRhZ1t0YWddXTogdmFsdWUgfTtcclxuXHRcdGNvbnN0IGJhc2U6IEdhbWVFbnRpdHkgPSB0aGlzO1xyXG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IEdhbWVFbnRpdHkoKSwgYmFzZSwgeyB0YWdzOiBuZXdUYWdzIH0pO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHVwZGF0ZURhbWFnZShkYW1hZ2U6IG51bWJlcik6IEdhbWVFbnRpdHkge1xyXG5cdFx0cmV0dXJuIHRoaXM7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgaXNCYXR0bGVncm91bmRzKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuZ2V0VGFnKEdhbWVUYWcuVEVDSF9MRVZFTF9NQU5BX0dFTSkgPT09IDE7XHJcblx0fVxyXG59XHJcbiJdfQ==