@firestone-hs/replay-parser
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.9.
49 lines • 8.19 kB
JavaScript
import uniq from 'lodash-es/uniq';
import { ActionHelper } from '../../services/action/action-helper';
import { Action } from './action';
export class CardBurnAction extends Action {
constructor(allCards) {
super(allCards);
}
static create(newAction, allCards) {
return Object.assign(new CardBurnAction(allCards), newAction);
}
update(entities) {
return Object.assign(this.getInstance(), this, { entities });
}
enrichWithText(allEntitiesSoFar) {
const ownerNames = uniq(this.burnedCardIds
.map(entityId => ActionHelper.getOwner(this.entities, entityId))
.map(playerEntity => {
if (!playerEntity) {
console.warn('[card-burn-action] no player entity', playerEntity, this.burnedCardIds, this.entities.get(this.burnedCardIds[0]).tags.toJS());
return '';
}
return playerEntity.name;
}));
if (ownerNames.length !== 1) {
console.warn('[card-burn-action] Invalid grouping of cards ' + ownerNames + ', ' + this.burnedCardIds);
return this;
}
const ownerName = ownerNames[0];
const drawnCards = this.burnedCardIds
.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} burns ` + drawInfo;
return Object.assign(new CardBurnAction(this.allCards), this, {
textRaw,
});
}
getInstance() {
return new CardBurnAction(this.allCards);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1idXJuLWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcGxheS1wYXJzZXIvc3JjL2xpYi9tb2RlbHMvYWN0aW9uL2NhcmQtYnVybi1hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxJQUFJLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBR25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsTUFBTSxPQUFPLGNBQWUsU0FBUSxNQUFNO0lBSXpDLFlBQVksUUFBeUI7UUFDcEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxRQUF5QjtRQUN4RCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUE2QjtRQUMxQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLGNBQWMsQ0FBQyxnQkFBcUM7UUFDMUQsTUFBTSxVQUFVLEdBQWEsSUFBSSxDQUNoQyxJQUFJLENBQUMsYUFBYTthQUNoQixHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDL0QsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQ1gscUNBQXFDLEVBQ3JDLFlBQVksRUFDWixJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUNwRCxDQUFDO2dCQUNGLE9BQU8sRUFBRSxDQUFDO2FBQ1Y7WUFDRCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQywrQ0FBK0MsR0FBRyxVQUFVLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN2RyxPQUFPLElBQUksQ0FBQztTQUNaO1FBQ0QsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhO2FBQ25DLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQzthQUNsRixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQy9DLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQiwyRkFBMkY7UUFDM0YsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakQsUUFBUSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sUUFBUSxDQUFDO1NBQ3hDO2FBQU07WUFDTixRQUFRLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEQ7UUFFRCxNQUFNLE9BQU8sR0FBRyxLQUFLLFNBQVMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUNuRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRTtZQUM3RCxPQUFPO1NBQ1AsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVTLFdBQVc7UUFDcEIsT0FBTyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFwIH0gZnJvbSAnaW1tdXRhYmxlJztcclxuaW1wb3J0IHVuaXEgZnJvbSAnbG9kYXNoLWVzL3VuaXEnO1xyXG5pbXBvcnQgeyBBY3Rpb25IZWxwZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hY3Rpb24vYWN0aW9uLWhlbHBlcic7XHJcbmltcG9ydCB7IEFsbENhcmRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsbC1jYXJkcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vZ2FtZS9lbnRpdHknO1xyXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuL2FjdGlvbic7XHJcblxyXG5leHBvcnQgY2xhc3MgQ2FyZEJ1cm5BY3Rpb24gZXh0ZW5kcyBBY3Rpb24ge1xyXG5cdHJlYWRvbmx5IGNvbnRyb2xsZXI6IG51bWJlcjtcclxuXHRyZWFkb25seSBidXJuZWRDYXJkSWRzOiByZWFkb25seSBudW1iZXJbXTtcclxuXHJcblx0Y29uc3RydWN0b3IoYWxsQ2FyZHM6IEFsbENhcmRzU2VydmljZSkge1xyXG5cdFx0c3VwZXIoYWxsQ2FyZHMpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHN0YXRpYyBjcmVhdGUobmV3QWN0aW9uLCBhbGxDYXJkczogQWxsQ2FyZHNTZXJ2aWNlKTogQ2FyZEJ1cm5BY3Rpb24ge1xyXG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IENhcmRCdXJuQWN0aW9uKGFsbENhcmRzKSwgbmV3QWN0aW9uKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyB1cGRhdGUoZW50aXRpZXM6IE1hcDxudW1iZXIsIEVudGl0eT4pOiBDYXJkQnVybkFjdGlvbiB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLmdldEluc3RhbmNlKCksIHRoaXMsIHsgZW50aXRpZXMgfSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZW5yaWNoV2l0aFRleHQoYWxsRW50aXRpZXNTb0ZhcjogTWFwPG51bWJlciwgRW50aXR5Pik6IENhcmRCdXJuQWN0aW9uIHtcclxuXHRcdGNvbnN0IG93bmVyTmFtZXM6IHN0cmluZ1tdID0gdW5pcShcclxuXHRcdFx0dGhpcy5idXJuZWRDYXJkSWRzXHJcblx0XHRcdFx0Lm1hcChlbnRpdHlJZCA9PiBBY3Rpb25IZWxwZXIuZ2V0T3duZXIodGhpcy5lbnRpdGllcywgZW50aXR5SWQpKVxyXG5cdFx0XHRcdC5tYXAocGxheWVyRW50aXR5ID0+IHtcclxuXHRcdFx0XHRcdGlmICghcGxheWVyRW50aXR5KSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUud2FybihcclxuXHRcdFx0XHRcdFx0XHQnW2NhcmQtYnVybi1hY3Rpb25dIG5vIHBsYXllciBlbnRpdHknLFxyXG5cdFx0XHRcdFx0XHRcdHBsYXllckVudGl0eSxcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmJ1cm5lZENhcmRJZHMsXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5lbnRpdGllcy5nZXQodGhpcy5idXJuZWRDYXJkSWRzWzBdKS50YWdzLnRvSlMoKSxcclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdFx0cmV0dXJuICcnO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIHBsYXllckVudGl0eS5uYW1lO1xyXG5cdFx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHRcdGlmIChvd25lck5hbWVzLmxlbmd0aCAhPT0gMSkge1xyXG5cdFx0XHRjb25zb2xlLndhcm4oJ1tjYXJkLWJ1cm4tYWN0aW9uXSBJbnZhbGlkIGdyb3VwaW5nIG9mIGNhcmRzICcgKyBvd25lck5hbWVzICsgJywgJyArIHRoaXMuYnVybmVkQ2FyZElkcyk7XHJcblx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3Qgb3duZXJOYW1lID0gb3duZXJOYW1lc1swXTtcclxuXHRcdGNvbnN0IGRyYXduQ2FyZHMgPSB0aGlzLmJ1cm5lZENhcmRJZHNcclxuXHRcdFx0Lm1hcChlbnRpdHlJZCA9PiBBY3Rpb25IZWxwZXIuZ2V0Q2FyZElkKHRoaXMuZW50aXRpZXMsIGVudGl0eUlkLCBhbGxFbnRpdGllc1NvRmFyKSlcclxuXHRcdFx0Lm1hcChjYXJkSWQgPT4gdGhpcy5hbGxDYXJkcy5nZXRDYXJkKGNhcmRJZCkpO1xyXG5cdFx0bGV0IGRyYXdJbmZvID0gJyc7XHJcblx0XHQvLyBXZSBkb24ndCBoYXZlIHRoZSBtdWxsaWdhbiBpbmZvLCBzbyB3ZSBqdXN0IGRpc3BsYXkgdGhlIGFtb3VudCBvZiBjYXJkcyBiZWluZyBtdWxsaWdhbmVkXHJcblx0XHRpZiAoZHJhd25DYXJkcy5zb21lKGNhcmQgPT4gIWNhcmQgfHwgIWNhcmQubmFtZSkpIHtcclxuXHRcdFx0ZHJhd0luZm8gPSBgJHtkcmF3bkNhcmRzLmxlbmd0aH0gY2FyZHNgO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0ZHJhd0luZm8gPSBkcmF3bkNhcmRzLm1hcChjYXJkID0+IGNhcmQubmFtZSkuam9pbignLCAnKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCB0ZXh0UmF3ID0gYFxcdCR7b3duZXJOYW1lfSBidXJucyBgICsgZHJhd0luZm87XHJcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgQ2FyZEJ1cm5BY3Rpb24odGhpcy5hbGxDYXJkcyksIHRoaXMsIHtcclxuXHRcdFx0dGV4dFJhdyxcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIGdldEluc3RhbmNlKCk6IEFjdGlvbiB7XHJcblx0XHRyZXR1cm4gbmV3IENhcmRCdXJuQWN0aW9uKHRoaXMuYWxsQ2FyZHMpO1xyXG5cdH1cclxufVxyXG4iXX0=