@firestone-hs/replay-parser
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.9.
33 lines • 5.16 kB
JavaScript
import { BlockType, CardType, GameTag } from '@firestone-hs/reference-data';
import { ActionButtonUsedAction } from '../../models/action/action-button-used-action';
import { ActionHistoryItem } from '../../models/history/action-history-item';
export class ActionButtonUsedParser {
constructor(allCards) {
this.allCards = allCards;
}
applies(item) {
return item instanceof ActionHistoryItem;
}
parse(item, currentTurn, entitiesBeforeAction, history) {
if (parseInt(item.node.attributes.type) !== BlockType.PLAY) {
return;
}
const entity = entitiesBeforeAction.get(parseInt(item.node.attributes.entity));
if (!entity) {
return [];
}
if (entity.getTag(GameTag.CARDTYPE) === CardType.HERO_POWER || entity.getTag(GameTag.BACON_ACTION_CARD) === 1) {
return [
ActionButtonUsedAction.create({
timestamp: item.timestamp,
index: item.index,
entityId: entity.id,
}, this.allCards),
];
}
}
reduce(actions) {
return actions;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ1dHRvbi11c2VkLXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcGxheS1wYXJzZXIvc3JjL2xpYi9zZXJ2aWNlcy9hY3Rpb24vYWN0aW9uLWJ1dHRvbi11c2VkLXBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUc1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUV2RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUs3RSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2xDLFlBQW9CLFFBQXlCO1FBQXpCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBQUcsQ0FBQztJQUUxQyxPQUFPLENBQUMsSUFBaUI7UUFDL0IsT0FBTyxJQUFJLFlBQVksaUJBQWlCLENBQUM7SUFDMUMsQ0FBQztJQUVNLEtBQUssQ0FDWCxJQUF1QixFQUN2QixXQUFtQixFQUNuQixvQkFBeUMsRUFDekMsT0FBK0I7UUFFL0IsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRTtZQUMzRCxPQUFPO1NBQ1A7UUFFRCxNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNaLE9BQU8sRUFBRSxDQUFDO1NBQ1Y7UUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUcsT0FBTztnQkFDTixzQkFBc0IsQ0FBQyxNQUFNLENBQzVCO29CQUNDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztvQkFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO29CQUNqQixRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7aUJBQ25CLEVBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FDYjthQUNELENBQUM7U0FDRjtJQUNGLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBMEI7UUFDdkMsT0FBTyxPQUFPLENBQUM7SUFDaEIsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmxvY2tUeXBlLCBDYXJkVHlwZSwgR2FtZVRhZyB9IGZyb20gJ0BmaXJlc3RvbmUtaHMvcmVmZXJlbmNlLWRhdGEnO1xyXG5pbXBvcnQgeyBNYXAgfSBmcm9tICdpbW11dGFibGUnO1xyXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWN0aW9uL2FjdGlvbic7XHJcbmltcG9ydCB7IEFjdGlvbkJ1dHRvblVzZWRBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWN0aW9uL2FjdGlvbi1idXR0b24tdXNlZC1hY3Rpb24nO1xyXG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ2FtZS9lbnRpdHknO1xyXG5pbXBvcnQgeyBBY3Rpb25IaXN0b3J5SXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9oaXN0b3J5L2FjdGlvbi1oaXN0b3J5LWl0ZW0nO1xyXG5pbXBvcnQgeyBIaXN0b3J5SXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9oaXN0b3J5L2hpc3RvcnktaXRlbSc7XHJcbmltcG9ydCB7IEFsbENhcmRzU2VydmljZSB9IGZyb20gJy4uL2FsbC1jYXJkcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSAnLi9wYXJzZXInO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFjdGlvbkJ1dHRvblVzZWRQYXJzZXIgaW1wbGVtZW50cyBQYXJzZXIge1xyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgYWxsQ2FyZHM6IEFsbENhcmRzU2VydmljZSkge31cclxuXHJcblx0cHVibGljIGFwcGxpZXMoaXRlbTogSGlzdG9yeUl0ZW0pOiBib29sZWFuIHtcclxuXHRcdHJldHVybiBpdGVtIGluc3RhbmNlb2YgQWN0aW9uSGlzdG9yeUl0ZW07XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgcGFyc2UoXHJcblx0XHRpdGVtOiBBY3Rpb25IaXN0b3J5SXRlbSxcclxuXHRcdGN1cnJlbnRUdXJuOiBudW1iZXIsXHJcblx0XHRlbnRpdGllc0JlZm9yZUFjdGlvbjogTWFwPG51bWJlciwgRW50aXR5PixcclxuXHRcdGhpc3Rvcnk6IHJlYWRvbmx5IEhpc3RvcnlJdGVtW10sXHJcblx0KTogQWN0aW9uW10ge1xyXG5cdFx0aWYgKHBhcnNlSW50KGl0ZW0ubm9kZS5hdHRyaWJ1dGVzLnR5cGUpICE9PSBCbG9ja1R5cGUuUExBWSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgZW50aXR5ID0gZW50aXRpZXNCZWZvcmVBY3Rpb24uZ2V0KHBhcnNlSW50KGl0ZW0ubm9kZS5hdHRyaWJ1dGVzLmVudGl0eSkpO1xyXG5cdFx0aWYgKCFlbnRpdHkpIHtcclxuXHRcdFx0cmV0dXJuIFtdO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGVudGl0eS5nZXRUYWcoR2FtZVRhZy5DQVJEVFlQRSkgPT09IENhcmRUeXBlLkhFUk9fUE9XRVIgfHwgZW50aXR5LmdldFRhZyhHYW1lVGFnLkJBQ09OX0FDVElPTl9DQVJEKSA9PT0gMSkge1xyXG5cdFx0XHRyZXR1cm4gW1xyXG5cdFx0XHRcdEFjdGlvbkJ1dHRvblVzZWRBY3Rpb24uY3JlYXRlKFxyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHR0aW1lc3RhbXA6IGl0ZW0udGltZXN0YW1wLFxyXG5cdFx0XHRcdFx0XHRpbmRleDogaXRlbS5pbmRleCxcclxuXHRcdFx0XHRcdFx0ZW50aXR5SWQ6IGVudGl0eS5pZCxcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR0aGlzLmFsbENhcmRzLFxyXG5cdFx0XHRcdCksXHJcblx0XHRcdF07XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgcmVkdWNlKGFjdGlvbnM6IHJlYWRvbmx5IEFjdGlvbltdKTogcmVhZG9ubHkgQWN0aW9uW10ge1xyXG5cdFx0cmV0dXJuIGFjdGlvbnM7XHJcblx0fVxyXG59XHJcbiJdfQ==