@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.36 kB
JavaScript
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[GameTag[GameTag.ZONE]] === Zone.SETASIDE &&
item.entityDefintion.tags[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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjb24tb3Bwb25lbnQtcmV2ZWFsZWQtcGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwbGF5LXBhcnNlci9zcmMvbGliL3NlcnZpY2VzL2FjdGlvbi9iYXR0bGVncm91bmRzL2JhY29uLW9wcG9uZW50LXJldmVhbGVkLXBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRzdELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBSWxILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdoRCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3ZDLFlBQW9CLFFBQXlCO1FBQXpCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBQUcsQ0FBQztJQUUxQyxPQUFPLENBQUMsSUFBaUI7UUFDL0IsT0FBTyxDQUNOLElBQUksWUFBWSxxQkFBcUI7WUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJO1lBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUTtZQUNsRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUMsS0FBSyxDQUFDLENBQzNFLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUNYLElBQTJCLEVBQzNCLFdBQW1CLEVBQ25CLG9CQUF5QyxFQUN6QyxPQUErQixFQUMvQixPQUFnQztRQUVoQyxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUU7WUFDcEIsT0FBTztTQUNQO1FBRUQsZ0VBQWdFO1FBQ2hFLE9BQU87WUFDTiwyQkFBMkIsQ0FBQyxNQUFNLENBQ2pDO2dCQUNDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBc0I7YUFDNUIsRUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FDYjtTQUNELENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQTBCO1FBQ3ZDLE9BQU8sWUFBWSxDQUFDLGNBQWMsQ0FDakMsT0FBTyxFQUNQLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQ3JCLFFBQVEsWUFBWSwyQkFBMkIsSUFBSSxPQUFPLFlBQVksMkJBQTJCLEVBQ2xHLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO1FBQzNELCtCQUErQjtRQUMvQixDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUNyQixRQUFRLFlBQVksd0JBQXdCLElBQUksT0FBTyxZQUFZLDJCQUEyQixDQUMvRixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FDbkIsY0FBMkMsRUFDM0MsYUFBMEM7UUFFMUMsTUFBTSxNQUFNLEdBQUcsMkJBQTJCLENBQUMsTUFBTSxDQUNoRDtZQUNDLFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUTtZQUNoQyxTQUFTLEVBQUUsY0FBYyxDQUFDLFNBQVM7WUFDbkMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxLQUFLO1lBQzNCLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFzQjtTQUNoRixFQUNoQyxJQUFJLENBQUMsUUFBUSxDQUNiLENBQUM7UUFDRixrQkFBa0I7UUFDbEIsd0JBQXdCO1FBQ3hCLHFGQUFxRjtRQUNyRixxRUFBcUU7UUFDckUsbUJBQW1CO1FBQ25CLEtBQUs7UUFDTCxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdhbWVUYWcsIFpvbmUgfSBmcm9tICdAZmlyZXN0b25lLWhzL3JlZmVyZW5jZS1kYXRhJztcclxuaW1wb3J0IHsgTWFwIH0gZnJvbSAnaW1tdXRhYmxlJztcclxuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2FjdGlvbi9hY3Rpb24nO1xyXG5pbXBvcnQgeyBCYWNvbk9wcG9uZW50UmV2ZWFsZWRBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvYWN0aW9uL2JhdHRsZWdyb3VuZHMvYmFjb24tb3Bwb25lbnQtcmV2ZWFsZWQtYWN0aW9uJztcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dhbWUvZW50aXR5JztcclxuaW1wb3J0IHsgUGxheWVyRW50aXR5IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dhbWUvcGxheWVyLWVudGl0eSc7XHJcbmltcG9ydCB7IEhpc3RvcnlJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2hpc3RvcnkvaGlzdG9yeS1pdGVtJztcclxuaW1wb3J0IHsgQ2FyZFBsYXllZEZyb21IYW5kQWN0aW9uLCBGdWxsRW50aXR5SGlzdG9yeUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvbW9kZWxzJztcclxuaW1wb3J0IHsgQWxsQ2FyZHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxsLWNhcmRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3Rpb25IZWxwZXIgfSBmcm9tICcuLi9hY3Rpb24taGVscGVyJztcclxuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSAnLi4vcGFyc2VyJztcclxuXHJcbmV4cG9ydCBjbGFzcyBCYWNvbk9wcG9uZW50UmV2ZWFsZWRQYXJzZXIgaW1wbGVtZW50cyBQYXJzZXIge1xyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgYWxsQ2FyZHM6IEFsbENhcmRzU2VydmljZSkge31cclxuXHJcblx0cHVibGljIGFwcGxpZXMoaXRlbTogSGlzdG9yeUl0ZW0pOiBib29sZWFuIHtcclxuXHRcdHJldHVybiAoXHJcblx0XHRcdGl0ZW0gaW5zdGFuY2VvZiBGdWxsRW50aXR5SGlzdG9yeUl0ZW0gJiZcclxuXHRcdFx0aXRlbS5lbnRpdHlEZWZpbnRpb24udGFncyAmJlxyXG5cdFx0XHRpdGVtLmVudGl0eURlZmludGlvbi50YWdzW0dhbWVUYWdbR2FtZVRhZy5aT05FXV0gPT09IFpvbmUuU0VUQVNJREUgJiZcclxuXHRcdFx0aXRlbS5lbnRpdHlEZWZpbnRpb24udGFnc1tHYW1lVGFnW0dhbWVUYWcuQkFDT05fSEVST19DQU5fQkVfRFJBRlRFRF1dID09PSAxXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHBhcnNlKFxyXG5cdFx0aXRlbTogRnVsbEVudGl0eUhpc3RvcnlJdGVtLFxyXG5cdFx0Y3VycmVudFR1cm46IG51bWJlcixcclxuXHRcdGVudGl0aWVzQmVmb3JlQWN0aW9uOiBNYXA8bnVtYmVyLCBFbnRpdHk+LFxyXG5cdFx0aGlzdG9yeTogcmVhZG9ubHkgSGlzdG9yeUl0ZW1bXSxcclxuXHRcdHBsYXllcnM6IHJlYWRvbmx5IFBsYXllckVudGl0eVtdLFxyXG5cdCk6IEFjdGlvbltdIHtcclxuXHRcdGlmIChjdXJyZW50VHVybiA+IDApIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIC8vIGNvbnNvbGUubG9nKCdhZGRpbmcgaGVybyB0byB0aGUgbGlzdCBvZiBvcHBvbmVudHMnLCBpdGVtKTtcclxuXHRcdHJldHVybiBbXHJcblx0XHRcdEJhY29uT3Bwb25lbnRSZXZlYWxlZEFjdGlvbi5jcmVhdGUoXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0dGltZXN0YW1wOiBpdGVtLnRpbWVzdGFtcCxcclxuXHRcdFx0XHRcdGluZGV4OiBpdGVtLmluZGV4LFxyXG5cdFx0XHRcdFx0b3Bwb25lbnRJZHM6IFtpdGVtLmVudGl0eURlZmludGlvbi5pZF0gYXMgcmVhZG9ubHkgbnVtYmVyW10sXHJcblx0XHRcdFx0fSBhcyBCYWNvbk9wcG9uZW50UmV2ZWFsZWRBY3Rpb24sXHJcblx0XHRcdFx0dGhpcy5hbGxDYXJkcyxcclxuXHRcdFx0KSxcclxuXHRcdF07XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgcmVkdWNlKGFjdGlvbnM6IHJlYWRvbmx5IEFjdGlvbltdKTogcmVhZG9ubHkgQWN0aW9uW10ge1xyXG5cdFx0cmV0dXJuIEFjdGlvbkhlbHBlci5jb21iaW5lQWN0aW9uczxCYWNvbk9wcG9uZW50UmV2ZWFsZWRBY3Rpb24+KFxyXG5cdFx0XHRhY3Rpb25zLFxyXG5cdFx0XHQocHJldmlvdXMsIGN1cnJlbnQpID0+XHJcblx0XHRcdFx0cHJldmlvdXMgaW5zdGFuY2VvZiBCYWNvbk9wcG9uZW50UmV2ZWFsZWRBY3Rpb24gJiYgY3VycmVudCBpbnN0YW5jZW9mIEJhY29uT3Bwb25lbnRSZXZlYWxlZEFjdGlvbixcclxuXHRcdFx0KHByZXZpb3VzLCBjdXJyZW50KSA9PiB0aGlzLm1lcmdlQWN0aW9ucyhwcmV2aW91cywgY3VycmVudCksXHJcblx0XHRcdC8vIFdoZW4gcGxheWVyIGhlcm8gaXMgcmV2ZWFsZWRcclxuXHRcdFx0KHByZXZpb3VzLCBjdXJyZW50KSA9PlxyXG5cdFx0XHRcdHByZXZpb3VzIGluc3RhbmNlb2YgQ2FyZFBsYXllZEZyb21IYW5kQWN0aW9uICYmIGN1cnJlbnQgaW5zdGFuY2VvZiBCYWNvbk9wcG9uZW50UmV2ZWFsZWRBY3Rpb24sXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBtZXJnZUFjdGlvbnMoXHJcblx0XHRwcmV2aW91c0FjdGlvbjogQmFjb25PcHBvbmVudFJldmVhbGVkQWN0aW9uLFxyXG5cdFx0Y3VycmVudEFjdGlvbjogQmFjb25PcHBvbmVudFJldmVhbGVkQWN0aW9uLFxyXG5cdCk6IEJhY29uT3Bwb25lbnRSZXZlYWxlZEFjdGlvbiB7XHJcblx0XHRjb25zdCByZXN1bHQgPSBCYWNvbk9wcG9uZW50UmV2ZWFsZWRBY3Rpb24uY3JlYXRlKFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0ZW50aXRpZXM6IGN1cnJlbnRBY3Rpb24uZW50aXRpZXMsXHJcblx0XHRcdFx0dGltZXN0YW1wOiBwcmV2aW91c0FjdGlvbi50aW1lc3RhbXAsXHJcblx0XHRcdFx0aW5kZXg6IHByZXZpb3VzQWN0aW9uLmluZGV4LFxyXG5cdFx0XHRcdG9wcG9uZW50SWRzOiBbLi4uKHByZXZpb3VzQWN0aW9uLm9wcG9uZW50SWRzID8/IFtdKSwgLi4uKGN1cnJlbnRBY3Rpb24ub3Bwb25lbnRJZHMgPz8gW10pXSBhcyByZWFkb25seSBudW1iZXJbXSxcclxuXHRcdFx0fSBhcyBCYWNvbk9wcG9uZW50UmV2ZWFsZWRBY3Rpb24sXHJcblx0XHRcdHRoaXMuYWxsQ2FyZHMsXHJcblx0XHQpO1xyXG5cdFx0Ly8gLy8gY29uc29sZS5sb2coXHJcblx0XHQvLyBcdCdyZWR1Y2UgMTUwIGJhY29pbicsXHJcblx0XHQvLyBcdHByZXZpb3VzQWN0aW9uLmVudGl0aWVzLmdldCgxNTApICYmIHByZXZpb3VzQWN0aW9uLmVudGl0aWVzLmdldCgxNTApLnRhZ3MudG9KUygpLFxyXG5cdFx0Ly8gXHRyZXN1bHQuZW50aXRpZXMuZ2V0KDE1MCkgJiYgcmVzdWx0LmVudGl0aWVzLmdldCgxNTApLnRhZ3MudG9KUygpLFxyXG5cdFx0Ly8gXHRwcmV2aW91c0FjdGlvbixcclxuXHRcdC8vICk7XHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxufVxyXG4iXX0=