UNPKG

@firestone-hs/replay-parser

Version:

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

55 lines 9.26 kB
import { ActionHelper } from '../../services/action/action-helper'; import { Action } from './action'; export class DiscoverAction extends Action { constructor(allCards) { super(allCards); } static create(newAction, allCards) { return Object.assign(new DiscoverAction(allCards), newAction); } update(entities) { return Object.assign(new DiscoverAction(this.allCards), this, { entities, }); } enrichWithText(allEntitiesSoFar) { const owner = this.entities.get(this.ownerId); const offeredCards = this.choices .map(entityId => ActionHelper.getCardId(this.entities, entityId, allEntitiesSoFar)) .map(cardId => this.allCards.getCard(cardId)); let offerInfo = ''; // We don't have the mulligan info, so we just display the amount of cards being mulliganed if (offeredCards.some(card => !card || !card.name)) { offerInfo = `${offeredCards.length} cards`; } else { offerInfo = offeredCards.map(card => card.name).join(', '); } const chosenCards = this.chosen && this.chosen.length > 0 && this.chosen .map(entityId => ActionHelper.getCardId(this.entities, entityId, allEntitiesSoFar)) .map(cardId => this.allCards.getCard(cardId)); if (!chosenCards) { console.warn('Trying to do a discover action with an empty chosen array, aborting', this.originId, this.ownerId, this.choices, this.chosen); return this; } let choiceInfo; // We don't have the mulligan info, so we just display the amount of cards being mulliganed if (chosenCards.some(card => !card || !card.name)) { choiceInfo = `${chosenCards.length} cards`; } else { choiceInfo = chosenCards.map(card => card.name).join(', '); } const chosenText = choiceInfo && ` and picks ${choiceInfo}`; const textRaw = `\t${owner.name} discovers ${offerInfo}${chosenText}`; return Object.assign(new DiscoverAction(this.allCards), this, { textRaw, }); } getInstance() { return new DiscoverAction(this.allCards); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY292ZXItYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwbGF5LXBhcnNlci9zcmMvbGliL21vZGVscy9hY3Rpb24vZGlzY292ZXItYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUluRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxDLE1BQU0sT0FBTyxjQUFlLFNBQVEsTUFBTTtJQUt6QyxZQUFZLFFBQXlCO1FBQ3BDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsUUFBeUI7UUFDeEQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSxNQUFNLENBQUMsUUFBNkI7UUFDMUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUU7WUFDN0QsUUFBUTtTQUNSLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTSxjQUFjLENBQUMsZ0JBQXFDO1FBQzFELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQWlCLENBQUM7UUFFOUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU87YUFDL0IsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO2FBQ2xGLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ25CLDJGQUEyRjtRQUMzRixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuRCxTQUFTLEdBQUcsR0FBRyxZQUFZLENBQUMsTUFBTSxRQUFRLENBQUM7U0FDM0M7YUFBTTtZQUNOLFNBQVMsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzRDtRQUVELE1BQU0sV0FBVyxHQUNoQixJQUFJLENBQUMsTUFBTTtZQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDdEIsSUFBSSxDQUFDLE1BQU07aUJBQ1QsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO2lCQUNsRixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDakIsT0FBTyxDQUFDLElBQUksQ0FDWCxxRUFBcUUsRUFDckUsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLE1BQU0sQ0FDWCxDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7U0FDWjtRQUNELElBQUksVUFBVSxDQUFDO1FBQ2YsMkZBQTJGO1FBQzNGLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2xELFVBQVUsR0FBRyxHQUFHLFdBQVcsQ0FBQyxNQUFNLFFBQVEsQ0FBQztTQUMzQzthQUFNO1lBQ04sVUFBVSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNEO1FBQ0QsTUFBTSxVQUFVLEdBQUcsVUFBVSxJQUFJLGNBQWMsVUFBVSxFQUFFLENBQUM7UUFDNUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxLQUFLLENBQUMsSUFBSSxjQUFjLFNBQVMsR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUN0RSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRTtZQUM3RCxPQUFPO1NBQ1AsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVTLFdBQVc7UUFDcEIsT0FBTyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFwIH0gZnJvbSAnaW1tdXRhYmxlJztcclxuaW1wb3J0IHsgQWN0aW9uSGVscGVyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWN0aW9uL2FjdGlvbi1oZWxwZXInO1xyXG5pbXBvcnQgeyBBbGxDYXJkc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbGwtY2FyZHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4uL2dhbWUvZW50aXR5JztcclxuaW1wb3J0IHsgUGxheWVyRW50aXR5IH0gZnJvbSAnLi4vZ2FtZS9wbGF5ZXItZW50aXR5JztcclxuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb24nO1xyXG5cclxuZXhwb3J0IGNsYXNzIERpc2NvdmVyQWN0aW9uIGV4dGVuZHMgQWN0aW9uIHtcclxuXHRyZWFkb25seSBvd25lcklkOiBudW1iZXI7XHJcblx0cmVhZG9ubHkgY2hvaWNlczogcmVhZG9ubHkgbnVtYmVyW107XHJcblx0cmVhZG9ubHkgY2hvc2VuOiByZWFkb25seSBudW1iZXJbXTtcclxuXHJcblx0Y29uc3RydWN0b3IoYWxsQ2FyZHM6IEFsbENhcmRzU2VydmljZSkge1xyXG5cdFx0c3VwZXIoYWxsQ2FyZHMpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHN0YXRpYyBjcmVhdGUobmV3QWN0aW9uLCBhbGxDYXJkczogQWxsQ2FyZHNTZXJ2aWNlKTogRGlzY292ZXJBY3Rpb24ge1xyXG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IERpc2NvdmVyQWN0aW9uKGFsbENhcmRzKSwgbmV3QWN0aW9uKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyB1cGRhdGUoZW50aXRpZXM6IE1hcDxudW1iZXIsIEVudGl0eT4pOiBEaXNjb3ZlckFjdGlvbiB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgRGlzY292ZXJBY3Rpb24odGhpcy5hbGxDYXJkcyksIHRoaXMsIHtcclxuXHRcdFx0ZW50aXRpZXMsXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBlbnJpY2hXaXRoVGV4dChhbGxFbnRpdGllc1NvRmFyOiBNYXA8bnVtYmVyLCBFbnRpdHk+KTogRGlzY292ZXJBY3Rpb24ge1xyXG5cdFx0Y29uc3Qgb3duZXIgPSB0aGlzLmVudGl0aWVzLmdldCh0aGlzLm93bmVySWQpIGFzIFBsYXllckVudGl0eTtcclxuXHJcblx0XHRjb25zdCBvZmZlcmVkQ2FyZHMgPSB0aGlzLmNob2ljZXNcclxuXHRcdFx0Lm1hcChlbnRpdHlJZCA9PiBBY3Rpb25IZWxwZXIuZ2V0Q2FyZElkKHRoaXMuZW50aXRpZXMsIGVudGl0eUlkLCBhbGxFbnRpdGllc1NvRmFyKSlcclxuXHRcdFx0Lm1hcChjYXJkSWQgPT4gdGhpcy5hbGxDYXJkcy5nZXRDYXJkKGNhcmRJZCkpO1xyXG5cdFx0bGV0IG9mZmVySW5mbyA9ICcnO1xyXG5cdFx0Ly8gV2UgZG9uJ3QgaGF2ZSB0aGUgbXVsbGlnYW4gaW5mbywgc28gd2UganVzdCBkaXNwbGF5IHRoZSBhbW91bnQgb2YgY2FyZHMgYmVpbmcgbXVsbGlnYW5lZFxyXG5cdFx0aWYgKG9mZmVyZWRDYXJkcy5zb21lKGNhcmQgPT4gIWNhcmQgfHwgIWNhcmQubmFtZSkpIHtcclxuXHRcdFx0b2ZmZXJJbmZvID0gYCR7b2ZmZXJlZENhcmRzLmxlbmd0aH0gY2FyZHNgO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0b2ZmZXJJbmZvID0gb2ZmZXJlZENhcmRzLm1hcChjYXJkID0+IGNhcmQubmFtZSkuam9pbignLCAnKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBjaG9zZW5DYXJkcyA9XHJcblx0XHRcdHRoaXMuY2hvc2VuICYmXHJcblx0XHRcdHRoaXMuY2hvc2VuLmxlbmd0aCA+IDAgJiZcclxuXHRcdFx0dGhpcy5jaG9zZW5cclxuXHRcdFx0XHQubWFwKGVudGl0eUlkID0+IEFjdGlvbkhlbHBlci5nZXRDYXJkSWQodGhpcy5lbnRpdGllcywgZW50aXR5SWQsIGFsbEVudGl0aWVzU29GYXIpKVxyXG5cdFx0XHRcdC5tYXAoY2FyZElkID0+IHRoaXMuYWxsQ2FyZHMuZ2V0Q2FyZChjYXJkSWQpKTtcclxuXHRcdGlmICghY2hvc2VuQ2FyZHMpIHtcclxuXHRcdFx0Y29uc29sZS53YXJuKFxyXG5cdFx0XHRcdCdUcnlpbmcgdG8gZG8gYSBkaXNjb3ZlciBhY3Rpb24gd2l0aCBhbiBlbXB0eSBjaG9zZW4gYXJyYXksIGFib3J0aW5nJyxcclxuXHRcdFx0XHR0aGlzLm9yaWdpbklkLFxyXG5cdFx0XHRcdHRoaXMub3duZXJJZCxcclxuXHRcdFx0XHR0aGlzLmNob2ljZXMsXHJcblx0XHRcdFx0dGhpcy5jaG9zZW4sXHJcblx0XHRcdCk7XHJcblx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0fVxyXG5cdFx0bGV0IGNob2ljZUluZm87XHJcblx0XHQvLyBXZSBkb24ndCBoYXZlIHRoZSBtdWxsaWdhbiBpbmZvLCBzbyB3ZSBqdXN0IGRpc3BsYXkgdGhlIGFtb3VudCBvZiBjYXJkcyBiZWluZyBtdWxsaWdhbmVkXHJcblx0XHRpZiAoY2hvc2VuQ2FyZHMuc29tZShjYXJkID0+ICFjYXJkIHx8ICFjYXJkLm5hbWUpKSB7XHJcblx0XHRcdGNob2ljZUluZm8gPSBgJHtjaG9zZW5DYXJkcy5sZW5ndGh9IGNhcmRzYDtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNob2ljZUluZm8gPSBjaG9zZW5DYXJkcy5tYXAoY2FyZCA9PiBjYXJkLm5hbWUpLmpvaW4oJywgJyk7XHJcblx0XHR9XHJcblx0XHRjb25zdCBjaG9zZW5UZXh0ID0gY2hvaWNlSW5mbyAmJiBgIGFuZCBwaWNrcyAke2Nob2ljZUluZm99YDtcclxuXHRcdGNvbnN0IHRleHRSYXcgPSBgXFx0JHtvd25lci5uYW1lfSBkaXNjb3ZlcnMgJHtvZmZlckluZm99JHtjaG9zZW5UZXh0fWA7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgRGlzY292ZXJBY3Rpb24odGhpcy5hbGxDYXJkcyksIHRoaXMsIHtcclxuXHRcdFx0dGV4dFJhdyxcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIGdldEluc3RhbmNlKCk6IEFjdGlvbiB7XHJcblx0XHRyZXR1cm4gbmV3IERpc2NvdmVyQWN0aW9uKHRoaXMuYWxsQ2FyZHMpO1xyXG5cdH1cclxufVxyXG4iXX0=