UNPKG

@firestone-hs/replay-parser

Version:

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

48 lines 8.08 kB
import { CardType, GameTag } from '@firestone-hs/reference-data'; import { BaconBattleOverAction } from '../../../models/action/battlegrounds/bacon-battle-over-action'; import { TagChangeHistoryItem } from '../../../models/history/tag-change-history-item'; import { GameHepler } from '../../../models/models'; import { ActionHelper } from '../action-helper'; export class BaconBattleOverParser { constructor(allCards) { this.allCards = allCards; } applies(item) { return item instanceof TagChangeHistoryItem && item.tag.tag === GameTag.ATK; } parse(item, currentTurn, entitiesBeforeAction, history) { // TODO: add checks that we are indeed in a Battlegrounds game? // // console.log('visual', item.tag.value, item); if (GameHepler.getGameEntity(entitiesBeforeAction).getTag(GameTag.TECH_LEVEL_MANA_GEM) !== 1) { return []; } const entity = entitiesBeforeAction.get(item.tag.entity); if (!entity || entity.getCardType() !== CardType.HERO) { return []; } if (item.tag.value === 0) { return []; } return [ BaconBattleOverAction.create({ timestamp: item.timestamp, index: item.index, }, this.allCards), ]; } reduce(actions) { return ActionHelper.combineActions(actions, (previous, current) => this.shouldMergeActions(previous, current), (previous, current) => this.mergeActions(previous, current)); } shouldMergeActions(previous, current) { return previous instanceof BaconBattleOverAction && current instanceof BaconBattleOverAction; } mergeActions(previousAction, currentAction) { // // console.log( // 'reduce 150', // previousAction.entities.get(150) && previousAction.entities.get(150).tags.toJS(), // previousAction, // ); return previousAction; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjb24tYmF0dGxlLW92ZXItcGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwbGF5LXBhcnNlci9zcmMvbGliL3NlcnZpY2VzL2FjdGlvbi9iYXR0bGVncm91bmRzL2JhY29uLWJhdHRsZS1vdmVyLXBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBR3RHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHaEQsTUFBTSxPQUFPLHFCQUFxQjtJQUNqQyxZQUE2QixRQUF5QjtRQUF6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtJQUFHLENBQUM7SUFFbkQsT0FBTyxDQUFDLElBQWlCO1FBQy9CLE9BQU8sSUFBSSxZQUFZLG9CQUFvQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDN0UsQ0FBQztJQUVNLEtBQUssQ0FDWCxJQUEwQixFQUMxQixXQUFtQixFQUNuQixvQkFBeUMsRUFDekMsT0FBK0I7UUFFL0IsK0RBQStEO1FBQy9ELGtEQUFrRDtRQUNsRCxJQUFJLFVBQVUsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzdGLE9BQU8sRUFBRSxDQUFDO1NBQ1Y7UUFDRCxNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsS0FBSyxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQ3RELE9BQU8sRUFBRSxDQUFDO1NBQ1Y7UUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRTtZQUN6QixPQUFPLEVBQUUsQ0FBQztTQUNWO1FBQ0QsT0FBTztZQUNOLHFCQUFxQixDQUFDLE1BQU0sQ0FDM0I7Z0JBQ0MsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDUSxFQUMxQixJQUFJLENBQUMsUUFBUSxDQUNiO1NBQ0QsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsT0FBMEI7UUFDdkMsT0FBTyxZQUFZLENBQUMsY0FBYyxDQUNqQyxPQUFPLEVBQ1AsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUNqRSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUMzRCxDQUFDO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFFBQWdCLEVBQUUsT0FBZTtRQUMzRCxPQUFPLFFBQVEsWUFBWSxxQkFBcUIsSUFBSSxPQUFPLFlBQVkscUJBQXFCLENBQUM7SUFDOUYsQ0FBQztJQUVPLFlBQVksQ0FDbkIsY0FBcUMsRUFDckMsYUFBb0M7UUFFcEMsa0JBQWtCO1FBQ2xCLGlCQUFpQjtRQUNqQixxRkFBcUY7UUFDckYsbUJBQW1CO1FBQ25CLEtBQUs7UUFDTCxPQUFPLGNBQWMsQ0FBQztJQUN2QixDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYXJkVHlwZSwgR2FtZVRhZyB9IGZyb20gJ0BmaXJlc3RvbmUtaHMvcmVmZXJlbmNlLWRhdGEnO1xyXG5pbXBvcnQgeyBNYXAgfSBmcm9tICdpbW11dGFibGUnO1xyXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvYWN0aW9uL2FjdGlvbic7XHJcbmltcG9ydCB7IEJhY29uQmF0dGxlT3ZlckFjdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9hY3Rpb24vYmF0dGxlZ3JvdW5kcy9iYWNvbi1iYXR0bGUtb3Zlci1hY3Rpb24nO1xyXG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2FtZS9lbnRpdHknO1xyXG5pbXBvcnQgeyBIaXN0b3J5SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9oaXN0b3J5L2hpc3RvcnktaXRlbSc7XHJcbmltcG9ydCB7IFRhZ0NoYW5nZUhpc3RvcnlJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2hpc3RvcnkvdGFnLWNoYW5nZS1oaXN0b3J5LWl0ZW0nO1xyXG5pbXBvcnQgeyBHYW1lSGVwbGVyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL21vZGVscyc7XHJcbmltcG9ydCB7IEFsbENhcmRzU2VydmljZSB9IGZyb20gJy4uLy4uL2FsbC1jYXJkcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aW9uSGVscGVyIH0gZnJvbSAnLi4vYWN0aW9uLWhlbHBlcic7XHJcbmltcG9ydCB7IFBhcnNlciB9IGZyb20gJy4uL3BhcnNlcic7XHJcblxyXG5leHBvcnQgY2xhc3MgQmFjb25CYXR0bGVPdmVyUGFyc2VyIGltcGxlbWVudHMgUGFyc2VyIHtcclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGFsbENhcmRzOiBBbGxDYXJkc1NlcnZpY2UpIHt9XHJcblxyXG5cdHB1YmxpYyBhcHBsaWVzKGl0ZW06IEhpc3RvcnlJdGVtKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gaXRlbSBpbnN0YW5jZW9mIFRhZ0NoYW5nZUhpc3RvcnlJdGVtICYmIGl0ZW0udGFnLnRhZyA9PT0gR2FtZVRhZy5BVEs7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgcGFyc2UoXHJcblx0XHRpdGVtOiBUYWdDaGFuZ2VIaXN0b3J5SXRlbSxcclxuXHRcdGN1cnJlbnRUdXJuOiBudW1iZXIsXHJcblx0XHRlbnRpdGllc0JlZm9yZUFjdGlvbjogTWFwPG51bWJlciwgRW50aXR5PixcclxuXHRcdGhpc3Rvcnk6IHJlYWRvbmx5IEhpc3RvcnlJdGVtW10sXHJcblx0KTogQWN0aW9uW10ge1xyXG5cdFx0Ly8gVE9ETzogYWRkIGNoZWNrcyB0aGF0IHdlIGFyZSBpbmRlZWQgaW4gYSBCYXR0bGVncm91bmRzIGdhbWU/XHJcblx0XHQvLyAvLyBjb25zb2xlLmxvZygndmlzdWFsJywgaXRlbS50YWcudmFsdWUsIGl0ZW0pO1xyXG5cdFx0aWYgKEdhbWVIZXBsZXIuZ2V0R2FtZUVudGl0eShlbnRpdGllc0JlZm9yZUFjdGlvbikuZ2V0VGFnKEdhbWVUYWcuVEVDSF9MRVZFTF9NQU5BX0dFTSkgIT09IDEpIHtcclxuXHRcdFx0cmV0dXJuIFtdO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgZW50aXR5ID0gZW50aXRpZXNCZWZvcmVBY3Rpb24uZ2V0KGl0ZW0udGFnLmVudGl0eSk7XHJcblx0XHRpZiAoIWVudGl0eSB8fCBlbnRpdHkuZ2V0Q2FyZFR5cGUoKSAhPT0gQ2FyZFR5cGUuSEVSTykge1xyXG5cdFx0XHRyZXR1cm4gW107XHJcblx0XHR9XHJcblx0XHRpZiAoaXRlbS50YWcudmFsdWUgPT09IDApIHtcclxuXHRcdFx0cmV0dXJuIFtdO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIFtcclxuXHRcdFx0QmFjb25CYXR0bGVPdmVyQWN0aW9uLmNyZWF0ZShcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHR0aW1lc3RhbXA6IGl0ZW0udGltZXN0YW1wLFxyXG5cdFx0XHRcdFx0aW5kZXg6IGl0ZW0uaW5kZXgsXHJcblx0XHRcdFx0fSBhcyBCYWNvbkJhdHRsZU92ZXJBY3Rpb24sXHJcblx0XHRcdFx0dGhpcy5hbGxDYXJkcyxcclxuXHRcdFx0KSxcclxuXHRcdF07XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgcmVkdWNlKGFjdGlvbnM6IHJlYWRvbmx5IEFjdGlvbltdKTogcmVhZG9ubHkgQWN0aW9uW10ge1xyXG5cdFx0cmV0dXJuIEFjdGlvbkhlbHBlci5jb21iaW5lQWN0aW9uczxCYWNvbkJhdHRsZU92ZXJBY3Rpb24+KFxyXG5cdFx0XHRhY3Rpb25zLFxyXG5cdFx0XHQocHJldmlvdXMsIGN1cnJlbnQpID0+IHRoaXMuc2hvdWxkTWVyZ2VBY3Rpb25zKHByZXZpb3VzLCBjdXJyZW50KSxcclxuXHRcdFx0KHByZXZpb3VzLCBjdXJyZW50KSA9PiB0aGlzLm1lcmdlQWN0aW9ucyhwcmV2aW91cywgY3VycmVudCksXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzaG91bGRNZXJnZUFjdGlvbnMocHJldmlvdXM6IEFjdGlvbiwgY3VycmVudDogQWN0aW9uKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gcHJldmlvdXMgaW5zdGFuY2VvZiBCYWNvbkJhdHRsZU92ZXJBY3Rpb24gJiYgY3VycmVudCBpbnN0YW5jZW9mIEJhY29uQmF0dGxlT3ZlckFjdGlvbjtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgbWVyZ2VBY3Rpb25zKFxyXG5cdFx0cHJldmlvdXNBY3Rpb246IEJhY29uQmF0dGxlT3ZlckFjdGlvbixcclxuXHRcdGN1cnJlbnRBY3Rpb246IEJhY29uQmF0dGxlT3ZlckFjdGlvbixcclxuXHQpOiBCYWNvbkJhdHRsZU92ZXJBY3Rpb24ge1xyXG5cdFx0Ly8gLy8gY29uc29sZS5sb2coXHJcblx0XHQvLyBcdCdyZWR1Y2UgMTUwJyxcclxuXHRcdC8vIFx0cHJldmlvdXNBY3Rpb24uZW50aXRpZXMuZ2V0KDE1MCkgJiYgcHJldmlvdXNBY3Rpb24uZW50aXRpZXMuZ2V0KDE1MCkudGFncy50b0pTKCksXHJcblx0XHQvLyBcdHByZXZpb3VzQWN0aW9uLFxyXG5cdFx0Ly8gKTtcclxuXHRcdHJldHVybiBwcmV2aW91c0FjdGlvbjtcclxuXHR9XHJcbn1cclxuIl19