@firestone-hs/replay-parser
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.9.
44 lines • 6.74 kB
JavaScript
import { Injectable } from '@angular/core';
import { CardType } from '@firestone-hs/reference-data';
import { Game } from '../../models/game/game';
import { GameHepler } from '../../models/game/game-helper';
import * as i0 from "@angular/core";
export class GameInitializerService {
initializePlayers(game, entities) {
const players = entities
.valueSeq()
.toArray()
.filter((entity) => entity.getCardType() === CardType.PLAYER)
.map(entity => entity);
let player1 = players.find(player => player.isMainPlayer);
let player2 = players.find(player => !player.isMainPlayer);
// console.debug('[game-parser] found players', player1, player2, entities.valueSeq());
if (!player1) {
const firstPlayerHand = GameHepler.getPlayerHand(entities, players[0].playerId);
if (
// All game modes known today have the main player have at least 3 cards in hand
firstPlayerHand.length < 3 ||
!firstPlayerHand[0].isRevealed() ||
!firstPlayerHand[1].isRevealed() ||
!firstPlayerHand[2].isRevealed()) {
[player1, player2] = [player2, player1];
}
// AI trick
if (player1.accountHi === '0' && player1.accountLo === '0') {
[player1, player2] = [player2, player1];
}
}
return Game.createGame(game, {
players: [player1, player2],
});
}
}
GameInitializerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: GameInitializerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
GameInitializerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: GameInitializerService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: GameInitializerService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtZS1pbml0aWFsaXplci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwbGF5LXBhcnNlci9zcmMvbGliL3NlcnZpY2VzL2dhbWVwaXBlbGluZS9nYW1lLWluaXRpYWxpemVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHeEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFNM0QsTUFBTSxPQUFPLHNCQUFzQjtJQUMzQixpQkFBaUIsQ0FBQyxJQUFVLEVBQUUsUUFBNkI7UUFDakUsTUFBTSxPQUFPLEdBQW1CLFFBQVE7YUFDdEMsUUFBUSxFQUFFO2FBQ1YsT0FBTyxFQUFFO2FBQ1QsTUFBTSxDQUFDLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEtBQUssUUFBUSxDQUFDLE1BQU0sQ0FBQzthQUNwRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFzQixDQUFDLENBQUM7UUFDeEMsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxRCxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsdUZBQXVGO1FBQ3ZGLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDYixNQUFNLGVBQWUsR0FBc0IsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25HO1lBQ0MsZ0ZBQWdGO1lBQ2hGLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFDMUIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFO2dCQUNoQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUU7Z0JBQ2hDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUMvQjtnQkFDRCxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQzthQUN4QztZQUVELFdBQVc7WUFDWCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssR0FBRyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssR0FBRyxFQUFFO2dCQUMzRCxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQzthQUN4QztTQUNEO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtZQUM1QixPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUE0QjtTQUM5QyxDQUFDLENBQUM7SUFDWixDQUFDOzttSEE5Qlcsc0JBQXNCO3VIQUF0QixzQkFBc0IsY0FGdEIsTUFBTTsyRkFFTixzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDYXJkVHlwZSB9IGZyb20gJ0BmaXJlc3RvbmUtaHMvcmVmZXJlbmNlLWRhdGEnO1xyXG5pbXBvcnQgeyBNYXAgfSBmcm9tICdpbW11dGFibGUnO1xyXG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ2FtZS9lbnRpdHknO1xyXG5pbXBvcnQgeyBHYW1lIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dhbWUvZ2FtZSc7XHJcbmltcG9ydCB7IEdhbWVIZXBsZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ2FtZS9nYW1lLWhlbHBlcic7XHJcbmltcG9ydCB7IFBsYXllckVudGl0eSB9IGZyb20gJy4uLy4uL21vZGVscy9nYW1lL3BsYXllci1lbnRpdHknO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdhbWVJbml0aWFsaXplclNlcnZpY2Uge1xyXG5cdHB1YmxpYyBpbml0aWFsaXplUGxheWVycyhnYW1lOiBHYW1lLCBlbnRpdGllczogTWFwPG51bWJlciwgRW50aXR5Pik6IEdhbWUge1xyXG5cdFx0Y29uc3QgcGxheWVyczogUGxheWVyRW50aXR5W10gPSBlbnRpdGllc1xyXG5cdFx0XHQudmFsdWVTZXEoKVxyXG5cdFx0XHQudG9BcnJheSgpXHJcblx0XHRcdC5maWx0ZXIoKGVudGl0eTogRW50aXR5KSA9PiBlbnRpdHkuZ2V0Q2FyZFR5cGUoKSA9PT0gQ2FyZFR5cGUuUExBWUVSKVxyXG5cdFx0XHQubWFwKGVudGl0eSA9PiBlbnRpdHkgYXMgUGxheWVyRW50aXR5KTtcclxuXHRcdGxldCBwbGF5ZXIxID0gcGxheWVycy5maW5kKHBsYXllciA9PiBwbGF5ZXIuaXNNYWluUGxheWVyKTtcclxuXHRcdGxldCBwbGF5ZXIyID0gcGxheWVycy5maW5kKHBsYXllciA9PiAhcGxheWVyLmlzTWFpblBsYXllcik7XHJcblx0XHQvLyBjb25zb2xlLmRlYnVnKCdbZ2FtZS1wYXJzZXJdIGZvdW5kIHBsYXllcnMnLCBwbGF5ZXIxLCBwbGF5ZXIyLCBlbnRpdGllcy52YWx1ZVNlcSgpKTtcclxuXHRcdGlmICghcGxheWVyMSkge1xyXG5cdFx0XHRjb25zdCBmaXJzdFBsYXllckhhbmQ6IHJlYWRvbmx5IEVudGl0eVtdID0gR2FtZUhlcGxlci5nZXRQbGF5ZXJIYW5kKGVudGl0aWVzLCBwbGF5ZXJzWzBdLnBsYXllcklkKTtcclxuXHRcdFx0aWYgKFxyXG5cdFx0XHRcdC8vIEFsbCBnYW1lIG1vZGVzIGtub3duIHRvZGF5IGhhdmUgdGhlIG1haW4gcGxheWVyIGhhdmUgYXQgbGVhc3QgMyBjYXJkcyBpbiBoYW5kXHJcblx0XHRcdFx0Zmlyc3RQbGF5ZXJIYW5kLmxlbmd0aCA8IDMgfHxcclxuXHRcdFx0XHQhZmlyc3RQbGF5ZXJIYW5kWzBdLmlzUmV2ZWFsZWQoKSB8fFxyXG5cdFx0XHRcdCFmaXJzdFBsYXllckhhbmRbMV0uaXNSZXZlYWxlZCgpIHx8XHJcblx0XHRcdFx0IWZpcnN0UGxheWVySGFuZFsyXS5pc1JldmVhbGVkKClcclxuXHRcdFx0KSB7XHJcblx0XHRcdFx0W3BsYXllcjEsIHBsYXllcjJdID0gW3BsYXllcjIsIHBsYXllcjFdO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBBSSB0cmlja1xyXG5cdFx0XHRpZiAocGxheWVyMS5hY2NvdW50SGkgPT09ICcwJyAmJiBwbGF5ZXIxLmFjY291bnRMbyA9PT0gJzAnKSB7XHJcblx0XHRcdFx0W3BsYXllcjEsIHBsYXllcjJdID0gW3BsYXllcjIsIHBsYXllcjFdO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gR2FtZS5jcmVhdGVHYW1lKGdhbWUsIHtcclxuXHRcdFx0cGxheWVyczogW3BsYXllcjEsIHBsYXllcjJdIGFzIHJlYWRvbmx5IFBsYXllckVudGl0eVtdLFxyXG5cdFx0fSBhcyBHYW1lKTtcclxuXHR9XHJcbn1cclxuIl19