@firestone-hs/replay-parser
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.9.
43 lines • 6.98 kB
JavaScript
import { PlayState } from '@firestone-hs/reference-data';
import { ActionHelper } from '../../services/action/action-helper';
import { Action } from './action';
export class EndGameAction extends Action {
constructor(allCards) {
super(allCards);
}
static create(newAction, allCards) {
return Object.assign(new EndGameAction(allCards), newAction);
}
update(entities) {
return Object.assign(this.getInstance(), this, { entities });
}
enrichWithText(allEntitiesSoFar) {
let concededText = '';
for (const status of this.winStatus) {
if (status[1] === PlayState.CONCEDED) {
const name = ActionHelper.getOwner(this.entities, status[0]).name;
concededText = `${name} conceded, `;
}
}
let winText = '';
for (const status of this.winStatus) {
if (status[1] !== PlayState.CONCEDED && status[1] !== PlayState.TIED && status[0] === this.entityId) {
const name = ActionHelper.getOwner(this.entities, this.entityId).name;
const statusString = status[1] === PlayState.WON ? 'won' : 'lost';
winText = `${name} ${statusString}!`;
}
}
let textRaw = '';
if (!winText && this.winStatus.some(status => status[1] === PlayState.TIED)) {
textRaw = 'Both players tied';
}
else {
textRaw = `${concededText}${winText}`;
}
return Object.assign(this.getInstance(), this, { textRaw });
}
getInstance() {
return new EndGameAction(this.allCards);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kLWdhbWUtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwbGF5LXBhcnNlci9zcmMvbGliL21vZGVscy9hY3Rpb24vZW5kLWdhbWUtYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsQyxNQUFNLE9BQU8sYUFBYyxTQUFRLE1BQU07SUFLeEMsWUFBWSxRQUF5QjtRQUNwQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLFFBQXlCO1FBQ3hELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQTZCO1FBQzFDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU0sY0FBYyxDQUFDLGdCQUFxQztRQUMxRCxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdEIsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3BDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3JDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xFLFlBQVksR0FBRyxHQUFHLElBQUksYUFBYSxDQUFDO2FBQ3BDO1NBQ0Q7UUFDRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDakIsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3BDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3BHLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUN0RSxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQ2xFLE9BQU8sR0FBRyxHQUFHLElBQUksSUFBSSxZQUFZLEdBQUcsQ0FBQzthQUNyQztTQUNEO1FBRUQsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzVFLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQztTQUM5QjthQUFNO1lBQ04sT0FBTyxHQUFHLEdBQUcsWUFBWSxHQUFHLE9BQU8sRUFBRSxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFUyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYXlTdGF0ZSB9IGZyb20gJ0BmaXJlc3RvbmUtaHMvcmVmZXJlbmNlLWRhdGEnO1xyXG5pbXBvcnQgeyBNYXAgfSBmcm9tICdpbW11dGFibGUnO1xyXG5pbXBvcnQgeyBBY3Rpb25IZWxwZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hY3Rpb24vYWN0aW9uLWhlbHBlcic7XHJcbmltcG9ydCB7IEFsbENhcmRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsbC1jYXJkcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vZ2FtZS9lbnRpdHknO1xyXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuL2FjdGlvbic7XHJcblxyXG5leHBvcnQgY2xhc3MgRW5kR2FtZUFjdGlvbiBleHRlbmRzIEFjdGlvbiB7XHJcblx0cmVhZG9ubHkgd2luU3RhdHVzOiByZWFkb25seSBbbnVtYmVyLCBudW1iZXJdW107XHJcblx0cmVhZG9ubHkgZW50aXR5SWQ6IG51bWJlcjtcclxuXHRyZWFkb25seSBvcHBvbmVudElkOiBudW1iZXI7XHJcblxyXG5cdGNvbnN0cnVjdG9yKGFsbENhcmRzOiBBbGxDYXJkc1NlcnZpY2UpIHtcclxuXHRcdHN1cGVyKGFsbENhcmRzKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzdGF0aWMgY3JlYXRlKG5ld0FjdGlvbiwgYWxsQ2FyZHM6IEFsbENhcmRzU2VydmljZSk6IEVuZEdhbWVBY3Rpb24ge1xyXG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IEVuZEdhbWVBY3Rpb24oYWxsQ2FyZHMpLCBuZXdBY3Rpb24pO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHVwZGF0ZShlbnRpdGllczogTWFwPG51bWJlciwgRW50aXR5Pik6IEVuZEdhbWVBY3Rpb24ge1xyXG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24odGhpcy5nZXRJbnN0YW5jZSgpLCB0aGlzLCB7IGVudGl0aWVzIH0pO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGVucmljaFdpdGhUZXh0KGFsbEVudGl0aWVzU29GYXI6IE1hcDxudW1iZXIsIEVudGl0eT4pOiBFbmRHYW1lQWN0aW9uIHtcclxuXHRcdGxldCBjb25jZWRlZFRleHQgPSAnJztcclxuXHRcdGZvciAoY29uc3Qgc3RhdHVzIG9mIHRoaXMud2luU3RhdHVzKSB7XHJcblx0XHRcdGlmIChzdGF0dXNbMV0gPT09IFBsYXlTdGF0ZS5DT05DRURFRCkge1xyXG5cdFx0XHRcdGNvbnN0IG5hbWUgPSBBY3Rpb25IZWxwZXIuZ2V0T3duZXIodGhpcy5lbnRpdGllcywgc3RhdHVzWzBdKS5uYW1lO1xyXG5cdFx0XHRcdGNvbmNlZGVkVGV4dCA9IGAke25hbWV9IGNvbmNlZGVkLCBgO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRsZXQgd2luVGV4dCA9ICcnO1xyXG5cdFx0Zm9yIChjb25zdCBzdGF0dXMgb2YgdGhpcy53aW5TdGF0dXMpIHtcclxuXHRcdFx0aWYgKHN0YXR1c1sxXSAhPT0gUGxheVN0YXRlLkNPTkNFREVEICYmIHN0YXR1c1sxXSAhPT0gUGxheVN0YXRlLlRJRUQgJiYgc3RhdHVzWzBdID09PSB0aGlzLmVudGl0eUlkKSB7XHJcblx0XHRcdFx0Y29uc3QgbmFtZSA9IEFjdGlvbkhlbHBlci5nZXRPd25lcih0aGlzLmVudGl0aWVzLCB0aGlzLmVudGl0eUlkKS5uYW1lO1xyXG5cdFx0XHRcdGNvbnN0IHN0YXR1c1N0cmluZyA9IHN0YXR1c1sxXSA9PT0gUGxheVN0YXRlLldPTiA/ICd3b24nIDogJ2xvc3QnO1xyXG5cdFx0XHRcdHdpblRleHQgPSBgJHtuYW1lfSAke3N0YXR1c1N0cmluZ30hYDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGxldCB0ZXh0UmF3ID0gJyc7XHJcblx0XHRpZiAoIXdpblRleHQgJiYgdGhpcy53aW5TdGF0dXMuc29tZShzdGF0dXMgPT4gc3RhdHVzWzFdID09PSBQbGF5U3RhdGUuVElFRCkpIHtcclxuXHRcdFx0dGV4dFJhdyA9ICdCb3RoIHBsYXllcnMgdGllZCc7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0ZXh0UmF3ID0gYCR7Y29uY2VkZWRUZXh0fSR7d2luVGV4dH1gO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24odGhpcy5nZXRJbnN0YW5jZSgpLCB0aGlzLCB7IHRleHRSYXcgfSk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgZ2V0SW5zdGFuY2UoKTogQWN0aW9uIHtcclxuXHRcdHJldHVybiBuZXcgRW5kR2FtZUFjdGlvbih0aGlzLmFsbENhcmRzKTtcclxuXHR9XHJcbn1cclxuIl19