@firestone-hs/replay-parser
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.9.
46 lines • 8.35 kB
JavaScript
import { GameTag, Step } from '@firestone-hs/reference-data';
import { StartTurnAction } from '../../models/action/start-turn-action';
import { TagChangeHistoryItem } from '../../models/history/tag-change-history-item';
import { BaconBoardVisualStateAction, GameHepler } from '../../models/models';
export class StartTurnParser {
constructor(allCards) {
this.allCards = allCards;
}
applies(item) {
return (item instanceof TagChangeHistoryItem && item.tag.tag === GameTag.STEP && item.tag.value === Step.MAIN_READY);
}
parse(item, currentTurn, entitiesBeforeAction, history) {
// // console.log('current turn?', currentTurn);
const activePlayerId = entitiesBeforeAction
.filter(entity => entity.getTag(GameTag.CURRENT_PLAYER) === 1)
.map(entity => entity)
.first().playerId;
const gameEntity = GameHepler.getGameEntity(entitiesBeforeAction);
const isBattlegrounds = gameEntity.getTag(GameTag.TECH_LEVEL_MANA_GEM) === 1;
// const hasShownVisualBoardState = gameEntity.getTag(GameTag.BOARD_VISUAL_STATE) > 0;
const shouldShowTurnActions = gameEntity.getTag(GameTag.DISABLE_TURN_INDICATORS) !== 1;
const result = [];
if (shouldShowTurnActions) {
result.push(StartTurnAction.create({
timestamp: item.timestamp,
turn: currentTurn,
activePlayer: activePlayerId,
index: item.index,
}, this.allCards));
}
// HACK: First turn usuall doesn't contain anything useful in battlegrounds
if (currentTurn <= 2 && isBattlegrounds) {
// // console.log('visual forced', 1, item, currentTurn);
result.push(BaconBoardVisualStateAction.create({
timestamp: item.timestamp,
newState: gameEntity.getTag(GameTag.BOARD_VISUAL_STATE),
index: item.index,
}, this.allCards));
}
return result;
}
reduce(actions) {
return actions;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtdHVybi1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yZXBsYXktcGFyc2VyL3NyYy9saWIvc2VydmljZXMvYWN0aW9uL3N0YXJ0LXR1cm4tcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBSXhFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUk5RSxNQUFNLE9BQU8sZUFBZTtJQUMzQixZQUE2QixRQUF5QjtRQUF6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtJQUFHLENBQUM7SUFFbkQsT0FBTyxDQUFDLElBQWlCO1FBQy9CLE9BQU8sQ0FDTixJQUFJLFlBQVksb0JBQW9CLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsVUFBVSxDQUMzRyxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FDWCxJQUEwQixFQUMxQixXQUFtQixFQUNuQixvQkFBeUMsRUFDekMsT0FBK0I7UUFFL0IsZ0RBQWdEO1FBQ2hELE1BQU0sY0FBYyxHQUFHLG9CQUFvQjthQUN6QyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDN0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBc0IsQ0FBQzthQUNyQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUM7UUFDbkIsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdFLHNGQUFzRjtRQUN0RixNQUFNLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUM1QixJQUFJLHFCQUFxQixFQUFFO1lBQzFCLE1BQU0sQ0FBQyxJQUFJLENBQ1YsZUFBZSxDQUFDLE1BQU0sQ0FDckI7Z0JBQ0MsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixJQUFJLEVBQUUsV0FBVztnQkFDakIsWUFBWSxFQUFFLGNBQWM7Z0JBQzVCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSzthQUNqQixFQUNELElBQUksQ0FBQyxRQUFRLENBQ2IsQ0FDRCxDQUFDO1NBQ0Y7UUFDRCwyRUFBMkU7UUFDM0UsSUFBSSxXQUFXLElBQUksQ0FBQyxJQUFJLGVBQWUsRUFBRTtZQUN4Qyx5REFBeUQ7WUFDekQsTUFBTSxDQUFDLElBQUksQ0FDViwyQkFBMkIsQ0FBQyxNQUFNLENBQ2pDO2dCQUNDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDekIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO2dCQUN2RCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDYyxFQUNoQyxJQUFJLENBQUMsUUFBUSxDQUNiLENBQ0QsQ0FBQztTQUNGO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQTBCO1FBQ3ZDLE9BQU8sT0FBTyxDQUFDO0lBQ2hCLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdhbWVUYWcsIFN0ZXAgfSBmcm9tICdAZmlyZXN0b25lLWhzL3JlZmVyZW5jZS1kYXRhJztcclxuaW1wb3J0IHsgTWFwIH0gZnJvbSAnaW1tdXRhYmxlJztcclxuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjdGlvbi9hY3Rpb24nO1xyXG5pbXBvcnQgeyBTdGFydFR1cm5BY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWN0aW9uL3N0YXJ0LXR1cm4tYWN0aW9uJztcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dhbWUvZW50aXR5JztcclxuaW1wb3J0IHsgUGxheWVyRW50aXR5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dhbWUvcGxheWVyLWVudGl0eSc7XHJcbmltcG9ydCB7IEhpc3RvcnlJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2hpc3RvcnkvaGlzdG9yeS1pdGVtJztcclxuaW1wb3J0IHsgVGFnQ2hhbmdlSGlzdG9yeUl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvaGlzdG9yeS90YWctY2hhbmdlLWhpc3RvcnktaXRlbSc7XHJcbmltcG9ydCB7IEJhY29uQm9hcmRWaXN1YWxTdGF0ZUFjdGlvbiwgR2FtZUhlcGxlciB9IGZyb20gJy4uLy4uL21vZGVscy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBbGxDYXJkc1NlcnZpY2UgfSBmcm9tICcuLi9hbGwtY2FyZHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhcnNlciB9IGZyb20gJy4vcGFyc2VyJztcclxuXHJcbmV4cG9ydCBjbGFzcyBTdGFydFR1cm5QYXJzZXIgaW1wbGVtZW50cyBQYXJzZXIge1xyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYWxsQ2FyZHM6IEFsbENhcmRzU2VydmljZSkge31cclxuXHJcblx0cHVibGljIGFwcGxpZXMoaXRlbTogSGlzdG9yeUl0ZW0pOiBib29sZWFuIHtcclxuXHRcdHJldHVybiAoXHJcblx0XHRcdGl0ZW0gaW5zdGFuY2VvZiBUYWdDaGFuZ2VIaXN0b3J5SXRlbSAmJiBpdGVtLnRhZy50YWcgPT09IEdhbWVUYWcuU1RFUCAmJiBpdGVtLnRhZy52YWx1ZSA9PT0gU3RlcC5NQUlOX1JFQURZXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHBhcnNlKFxyXG5cdFx0aXRlbTogVGFnQ2hhbmdlSGlzdG9yeUl0ZW0sXHJcblx0XHRjdXJyZW50VHVybjogbnVtYmVyLFxyXG5cdFx0ZW50aXRpZXNCZWZvcmVBY3Rpb246IE1hcDxudW1iZXIsIEVudGl0eT4sXHJcblx0XHRoaXN0b3J5OiByZWFkb25seSBIaXN0b3J5SXRlbVtdLFxyXG5cdCk6IEFjdGlvbltdIHtcclxuXHRcdC8vIC8vIGNvbnNvbGUubG9nKCdjdXJyZW50IHR1cm4/JywgY3VycmVudFR1cm4pO1xyXG5cdFx0Y29uc3QgYWN0aXZlUGxheWVySWQgPSBlbnRpdGllc0JlZm9yZUFjdGlvblxyXG5cdFx0XHQuZmlsdGVyKGVudGl0eSA9PiBlbnRpdHkuZ2V0VGFnKEdhbWVUYWcuQ1VSUkVOVF9QTEFZRVIpID09PSAxKVxyXG5cdFx0XHQubWFwKGVudGl0eSA9PiBlbnRpdHkgYXMgUGxheWVyRW50aXR5KVxyXG5cdFx0XHQuZmlyc3QoKS5wbGF5ZXJJZDtcclxuXHRcdGNvbnN0IGdhbWVFbnRpdHkgPSBHYW1lSGVwbGVyLmdldEdhbWVFbnRpdHkoZW50aXRpZXNCZWZvcmVBY3Rpb24pO1xyXG5cdFx0Y29uc3QgaXNCYXR0bGVncm91bmRzID0gZ2FtZUVudGl0eS5nZXRUYWcoR2FtZVRhZy5URUNIX0xFVkVMX01BTkFfR0VNKSA9PT0gMTtcclxuXHRcdC8vIGNvbnN0IGhhc1Nob3duVmlzdWFsQm9hcmRTdGF0ZSA9IGdhbWVFbnRpdHkuZ2V0VGFnKEdhbWVUYWcuQk9BUkRfVklTVUFMX1NUQVRFKSA+IDA7XHJcblx0XHRjb25zdCBzaG91bGRTaG93VHVybkFjdGlvbnMgPSBnYW1lRW50aXR5LmdldFRhZyhHYW1lVGFnLkRJU0FCTEVfVFVSTl9JTkRJQ0FUT1JTKSAhPT0gMTtcclxuXHRcdGNvbnN0IHJlc3VsdDogQWN0aW9uW10gPSBbXTtcclxuXHRcdGlmIChzaG91bGRTaG93VHVybkFjdGlvbnMpIHtcclxuXHRcdFx0cmVzdWx0LnB1c2goXHJcblx0XHRcdFx0U3RhcnRUdXJuQWN0aW9uLmNyZWF0ZShcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0dGltZXN0YW1wOiBpdGVtLnRpbWVzdGFtcCxcclxuXHRcdFx0XHRcdFx0dHVybjogY3VycmVudFR1cm4sXHJcblx0XHRcdFx0XHRcdGFjdGl2ZVBsYXllcjogYWN0aXZlUGxheWVySWQsXHJcblx0XHRcdFx0XHRcdGluZGV4OiBpdGVtLmluZGV4LFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHRoaXMuYWxsQ2FyZHMsXHJcblx0XHRcdFx0KSxcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHRcdC8vIEhBQ0s6IEZpcnN0IHR1cm4gdXN1YWxsIGRvZXNuJ3QgY29udGFpbiBhbnl0aGluZyB1c2VmdWwgaW4gYmF0dGxlZ3JvdW5kc1xyXG5cdFx0aWYgKGN1cnJlbnRUdXJuIDw9IDIgJiYgaXNCYXR0bGVncm91bmRzKSB7XHJcblx0XHRcdC8vIC8vIGNvbnNvbGUubG9nKCd2aXN1YWwgZm9yY2VkJywgMSwgaXRlbSwgY3VycmVudFR1cm4pO1xyXG5cdFx0XHRyZXN1bHQucHVzaChcclxuXHRcdFx0XHRCYWNvbkJvYXJkVmlzdWFsU3RhdGVBY3Rpb24uY3JlYXRlKFxyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHR0aW1lc3RhbXA6IGl0ZW0udGltZXN0YW1wLFxyXG5cdFx0XHRcdFx0XHRuZXdTdGF0ZTogZ2FtZUVudGl0eS5nZXRUYWcoR2FtZVRhZy5CT0FSRF9WSVNVQUxfU1RBVEUpLFxyXG5cdFx0XHRcdFx0XHRpbmRleDogaXRlbS5pbmRleCxcclxuXHRcdFx0XHRcdH0gYXMgQmFjb25Cb2FyZFZpc3VhbFN0YXRlQWN0aW9uLFxyXG5cdFx0XHRcdFx0dGhpcy5hbGxDYXJkcyxcclxuXHRcdFx0XHQpLFxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHJlc3VsdDtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyByZWR1Y2UoYWN0aW9uczogcmVhZG9ubHkgQWN0aW9uW10pOiByZWFkb25seSBBY3Rpb25bXSB7XHJcblx0XHRyZXR1cm4gYWN0aW9ucztcclxuXHR9XHJcbn1cclxuIl19