@firestone-hs/replay-parser
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.9.
56 lines • 9.26 kB
JavaScript
import { ActionHelper } from '../../services/action/action-helper';
import { Action } from './action';
export class CardDrawAction extends Action {
constructor(allCards) {
super(allCards);
}
static create(newAction, allCards) {
return Object.assign(new CardDrawAction(allCards), newAction);
}
update(entities) {
return Object.assign(new CardDrawAction(this.allCards), this, {
entities,
});
}
enrichWithText(allEntitiesSoFar) {
const playerEntity = this.data.map((entityId) => ActionHelper.getOwner(this.entities, entityId));
if (!playerEntity || playerEntity.length === 0) {
console.warn('[card-draw-action] could not find player owner', this.data);
return this;
}
const ownerNames = this.data
.map((entityId) => ActionHelper.getOwner(this.entities, entityId))
.map((entity) => {
if (!entity) {
console.warn('[card-draw-action] no player entity', entity, this.data, this.entities.get(this.data[0]).tags);
return '';
}
return entity.name;
})
.filter((name, index, self) => self.indexOf(name) === index);
if (ownerNames.length !== 1) {
console.warn('[card-draw-action] Invalid grouping of cards ' + ownerNames + ', ' + this.data);
return this;
}
const ownerName = ownerNames[0];
const drawnCards = this.data
.map((entityId) => ActionHelper.getCardId(this.entities, entityId, allEntitiesSoFar))
.map((cardId) => this.allCards.getCard(cardId));
let drawInfo = '';
// We don't have the mulligan info, so we just display the amount of cards being mulliganed
if (drawnCards.some((card) => !card || !card.name)) {
drawInfo = `${drawnCards.length} cards`;
}
else {
drawInfo = drawnCards.map((card) => card.name).join(', ');
}
const textRaw = `\t${ownerName} draws ` + drawInfo;
return Object.assign(new CardDrawAction(this.allCards), this, {
textRaw,
});
}
getInstance() {
return new CardDrawAction(this.allCards);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1kcmF3LWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcGxheS1wYXJzZXIvc3JjL2xpYi9tb2RlbHMvYWN0aW9uL2NhcmQtZHJhdy1hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBR25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsTUFBTSxPQUFPLGNBQWUsU0FBUSxNQUFNO0lBSXpDLFlBQVksUUFBeUI7UUFDcEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxRQUF5QjtRQUN4RCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUE2QjtRQUMxQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRTtZQUM3RCxRQUFRO1NBQ1IsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWMsQ0FBQyxnQkFBcUM7UUFDMUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2pHLElBQUksQ0FBQyxZQUFZLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDL0MsT0FBTyxDQUFDLElBQUksQ0FBQyxnREFBZ0QsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUUsT0FBTyxJQUFJLENBQUM7U0FDWjtRQUNELE1BQU0sVUFBVSxHQUFhLElBQUksQ0FBQyxJQUFJO2FBQ3BDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQ2pFLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWixPQUFPLENBQUMsSUFBSSxDQUNYLHFDQUFxQyxFQUNyQyxNQUFNLEVBQ04sSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNwQyxDQUFDO2dCQUNGLE9BQU8sRUFBRSxDQUFDO2FBQ1Y7WUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDcEIsQ0FBQyxDQUFDO2FBQ0QsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDOUQsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLCtDQUErQyxHQUFHLFVBQVUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlGLE9BQU8sSUFBSSxDQUFDO1NBQ1o7UUFDRCxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUk7YUFDMUIsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7YUFDcEYsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2pELElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQiwyRkFBMkY7UUFDM0YsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuRCxRQUFRLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxRQUFRLENBQUM7U0FDeEM7YUFBTTtZQUNOLFFBQVEsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFEO1FBRUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxTQUFTLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDbkQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUU7WUFDN0QsT0FBTztTQUNQLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFUyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hcCB9IGZyb20gJ2ltbXV0YWJsZSc7XHJcbmltcG9ydCB7IEFjdGlvbkhlbHBlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FjdGlvbi9hY3Rpb24taGVscGVyJztcclxuaW1wb3J0IHsgQWxsQ2FyZHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWxsLWNhcmRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuLi9nYW1lL2VudGl0eSc7XHJcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4vYWN0aW9uJztcclxuXHJcbmV4cG9ydCBjbGFzcyBDYXJkRHJhd0FjdGlvbiBleHRlbmRzIEFjdGlvbiB7XHJcblx0cmVhZG9ubHkgZGF0YTogcmVhZG9ubHkgbnVtYmVyW107XHJcblx0cmVhZG9ubHkgY29udHJvbGxlcjogbnVtYmVyO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihhbGxDYXJkczogQWxsQ2FyZHNTZXJ2aWNlKSB7XHJcblx0XHRzdXBlcihhbGxDYXJkcyk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgc3RhdGljIGNyZWF0ZShuZXdBY3Rpb24sIGFsbENhcmRzOiBBbGxDYXJkc1NlcnZpY2UpOiBDYXJkRHJhd0FjdGlvbiB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgQ2FyZERyYXdBY3Rpb24oYWxsQ2FyZHMpLCBuZXdBY3Rpb24pO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHVwZGF0ZShlbnRpdGllczogTWFwPG51bWJlciwgRW50aXR5Pik6IENhcmREcmF3QWN0aW9uIHtcclxuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBDYXJkRHJhd0FjdGlvbih0aGlzLmFsbENhcmRzKSwgdGhpcywge1xyXG5cdFx0XHRlbnRpdGllcyxcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGVucmljaFdpdGhUZXh0KGFsbEVudGl0aWVzU29GYXI6IE1hcDxudW1iZXIsIEVudGl0eT4pOiBDYXJkRHJhd0FjdGlvbiB7XHJcblx0XHRjb25zdCBwbGF5ZXJFbnRpdHkgPSB0aGlzLmRhdGEubWFwKChlbnRpdHlJZCkgPT4gQWN0aW9uSGVscGVyLmdldE93bmVyKHRoaXMuZW50aXRpZXMsIGVudGl0eUlkKSk7XHJcblx0XHRpZiAoIXBsYXllckVudGl0eSB8fCBwbGF5ZXJFbnRpdHkubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdGNvbnNvbGUud2FybignW2NhcmQtZHJhdy1hY3Rpb25dIGNvdWxkIG5vdCBmaW5kIHBsYXllciBvd25lcicsIHRoaXMuZGF0YSk7XHJcblx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3Qgb3duZXJOYW1lczogc3RyaW5nW10gPSB0aGlzLmRhdGFcclxuXHRcdFx0Lm1hcCgoZW50aXR5SWQpID0+IEFjdGlvbkhlbHBlci5nZXRPd25lcih0aGlzLmVudGl0aWVzLCBlbnRpdHlJZCkpXHJcblx0XHRcdC5tYXAoKGVudGl0eSkgPT4ge1xyXG5cdFx0XHRcdGlmICghZW50aXR5KSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLndhcm4oXHJcblx0XHRcdFx0XHRcdCdbY2FyZC1kcmF3LWFjdGlvbl0gbm8gcGxheWVyIGVudGl0eScsXHJcblx0XHRcdFx0XHRcdGVudGl0eSxcclxuXHRcdFx0XHRcdFx0dGhpcy5kYXRhLFxyXG5cdFx0XHRcdFx0XHR0aGlzLmVudGl0aWVzLmdldCh0aGlzLmRhdGFbMF0pLnRhZ3MsXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0cmV0dXJuICcnO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gZW50aXR5Lm5hbWU7XHJcblx0XHRcdH0pXHJcblx0XHRcdC5maWx0ZXIoKG5hbWUsIGluZGV4LCBzZWxmKSA9PiBzZWxmLmluZGV4T2YobmFtZSkgPT09IGluZGV4KTtcclxuXHRcdGlmIChvd25lck5hbWVzLmxlbmd0aCAhPT0gMSkge1xyXG5cdFx0XHRjb25zb2xlLndhcm4oJ1tjYXJkLWRyYXctYWN0aW9uXSBJbnZhbGlkIGdyb3VwaW5nIG9mIGNhcmRzICcgKyBvd25lck5hbWVzICsgJywgJyArIHRoaXMuZGF0YSk7XHJcblx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3Qgb3duZXJOYW1lID0gb3duZXJOYW1lc1swXTtcclxuXHRcdGNvbnN0IGRyYXduQ2FyZHMgPSB0aGlzLmRhdGFcclxuXHRcdFx0Lm1hcCgoZW50aXR5SWQpID0+IEFjdGlvbkhlbHBlci5nZXRDYXJkSWQodGhpcy5lbnRpdGllcywgZW50aXR5SWQsIGFsbEVudGl0aWVzU29GYXIpKVxyXG5cdFx0XHQubWFwKChjYXJkSWQpID0+IHRoaXMuYWxsQ2FyZHMuZ2V0Q2FyZChjYXJkSWQpKTtcclxuXHRcdGxldCBkcmF3SW5mbyA9ICcnO1xyXG5cdFx0Ly8gV2UgZG9uJ3QgaGF2ZSB0aGUgbXVsbGlnYW4gaW5mbywgc28gd2UganVzdCBkaXNwbGF5IHRoZSBhbW91bnQgb2YgY2FyZHMgYmVpbmcgbXVsbGlnYW5lZFxyXG5cdFx0aWYgKGRyYXduQ2FyZHMuc29tZSgoY2FyZCkgPT4gIWNhcmQgfHwgIWNhcmQubmFtZSkpIHtcclxuXHRcdFx0ZHJhd0luZm8gPSBgJHtkcmF3bkNhcmRzLmxlbmd0aH0gY2FyZHNgO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0ZHJhd0luZm8gPSBkcmF3bkNhcmRzLm1hcCgoY2FyZCkgPT4gY2FyZC5uYW1lKS5qb2luKCcsICcpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHRleHRSYXcgPSBgXFx0JHtvd25lck5hbWV9IGRyYXdzIGAgKyBkcmF3SW5mbztcclxuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBDYXJkRHJhd0FjdGlvbih0aGlzLmFsbENhcmRzKSwgdGhpcywge1xyXG5cdFx0XHR0ZXh0UmF3LFxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgZ2V0SW5zdGFuY2UoKTogQWN0aW9uIHtcclxuXHRcdHJldHVybiBuZXcgQ2FyZERyYXdBY3Rpb24odGhpcy5hbGxDYXJkcyk7XHJcblx0fVxyXG59XHJcbiJdfQ==