@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
JavaScript
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