UNPKG

@firestone-hs/replay-parser

Version:

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

40 lines 8.67 kB
import { Map } from 'immutable'; import { ActionHelper } from '../../services/action/action-helper'; export class Action { constructor(allCards) { this.allCards = allCards; this.crossedEntities = []; this.options = []; // This is part of the global action, because damage actions can be merged // into non-damage ones this.damages = Map(); } updateAction(newAction) { return Object.assign(this.getInstance(), this, newAction); } generateTargetsText(allEntitiesSoFar) { if (!this.targetIds || this.targetIds.length === 0) { return null; } const originCardId = ActionHelper.getCardId(this.entities, this.originId, allEntitiesSoFar); const originCardName = this.allCards.getCard(originCardId).name; const targetCardIds = this.targetIds.map((entityId) => ActionHelper.getCardId(this.entities, entityId, allEntitiesSoFar)); 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}. \n${damageText}`; return textRaw; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwbGF5LXBhcnNlci9zcmMvbGliL21vZGVscy9hY3Rpb24vYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBSW5FLE1BQU0sT0FBZ0IsTUFBTTtJQW1DM0IsWUFBK0IsUUFBMEI7UUFBMUIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFwQmhELG9CQUFlLEdBQXNCLEVBQUUsQ0FBQztRQVN4QyxZQUFPLEdBQXNCLEVBQUUsQ0FBQztRQUN6QywwRUFBMEU7UUFDMUUsdUJBQXVCO1FBQ2QsWUFBTyxHQUF3QixHQUFHLEVBQUUsQ0FBQztJQVFjLENBQUM7SUFFdEQsWUFBWSxDQUFtQixTQUFZO1FBQ2pELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFUyxtQkFBbUIsQ0FBQyxnQkFBcUM7UUFDbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ25ELE9BQU8sSUFBSSxDQUFDO1NBQ1o7UUFDRCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNoRSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ3JELFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FDakUsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDN0UsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2xFLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLFFBQVE7WUFDM0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU87aUJBQ3ZCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDekIsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN2RixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDdkQsT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLFVBQVUsTUFBTSxTQUFTLENBQUM7WUFDcEQsQ0FBQyxDQUFDO2lCQUNELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNiO1FBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxjQUFjLFlBQVksZUFBZSxPQUFPLFVBQVUsRUFBRSxDQUFDO1FBQ2xGLE9BQU8sT0FBTyxDQUFDO0lBQ2hCLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYXlTdGF0ZSB9IGZyb20gJ0BmaXJlc3RvbmUtaHMvcmVmZXJlbmNlLWRhdGEnO1xyXG5pbXBvcnQgeyBNYXAgfSBmcm9tICdpbW11dGFibGUnO1xyXG5pbXBvcnQgeyBBY3Rpb25IZWxwZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hY3Rpb24vYWN0aW9uLWhlbHBlcic7XHJcbmltcG9ydCB7IEFsbENhcmRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsbC1jYXJkcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vZ2FtZS9lbnRpdHknO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFjdGlvbiB7XHJcblx0cmVhZG9ubHkgdGltZXN0YW1wOiBudW1iZXI7XHJcblx0cmVhZG9ubHkgaW5kZXg6IG51bWJlcjtcclxuXHRyZWFkb25seSB0ZXh0UmF3OiBzdHJpbmc7XHJcblxyXG5cdHJlYWRvbmx5IHBsYXllcklkPzogbnVtYmVyO1xyXG5cdHJlYWRvbmx5IG9wcG9uZW50SWQ/OiBudW1iZXI7XHJcblxyXG5cdC8vIFNpbmNlIHdlIHdhbnQgdG8gbWFrZSBhY3Rpb25zIG1vcmUgY29tcGFjdCBhbmQgc2hvdyBldmVyeXRoaW5nIGF0IG9uY2UsIHdlIHN0b3JlXHJcblx0Ly8gdGhpcyBkYXRhIGluIHBvc3NpYmx5IGFueSBhY3Rpb25cclxuXHRyZWFkb25seSBvcmlnaW5JZDogbnVtYmVyO1xyXG5cdHJlYWRvbmx5IHRhcmdldElkczogcmVhZG9ubHkgbnVtYmVyW107XHJcblxyXG5cdC8vIEdhbWUgc3RhdGUgaW5mb3JtYXRpb25cclxuXHRyZWFkb25seSBlbnRpdGllczogTWFwPG51bWJlciwgRW50aXR5PjtcclxuXHRyZWFkb25seSBjcm9zc2VkRW50aXRpZXM6IHJlYWRvbmx5IG51bWJlcltdID0gW107XHJcblx0cmVhZG9ubHkgaGlnaGxpZ2h0ZWRFbnRpdGllczogcmVhZG9ubHkgbnVtYmVyW107XHJcblx0cmVhZG9ubHkgYWN0aXZlU3BlbGw6IG51bWJlcjtcclxuXHRyZWFkb25seSBhY3RpdmVQbGF5ZXI6IG51bWJlcjtcclxuXHRyZWFkb25seSBpc011bGxpZ2FuOiBib29sZWFuO1xyXG5cdHJlYWRvbmx5IGlzSGVyb1NlbGVjdGlvbjogYm9vbGVhbjtcclxuXHRyZWFkb25seSBpc0VuZEdhbWU6IGJvb2xlYW47XHJcblx0cmVhZG9ubHkgZW5kR2FtZVN0YXR1czogUGxheVN0YXRlO1xyXG5cdHJlYWRvbmx5IHRhcmdldHM6IHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl1bXTtcclxuXHRyZWFkb25seSBvcHRpb25zOiByZWFkb25seSBudW1iZXJbXSA9IFtdO1xyXG5cdC8vIFRoaXMgaXMgcGFydCBvZiB0aGUgZ2xvYmFsIGFjdGlvbiwgYmVjYXVzZSBkYW1hZ2UgYWN0aW9ucyBjYW4gYmUgbWVyZ2VkXHJcblx0Ly8gaW50byBub24tZGFtYWdlIG9uZXNcclxuXHRyZWFkb25seSBkYW1hZ2VzOiBNYXA8bnVtYmVyLCBudW1iZXI+ID0gTWFwKCk7XHJcblxyXG5cdHByb3RlY3RlZCBhYnN0cmFjdCBnZXRJbnN0YW5jZSgpOiBBY3Rpb247XHJcblx0YWJzdHJhY3QgdXBkYXRlKGVudGl0aWVzOiBNYXA8bnVtYmVyLCBFbnRpdHk+KTogQWN0aW9uO1xyXG5cdC8vIFRoZSBsaXN0IG9mIGVudGl0aWVzIGlzIHVzZWZ1bCB3aGVuIHRyeWluZyB0byBmaW5kIHRoZSBuYW1lIG9mIGFuIGVudGl0eSB0aGF0IGRpZWQsXHJcblx0Ly8gYnV0IHdob3NlIGRlYXRocmF0dGxlIGVmZmVjdCB0cmlnZ2VycyBhbmQgaXMgbG9nZ2VkIGluIHRleHRcclxuXHRhYnN0cmFjdCBlbnJpY2hXaXRoVGV4dChhbGxFbnRpdGllc1NvRmFyOiBNYXA8bnVtYmVyLCBFbnRpdHk+KTogQWN0aW9uO1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgYWxsQ2FyZHM/OiBBbGxDYXJkc1NlcnZpY2UpIHt9XHJcblxyXG5cdHB1YmxpYyB1cGRhdGVBY3Rpb248VCBleHRlbmRzIEFjdGlvbj4obmV3QWN0aW9uOiBUKTogVCB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLmdldEluc3RhbmNlKCksIHRoaXMsIG5ld0FjdGlvbik7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgZ2VuZXJhdGVUYXJnZXRzVGV4dChhbGxFbnRpdGllc1NvRmFyOiBNYXA8bnVtYmVyLCBFbnRpdHk+KTogc3RyaW5nIHtcclxuXHRcdGlmICghdGhpcy50YXJnZXRJZHMgfHwgdGhpcy50YXJnZXRJZHMubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3Qgb3JpZ2luQ2FyZElkID0gQWN0aW9uSGVscGVyLmdldENhcmRJZCh0aGlzLmVudGl0aWVzLCB0aGlzLm9yaWdpbklkLCBhbGxFbnRpdGllc1NvRmFyKTtcclxuXHRcdGNvbnN0IG9yaWdpbkNhcmROYW1lID0gdGhpcy5hbGxDYXJkcy5nZXRDYXJkKG9yaWdpbkNhcmRJZCkubmFtZTtcclxuXHRcdGNvbnN0IHRhcmdldENhcmRJZHMgPSB0aGlzLnRhcmdldElkcy5tYXAoKGVudGl0eUlkKSA9PlxyXG5cdFx0XHRBY3Rpb25IZWxwZXIuZ2V0Q2FyZElkKHRoaXMuZW50aXRpZXMsIGVudGl0eUlkLCBhbGxFbnRpdGllc1NvRmFyKSxcclxuXHRcdCk7XHJcblx0XHRjb25zdCBjYXJkSWRzID0gdGFyZ2V0Q2FyZElkcy5tYXAoKGNhcmRJZCkgPT4gdGhpcy5hbGxDYXJkcy5nZXRDYXJkKGNhcmRJZCkpO1xyXG5cdFx0Y29uc3QgdGFyZ2V0Q2FyZE5hbWVzID0gY2FyZElkcy5zb21lKChjYXJkKSA9PiAhY2FyZCB8fCAhY2FyZC5uYW1lKVxyXG5cdFx0XHQ/IGAke2NhcmRJZHMubGVuZ3RofSBjYXJkc2BcclxuXHRcdFx0OiBjYXJkSWRzLm1hcCgoY2FyZCkgPT4gY2FyZC5uYW1lKS5qb2luKCcsICcpO1xyXG5cdFx0bGV0IGRhbWFnZVRleHQgPSAnJztcclxuXHRcdGlmICh0aGlzLmRhbWFnZXMpIHtcclxuXHRcdFx0ZGFtYWdlVGV4dCA9IHRoaXMuZGFtYWdlc1xyXG5cdFx0XHRcdC5tYXAoKGFtb3VudCwgZW50aXR5SWQpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IGVudGl0eUNhcmRJZCA9IEFjdGlvbkhlbHBlci5nZXRDYXJkSWQodGhpcy5lbnRpdGllcywgZW50aXR5SWQsIGFsbEVudGl0aWVzU29GYXIpO1xyXG5cdFx0XHRcdFx0Y29uc3QgZW50aXR5Q2FyZCA9IHRoaXMuYWxsQ2FyZHMuZ2V0Q2FyZChlbnRpdHlDYXJkSWQpO1xyXG5cdFx0XHRcdFx0cmV0dXJuIGAke2VudGl0eUNhcmQubmFtZX0gdGFrZXMgJHthbW91bnR9IGRhbWFnZWA7XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHQuam9pbignLCAnKTtcclxuXHRcdH1cclxuXHRcdGNvbnN0IHRleHRSYXcgPSBgXFx0JHtvcmlnaW5DYXJkTmFtZX0gdGFyZ2V0cyAke3RhcmdldENhcmROYW1lc30uIFxcbiR7ZGFtYWdlVGV4dH1gO1xyXG5cdFx0cmV0dXJuIHRleHRSYXc7XHJcblx0fVxyXG59XHJcbiJdfQ==