@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
JavaScript
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=