UNPKG

@firestone-hs/replay-parser

Version:

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

49 lines 9.32 kB
import { GameTag, Zone } from '@firestone-hs/reference-data'; import { BaconOpponentRevealedAction } from '../../../models/action/battlegrounds/bacon-opponent-revealed-action'; import { CardPlayedFromHandAction, FullEntityHistoryItem } from '../../../models/models'; import { ActionHelper } from '../action-helper'; export class BaconOpponentRevealedParser { constructor(allCards) { this.allCards = allCards; } applies(item) { return (item instanceof FullEntityHistoryItem && item.entityDefintion.tags && item.entityDefintion.tags.get(GameTag[GameTag.ZONE]) === Zone.SETASIDE && item.entityDefintion.tags.get(GameTag[GameTag.BACON_HERO_CAN_BE_DRAFTED]) === 1); } parse(item, currentTurn, entitiesBeforeAction, history, players) { if (currentTurn > 0) { return; } // // console.log('adding hero to the list of opponents', item); return [ BaconOpponentRevealedAction.create({ timestamp: item.timestamp, index: item.index, opponentIds: [item.entityDefintion.id], }, this.allCards), ]; } reduce(actions) { return ActionHelper.combineActions(actions, (previous, current) => previous instanceof BaconOpponentRevealedAction && current instanceof BaconOpponentRevealedAction, (previous, current) => this.mergeActions(previous, current), // When player hero is revealed (previous, current) => previous instanceof CardPlayedFromHandAction && current instanceof BaconOpponentRevealedAction); } mergeActions(previousAction, currentAction) { const result = BaconOpponentRevealedAction.create({ entities: currentAction.entities, timestamp: previousAction.timestamp, index: previousAction.index, opponentIds: [...previousAction.opponentIds, ...currentAction.opponentIds], }, this.allCards); // // console.log( // 'reduce 150 bacoin', // previousAction.entities.get(150) && previousAction.entities.get(150).tags.toJS(), // result.entities.get(150) && result.entities.get(150).tags.toJS(), // previousAction, // ); return result; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjb24tb3Bwb25lbnQtcmV2ZWFsZWQtcGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwbGF5LXBhcnNlci9zcmMvbGliL3NlcnZpY2VzL2FjdGlvbi9iYXR0bGVncm91bmRzL2JhY29uLW9wcG9uZW50LXJldmVhbGVkLXBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRzdELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBSWxILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdoRCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3ZDLFlBQW9CLFFBQXlCO1FBQXpCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBQUcsQ0FBQztJQUUxQyxPQUFPLENBQUMsSUFBaUI7UUFDL0IsT0FBTyxDQUNOLElBQUksWUFBWSxxQkFBcUI7WUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJO1lBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVE7WUFDdEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FDL0UsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQ1gsSUFBMkIsRUFDM0IsV0FBbUIsRUFDbkIsb0JBQXlDLEVBQ3pDLE9BQStCLEVBQy9CLE9BQWdDO1FBRWhDLElBQUksV0FBVyxHQUFHLENBQUMsRUFBRTtZQUNwQixPQUFPO1NBQ1A7UUFFRCxnRUFBZ0U7UUFDaEUsT0FBTztZQUNOLDJCQUEyQixDQUFDLE1BQU0sQ0FDakM7Z0JBQ0MsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFzQjthQUM1QixFQUNoQyxJQUFJLENBQUMsUUFBUSxDQUNiO1NBQ0QsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsT0FBMEI7UUFDdkMsT0FBTyxZQUFZLENBQUMsY0FBYyxDQUNqQyxPQUFPLEVBQ1AsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDckIsUUFBUSxZQUFZLDJCQUEyQixJQUFJLE9BQU8sWUFBWSwyQkFBMkIsRUFDbEcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7UUFDM0QsK0JBQStCO1FBQy9CLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQ3JCLFFBQVEsWUFBWSx3QkFBd0IsSUFBSSxPQUFPLFlBQVksMkJBQTJCLENBQy9GLENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUNuQixjQUEyQyxFQUMzQyxhQUEwQztRQUUxQyxNQUFNLE1BQU0sR0FBRywyQkFBMkIsQ0FBQyxNQUFNLENBQ2hEO1lBQ0MsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRO1lBQ2hDLFNBQVMsRUFBRSxjQUFjLENBQUMsU0FBUztZQUNuQyxLQUFLLEVBQUUsY0FBYyxDQUFDLEtBQUs7WUFDM0IsV0FBVyxFQUFFLENBQUMsR0FBRyxjQUFjLENBQUMsV0FBVyxFQUFFLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBc0I7U0FDaEUsRUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FDYixDQUFDO1FBQ0Ysa0JBQWtCO1FBQ2xCLHdCQUF3QjtRQUN4QixxRkFBcUY7UUFDckYscUVBQXFFO1FBQ3JFLG1CQUFtQjtRQUNuQixLQUFLO1FBQ0wsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHYW1lVGFnLCBab25lIH0gZnJvbSAnQGZpcmVzdG9uZS1ocy9yZWZlcmVuY2UtZGF0YSc7XHJcbmltcG9ydCB7IE1hcCB9IGZyb20gJ2ltbXV0YWJsZSc7XHJcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9hY3Rpb24vYWN0aW9uJztcclxuaW1wb3J0IHsgQmFjb25PcHBvbmVudFJldmVhbGVkQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2FjdGlvbi9iYXR0bGVncm91bmRzL2JhY29uLW9wcG9uZW50LXJldmVhbGVkLWFjdGlvbic7XHJcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nYW1lL2VudGl0eSc7XHJcbmltcG9ydCB7IFBsYXllckVudGl0eSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nYW1lL3BsYXllci1lbnRpdHknO1xyXG5pbXBvcnQgeyBIaXN0b3J5SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9oaXN0b3J5L2hpc3RvcnktaXRlbSc7XHJcbmltcG9ydCB7IENhcmRQbGF5ZWRGcm9tSGFuZEFjdGlvbiwgRnVsbEVudGl0eUhpc3RvcnlJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL21vZGVscyc7XHJcbmltcG9ydCB7IEFsbENhcmRzU2VydmljZSB9IGZyb20gJy4uLy4uL2FsbC1jYXJkcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aW9uSGVscGVyIH0gZnJvbSAnLi4vYWN0aW9uLWhlbHBlcic7XHJcbmltcG9ydCB7IFBhcnNlciB9IGZyb20gJy4uL3BhcnNlcic7XHJcblxyXG5leHBvcnQgY2xhc3MgQmFjb25PcHBvbmVudFJldmVhbGVkUGFyc2VyIGltcGxlbWVudHMgUGFyc2VyIHtcclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGFsbENhcmRzOiBBbGxDYXJkc1NlcnZpY2UpIHt9XHJcblxyXG5cdHB1YmxpYyBhcHBsaWVzKGl0ZW06IEhpc3RvcnlJdGVtKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gKFxyXG5cdFx0XHRpdGVtIGluc3RhbmNlb2YgRnVsbEVudGl0eUhpc3RvcnlJdGVtICYmXHJcblx0XHRcdGl0ZW0uZW50aXR5RGVmaW50aW9uLnRhZ3MgJiZcclxuXHRcdFx0aXRlbS5lbnRpdHlEZWZpbnRpb24udGFncy5nZXQoR2FtZVRhZ1tHYW1lVGFnLlpPTkVdKSA9PT0gWm9uZS5TRVRBU0lERSAmJlxyXG5cdFx0XHRpdGVtLmVudGl0eURlZmludGlvbi50YWdzLmdldChHYW1lVGFnW0dhbWVUYWcuQkFDT05fSEVST19DQU5fQkVfRFJBRlRFRF0pID09PSAxXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHBhcnNlKFxyXG5cdFx0aXRlbTogRnVsbEVudGl0eUhpc3RvcnlJdGVtLFxyXG5cdFx0Y3VycmVudFR1cm46IG51bWJlcixcclxuXHRcdGVudGl0aWVzQmVmb3JlQWN0aW9uOiBNYXA8bnVtYmVyLCBFbnRpdHk+LFxyXG5cdFx0aGlzdG9yeTogcmVhZG9ubHkgSGlzdG9yeUl0ZW1bXSxcclxuXHRcdHBsYXllcnM6IHJlYWRvbmx5IFBsYXllckVudGl0eVtdLFxyXG5cdCk6IEFjdGlvbltdIHtcclxuXHRcdGlmIChjdXJyZW50VHVybiA+IDApIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIC8vIGNvbnNvbGUubG9nKCdhZGRpbmcgaGVybyB0byB0aGUgbGlzdCBvZiBvcHBvbmVudHMnLCBpdGVtKTtcclxuXHRcdHJldHVybiBbXHJcblx0XHRcdEJhY29uT3Bwb25lbnRSZXZlYWxlZEFjdGlvbi5jcmVhdGUoXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0dGltZXN0YW1wOiBpdGVtLnRpbWVzdGFtcCxcclxuXHRcdFx0XHRcdGluZGV4OiBpdGVtLmluZGV4LFxyXG5cdFx0XHRcdFx0b3Bwb25lbnRJZHM6IFtpdGVtLmVudGl0eURlZmludGlvbi5pZF0gYXMgcmVhZG9ubHkgbnVtYmVyW10sXHJcblx0XHRcdFx0fSBhcyBCYWNvbk9wcG9uZW50UmV2ZWFsZWRBY3Rpb24sXHJcblx0XHRcdFx0dGhpcy5hbGxDYXJkcyxcclxuXHRcdFx0KSxcclxuXHRcdF07XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgcmVkdWNlKGFjdGlvbnM6IHJlYWRvbmx5IEFjdGlvbltdKTogcmVhZG9ubHkgQWN0aW9uW10ge1xyXG5cdFx0cmV0dXJuIEFjdGlvbkhlbHBlci5jb21iaW5lQWN0aW9uczxCYWNvbk9wcG9uZW50UmV2ZWFsZWRBY3Rpb24+KFxyXG5cdFx0XHRhY3Rpb25zLFxyXG5cdFx0XHQocHJldmlvdXMsIGN1cnJlbnQpID0+XHJcblx0XHRcdFx0cHJldmlvdXMgaW5zdGFuY2VvZiBCYWNvbk9wcG9uZW50UmV2ZWFsZWRBY3Rpb24gJiYgY3VycmVudCBpbnN0YW5jZW9mIEJhY29uT3Bwb25lbnRSZXZlYWxlZEFjdGlvbixcclxuXHRcdFx0KHByZXZpb3VzLCBjdXJyZW50KSA9PiB0aGlzLm1lcmdlQWN0aW9ucyhwcmV2aW91cywgY3VycmVudCksXHJcblx0XHRcdC8vIFdoZW4gcGxheWVyIGhlcm8gaXMgcmV2ZWFsZWRcclxuXHRcdFx0KHByZXZpb3VzLCBjdXJyZW50KSA9PlxyXG5cdFx0XHRcdHByZXZpb3VzIGluc3RhbmNlb2YgQ2FyZFBsYXllZEZyb21IYW5kQWN0aW9uICYmIGN1cnJlbnQgaW5zdGFuY2VvZiBCYWNvbk9wcG9uZW50UmV2ZWFsZWRBY3Rpb24sXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBtZXJnZUFjdGlvbnMoXHJcblx0XHRwcmV2aW91c0FjdGlvbjogQmFjb25PcHBvbmVudFJldmVhbGVkQWN0aW9uLFxyXG5cdFx0Y3VycmVudEFjdGlvbjogQmFjb25PcHBvbmVudFJldmVhbGVkQWN0aW9uLFxyXG5cdCk6IEJhY29uT3Bwb25lbnRSZXZlYWxlZEFjdGlvbiB7XHJcblx0XHRjb25zdCByZXN1bHQgPSBCYWNvbk9wcG9uZW50UmV2ZWFsZWRBY3Rpb24uY3JlYXRlKFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0ZW50aXRpZXM6IGN1cnJlbnRBY3Rpb24uZW50aXRpZXMsXHJcblx0XHRcdFx0dGltZXN0YW1wOiBwcmV2aW91c0FjdGlvbi50aW1lc3RhbXAsXHJcblx0XHRcdFx0aW5kZXg6IHByZXZpb3VzQWN0aW9uLmluZGV4LFxyXG5cdFx0XHRcdG9wcG9uZW50SWRzOiBbLi4ucHJldmlvdXNBY3Rpb24ub3Bwb25lbnRJZHMsIC4uLmN1cnJlbnRBY3Rpb24ub3Bwb25lbnRJZHNdIGFzIHJlYWRvbmx5IG51bWJlcltdLFxyXG5cdFx0XHR9IGFzIEJhY29uT3Bwb25lbnRSZXZlYWxlZEFjdGlvbixcclxuXHRcdFx0dGhpcy5hbGxDYXJkcyxcclxuXHRcdCk7XHJcblx0XHQvLyAvLyBjb25zb2xlLmxvZyhcclxuXHRcdC8vIFx0J3JlZHVjZSAxNTAgYmFjb2luJyxcclxuXHRcdC8vIFx0cHJldmlvdXNBY3Rpb24uZW50aXRpZXMuZ2V0KDE1MCkgJiYgcHJldmlvdXNBY3Rpb24uZW50aXRpZXMuZ2V0KDE1MCkudGFncy50b0pTKCksXHJcblx0XHQvLyBcdHJlc3VsdC5lbnRpdGllcy5nZXQoMTUwKSAmJiByZXN1bHQuZW50aXRpZXMuZ2V0KDE1MCkudGFncy50b0pTKCksXHJcblx0XHQvLyBcdHByZXZpb3VzQWN0aW9uLFxyXG5cdFx0Ly8gKTtcclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG59XHJcbiJdfQ==