UNPKG

@firestone-hs/replay-parser

Version:

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

39 lines 5.69 kB
import { BlockType, GameTag } from '@firestone-hs/reference-data'; import { AttackAction } from '../../models/action/attack-action'; import { ActionHistoryItem } from '../../models/history/action-history-item'; import { ActionHelper } from './action-helper'; export class AttackParser { constructor(allCards) { this.allCards = allCards; } applies(item) { return item instanceof ActionHistoryItem; } parse(item, currentTurn, entitiesBeforeAction, history) { if (parseInt(item.node.attributes.type) !== BlockType.ATTACK) { return; } let target = parseInt(item.node.attributes.target); if (!target) { // console.warn('Could not parse target entity id', item); target = ActionHelper.getTag(item.node.tags, GameTag.PROPOSED_DEFENDER); } // Happens when buying items for Battlegrounds if (!target) { // console.warn('Could not parse target entity id at all', item); return []; } return [ AttackAction.create({ timestamp: item.timestamp, index: item.index, originId: parseInt(item.node.attributes.entity), targetId: target, }, this.allCards), ]; } reduce(actions) { return actions; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNrLXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcGxheS1wYXJzZXIvc3JjL2xpYi9zZXJ2aWNlcy9hY3Rpb24vYXR0YWNrLXBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUc3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHL0MsTUFBTSxPQUFPLFlBQVk7SUFDeEIsWUFBb0IsUUFBeUI7UUFBekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7SUFBRyxDQUFDO0lBRTFDLE9BQU8sQ0FBQyxJQUFpQjtRQUMvQixPQUFPLElBQUksWUFBWSxpQkFBaUIsQ0FBQztJQUMxQyxDQUFDO0lBRU0sS0FBSyxDQUNYLElBQXVCLEVBQ3ZCLFdBQW1CLEVBQ25CLG9CQUF5QyxFQUN6QyxPQUErQjtRQUUvQixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQzdELE9BQU87U0FDUDtRQUNELElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1osMERBQTBEO1lBQzFELE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsOENBQThDO1FBQzlDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWixpRUFBaUU7WUFDakUsT0FBTyxFQUFFLENBQUM7U0FDVjtRQUNELE9BQU87WUFDTixZQUFZLENBQUMsTUFBTSxDQUNsQjtnQkFDQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7Z0JBQy9DLFFBQVEsRUFBRSxNQUFNO2FBQ2hCLEVBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FDYjtTQUNELENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQTBCO1FBQ3ZDLE9BQU8sT0FBTyxDQUFDO0lBQ2hCLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJsb2NrVHlwZSwgR2FtZVRhZyB9IGZyb20gJ0BmaXJlc3RvbmUtaHMvcmVmZXJlbmNlLWRhdGEnO1xyXG5pbXBvcnQgeyBNYXAgfSBmcm9tICdpbW11dGFibGUnO1xyXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWN0aW9uL2FjdGlvbic7XHJcbmltcG9ydCB7IEF0dGFja0FjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb24vYXR0YWNrLWFjdGlvbic7XHJcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4uLy4uL21vZGVscy9nYW1lL2VudGl0eSc7XHJcbmltcG9ydCB7IEFjdGlvbkhpc3RvcnlJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2hpc3RvcnkvYWN0aW9uLWhpc3RvcnktaXRlbSc7XHJcbmltcG9ydCB7IEhpc3RvcnlJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2hpc3RvcnkvaGlzdG9yeS1pdGVtJztcclxuaW1wb3J0IHsgQWxsQ2FyZHNTZXJ2aWNlIH0gZnJvbSAnLi4vYWxsLWNhcmRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3Rpb25IZWxwZXIgfSBmcm9tICcuL2FjdGlvbi1oZWxwZXInO1xyXG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tICcuL3BhcnNlcic7XHJcblxyXG5leHBvcnQgY2xhc3MgQXR0YWNrUGFyc2VyIGltcGxlbWVudHMgUGFyc2VyIHtcclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGFsbENhcmRzOiBBbGxDYXJkc1NlcnZpY2UpIHt9XHJcblxyXG5cdHB1YmxpYyBhcHBsaWVzKGl0ZW06IEhpc3RvcnlJdGVtKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gaXRlbSBpbnN0YW5jZW9mIEFjdGlvbkhpc3RvcnlJdGVtO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHBhcnNlKFxyXG5cdFx0aXRlbTogQWN0aW9uSGlzdG9yeUl0ZW0sXHJcblx0XHRjdXJyZW50VHVybjogbnVtYmVyLFxyXG5cdFx0ZW50aXRpZXNCZWZvcmVBY3Rpb246IE1hcDxudW1iZXIsIEVudGl0eT4sXHJcblx0XHRoaXN0b3J5OiByZWFkb25seSBIaXN0b3J5SXRlbVtdLFxyXG5cdCk6IEFjdGlvbltdIHtcclxuXHRcdGlmIChwYXJzZUludChpdGVtLm5vZGUuYXR0cmlidXRlcy50eXBlKSAhPT0gQmxvY2tUeXBlLkFUVEFDSykge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRsZXQgdGFyZ2V0ID0gcGFyc2VJbnQoaXRlbS5ub2RlLmF0dHJpYnV0ZXMudGFyZ2V0KTtcclxuXHRcdGlmICghdGFyZ2V0KSB7XHJcblx0XHRcdC8vIGNvbnNvbGUud2FybignQ291bGQgbm90IHBhcnNlIHRhcmdldCBlbnRpdHkgaWQnLCBpdGVtKTtcclxuXHRcdFx0dGFyZ2V0ID0gQWN0aW9uSGVscGVyLmdldFRhZyhpdGVtLm5vZGUudGFncywgR2FtZVRhZy5QUk9QT1NFRF9ERUZFTkRFUik7XHJcblx0XHR9XHJcblx0XHQvLyBIYXBwZW5zIHdoZW4gYnV5aW5nIGl0ZW1zIGZvciBCYXR0bGVncm91bmRzXHJcblx0XHRpZiAoIXRhcmdldCkge1xyXG5cdFx0XHQvLyBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCBwYXJzZSB0YXJnZXQgZW50aXR5IGlkIGF0IGFsbCcsIGl0ZW0pO1xyXG5cdFx0XHRyZXR1cm4gW107XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gW1xyXG5cdFx0XHRBdHRhY2tBY3Rpb24uY3JlYXRlKFxyXG5cdFx0XHRcdHtcclxuXHRcdFx0XHRcdHRpbWVzdGFtcDogaXRlbS50aW1lc3RhbXAsXHJcblx0XHRcdFx0XHRpbmRleDogaXRlbS5pbmRleCxcclxuXHRcdFx0XHRcdG9yaWdpbklkOiBwYXJzZUludChpdGVtLm5vZGUuYXR0cmlidXRlcy5lbnRpdHkpLFxyXG5cdFx0XHRcdFx0dGFyZ2V0SWQ6IHRhcmdldCxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHRoaXMuYWxsQ2FyZHMsXHJcblx0XHRcdCksXHJcblx0XHRdO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHJlZHVjZShhY3Rpb25zOiByZWFkb25seSBBY3Rpb25bXSk6IHJlYWRvbmx5IEFjdGlvbltdIHtcclxuXHRcdHJldHVybiBhY3Rpb25zO1xyXG5cdH1cclxufVxyXG4iXX0=