UNPKG

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