@firestone-hs/replay-parser
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.9.
37 lines • 6.12 kB
JavaScript
import { GameTag } from '@firestone-hs/reference-data';
import { Entity } from './entity';
export class PlayerEntity 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 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, [GameTag[tag]]: value };
const base = this;
return Object.assign(new PlayerEntity(), base, { tags: newTags });
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWVyLWVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcGxheS1wYXJzZXIvc3JjL2xpYi9tb2RlbHMvZ2FtZS9wbGF5ZXItZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxDLE1BQU0sT0FBTyxZQUFhLFNBQVEsTUFBTTtJQU9oQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQWtCLEVBQUUsYUFBZ0M7UUFDeEUsYUFBYTtRQUNiLE1BQU0sT0FBTyxHQUFrQyxhQUFhLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdHLE1BQU0sSUFBSSxHQUFrQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDL0YsTUFBTSxTQUFTLEdBQWlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNqRyxPQUFPLFNBQVMsQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQTRCO1FBQ3pDLE1BQU0sYUFBYSxHQUFRLEVBQUUsQ0FBQztRQUM5QixJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsYUFBYSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQ3BCLGFBQWEsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztTQUNyQztRQUNELElBQUksVUFBVSxDQUFDLElBQUksRUFBRTtZQUNwQixhQUFhLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDckMsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3ZDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQzthQUNoQztTQUNEO1FBQ0QsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0sWUFBWSxDQUFDLE1BQWM7UUFDakMsTUFBTSxJQUFJLEdBQWlCLElBQUksQ0FBQztRQUNoQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBWSxFQUFFLEtBQWE7UUFDM0MsTUFBTSxPQUFPLEdBQWtDLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDdkYsTUFBTSxJQUFJLEdBQWlCLElBQUksQ0FBQztRQUNoQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHYW1lVGFnIH0gZnJvbSAnQGZpcmVzdG9uZS1ocy9yZWZlcmVuY2UtZGF0YSc7XHJcbmltcG9ydCB7IEVudGl0eURlZmluaXRpb24gfSBmcm9tICcuLi9wYXJzZXIvZW50aXR5LWRlZmluaXRpb24nO1xyXG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuL2VudGl0eSc7XHJcblxyXG5leHBvcnQgY2xhc3MgUGxheWVyRW50aXR5IGV4dGVuZHMgRW50aXR5IHtcclxuXHRyZWFkb25seSBwbGF5ZXJJZDogbnVtYmVyO1xyXG5cdHJlYWRvbmx5IG5hbWU6IHN0cmluZztcclxuXHRyZWFkb25seSBhY2NvdW50SGk6IHN0cmluZztcclxuXHRyZWFkb25seSBhY2NvdW50TG86IHN0cmluZztcclxuXHRyZWFkb25seSBpc01haW5QbGF5ZXI6IGJvb2xlYW47XHJcblxyXG5cdHB1YmxpYyBzdGF0aWMgY3JlYXRlKGJhc2U6IFBsYXllckVudGl0eSwgbmV3QXR0cmlidXRlcz86IEVudGl0eURlZmluaXRpb24pOiBQbGF5ZXJFbnRpdHkge1xyXG5cdFx0Ly8gTWVyZ2UgdGFnc1xyXG5cdFx0Y29uc3QgbmV3VGFnczogeyBbdGFnTmFtZTogc3RyaW5nXTogbnVtYmVyIH0gPSBuZXdBdHRyaWJ1dGVzICYmIG5ld0F0dHJpYnV0ZXMudGFncyA/IG5ld0F0dHJpYnV0ZXMudGFncyA6IHt9O1xyXG5cdFx0Y29uc3QgdGFnczogeyBbdGFnTmFtZTogc3RyaW5nXTogbnVtYmVyIH0gPSBiYXNlLnRhZ3MgPyB7IC4uLmJhc2UudGFncywgLi4ubmV3VGFncyB9IDogbmV3VGFncztcclxuXHRcdGNvbnN0IG5ld0VudGl0eTogUGxheWVyRW50aXR5ID0gT2JqZWN0LmFzc2lnbihuZXcgUGxheWVyRW50aXR5KCksIGJhc2UsIG5ld0F0dHJpYnV0ZXMsIHsgdGFncyB9KTtcclxuXHRcdHJldHVybiBuZXdFbnRpdHk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdXBkYXRlKGRlZmluaXRpb246IEVudGl0eURlZmluaXRpb24pOiBQbGF5ZXJFbnRpdHkge1xyXG5cdFx0Y29uc3QgbmV3QXR0cmlidXRlczogYW55ID0ge307XHJcblx0XHRpZiAoZGVmaW5pdGlvbi5jYXJkSUQpIHtcclxuXHRcdFx0bmV3QXR0cmlidXRlcy5jYXJkSUQgPSBkZWZpbml0aW9uLmNhcmRJRDtcclxuXHRcdH1cclxuXHRcdGlmIChkZWZpbml0aW9uLm5hbWUpIHtcclxuXHRcdFx0bmV3QXR0cmlidXRlcy5uYW1lID0gZGVmaW5pdGlvbi5uYW1lO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGRlZmluaXRpb24udGFncykge1xyXG5cdFx0XHRuZXdBdHRyaWJ1dGVzLnRhZ3MgPSBkZWZpbml0aW9uLnRhZ3M7XHJcblx0XHRcdGlmIChuZXdBdHRyaWJ1dGVzLnRhZ3MuUExBWVNUQVRFID09PSA4KSB7XHJcblx0XHRcdFx0bmV3QXR0cmlidXRlcy50YWdzLkNPTkNFREVEID0gMTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIFBsYXllckVudGl0eS5jcmVhdGUodGhpcywgbmV3QXR0cmlidXRlcyk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdXBkYXRlRGFtYWdlKGRhbWFnZTogbnVtYmVyKTogUGxheWVyRW50aXR5IHtcclxuXHRcdGNvbnN0IGJhc2U6IFBsYXllckVudGl0eSA9IHRoaXM7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgUGxheWVyRW50aXR5KCksIGJhc2UsIHsgZGFtYWdlRm9yVGhpc0FjdGlvbjogZGFtYWdlIH0pO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHVwZGF0ZVRhZyh0YWc6IEdhbWVUYWcsIHZhbHVlOiBudW1iZXIpOiBQbGF5ZXJFbnRpdHkge1xyXG5cdFx0Y29uc3QgbmV3VGFnczogeyBbdGFnTmFtZTogc3RyaW5nXTogbnVtYmVyIH0gPSB7IC4uLnRoaXMudGFncywgW0dhbWVUYWdbdGFnXV06IHZhbHVlIH07XHJcblx0XHRjb25zdCBiYXNlOiBQbGF5ZXJFbnRpdHkgPSB0aGlzO1xyXG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IFBsYXllckVudGl0eSgpLCBiYXNlLCB7IHRhZ3M6IG5ld1RhZ3MgfSk7XHJcblx0fVxyXG59XHJcbiJdfQ==