UNPKG

@firestone-hs/replay-parser

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.9.

38 lines 6.19 kB
import { GameTag } from '@firestone-hs/reference-data'; import { Map } from 'immutable'; import { Entity } from './entity'; export class PlayerEntity 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 PlayerEntity(), 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 PlayerEntity.create(this, newAttributes); } updateDamage(damage) { const base = this; return Object.assign(new PlayerEntity(), base, { damageForThisAction: damage }); } updateTag(tag, value) { const newTags = this.tags.set(GameTag[tag], value); const base = this; return Object.assign(new PlayerEntity(), base, { tags: newTags }); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWVyLWVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcGxheS1wYXJzZXIvc3JjL2xpYi9tb2RlbHMvZ2FtZS9wbGF5ZXItZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWhDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsTUFBTSxPQUFPLFlBQWEsU0FBUSxNQUFNO0lBT2hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBa0IsRUFBRSxhQUFnQztRQUN4RSxhQUFhO1FBQ2IsTUFBTSxPQUFPLEdBQXdCLGFBQWEsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN0RyxNQUFNLElBQUksR0FBd0IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNqRixNQUFNLFNBQVMsR0FBaUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pHLE9BQU8sU0FBUyxDQUFDO0lBQ2xCLENBQUM7SUFFTSxNQUFNLENBQUMsVUFBNEI7UUFDekMsTUFBTSxhQUFhLEdBQVEsRUFBRSxDQUFDO1FBQzlCLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUN0QixhQUFhLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7U0FDekM7UUFDRCxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUU7WUFDcEIsYUFBYSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQ3BCLGFBQWEsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNyQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLENBQUMsRUFBRTtnQkFDdkMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO2FBQ2hDO1NBQ0Q7UUFDRCxPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTSxZQUFZLENBQUMsTUFBYztRQUNqQyxNQUFNLElBQUksR0FBaUIsSUFBSSxDQUFDO1FBQ2hDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFZLEVBQUUsS0FBYTtRQUMzQyxNQUFNLE9BQU8sR0FBd0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sSUFBSSxHQUFpQixJQUFJLENBQUM7UUFDaEMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2FtZVRhZyB9IGZyb20gJ0BmaXJlc3RvbmUtaHMvcmVmZXJlbmNlLWRhdGEnO1xyXG5pbXBvcnQgeyBNYXAgfSBmcm9tICdpbW11dGFibGUnO1xyXG5pbXBvcnQgeyBFbnRpdHlEZWZpbml0aW9uIH0gZnJvbSAnLi4vcGFyc2VyL2VudGl0eS1kZWZpbml0aW9uJztcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi9lbnRpdHknO1xyXG5cclxuZXhwb3J0IGNsYXNzIFBsYXllckVudGl0eSBleHRlbmRzIEVudGl0eSB7XHJcblx0cmVhZG9ubHkgcGxheWVySWQ6IG51bWJlcjtcclxuXHRyZWFkb25seSBuYW1lOiBzdHJpbmc7XHJcblx0cmVhZG9ubHkgYWNjb3VudEhpOiBzdHJpbmc7XHJcblx0cmVhZG9ubHkgYWNjb3VudExvOiBzdHJpbmc7XHJcblx0cmVhZG9ubHkgaXNNYWluUGxheWVyOiBib29sZWFuO1xyXG5cclxuXHRwdWJsaWMgc3RhdGljIGNyZWF0ZShiYXNlOiBQbGF5ZXJFbnRpdHksIG5ld0F0dHJpYnV0ZXM/OiBFbnRpdHlEZWZpbml0aW9uKTogUGxheWVyRW50aXR5IHtcclxuXHRcdC8vIE1lcmdlIHRhZ3NcclxuXHRcdGNvbnN0IG5ld1RhZ3M6IE1hcDxzdHJpbmcsIG51bWJlcj4gPSBuZXdBdHRyaWJ1dGVzICYmIG5ld0F0dHJpYnV0ZXMudGFncyA/IG5ld0F0dHJpYnV0ZXMudGFncyA6IE1hcCgpO1xyXG5cdFx0Y29uc3QgdGFnczogTWFwPHN0cmluZywgbnVtYmVyPiA9IGJhc2UudGFncyA/IGJhc2UudGFncy5tZXJnZShuZXdUYWdzKSA6IG5ld1RhZ3M7XHJcblx0XHRjb25zdCBuZXdFbnRpdHk6IFBsYXllckVudGl0eSA9IE9iamVjdC5hc3NpZ24obmV3IFBsYXllckVudGl0eSgpLCBiYXNlLCBuZXdBdHRyaWJ1dGVzLCB7IHRhZ3MgfSk7XHJcblx0XHRyZXR1cm4gbmV3RW50aXR5O1xyXG5cdH1cclxuXHJcblx0cHVibGljIHVwZGF0ZShkZWZpbml0aW9uOiBFbnRpdHlEZWZpbml0aW9uKTogUGxheWVyRW50aXR5IHtcclxuXHRcdGNvbnN0IG5ld0F0dHJpYnV0ZXM6IGFueSA9IHt9O1xyXG5cdFx0aWYgKGRlZmluaXRpb24uY2FyZElEKSB7XHJcblx0XHRcdG5ld0F0dHJpYnV0ZXMuY2FyZElEID0gZGVmaW5pdGlvbi5jYXJkSUQ7XHJcblx0XHR9XHJcblx0XHRpZiAoZGVmaW5pdGlvbi5uYW1lKSB7XHJcblx0XHRcdG5ld0F0dHJpYnV0ZXMubmFtZSA9IGRlZmluaXRpb24ubmFtZTtcclxuXHRcdH1cclxuXHRcdGlmIChkZWZpbml0aW9uLnRhZ3MpIHtcclxuXHRcdFx0bmV3QXR0cmlidXRlcy50YWdzID0gZGVmaW5pdGlvbi50YWdzO1xyXG5cdFx0XHRpZiAobmV3QXR0cmlidXRlcy50YWdzLlBMQVlTVEFURSA9PT0gOCkge1xyXG5cdFx0XHRcdG5ld0F0dHJpYnV0ZXMudGFncy5DT05DRURFRCA9IDE7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBQbGF5ZXJFbnRpdHkuY3JlYXRlKHRoaXMsIG5ld0F0dHJpYnV0ZXMpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHVwZGF0ZURhbWFnZShkYW1hZ2U6IG51bWJlcik6IFBsYXllckVudGl0eSB7XHJcblx0XHRjb25zdCBiYXNlOiBQbGF5ZXJFbnRpdHkgPSB0aGlzO1xyXG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IFBsYXllckVudGl0eSgpLCBiYXNlLCB7IGRhbWFnZUZvclRoaXNBY3Rpb246IGRhbWFnZSB9KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyB1cGRhdGVUYWcodGFnOiBHYW1lVGFnLCB2YWx1ZTogbnVtYmVyKTogUGxheWVyRW50aXR5IHtcclxuXHRcdGNvbnN0IG5ld1RhZ3M6IE1hcDxzdHJpbmcsIG51bWJlcj4gPSB0aGlzLnRhZ3Muc2V0KEdhbWVUYWdbdGFnXSwgdmFsdWUpO1xyXG5cdFx0Y29uc3QgYmFzZTogUGxheWVyRW50aXR5ID0gdGhpcztcclxuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBQbGF5ZXJFbnRpdHkoKSwgYmFzZSwgeyB0YWdzOiBuZXdUYWdzIH0pO1xyXG5cdH1cclxufVxyXG4iXX0=