@firestone-hs/replay-parser
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.9.
40 lines • 5.9 kB
JavaScript
import { GameTag } from '@firestone-hs/reference-data';
import { Map } from 'immutable';
import { Entity } from './entity';
export class GameEntity extends Entity {
static create(base, newAttributes) {
// Merge tags
const newTags = newAttributes && newAttributes.tags ? newAttributes.tags : Map();
const tags = base.tags ? base.tags.merge(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.set(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtZS1lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yZXBsYXktcGFyc2VyL3NyYy9saWIvbW9kZWxzL2dhbWUvZ2FtZS1lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsQyxNQUFNLE9BQU8sVUFBVyxTQUFRLE1BQU07SUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFnQixFQUFFLGFBQWdDO1FBQ3RFLGFBQWE7UUFDYixNQUFNLE9BQU8sR0FBd0IsYUFBYSxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3RHLE1BQU0sSUFBSSxHQUF3QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ2pGLE1BQU0sU0FBUyxHQUFlLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3RixPQUFPLFNBQVMsQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQTRCO1FBQ3pDLE1BQU0sYUFBYSxHQUFRLEVBQUUsQ0FBQztRQUM5QixJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsYUFBYSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQ3BCLGFBQWEsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztTQUNyQztRQUNELElBQUksVUFBVSxDQUFDLElBQUksRUFBRTtZQUNwQixhQUFhLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDckMsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3ZDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQzthQUNoQztTQUNEO1FBQ0QsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sU0FBUyxDQUFDLEdBQVksRUFBRSxLQUFhO1FBQzNDLE1BQU0sT0FBTyxHQUF3QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEUsTUFBTSxJQUFJLEdBQWUsSUFBSSxDQUFDO1FBQzlCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxZQUFZLENBQUMsTUFBYztRQUNqQyxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFTSxlQUFlO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2FtZVRhZyB9IGZyb20gJ0BmaXJlc3RvbmUtaHMvcmVmZXJlbmNlLWRhdGEnO1xyXG5pbXBvcnQgeyBNYXAgfSBmcm9tICdpbW11dGFibGUnO1xyXG5pbXBvcnQgeyBFbnRpdHlEZWZpbml0aW9uIH0gZnJvbSAnLi4vcGFyc2VyL2VudGl0eS1kZWZpbml0aW9uJztcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi9lbnRpdHknO1xyXG5cclxuZXhwb3J0IGNsYXNzIEdhbWVFbnRpdHkgZXh0ZW5kcyBFbnRpdHkge1xyXG5cdHB1YmxpYyBzdGF0aWMgY3JlYXRlKGJhc2U6IEdhbWVFbnRpdHksIG5ld0F0dHJpYnV0ZXM/OiBFbnRpdHlEZWZpbml0aW9uKTogR2FtZUVudGl0eSB7XHJcblx0XHQvLyBNZXJnZSB0YWdzXHJcblx0XHRjb25zdCBuZXdUYWdzOiBNYXA8c3RyaW5nLCBudW1iZXI+ID0gbmV3QXR0cmlidXRlcyAmJiBuZXdBdHRyaWJ1dGVzLnRhZ3MgPyBuZXdBdHRyaWJ1dGVzLnRhZ3MgOiBNYXAoKTtcclxuXHRcdGNvbnN0IHRhZ3M6IE1hcDxzdHJpbmcsIG51bWJlcj4gPSBiYXNlLnRhZ3MgPyBiYXNlLnRhZ3MubWVyZ2UobmV3VGFncykgOiBuZXdUYWdzO1xyXG5cdFx0Y29uc3QgbmV3RW50aXR5OiBHYW1lRW50aXR5ID0gT2JqZWN0LmFzc2lnbihuZXcgR2FtZUVudGl0eSgpLCBiYXNlLCBuZXdBdHRyaWJ1dGVzLCB7IHRhZ3MgfSk7XHJcblx0XHRyZXR1cm4gbmV3RW50aXR5O1xyXG5cdH1cclxuXHJcblx0cHVibGljIHVwZGF0ZShkZWZpbml0aW9uOiBFbnRpdHlEZWZpbml0aW9uKTogR2FtZUVudGl0eSB7XHJcblx0XHRjb25zdCBuZXdBdHRyaWJ1dGVzOiBhbnkgPSB7fTtcclxuXHRcdGlmIChkZWZpbml0aW9uLmNhcmRJRCkge1xyXG5cdFx0XHRuZXdBdHRyaWJ1dGVzLmNhcmRJRCA9IGRlZmluaXRpb24uY2FyZElEO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGRlZmluaXRpb24ubmFtZSkge1xyXG5cdFx0XHRuZXdBdHRyaWJ1dGVzLm5hbWUgPSBkZWZpbml0aW9uLm5hbWU7XHJcblx0XHR9XHJcblx0XHRpZiAoZGVmaW5pdGlvbi50YWdzKSB7XHJcblx0XHRcdG5ld0F0dHJpYnV0ZXMudGFncyA9IGRlZmluaXRpb24udGFncztcclxuXHRcdFx0aWYgKG5ld0F0dHJpYnV0ZXMudGFncy5QTEFZU1RBVEUgPT09IDgpIHtcclxuXHRcdFx0XHRuZXdBdHRyaWJ1dGVzLnRhZ3MuQ09OQ0VERUQgPSAxO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gR2FtZUVudGl0eS5jcmVhdGUodGhpcywgbmV3QXR0cmlidXRlcyk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdXBkYXRlVGFnKHRhZzogR2FtZVRhZywgdmFsdWU6IG51bWJlcik6IEdhbWVFbnRpdHkge1xyXG5cdFx0Y29uc3QgbmV3VGFnczogTWFwPHN0cmluZywgbnVtYmVyPiA9IHRoaXMudGFncy5zZXQoR2FtZVRhZ1t0YWddLCB2YWx1ZSk7XHJcblx0XHRjb25zdCBiYXNlOiBHYW1lRW50aXR5ID0gdGhpcztcclxuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBHYW1lRW50aXR5KCksIGJhc2UsIHsgdGFnczogbmV3VGFncyB9KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyB1cGRhdGVEYW1hZ2UoZGFtYWdlOiBudW1iZXIpOiBHYW1lRW50aXR5IHtcclxuXHRcdHJldHVybiB0aGlzO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGlzQmF0dGxlZ3JvdW5kcygpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmdldFRhZyhHYW1lVGFnLlRFQ0hfTEVWRUxfTUFOQV9HRU0pID09PSAxO1xyXG5cdH1cclxufVxyXG4iXX0=