UNPKG

@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.31 kB
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 = 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); return ''; } return playerEntity.name; }) .filter((name, index, self) => self.indexOf(name) === index); 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1idXJuLWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcGxheS1wYXJzZXIvc3JjL2xpYi9tb2RlbHMvYWN0aW9uL2NhcmQtYnVybi1hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBR25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsTUFBTSxPQUFPLGNBQWUsU0FBUSxNQUFNO0lBSXpDLFlBQVksUUFBeUI7UUFDcEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxRQUF5QjtRQUN4RCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUE2QjtRQUMxQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLGNBQWMsQ0FBQyxnQkFBcUM7UUFDMUQsTUFBTSxVQUFVLEdBQWEsSUFBSSxDQUFDLGFBQWE7YUFDN0MsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDakUsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDbEIsT0FBTyxDQUFDLElBQUksQ0FDWCxxQ0FBcUMsRUFDckMsWUFBWSxFQUNaLElBQUksQ0FBQyxhQUFhLEVBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzdDLENBQUM7Z0JBQ0YsT0FBTyxFQUFFLENBQUM7YUFDVjtZQUNELE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQztRQUMxQixDQUFDLENBQUM7YUFDRCxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztRQUU5RCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0NBQStDLEdBQUcsVUFBVSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdkcsT0FBTyxJQUFJLENBQUM7U0FDWjtRQUNELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYTthQUNuQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQzthQUNwRixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDakQsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLDJGQUEyRjtRQUMzRixJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25ELFFBQVEsR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLFFBQVEsQ0FBQztTQUN4QzthQUFNO1lBQ04sUUFBUSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUQ7UUFFRCxNQUFNLE9BQU8sR0FBRyxLQUFLLFNBQVMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUNuRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRTtZQUM3RCxPQUFPO1NBQ1AsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVTLFdBQVc7UUFDcEIsT0FBTyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFwIH0gZnJvbSAnaW1tdXRhYmxlJztcclxuaW1wb3J0IHsgQWN0aW9uSGVscGVyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWN0aW9uL2FjdGlvbi1oZWxwZXInO1xyXG5pbXBvcnQgeyBBbGxDYXJkc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbGwtY2FyZHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4uL2dhbWUvZW50aXR5JztcclxuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb24nO1xyXG5cclxuZXhwb3J0IGNsYXNzIENhcmRCdXJuQWN0aW9uIGV4dGVuZHMgQWN0aW9uIHtcclxuXHRyZWFkb25seSBjb250cm9sbGVyOiBudW1iZXI7XHJcblx0cmVhZG9ubHkgYnVybmVkQ2FyZElkczogcmVhZG9ubHkgbnVtYmVyW107XHJcblxyXG5cdGNvbnN0cnVjdG9yKGFsbENhcmRzOiBBbGxDYXJkc1NlcnZpY2UpIHtcclxuXHRcdHN1cGVyKGFsbENhcmRzKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzdGF0aWMgY3JlYXRlKG5ld0FjdGlvbiwgYWxsQ2FyZHM6IEFsbENhcmRzU2VydmljZSk6IENhcmRCdXJuQWN0aW9uIHtcclxuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBDYXJkQnVybkFjdGlvbihhbGxDYXJkcyksIG5ld0FjdGlvbik7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdXBkYXRlKGVudGl0aWVzOiBNYXA8bnVtYmVyLCBFbnRpdHk+KTogQ2FyZEJ1cm5BY3Rpb24ge1xyXG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24odGhpcy5nZXRJbnN0YW5jZSgpLCB0aGlzLCB7IGVudGl0aWVzIH0pO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGVucmljaFdpdGhUZXh0KGFsbEVudGl0aWVzU29GYXI6IE1hcDxudW1iZXIsIEVudGl0eT4pOiBDYXJkQnVybkFjdGlvbiB7XHJcblx0XHRjb25zdCBvd25lck5hbWVzOiBzdHJpbmdbXSA9IHRoaXMuYnVybmVkQ2FyZElkc1xyXG5cdFx0XHQubWFwKChlbnRpdHlJZCkgPT4gQWN0aW9uSGVscGVyLmdldE93bmVyKHRoaXMuZW50aXRpZXMsIGVudGl0eUlkKSlcclxuXHRcdFx0Lm1hcCgocGxheWVyRW50aXR5KSA9PiB7XHJcblx0XHRcdFx0aWYgKCFwbGF5ZXJFbnRpdHkpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUud2FybihcclxuXHRcdFx0XHRcdFx0J1tjYXJkLWJ1cm4tYWN0aW9uXSBubyBwbGF5ZXIgZW50aXR5JyxcclxuXHRcdFx0XHRcdFx0cGxheWVyRW50aXR5LFxyXG5cdFx0XHRcdFx0XHR0aGlzLmJ1cm5lZENhcmRJZHMsXHJcblx0XHRcdFx0XHRcdHRoaXMuZW50aXRpZXMuZ2V0KHRoaXMuYnVybmVkQ2FyZElkc1swXSkudGFncyxcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRyZXR1cm4gJyc7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiBwbGF5ZXJFbnRpdHkubmFtZTtcclxuXHRcdFx0fSlcclxuXHRcdFx0LmZpbHRlcigobmFtZSwgaW5kZXgsIHNlbGYpID0+IHNlbGYuaW5kZXhPZihuYW1lKSA9PT0gaW5kZXgpO1xyXG5cclxuXHRcdGlmIChvd25lck5hbWVzLmxlbmd0aCAhPT0gMSkge1xyXG5cdFx0XHRjb25zb2xlLndhcm4oJ1tjYXJkLWJ1cm4tYWN0aW9uXSBJbnZhbGlkIGdyb3VwaW5nIG9mIGNhcmRzICcgKyBvd25lck5hbWVzICsgJywgJyArIHRoaXMuYnVybmVkQ2FyZElkcyk7XHJcblx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3Qgb3duZXJOYW1lID0gb3duZXJOYW1lc1swXTtcclxuXHRcdGNvbnN0IGRyYXduQ2FyZHMgPSB0aGlzLmJ1cm5lZENhcmRJZHNcclxuXHRcdFx0Lm1hcCgoZW50aXR5SWQpID0+IEFjdGlvbkhlbHBlci5nZXRDYXJkSWQodGhpcy5lbnRpdGllcywgZW50aXR5SWQsIGFsbEVudGl0aWVzU29GYXIpKVxyXG5cdFx0XHQubWFwKChjYXJkSWQpID0+IHRoaXMuYWxsQ2FyZHMuZ2V0Q2FyZChjYXJkSWQpKTtcclxuXHRcdGxldCBkcmF3SW5mbyA9ICcnO1xyXG5cdFx0Ly8gV2UgZG9uJ3QgaGF2ZSB0aGUgbXVsbGlnYW4gaW5mbywgc28gd2UganVzdCBkaXNwbGF5IHRoZSBhbW91bnQgb2YgY2FyZHMgYmVpbmcgbXVsbGlnYW5lZFxyXG5cdFx0aWYgKGRyYXduQ2FyZHMuc29tZSgoY2FyZCkgPT4gIWNhcmQgfHwgIWNhcmQubmFtZSkpIHtcclxuXHRcdFx0ZHJhd0luZm8gPSBgJHtkcmF3bkNhcmRzLmxlbmd0aH0gY2FyZHNgO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0ZHJhd0luZm8gPSBkcmF3bkNhcmRzLm1hcCgoY2FyZCkgPT4gY2FyZC5uYW1lKS5qb2luKCcsICcpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHRleHRSYXcgPSBgXFx0JHtvd25lck5hbWV9IGJ1cm5zIGAgKyBkcmF3SW5mbztcclxuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBDYXJkQnVybkFjdGlvbih0aGlzLmFsbENhcmRzKSwgdGhpcywge1xyXG5cdFx0XHR0ZXh0UmF3LFxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgZ2V0SW5zdGFuY2UoKTogQWN0aW9uIHtcclxuXHRcdHJldHVybiBuZXcgQ2FyZEJ1cm5BY3Rpb24odGhpcy5hbGxDYXJkcyk7XHJcblx0fVxyXG59XHJcbiJdfQ==