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 6.42 kB
import { Injectable } from '@angular/core'; import { Game } from '../../models/game/game'; import * as i0 from "@angular/core"; import * as i1 from "../all-cards.service"; export class ActivePlayerParserService { constructor(allCards) { this.allCards = allCards; } parseActivePlayerForLastTurn(game) { let turns = game.turns; const numberOfTurns = turns.size; const turn = game.turns.get(numberOfTurns - 1); const enrichedTurn = this.enrichTurn(turn); turns = turns.set(numberOfTurns - 1, enrichedTurn); return Game.createGame(game, { turns }); } enrichTurn(turn) { const newActions = []; for (let i = 0; i < turn.actions.length; i++) { const previousAction = i === 0 ? null : newActions[i - 1]; const newAction = this.enrichAction(turn.actions[i], previousAction); newActions.push(newAction); } return turn.update({ actions: newActions }); } enrichAction(action, previousAction) { if (action.activePlayer) { return action; } else if (previousAction && previousAction.activePlayer) { return action.updateAction({ activePlayer: previousAction.activePlayer, }); } else { return action; } } } ActivePlayerParserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: ActivePlayerParserService, deps: [{ token: i1.AllCardsService }], target: i0.ɵɵFactoryTarget.Injectable }); ActivePlayerParserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: ActivePlayerParserService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: ActivePlayerParserService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: function () { return [{ type: i1.AllCardsService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLXBsYXllci1wYXJzZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcGxheS1wYXJzZXIvc3JjL2xpYi9zZXJ2aWNlcy9nYW1lcGlwZWxpbmUvYWN0aXZlLXBsYXllci1wYXJzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBTzlDLE1BQU0sT0FBTyx5QkFBeUI7SUFDckMsWUFBb0IsUUFBeUI7UUFBekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7SUFBRyxDQUFDO0lBRTFDLDRCQUE0QixDQUFDLElBQVU7UUFDN0MsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN2QixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBVSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFVO1FBQzVCLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN0QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDN0MsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNyRSxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzNCO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQStCLEVBQVUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTyxZQUFZLENBQUMsTUFBYyxFQUFFLGNBQXNCO1FBQzFELElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtZQUN4QixPQUFPLE1BQU0sQ0FBQztTQUNkO2FBQU0sSUFBSSxjQUFjLElBQUksY0FBYyxDQUFDLFlBQVksRUFBRTtZQUN6RCxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUM7Z0JBQzFCLFlBQVksRUFBRSxjQUFjLENBQUMsWUFBWTthQUMvQixDQUFDLENBQUM7U0FDYjthQUFNO1lBQ04sT0FBTyxNQUFNLENBQUM7U0FDZDtJQUNGLENBQUM7O3NIQWhDVyx5QkFBeUI7MEhBQXpCLHlCQUF5QixjQUZ6QixNQUFNOzJGQUVOLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb24vYWN0aW9uJztcclxuaW1wb3J0IHsgR2FtZSB9IGZyb20gJy4uLy4uL21vZGVscy9nYW1lL2dhbWUnO1xyXG5pbXBvcnQgeyBUdXJuIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dhbWUvdHVybic7XHJcbmltcG9ydCB7IEFsbENhcmRzU2VydmljZSB9IGZyb20gJy4uL2FsbC1jYXJkcy5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmVQbGF5ZXJQYXJzZXJTZXJ2aWNlIHtcclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGFsbENhcmRzOiBBbGxDYXJkc1NlcnZpY2UpIHt9XHJcblxyXG5cdHB1YmxpYyBwYXJzZUFjdGl2ZVBsYXllckZvckxhc3RUdXJuKGdhbWU6IEdhbWUpOiBHYW1lIHtcclxuXHRcdGxldCB0dXJucyA9IGdhbWUudHVybnM7XHJcblx0XHRjb25zdCBudW1iZXJPZlR1cm5zID0gdHVybnMuc2l6ZTtcclxuXHRcdGNvbnN0IHR1cm4gPSBnYW1lLnR1cm5zLmdldChudW1iZXJPZlR1cm5zIC0gMSk7XHJcblx0XHRjb25zdCBlbnJpY2hlZFR1cm4gPSB0aGlzLmVucmljaFR1cm4odHVybik7XHJcblx0XHR0dXJucyA9IHR1cm5zLnNldChudW1iZXJPZlR1cm5zIC0gMSwgZW5yaWNoZWRUdXJuKTtcclxuXHRcdHJldHVybiBHYW1lLmNyZWF0ZUdhbWUoZ2FtZSwgeyB0dXJucyB9IGFzIEdhbWUpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBlbnJpY2hUdXJuKHR1cm46IFR1cm4pOiBUdXJuIHtcclxuXHRcdGNvbnN0IG5ld0FjdGlvbnMgPSBbXTtcclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdHVybi5hY3Rpb25zLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdGNvbnN0IHByZXZpb3VzQWN0aW9uID0gaSA9PT0gMCA/IG51bGwgOiBuZXdBY3Rpb25zW2kgLSAxXTtcclxuXHRcdFx0Y29uc3QgbmV3QWN0aW9uID0gdGhpcy5lbnJpY2hBY3Rpb24odHVybi5hY3Rpb25zW2ldLCBwcmV2aW91c0FjdGlvbik7XHJcblx0XHRcdG5ld0FjdGlvbnMucHVzaChuZXdBY3Rpb24pO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHR1cm4udXBkYXRlKHsgYWN0aW9uczogbmV3QWN0aW9ucyBhcyByZWFkb25seSBBY3Rpb25bXSB9IGFzIFR1cm4pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBlbnJpY2hBY3Rpb24oYWN0aW9uOiBBY3Rpb24sIHByZXZpb3VzQWN0aW9uOiBBY3Rpb24pOiBBY3Rpb24ge1xyXG5cdFx0aWYgKGFjdGlvbi5hY3RpdmVQbGF5ZXIpIHtcclxuXHRcdFx0cmV0dXJuIGFjdGlvbjtcclxuXHRcdH0gZWxzZSBpZiAocHJldmlvdXNBY3Rpb24gJiYgcHJldmlvdXNBY3Rpb24uYWN0aXZlUGxheWVyKSB7XHJcblx0XHRcdHJldHVybiBhY3Rpb24udXBkYXRlQWN0aW9uKHtcclxuXHRcdFx0XHRhY3RpdmVQbGF5ZXI6IHByZXZpb3VzQWN0aW9uLmFjdGl2ZVBsYXllcixcclxuXHRcdFx0fSBhcyBBY3Rpb24pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmV0dXJuIGFjdGlvbjtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl19