@firestone-hs/replay-parser
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.9.
39 lines • 6.47 kB
JavaScript
import { ActionHelper } from '../../services/action/action-helper';
import { Action } from './action';
export class AttackAction extends Action {
constructor(allCards) {
super(allCards);
}
static create(newAction, allCards) {
return Object.assign(new AttackAction(allCards), newAction);
}
update(entities) {
return Object.assign(new AttackAction(this.allCards), this, {
entities,
});
}
enrichWithText(allEntitiesSoFar) {
const originCardId = ActionHelper.getCardId(this.entities, this.originId, allEntitiesSoFar);
const targetCardId = ActionHelper.getCardId(this.entities, this.targetId, allEntitiesSoFar);
const originCard = this.allCards.getCard(originCardId);
const targetCard = this.allCards.getCard(targetCardId);
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${originCard.name} attacks ${targetCard.name}. ${damageText}`;
return Object.assign(new AttackAction(this.allCards), this, {
textRaw,
});
}
getInstance() {
return new AttackAction(this.allCards);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNrLWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcGxheS1wYXJzZXIvc3JjL2xpYi9tb2RlbHMvYWN0aW9uL2F0dGFjay1hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBR25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbEMsTUFBTSxPQUFPLFlBQWEsU0FBUSxNQUFNO0lBSXZDLFlBQVksUUFBeUI7UUFDcEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxRQUF5QjtRQUN4RCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUE2QjtRQUMxQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRTtZQUMzRCxRQUFRO1NBQ1IsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWMsQ0FBQyxnQkFBcUM7UUFDMUQsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZELElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPO2lCQUN2QixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ3pCLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztnQkFDdkYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3ZELE9BQU8sR0FBRyxVQUFVLENBQUMsSUFBSSxVQUFVLE1BQU0sU0FBUyxDQUFDO1lBQ3BELENBQUMsQ0FBQztpQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDYjtRQUNELE1BQU0sT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDLElBQUksWUFBWSxVQUFVLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ2pGLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFO1lBQzNELE9BQU87U0FDUCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRVMsV0FBVztRQUNwQixPQUFPLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXAgfSBmcm9tICdpbW11dGFibGUnO1xyXG5pbXBvcnQgeyBBY3Rpb25IZWxwZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hY3Rpb24vYWN0aW9uLWhlbHBlcic7XHJcbmltcG9ydCB7IEFsbENhcmRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsbC1jYXJkcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vZ2FtZS9lbnRpdHknO1xyXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuL2FjdGlvbic7XHJcbmltcG9ydCB7IEhhc1RhcmdldCB9IGZyb20gJy4vaGFzLXRhcmdldCc7XHJcblxyXG5leHBvcnQgY2xhc3MgQXR0YWNrQWN0aW9uIGV4dGVuZHMgQWN0aW9uIGltcGxlbWVudHMgSGFzVGFyZ2V0IHtcclxuXHRyZWFkb25seSBvcmlnaW5JZDogbnVtYmVyO1xyXG5cdHJlYWRvbmx5IHRhcmdldElkOiBudW1iZXI7XHJcblxyXG5cdGNvbnN0cnVjdG9yKGFsbENhcmRzOiBBbGxDYXJkc1NlcnZpY2UpIHtcclxuXHRcdHN1cGVyKGFsbENhcmRzKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzdGF0aWMgY3JlYXRlKG5ld0FjdGlvbiwgYWxsQ2FyZHM6IEFsbENhcmRzU2VydmljZSk6IEF0dGFja0FjdGlvbiB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgQXR0YWNrQWN0aW9uKGFsbENhcmRzKSwgbmV3QWN0aW9uKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyB1cGRhdGUoZW50aXRpZXM6IE1hcDxudW1iZXIsIEVudGl0eT4pOiBBdHRhY2tBY3Rpb24ge1xyXG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IEF0dGFja0FjdGlvbih0aGlzLmFsbENhcmRzKSwgdGhpcywge1xyXG5cdFx0XHRlbnRpdGllcyxcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGVucmljaFdpdGhUZXh0KGFsbEVudGl0aWVzU29GYXI6IE1hcDxudW1iZXIsIEVudGl0eT4pOiBBdHRhY2tBY3Rpb24ge1xyXG5cdFx0Y29uc3Qgb3JpZ2luQ2FyZElkID0gQWN0aW9uSGVscGVyLmdldENhcmRJZCh0aGlzLmVudGl0aWVzLCB0aGlzLm9yaWdpbklkLCBhbGxFbnRpdGllc1NvRmFyKTtcclxuXHRcdGNvbnN0IHRhcmdldENhcmRJZCA9IEFjdGlvbkhlbHBlci5nZXRDYXJkSWQodGhpcy5lbnRpdGllcywgdGhpcy50YXJnZXRJZCwgYWxsRW50aXRpZXNTb0Zhcik7XHJcblx0XHRjb25zdCBvcmlnaW5DYXJkID0gdGhpcy5hbGxDYXJkcy5nZXRDYXJkKG9yaWdpbkNhcmRJZCk7XHJcblx0XHRjb25zdCB0YXJnZXRDYXJkID0gdGhpcy5hbGxDYXJkcy5nZXRDYXJkKHRhcmdldENhcmRJZCk7XHJcblx0XHRsZXQgZGFtYWdlVGV4dCA9ICcnO1xyXG5cdFx0aWYgKHRoaXMuZGFtYWdlcykge1xyXG5cdFx0XHRkYW1hZ2VUZXh0ID0gdGhpcy5kYW1hZ2VzXHJcblx0XHRcdFx0Lm1hcCgoYW1vdW50LCBlbnRpdHlJZCkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgZW50aXR5Q2FyZElkID0gQWN0aW9uSGVscGVyLmdldENhcmRJZCh0aGlzLmVudGl0aWVzLCBlbnRpdHlJZCwgYWxsRW50aXRpZXNTb0Zhcik7XHJcblx0XHRcdFx0XHRjb25zdCBlbnRpdHlDYXJkID0gdGhpcy5hbGxDYXJkcy5nZXRDYXJkKGVudGl0eUNhcmRJZCk7XHJcblx0XHRcdFx0XHRyZXR1cm4gYCR7ZW50aXR5Q2FyZC5uYW1lfSB0YWtlcyAke2Ftb3VudH0gZGFtYWdlYDtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdC5qb2luKCcsICcpO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgdGV4dFJhdyA9IGBcXHQke29yaWdpbkNhcmQubmFtZX0gYXR0YWNrcyAke3RhcmdldENhcmQubmFtZX0uICR7ZGFtYWdlVGV4dH1gO1xyXG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IEF0dGFja0FjdGlvbih0aGlzLmFsbENhcmRzKSwgdGhpcywge1xyXG5cdFx0XHR0ZXh0UmF3LFxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgZ2V0SW5zdGFuY2UoKTogQWN0aW9uIHtcclxuXHRcdHJldHVybiBuZXcgQXR0YWNrQWN0aW9uKHRoaXMuYWxsQ2FyZHMpO1xyXG5cdH1cclxufVxyXG4iXX0=