@firestone-hs/replay-parser
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.9.
38 lines • 7.44 kB
JavaScript
import { ActionHelper } from '../../services/action/action-helper';
import { Action } from './action';
export class PowerTargetAction extends Action {
constructor(allCards) {
super(allCards);
}
static create(newAction, allCards) {
return Object.assign(new PowerTargetAction(allCards), newAction);
}
update(entities) {
return Object.assign(new PowerTargetAction(this.allCards), this, { entities });
}
enrichWithText(allEntitiesSoFar) {
const originCardId = ActionHelper.getCardId(this.entities, this.originId, allEntitiesSoFar);
const targetCardIds = this.targetIds.map(entityId => ActionHelper.getCardId(this.entities, entityId, allEntitiesSoFar));
const originCardName = this.allCards.getCard(originCardId).name;
const cardIds = targetCardIds.map(cardId => this.allCards.getCard(cardId));
const targetCardNames = cardIds.some(card => !card || !card.name)
? `${cardIds.length} cards`
: cardIds.map(card => card.name).join(', ');
let damageText = '';
if (this.damages) {
damageText = this.damages
.map((amount, entityId) => {
const entityCardId = ActionHelper.getCardId(this.entities, entityId, allEntitiesSoFar);
const entityCard = this.allCards.getCard(entityCardId);
return `${entityCard.name} takes ${amount} damage`;
})
.join(', ');
}
const textRaw = `\t${originCardName} targets ${targetCardNames}. ${damageText}`;
return Object.assign(new PowerTargetAction(this.allCards), this, { textRaw });
}
getInstance() {
return new PowerTargetAction(this.allCards);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG93ZXItdGFyZ2V0LWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcGxheS1wYXJzZXIvc3JjL2xpYi9tb2RlbHMvYWN0aW9uL3Bvd2VyLXRhcmdldC1hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBR25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbEMsTUFBTSxPQUFPLGlCQUFrQixTQUFRLE1BQU07SUFHNUMsWUFBWSxRQUF5QjtRQUNwQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLFFBQXlCO1FBQ3hELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBNkI7UUFDMUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVNLGNBQWMsQ0FBQyxnQkFBcUM7UUFDMUQsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUNuRCxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQ2pFLENBQUM7UUFDRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEUsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDM0UsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNoRSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxRQUFRO1lBQzNCLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTztpQkFDdkIsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUN6QixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7Z0JBQ3ZGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN2RCxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksVUFBVSxNQUFNLFNBQVMsQ0FBQztZQUNwRCxDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2I7UUFDRCxNQUFNLE9BQU8sR0FBRyxLQUFLLGNBQWMsWUFBWSxlQUFlLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDaEYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVTLFdBQVc7UUFDcEIsT0FBTyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXAgfSBmcm9tICdpbW11dGFibGUnO1xyXG5pbXBvcnQgeyBBY3Rpb25IZWxwZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hY3Rpb24vYWN0aW9uLWhlbHBlcic7XHJcbmltcG9ydCB7IEFsbENhcmRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsbC1jYXJkcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vZ2FtZS9lbnRpdHknO1xyXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuL2FjdGlvbic7XHJcbmltcG9ydCB7IEhhc1RhcmdldHMgfSBmcm9tICcuL2hhcy10YXJnZXRzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBQb3dlclRhcmdldEFjdGlvbiBleHRlbmRzIEFjdGlvbiBpbXBsZW1lbnRzIEhhc1RhcmdldHMge1xyXG5cdHJlYWRvbmx5IG9yaWdpbklkOiBudW1iZXI7XHJcblxyXG5cdGNvbnN0cnVjdG9yKGFsbENhcmRzOiBBbGxDYXJkc1NlcnZpY2UpIHtcclxuXHRcdHN1cGVyKGFsbENhcmRzKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzdGF0aWMgY3JlYXRlKG5ld0FjdGlvbiwgYWxsQ2FyZHM6IEFsbENhcmRzU2VydmljZSk6IFBvd2VyVGFyZ2V0QWN0aW9uIHtcclxuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBQb3dlclRhcmdldEFjdGlvbihhbGxDYXJkcyksIG5ld0FjdGlvbik7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdXBkYXRlKGVudGl0aWVzOiBNYXA8bnVtYmVyLCBFbnRpdHk+KTogUG93ZXJUYXJnZXRBY3Rpb24ge1xyXG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IFBvd2VyVGFyZ2V0QWN0aW9uKHRoaXMuYWxsQ2FyZHMpLCB0aGlzLCB7IGVudGl0aWVzIH0pO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGVucmljaFdpdGhUZXh0KGFsbEVudGl0aWVzU29GYXI6IE1hcDxudW1iZXIsIEVudGl0eT4pOiBQb3dlclRhcmdldEFjdGlvbiB7XHJcblx0XHRjb25zdCBvcmlnaW5DYXJkSWQgPSBBY3Rpb25IZWxwZXIuZ2V0Q2FyZElkKHRoaXMuZW50aXRpZXMsIHRoaXMub3JpZ2luSWQsIGFsbEVudGl0aWVzU29GYXIpO1xyXG5cdFx0Y29uc3QgdGFyZ2V0Q2FyZElkcyA9IHRoaXMudGFyZ2V0SWRzLm1hcChlbnRpdHlJZCA9PlxyXG5cdFx0XHRBY3Rpb25IZWxwZXIuZ2V0Q2FyZElkKHRoaXMuZW50aXRpZXMsIGVudGl0eUlkLCBhbGxFbnRpdGllc1NvRmFyKSxcclxuXHRcdCk7XHJcblx0XHRjb25zdCBvcmlnaW5DYXJkTmFtZSA9IHRoaXMuYWxsQ2FyZHMuZ2V0Q2FyZChvcmlnaW5DYXJkSWQpLm5hbWU7XHJcblx0XHRjb25zdCBjYXJkSWRzID0gdGFyZ2V0Q2FyZElkcy5tYXAoY2FyZElkID0+IHRoaXMuYWxsQ2FyZHMuZ2V0Q2FyZChjYXJkSWQpKTtcclxuXHRcdGNvbnN0IHRhcmdldENhcmROYW1lcyA9IGNhcmRJZHMuc29tZShjYXJkID0+ICFjYXJkIHx8ICFjYXJkLm5hbWUpXHJcblx0XHRcdD8gYCR7Y2FyZElkcy5sZW5ndGh9IGNhcmRzYFxyXG5cdFx0XHQ6IGNhcmRJZHMubWFwKGNhcmQgPT4gY2FyZC5uYW1lKS5qb2luKCcsICcpO1xyXG5cdFx0bGV0IGRhbWFnZVRleHQgPSAnJztcclxuXHRcdGlmICh0aGlzLmRhbWFnZXMpIHtcclxuXHRcdFx0ZGFtYWdlVGV4dCA9IHRoaXMuZGFtYWdlc1xyXG5cdFx0XHRcdC5tYXAoKGFtb3VudCwgZW50aXR5SWQpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IGVudGl0eUNhcmRJZCA9IEFjdGlvbkhlbHBlci5nZXRDYXJkSWQodGhpcy5lbnRpdGllcywgZW50aXR5SWQsIGFsbEVudGl0aWVzU29GYXIpO1xyXG5cdFx0XHRcdFx0Y29uc3QgZW50aXR5Q2FyZCA9IHRoaXMuYWxsQ2FyZHMuZ2V0Q2FyZChlbnRpdHlDYXJkSWQpO1xyXG5cdFx0XHRcdFx0cmV0dXJuIGAke2VudGl0eUNhcmQubmFtZX0gdGFrZXMgJHthbW91bnR9IGRhbWFnZWA7XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHQuam9pbignLCAnKTtcclxuXHRcdH1cclxuXHRcdGNvbnN0IHRleHRSYXcgPSBgXFx0JHtvcmlnaW5DYXJkTmFtZX0gdGFyZ2V0cyAke3RhcmdldENhcmROYW1lc30uICR7ZGFtYWdlVGV4dH1gO1xyXG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IFBvd2VyVGFyZ2V0QWN0aW9uKHRoaXMuYWxsQ2FyZHMpLCB0aGlzLCB7IHRleHRSYXcgfSk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgZ2V0SW5zdGFuY2UoKTogQWN0aW9uIHtcclxuXHRcdHJldHVybiBuZXcgUG93ZXJUYXJnZXRBY3Rpb24odGhpcy5hbGxDYXJkcyk7XHJcblx0fVxyXG59XHJcbiJdfQ==