bp-prism-game
Version:
The BP Prism Game
137 lines • 33.7 kB
JavaScript
import { Component, Inject } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "../service/display-dialog.service";
import * as i2 from "../service/game-cookie.service";
import * as i3 from "../gameboard/gameboard.component";
import * as i4 from "../aliens/alien/test-component/alien.component";
import * as i5 from "../text/letter/test-component/letter.component";
import * as i6 from "../gunner/test-component/main-gunner.component";
import * as i7 from "../missile/test-component/missile.component";
import * as i8 from "../text/number/test-component/number.component";
import * as i9 from "../base/test-component/base.component";
import * as i10 from "./prism-blast/test-component/prism-blast.component";
import * as i11 from "./prism-blast-icon/test-component/prism-blast-icon.component";
import * as i12 from "../scenery/test-component/scenery.component";
import * as i13 from "@angular/common";
/**
* The prism component
*/
export class PrismComponent {
/**
* Constructor
*
* @param displayDialogService The MatDialog from DI
* @param gameConfiguration The Game Configuration
* @param gameCookie The Game Cookie Service
*/
constructor(displayDialogService, gameConfiguration, gameCookieService) {
this.displayDialogService = displayDialogService;
this.gameCookieService = gameCookieService;
this.isDebug = gameConfiguration.isDebug;
this.debugAssets = {
alien: true,
letter: false,
mainGunner: false,
missile: false,
number: false,
prismBase: false,
prismBlast: false,
prismBlastIcon: false,
scenery: false
};
this.assets = [
{
key: 'alien',
name: 'Alien'
},
{
key: 'letter',
name: 'Letter'
},
{
key: 'mainGunner',
name: 'Main Gunner'
},
{
key: 'missile',
name: 'Missile'
},
{
key: 'number',
name: 'Numbers'
},
{
key: 'prismBase',
name: 'Base'
},
{
key: 'prismBlast',
name: 'P-Blast'
},
{
key: 'prismBlastIcon',
name: 'Icon'
},
{
key: 'scenery',
name: 'Scenery'
}
];
}
/**
* On Init
*/
ngOnInit() {
this.toggleAssets(this.gameCookieService.getDebugData());
}
/**
* toggleAssets
*
* @param asset The asset to display
*/
toggleAssets(asset) {
Object.keys(this.debugAssets).map((key) => {
if (key === asset) {
this.debugAssets[key] = true;
this.gameCookieService.setDebugData(key);
}
else {
this.debugAssets[key] = false;
}
});
}
/**
* Open the game over dialog
*/
openDisplayGameOverDialog() {
this.displayDialogService.displayGameOver({
highScore: 100,
level: 4
});
}
/**
* Open the next level dialog
*/
openDisplayNextLevelDialog() {
this.displayDialogService.displayNextLevel({
highScore: 100,
level: 400
});
}
/**
* Open the game paused
*/
openDisplayGamePausedDialog() {
this.displayDialogService.displayGamePaused();
}
}
PrismComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: PrismComponent, deps: [{ token: i1.DisplayDialogService }, { token: 'GameConfigurationData' }, { token: i2.GameCookieService }], target: i0.ɵɵFactoryTarget.Component });
PrismComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: PrismComponent, selector: "bp-prism-game", ngImport: i0, template: "<div class=\"game-container\" [class.debug]=\"isDebug\">\n <div *ngIf=\"!isDebug\">\n <bp-prism-gameboard></bp-prism-gameboard>\n </div>\n <div *ngIf=\"isDebug\" class=\"debug-container\">\n <div *ngIf=\"debugAssets.alien\">\n <bp-prism-alien></bp-prism-alien>\n </div>\n <div *ngIf=\"debugAssets.letter\">\n <bp-prism-letter></bp-prism-letter>\n </div>\n <div *ngIf=\"debugAssets.mainGunner\">\n <bp-prism-main-gunner></bp-prism-main-gunner>\n </div>\n <div *ngIf=\"debugAssets.missile\">\n <bp-prism-missile></bp-prism-missile>\n </div>\n <div *ngIf=\"debugAssets.number\">\n <bp-prism-number></bp-prism-number>\n </div>\n <div *ngIf=\"debugAssets.prismBase\">\n <bp-prism-base></bp-prism-base>\n </div>\n <div *ngIf=\"debugAssets.prismBlast\">\n <bp-prism-blast></bp-prism-blast>\n </div>\n <div *ngIf=\"debugAssets.prismBlastIcon\">\n <bp-prism-blast-icon></bp-prism-blast-icon>\n </div>\n <div *ngIf=\"debugAssets.scenery\">\n <bp-prism-scenery></bp-prism-scenery>\n </div>\n <div class=\"button-container\">\n <div *ngFor=\"let asset of assets\">\n <button (click)=\"toggleAssets(asset.key)\" class=\"animation-button button\">\n {{ asset.name }}\n </button>\n </div>\n <div>\n <button (click)=\"openDisplayGameOverDialog()\" class=\"animation-button button\">Game Over</button>\n </div>\n <div>\n <button (click)=\"openDisplayGamePausedDialog()\" class=\"animation-button button\">Game Paused</button>\n </div>\n <div>\n <button (click)=\"openDisplayNextLevelDialog()\" class=\"animation-button button\">Next Level</button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["*{font-family:\"'Press Start 2P', cursive\"}.game-container{overflow-x:hidden;overflow-y:hidden}.game-container.debug{height:1300px}.game-container .debug-container{margin-top:10px}.game-container .debug-container .button-container{flex-wrap:wrap;position:relative;margin-top:25px;display:flex;flex-direction:row;justify-content:space-evenly}.game-container .debug-container .button-container .button{font-family:\"'Press Start 2P', cursive\";background-color:#4caf50;font-size:16px;padding:15px 30px;cursor:pointer;width:200px;height:75px;border:1px solid black;margin-top:10px}\n", "@font-face{font-family:\"Press Start 2P\";src:local(\"Press Start 2P Regular\"),local(\"PressStart2P-Regular\"),url(data:application/font-woff2;charset=utf-8;base64,d09GMgABAAAAABL8AA8AAAAAR5wAABKgAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGjAbMByCXgZgAINyEQgK8FTSaQuDRAABNgIkA4NMBCAFhzQHhFIb6DVlB0j1OMBS3oOIStEbs///lJwcVrzGcO0gohLEHMciiDCCNWiZga0ybSEUYTQOjKBp8TlszsDRd8qatXl30Xt0dZGFyR0VhDKwlbtl+rsFCw9E1ndeYJts/7Rwb0VsxMqWlcjjwTESz/Uhu/w3s3tkoImp44dQQhWoEmT3uyRmptouSDkzWEA8v/926JKu9Hoinn6s7ft3mIeGlw7Tqd7Eo2jFQxIvjVBIJpV2iaObTzhWY21NtGgrht4pMK4WUj4bLygT/Q+QLxy+3lH/6/kbuIdDIr9DjrJIjo9Js6RMX+Ek7BOTZkmp9z4tURFRVfV0qHPDH7Ztb6Jaoa0hL3Yuab2G3sfzr6Wv9E6y5ivp+q5VLtBjQDxGoSE0AP17b3df7larje+sczkrAtJ3KfW0J4+K23etKKUj85TaoWG4S4aXClBwCA2hgaAe+6X9oin20NbUJrdFggQpIhmRGIM07/p+w7ZpX1lG1jjQxpsCQAB48qDEAPB4iP1/j9Y/Bahj5YCAN0/xqAWIhRajlniNeOP9nxC4ffy2UiHC0NG8khooVzotY3DEAzAzA5kG753zjHS5MnmXkiIjmTUM6UmM0+V4ivu/H7xj6Ff2/k44rxzdI2AAggBI/LHAk9Jz5UMIoLwU4AFET5rZFO3DMafUc0awsQCHyIpUzTk0xJGJEOjNhqCkGEpIaSGOjqNFm/WNCN5ickqCMnAAeVLMLeXg5iq8k6WRXZR2l3pB981BzsGZt2+VilCBr9TIJgKgx6UBQDF+VjKDqNwAAIH8jiIfMnu8KhfXKHoN3HcA4GrExhB2AUD/yZUMB8WTuyIA4DcOKed49y9PBIanBigsMEN8Uk0vlTv0JX3N9MyZuTMv5seSWA5+8Ue8PDeTrdTgGIsVmN3cXVXjdcyRuc448XffAvPns5u2ME1r+jG1p17vz8IpOAnH4DBsgy3Q/T7k3dm/8F3B27sUiHwFF1AOlh0UdnIDqINQdPcU91Exo/4bRijjQipNN0zLdlzPD8IoTtIsL8qqbtoOQIQJZVxIpY11PsSUS219zLXPfd/PvgvWQ4crFM+WiuVqpdZoNdudXrc/GE2MJ6en5ucWFiGc7Rt6OHvv5MgL+zDs5xDBwiaA1T3UHw2kcYC1/UfdS1fE1m7v7B4e7e3PWHHxe3YO2H5+APOZyeP0+QPeSBThy0xq9e62AHjaAUhBC/6ADHLoGoOev6A+hgHsi1za8q5ZNMqjYlWZMq8g5BHDUtISpWJsRoRTJVa0I0Z9WTkSqVKsPz4dXjvHtdIhLnvptULC0u5BVuyAMTKJQ90YKRgTnWiGkmqSEqKmrVhRYgKk3TChbUW6qEoEcveWzhYSTL2HNpg5E/mqQ99VVDgv3RGT5Xm3czhuL9rhXd1a27/slQ0hiY6jd79aOZCtjoRhrb16WVvQKrW4Gzxjxir28IMiz/qUDysIWp7Qjfwe4zUd7aJsVQWQyRLUKHKBWy8WvEVS3XMS56V3wWdOD+F8uv9dTwImKr/PdbmWcwQvEfAajyuVjpxN2pOVcWi3l8wEL/m9PpdoUIE6+PKX81PATmgeO0B1sGEH+apz54fdmSJz37Ahf56jLw9unPE5dMK0+7TF9V8CCTfR9yfNsUI4tUzFFB2nSn8KObjdDidULp4IJhswxxYQrYZd6NvCnU9MDX+ReLnMTml1ZE9r0kPw3N2gR+sjEsYmISpk5l1Is3YNaJKonzep7VcsT1nUkb4pHwKZAykaKoCPF0PomEhvIWXenoZvx6wOK10p1l2tThXy8P1eUwdsvSqQWvoBMtsgHQUJaGtIBsuhawdPTZSxYprWuw4dzr1VGUtDIFXqroMMiYsFx8WiT3dcWKo7mPULyqVWA9r0YtRJLbiWvjnL+rc4RdggbNQlQAAa2d0mab66MHDpt1CdwbkQCbS7PSDZMz7FrOQq1ecaS0JltdAlDRyAXqs6A0XbGpwHgkp6urUwWAbrFM3uyMvNKl4MlCUHSyPAm91waDEJ5YYQHuJM20KWRQsv7Hka3GphlS2XDKqOKBEUGS1e0kc1o24IIAfHlDIyBxXJJeggB3i8atVgCO0dDOZHJWYjVLAjj9q7vVsEnrhK7EhLuBzBXmMgETcE1cmaCivPKoJvfpFlyI5MpXB4EC+Eg/Ym04TxxC5NlsYktdoYQUel8bFsEl7H4Z6sCwb/8bk4tXWFXPKjqTbRnd3nLWp9OxIAplfKXgGhNlrD4b5JLZ6pUu4ArgVaM6ea5xDWBDGozpzFA7ngGtYc4HaAwRiGUvcvSe6RAAw3ZWkVOFgvKF6IUilMI9IdqQU4Q4XRdHHfsffQwp19UCJI0jWsrT35oUx06xPrhG2q6ME3UO0lccZUsTECQxJDRxTDKl3LIHr/abToshldfQxj6OWtRsFnifDCsG6t3kBo4NmBJmaUVTclyIQAJLjnr0B6Z8YFMn9k9ygp7RrxH6vhwbJNAeKMUD659t8gFQJMSwe/CObHPFvqHGFUNRf+srEf3TXKBrZvgkci9irBmcD/tXagTGCXcNhC+O59uLpnfsyoqLS1287ERwm8faeVOm8WcD78lZ6YB2y98ZLlM9rUrd2LQNl2IVd4TrsvgQ960y7usYe0hTPapWjqrl+X7xFeBNT+1ZdJJW+FxtW7XNwtcNzwag+RVejmJh9emlIZKiiNciK8IUOM3UjJ7cBUNXGPXS2lh+hwpgoH6VsHROcvEir3rXYp4LwiCZw1vHlCb5R1Mhb5dSnO2mnoGZoXF1WeWGWmziJ1JUU4qPr0niJSlNBC1ckKmJfWbXwUwutITzEmjwgpwaBu4dRPftj/N8ACRndak/FAgKgL70PXWx9vzkY2+m45TsIkL07aopDNogh0SRbSZSO9ztFWQj7nWLgbu6C+T7KjDqZ6gEnRwgMx0kLZwyybQOvQA0w0Tx/5JBr/cYZdSWOTjwDF6NoXkyj3VjHNGQINvBjZsJJ3wFaAQmoZWZYpAiaWOFnnhdURAvWkUzwi0bgzZAXyoDUEqHcW0piELWOwqhw3evTxDIWrN2ISqRQQELAM26S4Hlr5HU/HxJCChDBJkukcAW8VAT0gpTZTKNHgzDOr41GQejO4gzAnkWpwFGRC3LbR1xzKCHu6V5iFtgLpO8KQYmYeFxhL2d88sdiPj/v0kBzclQcyTsWf2MdE9ID8mXXWjrCK+5E2un3niveisRnriq1uHYMjjiiIE0KdfgMo1cGmkUrTbO05g2sv3GvsRYqv/aEw67TrdOpT5VzFA6A1Ay9cKoDfwbTJdDWPRNWQsTyjm7rHbIsKFkoO/ZLCvsYfxYs3whSC8aLI4KvVw77s3n4zHgipacJnCSbF9ErzS5pi8cCWvUYzOPd2zhJ/GPCzShOE3xYlcO3PyadXjT3OkhphAXFXSvheTNSURTFVVAHoJmyIrkjEKoQwFG005T3AXd95vN0Dm3mBs2xgFTl+Q5rsAjntGhpzobd6B7NzRfNVe10DoNV947SYdocRRbGvcmxTVxoa6zqwV7mAnw5D1GETt2zH8+TvQBV5n7g/2aWht9yyNYL9tOBtAg8HFCYE1mNwT2EB2Fu8TIhT7vVRA4aXznk6pTZNgyiostwI6KeFU7LilpA+3B4GJyBwWM2pbFjHvsJ7GuOoakjmFtjY4LbT9l229+E6F7LDuWztLn37Ixk8j5lBVK3wLsi6/AfAuoj49lMkVSTPE9kpGd0LrEUSJIAA0pYlAxAMd/NOFwoJDdXFi0zOWDB/TFJpVfWVBWOQbtrJUb0clf3i+WPrDoYleTVtVOE0m6y5dHtDrUQwoALtUR3eXSdDMNxXfejYFtvLblrlJwwHK/EiWPJak2WK58nhNoLjaZUGXAuo2eoWwFEfa/DS4IiXqrFqGyc3Hri9xQ2i2C5/s5vzBM0y7w3MDswM7Y2RGBqrFMgx7Oic+0IzsmVxazTs0Rcfj2O34S/RV9P2iHoBulKIYBDfZFeLS5d9rSyfJdSlgh2hdMr2OUR3KnlPnOAxTw1J8LM2ZwnFqvZtZJlxx48swbCt2r1kfHuD7VbH12aY88ICtVsKxKt/1rkalBAMtx/oomCDPYbkUoLcDbKCjvuq9STDgtjXGDqW5VK6hcGeOFizj6CqLOIqkWx4ws2EPMDNsx+a6aS208O9xL0RaFXo9BAdU0pnE+LiSY3KSoJARYxdnziTZMpiaD/48Iii984DaQ5yvecxAFssWy/hbtimc+pL8k5yopImJbyHq/a8yzll7roOzXmxmAc3tYXScTkesMcD2I91Z63eI1/9JbwUqk6sxc9KRgrwWMANeC1Nn9uGywTspmU8q+lZmCqMgAS66bgHAGjQKsuJ3DQAjR54m5jLzZanTlbde0+rnf48ZWA8Tl2g2wAGyBwHQn5R2+NjreBgxblsNFbuTwmhbAJHsz/rAoavLO41xtvzYGh3nLJBkAPjuxBJDRH30HBeu8UgCixFNCyQ2/K+8QW7/e0+fO+46RNW0eyLro9DjTgpJNM5G8Qy0lTdOumsw0fqPEi96Fp+H0cMwNo7jxzYmnNfMZmdPly2poq2WPeGmgPq6GLxPN4SlKHnxpbOiuLXQuX1UqP1gjo8Ba6SlU1OAmRgpzu1sTDXJPuM38To8q04L2Nwype872wwUgAgZlp8dkQf9z8TMCbMkYk7XHCu35d7ZZAeo4kZKhxIS8iE5LTj3LOivHZrh9J8p3zLZCjwcip5DRiKnWnIfL38kJhMtRwjgU5+VrmqKlg90z7jds/B8DKdkFLvH3S+7oH8alDZlbg4S1UX5tCMDSB2O6KulzA4Kv0g71BQd0TFKw3hSXinb7Nl0BXrXsQNcvCk8mo9Oxiex5YbzxVN/k783oHTZIWw90yIZwvriqdGTsXnT8IepT7YyFCOJgA9Z0ByIEYVsTxR/ksak2Bh7oKvp4vniU06MW1zBFrtehdz0kkXyQxjBmyedV6dMYeE8aFxteuwsUFa6FllTDlqd0pzRZwG6cFrfWMbp8G8XzjfbM+5FXepv5oErsil64Xx6c7XAWbuim6f8sGIMXfo3JiqGkp337hTSjgechb6OBG/2z17jomDiGm+Glb1FU0ienuRyiweLWggDzmFUvUEUjZo7sVTHwhOFPMkNsqFB9wymkE0v9fmtwE8T7q58NYO7xu4b83vnFvl5uSxDlG+kOQgRIdO4jgzxjSHjKLs2t/lhOdwqva1AWDCprv3D4S4R7AbY4TCbfKF7tBe65T45Q4zzIqD31ayyuWqji+F6XS7ST9H9C1O4/iK6kGuvkQ/fN57Hx7Ee3745b/vvn/bH/X+9/+gbemhOAmIpUvuQWusDvKQux9JDVNsKg6QcmksQSADU04cGRLR7hFoZ2c7xUEfG+wkuTYGMvLjB/ePcI6AhGhnW5qzEAiJXcwVEEwXieNpSl1zjErS+CS+HcLoRPmva2MggA/iyLgSoTJUWgs4ByAIQO0OopZHvVbzhDILeUqUgzzHI/fyPGNxywsoylheSF9WvbySc3kEDqk2AV6ClCdcU5SnlNnIc9KyMc8Lyb+8gHOJyQsFlLbPRymm7JBt3ITZTAb1G2DBRIkQKQpTQ9i9b6eCSS8zM6aaRSdTKVWRM3fcEJLdKatnsrIYwNJU+s0H6Daux2wZ5hg3ple0BGHuk1kECsHYDdaImKp+3F5B1xYv7cHkqdDu0jKdRsez517mcV6AhQH4i1HN1svljRH6hEEFrh+nrrmG1n30zM4gIwmiMwEbKhBTUdB1AHoX+KgAQzOHT9FIOqCkRNNb2s9qpIiCSOu1gWhhIsCVJsvWqEqu5GbJQKNjaBte9LOigchAJveGWs9C2203vonGlkwrRQ24ddg2ycEdaWUDVsDAxUHsIww6eaR4FFe3mJAkfBmZdR9RdwJHZmGdRyPCjpjbz1q/XJ4SIIDkf8KKnn2ElKmyLiW4BQ86s1QUK/vBhgRNweHvlYhhzr8pcgpKKmoaWjp6BkYOHDlx5sKVG3ceGE9evPnw5cdfgEBBgoUIFSb8Xv2PES1GrDjxEiRKkixFqjTpMmTKki1Hrjz5ChQqUqxEqTLlKlSqUq1GrTr1GjRq0qxFqzbtOnSGe6h7JmbzIh5ZeDil1ZXSjt0wCuak3lnGoVUPoSsNf379K2jbtqmDgMiHZBfZlh2H9uw78ITi1JFjXVSf/C6cOUfz4o0dAx0TGwtHDhcfj4CQmIiE1DMZBTklNZUpeVoaOnqv3s241NPP9evetYGhCZPWjIyts2pasCj+pUjTYl3kaUt7OtKJa65XP9m5ncg6NhjhZXp2v+mWrCATZuJ03h1kjUuivPgYnjn5tKJOk2ncbp2QAEYXZi0KImP5ktIaFn6kZ9wC) format(\"woff2\");font-weight:400;font-style:normal}\n"], components: [{ type: i3.GameboardComponent, selector: "bp-prism-gameboard" }, { type: i4.AlienComponent, selector: "bp-prism-alien" }, { type: i5.LetterComponent, selector: "bp-prism-letter" }, { type: i6.MainGunnerComponent, selector: "bp-prism-main-gunner" }, { type: i7.MissileComponent, selector: "bp-prism-missile" }, { type: i8.NumberComponent, selector: "bp-prism-number" }, { type: i9.BaseComponent, selector: "bp-prism-base" }, { type: i10.PrismBlastComponent, selector: "bp-prism-blast" }, { type: i11.PrismBlastIconComponent, selector: "bp-prism-blast-icon" }, { type: i12.SceneryComponent, selector: "bp-prism-scenery" }], directives: [{ type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: PrismComponent, decorators: [{
type: Component,
args: [{ selector: 'bp-prism-game', template: "<div class=\"game-container\" [class.debug]=\"isDebug\">\n <div *ngIf=\"!isDebug\">\n <bp-prism-gameboard></bp-prism-gameboard>\n </div>\n <div *ngIf=\"isDebug\" class=\"debug-container\">\n <div *ngIf=\"debugAssets.alien\">\n <bp-prism-alien></bp-prism-alien>\n </div>\n <div *ngIf=\"debugAssets.letter\">\n <bp-prism-letter></bp-prism-letter>\n </div>\n <div *ngIf=\"debugAssets.mainGunner\">\n <bp-prism-main-gunner></bp-prism-main-gunner>\n </div>\n <div *ngIf=\"debugAssets.missile\">\n <bp-prism-missile></bp-prism-missile>\n </div>\n <div *ngIf=\"debugAssets.number\">\n <bp-prism-number></bp-prism-number>\n </div>\n <div *ngIf=\"debugAssets.prismBase\">\n <bp-prism-base></bp-prism-base>\n </div>\n <div *ngIf=\"debugAssets.prismBlast\">\n <bp-prism-blast></bp-prism-blast>\n </div>\n <div *ngIf=\"debugAssets.prismBlastIcon\">\n <bp-prism-blast-icon></bp-prism-blast-icon>\n </div>\n <div *ngIf=\"debugAssets.scenery\">\n <bp-prism-scenery></bp-prism-scenery>\n </div>\n <div class=\"button-container\">\n <div *ngFor=\"let asset of assets\">\n <button (click)=\"toggleAssets(asset.key)\" class=\"animation-button button\">\n {{ asset.name }}\n </button>\n </div>\n <div>\n <button (click)=\"openDisplayGameOverDialog()\" class=\"animation-button button\">Game Over</button>\n </div>\n <div>\n <button (click)=\"openDisplayGamePausedDialog()\" class=\"animation-button button\">Game Paused</button>\n </div>\n <div>\n <button (click)=\"openDisplayNextLevelDialog()\" class=\"animation-button button\">Next Level</button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["*{font-family:\"'Press Start 2P', cursive\"}.game-container{overflow-x:hidden;overflow-y:hidden}.game-container.debug{height:1300px}.game-container .debug-container{margin-top:10px}.game-container .debug-container .button-container{flex-wrap:wrap;position:relative;margin-top:25px;display:flex;flex-direction:row;justify-content:space-evenly}.game-container .debug-container .button-container .button{font-family:\"'Press Start 2P', cursive\";background-color:#4caf50;font-size:16px;padding:15px 30px;cursor:pointer;width:200px;height:75px;border:1px solid black;margin-top:10px}\n", "@font-face{font-family:\"Press Start 2P\";src:local(\"Press Start 2P Regular\"),local(\"PressStart2P-Regular\"),url(data:application/font-woff2;charset=utf-8;base64,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) format(\"woff2\");font-weight:400;font-style:normal}\n"] }]
}], ctorParameters: function () { return [{ type: i1.DisplayDialogService }, { type: undefined, decorators: [{
type: Inject,
args: ['GameConfigurationData']
}] }, { type: i2.GameCookieService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpc20uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJpc20vc3JjL2xpYi9wcmlzbS9wcmlzbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmlzbS9zcmMvbGliL3ByaXNtL3ByaXNtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFRMUQ7O0dBRUc7QUFNSCxNQUFNLE9BQU8sY0FBYztJQWN6Qjs7Ozs7O09BTUc7SUFDSCxZQUNVLG9CQUEwQyxFQUNqQixpQkFBeUMsRUFDbEUsaUJBQW9DO1FBRnBDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFFMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUU1QyxJQUFJLENBQUMsT0FBTyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztRQUV6QyxJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2pCLEtBQUssRUFBRSxJQUFJO1lBQ1gsTUFBTSxFQUFFLEtBQUs7WUFDYixVQUFVLEVBQUUsS0FBSztZQUNqQixPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0sRUFBRSxLQUFLO1lBQ2IsU0FBUyxFQUFFLEtBQUs7WUFDaEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsY0FBYyxFQUFFLEtBQUs7WUFDckIsT0FBTyxFQUFFLEtBQUs7U0FDSyxDQUFDO1FBRXRCLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWjtnQkFDRSxHQUFHLEVBQUUsT0FBTztnQkFDWixJQUFJLEVBQUUsT0FBTzthQUNhO1lBQzVCO2dCQUNFLEdBQUcsRUFBRSxRQUFRO2dCQUNiLElBQUksRUFBRSxRQUFRO2FBQ1k7WUFDNUI7Z0JBQ0UsR0FBRyxFQUFFLFlBQVk7Z0JBQ2pCLElBQUksRUFBRSxhQUFhO2FBQ087WUFDNUI7Z0JBQ0UsR0FBRyxFQUFFLFNBQVM7Z0JBQ2QsSUFBSSxFQUFFLFNBQVM7YUFDVztZQUM1QjtnQkFDRSxHQUFHLEVBQUUsUUFBUTtnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNXO1lBQzVCO2dCQUNFLEdBQUcsRUFBRSxXQUFXO2dCQUNoQixJQUFJLEVBQUUsTUFBTTthQUNjO1lBQzVCO2dCQUNFLEdBQUcsRUFBRSxZQUFZO2dCQUNqQixJQUFJLEVBQUUsU0FBUzthQUNXO1lBQzVCO2dCQUNFLEdBQUcsRUFBRSxnQkFBZ0I7Z0JBQ3JCLElBQUksRUFBRSxNQUFNO2FBQ2M7WUFDNUI7Z0JBQ0UsR0FBRyxFQUFFLFNBQVM7Z0JBQ2QsSUFBSSxFQUFFLFNBQVM7YUFDVztTQUM3QixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsS0FBYTtRQUN4QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRTtZQUNoRCxJQUFJLEdBQUcsS0FBSyxLQUFLLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUM3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzFDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQy9CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCx5QkFBeUI7UUFDdkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQztZQUN4QyxTQUFTLEVBQUUsR0FBRztZQUNkLEtBQUssRUFBRSxDQUFDO1NBQ1EsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNILDBCQUEwQjtRQUN4QixJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUM7WUFDekMsU0FBUyxFQUFFLEdBQUc7WUFDZCxLQUFLLEVBQUUsR0FBRztTQUNNLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCwyQkFBMkI7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDaEQsQ0FBQzs7MkdBaElVLGNBQWMsc0RBdUJmLHVCQUF1QjsrRkF2QnRCLGNBQWMscURDaEIzQixxdURBa0RBOzJGRGxDYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLGVBQWU7OzBCQTJCdEIsTUFBTTsyQkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHYW1lQ29uZmlndXJhdGlvbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvZ2FtZS1jb25maWd1cmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IERlYnVnQXNzZXRzTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9kZWJ1Zy1hc3NldHMubW9kZWwnO1xuaW1wb3J0IHsgQXNzZXRDb25maWd1cmF0aW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9hc3NldC1jb25maWd1cmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IERpc3BsYXlEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9kaXNwbGF5LWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IEdhbWVEYXRhTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9nYW1lLWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgR2FtZUNvb2tpZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2dhbWUtY29va2llLnNlcnZpY2UnO1xuXG4vKipcbiAqIFRoZSBwcmlzbSBjb21wb25lbnRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnAtcHJpc20tZ2FtZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmlzbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ByaXNtLmNvbXBvbmVudC5zY3NzJywgJy4uL2ZvbnRzL3ByZXNzLXN0YXJ0LTJwLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcmlzbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBUaGUgZGVidWcgdmFyaWFibGVcbiAgICovXG4gIGlzRGVidWc6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEZWJ1ZyBBc3NldHNcbiAgICovXG4gIGRlYnVnQXNzZXRzOiBEZWJ1Z0Fzc2V0c01vZGVsO1xuICAvKipcbiAgICogRGVidWcgQXNzZXRzXG4gICAqL1xuICBhc3NldHM6IEFzc2V0Q29uZmlndXJhdGlvbk1vZGVsW107XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqXG4gICAqIEBwYXJhbSBkaXNwbGF5RGlhbG9nU2VydmljZSBUaGUgTWF0RGlhbG9nIGZyb20gRElcbiAgICogQHBhcmFtIGdhbWVDb25maWd1cmF0aW9uIFRoZSBHYW1lIENvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIGdhbWVDb29raWUgVGhlIEdhbWUgQ29va2llIFNlcnZpY2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlzcGxheURpYWxvZ1NlcnZpY2U6IERpc3BsYXlEaWFsb2dTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ0dhbWVDb25maWd1cmF0aW9uRGF0YScpIGdhbWVDb25maWd1cmF0aW9uOiBHYW1lQ29uZmlndXJhdGlvbk1vZGVsLFxuICAgIHByaXZhdGUgZ2FtZUNvb2tpZVNlcnZpY2U6IEdhbWVDb29raWVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaXNEZWJ1ZyA9IGdhbWVDb25maWd1cmF0aW9uLmlzRGVidWc7XG5cbiAgICB0aGlzLmRlYnVnQXNzZXRzID0ge1xuICAgICAgYWxpZW46IHRydWUsXG4gICAgICBsZXR0ZXI6IGZhbHNlLFxuICAgICAgbWFpbkd1bm5lcjogZmFsc2UsXG4gICAgICBtaXNzaWxlOiBmYWxzZSxcbiAgICAgIG51bWJlcjogZmFsc2UsXG4gICAgICBwcmlzbUJhc2U6IGZhbHNlLFxuICAgICAgcHJpc21CbGFzdDogZmFsc2UsXG4gICAgICBwcmlzbUJsYXN0SWNvbjogZmFsc2UsXG4gICAgICBzY2VuZXJ5OiBmYWxzZVxuICAgIH0gYXMgRGVidWdBc3NldHNNb2RlbDtcblxuICAgIHRoaXMuYXNzZXRzID0gW1xuICAgICAge1xuICAgICAgICBrZXk6ICdhbGllbicsXG4gICAgICAgIG5hbWU6ICdBbGllbidcbiAgICAgIH0gYXMgQXNzZXRDb25maWd1cmF0aW9uTW9kZWwsXG4gICAgICB7XG4gICAgICAgIGtleTogJ2xldHRlcicsXG4gICAgICAgIG5hbWU6ICdMZXR0ZXInXG4gICAgICB9IGFzIEFzc2V0Q29uZmlndXJhdGlvbk1vZGVsLFxuICAgICAge1xuICAgICAgICBrZXk6ICdtYWluR3VubmVyJyxcbiAgICAgICAgbmFtZTogJ01haW4gR3VubmVyJ1xuICAgICAgfSBhcyBBc3NldENvbmZpZ3VyYXRpb25Nb2RlbCxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnbWlzc2lsZScsXG4gICAgICAgIG5hbWU6ICdNaXNzaWxlJ1xuICAgICAgfSBhcyBBc3NldENvbmZpZ3VyYXRpb25Nb2RlbCxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnbnVtYmVyJyxcbiAgICAgICAgbmFtZTogJ051bWJlcnMnXG4gICAgICB9IGFzIEFzc2V0Q29uZmlndXJhdGlvbk1vZGVsLFxuICAgICAge1xuICAgICAgICBrZXk6ICdwcmlzbUJhc2UnLFxuICAgICAgICBuYW1lOiAnQmFzZSdcbiAgICAgIH0gYXMgQXNzZXRDb25maWd1cmF0aW9uTW9kZWwsXG4gICAgICB7XG4gICAgICAgIGtleTogJ3ByaXNtQmxhc3QnLFxuICAgICAgICBuYW1lOiAnUC1CbGFzdCdcbiAgICAgIH0gYXMgQXNzZXRDb25maWd1cmF0aW9uTW9kZWwsXG4gICAgICB7XG4gICAgICAgIGtleTogJ3ByaXNtQmxhc3RJY29uJyxcbiAgICAgICAgbmFtZTogJ0ljb24nXG4gICAgICB9IGFzIEFzc2V0Q29uZmlndXJhdGlvbk1vZGVsLFxuICAgICAge1xuICAgICAgICBrZXk6ICdzY2VuZXJ5JyxcbiAgICAgICAgbmFtZTogJ1NjZW5lcnknXG4gICAgICB9IGFzIEFzc2V0Q29uZmlndXJhdGlvbk1vZGVsXG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBJbml0XG4gICAqL1xuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnRvZ2dsZUFzc2V0cyh0aGlzLmdhbWVDb29raWVTZXJ2aWNlLmdldERlYnVnRGF0YSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB0b2dnbGVBc3NldHNcbiAgICpcbiAgICogQHBhcmFtIGFzc2V0IFRoZSBhc3NldCB0byBkaXNwbGF5XG4gICAqL1xuICB0b2dnbGVBc3NldHMoYXNzZXQ6IHN0cmluZyk6IHZvaWQge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuZGVidWdBc3NldHMpLm1hcCgoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChrZXkgPT09IGFzc2V0KSB7XG4gICAgICAgIHRoaXMuZGVidWdBc3NldHNba2V5XSA9IHRydWU7XG4gICAgICAgIHRoaXMuZ2FtZUNvb2tpZVNlcnZpY2Uuc2V0RGVidWdEYXRhKGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRlYnVnQXNzZXRzW2tleV0gPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVuIHRoZSBnYW1lIG92ZXIgZGlhbG9nXG4gICAqL1xuICBvcGVuRGlzcGxheUdhbWVPdmVyRGlhbG9nKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheURpYWxvZ1NlcnZpY2UuZGlzcGxheUdhbWVPdmVyKHtcbiAgICAgIGhpZ2hTY29yZTogMTAwLFxuICAgICAgbGV2ZWw6IDRcbiAgICB9IGFzIEdhbWVEYXRhTW9kZWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW4gdGhlIG5leHQgbGV2ZWwgZGlhbG9nXG4gICAqL1xuICBvcGVuRGlzcGxheU5leHRMZXZlbERpYWxvZygpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXlEaWFsb2dTZXJ2aWNlLmRpc3BsYXlOZXh0TGV2ZWwoe1xuICAgICAgaGlnaFNjb3JlOiAxMDAsXG4gICAgICBsZXZlbDogNDAwXG4gICAgfSBhcyBHYW1lRGF0YU1vZGVsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVuIHRoZSBnYW1lIHBhdXNlZFxuICAgKi9cbiAgb3BlbkRpc3BsYXlHYW1lUGF1c2VkRGlhbG9nKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheURpYWxvZ1NlcnZpY2UuZGlzcGxheUdhbWVQYXVzZWQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdhbWUtY29udGFpbmVyXCIgW2NsYXNzLmRlYnVnXT1cImlzRGVidWdcIj5cbiAgPGRpdiAqbmdJZj1cIiFpc0RlYnVnXCI+XG4gICAgPGJwLXByaXNtLWdhbWVib2FyZD48L2JwLXByaXNtLWdhbWVib2FyZD5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJpc0RlYnVnXCIgY2xhc3M9XCJkZWJ1Zy1jb250YWluZXJcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiZGVidWdBc3NldHMuYWxpZW5cIj5cbiAgICAgIDxicC1wcmlzbS1hbGllbj48L2JwLXByaXNtLWFsaWVuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJkZWJ1Z0Fzc2V0cy5sZXR0ZXJcIj5cbiAgICAgIDxicC1wcmlzbS1sZXR0ZXI+PC9icC1wcmlzbS1sZXR0ZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImRlYnVnQXNzZXRzLm1haW5HdW5uZXJcIj5cbiAgICAgIDxicC1wcmlzbS1tYWluLWd1bm5lcj48L2JwLXByaXNtLW1haW4tZ3VubmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJkZWJ1Z0Fzc2V0cy5taXNzaWxlXCI+XG4gICAgICA8YnAtcHJpc20tbWlzc2lsZT48L2JwLXByaXNtLW1pc3NpbGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImRlYnVnQXNzZXRzLm51bWJlclwiPlxuICAgICAgPGJwLXByaXNtLW51bWJlcj48L2JwLXByaXNtLW51bWJlcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiZGVidWdBc3NldHMucHJpc21CYXNlXCI+XG4gICAgICA8YnAtcHJpc20tYmFzZT48L2JwLXByaXNtLWJhc2U+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImRlYnVnQXNzZXRzLnByaXNtQmxhc3RcIj5cbiAgICAgIDxicC1wcmlzbS1ibGFzdD48L2JwLXByaXNtLWJsYXN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJkZWJ1Z0Fzc2V0cy5wcmlzbUJsYXN0SWNvblwiPlxuICAgICAgPGJwLXByaXNtLWJsYXN0LWljb24+PC9icC1wcmlzbS1ibGFzdC1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJkZWJ1Z0Fzc2V0cy5zY2VuZXJ5XCI+XG4gICAgICA8YnAtcHJpc20tc2NlbmVyeT48L2JwLXByaXNtLXNjZW5lcnk+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFzc2V0IG9mIGFzc2V0c1wiPlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVBc3NldHMoYXNzZXQua2V5KVwiIGNsYXNzPVwiYW5pbWF0aW9uLWJ1dHRvbiBidXR0b25cIj5cbiAgICAgICAgICB7eyBhc3NldC5uYW1lIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJvcGVuRGlzcGxheUdhbWVPdmVyRGlhbG9nKClcIiBjbGFzcz1cImFuaW1hdGlvbi1idXR0b24gYnV0dG9uXCI+R2FtZSBPdmVyPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cIm9wZW5EaXNwbGF5R2FtZVBhdXNlZERpYWxvZygpXCIgY2xhc3M9XCJhbmltYXRpb24tYnV0dG9uIGJ1dHRvblwiPkdhbWUgUGF1c2VkPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cIm9wZW5EaXNwbGF5TmV4dExldmVsRGlhbG9nKClcIiBjbGFzcz1cImFuaW1hdGlvbi1idXR0b24gYnV0dG9uXCI+TmV4dCBMZXZlbDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=