UNPKG

@firestone-hs/replay-parser

Version:

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

56 lines 7.74 kB
import { BlockType, CardType, GameTag } from '@firestone-hs/reference-data'; import { LocationActivatedAction } from '../../models/action/location-activated-action'; import { ActionHistoryItem } from '../../models/history/action-history-item'; export class LocationActivatedParser { constructor(allCards) { this.allCards = allCards; } applies(item) { return item instanceof ActionHistoryItem; } parse(item, currentTurn, entitiesBeforeAction, history) { if (parseInt(item.node.attributes.type) !== BlockType.POWER) { return []; } if (item.node.isSelfClosing) { return []; } const entity = entitiesBeforeAction.get(parseInt(item.node.attributes.entity)); if (!entity) { return []; } if (entity.getTag(GameTag.CARDTYPE) !== CardType.LOCATION) { return []; } return [ LocationActivatedAction.create({ timestamp: item.timestamp, index: item.index, originId: entity.id, debug: item, }, this.allCards), ]; } reduce(actions) { return actions; // return ActionHelper.combineActions<Action>( // actions, // (previous, current) => this.shouldMergeActions(previous, current), // (previous, current) => this.mergeActions(previous, current), // ); } shouldMergeActions(previousAction, currentAction) { if (previousAction instanceof LocationActivatedAction) { return true; } return false; } mergeActions(previousAction, currentAction) { // Possibly because of some log artifacts, the same action is detected multiple times if (previousAction instanceof LocationActivatedAction && previousAction.originId === currentAction.originId) { return previousAction; } return previousAction; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24tYWN0aXZhdGVkLXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcGxheS1wYXJzZXIvc3JjL2xpYi9zZXJ2aWNlcy9hY3Rpb24vbG9jYXRpb24tYWN0aXZhdGVkLXBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUc1RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUV4RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUs3RSxNQUFNLE9BQU8sdUJBQXVCO0lBQ25DLFlBQW9CLFFBQXlCO1FBQXpCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBQUcsQ0FBQztJQUUxQyxPQUFPLENBQUMsSUFBaUI7UUFDL0IsT0FBTyxJQUFJLFlBQVksaUJBQWlCLENBQUM7SUFDMUMsQ0FBQztJQUVNLEtBQUssQ0FDWCxJQUF1QixFQUN2QixXQUFtQixFQUNuQixvQkFBeUMsRUFDekMsT0FBK0I7UUFFL0IsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDLEtBQUssRUFBRTtZQUM1RCxPQUFPLEVBQUUsQ0FBQztTQUNWO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUM1QixPQUFPLEVBQUUsQ0FBQztTQUNWO1FBRUQsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWixPQUFPLEVBQUUsQ0FBQztTQUNWO1FBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxRQUFRLENBQUMsUUFBUSxFQUFFO1lBQzFELE9BQU8sRUFBRSxDQUFDO1NBQ1Y7UUFFRCxPQUFPO1lBQ04sdUJBQXVCLENBQUMsTUFBTSxDQUM3QjtnQkFDQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNuQixLQUFLLEVBQUUsSUFBSTthQUNYLEVBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FDYjtTQUNELENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQTBCO1FBQ3ZDLE9BQU8sT0FBTyxDQUFDO1FBQ2YsOENBQThDO1FBQzlDLFlBQVk7UUFDWixzRUFBc0U7UUFDdEUsZ0VBQWdFO1FBQ2hFLEtBQUs7SUFDTixDQUFDO0lBRU8sa0JBQWtCLENBQUMsY0FBc0IsRUFBRSxhQUFxQjtRQUN2RSxJQUFJLGNBQWMsWUFBWSx1QkFBdUIsRUFBRTtZQUN0RCxPQUFPLElBQUksQ0FBQztTQUNaO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDO0lBRU8sWUFBWSxDQUFDLGNBQXNCLEVBQUUsYUFBcUI7UUFDakUscUZBQXFGO1FBQ3JGLElBQUksY0FBYyxZQUFZLHVCQUF1QixJQUFJLGNBQWMsQ0FBQyxRQUFRLEtBQUssYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUM1RyxPQUFPLGNBQWMsQ0FBQztTQUN0QjtRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3ZCLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJsb2NrVHlwZSwgQ2FyZFR5cGUsIEdhbWVUYWcgfSBmcm9tICdAZmlyZXN0b25lLWhzL3JlZmVyZW5jZS1kYXRhJztcclxuaW1wb3J0IHsgTWFwIH0gZnJvbSAnaW1tdXRhYmxlJztcclxuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjdGlvbi9hY3Rpb24nO1xyXG5pbXBvcnQgeyBMb2NhdGlvbkFjdGl2YXRlZEFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb24vbG9jYXRpb24tYWN0aXZhdGVkLWFjdGlvbic7XHJcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4uLy4uL21vZGVscy9nYW1lL2VudGl0eSc7XHJcbmltcG9ydCB7IEFjdGlvbkhpc3RvcnlJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2hpc3RvcnkvYWN0aW9uLWhpc3RvcnktaXRlbSc7XHJcbmltcG9ydCB7IEhpc3RvcnlJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2hpc3RvcnkvaGlzdG9yeS1pdGVtJztcclxuaW1wb3J0IHsgQWxsQ2FyZHNTZXJ2aWNlIH0gZnJvbSAnLi4vYWxsLWNhcmRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tICcuL3BhcnNlcic7XHJcblxyXG5leHBvcnQgY2xhc3MgTG9jYXRpb25BY3RpdmF0ZWRQYXJzZXIgaW1wbGVtZW50cyBQYXJzZXIge1xyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgYWxsQ2FyZHM6IEFsbENhcmRzU2VydmljZSkge31cclxuXHJcblx0cHVibGljIGFwcGxpZXMoaXRlbTogSGlzdG9yeUl0ZW0pOiBib29sZWFuIHtcclxuXHRcdHJldHVybiBpdGVtIGluc3RhbmNlb2YgQWN0aW9uSGlzdG9yeUl0ZW07XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgcGFyc2UoXHJcblx0XHRpdGVtOiBBY3Rpb25IaXN0b3J5SXRlbSxcclxuXHRcdGN1cnJlbnRUdXJuOiBudW1iZXIsXHJcblx0XHRlbnRpdGllc0JlZm9yZUFjdGlvbjogTWFwPG51bWJlciwgRW50aXR5PixcclxuXHRcdGhpc3Rvcnk6IHJlYWRvbmx5IEhpc3RvcnlJdGVtW10sXHJcblx0KTogQWN0aW9uW10ge1xyXG5cdFx0aWYgKHBhcnNlSW50KGl0ZW0ubm9kZS5hdHRyaWJ1dGVzLnR5cGUpICE9PSBCbG9ja1R5cGUuUE9XRVIpIHtcclxuXHRcdFx0cmV0dXJuIFtdO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChpdGVtLm5vZGUuaXNTZWxmQ2xvc2luZykge1xyXG5cdFx0XHRyZXR1cm4gW107XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgZW50aXR5ID0gZW50aXRpZXNCZWZvcmVBY3Rpb24uZ2V0KHBhcnNlSW50KGl0ZW0ubm9kZS5hdHRyaWJ1dGVzLmVudGl0eSkpO1xyXG5cdFx0aWYgKCFlbnRpdHkpIHtcclxuXHRcdFx0cmV0dXJuIFtdO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGVudGl0eS5nZXRUYWcoR2FtZVRhZy5DQVJEVFlQRSkgIT09IENhcmRUeXBlLkxPQ0FUSU9OKSB7XHJcblx0XHRcdHJldHVybiBbXTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gW1xyXG5cdFx0XHRMb2NhdGlvbkFjdGl2YXRlZEFjdGlvbi5jcmVhdGUoXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0dGltZXN0YW1wOiBpdGVtLnRpbWVzdGFtcCxcclxuXHRcdFx0XHRcdGluZGV4OiBpdGVtLmluZGV4LFxyXG5cdFx0XHRcdFx0b3JpZ2luSWQ6IGVudGl0eS5pZCxcclxuXHRcdFx0XHRcdGRlYnVnOiBpdGVtLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0dGhpcy5hbGxDYXJkcyxcclxuXHRcdFx0KSxcclxuXHRcdF07XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgcmVkdWNlKGFjdGlvbnM6IHJlYWRvbmx5IEFjdGlvbltdKTogcmVhZG9ubHkgQWN0aW9uW10ge1xyXG5cdFx0cmV0dXJuIGFjdGlvbnM7XHJcblx0XHQvLyByZXR1cm4gQWN0aW9uSGVscGVyLmNvbWJpbmVBY3Rpb25zPEFjdGlvbj4oXHJcblx0XHQvLyBcdGFjdGlvbnMsXHJcblx0XHQvLyBcdChwcmV2aW91cywgY3VycmVudCkgPT4gdGhpcy5zaG91bGRNZXJnZUFjdGlvbnMocHJldmlvdXMsIGN1cnJlbnQpLFxyXG5cdFx0Ly8gXHQocHJldmlvdXMsIGN1cnJlbnQpID0+IHRoaXMubWVyZ2VBY3Rpb25zKHByZXZpb3VzLCBjdXJyZW50KSxcclxuXHRcdC8vICk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHNob3VsZE1lcmdlQWN0aW9ucyhwcmV2aW91c0FjdGlvbjogQWN0aW9uLCBjdXJyZW50QWN0aW9uOiBBY3Rpb24pOiBib29sZWFuIHtcclxuXHRcdGlmIChwcmV2aW91c0FjdGlvbiBpbnN0YW5jZW9mIExvY2F0aW9uQWN0aXZhdGVkQWN0aW9uKSB7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGZhbHNlO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBtZXJnZUFjdGlvbnMocHJldmlvdXNBY3Rpb246IEFjdGlvbiwgY3VycmVudEFjdGlvbjogQWN0aW9uKTogQWN0aW9uIHtcclxuXHRcdC8vIFBvc3NpYmx5IGJlY2F1c2Ugb2Ygc29tZSBsb2cgYXJ0aWZhY3RzLCB0aGUgc2FtZSBhY3Rpb24gaXMgZGV0ZWN0ZWQgbXVsdGlwbGUgdGltZXNcclxuXHRcdGlmIChwcmV2aW91c0FjdGlvbiBpbnN0YW5jZW9mIExvY2F0aW9uQWN0aXZhdGVkQWN0aW9uICYmIHByZXZpb3VzQWN0aW9uLm9yaWdpbklkID09PSBjdXJyZW50QWN0aW9uLm9yaWdpbklkKSB7XHJcblx0XHRcdHJldHVybiBwcmV2aW91c0FjdGlvbjtcclxuXHRcdH1cclxuXHRcdHJldHVybiBwcmV2aW91c0FjdGlvbjtcclxuXHR9XHJcbn1cclxuIl19