@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
JavaScript
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