UNPKG

@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
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=