From ee0797240f0f3f87ce7e479df71b98efbb704d6d Mon Sep 17 00:00:00 2001 From: giomba Date: Fri, 29 May 2020 14:21:05 +0200 Subject: [PATCH] First commit for "Laureati Invaders", as downloaded from website --- .../Alloro-1.png | Bin 0 -> 81 bytes .../Alloro.png | Bin 0 -> 6993 bytes .../Background1.jpeg | Bin 0 -> 48817 bytes .../Base.png | Bin 0 -> 1848 bytes .../Bestie.ogg | Bin 0 -> 16739 bytes .../Bottone Play.png | Bin 0 -> 6268 bytes .../Buco-nero-da-convertire-in-OOG.ogg | Bin 0 -> 30688 bytes .../Carabinieri 1.2.png | Bin 0 -> 6241 bytes .../Copertina0.jpg.png | Bin 0 -> 70498 bytes .../destroyoutsideruntimebehavior.js | 57 + .../panelspriteruntimeobject-pixi-renderer.js | 343 ++++ .../panelspriteruntimeobject.js | 222 +++ .../Extensions/SystemInfo/systeminfotools.js | 39 + .../textruntimeobject-pixi-renderer.js | 166 ++ .../TextObject/textruntimeobject.js | 513 ++++++ .../Festa-di-Laurea-piena-da-convertire.ogg | Bin 0 -> 64404 bytes .../Fire Empty.png | Bin 0 -> 5033 bytes .../Fire.png | Bin 0 -> 10139 bytes .../Fuoco 2.png | Bin 0 -> 1607 bytes .../Fuoco 3.png | Bin 0 -> 4925 bytes .../Fuoco 4.png | Bin 0 -> 3373 bytes .../Fuoco.png | Bin 0 -> 9435 bytes .../GDevelop.png | Bin 0 -> 18478 bytes .../Gioca ancora.png | Bin 0 -> 36653 bytes .../Gioca.png | Bin 0 -> 5916 bytes .../Kenney Future Narrow.ttf | Bin 0 -> 34856 bytes .../Laureato 1.png | Bin 0 -> 39702 bytes .../Laureato 2.png | Bin 0 -> 36210 bytes .../Laureato 3.png | Bin 0 -> 37258 bytes .../Laureato 6.png | Bin 0 -> 5228 bytes .../Laureato 7.png | Bin 0 -> 4788 bytes .../Laureato 9.png | Bin 0 -> 4790 bytes .../Left.png | Bin 0 -> 12316 bytes .../Left2.png | Bin 0 -> 17437 bytes .../Lose-da-converitre-in-ogg.ogg | Bin 0 -> 67218 bytes .../Sfondo.png | Bin 0 -> 68149 bytes .../Vicienzo.png | Bin 0 -> 56662 bytes .../Virus 2.png | Bin 0 -> 2107 bytes .../Win-da-convertire-in-OGG.ogg | Bin 0 -> 54421 bytes .../code0.js | 121 ++ .../code1.js | 1492 ++++++++++++++++ .../code2.js | 111 ++ .../code3.js | 71 + .../code4.js | 54 + .../code5.js | 58 + .../data.js | 1 + .../enemyBlack5.png | Bin 0 -> 4139 bytes .../enemyBlue1.png | Bin 0 -> 4448 bytes .../enemyGreen2.png | Bin 0 -> 4432 bytes .../events-tools/cameratools.js | 201 +++ .../events-tools/commontools.js | 196 ++ .../events-tools/inputtools.js | 284 +++ .../events-tools/networktools.js | 127 ++ .../events-tools/objecttools.js | 437 +++++ .../events-tools/runtimescenetools.js | 163 ++ .../events-tools/soundtools.js | 163 ++ .../events-tools/storagetools.js | 254 +++ .../events-tools/stringtools.js | 120 ++ .../events-tools/windowtools.js | 80 + .../fontfaceobserver-font-manager.js | 128 ++ .../fontfaceobserver.js | 16 + .../force.js | 135 ++ .../gd-splash-image.js | 1 + .../gd.js | 379 ++++ .../howler-sound-manager.js | 419 +++++ .../howler-sound-manager/howler.min.js | 4 + .../index.html | 114 ++ .../inputmanager.js | 317 ++++ .../jsonmanager.js | 158 ++ .../laser1.ogg | Bin 0 -> 9315 bytes .../laser8.ogg | Bin 0 -> 9383 bytes .../laserGreen04.png | Bin 0 -> 1612 bytes .../laserRed06.png | Bin 0 -> 816 bytes .../layer.js | 391 ++++ .../libs/hshg.js | 617 +++++++ .../libs/jshashtable.js | 134 ++ .../libs/rbush.js | 624 +++++++ .../lose1.png | Bin 0 -> 4821 bytes .../lowRandom.ogg | Bin 0 -> 5416 bytes .../oncetriggers.js | 52 + .../pixi-renderers/layer-pixi-renderer.js | 228 +++ .../loadingscreen-pixi-renderer.js | 83 + .../pixi-renderers/pixi-filters-tools.js | 120 ++ .../pixi-renderers/pixi-image-manager.js | 174 ++ .../pixi-renderers/pixi.js | 22 + .../runtimegame-pixi-renderer.js | 496 ++++++ .../runtimescene-pixi-renderer.js | 87 + .../spriteruntimeobject-pixi-renderer.js | 137 ++ .../playerShip1_red.png | Bin 0 -> 3942 bytes .../polygon.js | 430 +++++ .../profiler.js | 173 ++ .../right.png | Bin 0 -> 17487 bytes .../runtimebehavior.js | 149 ++ .../runtimegame.js | 528 ++++++ .../runtimeobject.js | 1572 +++++++++++++++++ .../runtimescene.js | 822 +++++++++ .../scenestack.js | 144 ++ .../spaceStation_028.png | Bin 0 -> 3358 bytes .../spriteruntimeobject.js | 1041 +++++++++++ .../timemanager.js | 101 ++ .../timer.js | 73 + .../twoTone1.ogg | Bin 0 -> 7362 bytes .../variable.js | 273 +++ .../variablescontainer.js | 197 +++ ...atsApp Ptt 2020-03-28 at 18.10.19.ogg-.ogg | Bin 0 -> 25494 bytes .../win3.png | Bin 0 -> 29099 bytes 106 files changed, 15612 insertions(+) create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Alloro-1.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Alloro.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Background1.jpeg create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Base.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Bestie.ogg create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Bottone Play.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Buco-nero-da-convertire-in-OOG.ogg create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Carabinieri 1.2.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Copertina0.jpg.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/DestroyOutsideBehavior/destroyoutsideruntimebehavior.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/PanelSpriteObject/panelspriteruntimeobject-pixi-renderer.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/PanelSpriteObject/panelspriteruntimeobject.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/SystemInfo/systeminfotools.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/TextObject/textruntimeobject-pixi-renderer.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/TextObject/textruntimeobject.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Festa-di-Laurea-piena-da-convertire.ogg create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Fire Empty.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Fire.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Fuoco 2.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Fuoco 3.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Fuoco 4.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Fuoco.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/GDevelop.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Gioca ancora.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Gioca.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Kenney Future Narrow.ttf create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Laureato 1.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Laureato 2.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Laureato 3.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Laureato 6.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Laureato 7.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Laureato 9.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Left.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Left2.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Lose-da-converitre-in-ogg.ogg create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Sfondo.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Vicienzo.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Virus 2.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Win-da-convertire-in-OGG.ogg create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/code0.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/code1.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/code2.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/code3.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/code4.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/code5.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/data.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/enemyBlack5.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/enemyBlue1.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/enemyGreen2.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/cameratools.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/commontools.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/inputtools.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/networktools.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/objecttools.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/runtimescenetools.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/soundtools.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/storagetools.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/stringtools.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/windowtools.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/fontfaceobserver-font-manager/fontfaceobserver-font-manager.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/fontfaceobserver-font-manager/fontfaceobserver.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/force.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/gd-splash-image.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/gd.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/howler-sound-manager/howler-sound-manager.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/howler-sound-manager/howler.min.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/index.html create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/inputmanager.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/jsonmanager.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/laser1.ogg create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/laser8.ogg create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/laserGreen04.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/laserRed06.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/layer.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/libs/hshg.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/libs/jshashtable.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/libs/rbush.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/lose1.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/lowRandom.ogg create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/oncetriggers.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/layer-pixi-renderer.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/loadingscreen-pixi-renderer.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/pixi-filters-tools.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/pixi-image-manager.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/pixi.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/runtimegame-pixi-renderer.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/runtimescene-pixi-renderer.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/spriteruntimeobject-pixi-renderer.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/playerShip1_red.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/polygon.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/profiler.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/right.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/runtimebehavior.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/runtimegame.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/runtimeobject.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/runtimescene.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/scenestack.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/spaceStation_028.png create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/spriteruntimeobject.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/timemanager.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/timer.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/twoTone1.ogg create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/variable.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/variablescontainer.js create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/vlc-record-2020-03-28-18h19m15s-WhatsApp Ptt 2020-03-28 at 18.10.19.ogg-.ogg create mode 100644 games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/win3.png diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Alloro-1.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Alloro-1.png new file mode 100644 index 0000000000000000000000000000000000000000..6189585e0ede6865cc98947d3ae57b7342662863 GIT binary patch literal 81 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4iF>*@hG+yQrzi*+2(9c(3{ku{ dLCLCufh&`NdwP$y1yBitr>mdKI;Vst1^{i05q|&x literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Alloro.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Alloro.png new file mode 100644 index 0000000000000000000000000000000000000000..0734e25df77385b4876cbf026146571ba7ab8b0c GIT binary patch literal 6993 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 literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Background1.jpeg b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Background1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..56fcea5d421700ab387495058ec864c5499d3efc GIT binary patch literal 48817 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 literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Base.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Base.png new file mode 100644 index 0000000000000000000000000000000000000000..79f157e148d1d61b3a958abbdf98593c29e3689a GIT binary patch literal 1848 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 literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Bottone Play.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Bottone Play.png new file mode 100644 index 0000000000000000000000000000000000000000..7e36bab4bded108cac399b656623ab97a502126e GIT binary patch literal 6268 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 literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Carabinieri 1.2.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Carabinieri 1.2.png new file mode 100644 index 0000000000000000000000000000000000000000..ff5ab8fc3a7368425dfa63f7da6036b7ae8abc50 GIT binary patch literal 6241 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 LNkvXXu0mjf^jPPh literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Copertina0.jpg.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Copertina0.jpg.png new file mode 100644 index 0000000000000000000000000000000000000000..f2b0973712a96609ed40306c7fdaeaafb7beb545 GIT binary patch literal 70498 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 literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/DestroyOutsideBehavior/destroyoutsideruntimebehavior.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/DestroyOutsideBehavior/destroyoutsideruntimebehavior.js new file mode 100644 index 0000000..14139ea --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/DestroyOutsideBehavior/destroyoutsideruntimebehavior.js @@ -0,0 +1,57 @@ +/** +GDevelop - DestroyOutside Behavior Extension +Copyright (c) 2013-2016 Florian Rival (Florian.Rival@gmail.com) + */ + +/** + * The destroyOutsideRuntimeBehavior represents a behavior allowing objects to be + * moved using the mouse. + * + * @class DestroyOutsideRuntimeBehavior + * @constructor + */ +gdjs.DestroyOutsideRuntimeBehavior = function(runtimeScene, behaviorData, owner) +{ + gdjs.RuntimeBehavior.call(this, runtimeScene, behaviorData, owner); + + this._extraBorder = behaviorData.extraBorder || 0; +}; + +gdjs.DestroyOutsideRuntimeBehavior.prototype = Object.create( gdjs.RuntimeBehavior.prototype ); +gdjs.registerBehavior("DestroyOutsideBehavior::DestroyOutside", gdjs.DestroyOutsideRuntimeBehavior); + +gdjs.DestroyOutsideRuntimeBehavior.prototype.doStepPostEvents = function(runtimeScene) { + + // TODO: This would better be done using the object AABB (getAABB), as (`getCenterX`;`getCenterY`) point + // is not necessarily in the middle of the object (for sprites for example). + var ow = this.owner.getWidth(); + var oh = this.owner.getHeight(); + var ocx = this.owner.getDrawableX()+this.owner.getCenterX(); + var ocy = this.owner.getDrawableY()+this.owner.getCenterY(); + var layer = runtimeScene.getLayer(this.owner.getLayer()); + + var boundingCircleRadius = Math.sqrt(ow*ow+oh*oh)/2.0; + if ( ocx+boundingCircleRadius+this._extraBorder < layer.getCameraX()-layer.getCameraWidth()/2 + || ocx-boundingCircleRadius-this._extraBorder > layer.getCameraX()+layer.getCameraWidth()/2 + || ocy+boundingCircleRadius+this._extraBorder < layer.getCameraY()-layer.getCameraHeight()/2 + || ocy-boundingCircleRadius-this._extraBorder > layer.getCameraY()+layer.getCameraHeight()/2 ) { + //We are outside the camera area. + this.owner.deleteFromScene(runtimeScene); + } +}; + +/** + * Set an additional border to the camera viewport as a buffer before the object gets destroyed. + * @param {number} val Border in pixels. + */ +gdjs.DestroyOutsideRuntimeBehavior.prototype.setExtraBorder = function(val) { + this._extraBorder = val; +}; + +/** + * Get the additional border of the camera viewport buffer which triggers the destruction of an object. + * @return {number} The additional border around the camera viewport in pixels + */ +gdjs.DestroyOutsideRuntimeBehavior.prototype.getExtraBorder = function() { + return this._extraBorder; +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/PanelSpriteObject/panelspriteruntimeobject-pixi-renderer.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/PanelSpriteObject/panelspriteruntimeobject-pixi-renderer.js new file mode 100644 index 0000000..717b349 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/PanelSpriteObject/panelspriteruntimeobject-pixi-renderer.js @@ -0,0 +1,343 @@ +gdjs.PanelSpriteRuntimeObjectPixiRenderer = function( + runtimeObject, + runtimeScene, + textureName, + tiled +) { + this._object = runtimeObject; + + if (this._spritesContainer === undefined) { + var texture = runtimeScene + .getGame() + .getImageManager() + .getPIXITexture(textureName); + + var StretchedSprite = !tiled ? PIXI.Sprite : PIXI.extras.TilingSprite; + + this._spritesContainer = new PIXI.Container(); + this._centerSprite = new StretchedSprite(new PIXI.Texture(texture)); + this._borderSprites = [ + new StretchedSprite(new PIXI.Texture(texture)), //Right + new PIXI.Sprite(texture), //Top-Right + new StretchedSprite(new PIXI.Texture(texture)), //Top + new PIXI.Sprite(texture), //Top-Left + new StretchedSprite(new PIXI.Texture(texture)), //Left + new PIXI.Sprite(texture), //Bottom-Left + new StretchedSprite(new PIXI.Texture(texture)), //Bottom + new PIXI.Sprite(texture), //Bottom-Right + ]; + } + + this.setTexture(textureName, runtimeScene); + + this._spritesContainer.removeChildren(); + this._spritesContainer.addChild(this._centerSprite); + for (var i = 0; i < this._borderSprites.length; ++i) { + this._spritesContainer.addChild(this._borderSprites[i]); + } + + this._alpha = this._spritesContainer.alpha; + runtimeScene + .getLayer('') + .getRenderer() + .addRendererObject(this._spritesContainer, runtimeObject.getZOrder()); +}; + +gdjs.PanelSpriteRuntimeObjectRenderer = + gdjs.PanelSpriteRuntimeObjectPixiRenderer; //Register the class to let the engine use it. + +gdjs.PanelSpriteRuntimeObjectPixiRenderer.prototype.getRendererObject = function() { + return this._spritesContainer; +}; + +gdjs.PanelSpriteRuntimeObjectPixiRenderer.prototype.ensureUpToDate = function() { + if (this._spritesContainer.visible && this._wasRendered) { + // Update the alpha of the container to make sure that it's applied. + // If not done, the alpha will be back to full opaque when changing the color + // of the object. + this._spritesContainer.alpha = this._alpha; + this._spritesContainer.cacheAsBitmap = true; + } + + this._wasRendered = true; +}; + +gdjs.PanelSpriteRuntimeObjectPixiRenderer.prototype.updateOpacity = function() { + //TODO: Workaround a not working property in PIXI.js: + this._spritesContainer.alpha = this._spritesContainer.visible + ? this._object.opacity / 255 + : 0; + this._alpha = this._spritesContainer.alpha; +}; + +gdjs.PanelSpriteRuntimeObjectPixiRenderer.prototype.updateAngle = function() { + this._spritesContainer.rotation = gdjs.toRad(this._object.angle); +}; + +gdjs.PanelSpriteRuntimeObjectPixiRenderer.prototype.updatePosition = function() { + this._spritesContainer.position.x = this._object.x + this._object._width / 2; + this._spritesContainer.position.y = this._object.y + this._object._height / 2; +}; + +gdjs.PanelSpriteRuntimeObjectPixiRenderer.prototype._updateLocalPositions = function() { + var obj = this._object; + + this._centerSprite.position.x = obj._lBorder; + this._centerSprite.position.y = obj._tBorder; + + //Right + this._borderSprites[0].position.x = obj._width - obj._rBorder; + this._borderSprites[0].position.y = obj._tBorder; + + //Top-right + this._borderSprites[1].position.x = obj._width - this._borderSprites[1].width; + this._borderSprites[1].position.y = 0; + + //Top + this._borderSprites[2].position.x = obj._lBorder; + this._borderSprites[2].position.y = 0; + //Top-Left + this._borderSprites[3].position.x = 0; + this._borderSprites[3].position.y = 0; + //Left + this._borderSprites[4].position.x = 0; + this._borderSprites[4].position.y = obj._tBorder; + //Bottom-Left + this._borderSprites[5].position.x = 0; + this._borderSprites[5].position.y = + obj._height - this._borderSprites[5].height; + //Bottom + this._borderSprites[6].position.x = obj._lBorder; + this._borderSprites[6].position.y = obj._height - obj._bBorder; + //Bottom-Right + this._borderSprites[7].position.x = obj._width - this._borderSprites[7].width; + this._borderSprites[7].position.y = + obj._height - this._borderSprites[7].height; +}; + +gdjs.PanelSpriteRuntimeObjectPixiRenderer.prototype._updateSpritesAndTexturesSize = function() { + var obj = this._object; + + this._centerSprite.width = Math.max( + obj._width - obj._rBorder - obj._lBorder, + 0 + ); + this._centerSprite.height = Math.max( + obj._height - obj._tBorder - obj._bBorder, + 0 + ); + + //Right + this._borderSprites[0].width = obj._rBorder; + this._borderSprites[0].height = Math.max( + obj._height - obj._tBorder - obj._bBorder, + 0 + ); + + //Top + this._borderSprites[2].height = obj._tBorder; + this._borderSprites[2].width = Math.max( + obj._width - obj._rBorder - obj._lBorder, + 0 + ); + //Left + this._borderSprites[4].width = obj._lBorder; + this._borderSprites[4].height = Math.max( + obj._height - obj._tBorder - obj._bBorder, + 0 + ); + //Bottom + this._borderSprites[6].height = obj._bBorder; + this._borderSprites[6].width = Math.max( + obj._width - obj._rBorder - obj._lBorder, + 0 + ); + + this._wasRendered = true; + this._spritesContainer.cacheAsBitmap = false; +}; + +gdjs.PanelSpriteRuntimeObjectPixiRenderer.prototype.setTexture = function( + textureName, + runtimeScene +) { + var obj = this._object; + var texture = runtimeScene + .getGame() + .getImageManager() + .getPIXITexture(textureName); + + function makeInsideTexture(rect) { + //TODO + if (rect.width < 0) rect.width = 0; + if (rect.height < 0) rect.height = 0; + if (rect.x < 0) rect.x = 0; + if (rect.y < 0) rect.y = 0; + if (rect.x > texture.width) rect.x = texture.width; + if (rect.y > texture.height) rect.y = texture.height; + if (rect.x + rect.width > texture.width) + rect.width = texture.width - rect.x; + if (rect.y + rect.height > texture.height) + rect.height = texture.height - rect.y; + + return rect; + } + + this._centerSprite.texture = new PIXI.Texture( + texture, + makeInsideTexture( + new PIXI.Rectangle( + obj._lBorder, + obj._tBorder, + texture.width - obj._lBorder - obj._rBorder, + texture.height - obj._tBorder - obj._bBorder + ) + ) + ); + + //Top, Bottom, Right, Left borders: + this._borderSprites[0].texture = new PIXI.Texture( + texture, + makeInsideTexture( + new PIXI.Rectangle( + texture.width - obj._rBorder, + obj._tBorder, + obj._rBorder, + texture.height - obj._tBorder - obj._bBorder + ) + ) + ); + this._borderSprites[2].texture = new PIXI.Texture( + texture, + makeInsideTexture( + new PIXI.Rectangle( + obj._lBorder, + 0, + texture.width - obj._lBorder - obj._rBorder, + obj._tBorder + ) + ) + ); + this._borderSprites[4].texture = new PIXI.Texture( + texture, + makeInsideTexture( + new PIXI.Rectangle( + 0, + obj._tBorder, + obj._lBorder, + texture.height - obj._tBorder - obj._bBorder + ) + ) + ); + this._borderSprites[6].texture = new PIXI.Texture( + texture, + makeInsideTexture( + new PIXI.Rectangle( + obj._lBorder, + texture.height - obj._bBorder, + texture.width - obj._lBorder - obj._rBorder, + obj._bBorder + ) + ) + ); + + this._borderSprites[1].texture = new PIXI.Texture( + texture, + makeInsideTexture( + new PIXI.Rectangle( + this._borderSprites[1].width - obj._rBorder, + 0, + obj._rBorder, + obj._tBorder + ) + ) + ); + this._borderSprites[3].texture = new PIXI.Texture( + texture, + makeInsideTexture(new PIXI.Rectangle(0, 0, obj._lBorder, obj._tBorder)) + ); + this._borderSprites[5].texture = new PIXI.Texture( + texture, + makeInsideTexture( + new PIXI.Rectangle( + 0, + this._borderSprites[5].height - obj._bBorder, + obj._lBorder, + obj._bBorder + ) + ) + ); + this._borderSprites[7].texture = new PIXI.Texture( + texture, + makeInsideTexture( + new PIXI.Rectangle( + this._borderSprites[7].width - obj._rBorder, + this._borderSprites[7].height - obj._bBorder, + obj._rBorder, + obj._bBorder + ) + ) + ); + + this._updateSpritesAndTexturesSize(); + this._updateLocalPositions(); + this.updatePosition(); + this._spritesContainer.pivot.x = this._object._width / 2; + this._spritesContainer.pivot.y = this._object._height / 2; +}; + +gdjs.PanelSpriteRuntimeObjectPixiRenderer.prototype.updateWidth = function() { + this._spritesContainer.pivot.x = this._object._width / 2; + this._updateSpritesAndTexturesSize(); + this._updateLocalPositions(); + this.updatePosition(); +}; + +gdjs.PanelSpriteRuntimeObjectPixiRenderer.prototype.updateHeight = function() { + this._spritesContainer.pivot.y = this._object._height / 2; + this._updateSpritesAndTexturesSize(); + this._updateLocalPositions(); + this.updatePosition(); +}; + +gdjs.PanelSpriteRuntimeObjectPixiRenderer.prototype.setColor = function( + rgbColor +) { + var colors = rgbColor.split(';'); + if (colors.length < 3) return; + + this._centerSprite.tint = + '0x' + + gdjs.rgbToHex( + parseInt(colors[0], 10), + parseInt(colors[1], 10), + parseInt(colors[2], 10) + ); + + for ( + var borderCounter = 0; + borderCounter < this._borderSprites.length; + borderCounter++ + ) { + this._borderSprites[borderCounter].tint = + '0x' + + gdjs.rgbToHex( + parseInt(colors[0], 10), + parseInt(colors[1], 10), + parseInt(colors[2], 10) + ); + } + + this._spritesContainer.cacheAsBitmap = false; +}; + +gdjs.PanelSpriteRuntimeObjectPixiRenderer.prototype.getColor = function() { + var rgb = PIXI.utils.hex2rgb(this._centerSprite.tint); + return ( + Math.floor(rgb[0] * 255) + + ';' + + Math.floor(rgb[1] * 255) + + ';' + + Math.floor(rgb[2] * 255) + ); +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/PanelSpriteObject/panelspriteruntimeobject.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/PanelSpriteObject/panelspriteruntimeobject.js new file mode 100644 index 0000000..51bb5c0 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/PanelSpriteObject/panelspriteruntimeobject.js @@ -0,0 +1,222 @@ +/* + * GDevelop JS Platform + * 2013 Florian Rival (Florian.Rival@gmail.com) + */ + +/** + * @typedef {Object} PanelSpriteObjectDataType + * @property {number} rightMargin The right margin + * @property {number} leftMargin The left margin + * @property {number} topMargin The top margin + * @property {number} bottomMargin The bottom margin + * @property {boolean} [tiled] Are the central part and borders tiled? + * @property {number} width The object width + * @property {number} height The object height + * @property {string} texture The name of the resource containing the texture to use + * + * @typedef {ObjectData & PanelSpriteObjectDataType} PanelSpriteObjectData + */ + +/** + * The PanelSpriteRuntimeObject displays a tiled texture. + * + * @class PanelSpriteRuntimeObject + * @extends RuntimeObject + * @memberof gdjs + * @param {gdjs.RuntimeScene} runtimeScene The {@link gdjs.RuntimeScene} the object belongs to + * @param {PanelSpriteObjectData} panelSpriteObjectData The initial properties of the object + */ +gdjs.PanelSpriteRuntimeObject = function(runtimeScene, panelSpriteObjectData) { + gdjs.RuntimeObject.call(this, runtimeScene, panelSpriteObjectData); + + /** @type {number} */ + this._rBorder = panelSpriteObjectData.rightMargin; + + /** @type {number} */ + this._lBorder = panelSpriteObjectData.leftMargin; + + /** @type {number} */ + this._tBorder = panelSpriteObjectData.topMargin; + + /** @type {number} */ + this._bBorder = panelSpriteObjectData.bottomMargin; + + /** @type {boolean} */ + this._tiled = panelSpriteObjectData.tiled; + + /** @type {number} */ + this._width = panelSpriteObjectData.width; + + /** @type {number} */ + this._height = panelSpriteObjectData.height; + + /** @type {number} */ + this.opacity = 255; + + if (this._renderer) { + gdjs.PanelSpriteRuntimeObjectRenderer.call( + this._renderer, + this, + runtimeScene, + panelSpriteObjectData.texture, + panelSpriteObjectData.tiled + ); + } else { + /** @type {gdjs.PanelSpriteRuntimeObjectRenderer} */ + this._renderer = new gdjs.PanelSpriteRuntimeObjectRenderer( + this, + runtimeScene, + panelSpriteObjectData.texture, + panelSpriteObjectData.tiled + ); + } + + // *ALWAYS* call `this.onCreated()` at the very end of your object constructor. + this.onCreated(); +}; + +gdjs.PanelSpriteRuntimeObject.prototype = Object.create( + gdjs.RuntimeObject.prototype +); +gdjs.registerObject("PanelSpriteObject::PanelSprite", gdjs.PanelSpriteRuntimeObject); + +gdjs.PanelSpriteRuntimeObject.prototype.getRendererObject = function() { + return this._renderer.getRendererObject(); +}; + +gdjs.PanelSpriteRuntimeObject.prototype.onDestroyFromScene = function( + runtimeScene +) { + gdjs.RuntimeObject.prototype.onDestroyFromScene.call(this, runtimeScene); + + if (this._renderer.onDestroy) { + this._renderer.onDestroy(); + } +}; + +gdjs.PanelSpriteRuntimeObject.prototype.update = function() { + this._renderer.ensureUpToDate(); +}; + +/** + * Initialize the extra parameters that could be set for an instance. + */ +gdjs.PanelSpriteRuntimeObject.prototype.extraInitializationFromInitialInstance = function( + initialInstanceData +) { + if (initialInstanceData.customSize) { + this.setWidth(initialInstanceData.width); + this.setHeight(initialInstanceData.height); + } +}; + +/** + * Set the x position of the panel sprite. + * @param {number} x The new x position in pixels. + */ +gdjs.PanelSpriteRuntimeObject.prototype.setX = function(x) { + gdjs.RuntimeObject.prototype.setX.call(this, x); + this._renderer.updatePosition(); +}; + +/** + * Set the y position of the panel sprite. + * @param {number} y The new y position in pixels. + */ +gdjs.PanelSpriteRuntimeObject.prototype.setY = function(y) { + gdjs.RuntimeObject.prototype.setY.call(this, y); + this._renderer.updatePosition(); +}; + +/** + * Set the texture of the panel sprite. + * @param {string} textureName The name of the texture. + * @param {gdjs.RuntimeScene} runtimeScene The scene the object lives in. + */ +gdjs.PanelSpriteRuntimeObject.prototype.setTexture = function( + textureName, + runtimeScene +) { + this._renderer.setTexture(textureName, runtimeScene); +}; + +/** + * Set the angle of the panel sprite. + * @param {number} angle The new angle in degrees. + */ +gdjs.PanelSpriteRuntimeObject.prototype.setAngle = function(angle) { + gdjs.RuntimeObject.prototype.setAngle.call(this, angle); + this._renderer.updateAngle(); +}; + +/** + * Get the width of the panel sprite in pixels + * @return {number} The width in pixels + */ +gdjs.PanelSpriteRuntimeObject.prototype.getWidth = function() { + return this._width; +}; + +/** + * Get the height of the panel sprite in pixels + * @return {number} The height in pixels + */ +gdjs.PanelSpriteRuntimeObject.prototype.getHeight = function() { + return this._height; +}; + +/** + * Set the width of the panel sprite. + * @param {number} width The new width in pixels. + */ +gdjs.PanelSpriteRuntimeObject.prototype.setWidth = function(width) { + this._width = width; + this._renderer.updateWidth(); +}; + +/** + * Set the height of the panel sprite. + * @param {number} height The new height in pixels. + */ +gdjs.PanelSpriteRuntimeObject.prototype.setHeight = function(height) { + this._height = height; + this._renderer.updateHeight(); +}; + +/** + * Change the transparency of the object. + * @param {number} opacity The new opacity, between 0 (transparent) and 255 (opaque). + */ +gdjs.PanelSpriteRuntimeObject.prototype.setOpacity = function(opacity) { + if (opacity < 0) opacity = 0; + if (opacity > 255) opacity = 255; + + this.opacity = opacity; + this._renderer.updateOpacity(); +}; + +/** + * Get the transparency of the object. + * @return {number} The opacity, between 0 (transparent) and 255 (opaque). + */ +gdjs.PanelSpriteRuntimeObject.prototype.getOpacity = function() { + return this.opacity; +}; + +/** + * Change the tint of the panel sprite object. + * + * @param {string} rgbColor The color, in RGB format ("128;200;255"). + */ +gdjs.PanelSpriteRuntimeObject.prototype.setColor = function(rgbColor) { + this._renderer.setColor(rgbColor); +}; + +/** + * Get the tint of the panel sprite object. + * + * @returns {string} rgbColor The color, in RGB format ("128;200;255"). + */ +gdjs.PanelSpriteRuntimeObject.prototype.getColor = function() { + return this._renderer.getColor(); +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/SystemInfo/systeminfotools.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/SystemInfo/systeminfotools.js new file mode 100644 index 0000000..516f026 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/SystemInfo/systeminfotools.js @@ -0,0 +1,39 @@ +/** +GDevelop - SystemInfo Extension +Copyright (c) 2016 Florian Rival (Florian.Rival@gmail.com) + */ + +/** + * @memberof gdjs.evtTools + * @class linkedObjects + * @static + * @private + */ +gdjs.evtTools.systemInfo = {}; + +gdjs.evtTools.systemInfo.isMobile = function() { + if (typeof cc !== "undefined" && cc.sys) { + return cc.sys.isMobile; + } else if (typeof Cocoon !== "undefined" && Cocoon.App) { + return true; + } else if (typeof window !== "undefined" && window.cordova) { + return true; + } else if (typeof window !== "undefined") { + // Try to detect mobile device browsers. + if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) + || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0,4))) { + return true; + } + } + + return false; +}; + +/** + * Check if the the device supports WebGL. + * @param {gdjs.RuntimeScene} runtimeScene + * @returns {boolean} true if WebGL is supported + */ +gdjs.evtTools.systemInfo.isWebGLSupported = function(runtimeScene) { + return runtimeScene.getGame().getRenderer().isWebGLSupported(); +}; \ No newline at end of file diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/TextObject/textruntimeobject-pixi-renderer.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/TextObject/textruntimeobject-pixi-renderer.js new file mode 100644 index 0000000..2a61935 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/TextObject/textruntimeobject-pixi-renderer.js @@ -0,0 +1,166 @@ +gdjs.TextRuntimeObjectPixiRenderer = function(runtimeObject, runtimeScene) +{ + this._object = runtimeObject; + this._fontManager = runtimeScene.getGame().getFontManager(); + + if ( this._text === undefined ) this._text = new PIXI.Text(" ", {align:"left"}); + this._text.anchor.x = 0.5; + this._text.anchor.y = 0.5; + runtimeScene.getLayer("").getRenderer().addRendererObject(this._text, runtimeObject.getZOrder()); + + this._text.text = runtimeObject._str.length === 0 ? " " : runtimeObject._str; + this._justCreated = true; //Work around a PIXI.js bug. See updateTime method. + this.updateStyle(); + this.updatePosition(); +}; + +gdjs.TextRuntimeObjectRenderer = gdjs.TextRuntimeObjectPixiRenderer; //Register the class to let the engine use it. + +gdjs.TextRuntimeObjectPixiRenderer.prototype.getRendererObject = function() { + return this._text; +}; + +gdjs.TextRuntimeObjectPixiRenderer.prototype.ensureUpToDate = function() { + if (this._justCreated) { //Work around a PIXI.js bug: + this._text.updateText(); + this.updatePosition(); //Width seems not to be correct when text is not rendered yet. + this._justCreated = false; + } +}; + +gdjs.TextRuntimeObjectPixiRenderer.prototype.updateStyle = function() { + var fontName = "\"" + this._fontManager.getFontFamily(this._object._fontName) + "\""; + + var style = this._text.style; + style.fontStyle = this._object._italic ? 'italic' : 'normal'; + style.fontWeight = this._object._bold ? 'bold' : 'normal'; + style.fontSize = this._object._characterSize; + style.fontFamily = fontName; + + if (this._object._useGradient){ + style.fill = this._getGradientHex(); + } else { + style.fill = this._getColorHex(); + } + + if (this._object._gradientType === 'LINEAR_VERTICAL'){ + style.fillGradientType = PIXI.TEXT_GRADIENT.LINEAR_VERTICAL; + } else { + style.fillGradientType = PIXI.TEXT_GRADIENT.LINEAR_HORIZONTAL; + } + + style.align = this._object._textAlign; + style.wordWrap = this._object._wrapping; + style.wordWrapWidth = this._object._wrappingWidth; + style.breakWords = true; + style.stroke = gdjs.rgbToHexNumber( + this._object._outlineColor[0], + this._object._outlineColor[1], + this._object._outlineColor[2] + ); + style.strokeThickness = this._object._outlineThickness; + style.dropShadow = this._object._shadow; + style.dropShadowColor = gdjs.rgbToHexNumber( + this._object._shadowColor[0], + this._object._shadowColor[1], + this._object._shadowColor[2] + ); + style.dropShadowBlur = this._object._shadowBlur; + style.dropShadowAngle = this._object._shadowAngle; + style.dropShadowDistance = this._object._shadowDistance; + style.padding = this._object._padding; + // Prevent spikey outlines by adding a miter limit + style.miterLimit = 3; + + this.updatePosition(); + + // Manually ask the PIXI object to re-render as we changed a style property + // see http://www.html5gamedevs.com/topic/16924-change-text-style-post-render/ + this._text.dirty = true; +}; + +gdjs.TextRuntimeObjectPixiRenderer.prototype.updatePosition = function() { + this._text.position.x = this._object.x+this._text.width/2; + this._text.position.y = this._object.y+this._text.height/2; +}; + +gdjs.TextRuntimeObjectPixiRenderer.prototype.updateAngle = function() { + this._text.rotation = gdjs.toRad(this._object.angle); +}; + +gdjs.TextRuntimeObjectPixiRenderer.prototype.updateOpacity = function() { + this._text.alpha = this._object.opacity / 255; +}; + +gdjs.TextRuntimeObjectPixiRenderer.prototype.updateString = function() { + this._text.text = this._object._str.length === 0 ? " " : this._object._str; + this._text.updateText(); //Work around a PIXI.js bug. +}; + +gdjs.TextRuntimeObjectPixiRenderer.prototype.getWidth = function() { + return this._text.width; +}; + +gdjs.TextRuntimeObjectPixiRenderer.prototype.getHeight = function() { + return this._text.height; +}; + +gdjs.TextRuntimeObjectPixiRenderer.prototype._getColorHex = function() { + return gdjs.rgbToHexNumber( + this._object._color[0], + this._object._color[1], + this._object._color[2] + ); +} + +gdjs.TextRuntimeObjectPixiRenderer.prototype._getGradientHex = function() { + var gradient = []; + for (var colorIndex = 0; colorIndex < this._object._gradient.length; colorIndex++){ + gradient.push( + '#' + gdjs.rgbToHex( + this._object._gradient[colorIndex][0], + this._object._gradient[colorIndex][1], + this._object._gradient[colorIndex][2] + ) + ); + } + return gradient; +} +/** + * Get y-scale of the text. + */ +gdjs.TextRuntimeObjectPixiRenderer.prototype.getScaleX = function() { + return this._text.scale.x; +}; + +/** + * Get x-scale of the text. + */ +gdjs.TextRuntimeObjectPixiRenderer.prototype.getScaleY = function() { + return this._text.scale.y; +}; + +/** + * Set the text object scale. + * @param {number} newScale The new scale for the text object. + */ +gdjs.TextRuntimeObjectPixiRenderer.prototype.setScale = function(newScale) { + this._text.scale.x = newScale; + this._text.scale.y = newScale; +}; + +/** + * Set the text object x-scale. + * @param {number} newScale The new x-scale for the text object. + */ +gdjs.TextRuntimeObjectPixiRenderer.prototype.setScaleX = function(newScale) { + this._text.scale.x = newScale; +}; + +/** + * Set the text object y-scale. + * @param {number} newScale The new y-scale for the text object. + */ +gdjs.TextRuntimeObjectPixiRenderer.prototype.setScaleY = function(newScale) { + this._text.scale.y = newScale; +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/TextObject/textruntimeobject.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/TextObject/textruntimeobject.js new file mode 100644 index 0000000..b56f897 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Extensions/TextObject/textruntimeobject.js @@ -0,0 +1,513 @@ +/* + * GDevelop JS Platform + * 2013-2016 Florian Rival (Florian.Rival@gmail.com) + */ + +/** + * @typedef {Object} TextObjectDataType Base parameters for gdjs.TextRuntimeObject + * @property {number} characterSize The size of the characters + * @property {string} font The font name + * @property {boolean} bold Is Bold? + * @property {boolean} italic Is Italic? + * @property {boolean} underlined Is Underlined? + * @property {Object} color The text color in an RGB representation + * @property {number} color.r The Red level from 0 to 255 + * @property {number} color.g The Green level from 0 to 255 + * @property {number} color.b The Blue level from 0 to 255 + * @property {string} string The text of the object + * + * @typedef {ObjectData & TextObjectDataType} TextObjectData + */ + +/** + * Displays a text. + * + * @memberof gdjs + * @class TextRuntimeObject + * @extends RuntimeObject + * @param {gdjs.RuntimeScene} runtimeScene The {@link gdjs.RuntimeScene} the object belongs to + * @param {TextObjectData} textObjectData The initial properties of the object + */ +gdjs.TextRuntimeObject = function(runtimeScene, textObjectData) +{ + gdjs.RuntimeObject.call(this, runtimeScene, textObjectData); + + /** @type {number} */ + this._characterSize = Math.max(1, textObjectData.characterSize); + + /** @type {string} */ + this._fontName = textObjectData.font; + + /** @type {boolean} */ + this._bold = textObjectData.bold; + + /** @type {boolean} */ + this._italic = textObjectData.italic; + + /** @type {boolean} */ + this._underlined = textObjectData.underlined; + + /** @type {Array} */ + this._color = [textObjectData.color.r, textObjectData.color.g, textObjectData.color.b]; + + /** @type {boolean} */ + this._useGradient = false; + + /** @type {Array} */ + this._gradient = []; + + /** @type {string} */ + this._gradientType = ''; + + /** @type {number} */ + this.opacity = 255; + + /** @type {string} */ + this._textAlign = 'left'; + + /** @type {boolean} */ + this._wrapping = false; + + /** @type {number} */ + this._wrappingWidth = 1; + + /** @type {number} */ + this._outlineThickness = 0; + + /** @type {Array} */ + this._outlineColor = [255,255,255]; + + /** @type {boolean} */ + this._shadow = false; + + /** @type {Array} */ + this._shadowColor = [0,0,0]; + + /** @type {number} */ + this._shadowDistance = 1; + + /** @type {number} */ + this._shadowBlur = 1; + + /** @type {number} */ + this._shadowAngle = 0; + + /** @type {number} */ + this._padding = 5; + + /** @type {number} */ + this._scaleX = 1; + + /** @type {number} */ + this._scaleY = 1; + + /** @type {string} */ + this._str = textObjectData.string; + + if (this._renderer) + gdjs.TextRuntimeObjectRenderer.call(this._renderer, this, runtimeScene); + else + /** @type {gdjs.TextRuntimeObjectRenderer} */ + this._renderer = new gdjs.TextRuntimeObjectRenderer(this, runtimeScene); + + // *ALWAYS* call `this.onCreated()` at the very end of your object constructor. + this.onCreated(); +}; + +gdjs.TextRuntimeObject.prototype = Object.create( gdjs.RuntimeObject.prototype ); +gdjs.registerObject("TextObject::Text", gdjs.TextRuntimeObject); + +gdjs.TextRuntimeObject.prototype.getRendererObject = function() { + return this._renderer.getRendererObject(); +}; + +gdjs.TextRuntimeObject.prototype.update = function() { + this._renderer.ensureUpToDate(); +}; + +/** + * Initialize the extra parameters that could be set for an instance. + * @private + */ +gdjs.TextRuntimeObject.prototype.extraInitializationFromInitialInstance = function(initialInstanceData) { + if ( initialInstanceData.customSize ) { + this.setWrapping(true); + this.setWrappingWidth(initialInstanceData.width); + } +}; + +/** + * Update the rendered object position. + * @private + */ +gdjs.TextRuntimeObject.prototype._updateTextPosition = function() { + this.hitBoxesDirty = true; + this._renderer.updatePosition(); +}; + +/** + * Set object position on X axis. + */ +gdjs.TextRuntimeObject.prototype.setX = function(x) { + gdjs.RuntimeObject.prototype.setX.call(this, x); + this._updateTextPosition(); +}; + +/** + * Set object position on Y axis. + */ +gdjs.TextRuntimeObject.prototype.setY = function(y) { + gdjs.RuntimeObject.prototype.setY.call(this, y); + this._updateTextPosition(); +}; + + /** + * Set the angle of the object. + * @param {number} angle The new angle of the object + */ +gdjs.TextRuntimeObject.prototype.setAngle = function(angle) { + gdjs.RuntimeObject.prototype.setAngle.call(this, angle); + this._renderer.updateAngle(); +}; + +/** + * Set object opacity. + */ +gdjs.TextRuntimeObject.prototype.setOpacity = function(opacity) { + if ( opacity < 0 ) opacity = 0; + if ( opacity > 255 ) opacity = 255; + + this.opacity = opacity; + this._renderer.updateOpacity(); +}; + +/** + * Get object opacity. + */ +gdjs.TextRuntimeObject.prototype.getOpacity = function() { + return this.opacity; +}; + +/** + * Get the string displayed by the object. + */ +gdjs.TextRuntimeObject.prototype.getString = function() { + return this._str; +}; + +/** + * Set the string displayed by the object. + * @param {string} str The new text + */ +gdjs.TextRuntimeObject.prototype.setString = function(str) { + if ( str === this._str ) return; + + this._str = str; + this._renderer.updateString(); + this._updateTextPosition(); +}; + +/** + * Get the font size of the characters of the object. + */ +gdjs.TextRuntimeObject.prototype.getCharacterSize = function() { + return this._characterSize; +}; + +/** + * Set the font size for characters of the object. + * @param {number} newSize The new font size for the text. + */ +gdjs.TextRuntimeObject.prototype.setCharacterSize = function(newSize) { + if (newSize <= 1) newSize = 1; + this._characterSize = newSize; + this._renderer.updateStyle(); +}; + +/** + * Return true if the text is bold. + */ +gdjs.TextRuntimeObject.prototype.isBold = function() { + return this._bold; +}; + +/** + * Set bold for the object text. + * @param enable {boolean} true to have a bold text, false otherwise. + */ +gdjs.TextRuntimeObject.prototype.setBold = function(enable) { + this._bold = enable; + this._renderer.updateStyle(); +}; + +/** + * Return true if the text is italic. + */ +gdjs.TextRuntimeObject.prototype.isItalic = function() { + return this._italic; +}; + +/** + * Set italic for the object text. + * @param enable {boolean} true to have an italic text, false otherwise. + */ +gdjs.TextRuntimeObject.prototype.setItalic = function(enable) { + this._italic = enable; + this._renderer.updateStyle(); +}; + +/** + * Get width of the text. + */ +gdjs.TextRuntimeObject.prototype.getWidth = function() { + return this._renderer.getWidth(); +}; + +/** + * Get height of the text. + */ +gdjs.TextRuntimeObject.prototype.getHeight = function() { + return this._renderer.getHeight(); +}; + +/** + * Get scale of the text. + */ +gdjs.TextRuntimeObject.prototype.getScale = function() { + return (Math.abs(this._scaleX)+Math.abs(this._scaleY))/2.0; +}; + +/** + * Get y-scale of the text. + */ +gdjs.TextRuntimeObject.prototype.getScaleX = function() { + return this._renderer.getScaleX(); +}; + +/** + * Get x-scale of the text. + */ +gdjs.TextRuntimeObject.prototype.getScaleY = function() { + return this._renderer.getScaleY(); +}; + +/** + * Set the text object scale. + * @param {number} newScale The new scale for the text object. + */ +gdjs.TextRuntimeObject.prototype.setScale = function(newScale) { + this._scaleX = newScale; + this._scaleY = newScale; + this._renderer.setScale(newScale); +}; + +/** + * Set the text object x-scale. + * @param {number} newScale The new x-scale for the text object. + */ +gdjs.TextRuntimeObject.prototype.setScaleX = function(newScale) { + this._scaleX = newScale; + this._renderer.setScaleX(newScale); +}; + +/** + * Set the text object y-scale. + * @param {number} newScale The new y-scale for the text object. + */ +gdjs.TextRuntimeObject.prototype.setScaleY = function(newScale) { + this._scaleY = newScale; + this._renderer.setScaleY(newScale); +}; + +/** + * Change the text color. + * @param {String} color color as a "R;G;B" string, for example: "255;0;0" + */ +gdjs.TextRuntimeObject.prototype.setColor = function(str) { + var color = str.split(";"); + if ( color.length < 3 ) return; + + this._color[0] = parseInt(color[0], 10); + this._color[1] = parseInt(color[1], 10); + this._color[2] = parseInt(color[2], 10); + + this._useGradient = false; + + this._renderer.updateStyle(); +}; + +/** + * Get the text color. + * @return {String} The color as a "R;G;B" string, for example: "255;0;0" + */ +gdjs.TextRuntimeObject.prototype.getColor = function(str) { + return this._color[0] + ";" + this._color[1] + ";" + this._color[2]; +}; + +/** + * Set the text alignment for multiline text objects. + * @param {string} alignment The text alignment. + */ +gdjs.TextRuntimeObject.prototype.setTextAlignment = function(alignment) { + this._textAlign = alignment; + this._renderer.updateStyle(); +}; + +/** + * Get the text alignment of text object. + * @return {string} The text alignment. + */ +gdjs.TextRuntimeObject.prototype.getTextAlignment = function() { + return this._textAlign; +}; + +/** + * Return true if word wrapping is enabled for the text. + */ +gdjs.TextRuntimeObject.prototype.isWrapping = function() { + return this._wrapping; +}; + +/** + * Set word wrapping for the object text. + * @param {boolean} enable true to enable word wrapping, false to disable it. + */ +gdjs.TextRuntimeObject.prototype.setWrapping = function(enable) { + this._wrapping = enable; + this._renderer.updateStyle(); +}; + +/** + * Get the word wrapping width for the text object. + */ +gdjs.TextRuntimeObject.prototype.getWrappingWidth = function() { + return this._wrappingWidth; +}; + +/** + * Set the word wrapping width for the text object. + * @param {number} width The new width to set. + */ +gdjs.TextRuntimeObject.prototype.setWrappingWidth = function(width) { + if (width <= 1) width = 1; + this._wrappingWidth = width; + this._renderer.updateStyle(); +}; + +/** + * Set the outline for the text object. + * @param {string} str color as a "R;G;B" string, for example: "255;0;0" + * @param {number} thickness thickness of the outline (0 = disabled) + */ +gdjs.TextRuntimeObject.prototype.setOutline = function(str, thickness) { + var color = str.split(";"); + if ( color.length < 3 ) return; + + this._outlineColor[0] = parseInt(color[0], 10); + this._outlineColor[1] = parseInt(color[1], 10); + this._outlineColor[2] = parseInt(color[2], 10); + this._outlineThickness = thickness; + this._renderer.updateStyle(); +}; + +/** + * Set the shadow for the text object. + * @param {string} str color as a "R;G;B" string, for example: "255;0;0" + * @param {number} distance distance between the shadow and the text, in pixels. + * @param {number} blur amout of shadow blur, in pixels. + * @param {number} angle shadow offset direction, in degrees. + */ +gdjs.TextRuntimeObject.prototype.setShadow = function(str, distance, blur, angle) { + var color = str.split(";"); + if ( color.length < 3 ) return; + + this._shadowColor[0] = parseInt(color[0], 10); + this._shadowColor[1] = parseInt(color[1], 10); + this._shadowColor[2] = parseInt(color[2], 10); + this._shadowDistance = distance; + this._shadowBlur = blur; + this._shadowAngle = angle; + this._shadow = true; + this._renderer.updateStyle(); +}; + +/** + * Set the gradient for the text object. + * @param {string} strFirstColor color as a "R;G;B" string, for example: "255;0;0" + * @param {string} strSecondColor color as a "R;G;B" string, for example: "255;0;0" + * @param {string} strThirdColor color as a "R;G;B" string, for example: "255;0;0" + * @param {string} strFourthColor color as a "R;G;B" string, for example: "255;0;0" + * @param {string} strGradientType gradient type + */ +gdjs.TextRuntimeObject.prototype.setGradient = function(strGradientType, strFirstColor, strSecondColor, strThirdColor, strFourthColor) { + var colorFirst = strFirstColor.split(";"); + var colorSecond = strSecondColor.split(";"); + var colorThird = strThirdColor.split(";"); + var colorFourth = strFourthColor.split(";"); + + this._gradient = []; + + if (colorFirst.length == 3){ + this._gradient.push([ + parseInt(colorFirst[0], 10), + parseInt(colorFirst[1], 10), + parseInt(colorFirst[2], 10) + ]); + } + + if (colorSecond.length == 3){ + this._gradient.push([ + parseInt(colorSecond[0], 10), + parseInt(colorSecond[1], 10), + parseInt(colorSecond[2], 10) + ]); + } + + if (colorThird.length == 3){ + this._gradient.push([ + parseInt(colorThird[0], 10), + parseInt(colorThird[1], 10), + parseInt(colorThird[2], 10) + ]); + } + + if (colorFourth.length == 3){ + this._gradient.push([ + parseInt(colorFourth[0], 10), + parseInt(colorFourth[1], 10), + parseInt(colorFourth[2], 10) + ]); + } + + this._gradientType = strGradientType; + + this._useGradient = (this._gradient.length > 1) ? true : false; + + this._renderer.updateStyle(); +}; + +/** + * Show the shadow of the text object. + * @param {boolean} enable true to show the shadow, false to hide it + */ +gdjs.TextRuntimeObject.prototype.showShadow = function(enable) { + this._shadow = enable; + this._renderer.updateStyle(); +}; + +/** + * Get padding of the text object. + * @return {number} number of pixels around the text before it gets cropped + */ +gdjs.TextRuntimeObject.prototype.getPadding = function() { + return this._padding; +}; + +/** + * Set padding of the text object. + * @param {number} value number of pixels around the text before it gets cropped + */ +gdjs.TextRuntimeObject.prototype.setPadding = function(value) { + this._padding = value; + this._renderer.updateStyle(); +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Festa-di-Laurea-piena-da-convertire.ogg b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Festa-di-Laurea-piena-da-convertire.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ecbd6b3d5762c7146ddb47437673546cedb5df98 GIT binary patch literal 64404 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≈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 literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Fire Empty.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Fire Empty.png new file mode 100644 index 0000000000000000000000000000000000000000..d49254a0bdd3574f5011ac73ed8c2824b3368a61 GIT binary patch literal 5033 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 sXP~mg{nK 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 literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Fuoco 2.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Fuoco 2.png new file mode 100644 index 0000000000000000000000000000000000000000..81f3a47073793dfb91512066d481dd2566553c03 GIT binary patch literal 1607 zcmV-N2Dtf&P)tRK00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGr5dZ)e5dq33^FIIp1>8wQK~y+Tt(6N< zRAm&$@7}%l?n@AHeV`^PIgF^_yCfAeUx*-%EqOB}y;tEg^bzX2-W0jd zcoN4>?GZNgacMzFfBPIcye9?R%V@KixjD`@R1ReEFh`4UkC7UtDhLYF7Pe~_$jo}q z9-ZRPhV@kKRG(x+9~U;n_rqENuGPx=yww>ZD(4DtzboL(oFT2aQyC)$S|)Pv9^hf0 zAfR-LxQ_cNzDK$_P6V>$Fi((hYgj;R-Eu>B9^OP5$_EP#_gd1uX(u-PXDSc2xO#T~ z$j1BrC#rIkC9Yg0E^m#Tz+8jv^4OhbAb$=qY7XZkNZnn4rSBzRLoG`vQ3kr zB1sO{ZVC8C2G=4Hh8cdJJ(%8X5euV_h|^@zXPeEVcvNqq&)+74B}GE{Xdc!$9;LBO z*0E5IyD`Xrr6p1h%P;|;EnvP3&Q!|2SVU=*RC;=Na6Ak3krx&w-3)DVyt+FD#meCc zmr&eU^Ho7|l#+!s=8wa1J=yU281}W-*$xGL$joPRXG=&|98|)vGrS{nJ)MW^S|?+h z0K>+%KVI7rrDg8MoXwpU;mT5}8;+lPl=&@%@s5&4=HU;uzp*fm`+a6_u_&?4m-b0An8#58ZKvZtKs7R7f@z}Wnln+v?PRY0U<_ka23sso zucg!bSO)h75w&$<9W6&yyokrAm_L3R3G*NxRSP9}S95U8RiHGI7N@CTd|h?7 zF7Od$uc_?DK9n(?v|ui6C4=@%Z*jjVqHsXqX%^<=LSJn{WrQ3R!)d=s9BPti;baMp z9z1UK4Vc2h>bcZSJ4zoy-7$m~&~q?n?t*TQ%pgmlSi0 zpYdUCha@)j;$#9m8*-Mcrkgxe;GWGAoZFSCT(5DKXSX#V}0uHL`iZp87G-|F? zO1xG=b-n=aF{<=D5mhUwQ>P0KeY)R);`DYochcK8R`6Pq3vMfmQ?*&vB+=!hs<%$% zV4X}?(NqEUHI(!aCC#JjDW8Y)BTAem!j!1Kc0W1bm@!dpGbE~W@^oPmOXs7I97U5_ zrxhn?^G)NFMGhS$9K)e}k{r&})HQo3>24Xkd+B$qq?;gtv?QJ`#qkQKb)4v~N+7Y< zDLyE8QYs#CH9F|+@@Qq5J(`DU7>_cN3i|>Dyc;R$dJfn`J6)zg`B(|&H+Yz11enK) zBq=;BBPHA$;lGrns;3~PQ@6`QgSOv`@-HeIB)ZHbE0$OR9y&Cvprp&_SxGWETY{02 zm|_&Dnx}v}LxLq*!k+`1fA@V%@4=ZmUBh2d%f-kxq54-;Cmj6*l#hYGOuAz|sKIri(TExWT+jmgvLc2{i2sD^9sIWH zyJ?Qw`m0Wx!khe1+@VR%mCk-K7a{`NW^$R2yR#u2_ZI?|`C*01w>$s<002ovPDHLk FV1g$!_JaTb literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Fuoco 3.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Fuoco 3.png new file mode 100644 index 0000000000000000000000000000000000000000..1e7fd0faa96ed1cea2b4b957f1f032f72b658ef0 GIT binary patch literal 4925 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 literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/GDevelop.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/GDevelop.png new file mode 100644 index 0000000000000000000000000000000000000000..30e4238dbe79920ca3b271aef4988c6822c243a8 GIT binary patch literal 18478 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 v^oNQ6|83s7X6WPmn*S+P~-p zg0@?A0yg&Gp7nipO}L%J4=DY;_Mqz?z_c&$ z=^+gYLLtfm*c>6|LmulwdBQ$OAH+RCcPGZXyZkCtVLs=wHdE=dEBFlp(^jR^;%G7YHDi{uuPTA9WA_kOLh620{t@Xv+491Q2-`OF#gC;qc@eK(LU*6?ktl zY5*12LQ|C2AOVpmG(jTJWu%ki0DxBNAU%X6axl7xNaSL`wFJN(uE>GeXi5JzKtT>b zI+ujq!a@!-@SW4abEJKfm_7qWTmU?bIJSXwum>3+kSgQ{he=aWCee>fD|p<< zk0AS*eDADr+FMy1(j|fU%W~lYI*OS}oq#zEUt}v-027T5`N%BSfq?_i&=Zdg<+nT4 z<{${IOivID5|H~G4)#uG`F;X4!vG!!kD{4-f;{S>~3YlmBJvRdy*zz zMU(?1xQg;0hXs%VFlopN9mu?Ko97AbMz#>)y0jt?1%>~?r-o(Hg4>&Kd=Na~(PaR* zS?#aq+o@_!bhgdhV_l-`w1ma(2pK|4GiuQe4o)bWlM7zUVgh2mE}HWEyKAVS6h2UH z%?nKjjMZnu_qL?zqO1=m_cQY`5``-06<`xd7`C2rjDU5fV2=p6{p6o|oFRe^L-ugq z2O(Zgczsem%H-MB}0ip3lJ215dT@TV9!}z!9`O~j*)a+~OGhG-{IXX>J|NO;qssW3UUpEnb zgL(p8kc^+SOXpIUY4ed(jlMoziKjjZEk6zz`3b$#2C^HIm1CK}O zbBOrb@xrA0zXE2a)3xCJ0;rFfF2YwO&5Y4sr$N9Trm_DB*Jl>?bm33@=A{ItYRAM4 IqGM100g}mVLjV8( literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Gioca.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Gioca.png new file mode 100644 index 0000000000000000000000000000000000000000..78640e62496e34e5f32a25c3a846845997dbc64f GIT binary patch literal 5916 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 literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Laureato 1.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Laureato 1.png new file mode 100644 index 0000000000000000000000000000000000000000..f59c688ec012a2351f1b9028ae378d27aae373c4 GIT binary patch literal 39702 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 O0000nS literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Laureato 9.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Laureato 9.png new file mode 100644 index 0000000000000000000000000000000000000000..42c657a98b7e756f4d744b8954ab13d373386da9 GIT binary patch literal 4790 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 literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Left.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Left.png new file mode 100644 index 0000000000000000000000000000000000000000..ce0a4007fd1396ec4adf8a0daaf5bec12031ecdb GIT binary patch literal 12316 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 SFh}J00WcjC?e}+`Uj7f^vOm-S literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Left2.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Left2.png new file mode 100644 index 0000000000000000000000000000000000000000..4dd314335f1aa3d24ebaa56029410cedd51bb94a GIT binary patch literal 17437 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 literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Lose-da-converitre-in-ogg.ogg b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Lose-da-converitre-in-ogg.ogg new file mode 100644 index 0000000000000000000000000000000000000000..2ca403eff0682d62293deee1bb03ce1719b64433 GIT binary patch literal 67218 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 z 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%0A^X{d?iM%3zwLvbIk&PKsvsnq;9FAY*v zzSCy57=!;JR&V^34?)>S43$+aPK&Q|#Qsf;v%3S7s+#BKAK<>`gZIKbUte&4XMcVw z*DLhCEoFIQCp|L{0ENXZmD&T0zc0g+SBAGML9tE`a&Yi4@Rzhm%+;ksP&Z29r7uG?6s zF6P*Q$6|J2=EJqd&L-N@{?eXd%TQvUG4ArnB<6%xen~|x|5)e zhU1St%j*1}ezLD4@~V8ygdsh@A1k{?BmX?*%rK+ZWo7t{;7>UjtI7wZ=_>`j!j*(S z86QqN_b(+Y65iWF&)d3ZUce{ul3AkSu?)+v?ACQ{sZo%Fy764LE!ROf6`CbS1yg3;0Z~ zcDy)bHhFm(%-a04GtbkObnB?tU)E3geV!K}J}YkyR_k!suH13I-HIv{;wk%;8tW-= z{rWp(Ar16wcl@(xQ#HhIMlsUsx;mhJTma>wi!1C)i4?_1rNiXxJavxA?Ti&2OtTzl zqTb!xpwVFfMZc#bVEdNs+{StwErCsdSa0KD+iQnJ2!GBQM*fBbuT|lQ0Sr(8$#`M8 z;gZ$tEnD_@I!7ZT$+%mFV2-V-P4aUr5B9$#a-|ur`Mv9x<#+Kb2(HA}#mQN^zO`D?j56_FLH6A}ZnjK6iEvHM(*`YIl(BJ zyo_HPT=ezg=tMA~owTnA(YcZX@?u`ik^06kVJobVP0~!(eurjW`kDlM*^l^{abc&= ziLUtRPX9=w3P>EZ+=>^)ljt2iEA_vtmNVCtEiBh`;*gwU(WOjr994DNtOXPKY@yg^ z>L1RNq_>_exEb{8Z!*`Z4|#ZN&u#~@rF~<)UC<&bM(VQseOtzlM)_)y*u~ctwIRcl zhv|Zmw%SO_22}y%qW1BX1Qse3g#m^*t`rBreIruylD!^`Y+H>$9GDt0wL5~4@)g(= z*WmT*-rHDQv{HkRYoQNUF+`t2OsrQ-F#Quy&gvc$eESq-QA8v4S3yg~F{xC@G24dlk>#I3CpD?^!fuJ2DqhIUNrjFLgC-j@f|F+_ zQok)mtr{~(LJ2)x4H(Y`#^EWtcgY*SesVz); zEFodYUwUV~MQYV&-O1zLwfPfTgPTSC@NRN-4P9DR3Y)YRo0CntkC`4i)$w-KQK4rb znpUypz7M7KSX`u6lthDw3z4;h*iGQaPBrdBMJ*SXALPyz$L9%hJJLhgL(A`asmY7? zD{Ze$s-rF=s#N|A<7c{v>TY?HL{$s=L}`$|*t)7Jl5(Wb^ANm$DP~*4J^n>oXRGOg zDG>@#kL$_0lLPMoEGB(`dXMVshtN#__PaE6Vt%r9o=|MtA=S{p0(7mMyBAc*eV_IT zoZI*GE?^3s@Z7CCfQY_kZP~pz0xRWlu63k97rY6gvg)Bt;HXku(Q%K=mX5)TB}rr< z$T0a6nYUAY znuLOlJ2Axk-~^Xo3|EuDPKfIFu74to_=>pD^tRg${_Ox360Htai@LFs`6;4K@gEZO z{mNr}(e|udpg)M|S!TVjtd`G;r>8$@!}=Z4P%fXO10zICd(_-X8J-QGhnd(^??A0a z5baTX=HXs5yUR=&j@wx~`0Ak%{>`SV*H%j!P4TSNkCnQs7Zj@7TM}p< zW5qxXTGO67q8+zR4)C3i$xPPP+8!AqnApVI7WC=xGZ;78nMnUhYUL-kQL)X{De@_) z@fSjS3%cPCZa*Ti4>8{WbO5&m$2ntpZR8YaW(!a3;pR`w23gRZ`)rSwTt~qRP zXr~tyXLX;sB@gn2(M}n4+gsBM$UCCMv3FUZ`sz{rsHzVgIbbSd1QmD!ka~~t2UY!r zvhOf8f$pv(zM<|$r%x7t_xMCajp<>&mJri8MB!Q<`~Pg6kum z13Fgs7&~+mISLhG`1(mdxv}dk$Z_B0hnf)aud-+^uaC=kdNtg9m2k%0h?n>0Z^0AG z?ak}{-*E4pYH?K2BW^;QE72-p>oDGDzfwLCWwi7ano#I|9;$>Sv6Gi)OtFOqO0Mmt zgdnjEh*E4w{2ls|Y&oiSAU16v_vf!qiJ0!DDD204T_jBg$5d+8fa&BOhNf9OTK(SboG?6#I;>$|h&I z&GSAZA25E>BsOGHOUP*v=pd-%$mu1f(xcZ_`muf0D~E2eT5U>{wZPtV7BQV08RG34rVCUiqi?x6RZQhM2d`A* zZXRSF#NGyKsld`DxP#4t5K44rNluIHyNne6w)n9cJOg z2IqD6&o0ItFT-HGjB}#*`e94n#|)tH$a;*Iq*=aq_6%m?3TBA{Zv=ki5K&qoq(VRU zP4EI@U;u566DrT`4T31jSc74xi0?W&F(6s`a=@B?@_Es3cQ@Lwe?TN>X*2Pl6`K^X z#CMK?fmaPDeTxrWQsZz@AKW}V)1FC$00qVc2G?>Wk)TqSn-~)rV3ONyy$Cc9Uj)F=i#~Re+Yk1vu1BWH@J)8GikYtpUVx*MW32({i4+)K+@9vIkyxR+pPHj?^8f&lGDj?4C}bzX%c0YC~y2G3J6e5WnliEwafRmF z5(-1ls*K$PcgPALt8-`%C{%h+j~jg-1F=m#h1>R4FY8seJ|n>mj-5T(Xg085E&UD! zM@U@Rl$tZ{CL34X-&{BV0Rjl!qQbF609a!i&^0Eh*I&E z^Fp(<5lkvi6aFV6Bt!`GAOeLY8N&1G5YR4`=LV;ai8G5SYPv75+p3YKfnx6o62ciR z1fv3o-l^$XDEcsn|yCI|FLj%cbBmrQP z`+vR61&AX(M1745O?r3hGx-@|!mF6Zwz#N_TedQQz+}k4)lTMH2x0`Bu2Uw-#xdF4 zE_XnV=M8%E5g0Sprk1Msdx7KQ1bW-G*4dzX?< z+994%boPcO2xp>`27^NNX&xT1FhcaF{H6NA;pea1!EtWN-+B7+?mg~*KBNweeU+Qe zg#);z?t(76S`~mYI59OrX>?=R*R_XFtrI!LpD6a0K6T2)R#1D`YQ6JfV?(*qfEWga z(h2GZz*l=ZQlG|8`;`*@TOPUaC#l);OV%ZA73YbT&=lMH3|QdF#!_y6Gu)WV9#=;? zmWNEJ`a>tpQ}qWRl^>RK=Q2(fIO?i&IIZjts1m;%1dqX8DZv`boy=T12_Cf6Ze_9{ zzy3_aF?VWLyz9vb`hm;nMyO2)!%EXM+*oLE1Hu$^QwnXL7ZdsvY_ zSCesyc$U_y(i9dzTGQ-_q_a&BOVV2@FB_0dI{1pkV+w zld<}lNQ}v5$@ZtU<~^_XI8k*iM91(?z+}B!PP{~s8EqNe$P@KxI4g8cY6)`QgMo2IUR(+&bppEBbIZL)nC zcjej9DCkZ>>#(Zy;*q))_Ybc2K%7lI|3}Bg{0Uu1#}->3ssqQ7B$s7ARQo#V9mw`qeb0nD~097IyeBjIF!(w?AI9}yRt+BH~>R4?z~m8>`|qz@^| zFU1m4kT;AMIm*eQ(=g>JbJqUV{i$>l{{9Wqs2+*XaYsJSU_*$oOl-FuG^m01+dek) zX+W1t_1dl4h}?0pX@|C(ihq)LH5255JpwtNrSGQQanK}_TjiLf7pWCRC@6(GrQ8f}Y$ z0hXzl$B=9GYIWR#{D#C$dh@BPtfpdEt1XNvdy0qgx=+$wQHw(asLQm3?EV>N+nd6F zO^o7>r@hv8yA?5%T-vZ5_+N30r5H2QyGk(rtr)G!Xi!?!_WuR7WPReb@dcVaB3m>i z;OSJ8d99PfC-c51EbH6j7HAFUCd*qHPuCN-&O9ly(&%KAWpa)jD0j^= ztSRi?cHvW#O@OE{Cvt(1b3wTvvID3_^zo6vFFgWg7QGv$N5NAV0Yz*EHmaKt`Art6 zX>=1pRj{ISwxa?m4 z^V%L{-RYfrQ8Y%$LZTEuNNIz)p{Haq z1qs(LcoVt}CiwJeiMuUnM2!b)^V2{|E=PMcA$Rr=ZJTO3o~*i1z>juU3xxA z3>p)8PJVL4Rs}{OVP<)xQVAOJE`6NaB2nizdY>Pw^&PKfb+z8ZlhhL;Ja zx!X89&!MXUE+D0=GK|f6E@kBRall4@0yI&+MXQNg%m|}-uvlp<> zJOwc}V*yXL1HCqvDda=bKf=}LoUv}Z&qcxfd!7EeU);c(skQV2Lg0JZMfN>W;wkS~ z!S^PzH%q5OBwaH7-NAjkwQPQwk`Ax0#P>rpt@pZl7iz7R_urFOBo?^~blFDM?}z9F zy#5)fdyPuRAsnQ18o#iAJG!`XnqI=A*kH1Cvx4iU81+@;Dd4;gM&>_g`5@{;z72** zg`cJH#2b#zV?(M*a8!Kw!;2Q@=>+J%Qt5R65Q7PVQ8dXrJuy+lhOu*i3m4<*275v? zGM1`S1L$2+c30TbXmUO^6EGNPj<^227pmXp@My+)*+Ig+a4P=f7V$PUSp>dVoe@5v9?@l|6XaVWRmEt3 zKkAc(%yW163wb?%{L;{Sr?p&>Uig?=>FY;F3s(a;c}pcLI6x3|ZnHJN3)nBrsZkWH zmaT$EBYSLZxty-0K;O|vX)&!fgO}K5iNBj!H%O{ferJRrbTY)65p}OHH{VIvyHBsi z_60k_eFeRuLwP@kQtB-=FIbRoN!>e0h&yV-q;QpkX7HlDIOsPU2I8-7Qb~I7R18)7 z!)JpMBI&J@#8$>jLGE}epu|`Fw8odJVFMi)N}1JMfgT~F5X%Bds(Y@>CF= z2HXW6SjvnsgkM*2K*&_4tPeS~?-vb3rmNEax{|`Z1UA=(?F0(|iS3K$d1&kfWd$mj zNPsUua$-O>VXUuF>at=jy5=5<^8|Fs2{Y-*>`wV8wx zipAI1KwYq%FAW5N@o<5@7nFoyrPXVwOExlmP@5IpMD+8!{j0 z$N=gP+Fw$r@VXCFz$XWf_O$r-h{kdDD<1jWgrG(&2@Wl$(b=jwuU6|;g`y{=av{BA z+YBm?FwP_y(dRk1?5ymUv*N9ms=NSmX+I8nJ&p&^RYw7N(tJ*+^QZz}1}CRUXJ$|^ zONpj$a}fDwVQzX{56=j5b-s(&ocHX;7ovyj9#M@N+@zr2?0_!~F=pyG@&(2V6Y%oR z8OH>`pmggUdNL7wzT=FCZzXn`u!5lwmLmmlpa6ifVPF#wf;EYD3x=P-zL=7Tszv17 zdBKuUBcp&Vz?x3dxZmZwyCZ3yGP1cVwrqSko@=E`*D6DHMq(zDNgHZVa5^crzeU|V zTAIFcdM+3eX?6bXref&l##cKT@=U# z)!{oHNKU?6@9}fzJU$sM%WwgL&FoIjbSQA{N?7KeL+AEVy z5%t&b@{2V8-fqDtIee-V+5`McjG#>3ix=KJhm>dVOC1XCZi!!9)T6$iD0*+5hF>-K z+eJ|rR?`3i0!Qj??~QkPG`qDZ_~aVHe_?25HN-nhZ_g-NQM3seEqoyLhEq*8U+}9h zTaF6Y>NR|6J4V2S=S<4$?6IqtwI@BUB{Ezw9Y4T;?5lLpc-r5=KU}b>z!OXa^wh-# z#m&J5?}wP=TBm?RtR{m)JL#^d`2ea0)hKa}feBf*sIxVJjkH+mV3G9=ihYNhxmPty zyi5dm3m5-%mDhoaGJg7(zXO+L7^K4+t7X*a5e_@H&}#E!*K^*=f@D=gI2T&*rT~a+ zq%#8ll-2)gAujRel`QMtlHI%oFQ8~I6}>v(Q{XpO0eOhke7K|kz+67k;xjBzEY4qC$rRpY*;1Xing+c(?csbsQyepWgxHJuK>nh__@XsJa ze{!zSe7y3IX+}2G>C|D9vhA;xoo1k0(B^P*G#MRy< z@xL%FUHiKMha))~+_wgw#6$y3rh~@dku8PLg~6(iBwttssTf2ycnT!NK(>eOBv%an z0yJaToPj0ZE6z)DLUpke*4`P1NXNbzXi(9)OH$Y$mpW?B@ox|XJ6}A&(^qHYG-S)c z&ozD_TMD3U|GXeAm~!S+;&-eI>b>@C`C|iW+x!-ml7{W>dT@xJjD z0~>io*=zfK263z9+W5Z=bijG;D7Ob0B|0Y`^Q%e?K+gu%;NKRD{u}%4cbyw4ZnYAF z6IFwdl|60acEbnKv0fIlGT4-%nxq1Jd;BMGG-TGd%IJt?y$_M8Cy;nu?-PCwG$nBk z60Yf*+3)zv5^QdX%)Ij+rqc*tztVi6v}H-rz51$XxbyCj>xP*7xx|mVD|5kWv4Vfu z7tPSX?uf`%pA$Z=g)&|8<+|>>$NC6?P%ND&ZZr+)k#?{_7|{h@1EV4mWH2pyPOEl0 z%eCiZ;Tk>!7ki9LaKge(vYb=!3Q-4uBKAq4Y~iZx^9P#Y{1WRo9^L-`&H`^fk|akv z117oL26>!cw!$$zN6c-95(j;vvzIX?7xKoYix-DeQM^g?v<>$Px%vI_=Uvb%y%8sE zejl~68q5r8___U*kVE53ulhR!|5HySv9`(1is;(S@nAoRsb>k1qre+S92&dqYk}$SA}FZi1qs^M)eQBdz9SaP-u@0t4fT0jieDq8iw4C( ztpo~|WJlh^bt1(doN3THQby~a0tMvp{b#ESdg8F8uq-aaKQf*k3L^TLmsa^pNJ~jd zb=@gwRPHRSQ_!_aE%f}`)F1vCr9kTUdE}9U&3yL8B&y z3A8c}hE^~#wC+HWCsg_bf9i!Fs= zyv8~Si=F(LJqLHg(4zV@D|P%7Ht-#GC#7~qQPaW0K{AmCB7+dPT=9l5g&>*0Bn8y9 zj(hv?=Qgk$WDw2eY;uAGW{Os7@?s$Clq5)~o6QKOMOYlvwC8ws((2FcAHoa^3&v4RfJ- zGNrKFToS8q(B`-%*s~-&9qpG=Ig+3Jd&+un`Rq)=%-`>rsRxKwz7-LBAweRIt5otF z9gzBX1mMNTEo=E2rdoY#aV!iui0>M57H)$e3@({SZ&ghAMy#&`iOp*s|As8mZTuytykd_L5R3p!0_C%B zGI9Jzd)HgIJVQSLxeTCODs+Gp?W@it1Yr{Tnj%}WZ}n~BUuvWWKEq?!NgKF0!BM&_ z1Mtg;QQ|FsuBdYB-q=qAep}Sft`yimSY%O|{##N>+N)%(`zx+TUf;!H86zTtr%Zqw z%#a;>3otg3873X!*Uia4jW*FDPhsKTfp{t6+NQ$E^48z@NV1f_8JxTCMdB&1-5t57 z;>ES+yV0zdAxo5?s>LXyxs6V}<80oO1T44hZOd2Jy9UA2>RuoheCBP7BX#2`HBFt! zNZtrY20IimgKLU!a$#%%Ij(LnE#OKE9TJ?j`gi(V+t>l0{|iAVGn6mRQbGhTD(0~% zZ5_NL3V9RJZbUQ}#M~-9x_xuBjBYr2(=KxToltca_}L-V+&a;q-8SbaRlnM&mHpr5 zU9z-QPy=OIN@fkSv7k9+*o$%`gH)MXRfc8kVqVqERcV@$Adv}|8}##-Cv5MVw}mg+`1H{>Vvjxn7Y6ju<%#d^#p3>*{#fSL1aE z*xPrmAKL7)@r9h?px7@iTG3o66Rpnnn!n5y4riw&vj?{vjW;<3&#=)8iJDp%3r3$+ zWATt4NKLr3YY zBK3?kwJeqrC+$GuTqb!_JQ1Jr6WH?<KL%J!)qF`~r+j*sIGX|ZPMq{Io zn=!jtM{}zLE-{E|J49SW6yG?)mg#m z_jXP;$)?38i3OEa@an!tIr?FC*$kRtaAjs0h^2?b?@H|ggu9i$u~#fOs$jQ9ObxgZVJ64tp*IMP8>ZFZy z(%6sxdV8axr5>7Rn1fzn#mjyyf7E_L(F<|ahbf&cO4a>%2!v~=xO+QUp#*LkcFr7c zz`9Ad-cjRUjH{v;-#QqHkJVlO3CEHq1wc$1X>BlYGVcCww{JJJ_&4T*E6*CuD1egtW1hcPti-Wy=Q^{Jh|Gar{>Z#s*`U}HXb3S{XL|uu04S|t_T`0wEIryB@ zp++&gi>h~aDw%w*Ot8PjABROxbic<_sT7K0z_4>VszctExrjfTdbTAAgPh6?1Puj4 zKX?91!f0PmClA~)KqBsHdapP)#Cw9t^ZUsMH*m(utU(`HxF26Jt ze@=+DEVpm^C;GAwcS$Y;I|zDz;d=4W|Q4-@Ba#5A^EcD7sZ|vS9ha zJCuKv!$Xu_`S(h96dWhIo}(!UnZ|2g=vzv3GT;AfgRkd2i3eH_VsG@*rla^nwtxOO)DXn&VvDXV)HP#mZiUZLHUX@i&OiTd zRdxOhLgQB5{f`noRt^l&2gAZ`g5X3zh$dj@4^ett&YesE zAmOKrYX|6GSrDwP&9S&rUdZ#Rbk7|=?YC8r6RTgG8<>umXv!5PzK+2(!N_8O?A{r@ zzGE!Cpc#dea9b&eG(Yv{2&yjQuATMg{rK{G*b`mRqhUSnz^;ss(pxh2zo}qF)(1{e z5yC`XhmLY@WGmAJ&w;l3IJIvL_?EwbpQunjzLVc9zTp9v2+mlDK;b_@`AP=pXHJz? zfZ0|NnG|};6M)uzL%^{Ax7O$R|BqA9q2m;W*p&myk?Ha3{@ytTCVEC!OaBWC0vr{WfSxYaX-&* zoN*bWSCCC?(xDzJR#Q6u>D6T(Gkc@SwB~8#tF2M}c#eR(KlU*-MY$X6W%{KC*SYq$ z)Rf=U2whv^T6DX#=T#wo6ugJa8eYLYvUf>c@o)6ifaT8YXgxk<3PC1`(i{m&yQs@5 zJD7es?rvL-Xo(94@4O9En>v`3YGex-!n=**)ga&9jhH!Dg+Q-d6qKK;+?PVWL1Bel z-UnYzK(ui20NHZKuj{T>N?I6oQ!tqTtHr;XQ5Yt0bc{4xy5-)ZEXCsfC1;#{^Ls3< z!5DYbPyb^V5*Z%Ek10_m)M(pgsjCMH{2P4yWH3)7mi2m=)17OwmLpP$XT7j{^{IVI zClVH&>*MEciXCsuQV2V8=(LS;D>$XcsOh1Pg6AfE1y#mv$f$IIE9K+#_03gMZOb6e zMQ4u25RK?W{@vwe;@ux5VervN`aO# zK~iD>7d8UWjt;yn3Fjo=a}%)vN}Me=u3tl9O_20pmFi6rpp=mFi`zbx0>6>If-7T{ z>}-FZVV{Q1i1039TWGzv=6?mRs2Slm2v>_3_IdzIyjtO+Iv!*d>LAWE{?Dq%@62W$W%V<9;$)D{E@0GB#Jp))v10gXi<%74bd19g)uOORNZh zbm5k#F%0u+($a!9%na_q5=>G)3V*ar+|K~a+VF+xH*RTC67#{rhj&Cogz6AkI`o*Skul>au_!R?-+7q`liP#s}4Kb8mDv`%{ zuP-*pgku^DSOn^0m$Dd{$JI$5A5c!K9x4~OcKs1qeznazLj#~jOInNMHsb$E8Q^a9 z^_@BqrF?H94?Qr2Ci)TlDb7FY`?P9>Bz1Ve$--x1~@iF=_8J z?F=eSOBR)#y z4#PdVzG7em(@6$gj*`vM;iWVstQd(&mr0?K7wkrJu*mlV$mwSWRg0dG!r+u56Ps?Z zJM@h_(;-FxldA({hhgdZxehaBHpSbgrXi(EKfEK}P<(15b<w)pLj2>&EfPl|8s3)ID6Di!FAqESj~DnElBpzY@++?7So@A%g^V+ zt#bC+nJS|5M{P*zT|GU@3f)J{ASVir@i`G=``_#V6yZ{4yxZdlHieukxhC|f^&VRS z!^fEhYTe9mVG(GJ{G{D?B1TT;TfaXgF{Pqgq{^tH80Yqk|G?`ZA$K3bBt19%27?_{ zNC*#Jhh3di9_=hU#|6Xyw3ROQU7VaSM0O7Ih($A-!<{n4O8Hc!2>-RJOWWACPljp~%NVCPE|4`_C> zH0?DBIT)aTjPqxT$QWII5U)^TRw5WgB!GUx%gjrQbG-<$fYoUT*X6HhDlj0dnkpQ8 z_+FDQ$+{BDBrxXr({tomPM3Rp*xqJeb3D!8s&JYMy2wR;?&2Q+EV7H{`J=nXu-X^w z^HHb&h|1Emox`Wus@!;59nW`#f!WblqE#47G4@Ol&`Fk{&#{tM=s=`n6?GuBwKC{? z@4|impqehsYalcy7rL5o7a?A0b}$D3!g*V%Gn=xg_|sVOdR%T@%tUji z?U~UynwZR4AA3&&1I$k1BXoc$a#O{?5J#1JEz~E|U;K83L2+ZTQBgCyQ_ruL2|t%y zO(P~MQZ3myu_bVToAC+5Exl$|VgT`n2-D#ZH=B1fe|hJ6ueZ5mpMHqeN|*AnB*D98 zJ*7x!0q|5tYBhmjTm=Z&q6$q1$EG$?E;qI^EsYw+rm<;I=j>DcWq4a!8KvitscjrZ zrmP;+Skz}7HoD%P=O5NAaB7Qei9nAdB@`9vEQK~(9eKXIZv8Vb>c4y#w(e@qy`fi} z_>TLeQfA~!cYc7vcW$?x!Gq>|?zUG7GoM;XW!S>|_*p~IzqoesPqCz*``raQXX70S z#+mnVFHTxy7AE#KL8WQ83{AT8u_)5=+RsfXY}k9VI?H0nlK^n*gvJKyp>g8ZnIrr! zUXzPLeT%>qgAC;Yst}NsX%(EW@yO2pL%y)5sI%RNhi}D`k+J4lPQ^=3eWW^zd#~VS zI$hj-oz4+uN!pK-T_{mGW)Ya-r1@(6?ZDvQ=fp6~C&KMSAH|M*%A%XOX%~}eqYe`i zPn*3#gs-=7x4UbreAC?7G?sUQr0jzvK@jmq>Wee#0_bHprPTfw!3p|f}S`rxV z7^(4lLV3pU_{J8}-LE;W3)i z*sp!eORH%vlBmwb|1@~C@dR=cKMkQx5gG~Gm8KkLQqW?A2ftuQ8 z{cF@FYXMsQpOUG_7j8PF0Jr8LfZ`4&E1!#O$6zqPfX%BprV@^b7TQiM89K1HCis(T zM*SbN4#5bO$o$hgA;N^P>i$aCu!pbF^>}qWi4~jozy3cjpt%;pZCVl3TE9FIq-X>W zIWyk1WFb>Vuc+U<*nbZ_j$O`AoLgMao^ln5M>9{ZT`m3{-920$KeCUV>yRqeI^Dzk`qMD7jvcoNIG{xICN$D_b>J2Ug63r*iH9(jE9xTvV z7Be3oO%wCh_Y?8Oym;$}{>)8x?EUk)aSIDrJJ>#V06qvQTlq%zKQgMy$f}Y6***9L zD$#&0tA|y}a&2KWESJ^gFEh?($~FUg7+NG+Twk_5?enYW%iucJWEOFze^-Cw9!>Zo zPg7IR+uQ&`wKTw`oBTzJN^t`-K2R-?6Q&s6dGkOj-NtGa>vhzMjcBs^JeCG^J0DH3 zehh@~Ay2Ofy+2Gt2B;~zVV^8BLo8K{rnrGYQ?0;l8Qc%zwg|{@=%4DqssI@*kX_dJ zqboyMw0>TqM3~Ykm`1`^E?T;Ppa!%Pja`s{$YCfoefpOEI81K)?vAJM9!d7Dtk#=teBEHd4aFWk~nnMUr%SN8|k9se(s7O>`duFryBsfj5otfT}JHN(HzbicE zIaz|ph{59(bXVs}1THhRP>u|jWX(XWNJTs+m6`1s)Gt0S&FO9p|1?ps zMPh|9My`^{UfJBnvrkj0CK-beX1(t)bFc0X&*I{|Kuh>v$Jbjv%PfJek6?jSXuU49 zK?o@x2k3oFLUZJd$SZ4`$lb@1+SjgGFuVL=4^HBQqBX0?Swj+|ZRby{gpi zJz_8iHPa`^71g0lZ?B~|uOFL^k$}M(e_3Kq4bIuv$VEICt^%*|=i*DT=*QF@A;vEmPnRrSuw#Rj3 z<%j3O0CS&9B{9-8h<>bDH~pEXG40|ZIp~@;Tz1`TYHD zw&K!sy$YAlKZFhySv_UKZG8@dJs6FG$NwGPd8nY-?msA^-Pc>xK5&I?Yj(f*f z?sSuJC7nT0;6Q5 zHdhBK`$9;cp1x>*hnvX6kT@&h7CH&3AQPkn*rqopL#FsbYuRohkWbiye1G#Zd|7`1 ztzUS4d?WY@7j5-Z`2|NvL+HSJfo}fD;l-%H?LM=Q9Mi!)L||4+@ppC{p9bUgjJcc3 zmjkFh<*mSI!X#N~`c8qs(Wer+H_Jd-7ZEikTg6wGWxlotRX15K4N21j%rXTbf}D$q zET7wZ*uHt)fgRMu_M`Ffc54eyY;CJ%#QB6R+e=Z0MBV77fLuvg&?h{5cP32xqZ%53 zG#47aF&b)w*c1fR@|T~f8K$&>F{;H<;-hRK0~B1L1MujBJ8{6SoI%{m)yMFg3j~FM8}_jrauXuiZrotKRB19;^I@K&0+^nhtV$4l0+my%w_TkjqLU&g zCy}IgG)PhOHG^x545k&QZo#l5ynnYb`8QWsaM~`DwK_=>KyuV-7yfNhips%7Rx#%B zE94orCFfw-Hl}YO_-&YO^Cjo)-0rM1gri90kj9aLa^vh$CZob}vWld(p#fQ2K|i z>4ctt?7c|6ip6lH^~Rcc#eo#XoXV?xP4!^sn<;k?WEGkZ4+$w){>FpIMQa%Ro# z6o$sti?o*l*+<-GDxs>rWmvKSWlxvhKV)eQ-v-poF4;5#61YqL5_S87Xo3zN>;ed0 z7NUQ1J)1LQQ4qO0j+13ngga_Ohym;FOv0Q-bFLb;HVh&FB-9OSv@~ZlJMg0Jq?LCp zYhEB8i4gc%DTqrfxbVBp!?aT<^oF=$96XZdPCRCHhF=}w)l!<)6F(?41fKk96_MAI zg;}tb#tG)nAg3q;W3>P3M9 z;o<1GhWZZqhGtUiCM$+3xMs^mWHl@1U`v3?;~X4`Fvyfsw656lH3o;G9vjqkHcd3_1BH9J<&ra0z@?n?TVPc+bQ-5WnfO>v6u@$U&Rh+1! z*Om*vgGN!-;aoP6c8hQU{hk18GV<7;!`~yH`K*4)Xq8;+*86nVxE*wNCPsYSr1rQg zkPS5ANn1p6?JypdEZnCYCV7P9!tjFqg!n#-+X4L({6r>q=)3^ML3jLMVV@)d*DMS) zDlW2w#-~yz6vW;q79#UXgn^<$W$_<2mlQFQZysK>`5P4?x(e%80WHZfZyG&?Lqo*7 zNGr#rE%T7_>XN;L?>3p({=S>Nj!W~K4P>%W#ou>4A4F){u0ZwVHzm#iS|HvgX3c7# z*dLdEc>Dc&?v>&F%~Dh`6kEPi{h=byirMvB$j%^pl&QOiQasNp+6}6444a_Ohhx8% z*O4?R4>5et23ZGD7@!@PG7Z$mgK5I=_R9xTfI!w_2o#|IJr0BI{{BDJP5;MTgaN&x zydsVgk9}lg{>Z?{{E>xeyLqf-`tRi5;eq*oYh!xzF79tF+rL{4JooAxN5n zd}?rYlR8|$r7Zg=P}pNOuz~Lj|8mXR`|;{Cyy%Z8l-QsOWfvPZ_%p=)yHn}U7mGUQ z;MT|``#J}?GWUh+$lk-@qgd>&y%jN zQxq7!U(O{X0K6vF7zavVL|SBgdJ`}&1c6Kpfon=mz4QH+Y7zuO67xaND>3qV8mqM% z3*3{3%g9^0-%6>A&9dW^bsT-L1E|%MMy?;@+IatVuSmd%AyisWqgK=W6P7n2`*vVH zCA!R^@4>M{=gp^J zkD?gSXF9v5$D<9iBbJ{lOrXXk3>l9i7}zOZF&8l6k4_Nq#N$=zZmAJ|8}tHJb1aT^ zbDQCVhxMPUPx+9spI)>!4?-Oi2KxblW{yxWjZ@$JGxlv_VI*71x6-!S*}C#jXEdB0 zYo>w7ak*ttav}hAWK}#%+`?^y^w*f3RyWyE)g#P%q1=*qWkPoPH&1UL}TS z-zC-H_|MS-B^#`}&p#_|J1+e*9QPBqDn{8=;;M4aYF+*=TR5MM$xN=Va)j}z%d6|^ z<@9_Q^5Q@Fl2$P`QDCgwJh#={nl}Rrvt>_ykbsZVB`S_PA&L9bA;b9`&rJD8=B&+#yfw8aU$aquedjr0Qv`(yEj zha?!KGl2pt<3b*1K+s|pYE6qK%DyG80|9iHIyjpCGY}y@wM)ei2atmx&6sV&nu4NX zv>x7~T8K7{N%zZV>AUaW$=`SueAQAPXAFEn^)VW+_h_4)(5NID7vv8(9?%h4>2R_| zU%{5g+dPlEs`8}%+{8p#?H>;iM8W0UGTfRoUtu|2xs=4PgPFH6nrS`+ zu@i{2J9dXJsW_BN_!ubVqmfQ}U6%xerpyM|%Kx^FaHdEA@+%(NzQ$lvlY_7k`ftNR z6lJgPL)d+3lX?3pan6LbhXUCME+{5r)N(;4zW&f^gkQ?omb+}-uwn=zOO16X_U~by zD=9VU|KxtRBN(#PO)wI0R>B=e>&e1)4N51!Hx@iwqYa{*GZ!!w4&X16b+ z&?8Q03=$b;D%A%h6zhMIFeV_8B~rO~$krh}U3`P;T{qfU#j(7CEjwZi&j-ouH$>|T zE6Ssz{E32={aI0Si@|*d^dZ@eCFy5TPS-1bVwL#_29KZ|=FC|UZglWnOhy7y-67}f zAWV-QhSI+fr2i^5&WsF~Ax1yG4Gzp{o(BxrI4#i5zlMBo(cy;u zEF}!A9RC&ExkhPh8nKaRwa!D%6~0Jepi{SiVRVgFLIE)LLypmx3ZEY7!l;&Ew z&ta7VtDVach@8UUJ)vF;IA|yX@Lw{_t#tH_)efvtgl!Qo@zFCBa?!8GuFhwHFr ze#GfBa58?bd2vk(XGK!8AHZcdztNjzsi?rcU>!wBRc`(M(H~wusmk+~M^Yi>{}ocsL>q|S;OA3GyFI8YO6o84N;9T5ap;cEfK$89gv7|E>@ed)gkMem{ z8@%PR`&uK*eeKm^>FGwhaG;2mbsx%~W!X}CShut4&z0h zs2s=clOwvTidE4^j+QxUi_sEJgD*9#%2to=gks^iy7ss%XGP6)9sLopzrJd>DL}#) z<5hm~QNnL#n@0z;S~l$U^(*;{;%DL^g8>;FREP>t6!)9pU?-P1`my9)PqO==MGHur z)&eu8LZIcUsbVnM!&$^F7;hi^8|3@WvpWFZk!ksHOXddgW9nVb4v z%O@Uj0c3pJts&lf4p~E(Y50&UwqKX!oO_6O9c~w+WXKq1KU^x`jZW#2$cLI}f&+}e zq(W5}Qo+RNv5jK3jK-<;reLg^(hMcmMIXHZoChZ^GbmnzJP`BZoYY=Qcm*?z&M=z& z^E)s9>w(hY&X76hOJy2-!B)-kDfM8=f-A!!d>~tzxkiIL{ijpYa#n?6TS3OA z9d{=2RWrZ(*0*)vIVCToQr2sY@`(u-uuSX}c~bvmqk0m4>}~P(;wNP2zZ>F!Uqo)* zxe+7>uDLx+TH^z`0!T{R;RI@XePdY~Cxti4VNNJRHT`{PrR-tVNYH%^Er8>{WFLDT z?zi*Vs{SyQgee+9>7UF&>_JjI2SAP%K7iA+vnvOS!IiO`lbsvMYu?PoYVLcmR)e#M zQH%d|r&EM3Q2UC1wdg07^t;JHjkwqTfDdnr!^C&^sy7z2Ji&-Ku6(!LteU@NvgBJ}XQ*Z4mX}I%5uqmn$Aq!lJn1 z$St6)zhnE3+^Q~SdF`Y2L5*X`6fNPs6CM98i3500O^JRIAR9KMi)(VsC1)$pvIclD zU#C0R32pxSlWN(1@hzm(!{+7dkZ>hh(sK)=V9)q_rf+(A=XsjFoDjOaE!TKmaFI(l z)`qziy`VO0)|%e}I*Rh!?>^MOgQ2SJ5ksz{Ci%9yeG-Ff@KWw`SY}9r`=3u7HeMe~ zk1V-Z7u}i`8z+-n(`~cUPk7H#eV(n|Cv;AAWM*6fh7yBf9!eAzqwUfmWP4>wAaPm4idXbNJoG6`RR6TZo z_Lmxde=eMJR))S>o<1*@x!9IcPVPcVlu)1kH>aTK#DA_QN^?T%^|nU5kxP2d67Qo) z%_rYKrFjdC!gzZw3@7+J>l(a$*jgP-E#nN&(oJA7;F&NR_b6F;c=@r1`8F(hHbcRG zY~@Esi6F@!&A?U|7$j0Sq$%^O>b`SeK9H~Z4{Rq)%7?!;+#isqzOLd1vqZ%EwUwv- zRTyAXDuzda!h#^^okNCgDuM`iDQEy*HxjsD|NsK_|W$OC+_0xXtT;-gd zQ;mBSrk3DpV11830inyj#ZlHXeRZ65>&G9FQrHgOJn5R}UmD|=9c!GtH;bgnSf#wo zNm>kVRqG6iOz;;^h2?Nf9VKsU8)0}b40uKtaMuLxvV~l_Qdn96X|LdJIYjJb z6Dfl0G+D%It+}-oV@d9^0J*e^ya%?2f0C4gSz5^sh3ZJ3RL8KFiudttI8%ErZIse` zEaVeZ@O$SG!nW1z?QKL%26h9+(qcXz*`e_;M9CG%zeZ($_4sw0NHRB!v`B91Hegon z{#NE1<$&h=)T>=dJGl^vWUqsh5~&+!_k*#9O#8#;q>3Le&n-L~*l3DNh5;FZFp#UX zu-knJG^!o_q`Zj00$MI1P`IZMl!o-trJbzOE$9-eI~!tP+)3@ns{cw@glCJWHA$bE z@;$(^=9Zhap-v@f?l@2Ql5$+%;B`KKA;Ol?V`yYKfOBW~igd>B6OpYmAUqQOdBvHH z6=d}-$wDsPjhehbqnP{}cm3)=1l}3ELKnCho|a@*t^~+U$dYgK22-O^o@1~OZd5S|-6SMf>s)4J zKEQ@J7JwXrIu|>#j(Fv|ElAL=cvXp`#Eq@77~T;Jli%+Lg*|u-8eK-7I1gvCU%bpt2PPa;pAqqEQig;7Qz}uftgWj gGoR@_kuyQqcz8IZw1CGf1i?xSx0{v%pvM6I7f46jrvLx| literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Sfondo.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Sfondo.png new file mode 100644 index 0000000000000000000000000000000000000000..e7548df043bc64b137c7864af8fa99a238f60b19 GIT binary patch literal 68149 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 DNq@ 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 R{yMp@e}pq}=+b{4{TJZjjXeMW literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Vicienzo.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/Vicienzo.png new file mode 100644 index 0000000000000000000000000000000000000000..ea3117f7a2ce825bace6fe73375b86e5aba67c10 GIT binary patch literal 56662 zcmV)WK(4=uP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGr5dZ)e5dq33^FIIp-0Mk1K~#8N?41Re z6<5}-Tj<6;IKkbaad&t3c6WDocXwCZ-Q63v5C};~AjFWM?_KB6$;|xszjrb-nUKuz zJqS^MZX?4*7o=tucpYwged!Ev~S#inVmi&)^<6DQ~Lg@ z6S)>Rn3rDFcO3>3!JADg{FK~)`=(9qSAG5KF}rIUruJyh!af}^(rQK2lKCv{+Yar4|Nrh- zA84NVe2F^WEmz@fPE9CMJ3iryWD(yw11mW=4bq@Hc)(V`wb zo7baDvwDB`Bo0q)G5N>wD&SL}w}H|v#x?kEtQwETtNki2sf1)1lUVG<#Hk~2GVvp} zz=F6ED`HB`NG!8s|Cx0x7{B8GxwDIVGr2jXF%Jh<0~>X)R^_>koRF`_o;tZHNd=XLECd8MTl2C5Ri7Pueeq}3zy7eV1H5`SaR&A=1 z6dplNQZ}12jrgQYuD-h}U-XoNFH_;AaO2DVs(h;TD?}?G#h6IB@_lEv;SxHZiGvmp zo^DKBxf${0wj8^(Q*1kV<^E(O=2MVU%BP>)C&D+LjJPZ^lk&KH>=;*1Zc!fWNVkvf zeA`=Rn zigGIC;H9KQrxNQIhG*bP;<8Oi&v*H4P9!kXkkA}+cAhL^>+y6ZO&?5tN(qH&1%!Fo zl9`^1m#;G^c}842tHQM#{ke2)5E=Ql>^M~N+nj`dk|6;ZdIV(|5Rz?-w$%_09Inpw zYpU$tFa3J93;R#4A-UL=E2mUAe^!mlm%5XfF_SHO6MmbM@QOCYCq;+A3K zxpG-F|B?#(4_6~PzA<}_RFJjS3t!)A963;j3nx|a4O>J&oX&5@i&?tu@Jw1QCt^fk zvLRh!Mq z>Q{qY)qlRVqQe3>lAFTSb){Tdm&3)91a7R2`-gY*5@rRju-?@H|YN7oq=TpqmsCLGX&jB-pORd(l{GX{fU+$boi^ z8~^GZl4_*!!c&~s?)uKHV^#Gz|M$!?75zh5pFS^lH+8Np1greED_2s21NF zYw&}y3a>Mz6*j3!ys5!gCe`0ot@7(JrDq3b_3y&0Uabh9KZ1qb+Tt*#^WQy*M>^G% z@#S|CSH3A$=chag?If=FZuvhkQkD$s$MDXrSv;fzIVOwPY+KmEVEqkD6j8Yp7Q zH;L-JO{&JDS*m<9N1aD=er4|A9&C89=dgw>nPkYSiCWAX)PtcNnliXuBSv&?!|CAo z;yU`1s#X8rP`K}iJR3Ib%cWz}uFRS^OHM!$+F5esVui$*J2`N=1UCzRk_&A9=Bjd% zia2vqa%h-EnEu%*c#K|Iv zm@-ph%gs4jxrO5rUmmSo$FQE`C@WaYxl@%mSve8z8$o7D5jnBR+&FubdsmZ{CwRYo zEuKtN;cmD3zm5wEMCRBkgWNr*im-NB&Wc%P#1)y7P-?~ggE^!mB}#nxF2+=ZdFx8n z@#VcQFI;4dW%+_6RW`PlDQ_9EDX-kSmr|hKH30 z#)ivC%r+x$eaLTf5>9?L$AhyCDcu#r&J(4?6q?bYbw_fuN-51L#@*VLteiqBwx@Fb zbWKhjSL5mpEnMAelU^K1O7`D!JTVT}X}*VcAB+78`Kox|%Y^ymezZ z`I|zOT@~z8jg93hT)x&15@TLg z;nJBN6s!+m&(R7J3v{`BN}c?4b)q6vaSoV;YoJB9s@?o+=reNI72l+#_@o4(p5U%;7|?o=KwRGK!o{$u?cW^B+1mmIsDer=}0x0dSsV4==)ng7vBgV%ej!4^%P$JOFT z^Xl9(Y54gG>xr+bHv9LWz|jh;(OT$^9)Q6ZEo`JQ^v3jJ_24daX;Pb3wQAF|aXtFi zt4Y^7wP;qo8iSkH{+Ao#Q^SUD9_y;{L|28U+R^~p)p(#U4A>wUZ@DI~*Q)TyLvla; z8eG+G?D&IW9WLp$UQxCAzYl#|HfDU6whZdfj0s&ordRX21kD^k;vlom@QBbz(08)JL7XIRH3jP2Tr={?(G zI=nj$qxxVvs6AF=yZ*~;_-0BAzL_o;Ik`IDPgUnzn_3X9#@lEWrM>iQ%ny?_c|5He zk7uaJI+}bjTY~Xv9~W2c;$MSjgvq0zOjF|WoNx_ZO5Yv>8P{(iR>rP`Bp690Lk!st#dnAoie1KQMMNXNz)T23G}&y%se#{J6;acOep3yea2!@0e7)v(n&fe1-*?V>^?%|8+*0Cp3hAqL> z%8#fF6JkpxZ7($^soavJGDl8a+{%e7yE%S&htiH+E@R=+kxU=CfT^QKkdS4MjiWBn z5h>ic^|_>WU$V7iSDw`>qc)j|*<>ddk)4u5Zc-edoY_N(lL}iS8ggdc5XzP{IQdQ2 z8hqVRJcpJBZ)dCWT86-zxtiRUWe+>4aI2-u@!j86VkLQNxpC<_pWpk6$bcxqy(92-31s=~>Eklvr7_~AG2*gVpP!DO zgHE#L)K1l_PVM)Dt($SHh+GRIb8XpqbPfBYA@-fxM8O^p+0bx1jY(9|3&SM+IBn8fKX6%ak*oRM~L5-%2)0#Lj@#d+5YPy_glduS{uJK9sJXE-!(?Yy9QC1ZNN+- zGW75cP*MI>dHsqim##@8h+VzXl&hEf;uTPx;w^#fJ-&urCrU^wbzn_JJ=SMdqf#2; z>?svaoTw(#rW`(?N_gTp+(YIN9Is7C;&1d*SM4D#wtBoYm+o zt&fd?Js!^Cteia$ef@=mMLFXWVfDvqfWJn^Hp7g%4XDe6RUcszG!mz{CHSQ;$JA{! z4qg+Pzp590&H==QWRVh`!`iG8Te!!NJX$zYF!h zEo#ZV!h!!%X8TVgKGcU0dn3-2WO8{;A-6VG@Y%jyJUVrVZ%-fK@!8!xzq*T^CDET% zZSrr!gRG95U#6>aFRSZ6d?Urbgxri|!UMcWaJT0|X&%=$lyPBW3FpglxwI~e%Hmiq zm&S3mRHlVNn5`H#p=#5A3m&Jo+wv+=9g_cvI{^L_xVbx$786E!XaJ}3GC04!h||TX z+>jx1zATL^n{v2&U=5#a&E-^nFjvB8w~5OoDV#|5;&8k(7c0X4tqt)itQyZlRe2nx z!q-tPZe5S<_ifcz|31v0za)Ldl0`(gJCp7zA-3US*7#eqJuLDxog zuo}^w3U^%=5ATW9${D|@m>teAZ>gAm71pHr(?Ct$`f0$y7CiHlA>#8-+ztMZV#tsY z+kJfeaWz~`h^aPt&IW7>cPBr{mVyv>dN!_24fSett)+p>G%cQ19%NjXHngnyEAIyW zmAD->X_jL8$iF#1_^9#HQ-e4AYbt-z|4tg^Sa{cH<%<6<3>q<3+j99LdbVkX$)urV zSuJOcmnj)03-H&Tf%V9)EbROdeslX{I=lnB{9JIKIf&(hI{c;$al^60)lXeo2flXI z;I)$`&t24DUtM08*5F4sHJ*C4{`azCW#1`Vr+4mv#nizp8`2xo(fuiK(k0h^6&r%= zxwg5CgYjOhvtP}@6lYGRhVa#)HQe8w!j`c~ zj~rEaySp0ft;thc6`nf(n}>(_WZf-JqlYlOb#uIz&O&?i09@ve!FS0xQY=?e=44FZ zj6qCjQIEJKQwW$flDNea@S8Q147>Ti$;mykuEP)J8a!3}v16mbGjmm5B-iJSr1)=k zsqoA~jUO!kg&Qq@Euxo9!(sF=Y-UY-cN5;65riAg#%{_mmi2GPn6~vX9MzjK9oo{m zrUrc*)n!2Q2F%eK_`GTt|1=(2Hsgtr3Xe@{@YGO6Isdh(DsMK5SZ)v(x>c1QW%)B% zCM}_Q)v)Wis!e};Ow-bz)dTIoiYObiG#&c3}t%nj!f=Yk6LP~bWk)vJxzMo zsYQ!A8ua+6E|YtXbEw+IKLxom)hDavLUmPnrlZ1l+8R93R^x49Bi^o2<<(kM-j<43 z>Z$RQfhL#rT26SP_pkrE_W#A?jw7|YHLS(LK|Pt&y$y>7b!BwNCfJSditqToq!=#4 zsBbqGbZx`xUhP=YCl=X?OU;^|HsVe)|~W})5tSkfa@47YzKG4 zM5_~#EC01Wc#i1xAANJdM~ffJh5h_@-#3e8NMu%rOc@4QDl%V#Z=?}^Tu_T|EE@5n ztn+xu@1Paq2aGZw+o{dF|32HdW?GL{^bwKt6=5u~S;+#E^dxA#LQ~E@U8H!fq^>T&925*^W^*4n*1zMtMW*ukHua_2^%E8cpD{*h*IaPshZ0FMt_{7!8fy2cr;ao zm*fA5`@#Qzh|95Mkx@VD)v3*}?&38}d~tPJhR!%GW)J8p9-%8^yDR<;ug{>?4e8!o z*6ZAw-Ypx`rg4{l`DE64TetgmdL154sK&PwRQPPFh@+o0LV&{5cr9V}x06(PI7x*s zCad$(wE^FZtH#Y~|G-VJe-FXw#>$`a?Y$SGXEB4J-KJo++=1Ei#}b`uN_3_nlSi~> zWas8g?AeTAAJ<`c$A*mT*PM(su8iv4hvB{E-l^K%KZR>k8}eXEzlqyMF&Ral!{E-tSu#U=Y}IamHT-QB zPrP!ZjEj3bcsy7dVW=wK$n@*U(h$}XRx57&7JK6$4Pa4=H@2D}k>%sLHF;puk;_wm z14h{TS@aFgG9)a|gvcBRb{^Y=nagyB4Ian@t=Tx5dJ`0HA{TF^Y>e1aX%NMqz~xr# zIbEWBM)2sxE$lyA#>l}vaW-*fZE+zHaltxOhxlJ%s57T`X-W>+(ea$!vw^kl4LO&m z%9ZIYxYJLKdjr*Z&_^0UUrYq@jRa7yC9qQd6E5x){n|Vjtj=eBRJb&#N%N}R{__Y- zu^=?hQ29r2a)~$lPVXc!--%IUdPzgfz{xZK-w$hpV3+Ge^#4)qWhE7not#H*avE1o?v)gOB3u1b z*qJeqL!}>cqjz&Y?I9kdn>4_*8oZh-0o5#3o=>dF!*&{c-dU5vIW4fZ{|!=qD=%aH z;9LX33(QF-zdTQc|>*(t>w&L;PaxxQhxOw>&pMG+W z`**(J&aIoQn77QJ>JWX+#sTuDxZPLD5WT^gyO6*ihV-@i|G zNfhY??!R3C^jp9`@!caVg`1<2$knl!3KMobpDLiNH-p?i7} zxv8;uSW6U|nnzZ4A<;3BghslNzabF+kmg)HtH$mv8eG2Ij;l8YiVfnzr3oY?FTlWd z61xsmu=!vniOJgfRj2ZP;T@-^e3L++utM=RfuC<33duDlQZyn)^dq6bf<;S4k)0Zc zmuDR=U#Tgk!j&t{F*T`4a*hoLPp{+PnF=-?j>9dm4TrXBa^;LFmn%O~-ZFIU+5j$J z8^V??Q-mGfY~EeKmVN0&r|CVcI+gbeuPD=BZW;R7lno)K5X_)dJ)&~;uy(D@4Y_#5 zV{i()d{u?D>uYmWF3>Z)C3{b%0w#7f%;B3{YykEEk+Tok3t89#)8{}tZ1ZNoF6}^I#JZ;XLR_B^D z#ARuOOVS9}F00As-sI+1Cq8F|XiF)(PE@e%XfAFcgGmck^RXBOF z8fOk`Vqwz^C%?G_#II7`YE*R!e+T3Vc&^ez}n>IMa|IX&B$w6+|Y_<@gB| z&RmcS7baW~W}LrTOT=#=M-R6oPV{BR;X-yCDr4)RLZT#{56{xUFJch-3&-PSF9Pc5 zkIvG0tkj)ObgDPrVRrxctF(R(j9btV+u+G~3T@q!^^^~WhNKG{;y+f>Xdk9DSA&m+pnB!%S9~^heibFr&wH$HmU=t-DjS zVb!7j_-Nds4&xR#W|C1;Y$IploxVzfEgcLk2ea6qC)VboBW|Ij#uVUU=1hKC8j%Uc zc!ez?EXjyvx+B@Nt&pO!G*WWhaPpsxz0W+fw6rv;4)N!}f=Oo7sM(kPiOkT1g zSYJ_msJtMHb;bF(nHk`ux0KBZVO**x``8CCyUt7q9 zbwym=T+D^_d7Lgu;#_GW=ZX?JofpmJiX<+UC2}?|ipr8$u9n4eu{eaI363OtF8=%P zd-?<8)3}azUc{^MQ+zF+Ce(l!6~0XB{%^mh{k~xb;v&zo+Pww{yg?0o=2(iO6+BFZJx!b@g}AYpTu-J zbs&D4$)ThfzwY(1e{`6bSel!e8)9Q^NpxTUA)fBUxjRu1;6bUM1Dk_gDDyO>)ZK*j z{x+=hv0-DV6Ng0+u5Bx&FxZ0t!{yj7o{G`55ri7fB}R8TdB*ct<77aA@hnPhmT@%Q zpYt0NvDTfuy6Vt>8hjbn{?W@|RbGS&2?DF}C_em6M6FSVF+^Nvs;uiyn<@FuivdmJaKS&hY*$?cSOdy_;b+tPO_4y0FXN zmOJapd3t<3(|UeP|2B>JxL!TlH2970sQV3Z%cHZ->!6RQ^zPs1re9z8C+>B4;jYT} zLWDPNDm-^r=Nlgt-X5q92W#?ebakG4ic+|VJ8@Ryd{F!Et9JG0M836ic-q3rSdSQp z^YjU5kJn=Hpq_XvnU2r=i6j~?rr6nlbdv>m<?nL|?WAnz2umVqd%udjc)Vx12}5 z$t>2oEM=pY4i&DtlsT?sy@xr6BYb&qK#_gqVKKZtD|$5{-Dbfbk`TAtx=(xQ+Jqlm z)cM@2;}7?pTYUYKvnoHj3K1MNdFoP)XRc~|pHPRldus9apepRH&UY@d%uSUaoJC1o zYH-V=>F@hc<8O(DeI{&~-li40T76`6cVl?7`poFo8tst-SlG7<24jUNvqljqaY4M% zOrrH?5^p%0tq~sVN{(Q6d;oi*TsRmhafd8l)Vd~D3X&z|+{ovL)^RK&iet$!oKNxR zOp-T6rZYGc@5q7tfA8~!{|HD}ROgm+*H=$$Lbl0JBBXp~by(b|4fA@nr(eT*G}Wj^lN#0OP)n0(o!c;{%g4;@)RYc2R9M`- z6?W75{UHc()wy5jx0cm;Y9c|SsS4klY4S{_FHD34<|;ffQ{}l~HGVYJ;DNow4(sak zVzW#)i8^em#*3Xol+=biRjw-}GE?DGi>As_F88flalv``9OZ%jOiZ#ZHa=?05f z?_x=!!3qq<^v8I@5Gq*>U3I=QQ0J~uvo9~}HE8>dX$>A4bpUS_&8kEGx!}3NbkL44UpBkD zU^}EAD~9(&XHK8bFp4Eg+-J4F@JJD>WMOsYFUSg9UC%FT++DSE4o%4_PyY`P9yEdx;1&S zN(ix9)L@mw0DooQYs-jVDI;E|2G1hv^0vIX@@cF$<)REF5@438@_LPsqogJeP1N{C zTa(AyHF&zJCj0CgZn$XB&YMEI?m~hl55;x- z0L%ws)aY`9gpKb(zZNd?7}5L+%+%*0D^KWPt`hELG#aetk~ceZ)@- z)%j|Ls`4?v2P5*AM+dY+JD`cRUD2$2hhl5e$uO#5YYtEM*}M zt}Saa^6~QKNdrPJnC&$A9DkMl(=T)Y- zhzwQUrVAMoYV(B<=gF)(Jeeybnp>Sm3)FeIs0KeSQ0z;TW{zYa^VGPv_&sdumH5bp)&=e8L6-JEKCH?szxEv&`U>1uqZ zc;o6U>A)G1K2BHXo^&*EjUiSti8z^05Q~3jZxVzYQH}U~z7S`I5J|TCc9z5(GvC>F zGbHPnF8iOQ&X+=pHxo6vIjhAVn-Cp3bg194S2O<_b!tDZsnPiB;eF;Xy3az!4P1m) zuZh??8M1oO7*>w%hu)+i%;?jR#l!nBe{c_`_wC3Gt!@nK)B>$`jTzLo5u@5SRetW; zxDG>Pesud5jP1~j@$H*1R!mDWkbV+)wr|#zp+jxo+Z!O04CX5TZ#Xl#{n@)yC36@j zaz0su?o$ z4<}3fp?HjSqJ}7e>}Pci*`FGZCP*MUMQmzaDyKCcs62r`3KS0)d4$>!oMB0DmNDVk zmY91?!^v+RtyejS%#W_l1I5#-Ug9QvG!)sv z-`HER*PfbuZ&;Uy<3t_C)a1b!RlX8pd~Z;PSAG&>xYd(-uP8GoB7hSXD5Q= z%m~jkC8ofX*g`X6i_AzUwIQ+40>AiG1SIOn_lie@EQl{Mf45$N5sAf$Hw;^oy4I0x zCovqkB$f;=tKhtaQR$&yu+d#}SlhL`=Sg^1-;cV#{~$)fS5>Q9MU# zNo<*XE|cZu7D^JNl-sf8a3aSl*KzE^W{zIm%AxZc*>|Rld5cC1@mjHP@(R4{{Fyp- z8i77O$yKNOn<2=}%riGKm;`SRDtBz;>X8lHK9a_nP0Kh{+J#e2&3LL+p9h1)=l56V z>w)S#8YF>We@*TUmrk{)&Kpy47v|zVela0}VrnYnuvV9;CU4Eud1Ec4FcT7)3UN$? zC_;v>28wzNsKtZ9Y8)QjVt>_XyU|cRZmKL1svv^$(eXS>qH`Ttvpbz#$2U{3 zJ^}xD10quG88LDIotpM${D4`^8Mi|DV4zl?{)8pi5+mCwpQu*UCM&TbUh#Z=sg)4H zM)_cIqT=CVnP0mI6wl*UNyNb)4N)dLiSZt#s_Z|uf@?(m=HlnI$JrF&)U^^ zBlcQXOi$)zicVd=9IeV1ePr7n5?gdr<5{m7?6Yissp=HpFYNuy_6MaIDxd5M%9Cln z5s?MvMCIF3u_u*1r#7*^IYjsca&q4eE}z)Nne7Q|3#`YvXcaCd zsB$Swg>yyfoG(=2R8mcD_N~L$omKd{lZ@_e5-4`B&D}mifH`$xehuDAI{HTJt)!5O z`PY(GzMe0nnO#r$nE%&3tMN@oO`f(><@0XU**mE>lZGs2-o(|o zT8A)Dt0NKV3U!cJqD(;snXfWM5kbY%_VH!*LbN!JRw@)>m)N^k5GbC!|BG#v?<-g* z>jg#`F`#=#=8j&<)Zw!k*?%arXHLY$)snoNTnh6m$jK@tH9m`5*FWRlodE8#i-H&L23yt#ik@b?FG# zP8CymAch-961aXWlbc6lIJHwx`A5{gzI_|)@6qh`XWb-&XsgawVqbJn;X5r2NgZqQ zc8a(KMFt|%ABNQAerGlAw^iedHj-Y-Hi!B*eeGdT?U9kW%2#@(s$XdvsC>0jua<|h zQ{E?RyiIlnq$^?uBf|5{m9JBX$g`(-M*_P=8Q#53K=JmF&GLB-c^gA;4PQWFo*h#s zkDyokLCVVHlLs%t!PuAiv*!^QBQb;QC$`K)Ow{5RVo2N|3Xxo9N72?Wj)_}P#0RSFR;AaY7U%qr?yI06DLKP}UW1p*&CVZ2G$b27mp0x|6*dH?Msn zWcY&HH}2vhpTqql#G(oJjUvn|nozF@34k3)iAWSzku3_5OID(gLh%NJ!~*gXv&f2$ zC&0;(!<#p7=fY7wtvtY&m-cc=Vv4O>WB;F3AC7lwRIjo_bK^s8n{Gbaxyh$Dd(^)3 z&4?y><$n{c3PXYxBYaY~^K ziZ?545p~$Wp3~BJYu#~=SVUZ&4SL42__%2sWtI4;!_bS3p`@OQ3O%SK;mLOm0>&#mW+}Kih_1 zI{km^{NkK76lRuDtay(>hT??{74o^90FPiUpS#SB>z{D@)*U{%byw^jckX;fYI-yo zS;4H>HDQ4m32zDM_%ifb)L?JedDQfv{VCTsK z2`KG}mY~xudah(6dPL{gGiY!hM)aGiB*nxbi*U2@W5SqGgvE=?$T1_a$bq;FJB)1R zVC!l|R&EZ3GV%+hQ;U?QkbH&ozmtEZ3&>led@)6#!g3UE=}^4D;+-kp)=`upWDqM! zEg@Rmfvcqp%V#f^Od*E+v;s0y({cB5z|ma~d(Xv$B$$v?;KJ5}*_3V!BQ^U&W!3)` z_C98j0f`2LX1{yYN|Y!?sYKY@kCd_N*m`y!-z4egR(2j2bvP)gnKWubi5+8C)Iry~ zo1~;>bm-EMo*jlTZr~g-i6w^5L#u0ltjr9^NXwDYTp=AOBRp$8McHemQ)P53J6F-s zRkeJw-W7)~%8|}iPT#$jMizV|hl8nTW&HJ<2uqU0gJSRe;mVS5!^RM9= zV0%0;Nskc4%K|drmEeiWvy{j_nau}_*>Y$NTMw7B(Zq~f3$jx!pAWNbh=`ims>)5PC7y1UO2g~z|UtIzHXYFJXD(-m(@6bPK8UAO}TxupSXx&T)(Zw zwVQ*ua%&`8_YTG0r7kfUOYoKec!_RzLgNjIPq$^$-a@t?DrL>K1Tyk$2@RcHx2icl zz`@(%xZ<@t0qO4u@$S7MLXd1@g0g>}SGW>u$r|iQDRm{e#8pURBg?Gby^SW{T;d61 zGDJO=t{zQXWS9^_Iy9}6{H#LC^GisIal^r?3t_=E*t_c^4(<6E4<`-m3`b#atcRnu z368F-DXK{3;E9bKxv-uCXB2TvG39$ANi8zM!>2B1j#uOA85Oo~&}9EkRW6)UrSej9 zu3qo0EV!<;n|--_eE{b#YjNeuY=T4kvvaRxOh=L;FqfR%NvM(CdSXEtmsxn3WX_2l4&T}i81qZdlM{KhhN-$ zEZkbKdtY^ta#iJnMIjUfxG1K0bJfpQ zDT;CFnmU(nG?30~!uqnB5?EHp%2tz@OdSd~__Om!5qplT`Ng&!EE44iloZ#5s2qKX zUG(t?=|XC9HFmDkl$28)?KxfWaWR%yWD-_J4RNxnhNo8>aR>8>mFz-61WUK6_{J^6 zFItKz1C-W!KSSQHph9q7p)o^}A!`d&Tb>62vNkTybF`8HPA{ zE?~uy`PiGdVX5oL()lJVpRI?^a#JyD7S7clTy=RL@Xw+{uK^ia<347}@ z?T_%Xokm7n2tn@t_&a!_zhEggh6{19?Sh$YbAprR;uEoe&_qQ+W?e!g^U*h(z`CvR zY}uJl+4@u}Hl$F#DOv(SD}v+naSd8Ph$xyz;4ri!?0je88MX?)5Cd$? zOz^b}B+xOM-#y z^+-!gBRe~vq~r{8^NOfgvqs{S82rL)@d;9FXN7~uVqCpf6B}#!`{@bG{!R?7@bDG`8j@aHu$g z(`$0LwxyISYYO>f`#L_`xsiuQcJtloeLSr^!pqyod3x<2KV3ZtU!3C2!=v!%0%aLt z|K9>$e-_-y>9Fj1UPE4FtMjy^3r9;AzPBgMeis-SX=$u0$|TC)l@K>el02h&9kMQl8ef)6YAm5zW!gr@O^6Jih z-h6QkZ_9bDs}Av}#rpNL>r&W|*BNTO%B;rS%QTPl?B=9qPZ#Yy`{LFN$;;)_4R)a zW{jSG z$mQa?G+8f(OQnfiDibS?;c{U#H#a16F+Ye)1^y(uuXt5;xIZNx<#($0BD=Zr>FyWF z)p;w^2T5IDRDJ!QgTjopcVlA0@pN@0$jc26YZHPk^x2mh$NA!1PUmNGS`^~q`ZCT- z%y6bWhszrZIJ-8RlLfIhP#`8zP-IYo-Pjf*xM56CYN;jED1>gHT-Y|i70!yCANaILtA zQa;%xq^XD%Vgz$-T_l-4D=t(W@=u2wv0ZFlCsgNUjKmD_;wF^uuvX(<(g0=bQ0Bep z&-res|B2v$FdbhXUtAq*vDROOgU$*HqJr3!63wB^c#forWhHX7Ac4bKk?cth;8<1& zr;8FqEiyP$lFX&`ncUe?#+6Ok+}$N{#lbS}?JMWO!D1ertl+bKSscxC`_tZka5JpK z&bJY&Jd06Ps>6>$gx8TO{E*ZF_RVQlIO>HItiBDe9yvE6*SQxrk$aDqQa z6Fu1*?#QuJUoPYXaWc!Bo7)m`(wXq5dqJn-C+V-E+r1)Om8X$vya*9>C~m@YA;X*a z`g|JRugBxm9^Aa;Lz@o>Ffc*7{koF~FKN zK9+0_a-`hbiVfi|LWWGvt;;9CXa#l)r(wT%GG;SIlWM(;bmRF%0KPy$zb_cWW_Kg< zjOVa7)Smt6KCDgk_|vJw=Mi0}ya}zr(?AIxgVcB#qRxvAE%-J@J_l&HS zTjIRQ^0XyDe>t}Er(r#F3?>r?(WhB02DWX^sv%wQpFWI((JnYm>yP2M-pm@<1)bR= znL51FAE$ET|AIrAHXW*FmH0HM!~QpZDts4QgO`ETdEuwZkLC4vwWgjBL*fS^#4EpQ zyb5i=XCa;b+`p+TTD177uC6YTp`nENcoOVnO`M|z9x~EX?TyHHF=l6sFFO;&O~iPy zGbxA+2O~^pP9V%+30?~)vvOcpmJjQ~sJ4xm)ujpZx;JB^mo;ZHf(ckMiiw>%FspwD zf>unT*hd#Pn+1QY_a^-nPDjmu3#cpR6|Ylz6x@_oKGpdtpc>D7C9U*P<-0;n-t1|_ zH=-6Vg(yz~s`Jc8o!f!k_bGSsXT^-^^N5LwCoCwKI6qIk^j8vYWk95f9!X}aDDyO9 zjkt^T;jZL(o3b@6kYo=d+?P#b^{}3FY*d$K_3NUhs!sd5wHVQ&K1;hcCPF&?%e|ZU z;mih%CJm!s>*h46U4!oR)rfIg;aPR~KOC<64S04je3F@B{kvrJ8a_e@4uiy#OaCSA3ma@N}>z zOk6~ww;gVaM_@Hw3)AtvaG0ru&)ktDSS%#cZ~-=x2QayFGdk6+!Ls3fSvkBPOL}!= zS&tUz^lggUtRXm!@57m-C>|Z&O1S=P7LM#q=O*=NP`$bkqt2MB!~dZm0gdXH?v0;) z;?q)@9o!A*!CO}qzW1u8EN}4KU48w%qm+&z0XxFzKSfw?1_^8P;#2 za%X==Oc*~F7YQI&PMg5TO`9;JLlc$`>_&*re3A_olJB^h5+_{=ASG^aHzZbXGU+x; zNwZl+@WRm;YPDx!S8)v;8?drpGxE)+6SQ~~x#r7QV`t38{8YZ&lFdSKABH2luw+Cx z3>OalLz3aH)5ksEde!BbTV0-}jcNU(Ycqb5&VK1qO-zI5PSWwNs=TUb#H)j9l2+E_ zM^TLDjuJ<>%V&pbT=(g_r)qb9KCHJez-z)VY$lAvZq^v)YIVhQ@(8?^Oe1Rb98ye| zk!!o0(8c2@b2ea|r@o|)UX-|+ax}(+a;N3wnarZVat>?Uma@s)gbdSJR5$e)3FF)55U{-=qx8eeP6)A6!&;=B&mO zXH9;RPJbYu+1i{}`&D_nPn91M)OqGqjjudZ!B&lHZcQ#$?e5Qqv5lKDUKC+?n-=t~ zUxU@ddos0qTXaSYz;t+jtR@a5c*PVp23nC~wvY|J=H%P!vp?3GOB)Kfv7wj~86g~s z@noB~83_xs!rh#fg4Ue z0-rn9;Dw#I0tbl=qPy|EohC2sq{AK6cxtD?Gx_|b;@y!u>hX4ukYSHH&ns&3#8#8< zWu0gC)wu83_|N-r&(x1Qu)I%KR`>16vH{(g*sg^r!*CY$>&6nT?wC&)g73nyBpc5q z!)6Ily3@&a&|z;%82eHq*%9F?DWn@ay^RT)K9CH(1>D7 zE2b8r4!L!CxkEvSYOqsmTOC<0+gYkBN%7FJE{~m6>Tj@H`RBWrV`aag7!B-${iq>~ zXjqRy&FfR-SH`LVGTetL6}~ayHJ>hp?ni8%DQi!1CU0 z7}KUX9ctB}Y0Vn6(9~dre4f*_Eps}y5LeVt)~k=%u&%5c)9nvYcJP5qTj^*`o*7DP zU?!vAOoLY@;wpp~KL`}X3PK9S_um_7@TI*vZ#UKA^+s_K8x&+v_Njtu70M`0$T-*oZ-yq8bG zd&wm9NA+R(;O;CR*qH$>YSB$PdPK_xOljYO8J*fNqicJ{b!tVQMs?`Xur8e%RcCnX zMvN3P^k`Ox@g3#6J}YZi9sa%Gu4C7hkIfqJopyDe=&CA9AAN5ifug=-6Z#s;l1M)q zh(hS7@|BGEw}th1vq9X$Iw8e6HC`(Su}+mY>ud3qzN}}U*iMbdrgiwrqE+8(h7GR$ zXi$r*x?K~i4*BPS^~|N8#py4TK(Yg=rmJwDF%I3)12C7^L4WKZET#>?a>g(rg%*waqSq+&iLM5Z^fZ)Y_)+Ysjs%L@?+Ea{t|m`bi`$S6{?4ZsZ!0u;vrY(5 zE^cCtxCjLq%ET(_@<`VCM(oLINimJ;DX;A_{U%>L)~&-${ife5e#}xH^v{G`506hb zdwGzhyOK$*8lg9;A1fujoY}WM%ZK+CKi`LyBYHARK2PcPF{=l(W%+>Sl8v-vMweEM z?<1zw65R#ESw2k*-8sXVF|q@Fy0oTq-D-^exDJy#HDJ+zQSZI5`4#Q@Z+=)^izh;W zzpj7vvprrdRp+Pp8hp2^CJ#hWUM#E5 zUDIY1xT|OWs8^qFSJvQjqsE*z`jg%RI=6?`{jnc^M8^iTnAg7(vn1`D(xWYtd$eQT zz^*Lp-+|8sD82LY`^8CuCF|?sv!LAhW62`}WnitK0C!mpW>^SfsA3Q}sXX`$eJ}+Ts!t z8t}HHI9qHJ(4pX{!WP0~@Oq7v5UPk_eE^V3HyFClV28sV)A{}fwvNNG`1`{`b z42er7OG-I~#N~5HTs#%;$pf(--V<91EPdvUAbiO=V?l|@u8EolDciK6h?((0lD3MCLl_$&Kjxey_>A+NH9 z09n%c*`fqFLW(R28Z%{?eD~!FH6AUI(Z5Jyj`_9uVVNcmbQ<#ALQQ@ULOonmOX3er zKA-s~Cc~I9-qptT=)?#G5!y6mOvjHICK-TM+ZGIx>D2D6ncKfDJ(|=)XHaL7S579+ zbP;*Ri^w-xNb2%w#4VXf%a}Ig(P&dsh|jyZNFNRrbWYKCe@%^F~nxFHM5ROd&&t#1H90h*S-}wyq}I zY4UVdHNIDDKUcB}aXF9Yi_$2Hq|KFBWOf}MFR%9JRt5zYj2OjK zkv41&Hf>mSi1&g=3mQClxUx2-3tQKGII|WHXG^Efmd>0b?qQZ>5p%0^f1zUJ*Wyj0 z#0-ftuQYWbhZ?Vvg$yzE_(I6@SWyLUmMDO9{MU+7iL-?WLaxWNB{h}h-^jkd6UF#^ z=AZi^B9%oW2e4FZM(@r{?$(ZR-P9Dkj-c3jB`K?ClDuLT5wk}UHhma@^G6VCFcHhCu1%^A@m_Fc-bW99njvmrVMFOe z2_UDbD?3e5=J3gkYCI5PJaKCXaT>gil8#ppL0Ka4-Sn+w50A`i$TsSHFWY=GTL>{z z{auN~8KMX?MJZ;AatJxTmu1gqOE&RmBEy)r+BJr@{>#IpD_1UTzif1W^d<~r(U4xu zAK0BaT3wkjpfeNtc3`-u!Ql2yC7^7<6h&#}mJJvy8N=d%?J*nO8`EJua2nem>tQ`H zmbhVMkLKb|+MzdY?0f%x;l!jihh9&p&O_;_$J0d0CspUs^lChwDxEpC8uw&Gzlf+0 zQ4%mlOROM-cpEJirK+3~UYF0sjeIwyHs4JZRhTYnGFf5-A=UQ_gjh2DZjz8qp&FAV zh@8=yJKBHXdKUdgb6oa zSu(sYa|d))*2$bBspX6TU6d*@xMMT=w`<6#wjVL7OG|n;uTLK##mEjV7~Q@Z6FM|w zw5Z1Db|0bDyaAmW*QQ&isoSbf;dh7PL6`8AlWJd_-1FnFq=UYZj{I)CI*%r5@a;tD z)QPHmJxQIfmuc`S_~$yALWWQwfU;JmxCmw4%!Yg>+kQWx29GDH@{M%(j}vPsm%Z_9 z%7ZCF6j}aoat&EWh4a%}d{K1@e;l|6n~e^LH6t`dm$|wz`!IXzLTnv%SUGbrtH%vc5@Ke*&MXjxnAxur)BAN~vbc(oU0cz&RRg*;tIL2^ z4V5)B2efTKmyc>l*3q2dom(?d0?uwt8_=$4UHW!k{a#gJ-#+hZg*ub(E9Os3ZTV19 z!}8HY@#*8GW5pC?_;RuaFDx7K##cz-FN6q?X@ICgfT%)%x{yHw{Oj=96a^V1^_(aw zAVhjRPJ?@kge*ag`BGfR*W<-qjH}KMLbf9_TKFnY;Ew_uHw*9Z410pJ%n8XhBPhiX zW0&zvnbn;hU3${5<0!`VUC64LmN;2>GivNmg5pgHOVG#3W+qF=_F|S0Vp6w{nbK3z z%FZnqq8RaQ8q&LEeY!|i(NBmmpjCZ_w{1c{QG)h$Yw~gZ>h$Q;oNnzp)2sC;2DDl9 zUY|`oG_~`CKM7lMGc9RHBG-t%fKD2Jwl~KLsGh^rioJ@TgJZLBZQ5HmG7!h4) zLPC)x-XV)vG`A;1x-}5DAg-WmOGb74h)F#p_3TieL2c?YM3iAzr$!9v)R;N5d*K_q zn)UnRSUi6;otw00l9srkKJ%tlo!ak?6Vp3b-5*znOVhije>JVkrEiBzr;ez`!;#|O zM~I)7Db96x?IxY?{=b;3kin%PUx*v{dZ-3pja28p#0)ro#7hrR2C>JAUn56U=ljvB zoSD?lICJjAk%h}=yw?os7X&3*5t?qQETbHpW1uWGkhdWeWBciNN9eL#dkXE^^kPi! z1&rx8LtKRys~78GU_O`NBtv5I%!m;}ysMsTL2{`LA!&N}#cLCssz*$&35h}$#rM(q z#zGt+Pl>s*09x6uP7H^lDCwr;Sy)Mek<9o|Q8 zOs>aIgRAk?;QD+$N`=oyiGLq1az9kaFihNmO%3H8(LYzq{p$+4xTx{kQDTgh)wn-S zvW}JYWO;4gI!or^F6%kh;K5{dA(bkhPiO;+yfu$a>-*k=W+m)B4ex}c87b>gD9Q{d zEGpNA(jAE;<@?~^y9l3PQ&EE9XmuLHn7-4|nP-8kl^^}JIujT#%8(-@D6~*k&W*3K z*kWs9m9?$pyHZnP6xDRgElChdDzhc6+=)&55;$79o`dJsbKvw^7Azf0o5szVJYY83 z^Nk+OpE19Kt*vdVs#E>9z}tM@fNgofhi@D$=E{)*E*=c$wCfnYlg|2jxGG-_lTkca zjR!+ic|1tm#2`)H8rS5FjVOe*bpHRax3((0bP#u8Tb;L-^>}HnCi9wLE8p8Gw)u$r z!z6|nE~NRwl&e#ka%6Ig$g0zMf3R{j?Gut>Mo6ZjjIs%#d5X%p=0xQ~Z%oW)fP(&{I!!juS6l$a_q#1)$>383iwm=aNgQdw4J zuB@CJFH=Q*%=|4r95`FZvC7S2TR3`AQEqV!S*2kNAJm&6-A7<=;EeVHLqh%i6{AMu z-5LKj@V3|Ml^E!;uPia1?9f22?%&GQW2M~K>&DU2QJgPp!j)02c-&X~{XmiR{-P3! z63SXCJm{~<)0H)OW%7TQP*#>vHm$}RnZB`*m_kuT*+SIALdakyL@*I|Gp8o^2T35R zB_tbEoi9e!=fJ3s-rG;_zrZ=j>`9>FW!*VOLISZ|Gi8OE*gSVO9VlhPo)RL{9q^6R zW5~$fv})La(S4>ddGI_OP5hWOaV}0?+JtAA3mIhOE9+@niOJ_ug(4_QC@abzzALDn zELOHFh9i|5ICgQ{yP~KUw+k5*<&)R5~myDxB^A@a}t%IkH4~8rB$s*Up7yFC0iPzX6lIb1rGxdQ(+z|S2BHRrV#e>Lh`m)zjYKI-gebD^+hujR zJ5WXTrN%uiaXUh`!-JZ<|9aZ`uKLY_Q!SM>CKQ!u!t#v>&$m#zh~!dVwjW)~_QUH* zDfY&~b2f`tPoj61eo8l?AcKXrD@H3VSiEc!;pyh$Cf+GRyr_Yq7G{FDh{RIscVtjj z%(W(Ctt*7I#N!dUlT4Ts&XS;g=bgV@b<-A zE}He^em^z7>?wg@?;2bmB=f!1_`IKVvUYXeC~Id+M=NV-E0&2ORMpacrSq z!s_v&3<;tPO7|d^yvBxYM^mKJ6+}?f&))HuI@&^r6IV8IchaUgE5$6 zj+dPu9?rISc^Xl&DS*r}ZvrCh^r|l7SHaEJ$T2l4lgz|oa+8D%Njc=DWRVya!G$Bc zxps0bdETwK6tBwdWHoLTsBn9u3io%bb8JW(zLt*rv5N$J(wSfOQsvto>U=e-7H^h` zt5_<^uuO=cu%$wdrK-GME@~k5W|ahu%QSg8y)O4;y9d2A__~)0_xh?*Ij|OMqH4YW zz;TTCm}T;497 z|38YVE6E_S!{s&XI+=yBB!6x3ve^{X34BsI6LZ*l;=o%t|ck?u0+N8@2tBc#1CsRdH^@XAm^K0?lFby7b7ZP>W1LG$Qru)bJ#Z4?` z($GaXn*}gw>^OpAC4iLe6|sVX2(h9Jab*fJNai5!A*tL>vIln#NsxH*l7a}ke<8uo zc0v^6n2_PXnHgLW!>)>-0$ zDfM_eTT=)jYA{!nVWyB^wmNU;*5M0Lfv-Dh@>odppo^rMLa4n%8xv$)3tJ~u>|E8} zKN+0-EsrWn4~67OydXpf%Qq#eK%~9cf$hiFusJ1d?8atOlLrk9vB%fCoVREqWp65aw~AO^WbXbZ6U$~ zKE3lfpWl7R#WPol3rQx}Bb@l)LS(NrE(M*PxY`}((8RoSyX--t3iZmY?c?ZuTyN57p^ zpSP21@MgRy#AI<7QycP`5axbIb-wPX!I$k+xz^(&3Z~V6YG$GGmA;wkSGtC(U+EaC zKd##K`-6A1DZx4Kep3i9FcXu&G2f1&?Xm0@Mc5~?f`SZt&unD<{!HA$mJpq7ika0y zy0q@X#6k0!G{_Au)$SaTWgdjvU{$ldC6= zasA9uZk{{DjnmsiE!K1MR0&6SIpkF}n-andwf!BML>=$Zh%Y-e5JG5jzpc21F&aD@ zufo&G)p;PU;PJwuPa(nrB^j1ZH^$vAfHC9yD$~oj z661Gn;;+;}5icZ{+mI-#v+qn1$169AZR5lRaSdX}E5$ur*vg5@EkckD>^hQ1Xq+{^ zK90(wsvC;7Qk?Uyu=+1GwsY5zpIO4j^;@`e>oX-84(>Zjh;Jz2{!xVaMG@{TQ?XF* zFkH+XMFldIt|3bT$gD&~Mo}mkMJ`3MEZD`3-1u0o9NW*G%ENqiaW7wr+d8l*_-}~t z*O1PwcBy~sPW#(7wLj9X>Ag#x8r*rH)%ecCVU6xwYuD)R`3|iTPIhkkH?RBo!@=6k zte;=1WD%ka@8SdtA%rcZI}_M_O5y}@5&O?7+{9+~oL!5lEK*j~k4~~htB<6Y z17?YvSjK`$2BHjJ3>?yhh)jtWiX?6jb%-l9RT3h;!dx;6Nh`}F=qs_8{T52+Z;+0c z&Oaw^;oNqaZsknn4h|pNM0kWNfdTFk3lxhAY@)1S1LgS}gaC@F`+p&Xf()6-`Rv)c zk56xWDsJL)jvhKmR6rz=0YU_y2qJtU32+a^-rVWws(JG)16}NnWyfboMo~aULIJtr zHnQR*tB@44JS&@mtk#jlw~Sp5ciO0L8K5NuFyqN z$+he`xmC!ZPz8w>&M1gcA#Nf8hd{|DgfuDnZVVmVlcBxFGfBuWYs_j~t$i3Zau5+| zCPD^r3#Ae`N_wgIwmFdh#;mQf}+@Zan2eU<=Nc4bVEso&+k4UDJ~6vj}Tm}-3amw z5kgh4dXeFSs!Lb#ceM)1l;ad-lJSk8{acG{o z@(-zqY&-HdMYHF`Mj?PG!q4%7WEA_(tfhQc6y_ciiIeqHid-2sycb~lhNKOwWIM|!~ zoFZjbP@1nG!MjfXpQcoUYy|-n)%X=v`QKIGcd~Zj>iMgDa^o&{ZhyvSci+VhpWl7N zr=Q#-H9j7Lm4@#>V*jJUF399?i1_!29IIc*P_ZjhM(rl{pAr(BdZ!F~Pj8Tbubhku z4-8$#OEzIaV!k8e#%a;9Ss%trMlo^F0;~;PFf%s5BV;vEia)H1MGd6$6H2T|5=$wv zB%{=ZtYUkD!;P@E)*(JNjv|r%k~~FcZxmCIVZ$$-{|f@^Y^*^$u$Ck9Ptmbcw2SpAMiin9ANT!Sf-hfL0p8Q zDt?YVn-1oQGHh1<;;0B96~8g;JH3vr$FihjZ83JAK$OH6v3XWZpEaEJO}jE)GK%p7 z7h%5I6<0e)teqASnQcgXk*GnjwFHcoWR^RVknMtl+j3l8Ey&Bxr!;3H<=LBL`hR!+ z&!*`7zb1pi6eK80FQquGgyK}id>JK~6=X!GlNO)C<%`$3tq3MR{fsL&FXI#9$gV?0 zl&+5?B+}^5`wpdlCtQQg2+c4hJjYbXU`}+NBioJ?vg_DJ_MY7GE^aurSs5?nZw?}% z&=MWT!Lq&{VUj*BSTUB?O*=AS@H`>JBJ>tn;p5=V^3_v_NHHe9(1!G4H#`DYp=Z8; z(CA<$Vu6(-welu;(roY-u9 z?7gtiF~`b42$q;fUV1JOVWBvCn&arP5@-LV#AVx4vMq`o2eV1dbHyiMc3@Q#e8A7} ziLoR!-H5Pk$tDzKhVz}+awwnO$2W*NY*Lb8_sLD{I9@_hvAe_pRxCE_iCM@P*+!2= z+GAWR zL5814y>jF$h#*!d#3;-bS0Gl9RibnUMcHfdb@stp-xs62(=;=b8|cB>`-%16%fIP_aFpj2ue>1E;>%Tk!vI@QpJkL{Z~9+elo6 zDal2iY}%j8&ZBEZ9X7E0#1?iQ+ro|$Wu%t*5?|nezVi^KTQ6yZHhoITWOLrvg8d zAwQ>7X@wG0{z8VF60#FAiS+d%$io^tqtOyL_M*6OI#Ch*@b()*a@JCDM=SA(^WY_U+q73UuDpHWa3CG~s%(VK5#dd9&yreVr>eQf5ry-2hn!(6EQ*bu- zr7&GOGrNp@k@EaZnM$ztuHz->%PJF7bgtsF!o=r`QWOdq3WW%YX@QXF9T`f<%`6b* zD3t9b9*A&48dxedWKFivK8bHwLiz zV7~H(maT^?B!(zw*NF<&@5>-0*#RTx8BAK$j4?~<(s5vQYS*ep^ZM-=+Iu_$yNx0< zR`PZU=<+kA!xe;(&R5JU)Ic#`pz!-bffq6+8E)ZqHH&fLB^gljhkaqZSXuHGETr5n=;j&4Li zlopYxt1+QJ*a)YoiZIWp;#T>7!>kgKphg)1-cV z>`fiWR{YMNR!&Z)bh5(VrxlA8N-9`NX?70jF(EjZEW^vziP+#6S*L*X^c?B@GSX5r zBn9-w$KR3E{4h3(k54JIB{6dm8#dMB(rFd0omJz~88!B7Q{~**x?I2BldCrdi3u6R zu3Q_$l^Y`{F6oYsUpL|vH{oVjV(+t<4ZCvKd2o#oLNb}np`=O>T-6-^-BA875od{i zs)7Uq@jxYBlFFO$}u4+Up|Y= z(bk?LK3#lrO0h)s#gyiih^67{Iv)p{+7d+8VY+ttS&J!|}iJQn`-Hv#Y6nB6J|3Pj` zf6q|$jxxnRO`m{tu?)TcK?+d`#SJe)48?tsire9Sw#Ym)r78Zfiq2Nt%wj6hx~2H* z)%bW?Q=FMgWQZjeW-Z7_t`7H4Y>eiQkV>;p~BGWXGydc|wCLXM_;vG-W?+g$#YTc2(TP zwfoPSBF!1VG^#MeF>MWDZez1^7Uz=3Po&}AhLL4D2a01@HB(=RqgTL4X;Q` z{E`iX5PC{7{7eYN^k=uBAj02}A?Z!B&ODjYae zPdcRrH*Tnil&guU%4Y=;59In4i5)Hv zqq1@&F-cl%+Md9Uefi`TMY3&At`H)VG)a{cGA#&?`#=UI?7WR1`@{+vQr{8augUN~ zRpMt-D2b76tV~BEB^}kV9YIjiN+NTGJgHNp@zuFnS&hrm@z<}ZD(!}X3^KhYgs8lt zPC>B>XHNEzWdk{1*_m~lKNfehiX9T495}s>{ioKj=Tw=J4D0sA2pNo|)4CJmEw16H zkm0-v2luLRcwaTnpHbn05aRNsPNEWhxqMkcjNU>DEzY0qO>|;AHg1b#=l(ni7@fpb zq$%TtkQ7O$(=2cfSyaEOIsUt0?P-6^Eqt|79sJUC@RwlnuSxN;2^6ZJw5u9izuK1a(pu!C*Wkc`_Jk+Y zBQ|e^1grV%J5kQ=<7?P0E@Q{>JRw6Iak-{A`PL@dM~#zvRXHIf*jk~%#Y)L4L?sk< z{(J-Z+)J!4m1p~K;cRP;9?~Q;PL-!X_{52tdjvKbFT{aTR+`Nbq>POq8O4 zb$jDTDm2E)r#hLDYV573PHv3E4QCaK@Qw^;PpNR~gt(AXH8_3pBS||Oapa&1Cyr`j z>rhiVe+kiYZF<(jgt*!S#H|)vg-@ip@_kJoAXwz>t?3eCig%olKt_sRs;<(MF~rY7 zrF68yg0kKbAxKO?4zKtX7(0!@+G`@dF^e#=ugjTJ8cH%K?W!6Vuc(TASA7<{az&<< z)g_MTC`9SUh05;iInaTSg#N?|8Fn1b6=hh9xrF-@nSX|NGHC~5Ob&cWMyg+ z=&ZutZPmDNT3ysYf=VI6*;6uqR#k|g%1N9OYY-6Jm(XNMpQZCX!sZf` zs33x5PzkH?im)@UYKjj~z}#7HzkB2=d=qr=P1eCXSrkGD5l|IW{!9kN4^lrXgW^Xj zUB^*Gq#F?<8AV*CHuj!1rBg%=uBa(HUP*$>s(&GeVwtGJ`O6xVmZ-9AV`Hvd=q00g zu#EbSL}!_@{csL@j!C?5q(W)Cj+C-d$PkxrPF#U8@wtl#jOfmeO`4oNB-zPXi6PEt zP*$KpfQt(I_bXxubt;dmv2%k4CKjr=`AAF?r-!!rP;q6el;$6!jd%D5Rrp`w5Tc7` z%u0NdBsHv3h@aKr7cwZ+A=6L@BBYSzD{O{{i_j+`)0o(79UQ&XIeAKmAb$MvMNtLm z{7Q)(E{GcZY!?+S<9c;2UunsKeRarARAtkKwz&BAB_ZE}t%uUteN;h)ceeAef()5L z1}h0L4T#FsCoX3xR+6o3TVI{Lr0VF-uZ5%We7v2tu{P<3gJpGGMWuqm2N9dDBPy_h zrAGbmj$DRs>?(p24e<;$QkEh9fd2*k#&^;;^PP%&{Bk@J#g`^&|3U`;428R>B88A4 zL@Ze5we5!E5wRHmcx_@N#dP+r%Mp?1Q5u!+u+4_WM=?DR5@%&hVe3Ov==SJKzkv}S5L*>S%IDMuY32AjD zbzDSDwyE-A+ug?s*>zMh3Q>sNM-`;VC#~3C)W=lJOx%ePVG`s7ww3-ed5_5s)2U82*SZ6oJZUD5~qE9l>UV#^MF zIx~JjGa*Go=9{#|CS(Gxi3@O*^vokw{BEiQnrY%bQuMJ4o~;Zd&D_Va+N!@~6kV`! zYDjE+bs~am<78G3tJR%|4YeaPE}kGaAB>jhV7Pc84i=+vc56#O)Oal1hZB~dt9+SQ zXtEw5@y5iYShHz+Hrw|U;~i+p#vQ3-6nGMzWQ>mGaLGV)372(OXpj2vTfx5*&6;(h zd52mIo!F2`+RYfJ-H3&Dov{j^j6=+PA;)t3GbJ)lUx9z}QdSuD#?gBUmM){2vgBiC z%^i%dtDE@nU_!iONsTNbH8zhB_izH7{W-n+F!om3L`Inr9&dty%?Lsh^@RvV;@d@a zVvGriwq?VXT(<41z{b&(bz8Dow>62VRBIOM_Lhub6+z;n7Od=xozv2DRj2*|zcsqF zpYnFxuz9p<-j9#E4WPMJKbj2cNb51J={>g{BbGO0_<@M+@L7n9${UmB1 zL};8Dix*GC)6NZl`*0#WQ%H|0ASJqh%-DR4SC|mt9g2^mJvs)nMFp%_Z8ny`Xe<09 zt#S9a#L?Z6kkAk^GqcFaEg~Q=jN+1V%GTx+o#4Y#oe6}*SrDFJ!<;3(C73iiU3Kao z@Eb#I?gV3|jnSh`i{UhGF`GW4!s$0TlK#_VI>VTHy)|h%Ooi6N)fus(!Gz13usbKH%@;QrV*BH%b?NxDomTKHvlX7UxS=O}S9A_}RsZX_qcmjJJM!V`}xP zuRh=dRMd5sPYQH*&?YA(n2p8BY%NV=dub}$)@HJ0T_%UN7jgdZCe9z-#^sYcIeln7 z=Z+mEFZ$-&ew;%AI_Db{h{b z?BK^62YLO)Y2G|I$E(jzi=E>6-6K4`bBG6(Te*E|Emx1N<;LmlTsgUwb%k-6Rj2X+ ze;|BW(x=zM!XBTzF0RMx5*1#rZ_F2ky>5O|JZf^)Dj)El2xn{Kc4;wzTh|t(vUlqm zj_uvT{!OK9E=pr-VJchllh|39%#rmuoZOg4<+c*ei$Gl6TF$NQ>$thCoEuw9_+tM$ z9!X^I{h3{Se||5|uOH>rozuMh?39SZ8Qy$-j@MtG<<(ar5)V%C_Ukje{YHf2(J5Yi zeS$X+Px9ku$GCEIJqdvhcUR4w(75UpKj0658+l!9zbxv^%dGm!GL$cKRQPF4Cq5|{ zdFw{u$ltZ1!3X>s;pAl5I>^g0JJ7?Hlt_Q#!+Z#IvnIjMk=!V6%9DfHSCGtM5sWjX zIb2>}#O1YxT-{L2#j;#36=idyqL@!MuI1L2HGH~b17Gaf#ut0H^Yy{qJU+f(Y2O^( z!*?eS^7Q;so>d;=*`)(Ky||Aj7xwe*saMv*lsESe!?)+T zeR|VZWtsjXt4{d?-ZKuCPHl26ulL^9W%YQIt-_0(n!Hies?D#%SNYwZewx+G8UBRz z>ObHe6!&ZuWT%*y~XPUJU)L! zrib|U>=C{_eVFe~9pt;yA{-|~98PTK(b3I3Jg`>8rHDsI%K72kMxI^X0=M??@azV% zBW*SfZLRYD-zWcHj@zjn>VKQwe(T%p#*nH4X)3%*Q{`p4IxjP8@Hn>}*HU_K`XaN_ zhkrNzOlVubZv!_6x2zqT*Rgxs2C~xP$VyKlFEg3Ev{)RBR^wv0njl+Kazeb=mJ-34 zqD&D55r&EaE{a{-RK|spJkAzobD=nw%8Goh?O4P0o$Hk8#f{AsT;EhK5k?VLHx8?yh&2! zMM5>6W_RFTn%3?wGW&fHh(80ookHvaydntj^(WZRo3zAOV#0&)adRTf*OT}VU;G@* za5Y#?x|bt65+ga9k;DZNfs+zpoG!@VLRlWC3NyI6Q6T_pMF`e$ZQ~j)NSbkWeI8df z6^I~6WU;A4mKSrbIF%E*F`UScG)U;7U<6 zmkOe|S{l!_wTax?ki?a;aL#6Xb0OP@%LV@IPPW0%az=2~WqrW!jIR=!)VUkiY0Hbu zro2v42N8o8iPd?YT!)v*)gfL4BUXi%DXqAd)OYuTq9M(yHvNDf-KIL z<#SHbi?b3*oGH)a!aA8R&*e;67H7rIm1l`ylyG%RDVMhtb8Txrm21KKEE|$b|sW6&zd7+%i59V@tB$rA>M6!K3 zndQQ!SW|pWCwf&~-Us}SxF6Tv{y|~~UL@7#r9uQ^HFy!L$&)xueu%HZPYKm|6QzhK zYVt6l{p-8Q{r##o{eV9zf`Xz}r6#45lAMBziz7DXCODdzV5z$bcPkSTeBCLG2%#h@ zlr>QyY>y4&U}`)kvQuS%W^yzunZsF0A`1DOUsuHOl1xsCAe>PAgOMH0(cEZ`=S4}B zA%nOyfy#AhViIkLFq{=(I8&O$xr!97Z_VS=-KBiCZ!LHBuHmyo8+mYKBVQle%s0oj z@a3Vk+}l^m-MyvU+grq^JG1$8d%C0{nG%giBvTf~g(5%prrML_zUafV;=eOKiRkR` zFt!!1W2^BdMuk_=l2$~D7$m6jGN}gN$7t|Vlq$%wmr*r&kl2lzvHgQVMXfAi?#Qyx z`9@W{`hY(Q+`YWFdwTd_VPS!>u@P3LM(8YFfcCr@cv%<|VrxOLojLLDcH{-Rvn4fx zT^W(=N)BUhQUr%H5;&3(%fXaz4rN7fFguieY5p8Y4`O$MADbdv*q7uhg5u8!5s5P; z3V}%Hf+BKQm&L7}<$SVd9k+L_6@e&~2&0%Q>vK3O5yT1E-?8)%Njah=nn>f;7D-*! zrEp_?I=42aa%Dp-U+gd7{@z?}ZcP+%NtQ?>mWpVL^;MVm0lx!ohIJfvJFMduMAw2a zHJ(Li@H|12=MieW4AXR6kF$ z{Cy}6@gvLAmLe|)*7-WKIn$xuQYop#xtvIL z2RpLK!+@>sx)hi%WShSY2f`fK;;O?oF9UY?8n8FansY^=+}oYSwVmmt1)8SIC91!> z(hvA|;cZ6Ox;MkSY1;%ry&idD`3~Bonl2*GW;NxW zW~}wKQrgxq7q&)vP!Z%np^qgMA&zWM4&r!0GP~1b$ndhqQ)e-@3#VZ{e+u&l^<-M_ zb}Syzi#Y?kGpJQ#CUkF$&bWc-j_QT&L@fg6jKFW|KsI@qv&Gw(4E-qt%^5=6>S-hy z&%=B91T1F{#d6UY{B4%tV!rUh9hLt^prWFBFSN7$!@%ae4N&Dph$i0$Yw$EsQi*_S zy!KV&MSvQQC7pP&p)u@h$&VSDJP~nt8KBPdpql&`)tDb5>hscH9sH{CB)l1)2DeG9 zI>ZOOFX-#*&(hV^e?Di<9Of^WkCj9WULJ0EyE)_M>_C{i6CsW^#CtfA;A~BV*(!o{ z<`b^Jgk)joVnrZEuGPi$EhIjs$f$f?x=;H>=?DsLIvxmNMSv~%9 zPxHCu-rCwVsxJEjekJxMn5{URVs_=~I`4K>i~a_mg|r>|X+XQrUIo|Vm5(}4{51I? zusS~mX!6Wg(g`nh5eOB&5i$6#SW=FI&0wd9L4vF+k;N1F?k67=p809;!e5g&J|Zgq zHMt+s@zw31UKV((s8t>61AcFe966?R{=CKL>l@qmHaB>rALBt%4z8XHNFt36)k z1_W6d6J}{Zgy|~64VMuu(|Ge$WZCOe+HJwzbfDE78yS8^aHisRUm9?V*a zAhO+z2s2uU=jsL6FBWgFJ%?z$1sIR&&G>d7F}zJPhIVX2pEj*%-k>)1Ypc_uW;MFk z*JN6krY!8ylodUi;5Bmy*%r$s&2ZyTgexbLUCDA;#?q0!ST?W^`lI@@YD9Nd4eyTr z$R5~D(ZYApNK#x^lHhMNwd%4z;8)^e)YMs5Lq@)+3>o+J?X)GMsunA8JE+T`PyCwR z{Yk{&xpy^w@~+NnZ#7a8Zo#te6Z)x=8V5N@tZq{&K>taQk9Fd)~(kW`zM_$`}&`+^Zz zOzV%q#2%~~-GRkJK9-cAmx#eQ^e6SeVc{q&W{k#gOmF7&Zb@5BRa#W9M*DiT=+dMi z13R=~XqWbk?b(S*Jw9f7x28<((1@vR8!)v^Jy!H-jsBo^ge)4xfkqyYAQR?oRcZ1O7Ku3fS*JR-g?M@ z_mrr>qZ&`e9*Y3HEYjfh{%X8Aq9PGQEqDliL`=RB0eSAFA^WSzE4OOg z4{E@vunu=F`nDgWJed#peKBg-xX3xP=i^`}sf0ufW<~}qpEnybJsnK+^|3e7W97_o zn2Wd9oidQ6L)u|EtsjA_rjTH|h+#keXOtV8 zLu@H@)5T9xhLwZ6F|kuqCUfLc|wc(j(J>I&j^1!p!+Z!G&oZpr% zta;O?@0y1`9eM671KveMz*Ppeh{R7W8oYFo=t22e%uSu|9moSM%8J3!0&}s zGv?dJT3fKm&z%w%8!{}72-jJP^{lBZ7%@=1cn9VU>W$9GftXJkj??V15+zI}eB}(n zmro|qcn(?C%gDA~O19+^3Z1mcvt3TI?sUQzjwaJ&0Xsr%*e-TB$%jK}Ayl}VQ);o0 z$ay31nAjJyA?;b#^COn_YJ#3tYs`kV!Dm)qGK?p)#%T#_>=v`pO^*V*6(kx=XSmAJ~k?3W!izO$LqPf4bf*+5rr^r>8sjaIsvuz!g_H4<@{%x?H(idl)38aNO&aArZ z5BL?h<=n~ZbJuonUnmB=qYQYL7TkC1y5&~nfZm@vxBv8ob3L9rs_>(TfWm%~bzV4V z@YG361mP$7P9YfIxJXnGR-HE+oAY*WU0&={<<&unE+mS0ySX|~!&OC8RC(s0%D1kP zf+(U6Cv~uu_1qhB)xG2HecodlRGrob{9f>$vSg#}fIci~-H`E(YB8)qEwmcdW>DjL zEa=@1!-@TwKd2+q`*vXIus&E#9gV%1-S{E6O&x`YqzQrZClS431~Dt9lAt@699wPH z_*t_l*j6bT#g01c33FtfJ)&Dj~@&f)ABZf+^$%DOBrV z+x?B$A7LfYhy#1Wo!RVTO1TKd-bfpcCi`+U(Vr8E0h~*ZN{>27s>t2Wr}Irp4@w!;~ z{kNfmxx6=iVG;irL^yEtf5Q>~$ADg3P7xBn_|r9Tzo#trU#bTH9YgW{5Fv3?0E3vQ z$59!)uIY_$35TD!&kua9=X4Lkv3}>Vf8qY0g%8Kw@X>zVr`OZ|tJ=D`I(v1;OoI0C zVKA675#}liSSvddx|7CX(P%E4ISv~ZOu?GD6Ja1b1uJJygo*qtY*v$lrOG_mYbwHa zi5z?k)DdT)heB5qItNSSJFY>Qrzu(^oKWUw!V!Nh>I3btJ3S1it8#I*r3TliD|JOU zS(J$5d66vqU>wV$(t@xr%o%kKhKOA{6aMn!vCYd8H>)%8`Q94bY%jr?suY|eBraBD z;BtK#?zA`I?)G{-+*3~Kc`cN|X#hak;?}OiB#<6(&kcrXzV0G647d$NzD?sKs}^Ol!1hukP8N_Mg?vRabNvPMd-C zGp52-LlOQ<)Db{=X((aUv@w`JWB}$3>I)|wRb;xDBfwA>){7LdL3u7Vs?LLrrUKk_ zRpGlr4dF(M5l=v5Sg%5!y#ewFgk(#7Bv~y-p4)oVhd85&k)k!q8@rOju`4MA`;vpv zksN>nNq*Q%XVL6qfl}+02wXH9tH;VfZ)88@n6Jgr)Nov?$i}tWeB5a+!Tr`UoGVYo zUg6=WNIz^3cE*u7AM6XU#}2}2SD+QPhgcz5Umk@#uO|2P*c)Ms=2%CBI;`5z{p0tv z?shM1p2ywbnQy-j8ih9=l6dDSj$hox@!GQwo_qJB`rs9d{%3CqybX|H0r$pB7V{fl z7B#`}vj<}Z^$Yj=$x8}9bHCRfQg{&~iTAq(;cthy>@Yz?=YWoW6#D}NgaC_pSKz0sqvbleESKoPsMVo(+8ibQKe0zw;(goQQ1 zV6#*S&db%{wOSp)MoSQ|W)Z?ow2@@K0&!+KNU~gxbi1|4abAx+7c&&NZbYfO1**Jk zC~K6uY(mav10-_a(B<;5m!AL~0%6(2A+S}OiFI=)Ky6@u=!_nWl@o?Tcib>695Db3 z2KI*fu>M#%X(Tq#&1_}_a$YzWKI-$}tuzDfDpTO1Js%dzGq7&rAb6`yL$Z+?5;keT z$53uf_mBUVZ{J6&&%O~f^Z1uRy> zuQcB77sGFK5IE2mzZDO{bHO$6wSVHiZ``Eu#zlg!#bf#P!$Xe|k3VxACW6C_;AIY< z2CCqKx9YZUqfL9Br2Nln7Ari*o2YI$@1U*+-^I#^S+NLqj1OkhC%|4o4sIICu#%mQ z)f0!qRaXr`Ci-w$t`55;O0d^f;j{+a^wr_HdJ%lrEk?jPO#~V)M&KF^L>Ox#VY5Cm zosE$0unx(aRv~Jg4iZfD5wlJk!7DZ3uDt*@3unS$))=S^?+29;{jh502yBoa3k$`m z*r>pWGj$XePZp-23BK7Z#-x0l*^v z#fj4{EPhvx=B~Z*iv3T{T*u{qb7rwpuLz0P)K4tnzd83JOnT!-r(Ohy6u#wayojeW z*ft1ncQQ8YBOG=U3>0=zJ0yVJj1c?8@f!j0j_dzcHWc3z1aEjAZ-m!&mgF%d@FQRA zm3tq2?LOl1*WGZq?KRcm@yKn;|62qkUp3{tS@vKla|UV|DdP3eoFTb{+Df^de3ma z?=X*k^-Upvz3JJ2OKaN2?HfX?EL z01@gJu771mx%R?WbQf>37#p??!Mk0ICp+mxb~0M9#}4r>?WA@|Fm7-ih24GeYr$ZA z$JhFq;Q5h|5{~hs0|CWzdgb01PdvsxdF(b;{+o?rqaHX6I``VMFaG8-0FNAI{eI7O zcF(6d|Fhd_MOP(b<&8htDX7v#%twr&4uW-*;I~i~E(+7(&-hRk;DQiCJ=kh0impQl z&cVxIDO~h5V8_CDT%krMp#)!pg(5%%F)sKTsKb4^qUgDXbqX_Jsx%XuHD<$1aUzya z8$u}b!NmSjn9xre(+BmUdSmXO{v7!SKxxDvC=MS4)ltK-Wc(=TP994qF&;}NkAfB> zh04f*+-4va4CnTv`a^N_04UNq$POhe21sMha2d!B>j$}^eW5pN5|+(T{>xvCyzVqs z{g%_nr*BxyKU$07g>7H_VA~r%+0xG2F)G-zw`Y;su~=>C7HkLs>a~p|UR%rHwN+od zvEg=HFKqXk`@OQ4#J7wWf6E^PwD-er+vyax(IvDK1Y4yj#)xfn3k1V&JHnkrT3u04{U}^xbHah#!J_}c+T^F z<1h@5Y)3zM>M%;S`^W2P|C!C-!c`^R)%$Uomn)Js86wNt3^m@aD6!dy6ayXDanyHU zq_AJA45wuaVW&k$p~d27-ruA?AC3fygRU~1S1g2+zA|ie7I58c7%9%cD!FM`HFpwB z7fcpCgJ3de7*^r9;~+nA2v&1nW1V?Wojw>wnsc#e z>R_y#KLzpx!@ObrF>7!i%o^Dj!x=B6#l+B$8sEPcWVuXz(oiUmmVxGkAuv{02)+3R zf9a(Ru+I?^}D}ed9np z_3MrAZTjF_8!0?>lEO=yzIeNd`*7J;_JeWLWvoA(#H6p=j;wj%I1Im7_s1*hHMe`{ zIs%t$hBm=^QqN~+{;OJqjm?ZibF14KhU*Zky9j|x)L<}eBIXaFZI_<~3pxr5bvbNM znU8gxU$bC3R?1Eh^``1`v2l?s%rz*rIgAkm12ezQ%rRI#X9A2COoF}IH25!@11I$f zuu>QU54EWX*OEoJ?gB*U(|J%1iWAfdIsB*$%UO zU_1EN@9lfD5E&aRIofZcLonxPZTTN)GvUB(f3)m{R~x19dNT`oGhIU{i@$m(eyfqf zyQZ#!|GkNDXdxV$34twi4qFI@WPLlh$nq43M5KKRk17oJ&( z+P;nOYXHTYOp9o!!^g6R>`)5sn-khm0 zSTGao2nu7m1v8tchgfo|9p;*J(?I}~nOgQS&95TmDoFh-f^RT@Y!)JDGfN~CYlLc~f% zgy_vj{Ay*ooUzy>Hx!!`kpQ+ z>n!Z&gu>5ez3}r!X}n_L|3`YgfnYFUFg`IKH)zz>nNca4%1+hqYbmfx~}Kn>SlmU2*2DrwgZ# z!t7ClAU|$6md%(%FiaAGL2JrrXip!9r877^eFBzD8%z5?8d@{PLT~0+te!g&Msky| zcHTIsP8bB$iHs7nMiCn0;jA_pQOjjfWTu7EO?t>T)gc^~p~zwd^33#*Y@ms_)1>Yn=P%RFcrMdAYc2QFSzE=!moAk`Uo#rM@!`hNzy5047q8dR37CsheeisP z6kcs006vx(UBN%fR0_|`B=MM|`>&}3fU5p@PcXc%WAWD#1~qgFHFN}=Mx9t!FPi82 zItje1rHiQIenlhk(yuQb6Hea+L2;I-KR z{A?Al3ti|E{JkyKM8~x$;n+JRAy>hC^f8I4qhp z2AY#c(J@Sh*0d>DIAuIkxm|@9R&Ru zW8kDZ4asZNP(-&-X1NM=&L*gJG(icct85L?;B1OQvlYl#vjoX>2~oOAh|-Zqj4q`u zk4Vk=2wpfFAsPh6!l?*ZM$p*nV`r2#iriMyy-dJ@5kvlxUuOE*=BbPCnT>e)&|>uc zFMJkHePlRj@+FfopMAe!2!1e?5Ea)Ox`7`!YQI`fAp8gVj?j2wM;K&{#{04X_^px- zp_%|FCjiP>_!R^|l^A}jW_+MfNmX>Kim{_i2ES(x#MibQ`ArxdjQZh?krdvT(3O~o zbG|QLt?N$^N#R?<;^juh4$}d6X+$?+!g=95xa|){GI(XwA1?`uAFQPDcvIiDO9nk~ z_-}1GiW&}UloberiC8pkJT#|Ggyy7C)JQCu!hYHqE*}du0T7c22SMC!;neY1HfucA zDNcl$(qycZoq+jc20(SvFszrGj6mH5NHbZ4oK3nYw_A&PH#0Q4Z$vXy!njasX@DKR z4%ijoj02HA*c#H z>Hp>0XPZVW{?2I7H*Z;lpPKdkuG4(@%7+_9Ecnc5{IORCEW&jhfmxi-*Gc0CLpli~ zT6W{E{*@s|>2-_{26PLClK5tw1ip7A1PU1?N@Vc1kkh5o6roVU=pa(p^t%#5qKq+u z(DCVnvzF(_a}n14xQ5$o=!-`t1KOS#^u&t))~2~Y-Q7q-1(sUM zSgSAxdb6i8R!oM@vDLCj>RUmX|PnE z0VA~;P?~I9>>VVDY_L!;yTo z1VwNdO5h2L_FMbjK*lg2pU$Cx5GW)ViWwIQ=n4u2(Lo5n5Q)o+#qq9~kSLPE``mu` zHKsqlqVxEM$9PU4yrf>O<#9#RJT{LjNVI$nV~zpcj37?G#M}~uY;PBtwR;npRZdfD_tEDQi)>#NM4SATV&4-DKEDVI(l=G)Tf8G?V z5PG?(SgtS)y7E)8cr;mXqCC8|-VDuoUO&kI3nWM3M z))+!$BG$=Hg0bvmm@CeNIia(WU|C1kVMNHRpEn-*Q-(s5`|9xZH75>%>VzRsoU!=* z{8^6kyMO4vY`d_0hSR4@C;sitvcdR@#re$&7S=KrpPmG#rSW_jt-D??ywI1xv*jGs z36Pfr#tS`3e8+7c8;j$&$U*p9S|9wD*^BN$5S>E?3qOM}$Y7DC|AV;fE%h#)+ocZ1 zFMb2?6$|~@a*qDX`r%}qx zLa*!GzF8%WZ|P`$;QTMk`{B;Y2`{g#nzTvyvfJ(-xu^YmZQ;W4GVVd^^`bLu>^8Y5 zMk+2H*12f)B&^&t7b?rgV#owB3>+eZzP$%v%-|VNox2>Wb5=lO-Wq5ttiu{jb8J}Q zh_!m=m^Wtumao!8XtX`-&9$&WOAZ#=O0dyWg~N(Pu-DhXdiD8OM>rU%%)wd~uz~z^ z7^}^Nsm6S)QJDn;j)2mbVUQm^6mv%mfb5uom_BqM zCJvj9X_MD}Hg~Sm#O`0mU#fkX=_`|CxoTg7r}<`K{+iyXey8-t)ZSh_0Z&(Q)YcKh zPueU<9Z5VR0AA?QQRosFT>hN>cLc{bT>g!|6dvo-UDyo-Vu#{w0-ZvtB;F-SQ&M=B z%*c>T08sD$5M4tux1rvqa+@SZk>tU6<06BvSoALlq#uOQUZ)qKL>RHaUy6=RAT8~M zZDoW`_XNT#cOW@jr$28d%^R1u0xpV^u;S(LWV!Xmn#S0!ph-iKi3=dmwzPw zKWsh`?hf(U{%>+>Ly%tOhqNkhWC*J8fN!iJth_Z~>8%FC&59U5MFxWg_Qv2o!!dry zT&T@ijzzL7uvBg>3>I3zbyEmJ+!Nt$9|$#Nb(op2MnbYH{C$n#yzESSjvqpR41rSjcCy3!V-_VlnvP)NXlTrs40TFw+(_;_022oG z!|=YtFmBia%%8CdvnN~sC7)>!S~MWB%Vk~QF+;g`drZ|tw{KA@CVg@B`1)rCL-1;u zIG(cTKVL3`uXP6Cr8aZ_Qf7YYr2q}lbT53v0{)u0{+<5-AcjRAD=pIdSOVZ5gn!W6 zI4Y6*CeUTX_QwmS{`j0Act#*R*CH6Sr14Cb&O|8qrG$i*6uzaac*Lmj+DnG}$>4or zA0TW1z85Z@r=hz`Qb|W;FPJ{YF1xy_~57S2}VIkea zlKCdkmR}E}rJLbv7l8oRXjqy#Kwe%B9{!d{DsV?isROdBosnPfiL6>zB7C~!4w z&6HrMJq>yb#$)-sNzk4_FiaT*-I?Q|Lr5%{HmXZgMo`0{GgG+!Fa}zT5bBH?%8Ujo zbP_7Ut7anwUnjyK%Ajj>u+l`xqF z#mP$0Q#6A5?6nmPv8D{<#^oDpYrm`8d+DMRr0j%FqO`wGQYf8 z%8`8ut-QJfzSm@NF71uyOQi5hi=((Ei*GT(utXByu460+9e{V?68JrWE#J?RQU&AJOXnG_?*5hi zC0cZ}nADjy6BnJ(>;L%^J&v~O{aH}s@K9sYv#+(M{`|FOKYYz1`;JlK83FNJqc@&u z(m^aH95h&b8dCUXF`*&AA)pW5hp_0wS*&3!`cO`X5EAS^O#l5n6)M4=@gjhIP=CO8 z2);9vz+=Ma8%@H1ulUM@2(1N1EGh%6(lCXKc>qG(;t}8$4mA}O7_3`@ge-SD2q&b{rDWH*A-BN; zxmyT|#xCUw{T6pFb7vuYqM*eKg(3;?pxV4pwAGWn2MVbCHg4DIChGIsscr5kU|-ng zio&h#C~EgW@m3#h?}zfO!Du^}fkPK+aqLPnj$UfTu}fQV>})GSqa2{Cvj7X`OvTJG zlcBRf4=d!?VC}+~ z`Srqkf4U5RZpVGz1#zDM&U4)_HUsdO=lIP+ak>Zg+Wqk)Lk};0&f0ox*~rQVs|Vw< z{)9Wnm&woQ{&n;;pGe2FxExQ!6%qy&E=VO1L?RSY>!^BR+EwHlvT6fR(j15F$12c% zxEke6smLq|gkRJKL}%D>Ishi-x{MbpwCi&)XN&^0CH@IOI@yP5(;n$Y~bjNqHf+#gigX2!z}gK?I4QRzU(R zJP3v^6}S4Ka$7js4`t%$g&LgcY{!}F+i~{#PMp562dA#@!6#RD5)$n=bgq@|!Uei| zN|-l&24;_$$Dd&hOjlSV*dr1iw*KEQQCo4>)5RAt5s_y@+(Z7a`KmEfQ!&ZxC~vc( z_`v%7NbfIFd~JViEsVwe)7x?H^iJG5)sDMow&KC*D%?4hjys=(+^pBZS;L9= zW>G)9R-_vs1io5CXFwqQpe%)-6s7P&SsLG}iQ_rJ@RH;43#DFos?wWTUktz5^#;6p z;jIS?mVzgX{y&lz9fKF0g9i)US3;zB-o3bvpmCSMdr!I%Zu7f09fzl|{G-?PpkweH zfZy$h<4Zb?ujy=_sY>BHWx583(Rk`O9uKvK;xo;GIHNV<*TY(4ZMuI&JO2VtU*yyVqpCdvJC4?4->Gfb+EIzJ#zZ9Nd%-k&!F$_FKK*(!$rCdbHX>lbO=qMOH@>;#9E;!^72zjlZ1Ogq#2O!WP zRBjJP8-Z|G1ca?PcXJoc-PntB*AGw!35WeS!}&8e_u^FN9-QplMnE)S+reT4Mp!{d zTOMTZp z^Ae+X`CPcu2SNNJR`^s*2+)MxU<;x91DQ@k+55 zZmACa+j)&K4&A@5p5`C#7!_aWjd+gONtGPA35Jv!s?Lcp5afdNIuB&l(J|EdAiFjY z`Hhii?kK|ElWjO~W;b>pZ$m{(1`6uK5tz6EK?!CAg)f$^R>NWq6-*m58}lZpK}&9x z=(>ZxnlViDtl@1JfnfJoSQ^_vPIeBQJxmA|Po!7S5!8E$;)DnYgoAMHA)gK*pH4wE zO;?alr;yKRQP9Ge(<+GT1t1U(1q4NLn>Xcy5`v*_cLMgEslq4Mwz2Sc5f1xs_Qrmk zy>$R*Z|=uA_Fd|rxbD_&YA3hdhJ)v7`Sa$$+1mtKnsRgy(;z=x5o?yLgP%hnV*L{k z<{5>JYs`?Fnue{-)kui-Lvw2}+IQBWxFYkv<#QO}{*KnkF(I$Z^7GMHR)dD3I@IRX zp*p`3Re9y8p~})T5$ErR!_5uoJl28E6T5Mfj^Wz=3~WnRz~MwGT+J23?IJNesFcFp zEfTohA&n=urs2&Gx_DBri-)SC@g1GPS9A$qDRESuCqoeQ#WxDQ@lZt?kLV`8ktZA$ z^ul-Y68LhV7=GT^7w>FXxV9{AyML?qwk&eHKlP6Koy*_a(J@d$FPgR&#O)mj5(mZz zM{)e-NC&}nu<3($=KVw$NS_d3-^)wlxvV69oGXo=Wuw~g&&oN;Ec+Ucjpua z*>(TwdYV_HQ&?=iCz4CukwP$}h%PwNIn+8KoiU^a$h z17~;O=*5FLa&9kL_m!cnITl$J-f#~$Kx&B>96i@y(PB9$&r`#sp);_Ad0j_oHS|@D zuyWA`*qQng4)O4|55m%gOJT5PF_N=AkXGVK2r*i0VLWL1()K_ z?V+Hp3k+TILgCh~YY+k)S`MV*(8W4N208^101kHdA4B1Tgk{uiI*Qwb$c=3{&De3| zd;=P`r@_op7n%zdFlXFsXfDu(soq8e*o7h5HyOT8{xDv(24zK=C@oAxY^*bO?8`&z z?o?E@#38#R;z&|X$bb63V)J(0JSRHH?{R5nF)FefP?f(0HHBMHTg0A#s41#Obzv3i ziYt*7pM<=mWL!RW2%RSn;nwNBxP7(-dn>Ha7&{c_a)eJYisN3sIPRBm)Fm9gJ|Kf{ zPWQ)G=b6_p4aEJn!8olu0beT(!;AU7@r|qmUd*9pOW_MSaXg@Vctm|YpAKV=7@o^< zn)AP!48S|fKKR{|1#ZE@wjcy72?Gk87Ri#Z;5t~a_$?SKET!;vvm}1sOaKV7k`&Fq zvy!HI;r(X15%WR#eO-S%)sVpFbShsG3SZ5a#N)YQ_-26wo-UBY*F3LhoPI(uoOT?J z?ad?GyMKK>%`?p1Atu`gNi4)Jx6pObF}cnWDfNsMjdTnRF34dNw%I$|2s=W0Vw z#SkmiO|fe6My%Jjho56KLcOA4VPXyi#hJA4Hb^TLZj~}N@YuOq{)`s6qH7Go^#lT= zRS=zp;2ydi!ynozT$J=e+4ex}I+cy%SL+!Sws#l)A?hH`-#*YSVfyd&0TSm0K-?6r zL$otuw4&ooB}yBjV7OKdno0_oJ82F{$POnbr+@eH-2MA6OgMl3k^Ie@-;VBH^gq-R!n~`> za|=t8aI(km ziKWc=mG+{$5Td&gb%X=KAi$w3QaIB!xDgJ5#rH@3zBKGR+ej$vz>$l)n8)`}`*8Hi zUL3yMj@BcEC~b>GNa}ioQib(_aQ8Qc)>0+RoIDc?rmA7NstJ}Wn_{_|DOS)uIByC- zxOWQt-9n(EI0uHtYRF);$f_V5=vwlGyAydRGkgoi4-4E3G(pV>d2{ie7-jAr}7OKS1zzaQMSjbZ~wTF5YImxZTc((TbxN zD$%kxnT73y75Yk0W)zZ}CWn<8hA`GOhYtY}?HdmlOFL{bTnPu8H3*HiKxU~Maw_R? z2-xBVe-zaQAtOHkv5Efh@^U?!pIhcrm|v4Scdl0dj*cUAJT~l@~|(<&Ouc{6{?CFKhhRd6$?F`1l>b*Ne${s zYf!*g5gQbMLpxe=~)ALlY9aVbjz*RmyWg|N6( zDvr}Es#BE%ajtGC&ew38x;{9)r4M#{48bAINw}^w5?{{hhnLd{iy4ymV!9Zf5FAfA z{p~c4;4>uf)hywf1f7HaAi#i5Vilu?5g}njC$Ww(!kF>Fn9jh6F~N|a;IenZIxc@_ zM7Lnr7r(C@fEP+qc*58Jo)Gw+5crl*dOA%C&u8|*^QjVeK1&LZ<@)0K!tvO?d=fIe zWDp)BhOj6JM8-?NH>?K^qUIOl*%)8!i^NI?Br!?|aU!MLF$i!F?o4#K1_2Bn$ZGIG z`St|tK2=Y9zKu>{SGV?19A&N$5?8lj$0y~e*cOAZbTfpetw(;XH)69Kptn*Tab8=<#w158&qz~3nrq29?bH8h3B;+cp}wLxaN00$RQwDEFg~gh(kexOai{%-KG)-Z!*aXJQHo|Q6Ml4lXh$Rc< z;NoG7=wxU3hirzsk2!n;9T1lsfztAF)YrG8xnTzivMUi15RD`IPvVOQ-{8@`$N2KI zukrb(f}T>};`0Yx`s%aq@Wt)NIDOzEQliox2YCh+CxyiprG&*ji0}wTTtFhqvTNxW zYDFNZ7NSH+6JfB0YCuhCJ*rCy2RetE;wsdaRw6Ab25|($v0d%BdG;9YoIin2ubjrC z&QEabYz=mlS)(L;9*Tp;qAGkGniA(>PoWNux0vJFp+MX{6@j}a{c!)JBhKtv`no)& zw})^i z8A5__W0f?1TS;diJXN_$9Pd}qDJ-XJ&?h`r4aQHJeMM2>tLbzJ)1>ju_}+LvSq3ks zh~pJs_t}&_Jmz5BksE^@x&x7H(-;2UQtiN@J1K&K1-SDBN2~S(f?)%KQ;d*Z<4QmTz|w9t7OE*>%9t5Yms<{PB_k|T zF@c`ydKhSJg1dDXLcCJo>Ff(dh1vXL86mTR$FCzCng|5pjs#;wZW}@IFO(}h&p`K3 zL^u?0^<}j1XXFS$^MOpBXEV-RXQ2}iADn|oH~$2Ja8dH#szY@5;_MCK0_HZp##Zb) zR)U)L7*uQt$0m!VP+c&aj%Wc^sI8+LGK7}ma%d?n!`fwQ;bQB8l-N{MafEK((uU^7 z?P#vwj+UBj*izGirut?S<(I?HI|RoMp2YpzkMQu*$N1vmQ+)a8Ykc(u#s2)sOQVABBc?TX`+KRj9TXE;i7CgFKfm^5JasHs6ZueX5@7f{xVJZjb49+?= zYuLljrVYol$%F7>N`HJawKu+)B7rZaisNfKiLYmf;f(@|Uz;&uDcylC-NJG@g=OOS zb-5IN*XxU))MfCPFnK(MPDBv*eKM79f%`w1(;N2|48^$x!#_WwF{-4)Xx!@L;NFwn z+{7jcva_Suo3sBQOG~jSPCeiHBqrt^?GzDR;DLm4x&%?2a1=eykY4LXAb8R-xFcP3 z0n(3P2twtyB^)tNx}7O>4jTyw6J%Gr z&`SFvD10;YbQWRu#FsUdJEi?#52SL2v;bqQXCSgAszT zI4|ny6mAH&F$EZO>9hz6dqr{NEOq9_4xG5sg0_QMsNb1@`mJe*j`4u*5)Bxy+6Z5l zVC1Kiu<*BIYvUfYHSR(yT|rCzHZ<4KA=G{7+tF0pj>ej;*iyR{p}~=;t!~7fn-B2t z!B-+EJo@x2k?wL?VoWkZ{lbtImw}9g9HhtRaykp?aoNa-<$QED(xNj7hzuk}B*J;K zE#X0U?0*{5a=?YJ^|o@Wdt5f9f~J22D0#b;rqFSf#v|b)gFky>B!(W zoql+=fDU1-B;HIKN|!JO_a}}1{pyU7moCm7RexT7wCUM-BjtFAo=;Q$&o(C~r{VrF zu8-qNJP8Nk8HTPq6KS=sNUwA6f`drDj1s{pYfr>3g5luB9XNb(H;!J~OBi%?OMrv` z2fB&N+qix!I?mRjes>B&Q#T?c%~7Dp6~aSK zo+xgigJ|+cQ%5S#vylbfE&{~a>%wyl`*EHl;02C=f-YX;bSHsvZ4b^}<@&4paQ<2c zE^)hSg1ewQ+P0?z={Z3Nk99+2tT*y=(@|g9fbC6t(B8NkZFRe`wRRU;s&`;Z^>#E7 z1}%b1_()xV*d~I5pvvNU1p0*I#Nm^8aOXbZ@HsyJ?C~Eu*l`pg{sco}2GZiwsB|h5 zsj+kp0uZ7JiD&{MhJc94L{0*M5tRaWD|?|hYF)Z-R|C27yUN2uU?TUY!RD2#2ET5SUvn zhl=8SOdL5COB7dP8Qp`P+9s?}H;19N4P32*XqjW+>){6#)wyuI#sa9)tM!aAc(?qPn~cZCkct>z19} zu0YUEkvsTU{|JPS^)VcTzP_>*0Un{)-n4*!CLnz_m?-2wyJ0GmlF+SP-rxvvUH|xF$sve{4n#^?5=u)-SX z8bMppSlxy#LX`Muy18~6BSJP3qmps))J5Fwyo=8te2LEq2*EjgDT2h;xP9|J4(>gI z`l=?Ba)hrbYs8`5$8h7)ZG3+35l$WX1Q7wT@OKG=?Rs0+?mze6H8(fY{#l6;zD4N? ztz~%`O{KXRRb^Qj?j@O-+R4Grle;(TX@Ais9uVieC$ZE6$(0^Rukk`U0g+zofy`Pu zh8kaFRQn;XJ_0TKi*fK&8;+dcMJNyiBJHDl=pY0>TyGF!#;!l$&~c_3H9KNCTKmH- zQV&r%n~*~{l3V9SID{c2#u1AaGgeHQju~SW7%kRAw_C#XhYc(2nA^h;8W0If^YzeP zJ`V}G_Qj>tzxb#ZuCS6olr#+ZE;H!wlpQ7 zq9y@JX?_Tg@<4QK5Yo~Kg3?lKscS~FaBYB2pt*i0Bf(A{884LfE`Dxaqvt#j$PPGOTJ&EV;2brg5l^T0Sdc0 zPv>w^_;Auz9KPI)rURMG`yt3CaGXQ*kW^~VX*cB5x}%`p7m2ytlA zsu~jzf=om%!f2T_yzGJz>J^CqZ!c);C?Pn;0;wgAJTDiz2LTSu`c1+k)a z2>$&@@UQf-OZeanM4~%rtY}3;MGLl2P37#%nkk{@x-vqdyp8J#4+5f+jvy&Kk<(ky zd8reh-Tw>^?tO|+A3P!mzUbDMc=*{@ctkhx@XIgJzPlNb@qTD-FTnOa1*mOGKysGD zQ9nO}zw8&__O$;W%`e(*aZs|$yTn2dq*b{Q3WD5465xnDm7wY$=>?^L4*4u{VP z5aqsLrZzH=+%)+mYgZ8+ttHj{=kIAf?O(Ux zc=x5DDK3aFbQOL2GOf}DY1Qnh^cq(}!W-FjfoR;5iH_3(9Jb-mSvrFYfo2rokfjY#A-_@R)6o7dn9bMFPP4^u~MsTq>0HY2r)@u1Qh#+I5; zSty6GBc?!IPLJ-vNCXF6l?~8VHipGo7X-P*Aly3^+KV+|Vy1<3I*!a@SJ5re+!{Y5 z=eZ*w%myxQ8{zJ0g{YVi6qS~swxI>}4cpK_7f?qS)YH~)5x~$5hmY07WgpaB_fM`9 z2qG*RYia#IR`;?l5OhP}W3liBCm{4qLS!g!LPehNkWnVWJ)_`j?+0%?ANV^3Al5$y zfiC`V+~f{ND>t~>xga$z0arPwuG&zJ8U;NVzH7sR%olkV)JTjv|0rhZ(AfL$1xg| zp|OrJMtEL8DE8`YEX?g_sA;E!qGc}{!G&z!LJ1fD{vHk@K-6@>VGH-$QX_2h=LN$L z`V$Pa|5QEISj*R}Zl;93>lh7HO(NBcoI)FF=?WrzS>Rs&hz*WJT1-6h5|WS|7mw7a zP{an>BiPdfcAM1UY@vlf?=`Tu(Lh+3F>(qVQCRMXqFP7f(Rt-ov9EAKPMIB23(OIn zu?{gAMo2HQK^8%gUFm`BDsPlEMPbJw0^(FX_7D;+dot)CLQq-9$e3#x+Wj`@X+7=l zTXb}^ly9{Ag_vA7#1}Y=zU3*EZ@LdkBOJ17y;0H{fwlvL!|`fHizXa6z4Z?VaroRG zYA=DYPo#rqcj3UfcI-M?hw`n7wESU&Lm gWwja3vJ7RFz_A@W53bxNn1n+S;N3W z9-}8qV?f`&m^5-W7AxvwsgeP-88HMcQ(cFJbC*G5zAk*7f>54QjxCjqj0P;us;#K! zh+JR6Vl5{GDmaQ)2_hT>5egzO2p9XhNAiX$+IPa?<8=+9ViuNt0EGa8KjF}IccCjP ze1JoJ4P8mM8fyrKnl0UG=Er}2ybUKxY$fXfXjFk zWy)gL_9eJ*&IEVwZp3E~*W=;CwYYVAHMZ?kMqn)K}Zi?vi6>#=f zfmfI&UDE~>RNE64Hps2CCmbA+$-iY*xifMrd{DPF0lSV?VAt^m?4!0HEJ78bQQ7E^ zj6D06?zclv>uG;Br&1^BumqoT@p*1YEV4mLxjj;Z&sFdZmPjR65g4N99-L9s5{j*d z1wd4B1Zt#k<1N`DQB0k?90m+8Y zG#iZ7uA^Y+J{)UYM_{AhY^dpv#OR5AFnC}e^phNjNh4-MVa5_@DXpSYSONLz>aa3$ zMtOEEYKu4$mvOYFJ+H51VNyb|3w;d>yqc;NoB<&qT=5r*zH8eL5D>u7ELtv1|7rcX zPq!L4Ur#91vah8J_&X5-wS+;Pu%2$AuC57n^$n=0twlw71kR^-dcR$R)aqi#yQ4ZFd|mL&LsgB$YV8KiL3|q3SSlnhC{a!!de_ z40`twLtp7$7~XFr#t)u^ITPhDecXH)>YAb;xm5JIfV$!>s4o|a{UbQAXhnri``%c_ z!mnr+trv>9LF6I`3EF*O}psEuEbvt=|yhHuM9=g zjvRCxZ^gk+wo&{$5$=1AmZN@a97?KukY8+zlng_S?zcrx>uDdsA1{=BxPp32lAWzQNAr2^?TFMawrGejul|XiDK+M zU5SpfHQ0Z?7W>cDVfU#@H15yf_Cd&L;E2`eg&g5~8K~kGKa@5HqNv^2S9052NLhFwq~44J+kfxyAqvX14IOb4EgB9LkGJQCw7voZKuH zcrs!WBM==Q#Nr7@No6XUca~!Ri7hyJX**6|-HsENTX6V7Et>bIqNK?OrHzDW(JDm8 z_D9FwezLRyCLL4K92zE4SL6Z}0%57rSD^W_36^tVd~fK57aY&`=`S ze~$ijE!a|BiL#mNahP?2TJD zhv4j)F{msXgizlB2=SSN5Wi)xHeZOyNHgYp2jrG{VdueILSP%UgW82pF7CvME87T! zc4`|wVSnsWGo4W#VVH~3R$mltaY9a&34)`Cpt(f`7f(sz4gqkNF5&228C2$o;lQ>o zVBG7JAS}diqf>_GG!}Pm&&1t(^XMED2m(Ukp5Pjk=o$zNL3b4>C4xZ(*YBvH^QJm( z+|n3Pu&_rI5Axg^qSm^#Jsg6cbc|39oqp`E28hZ~n;=m_#bf*Z1PinFISUK7| za#2P&MmtfyCS>Bolx*ZPOb2LlrD@p zn-G#>h`_`(2#Pj@y~|Pr1(_lyVl#96YIr(Nho6@Wva|YQ_s$WxdSxW;-yMWc?@P0| zI7&aDjlVC!Vj~ppisSYjj@q}Vn^FYDVBEbk0rzgt!o7QnxOzy z<@w3u&P^4O?%h_w{X1%mADq5JU=R+sIe+tx1_7}M*RCza$;KnQTK`8ybVh!-EbiI10ma25X^AVi{b5Zpt$NW!xe6eCJH z-9-|!udUBQ*!eAlYlJquV^+eSIXWm&8!kSRu-RS$S(&|Y{@8HbyD5Vkx214{j^OTH zG2Fi=PH{9Q2n2mReTVCB5e}U<#qr5WNt`-61h;Mr8DEt}w+MG{tJBsi;993FPM?~E z;?hBgNSTb>I$N~TJsdpOMnH6d;rPY&KXmM}a80EVhb~s*z=cw5J(7mvCU4|%zk+&G z6qYL>J4G6~vEn$;E{PlGc&-sQC)_Vu|0 z!+g4(1r%MxZF$_jJ&)7#aaXiV8MkjOWWNwMI~U^8m6gaXo{P#_OYG?=q*Exzf#bDk z*;a(Y(ikqQ#{MHU=r~q_eJ9GWWmhV)Dt(b&O7~XkhU8qkm+@&0iZAW;A zyL}On;fkniJH`tq#Ff}1uFUrD0P&CdM@W1u0TllTi9aNY9fX7sGb+1onF?@ljnIRk z&0N@csl%Rdu<})amEU~W1xg%LXSt^Y~`zO#%$m1pp?(&scxN=ni_01y@k~9)o zH5RDboh*9z>*)DzAY7nZINydN1jga>!u1B>qHGNgoUg==-=PAPB(D^39p&lJ)tFirPE=rpNP}ty#gnV6u zCGwOfQ-h4vwd*(lU_J|QUd$-4@68-A0*`}Auh`Rz7fmd8LSQ8 z$Q7{jUWCZB^++zTLTZr>k_)YoRA|*L0;0eZ;VB-@-S3B<*3ti@t}FuHX+Sd=SAPx>YLt zTfK5eSovtcC0GZk1VeU}3-asTQBdcO!un0{3Lk|G7VeqT97(T<(=iCw3|Q<0!Yvm2 z&AS8!`x}JB4Z`B4a7}^JH$Rdvf1A2EV?Io5hhd|GI2v0B1{TZB>jZ%S0K!2e0T8$8 zBq#v_0w6xXY(&#uSi9LJzvgjtzJuIN>kfUv%!%=!VE?$;Hdfs3} zrp!cs-6q1y84Ww*&~dT`ht71lhNEY<5)@l;_z$(=(Aj3}KV6UApH!f%HJpHRMG*m! zTDlSuiPI1jKLWAIgAp9q7s+wbICV%GmpIyAy(oq2SHu||2nY687%8rboCKZH8EG8u zpbkp0_$6?jFt{WF20?L#+j0K-d1)L!+!v{7;)nUvW6@CdeKSkx(A~MGU z(R>rd(t^eo5f*|72SM?KLn7fIsO$Ep0EvGB2P&zOaHw+n(>ZiU58+yag|{j^qgNo6 zQ6h~lBD2aBIn^#4xgC&RxD1hry>R$gA6z0FZd|7WV4;g#LpKCIfIx5!*Z+kCXL0Ku zx24MvE?(Za!@|5W2pxN6&`>Fc<|-E8uCcgyT9(DCjHKj2@CliMoJuR?)w-c^R}v1M zt|0_k35D%Aa=QKB=-{bV?E9nJ_LJf5FcMKgGAJ#S#-3dRapLFz zd~#?2I=0K8tVj%Tu@Z=mAC1HeMFhpFz#~`*ZUKv6<)H=(S5;A@h|MuWe4Zr%VZq*9 z%FQ&i(|zonXoj$?O^C>|KxDo-A~+&N3xFsl zEClyJ$M8Y_9vnU>fsjb5=#uamjwC|G(nn47ost3^(#xHYQ6b#5a7KPD9Y&500wSfb z=RiN4IVXurm&MW9$x)V&5Y$O1T16dxHsyDY$WCK02?> zqFb0qS27u&92tqGIw>T_OTf*iA2N%VBaiVXpKz$(5r@4eN^#&+0}h>{OE~#&b>L(R z;jjg}PgJ3vFv+X)LbmWcM>WAvZHLSnJEYgx6BJg+tusV$`~>&~NgyLx8fj6z;I>H` zo7awl&ALVKvLcwh!x0e>gXo}m#D>HpI=~M;4(niTtcXnp)8S|-kGLokq@`OUCCdqM zsdn&>FoLzaHmuwh6BNdX&vrm;HsPLYjl@F!UQ2wr%;!~Ps!x%Nzvam8KX*^-Y5#Lg zcG0Y*$}47Kg_SJq!8857T7sDY?2R>0N;1jM6D;F8$mh{32TI{pT z=mH=vU8QKl1zqm!($yOT03F2#x6sLm@rO8n?Pf1(B-hC@j%YAqXyN)zOhxxCm&r2hXm|7UXJ~z>gXVv=n`58gI3WuVjU2Hp-r?* zc=B-X@oKc~&qAT_pTHPNGU=GIgvZXSg=q(5RN5h}$`R>-QdK`wt!KEBJaevKOJ zHf@4~xg!GIA`s=5h}ggsM24gyJSY`mUI_?v4Ttr5dswWqgp0KcTy5Rq?&u8%d#Bgy z&5U-Ln63%)^mYx8j1G@TPECx6Nr{ULjt`CqNeVRZ&Ga4G{ip3|J?($JX&G7%R#~ah zxp3_~XqipM8r!L`4p4$$@=7|1jfgJX#HeA}rDDRO#EP;;bg4BWOKlKUYKNE#JH%2# zA0q+aJP_PnCeln!9<> z8fN?D1kNIyIWLDJC*~nJuRlW5rz5t&0O9FI2uWIp$TSNi<~fW0LwIJnH!{k7kzF2y zyow0qlt&=DEF4*-Va)g;$Sw^>Ze=i13Y-v~NtmW?LU@W9BGNV>CTk<&ayKHW&_Z;< zFsaB|^Z}{ZG%Kt%R>SI5+Ss_x7?#Es*lcXe-WK+jp73#vMW}B&<3$!Cg0m3pmvqz5 zGoi}XA}~f@!(vwVpR1?!wEy}xRes5gIVx&5l(glrXw5|EY#a_<^T9B%9}9DzIdF|y zgrM|Q2+L+66>LCcu{pwvEf7X%L=YGvP?Xssma!v_jv zZLQKM$d%$qD-AD?!AOWwL0aq@MEDvZ%EuPoR-52sWey+f^>DLX%3QC^f|EyOg$j1; z(L`eANZRoUEMRST$1Wxu)*+?PhIZVZMQo4M5{~-pGfEthUgV0P=nbfBjK-eBW!QJ5 z79HK6U)a8<0*UF~sA)<;O>+VYDg#7c#*&g}i-au3vy^qP_f>~aq&`9t*1|V@8JxVA zz|>q7dV2GrudkFI7U-@V>=(S)(=&8L_n)Ds^|b%9+qfz7LMKcf|NWFXgP^daKeP-- zV7b`{tgsjkJ7A=Hrx{N!OlpF3`1U02Fi0vQI=DV^1K>kB^4mVGX&{TNvO`N#GZ!jsLd;epQ}C0 z*Dr+aW?4A9%|>{v7Sia567x2|DNvn`!GsRLj({K-iXD(9d>IavQs{)_d?#$ORYh{P z6Iym=W9Pmq?Ac$Bjzi68Xe&Zsq%)e^3$cA)DRv($MboxaIW~^jfjYLL}Hd3((}ELoZ~<^sUs}elu?2XrpQV3eU%v{t`xT^@#MBX*krv5 z*?F;O-%*D>``WPYKsyc|*@gP18iYrOqHWt2?B??Qhqq$i!3I>;Cn2ji2#MKlSZ}R_ zP{JTSn{dow#3-B}XlUYN0>H`NQ%mq}x?rWh3TWw6#}8oZ+PkieJ`ma>5(?LvemS|c%sKuENQshK_k zyu1+U7lBy6WW@PpAR(X|4$0Lh%_IPx#1ZP1_K>z@;j|==^1poj532;bRa{vGr5dZ)e5dq33^FIIp2hd4GK~zXf%~owt zROc1mbdpR*lg3WRPBWQIY&+9wV{Fr!pJ|Bhz3vJ&>5ukDW}4B=WNb>DNo1GZy>}s3 z;|K1t3oN_r7Ymn##ULswCQx<>5JFR&7*i1u6eKc9Cg!7P5KRi{+w+{g3tDZ{{Og&y zbKkG?p7(q`=a@h>F6o(ct@Qv;qHcNPx#7!VVq`|dO5|x%SKN9K6MPk}<{$B?uxh?i zZc9DD6HtF+fe0(|Lp*7CSr+4`KNtIJ-w?duwI`>rfIBiV=^kG6IqEIZ68S1mas<{r zMfyKHHvRpux+Y~TX9akQ^e=Hu?#n)@VO_d5|7WI9$(ohmfY97~{f?A~sPZ-Ajzt2; zA^pi^#`I<)dk9U-`?fJ%B#(V>uxzU?g36XUV~H%NNExp!_0P$%SyAQQEAX#ydS~?Q zR$&^}On2fj=g(Z>N8#TR=@GqpK@W3}ocL6ndix@8j-LFxi0?iux@s+oscxG^_#Dln zxUO^GJFIi1V>?+*nrF_iDplbBitkTXqw25ktx=`tc;k9{J#JZP3~#2?u6%*lV?5mY z;GLO-e2F)RAU^Dt28`(^2WEd%LvD`kij;&qHBI{#=C`DXy0$E&Y-;n^8YW@=Jw^5N9$T}nZ(nz#i*giJ zBwNfa?Z>#>-uQNC+kP>8{9_J~39@)k`>^m(;P{G?zr>lnWd(~DC3mbBWQ-50oZDua zs=LH{V^`U?(OqrqCb$l6L*zlN8pYfZE0ta{*t6t!G&AF&hQEm8{ZrZGJ2NB7i<2BQ zZ+4Ceuf6H0aXd@C`uY*Sqkfg{?_h~w%Ha(Dx%uSiEHNkf$^A*==?Jy9z{Z)DXs_sd zbwmvIoae)c=d(kXn7O*Ng+q7ui%AM)X}YV{I+taRS*rIqTki>J`&k+oz?}PFJglEP zb(!>Tm;n#v1E;Mis!ESEmYbGVIGe=S$!XEwG0F@>$39}6TcSPuWZnOosB+pnh~>6` zX8lf<*)3hB{G6+F{_%0dFeF1#_u-)hU5}=YA-*rxD0u;Z0tJnknS(C#_i9|`T^Lu| zcRq{@kX`LfgQ7Lohk8Mb{srGsVw^IDixhH6Pthwb1|5&B+PSsizE{eh|1jtd{vLZ_ z#XJ>pO94K3D++7!_fbTms{EUDt>xKF!ZJ($LF~m#*L_8?-^2&Mj=CD(ieO1T0*nXS!o6~47&=x zi}i0rA;r9vY}6KU%b!yoT#PvLR$yJ*+`h!`h^{(N^~}`4z{V>f&G)EQ*n1cDDqqN3 zMvgd5cAck0Jxs{91MB~lLR#KkB&ZbvjU}d#qi|(~qmA}D!l9t+*`N4|n~qgb zf&(2+zw?QB?<^q%1v=t(pzAEBA7U4CpaqhmHQvXM@Hv_$ymsy9VdZff3H=1|Oz}?v zBt2q?B@+?M)+lR#3%^FxU)&dTZ8`)Ep$Q8lWEp(@Jfq8*cR%CY2Ff7kbLor1fJ{UJ zojr9))RrCL2T%nXh$*XoO5Mfn1l>>Epf!R6L4$F*t#N6&JvjlBa{e0{LLh{V4=>`w z_1}qs_ZRR2-`LPJCnX`)w6CcCewIV2LcyrF$2Kg%+=POHC`~7%v4eq47Xb6{ArKoT z1^DK06hd(Efkb~6-AKFf5n7`M0&}2g_n{$1Iv_#W)}(0hZTTRRFrT4r@*2sRUua6u z*Y)c8RFEEC9&-C0r5ylmm+W&RW#t*HHU(TD1{&dO|G|rMldOg2QF^Sqi)5ov8N&xNXLgsf?;HRq07w5+^~ZjR+b%0zRCY z_<{w&?9dQ(1ZOFrKBFdHHm*UdS7qFtG?s28G+_VUXoS_gVpQ><>-l~%+YxH~FT-yL z8k9+lDJEt;wp1pd*k6N&VfC?UgPlnT(`~WXW^Qi2mSUyyQS=)~eCo$Kjb*0e)FE|K z26R)K*>=*t z3gxl$aB;#1d!5YeUEKe5+_&@M-M85}gKgec?j9gP;@q@gla;fDi=~yjI7qt%NIO6D zo_0D%JM({RK~Vqw(#pu{fD(WJ#1=ZN)~TBB4I(K#Qh01AEGG0LnL>$WSPDFJ3_i2g zr0IWe=t}n(N;21El~2{w0P!p|StsM zM5x7@VWA^q-%voM^}Vbx#UnasBp!B8CqfFJvJwl>008{39F|C=(6CY@fENHzR#;+x zu)KdH{N6&C^e+miAfUVuuEfvY5%-T$sg7|Bj)`d{Tj~8rHk$S_qJvtJ+|Me-f=Nr-`~hYHYv5)5YPz(@X1@nAfsq2I{KTk<<3a0emk5D=oTHWuE=$p@j93mU(} zh6@mSXJ$;lnUerQ1m;u}U8(LMM4z9|vz2i_qU9pf<3M;CgfjA$q_;m!fKXC`G0%2J zp0VE{(Q~Ec=U=c=c-b)`&6^z05DL*%ot)%$A z;K+;S{mzmA794r8B0I$$Lo!&b`D04hW!2gSE}WAzq4+Ww;3R*G)(e`y@`D2acQ?63 zwDjMer>q5u=8>$0DM)|C33lGwF2}P3sG^5h516&Y6g}ncbE4d{YB|+2x#v)MShf7( zgesVgCROKaUZKKe<^Myb{Hx&c0HEPU)dS{tAXik1|D+4r0urEs19GbPo}=$Q zw7(LndMfwaQ*{z*G>-D$UjR7#{vD`}L&5SNpg4YC{l8|8{>u9d3YH19Isl>XR5LZl zwoaEnN0~#MN6Fqvl}{=9GqGxpcOyMvj?FyUER8oW(VY?$8UY{&a^6kXgYVHR%={^V zSa`G8Q=1Zlx*%55=2LZ=`2b5&ie_m{NUWwJXI`Q`2dnplW^_Rn@0;5k;_H1_K8D3`U&)TB2=ANUdz+yITSX1A~t@eq6HHl)rM)otY)=g zy0v1%P;o77*f10}sSTUuhrzt%VUt$lFfXuo(c5Wu+DMNy;5p1{QQOEs5H>w!q&MZS zo9u6LA_hBG8TS$&_cWUHax(BTn*XJ(<*hpDWi{?)HS1-ir)#8F#}D?7!mOq}jb^>A zbU(mmYrMw2{6SahEnhoPXN z8qMn%O;7QUCxTk)qzAU>fCFK=$zEXZtf!HlfDtSiHaqF1>+JBTyuYWahg0lBjgc`P`yQIgd%C=GIF1F|rK3yQqm-|cMutzYLV zc@|nZahkZPdK~6o>rE$>ms((d8=H>FbC{Qzt$kDJ%;&vqv)8Rg4z4yU;D%r-L%{;I zln3yc0n>Mk&l5TNiJAHdL2WjIK~<-dpo38UK|Yx3smdf21`|+)C2^|qsSb{7Yn?*J zp|IyVs*{PZai|mcVhzCFS|i;lujwSKd8n$c08A?x#JAD~UwD$0LGt}n!&<6?r=YUH z^aMbzz$$EzNOhV>9tKm@t$|G@S@oZ)z=-&#&*Zegb)_0M`B$Ol?`MWhPg?2L7%eA( z;s>j$lhvS(Sj{KF7HgagrkU=k0%txI)8dDXd#S>_z^Sw+iR5)Bp`)HKusZ1pGdczJ zOYS+0f7C-2oEcoej6h^>m~M^LxHd?kmDx+!{G_T@k`t(X^V+Hg$xgFm#s=p`qxTG| z&I`a`$yW2fymXVD48UFiRo&YAv9q;KMqnoUOVxxG%*)8A)@TvLoHCj{cY=9&8BAF% zCmSu2c$-}KgTgTaX->8>AhVulnr|#4QvD~Ud)rAeng^#QQy5RQnuK{xLt(QYob>9f zW~cn`>4O=~3K&h+TItn#>3#5DOfoX^_5zg_R(rqBnt40v`54Vlfz{8`R8zc zZe<4mQv?K{Lxl2b*!C&`bXeeP598USgJOYRMW_PnW_rSVVKn+sZQf0~Pz}vZs!&bM zopjLnm2wibHSIYQH8qvW!0le+udaj?cK!g~gq5NInh*dd)XTxrE&-(!F5A45s~;$-=Tm>b({(w!23a0l+618PEvA z{mhU~9D_KZx?f2Q*0tn$g0J6~qN@HC$p`s z*P+u;!pI5L0E2+U`)VSnZ}cECYfhr33B~3)UkuXEN>C?R|IfSf30%D z;yK{)7V(A_Z?H$Y0IrcYO;q^7bQr;O9F%Y*Mnn+N z!V0F#5sIKI61Ds@YH&($vqu760{|7Vl$@Lg2`L#l1?593YMQ@}7ab}9Mo2yA_ynVd zZ@N$w!n)BE!$CXzkA#m8y3t?)JxTx{|6jle2Ls9bbRRI@`>vgXC(pnU!9{8!-9 z;6BcT7rOd9G41l0+lyHlhxJz)&5{zrV_nDGB_B?rWJ*ff)y_ZGJMko)3iaG_v%#Vg z^>gbJA$e9A=EM525Vh*ej_>==1kULuMlM(gm*u`X%nXOW(!ZhA9PcK{YwBr@&_%d< zTU%>4{bo;Lp;nAh8i4P=_C`L2zY_WWg76svd1)w5#%`q;Nd&7AmslQAGVNc{Mz%*F zLCN*n$d=S~Dhmxaw=wo%GxHLM6FwAGIe3#o8UTbkPoqez@#gPJ9G79t4BaR-FR?OA zJPC)xPq4LNo8vT!3{OM*Jj{`teJmw;Ydb14etNxTfAWEN+`P)`_8A#HSD;;}tibDz z+)wo+2C6}}NbMC)`v~h^PyV5Ln%FIQ11^j9j0%S}>>-Wbgzw13HChYp)YvPeOwI54 znJ}f6LqE^qzhL~jryxv|;;+r|CnFdIXw@GgsX7u8Ls2hA%F)!LHZ&=zk9T)zsY2%G znO#{}q~Z@L#;T^GQRA6eUi0$+00J#5`}JMx`6MH7loZQO2f%y6u&`Zo zzYqg7k-v22pffKmrPM=^*>}Vj5C;5PQREfW1dl2Bgph$wpG~N?$7iApD>b8sKc=;~ zu%5oYsMU=v5LiM>Zn39~IRCB8Mf`9u@KC>4$* z)gX8{-8IK9nnMI_?L}${MH(dCXq-;cq(CsgEneQOVOA2CLDsK0-!8>EYBYmMBL%6- zMmMrj!ao2jVVeS|F6oe^66+S5(afVlol|*TH!+KPf-v-M#q8Z+8h#*DABx|SPj_!4 z0AkG!K2i(Z8ddz&gk7<8qn zZOyT^(S%@+0PPYxON5OK3^n={MU)V1S1h$4Ji7GejQ)(PB##O#Mh!srrEo*AX5r>R zU+ozLpxG`fZnixdd@^F()gJneYb{75M1oE_6B*4S2=7HQ`M*$$N%}bOH_%r4c+SKl z)4ho{-b6oB^p`2)pdWL`*GtDuF_^!jYM|cGoq;Xc5XK47hUbUF(6Pp1yvK5f6(^sM zj$gM(%r(3gB`X$sPt0M8W#}?n?;G`V_0pco7U)^Xc*C&HhF7XXd1k8hoiDH}nZnC% zw6|v$LuVBrerccTgbM^*onKmy#%?Jxyiou0nx#~HM(!JR%2z%J6qOUdlR(7q@2XY2 zs_S!rRBY>aL?84GIX$QF%L^c)-#OQ+M|2G6Qo~9>#;R$+-}}AI7ZkJwhNYn6xilh2ih(9DYt?uGwE-nX*RH zK%o8Mq~w61T-D#erCFq=M`HenG7M*CulO1VjjFdXDm_4~#8M=4FG#tEaq%%<0r-<_N)ZK6~DTFF#;^0Y3)iv5`QWD8i&-+WWsjpD)={P`)HWdYzwa21!IQ2(`qBp9fko%l=UlS4r>hCD$Miv~vmE~h!K0Oipo4IvKT1wb=fQ$KaUr7qjr9a$y(><5}?O3wz`8zkn?hNo0W0C>2B>yP?T zv-CXEo_6u|ldL0cxB4?ZrkLLAIbW!1V}feL%(q4pA+-gqnvARr(nsp=Xy28;YDfu3 zICh+!AUkQY(;WQnEO#itY7u1Hm8gsPVcHtFIhQB!GtIi7MOIPGDaUmrw2w<3p3OMn32Q`vIVIdNm- zI$w=@*(^=QlhCs??~_Bv#7gb1NpY@D(u4Lk<$>Synv+xi7pHVP(evO|b44yzjW>Bg zCupaAR{bx&&RdUe-=KT~-aMQr_7ce$mC60W%ZLK)WJV_s$;bG5tidI!W1%*|4Y6P& zUX<;#YU9NE*_BM3AcG6o8bKsJ;jZSNe|I{|b<3sKJf|a?r5Kr3!^TGDA19W!iKPV% z-pPj%nw9kGEi>}RCaih2G8ymzwVo@M^=1D6z;RCK~Bp}!5BQbcSS6&#JdBFBqRD{@$495 zl9m=YCPjzRH+kt73A60dcz>Xt{+xH_yK;UDQ~Mcq{AIw;+RJZSXJPHZ>F&5j(ev#W z_U_>YD!q#@Z5|`tyeyp@-DLBu(bV3LI}sW~L2f`)l-bt5?5J&DdZEktp*kZqtsh#> zSjnw!MC@o#$o5#gfAXcxI_;iS}{^QaVk4 zYE3Mfe0jrnEofIw#Vb~#0MY`%qX-x4kx`^^Za@*eP=#Y)Bk0;GMFY(#>41FWJxpttGpvVAu@vts*#VXQbvmnG|>=+b+@lG(jsX? z3yi@r0%~%Gd>{)M+cOX>-qxR2S49AUA$BgcxohzWsRp#y&(zO~o2M2(U{-2e z?mtVh&eP*zN5xS~ExA$gPa|Y6T>4)9T>abK5=Jy$uxqmu0^vX=ZW;TDfdxfkHsh>5 z%oqXD&K47^cKDf85tTt-r-zB0_9&S2T|daeNT$cK#cUR5|FDDjdd`UuTAqTfP=l#4 zy4=u_=l*B>Ci6JTwP%4 z@gbVOkX3L<@%xCU@L;oMpYcGTpR(`nC`;i_4d-%ivsu{TOD7vtoh(s0v@u6A@wdWE zzmu0Dukgo@Cxi*clWlbd8#D}57XP3ii>Hur>~LtE^GKb@rF_oN1s77Ih5GNF0Cxft z`ufS&Mp_GxLjFw|MNw{y9Mr*-Km`EE4)wT=i!BRlPCh#&*^|8Ui z!9CU@)FJlhvyKXQK>T;P{xi!$j?Mb`l&*_6#-6{sPCQV(>YrID?NC7o^`;wvsGGKlUcVM-!V+7@P#>kTvf&~!6-F;VZJ~ml?`AXLo9ZV|GL(XRn?f{Rr ztkRk?^^F}~!}2A+@aOJlxYH_z$@*TY`;TtBvC4G4aJgfyJZTz+g^bj*Ib3(=>~5UI^qrp+;{$^XJ(K375*(u z>CVm~e&t1nS7zSU=qDC>ZK--qab1(y)E=GT7j8hjgAo6s8@i=9v||KoQ6nly=*&%v zR!a$7Ml+mDKn9{8B=&cRP`vq#v9)W99l_cqwV8!#0di2f__C_%HvQt}EOzR(9nKgN ze&d#e0*(Et=f;h<^UsY(Wp4ScZY}RA1Qu=c^`RZ)mU|af^C7*~EI(BR4pD8`!#$SD z4c@vi6!d!bPBKsl>pH``Se}hmD+o@In=`J4%p>z5q)C*QBgSQ`)D)Z_or<8=Db$1u zbk*`G`erc5xUsVDhWLb%n?LP&+Q9B~^d!savO_wI6_PnaJ@G=;OGBuS4A)A0#^ao1 z`e_wki1Apv_6VB3YwRg#0q}Y8TXcGL!N(Nr8`Q8E6muVzzGpf(xZD0M6_faA0wSsP zS2m8!3zd^w!mBFl{dVTP*mm2R`jZWcMVy7$sEwP;8f>Iwe(BK0XN!3s+Lwq{G+&DQ zPNc4f7;XwtkGN%SzJhH#v;IE2;YEOGlAO?_SiSCz=iKvgG)? z$M>!iQfnqP>%6;29k@|Q$fvycGA*-S+jCpn>4t0pqObkeor!)L|7f7x3kk0=d;n4X z>~2_#xy!+HVXAFe=Ny7L^z2NP3DdAM8qw%2JyqUpLxTA{nnYU#-d(v0RIuu zoBWFm?jw3+aKl~mO3$Zj>1gX|>1`cn;o#uxDk!fwjBq~Wgb?Ro(DtO?@7h1f#X~RdmJd(9uLv-<<>Ay18K}fklz4F; zSUpZxZa=k=c{tGhl0QRPGfjT z#vbMuHnBW{wbn&h_6*nW{vpPbVus80%E*Hg+zpz=LZWb*Nc!n5laD!Ou3t0I*FA)k zD^_^{pLG*Dzl;tGiC-F}LlrT8SicLrhw6SnT4xpwXYZ{AD={3sXYQIZU5%2G+;;AT z&}noW_{w@bgoLdxmuxuSr`fglSRI|-Ansk$b*Qnh{+bhXik7O(=7fizU*rK+E%A#GbZGK(6dS9BBABSO$0iFq| z?J0%&wCHYrIii!SA~3?y_HcdwW?rQVP2g8qJ4@$p#To3gE{c7@~ zHJ?aW?{to~Jj1w_9^!Xj-I?xzOz$X*?rP9Tyw|YIiW*t-!7FwwPNfo3 z5gt*O{CacB@-l~i*?5?Ai(!``r2+@@%Axzq05FJU+*C`w*3MBV@7|k(%dxFXq7Ozh z;`&X&qEbJA@2^~$xIPldN(msyInf9R1|*RH_=zjDiE+p_m&Biktw-6sB{IdE*Z@1& z>}ai_0F$t-qZ;0_iEniHJ9qTBO1&nI!5Q16o29Q5i*WY)HPi5@GMS0)<;}$%--pqs zIrWRP%Dy-k>`fSMEc0ziP5kP$w5ROE?;qL#EkfFxMP54B={sc#GEBjEv^OaH6>qXk zRxtRO>fS0<Q7ft#Y92(Y|K=W=Qt6vLN&2_0h>tpP>X9p8sJm6WKEnAXSc$*g-PvN7@Ba#+jJAs;XH4D% z9YAo~7~Xey-RMs<-@_w`DSp^{DzVi6k#yh0kJ;~n|2!g!G@NMj37)&eNrQl&-<^fb z)6h#mNcaPPoV`~06s5=OhjSmpy?zXIgas1~Q@tZv^MaDrzc4FhW;}6u*fVV{DV*_+ zL5lE)CBC5m4UtxpRm+H7^wpE-figsG=Ico}Wm`{uV*Dy@FKRAhwa3VdE^etluP8KF zR2{_iBBQuK7Y?a)1Y$fZZvIV%18@b_PvA0V8@@zj4Wx)fQfZGrpgGee57%gah@%hq z<#P@H@{RA8yOJQbVpDM=65rs8*-N)ik)O-e^T%X(8iITAN!r{yiD#`ouO{BS(AS@_6BlS+wX9pxF@EEG3WQHwDp2w?W$@0otycC; z@;Sd}+Yn?d|7tOaRp5CSaowJD+maq~esDmMS}SejSC3IuLx@`4KRsKNaslT>7MNW$ z_iG{L4EE6V|Pqku(+owy92rL}%rZb1cr#)#C*pqe!n!Lpa{Z%oTxU{sk z{c2wa2O$>~X1-DicfI5BtE(yO6{hBtBj?q|qBn@%bX?KRXK+^9gp=fMhD`l{{@@Q9 zlj85(`I57$oUu|~FHNww(8`YfZbh}Uw~)KfmC=wM#YY>_+)b$3);w|+@kFzKR^hG~ z@^hqhr1drp8yjD0Sjgh2XIeRhyrpQnLG73MZACRrx``?otJ6?7WN)nTz`B1<3JC=+ zF^0G1(R4*{SlOLkRikXb`a7xX#e+>O#&4&F-CD!rNP8N?DG~FhHBdMp;=SvKq1y-z zdF3J|NK@)e%<_OiMc@BM*!_dbgl;q@a5kcDx!K@#t(@?0XZcFb{THwOE8Y)wik)XdV{iE8$a0$ah;}%kQ7Wf;)y!t5ubH9N}xhht?X% z!q>{S zFPy1qDac_e3!@5;R(%7U35^fUiKn=r8Cm;I=+~**9F+%LPCcGMtYQUd0~^my`fxaH zC)hlGUT01SW;AYLKI5sgJ`kp9h{_$zO!d=7GAlQw$ou?0Z~+hY^zoMqYfdWDM`;lU zn5rtkdBFuBl>>o`s{wdlrS8CZhtsYFnRo<|gUzIe=j~1YsFE)@8-k`!loN;qh6p3) zhaDf6Da&xa{5kW9x&1AsnBGyuIfs!Z@>r1PS2ukO|LL&1(Tt1e?9VO1nU{f)oDEJ( zil;P-KP(@_@&s|wp3;oOYL!o@b{-&>j^cipc16^4+Y6z%Zmn~C8PMiYtAmZWhu+$% zTGTw(Aa-nO-6H;}IClM0lAb>r`O*_2l>-NGO@}`2fqN|VnJcO@;EufIMT2qtV!+Q5 zhkjJL9Yd9Xp*xs|8MI2efIbuPPvU}mL6YM7ryB_LwkL@uOy~5R`jZ^fT%@&3G?V@F z!p_H?R)a4OY0PoZ>;{Ov%Y1$+{rux=F8GVfjAz#KY9N%#UD*5aVYc(1sXCeCPV0JI zZS64bQmt|74@TkR8e#@y$mUUkwFP;hem1no_3CG)nh$PM(1%9zl&-o3Y$4W2D0^-U z2tZ2KQ+vdJorY$v;{ErvZh}}!AamB~^@5g(h7hWh(RW;8UjpCqrnaZyZ+JF@euHNd z_OW_jS_`*n?&gL+-hEqcFg)w{r2av7y+=G*b)ErJZa2jrmspRdPJrq;B?-N!KZh8< z%#@my1f5?}j&HG2^-J@&s$rEPfH%z^XI6PnQqFF z(v__te+d_uGCysx%`ax-$$iNhNtsiHTwqpl{SvQK7Cn6Sm)5&$Iyb>*mGbB>0Bvsw z(F_qv!0aGY`zs#mYgSI4t}^iyi?x9Bh=#m4!>^hm#Kdjg!Kuukw{z5Q6IK=W(MB{- zoTsOf;bkX^$CKBCZeE$qz4lb6GlR`Sxt{O!+{fZOK2NvV*142be)fnBAqrPOR4A%= z`Sn^A$zZIBE#i9D7Hqh<&ldt*SH_i(vW{ui$=TcYic~D%-8Wa3NC_4T$GBBGr$zE9 z3S%+X=ybo{k&sBVg%Z6(NCoNG?J_>*j<*xP)RsNsIa=$0D*<01gD+ymZwy3|S>O;% z@7c1DNjA6yV)nt?UA;ZA6!Ga;%1l0+Ow*7q9tFNa3~Px^2>h~|KWopfwNO#jPhn^9 zHq1ltVM>rOGO_yd=$~PIeorJM zNVc6%(YJ^ggId(wN7mVpI@(xAi?qeiI!U#M=|qF<0M&4DdF$=>85F7PVvDOb29kFZtprH8MOqi z!e$kAtLdb$@}DzVN`OjL-HbMH`Xd2=kzMSa#WVkrj(k6da?K^atWABPu={S~k{wm0 z!AdUV#<~OpU{w90u~}EiI0AvdAKWFniOG_GqYe(O|8^JqTpW@;qiwi=slZacF5ypM zh7Um1zu1~cvN>=7X4yiqP?OWwv|U8Ufl+UHwBr3bi%T|tXh-*4BuyQoC0*y)iJ$?E z!iCU$%5PGBrkQAtek(VDUm_NFPw;8EI+Cge2Y$|Uqj5Y+$x;Lm7Nx(ZNG_DFg*0tl zXm^^9ABL~q`Ryero;nT8eyKTS;&T>L-=iYaYC7G29SGGurCJ-CCv92nFSPL}dy$hzg@>R(kBo5@0BTChHnX>Bk^hKsT}^|azY4%Q`eXzNbo884 z=BRo$-5WKCfQxPjFZ+o#uy_w4qj^Xp$LEc-pblL@(v^HrGDklgb>-pd&^WC*o*#sl zE$q%IL4ce5BQ~dRkZel(6j#L*>X9}i8XzDt^JWa|IJDJ7>BWpr?U{-lp3j43(s~FA zDzZ`tCNeiU8V-1^3``@HyKGV|Yrv5;FhkV(xKE{9#Tq`)b74|p(*LK|(vF>?sNBfI z%1VCTX;heTxj^R5CIQke@m(DiPcVubK%_WQrBkZm0$GyEZquf{5qBvqRThBpE3Vtm z$z=AL-=CW2m}9(r{VMyk85Q;ed+OPqp}E+M zK&9WIb>*ZNN54Feh6gdnZ7(g-gPyI!;%Dn)c?BRR@)l`e>=I5Q!M) ztZHfp{$BZt%Nza_0*Q6)sV~eA(dPpTlZQ#<f2-WD!1b9*-$ zCa!>xX0LfLC5dIDU99J@h+TY(gaA`;f~9 zt0xwE<2o~$eps>W-3c?-HNQ7*C4X9n&Cm~BAv_;m9}0Qvj!cHw`Fji1q>Q;uOH*|- zhMb%cmtEJjzjMPM?A95{&Gk4G9)0i#rFcvyvlf$>Jp8(;JJS^4&JgE!4V(t(4%Kjw zOpyU1H57p66A7W{MHIUp$FQtjq-JDIlbD3$IJVukA*QRB6cCnS(TUB$LpK$o zm%j)3xdn7tM)}zY?DM^?8s7%l7VP?-7xXMdwhiMG_CTF`<~2r`(gzPimKr#d-LX}4 zcI;T_*5YHln|%UlXCk z{gO-fCbvu>^9Q*QjKRf)3JjdD1Yo^s{6noC}@UDu?Q-YopEA3PuUD8N?;WiIai zn7_aB^PQ+&=ZvP2O6O9>7v3f4))}LtA;!x$82gNlXjTOkssbSoWasJ)ymBHl6;JJA zf?Z}@(st3Tp@~Yh^t>J6%cyTq{zi7C4gOr)kgV&gTrGnRCPtaL43(4NF z@I9y0P9vwy^HV~MUq7>}*b9@T+C{4aMCiJBcsbL0-t{kssgapFBd5F)_cRjv)GjcP zb}UnwCq}$JF$&j_0(@amAOKTG!brrQsJTg&IQMN*;xU578Oi*ixH+UVn~1|Ux+hpl z5s-@8RALvTt-6u)b1>W_WpcGxJsiHg)3Q;0(jL8T@%!@AB6;4ZT~bi<%gu^tS~ADas22}~TsyF3Uwm10J5X*}pR_FTW!_Lrr0ZV~bv+x!YE7K7D=XU=c-M3#zojq)`07qD0R5;C50(c3k7x;--4xRX$Xcmhyr zM}+Nl%hn||RSZS%s4OCR2!$O-)cN^yjeYA_2@QpL+z??q^MeN7ph6SFhMX(FkT}uV z5^HF1IPMrtewy6tM4;h^1a+I6rDFWu z94-YKFhcO%n!;Lz_b#LQpWPUY!agwP=01;j{ON+SbQBdy#&XwZh?R9xiTdE3;=2N2 z(b-NZUHSb8nVh&=_&AHSa*!Rz-9Fr~|M>Zm$MPQM#}>CvOJ?5SkU#0MC@ZNGOw+KB z@%2s)*0k`Pk7%0H6@!ANV_&I@G$RH?^ddW(F?eU*q~kF|0OPAk*EvJxUUe*5%cB)z z1o{@c8Ke{ZBD!J0aetK$Sh*9{;F2r&xDY|Z3}aR@u{Y5v`j86QHG&QwUJS^)MaFv4 z5kGLr!9Am2R@fxvwm>j(cvvaz7>4LlYz{3DA!DE7(E!f5ITPI|P9^A^mcAsi6 zcp}cDR!nNXUwFkAMhV8r`6S;gG^m-0$!mp*B7XbyK9%_R*@B4(S!g5=6{9tdiJ4#P zh46|RM|#i$s#u=j{pC~klbNc)T_2lzJQB39U)ZWS-l)wmPG zu-GpDXoU=eu86Tdsq3dZzQLbFMJnM|BzTQ#U-2M3CKtnj}&ZQqaN- zi0ohmPysI>=ZebFzh^@jF+2hMPFRkDEy*C_5tZNr<8=Hg3?QZahwltwrY~|4Bj{~g zj}~5qXQJ=te4m2QEa06%Opvne91~Vgf&ZWf6X~@=wgs}(TL3pqp~rk!Xvp3IsgSz^ zVBX0T9Dz`m7Cak?o^*hE^wbN)&JMC5#-6APBs|aIJl&;mQ>$Z_Lj#I_N#I zavT>Pvy2i;OQOFDyE=&!!7tsrYM*#g+xV>?j`^!(!<1m3=!CDzSe*pGYkk3cr)Peu z2XRFR=B^fY(o_EZ#H2w}c^eW+`kB-!`!mp~mGayP7Br(qrLOPQRf^;8DEwITmATQT zU&|+9{RO|58v&~iJSnXb^|KEL$e-Z)9z3SwnjEUb3xn$i?FW2I+W95L7p1nJcq|WK zJsl<%@WtuPRjPT%nEkxH+v`Tg+>Zg-hFBCLws_ZN{bx-t8pl*l25IE#mUsKEN%Kz+ z`!wc_>p{VSiM?C?R#m*24I*M6!Z`cET{H39%eANloiyhexik2uS~%Slatt1bUqyC4CZq(JuJ61h0F-fs zO&U0$Apm6W*PN_VK8@OG&|PybJD-<1AP&^MVyvP{2M9h2MpHKsgQ0s%Y>bCQKT4+z zfNO^CQGm`fDi?#EX+06Ur8GeiFiSwEwS$KR{27Ts8n64-{fJHqnI+>poO)O^t;_yth>^ZSH3@&6x|$tdN(iQJbiCr zFJ)mpbmaqd*3wO$5C{I`7mUCOx{X?P@!z;w{pm^78XJ3d1U1>%`{I^qcq-OYv!(w~ zc=+_s{XFU*J&o4dAP7Ut^_jk!1`Mu`FCMv+m8iCK98w(w`>X z249!x0HF_}3Lfh|rGhxpBw>Ksvz3_hZr>&?Tnqpe*i=Xr>sBV$HXLGVIh9^NQ^cN{3o`IFN*Nu$3u zGrm@%ZRuT2D1396fdg3xdvf$kdxpbNx0&ou0oKY|LA);ncK554> z{xD3GO15zrZ&vp1~ z%@2Z}-!z)VKUx}vWaFwxV;43PDB@#4M%F)WiZRg+R@V-lU-f@DCT0w!`k=H;b%z8a zigB+1Z=Ia$b;@S!*B=>QL8rT-pG`VG1QM((J{M9gt5Aq*`n!wE(bv+xoM)S5#Z(p; zh0=B4GfA-`#OJ*W(wR-0lE^%s5^p>*oZ6#!wG5ucMt+e4xKja-5*q`-Nl|MFc9G?_ zz20ttC!HcL4u)?yEZ`tf8}DT4_)nJQ&+EbPTO6B$iu3j?%&Abp--}7Yx@1{u;nvZ= zv|QR!e~S->?f&6LG_ZW8)&J$!GjKIO^*xf+MDU9T7Gy(bDVaU)tb6ET44Yig#BVdM zgRQ;KajvOR>{9%J<)XE@7w_2M<)# zecAW?9h3fMyHM3c#%gnF=uJsg>YU?L$%k~M^U;Qj+l#(#O0?yn*pDgZlbjl4R^Mzh zL~0Sy0*GBT+@lXlN>>%7E9l zS@3%>ZVg5*fgzaof(yCsQW5Hk^4IsZGPntYFOoFqSnH{pyK!%mJ$=!|hPj$Q4E~&y+Z+9{-w)6+!lDDs^0*OXR!ZL_m7x?#ghdrs(e z1J$xc&mV?W0`g(JBI+XNq=4i7`WFHd9zXO-OiQAda8}pO$yM;`&0wjf;?BEU5^u+4^yT(NNl*^#-LGtH8j$pEhyV0^E4 zTYUvyk?@ir+q!N)`)$Ft5fP!4cT8t*%9swve0=mKm=vR>6b}dm<=5;VS$oI<);Kdzcp?8|>W{Jz}`Dk|tvoYt&fw0v~nFa&*b3 zKnW0GbFC_FqAV)?y2jPVu#q^fr-*)LASB5&50 zjbicj?&_CvRc>vHZjGmg+_qBpWiUJ<=AV&ts0x2cP<}6f^x;88!Kb|56&|#JNBJB* zJayIYI;5VgDQNyW;6CnAYhIzzOYuBHEHoz|V&7sw;b}-PvY_5og$lB%TF^GpJIxAU)S?ZV~Dc>MdyZEC~&S}r|X1gQ-ZJ_VCfCt%_!wFw#Qv_+F?hn9LT(pgz6PM%HgG1HcLK-scXqxicY{>CS46e#v#dPzysgyi&=KrASE5oAf zzOV0@p}VC)P#UB=rKCX`X%rAi32BA~>F$zlknT?DmK;J#x|?_WJ^%N7nJ;r)bMAeg zGiUF$*IH+BW&a9UST&!O6l1tK#wJfBT83t3#yUEj3SNA*4vmYw8x~4iN?2ZtfAK4Q z@x%3A;WuliZ*7YxgytK1xkhrL7cM?ZR<_(1zp0p{&8sM${dMP&+BK~z|Dbn>FYfZD z-Vd*d-n$nahkHK@F0;nmXhuTD8G;{fO!f(6c^?{2aKR>V*=!^4h}W93_5F&8zbio;H9YB}JK>)?t^@KttPcifnh|DZ{mhPj3w)nGipd;f7bTXT zAe4*>3w*o1E4~}bkX0`#mV?h~NNY;@lU-nS+caSO*|emz?2P6{cXFbdbHL>F1icvb z3I9kVkvj%$kWJPk``&!Iy|efL`!8_qLa=I44*%U8uqzHv{341o{IE6BK#U8GAg6j9 zB&A+ed(ielJhIeCnwdXWx&iSR8fEDn~`je zyQLPA$_01hU*qH?&u7_su!EA)fIdTkoNYDjlHavqA346Zw&M=}SRK;x>)#BK%!>M# zVIEep{NKtuldDO}$1$$kMeyQ?&exlU*}V@B74bvwwT8J8Oc!_1K#=kU+^v>|&73Zr z(#T>uhQz9<{V_ouBf;h(zdt{G|?q(I#b za%_O$>hsHn&FqBRnkQHFuXo#DG&k0pw90RH`uI~LU3K;?lov7=iH}0F0{1K)OkTfr z`bxXc7-P}j^Y*uOYnuUj!KC$bv_I;@$~%_({W7iLUyh^g1f2zn30XC%BF23M#OiHp zt7z#QR_FZq_k#}@qNxni{YDICa~`CaVEd26X-GLDjmhtZQz$<2L^GT$lL*C|$)9^w|i=#xTqUv=T>EA`fCEy61?`(+e*mVc}fuYS~;@mhsjF zw4^45V-wz9sEB`Uel=Xz7<0;ZET+d~$GS(3cvT=aO?KR3@oRMMw&L(lRHZ}IxueBl z@O@BzXpd-MpUn+tl1*^3wnW6Mzv+AzKx1kg>I3Isxr<@_K2P3U^62Rcv)N?xg@Lhy zIU2g(e-AU4IxLha3|7}6bY8lqvugcLkNv4C!xLnHO}asMa!vP0M@Oq|hde?-7lUL? z_|u4=OZxc9h|=D0&}67N5%p*r!PqTwiP+pS;=4i=OBExnYokj+qeZi>qx;Vwp{j{c zg}=sNjF+KE(OP2VI`UY)x}`r^UlU}{tCyMX^DZ-&GgfxyQRYEDxI^1OBa7qF+|8I9xtjunZ>RTu^SEd#O6t@&+9uslR86V z-@GS3db`i^?i*hgg0q=Y8KUALo|n3O;aks~vN>{a8`43b*DIyly!__z)l_x23X6Lg ztohd<6tYh`w(=svacT=(x}JGw;w_SD3sG6&0@}nFgMXk}6epILwl4v*W=?+A`wTKe z#Xwe7UogWE7buot%8-p6&dDv8j>_S!#BXfs9D`U~H_F7xunjUxM98Q!T%=^dN#KKM zQAoMRCrekPP3y#tGq)5yR^!F$ZgbrJIX6$WKB#N~XWnu@ie9@IjUH>Wsk0moTkYT_ z&1l91pQo-3|G{!R{8rBK*Zpvd_C+e+O5L%Nqx zH=KJ27o!;1S0c)T-wCQl!ht!DANijI-=Wr4OCUIgpE|%xi{&Mzqv`bHtbq&Spf_Th zZnXqV1sI$de=VXu^t?YaeZS8Z&W{mOd{!ruF&tMjuli{YEBF~_GF#C#JuLk-kzhn- ztu|{;270KS?ZW)tS8Y%MhZDC~xPL6N!?WK{+0HKNzQ=jbC<;Y&`y`m~;Ib#!$6=vU z&dozLC116cGZihoe=z-Xc&W4)pd`J6KXHz%evQ)gurFI2@Du0n zr_>dtBgM1t=#pN7$<6e1Hhkdow{$2goVt`4u&bNNqtHDRNOfy%H)<}-JtG$pZP0OJ zNIzQX-qIK@Z*ycc;1rG%)Bf5NC!)jjQrD*cM~8`$C~_3VtDE(YA3aZM&V~&a-d176 zVoa9q0hCFdtXIGaDMruHnJWX-; zrjhNZ8Wc$`3N?#+eMayFyb%OEERgA*dFrVl;Q<)&Z=ZYhgi=ofyAM?TvTOAJ5O?dk zP%k034o)z2tvK^078@c12=FAZIxE+m6-ezm0;7w+9`eEQ51>hX88m0oBGNg~xJva! zAxkTaUt^Y|q(}@)4+3CJL&Yvnw&G?1YUor}4|~L;IgaySb%}5uA6wq@*n;Ld7PUAKxBf1~4CWC3CA$0d9y zfc8|13oL%!GqU+znbYH!yx3k#%Rg!wI2R%HS(>j`4cmTa6$fw^%+&R=BA2jw-{_DK zZ{rbi^AK9se`&=OC+Veo*nj*qD@lOPE z=D{Dn^ZBOK`;9ZifmSR8-9;R<5?M+1Z5_~(&}9*r1s0Zp znfJmQRaGqbvy(`U8JHR-X-nE;41_8vV#l|36&t@rhU3>RPihJ|qE0u@g2$Y%{HEMt zlkVPt7ow9E1gH8!!uKT-6zgAk2y6JJe~wnMDbHZ{2#%&gr?Xk^*zBO2yDUG}>OV)v z>z%2;5o$LhHE?r%xY;XOqRlyvjQPb5vms<_KMw`a0KtJ^pYOe+I(OHZDJlGbr>IZj zxeu%zFGO$7fIs2ma*2U+>qu=;BI$$!Mdg z$>9xYct66b+(DW!?}0pf-36jL{yN>}YpZ_!uTKf2u}iWaKCax^dw$gq!$OP68Y~Kh zbV*~|=r@*ll@O)ecROl3L6M=G08?Jmx#`+7o4dsn)>ok}dDVpsqwh<3rVL$LFwtjj z{Dnmt7rj4&Y-0A7#I|M#iB`z}9}=*E{ENu{%omX0pBdoZbfV}q7ypRpgo>W-xRB)N z=#rfNy0(tar{)Ui?BrabtihIaxt8PM=X`C#OQ2ALTB# znb~_+UlxHa08eEve~RskoufvZk=PO2L z&z|=VJ!|Rx2hTr6sy;#6P}zw(L-YdJP-NhF0etL-{P+zN@oIoPJgH#F`^h6fp}d(q{|e3qtcJOu51T$3B4)DtQ3J&&j|8E@HnW?2NO=C=%1<3$gYM8zRPkPZn7W&qH?SprpNt*1yQsddd-u=I50Km*5R#m&YzxO#usMkY%B6qdX zbxaun(SAmfR*-)G9|zvecY-eZv3$byme7`;sBAv-r?W3}?Aqeybpe+JR1$c zCID11I#^1?X>P?E&oH8*oTtr5>?3&pjWK9SCE2tfW7zAL^U1a}D&I*Rv|J8}1CJI3 zZF#*({oOv4fYdQy& z)psxITHnc>sw%vp6wC{gQ0h-hx3iYSd*Y0&_fYi~5)wn_AonOj& z6cams6+mgl3u8X^8ZB$#j~Bggt@1%L#J>Y`0ZQucC6V$<{tF1oHu4D?|1sLz@=6t` z$=NB4avXo)++m4C*?qz@N!rWZdXh-LO+uM%%dBk7h~Gq;DWl#uEc9^rFPZYMH$D_- z0E(FTP~l3F&O*J!?Y*h!vjM*i7+MZiYT(G|GRrNO@k2G9Ty_CuK;Ee`yOZM!SVq|q}0Rl>q*}^h(oF2)hGJi-NizlbuV-{i$`PdsJkEP8>IPS?$?Umrp18e_My4; zFhw1lO6u}PjAk@q;AB5yMfF8m{e7Mpz%A=Kn$mDQP_&}e1kj0-@$`prUdC<-Q&0u= zLND-(GBd01rYIzH307RL#pF6ksNR@O0-fAPLZbLk`G8HdrvPktcOl!q93YK`6Q~hg zDkidQl^FGaS2i9v5)(Cnx)7k>6vqmUmE;)?tc^b}rqW?ASju86zY!Zwn)c^=kwo0) zBEAtdmiap7e&p3HdDsH+^4Q*2b{?Tq;CWo$z}f_6*zzSE`~!qO)ch~ zBL&%@>yv2^mzU)paZLBQo2EFGZV~YDPr*DvsEa zI;F=$(E^7TH`lY$lmX3(8)XqgM^csb#nb3%)?X2>Rac}cymeweC)Rr%q+fXVF|Fob z7H`V1CfiOoUJo!3qUF#-(`6*J-<7fj_-fK<(|;ymk74!VwclP^D?IEH7B7b6=s`%K zb08Q&=GsT6aOCe`{PqIKawkRmBHfhahYqXMjqnazp{uZ8u2q`IQJ~6kV_!>BQH*@* z=-&VK7I`(qmQLJ~w(~ty{=*P1nMPxuM0jQ|GLk@OkX+FK0-_O-g?hL^=(MK(J12vD z=9Im1F!eF9sch)DtwC?{5{FAyR72nQN6`fdQsC~hVswYepMde*HK$cO`^9Ml*Zn!7 z0KIa}9v-ma-=GoAd+%B&Mlq+GO0s)I*NFykWG4e)!s)vy_$~aX{Xesk<70pciaiCS zf;Bji%n7`cebMxYA(b&dOXZ+Tx4)bbdBjwxJ8|<~fnPG}mCz}cG}-`9Rytf1R`)Hr z>7vIIu41Cm0PLLr*A|&$uthK<4zR3-<-%uYDsvnF0PTxNXScTxtUtXwBZaonr9@ms z{1A=c_PK9Pl*BC&-a^9v7a8b{4D~X|RZ0CMp74Y&+(z_efyKtK5o^Sr%l_%S2bqD0 zckw4m5qvt>O1Ew1H<~5=aOqFhCXrOjgJx1P#ua~LZ=GbKSmY7Ju`-CY+U+;U_4Tt% zt{%m~Q1rnJZ*LLDUaUTQh0e2)P3nr_kC1;v+Npxkw8Gy@ZwT>9-bIPV;|UAz`*4NtHP-@eKQe~-BemYc2bVlH%X zh?B1wiJq|&A<(`ztM7_f&^y7CXqej#HR5IGpa)TU%SJyF>qd;YK%N9K8Hj#l!h z4Di*(P{`MGlelZ@T$vT%ew1OZMRrT`4( z65H-?gr}uq{%rM2wOxv1qBLsLy@Ccs6{vQ-XNOM*9vs(pndLTAmbM=uML>e_gYtw_ zPITN*GYcbW`U-5hx8Z71rs0ZI0 z1KZcqJG!Jt6x;?{rFyy=kQz6ZRVih%rfhiy7WnVY!+C||#_tgb;vr+a8`c)Fd!D$f z<2jDV*%q?ifut-?3w`|sv%&P3S?mQO6khK?W6xX%zho7}2f`=q35c1|PYHZoDjgvwtAloH4|r?umci8l~kbW;->(op`8 zM20Odb5`sH#;*gYs=(ONhoDZSfRV3*lZ+hw%)l<3`wHxt0 z63PhL?L38dR*k_Fui(OQ%?Hlwfv&`o=v4FEvS64yywU&bRw!X<^5oeiIK4Rc~f-=7&JqU9O50`kfb0 zldyAWWV!E>8)cNWtv)9#?B;=fW}7td>8?fs=N) zGYxvHt?X#bz4ckjE9w|0vw(dibp;fw6RC7?_laUf_GQ?4H8^d>glo&1Pn2fK( zQzA}%(X5L4LZmrr8vWSjsovEp&;3C#-NSXNYm3Ab#eRX&gQa%t%6qa3nE`X8G1F&| zHf&~D@OG3H+AsQ>-PZuKbNa7@_{QWWc)IdG*C=G0e9LRPK zc&om32LA(up=@59#}&_-tn!NwLb4Zob`!bRJO#O)FVo}dw?#4$e?+^j8qt?Zj)6ov zdec!J82O9wEA2w+t&Pj{+3Z_kh z=6VF1>T5d^7_JYM{N9k~_q?B)8vAXI^U=QdL$YF$yO4PCCaJMqy!3_|5YyKYXkqDx zzN{X}zhrU&hif8EZw4wa>v)vqX63v5TN|LpiU2o6lbeUNn~Lin0SQk#PiDI2uZh9nM^MRi{Xg!qE?5b%K^iKeuLd_Q&+K zl;31dgiVt5o9p#}JbjE%wv4|sv(5E9FozF)jFZNzY3>cZn&LiwfA-Q}V3mNai=$w` zk+9;fb$qTZk6jnbqBvW;_OpX*WtY18;j%w;>wvl<4RPp|0DAHwf+ZX_rWiJv8Hdu4 z0KAmx2RapbRO(fjIB3$AxFiE`piI16*hNUMWouSIO27;|YnbVc+-ZA&7pP&xC`Ki@ z*t;;Dk5c#2{mP%b2p3J#an0&S)ZV2|WNeGEf>YABFL@Z%HEPS z*vq{M&c-j9PE@GB{fvx~I{SOi=tEeLjScw!l>7e~{Qa*SM21IPyFXE!sP9*I=fG6w z@JNiy_lUgg(3ptG^r^kf1)I~GzG-nLg2B!)|Hy>}#LD**fQ)5M2t!vB+zt*Pw6=Gq zJs7cBPcv#ctp$_Db)8~Te2i>r_H-_v^1JWg7-jmM(sQ_aFn>yUSiM$^iIGxw+S`4e zNBzNL=%izxE1##zru5-502y`m&D)xK^i{&%rZIWj)o+8o?e_P9zk{ot=N)kL> zpwp@W?F$)aXF-(Ew~(sSZ0Y8sC1w>W@uE_}y8jf7^nja=teVozu&CEp+O z`HGbYpw9ZMzy12#D=G6i@P1pWzz*|MxGZ% zUgfxL7|*{t2x=V}de*nEBp#Z5$=WB%7E6J=L0RQg4jWTqUVp+o%kVU1rp+&K%i{kR`Qwz!y&soVk#(bb*8da05%W6Ka(D z5!Kar{ZWB|@U1Vt6-kv9`q!E#itJP5Q1MyXkKp3B>r_Q?d%@qjG}xocT;yyBzNQsZ zW(lbmMIPwb=^GO7VIv{W$t{!_ zHWRo>BUzdjH?%}4SdO6^UTcQ}WG<}SUm&pq?7*j$Y+2hH1N?p@FY9O$GhG_EuCsD2 z@@|RpR_nRoqQ0I=`&4hY;m@Y+_yrd((TV|CMDL!6Jo(2W;|Sp|pC#9tCKs_2*zY82 zyp?GPh2)p!c5+eBR#j->>{@X6<%mcCcrvZgGN; zlM@HT^jdONSlaI3oud_XvAzs|pI!;aBksTiwEevJz23}ziYk%-hQSae9 zW>k6VFMfI|bXgh555(r6`aQMzhJ&luP(UU&xSC2oB#V~(VZq5s55w>9=$5FiAaHNq z{VmDQqms85OB!~jqqxBs^c|Cec2pPc@x$+M1eio=xKyk|#249hy=DSqq>pON?F0u3 znlh>DwMIW4qiQnqD`s)wDCCfjfq&#`Kdl7MZcQKiVx{Ffazbdfm^79giZwAhn^p6g zR~cTfd$V{+(bA${P=lV}mI^K4|5++5SBY4B?6~v{tR|l3j7<8swC1l{Z<+5s*#`27 zrw7ij>7&LRJ~TRowwF}|qBh*%WjU`q3@v}0`X>20O8e}L}-5daS6E?wXREYVS|(@9@R?KVc_B33v5&95l0W#n3Ue(a`WuXBy1G?F%A( zraH?pd^&&&W#cY~U+WcE1WZh(HbF4rN0J492%YLXZ_DS><5M}&I|cqlvN#Rj!oJUq zor8JnsCDlYnN>uh1kZk3ce|DwX#-#DQt9(!)vU= z=&HWe(NEZ_3?)9^#hozS^W>XYvq9>+`O#3O-cR6qRokT4|W)@b}>2G;6HLb55t>9}*q`_ollAWZA zUr%+;zwPWL8_L2;6_iAe-jC6b3tsz*$6lLFWFNNc+PYc}D254J$x3C6__80Hn3--6 z;VY9Hv3x2bvPBlv$421e_EOd(DW=eURNwnR%BRH_5Mw22LZY^@;^O00)7G~%j;Y#L z+Q_N1d~f=BXM0kA(dl*%ZI;<<7Cx}keTkg(iF7LwZ z^G8d=kt;bJd_l&Q0W?K^##f>LLIZYwYIJq%heW^s8 ztLA);wc&1`56_;WBf(xB(ZI)WIk(wAC#c3jeLFTY!e=EtYyeh3Wx?(JbI0l$4?qfo zxIz&S*nPdm+o;rxjGzdvC%`)*fao2tDkrKrK2)B+Jyx-C)%YM- zJ@E^e*gEg+H5*Yz?4$XqzY)w&nC9DC056YoFcf|GdU&W?FTU) z8-qSb&Lz&3BXjU%2}yog1BKwPVmzI5x#5D6aeUZJ&z#-iqwVI0UyALn0~9=fwXwj< zfkw|QVP|ir_n=)s^n3jim4O{kgm?v}0ketgiJOTb3~sY#Y877aQttxt-!x#4n!c6R z6A3+k-`jW+T1r&Jo$#;5bJaPKQj`$MF_N^aq;=f{?*rkYkM%UaTT%5vJ`6P@2g_f6 zc_YZzv|M@H@G66#5Ir*G&l`d_PoR*V&W`bLfaB>o;dH=58=&?Dk8t3@EAE2!9rrc1 zkFPHeiOoI?x=v_zW9_=*0E@h;`4Zum>%f2HMezt+CKtp-S$rxU@Fh0JC)@O|JMTI; z%<4E464GUlPK8Gb>Bba>CP6k@CvubmUs1f2L-2Nb-cQ<6{n^|i?^BxnF%8%^F5Vrw%A1s^j&dRhb?cHnI5^pp8k6kA0W#G8_fCOHlt!c+Q%y%hZIn_WVX~q0 z-7nl8RG;UFXEdCjYSStg7cCcV@2fb$m< zi;S$r?dj@Ozi~Lis$Ap~6_1nev&UGPO1I_8cjV(LLVM$12-!Afi?wKb{}&f=1LI;4 zRv45FrU+)8vpQ2`w+JMZp39@$45G+QY1=r+o(9)(UGpo|t<5`oEkHE2Hz73^*_(r8 zKhPblPfJUFH^w`6SHQbwrQtT8{_uW8yK<`IIAVZb5k!breZA(P5{v&D5OqIFh|(7RvDz0faKEv`03+aG`tq&EOAhX9gIxwasnwMAvz{AnkWvwawj>aK&B4p+i1@ z;mu6jiZ7b01{l3BQ;Rp~zH7j^o;95xrET-c<$0Jp(x-e}@8NoX7>C)@HQ%ZG;@%Au zUzVBBQ7j%JJ@!mxjrbx^(0jy|e8;G7<|nkQgzHSD=;&w>DRdKzOz^z#U%1XIX^D46 z(5CQ>fWHD@TK38Y=Yay{myH$yq)zH=g-%F&v1YVWTiNS(s$|^q*j%_f6TfW=l&grX zWeSI(1%XivU0##K`X7bxFr|)vAH1m{RnVp`TRs%volL{N-tdgPD7tz{ z|7G9ijV?;j$w1`EQ|pewb>IG_d(B7?!Q=j`zcas6*oqqDPLwi*JSs^wFT!p-Rq3@q zjSw1DYW{Q*8l++{#<9m~>z2$Z#X+4QjFecheX}vkLLb?r? z;Y9VA6nOrg&t)j7DSha$(49_Si;2i`pFVz4!mIm!fad29brdz@U8}F*MgC=Uy%*`V zQey7O+y{M__2TI=dMACT3F`zZ!Iw<^+_^vmxD!|P)z`ACyD!6{+&C*XYBTy@hZLPd zJNca7U0C@etQH|oq_2R@dAq`;cYLqYD3LCzf~-+l{DTS@Y0`Znfkyr{4}I*_zjgxc z3w#)&b@OuL)iD>8Qc1*|Ety(8$AT1v<0(c(B5ul9X3n;PTL74-=CsK% zgDU1*OLEBlJm!+R#NjHWO8S|@evgc{VgJ8{_lwKC33sEG&R^XCM-GCv2&4DQ#2OVW zq{d6q`5)g?yyb0w*J#p3{`!@UQ2b`jG4>Z8DRT$nF^9@l2ce?Z1RxR;JQnUvcJ&7FJ` z=U<9ea>)iFqxQ_z%BTiqflGR|v8~yq>3#%;;$}#XSO;kJ;E3nGtB zb^nXZwceR~(Tf8Wjd>!8SUO~|cOY^2&V{iTcn%?`0$^R(NNDgQrC@tu{62Js&p=~1 zpn>zfa8YoOhsZKWwcrjcNpQiB{%;ooS_oR-Vd>HyADJ70S31A?6JNw1lh#R%@n>Qq zh!#yo{fN*_4(2T}=g$ns68Tm+SedFjspD+*Xn_c8otaha8COk1Jz-T!q<7i(PoFX= zuP;bhjX6sHxjybCbXZ*gpCIa`s#Gm@Nk1Wc6P|rKxP5N7%N?~xff4<^! zi4c7*iobrZiC*HW+KqS(Z3Zl7-b%n&*h2n0_Dmt}w$M6)Nwgctg#S{xhk!fR(B4&S z9dBX6Rr#GcLhmM8>38WMT1#oo~;!sXKc2wvLGqm+g2EOF1ly$H`u_Ot zDqF3%BSf5YZU8-A17c9_0I4`}JaE6*n!^7kkNIkg;0xvRG|s@i(Rz>s8}h~L^jKs{ zLEZ^n|H?5bkA4lN#@6CsCF|@gx@nkL13sKrU_WuRaYTR#ns%xTJdP`fJCMblh zslVxo@gnW9{9}>*+4LayM@k0#SxQth;%OjQu5Qa_x5GD@rL=to%e0c4b*B^&j zn-%PZLVmFsoQ8msO$3onuHL|ngrER_>N<@W$DcVoor-;q+_Z4_T}HfhcN^R+*e)2J zZbUT%=*eUUd8!YRzK7}3#t`a0>(igC%C5+LOP5b#bbfQ0-y(Ik5WWk-M9E;iXlUs=CMr1Z z0M(wXr!{A=6Y$Nb#A#jt#2!Ji0X%;OPk=<-We!+9+s)rc7}-(Wm7QiYi}NIdC;%cZ zuPK~qj&3eE@2-pvjE!o^3u)D*?(f0+URgW8I&fW?vKlz2qaC?8z(`ii*JkwTvWlI4 zBEcDJS}GM*8ghfQ@kCsd7aO9&hw(huqX&WV;%<|XuaNM5!+#-40`k8JRo0kR4q6^}5%AOnaIVj~>>w^D&So6aR*HD8=q6llJ&G^JSQ zZ)VQ-#Bu9vGKGRejab7>l;3VRZND2ewhfQ=|I-q--U}DUpn03oNb4t$o#xgry&%j^ zZ*)brM|khJs*+EcLf?j@T2)9%rfB5zCUHl8XGKYl5%Z|;tY(E(pI=rvE*1U8`A03x z7Z9~dOi}l`yXX{?&)@Gj3P4tatbx76!Niv8+@ze{v9g3uwu#RaJb z40mIpgH3Ee;8(?{Y3FBK{6@j1lrZgh7ajoM(qgiG0{zzl7uO7M7w&$FO*laT>#BL$ z?Q_khBmJP5-k{j=X0!G)@GOwx>-eqZto1fvOjv8TrDy2qVgJ47XWU+#JOhx~D~rKx z4h$!t2Fc`>r`x{56M~4jV;A49rZJ#rXG|a(Sj&YslX(>*eMG~J1W^XIbLQ{nEAtAp?Cg|8B}!5r!{vjY#z~ef3324^C0bX z6LzsguC_E(A7w6b&7*E7b=+Vn>v>U-Y3Jaxfe>P@nAG6o)gvwYmM^nz(avJ>k2I$h zk@t#g86ki;z}$C72xLzT=3e4YpjO zuFYZ1uExY!*&Yx%c*Z-OJ(9;W4MZD}aWzv|)(Q|=!w2}0Ud{V#zIn2PFopUDfPC7gmLD7qiWdaoQMD4gIQYK(AljT8z)nt~ zJm0YLcd>lepw{%ZbmA8hxi|1?5)LmPdw0KnM?nqQZ3wD--z3(ZTfLHFW{y!at8td> zf4ce#1(_8D|6(^K$QU@32TuOpT)qt>K%5^-|ZZ-gxw{bO4x ze`O^nyhIP1Qx8teYJR3sxiavlR$vPLM(j;|d_uByp0ZYAxPU!+-|fHon`qJg$eE=- z^%i*mBZBJ|-guoz=0k|%Ax{u_Zh!TMF?E0DU_>G2K&^alXsL4O>})7j1bHVGTb3hC zvzjz5Nz;Kt9dQXiMZ3i92T$5&f%(|q{m0@DDg@s0ra_fKDgNmwL}~o_ECT4p#+8_= z1M>SjvVZZJHSbvPDl|Z_GP5tWS$p(K{pachq@X?~uZz^g%{z*I5_zNvS)JfHFR5LJ3 zQJCyz$IApn1L*cls-8gMKa$=@-FBbuM-wzo9#|KJA@Y@YH^^*K4M%*4|36g9UcJZT z1LQ_HfSr zOusQLriq>OS>1;iD-2@rN$e`DXrSG;9z`A+)W!ezN@)RLIY|@TVnu`^vJ`@S=q+%@ zmYQoonZ&$*4*z%;q+C^3zWu9k0>d0rn({C)!OZRhve3X(!-)U=x1KRMuS&R`zrR|Q zIICWh5_+PWH=@__=uQ6XEu~->U8S3(8?JkMzRq&}qBhBN9l}vnkdgSD+Ch||rP;Sm z6IofPK8wpk*!h?Yg}-`TUB63v;X@{4lb>c;SaeUx4vVY%eC>@0K)*nFX5xWOkiFd< z7eB$`YdD!OaZ+o}j=S`XhrVs#MX{^Bit9U900fRuDyIGD3;XYI@(h7`qOtLUMuBz~ zV$#oEfpJsFMghfFUhE_M3FL(pG^O59B~MjCEf3~!_6A@n$I*NO4dB09V(c7<^mW5K zQwscm;SRRPC`~EG?ZmcrZ=G=seIz4g7R3AR^6|5d857X%mbl>6+_CqgO?_`vm5K6I zI9>%<9E@0A*<%{bPY$O3SE0H`hFs5_xEmGwB*fT9sl+!wYF{PIj&%y?4KCQpD(@Q6 z6~1Ei=wBPJQ1xKMb${*Agz#B1JpO8eW#g*8cdUBC*Sl8G>^42xLUgn<{s~F!DQ42F zGmqGdE4qg-q1bH3&Tj78k3b0dPXu86u)YI@u0$2G3oy_t(j(md9G~A?H-Vx;u_zb& z_6NVDf`3pZoiX)V31K7hk~#|Rqyun@Zg`(DjQ`syeS-g^hl8dU$dl{ybs4==Y1l(h<4b@Z=~=^6>23ZoRo9P9lASZ(}y zRbQj8W_rC01_#G2@(xrwy()O+-#e#4Dma%Dab>lR?h&a;fcZPwg9BxO!G|&!6*7b| zuv(O2y}K!qIHU#W^mPS3>jd%AVQZ8ud>^VdW6G&h@lvGd2O*=}qGX>?Kk%=>dx`(M z;T-DyPdxn}2mrq+5*Sr_KTA}VQ(P7wZ01`(+MAzTQQO&A*ICyKdm>4ksCjHnyJ z4w?auI#mI93*joeBWTA2KSE!jZeQ-ySn+}xhGvOlNuX|)YN|&CK>v|d#Q~Z)`4%{EsT>E+x9WvYWNoglmkL@{`Du4JZE!?lshi838z43y+eIS( zQuB%A*ydq6Fi5^xpJlb=aYV5J?x$k7rb3r!g+hU z9koAG*B9_b{O@Kq`ni-k`pwPxX4MEaRz!u5ri+@t1C>tUrs&w2m>(9ujJY|{g#xr3 zU`g&jJyv0bd5o7KR+Sf@X}e)x6C0Uy8H2r$2vnvWM_MlBm z;Pi;tj*$6JWLFtvf#1nXaS<6 zI@R<)}dbD7U5JuVpjPrxHD5L}+_O)`?BzrUzpglD*bGo8!CWr7*Ys6hk zd)O5x!5+~QcLJzwFRseQ4Y~k@{F`UdbP3EHOxdg^A1m%j;DPC~&eOMJC_E5po>fK? zPKTTy2_dK74a&Iy*URfxa{(&@dq)qF5^8Qgw#OrC6J)ApY{UDnjEjWg>`3` zAefGQ+{LcM3@0B9cvxzD_u=D@1{lJ@Fp%N*`u3W7(}d8&ZC3SyHtQ0|?mQxTb~ffu zYTy5ECIjSw3lsl=KR`7Aqzz*j+gAd+a?BK$IQlS#pgoM#I zEc7lc@|Uo1VZI9<>|Nka1cX%qr2ee< zb9@T3>7Udc(p2&0>%O|`=qEVhU~Yd27)~|_`oEt67@}+aB&5dg!?BMpS1L%`J~puw zFdJ1rvDcTjaw(|G@veDw_8uIRjg0BhX7R0m=3p2@!7wjBZ~voW@#ZPz`;=_*2$!DyaK*MX`{={W5v;T7IECb8apk+xVG8Ad65Mfqf(qD#hr8oW(5qT$@WI&~o7^646@I{^cT4Z)(4skZ2bGJF11% z@<8tkmiD6Te9gJJzhwYkE`9w!{Q;l5LSh7C0Qlh00MKgz!hj&uQ?$Np5-4!18rhA9jp56k^aH!HjDRge+o=IiNvXe>t~2LR|mF^G9!^T zX4@kHm-P7zqjT&WWy@#Y?_T?vnlX!8BTV!Rnsc@#HXI#z$d*eTT|XGhQTS}_i97}`&MrUvQO3EJ; z@uL77XI`X%0{p`o&j?p@z$OFCxfDnXj}3QvXSJ`TeMCpK&uXTaqoO8PX?g`!N{I|8 zb+orvl7n;GJ&*P$6-nt+sJ^)G?zhB#0<1A>uCm&iHCY}EYj(WH3R+Shb|BfCAgWiL zt{+(l(C;J#9;b}J=2*^Yo%T)b!XOeXHqI6&1Ln62LI~l1V zeg-K|s-Jj21}fx#`LB2h4@&Kk@WnYc=e;cF^(SJ8#h& ziX|(R?6N95i9u5D*;4z49k-vkOBxIpHXMed*Ng4Tw%k>Y3kw~*4?2STUtE!IrG}0n zga^pbM!$3n!Ton!*soep2Qd^Ln+Z>yt~yELnWn5fbb)Za$Amv6zA1+L_XcQne_(SC zc=zUmf~k$HoV;VJk%?PAKD2%4{A+E+JQk#?W>YhPG(f3r;|N)1c3r%RQTFu{p&QVE zC2^uyxHhbjeBOPzAQ+naW0RPDxuZ>vgkNB5(Fz{GNYs<-<8wJU*|A*O=+B2wk^8MU zG~=p~WT1c$bMY?(Bi;YIYUNYgAN}L&NA=@eRQf0~kNc||p_LvPcV@+ppy<*~I5lOCRjf4%2ZV@sx{zS5wk$(0}lW1>xT zfpdXCt<4big9s$bMT3p6e`?Zez>>cgSdc%7fKh06P+NQOi?L)87Wzf{^lN;!X>m+O}TJsSmaHN_Q>#>0FTR?i8g{y8r9%dhX+y*Yn~$X1;O8Cj^YK{va~lpwdzlP?D*T z${?WTEM@=l!*1b4WUeD&K9mxO=I6M)me(sF^2gQMK8FEK^tYZ4;>=QS#1_PSVgoaz z$F(;~EDB}U?ir;O%fwq>7wL?1WZ`5|&6@L8p>PL9D4&=DGk4l5LU;1|;=7siA*(+u zu=>BgI6;&NioOl}lt@PWfwA7+W6XjBzhz=LRYUBMPlf22jppvAcF2r8aKG4E_4ATG z6uwGU!?U61&O9t+eCSuRrN3R@f3o+)$%E03g4NqnEAOc#!SF3GTY%~P`sztz z5t@Ux>yu#rU*BZ1_ST_y!3_z+4$JCO2ILhy%|yl627hI&`1dW^n*p&xT_zzVrc4c# zvD%U`Z8Qn`C`0KaKS4y}E(+^>S<>DypU0Fs13O`O4Xs%-P;6(_wJiuLh<}DUrui1W z5=&S3d9iZsY<3Yz4;7uGPk-iGlFTFih!Eu!-WEy`W>jrV{J-!0M4di^wPRkJ-*sx1 zd)>vNk(u(aLLn2l;@%_uIex@a=k zGN?ki1&MN3S?dz1df6U7Rm#2!*PDK7_a{a2(VZ-o zWmaI9ko*?C>cIv(Rm83W9Hv|VJV{;bZ>t@DTU+550k>C3UtjrAfdHt3FZS%XvfwW| zp*WG4sSTV;rkx*^Whb*p`Wc?9*KXk%%p( zpRtNDx1@+YFgkIhI-D~*actI`t7yX|cy66`5{!YmpnBTuwPZhc6^X0YR6o(Fy6d&N z>mZw3qQMQtoRb8QrmSiM(#h<*AdbDTM#o*SoVM*Ub{YwvwFPS{_DrtKuNA4!O(_3B zVeZ1+pOEn}C13xkJ(NA9>c_$Rj#S2M$}amBJ?;V~?YgHYsuoah_d+)I5*whecshf7 zi=1L#H0-RmR^00MtbG1!g+H7E$wnl1Z8Md2y>m0o)?xglgGV9#xv$LL!)(iBe|o)x zuy%r8w@?5#5{~a!H_M-d;6s8o!_7M~w$a?efD82shM8sI=b#=$WzEEczcSy2b6(Xy zlrVf!=e@@eJ_v4n1qWd&v++?P|EGQ|+932=L@9ZBLhCC=_Zdp*NSOd0~*gQB&Kmue1?Yqy?L1zw~YfK?47Y; z{o24G0izCvp+j_8*=q4^PWVG<`Z&K1&^!?@xcN|hckyJKYk+COs!MZ5Oy|*x=;kHJ zM}72iHS;Sl1jY&fqzZb}(;^f|Af1wsF=jmqB*V7|6Tn>73WPEr>5(>x&lUg14!$uL3kOJh)~ zMIiSeQfkB&wnu>Ij^o2n*$S>a_IS6(T8#a8H`)M38;o*-HDzSws^) zy3(&{l`MuxtO%3zqk8;!SZZ-cx26A))8N8JGxfOp@WW5S%~rtJ9>PTtDnk?Y3cvs) ziJt%gT`*G{X7_1Y#%o=kg!h%-q3p3g811Qre_ zK3XNk=4L(hk05$u&Zk?YJ^%oT$D8pH1@cLD_S{Uoynx0@N8vQAtQfQq0VU7ks`hq1 zu==AG14I#+_l!TceVr1xD0Ku1S zu{#y2nhdCBqz)*~pm9}6W&JrqAk~3%#%PbI{yiW(k;?X+CE+pdm!J*&q}gb;LC!Ha z_^Q$#ufGIQM+XqBQI)F49bg*(!2^#k@P<*AtXh?)d!Ti;i_1=7sv~^oAPy;b-i%kR z&b#;jVgszWs@+RpKqQ~Oz%>w+WJa&uw~u2XUr5JIN9Jo?A3w|>+$nK zg+JB=RJ7P5v1Td#>AtBJ)&6?nJ>FY{41L?xTX_CB!h@rU?^0$Dq&b@z{y@f<`v`1e zswSCZU&86!r`2z6F>|7?7@M_iB4dj0r#!j~9}m2J_yB4`E6LW&2A3=wg?kaG~{G5&_8_^)mOGfH5^Y#5>iHs z3SqqeJJ_64nmdML8km_PY2{M+67k{5cvWZcIh?4+(_HLq$qq*!iI{aEE0UsV~$*wgVlptR!3eL1EHli0pd#vJG({?fJv z4|v8W8Nn=#uKrUHzbx%XoTIk`|@cL0pkdow#HLhC$`aRv|bdwUk zIMxLPV|L<2NuH221{!(wQTaM`AfBK6Hq(ANn&v^H+Uw~$%}irr-Ym4I$QOH6!P=k- z)QOR0vP%~BIihU4z7O5`7eN+ukBy443ZIny^LnJ#4xK-7tA!$&x|T(}s5`0W*p)_r z+XYyr0n9=yuD%q2nS$n|%15c9!~oenrOM6!O^qq%1UF=j6`)}T5nyvMLElg_PFV$I z@=z$>!;3HdL74Eq<9^3jJwp11|A(U3q?v@icHII4h7ZvH7Q@=4HQ|l~G#9M8VnqGm zW3S_|@7*r_5&-XJ|IP@{r?7-)$Xx1nx`(FiNbw=eV&5UgFIL;IYe0BYVUV|V@oRYO z)DJ$5gW{DiAw7p5s}Co^S%Yinn+jT0YF&r&dDJxlQkT@&zC57$!urB4-tw zVy0pI&E@qOJd)d~J8|F|Qj!p!tV09VEVnfdAf6W}iu)b0#g73-^s;Zwud%X982Mpp zod_5d1!C=>x>ijhGSh(6fqS-Sj(VZ4Z~bupe= zYt_kVPHDf)$o_n=yv(#q|A{5|u47Ci=P%RC+01?egBnZA!KAq68OX3@{`EFEZWKmrjq5a)6Mj{+a^myzeieHAp ze!gi-QVr-*10<8C^lrTI+?GhVz*!NUt>AO48u!{Wnt#0!dj1W1lFi)TrR?w@oKL1s zKW)mWQ*Ycff8pRJJIY#f+J1GxzBC%4=)DdE02*$f|&%3x; zVo=F!Eq_6m7tV^gaEwrQyO3%^02Fq>4VJeRN}7KPfIuk-jVjdEr6tooH>l(!&_gEe zxlm@(T4G`V!j=vEZJdzLe550Uuqlqy15BH(uxZ%hl#~QzCxhyR+9^(jC2@ zJ087qz8}bQs?g(RQm@_I49;EIWv1h@bXVLRaL=g~l=li_#Cpzw;_iTVtw5t#B zBRQ&2<0#D4*EYp(OIS$ZQuR*KB0Cw~j&)L`!IG$Kn5ED zUh5$IjH0%zzfD|?dDP;P9>t40E%F+4?uSpso#^Ed$5|EPZsX<*(x}Qo3te2T`O9<1 z`eAmP0X>UL^tw%X^j?HgLF2cz8imCNcS;|?4aHi(1ODNCpAu*$H>pf}!1f^E3-GKv z-@tPOV+EZ2B1jc^p7Fq*%|5S=;dW z{iffJ37gJoHVuE&706s80U1T_c}WLE;{h=D*n!j3s7lw<@tOC_uw6D0l{Y{0QN~EW zRZ%l7j+~D(@o}msd8>Y8<6H62Dks<1FvSh+*%!}e_cP322w60_6<@)*fr!DomH3Yi znikHZ_K9IL+VxkZMVc47Y*Mp0$oaKQ#l5B4kyWfB*mr3YK&hj)~+f7@Rpxmudn zeVd}(YUw`59~*0P6=dpv(`f3zdvMo#cU;;t-gifN|BlyHv$o3?DYmfmX6k3PDOndq zo(22UB`7J(1uuU0Ncq zV*KP{=Gb5z@tUEdo_{PkQv!LAHhTt>C&kJh45Q6Scx7kI1P&;kD`$)Yh>5_MN z&$D#;#YVR>VfFiKZ!FP=zB8{<%(IxR0xQ3D!+4!jO|bh=oyiX^A2YMaT`#ECd}{y_ zIbs1u5?>sJH^bs7<{Y_)3YKU^cH6J}hMS5@a}an7vP3zHCJEZJl9`0m4x zO|Ok`+dJ`!F?|D6lKJ8=!d{SlODe`<69D?Oy+8YgX?G5x+KgsxMJSC^^l4OAfz%n% zIX*A_b&JIBsG@LO36J;20)WY%IC2~Xou74WdB^Th3wR(Ai3$QAAQYF<*sFswQf0(p zONw2F&$@|4hG3mnMB-A(WejVc!L-bQ~ zJT1V}WNqyuvsZAW99}?DsIrJ7nSkzxqKByyL2;d%3pmafHEzV(3pL|X`_B*Ei8do= zwV|!A4@`GM0)B$ENbhI?62yad1|ES|@ z|9?;5A3B$QT9%X|CnhJgpy69#`|@gAO+jjRb6QLzGb0-Z8yidax{XpwHR)%1rvsmi z(2R34Z*2LrtAvCr97#LtpuBr_5Z8Yo-x7^vAFMA|aHmZ{=g8I@N0aZ2+u9=M6V)e*e9{14?q(UiSH784VQDi*8NR*9hv$19R>KqRqfPBdVx^5ij5DJd2LJ?Y|hMlN7%yA%wt`T!gSvK8eqVKR)>o zT(2!oo5E~Y5E&?NjJ3~jBhrQP{>_*HKq{{a_(*W(>c=LDD-M@EIsO^pC#DvHBNKiuRjQU_mSn_~4VVss^8ww%x0jAwQfqgfoD%A3RZ zUKl@8%@9<){gmOM!h|`jIS;u4Ur=C@LGA&H=peDPhZ$u;94n1HH8C&ccBcGy3sAT* zN!&1!0a!;5_ALIrOr&#rO)jTL^{N&NUgHcW)8CQ%T=Tj*9h0m{x;5b^W`W@b6@PXK zneB)3@3vJsc>Kb2nX})iitD)F)YaCKBX*JvNHDzxJ+anv^2XR24t1$$2yf6N0l#FdxiW6Rkd*4XPm;T)_84tMbIT1D`XBe0ENJv8gnm_DAk{a$Mk`U?Q{#?|&Kv zFlj6D;SDAPvVo)LM=QNR=EADH(;;fjUc!MUpGNUdY$wVuk6mQ=3g8c@HkN4Wk-CC} zVcRXY5K0c?3-B0*1c$gSJgqw+xpP_Hewp9gNUg@bw{kTFl!fNZg{ae1lgJSaEZx#tfY*AA5 zc7MB)N~`>F+tA@B@JhlKWC%i3#4aaBj#79pSsjfVl=P7VpNEnNpkh5KI<|=O5>?vn z<}Qr0GIS@!7IT5ehbPN~$XjR7_7O|{iwo#dJ>(rfSgI|%-=O#@TxTmNMJ`EaDR+H6 znB{9;`~90GVN~Pqg=eojvf)t5nAQ(AhAM5pKc;FNZBtBPI*4H)Go@h=0W&JAf$Y`Q zUA@fPc?YpEP%jcn5Y06LH9oL|AR-8Q1YRttRs~^A@?sPh3?KkE{ucH7-w{dU&w8(#7++G& zoN^svzv4`0tw+`f=9V4q=O5xai70(lEvNV6pqssJ`D>f|=TBHw|GeAc=o$2QsV^=g zLB@8+k@IKJHquT`ax$lP-G?bWl>!rM zAqCOu6A~^~OOHS%(qLbTTdFuw0F^-#P=Q@VOO&B{sNzRc2F!J-7&e~;jNd7xZ|6f| zdr_2XxZ>_iP{5vE@!ASpmi;{&>Mv*8@x{~&zXqh!TiPG(uMac~WF>0*zeaB!FhbLF zGG~69iZwA8V$CTCfp@F24+D@p^CU+lwy`mV>oY)ZT-^RIGDV)z?s;i+>JF;il5A7{L> zpB6Z0WyUBq!8j!R*9h}aI%`+@%>l+{c$x|4P7wMTSNA7lZ0PYLd#GH^xeAm8phDH^ zrF^<`%~PCFKU>(-8WX!k`jli3w+Glx6>B(C(2)XQA-K)0sB4DEIxGC+bMm(&J}F<1 zqqDzw&)pmw(Y!|I7`sdV#5B|;gdf`?9E?@xAJhEP0LvtxFgD;utdCboDXF#q`3CMA z68*&K6;lTb3)kxcCd<_9`{iyP_fysNRW;U>rEsE`cCf2egZ-N ztt?oQ_7(uRx@D6_!!EjHUt<48EYGGXx>x#04;Pn^D!uq|+9*Z_jTjRc9Xi15sElMz zH!5N=@g~-Og?!2M3^TQV+d90dOYO8h$O$RO88A1*6-tZk%rb<|m%KV>-Y1!<<8*3w zIjcV&gkL zvs$cVf6G1K4&r}FMRr2)E|4U7BEDLG;fDWTauiY6ZFMji7DuH>s4bOKO_0fgJHsgU z63|{)6WPEMvIoU!kw{tNC*Nwg&2ct|>#ZG@@xK{4O!a(QCcaqR5?Q=Qr8cc;yY41z z!NC_@+=T&VzQn1D5}9HK5r68SOyd1KOfGr^rxRycx-8TRbji9gooP(5ygglS!HTCUWYB`|C)^bgYe}!(@OYzq|6>)iBVW_N$9810V-JL*SkE=YScq5d@?7KyrzUcht ztE}hkc-5d6G+_?qv+hRW)!&urINA*>ebmz6?q@^dIxw>Jd$4M;1`F^ksMUX6GS67J z`4UV%gNGe}(D;57LkES#x-2F(4biM05%e!Fk5gl{cj?w~YIah&!)6F~Q}I<4Qg3Zt zc)WGo)CqPyOf}dx4dvY3O$sn!`W>0%g6p}p$VZL*Hx^fZSuM*~FOtFaLVnqqedcpw z=5%!5t?>$*kQ=7C!wU!VLwTg9%+p95-wPh7Okq0>@i7wfR~l7rVAo_ZK4>uJ(dGHB z9JEhfg7Cse0qg})Cly;Ero|RmZ38ty2(VEBkz2Nh5dPh8S-!)3E1`hkgcIa~Hl~** zIXVCQKib7@_B>(QM$^NyxvQUo*eG$Tcwoos4t_^07m>&bGOfWzSR78|V1(-fnxPGvg+gOZva)QEW%GBTSE0QUfjd<|*)>^3(V683Dt?{=LU` z6UvrOf;x!pjA)b>81GCK=5)WDL5Ua{Mfxu!*a&;)n`Y2`I2>3VfRLeZqEevpex;mw zMEO&`iLe`zSnr5rPJ?Z&OOAhO9(Ibzck#`O;M=c55EPl*;<<5lD5dmq?Q)zd&Qh6o z%;pmE`efQtq^P}*E)FhXWO*RFODe10MnDkYzhiJsdiV6PxFb=F_S1Wn-Vn+L@|m06 zl~FO|G#g9XUS}N3m{J%B7`8+g&7K-Z&cX*o*D%^5BWp7P2XGBU!~-u&E*uTmK1Tm+ z>}$F-jaYki@6Nh=Fg=*kecehi`1Cq^72WEM*{7Q&thG9m5Xt84e2@r|p+hbC=OPfa zE?Y$#KBr^vQ!Zhq%o=G7G9N(IlqF0}nYne<-`^khVAkp@0w4j50IL)-85bM03!8ls zBs%w_yZWV!ww4!%xk0;<$@J4}iH>g~w3wEJ=|h8?9fc4Is|OwrIMF$tpu?+|QVY^oyC3Yzu!8kRf4X+@-n@) zpe7g*hroCwSqy-FTZLA|ibe;d3}WuXuhgTeq!@@#%tvIxic@^MXoLySf0UT?X?sfM z0tKmc6jGzOr-8KT^eHWLM(c7yFfUR#q%+-en?VhL&z+_rxp6?!Xw^PCaiNmhd`Pwo zm7#!Qe6x>%K?iBa2>~2UP3*hBe!o$GlFduEoLg~6OboK{hLV|tjcr%kxKfd%v<(t$ zxo?FNS(td4kst(vPV`bYN0yK2k*~%DK2v+ zAUHGM*9=VH-2jZq3-lv16+w^8LK%Pf@q!`7S(@&k^%`a1Y%2N}QCR|b)|;|2qzj)N zdlf9}B9{RD%xcZwMhoj&|9^P&n151j|HGsI<57h>yt$`<6l9c@)D{OO^sv2VWn*S% z9r#{cRns%rKlO9TP)LhV+WMh)^`+od#fcej)K9N7;l+ng1Z40lq%FK@D;n5h1^{Rz zdK(pryKUe`dl#eQ_+ZOL5o#B)zHHdtH<7*A1~@0YH)4Y$#qkGk<|K7ZQ_LwSUsxBn zy_g*B7BXTkWv(Krs#lOy05=akVt!cHUU!YV9j=thj0g~h+UxF!s1VZD$bn3{fcU=~AL z-eG7FZRhS{>i6;EZ@IZ|M6xq=QCOk)q@_S?~NsYs^XLo zAjJJwUplAY@I^Xj-sQ;s6-C@WnQ8td z%_U>@HFeqC`VQ^TXc%9`8W7@cIpoem2HK;Xgp!jl04z~^8lZLCRuKM9n+9})y~m|$ zpZN7D*Rj}z$Hk}+30Nm(%u$_*&w<>1k7Ce`YCtAtpJjq0<5H=?4YrUT{r6)5oi^hE z6;%=fb88Mh!f(I+1f^06Zpnoy&g;kI6#nu`s9um~dY=QOiNkztXqoCu1#NIsT9`-Q zXsudP3rPM5?s7XLW1{%{ICw*xg9>`fd(f|5ICmY?pjlkx?o83YApQKt;jr1ee_!EM zxz^DE8V$&Z47o1Z6H6^i|2U(Xn)e`{MRWr)=8F4wOD3(%6*N4;2^OVdrhNCINSSe!1Y1# zwBk)*Rch}NdDBCzZB5S)!o;Sf__|jW(;X>g->kfZGCQ@VQejewjqt`{)6hcpGDIeU z5r3s+#xgETF9K_hu|zf{lF=(6CNDvIZok%VW`d$9L{R1!*J)|{B;E>&AMXMyMLo0A z{EXvaXkz!vvM-L9(2Z2(d6bs=aI95i|Jq_}VGt6p9~vBYajzg84Xj8X3qB%G+pRbs zQ;vACa&LQo)%a-LOP}p&tBXeI<@yxcx@v&?G#KZnHqtVn zmSmu??5k0VJZM(#VXkxrZrUC=LNU5#$ZA2126PU8FsB|l9DFC~;MOI{2bp~ru{N&V zSY+j6tZDRiK?9go0QU7o%;|@cco5&*Cn(0DYEBd~;=SCf#Bnf^DMmOFm=sD2ixIX0 zpgmu1C@QoAOPFGRiKbAT&VTs$a8jx&umy*ZIKj`%m4}rCXJsp37`@6i6?a0CJZM9{ z5LE8^bF%+6k@F|Vw{Ux#a|kY634pT(C~LhKUwjfDVcQMX&z?KWOVMT6{1KoRaWwz8 zEe4smok7961~Q6*DA|J(g$Ah5!-V_vTx!TQG`;;A@la(UvLmGgrz6YeU~_Hv{gt}S zkD*@`b6y#6mrq2Hj2G!t5K?i9a#Zq<_4yPL+(KPO`o)FcBMka-8ZJzDy!1zI0bm;) zS~+|%53FjLJSShrXr%-I4~WK+gd@^g#JsPoY*Gc**o*d997NO73XPFM*Up$j%#d=8 zxt$|7DPVcdgxqz2mV$S{Or8fM*Vdo8)?uN})m@IQL;FdG`c}e|iYDs@u-+ z`Og2MCQb<)P16WaYE~P8kw65^r+L*rois)=+3GHjdTATY4SMAqeJ(Zw7i(+c-Jsvo zv^`IpPp;OJ6W_X@I_8_{1;6Lk@Xo8I_^6FlR{v;>QC95B>E!v&d&OW( zW8l7l3-h~OlMZW3RP6wsnE$GNZ%SrYiEp~eZMne!{O?KdOh5n|xiNgubWN;vAKBx> zJo*>U55FzQEgclH{l(9hddWwo2SW*fRVBqSkr7+GMkz@1Qq1RG_O+(d;;vn0^{>rc zAOtBJ0gifw@-_&7F~%$ud#++)9$+7Be?&1hiMdIXh#apub)+pRmg+0^TQy#b zN;Kv!kEi=vax^nq`L}CJ1Uq2<&2fvf+sG?}FLXCN&S`IVGh4$O+kBp`WFQyqYf%IF zaR~GBL2tYq5ogHhe%e<{IVLV}*@Z^V=W{$CDe!YJVN6hc#->c;Xj34;x55aaAevz_^ARWFsbV~n;DUhbmrkxf$Bh-W?2_xTXOkEoA|2$mTADNd z$QCj{Pp6`@JlxTvgzIxr01M&HLSBg)lTK<+3sw(Kz?Ik^QWv>^@evI7`*QNc59JU~ zGuju+RF6eBec?_)^k9}RZ>6~OOeo+1Spf2DTON^l3#$^hG!^M=yudK5ir=`HmD~!| zMRl-n^7Q+*eTYo`ij)wamBd7Jwk9^oE3D0j4JxUhwQI8YHIjFoeDR8Er9*uli~&3} z?p@|D(kM^%j@&Pp${WcyAJ#XO#Vk=R1Hk2HkDCHow6Q2yY*B2^UG*d z(Bq#f9ZOAx2M5umVrsnK#~d`s4^h;ktGAnjRdiO@gBsral9}F$Q=LRW8p_N{FNvj# z#>2ukhJz3sTpk*_lD**u5y8}E=cXxgTBcK{#WM1=N^-V>nwo&Anq2@=1l_6^7vKF? z^>TRX7dduGxAQ+J?iE8=`S9zrQyTkr(hgJ%&F5bW6ME2=ga33@Lu;|dg%Q`eetP6{ z$ysfxxo)v=3ObkyDLP|B{n(ms&t8}c^AzZ8Dg!l3orZvnJ)Bscd*6U>wS?VHau7 zP%>*IG#Rd}pgTWUg-dn1fo!)9k2z5|-E#SO+ABd7E>ul-FQxp4H`Z2{)J46d)#UuU zvAeAVWTd|(Qaa2_sZIGC$u29fobOdNkgD>VzPIPS#WcHi(kAtQ)7C4AQ~BMw5&zYF zqU2o)RLrju*cGosY&2F|^6KEemlSXm?mcC9yye{q;u-<-f4-dNTdj$expO_CCm$|} z?tzg1+{i@b?WhB#(li&E;AO;58&d}?8T`EuB1@nMFAsNJh0+j8L*wDOovpA`36m|=#@-if^HMTd zeJegA{=3q!QWzdh`L5PBM{DhhcLCTFIGparNoExu6O4}(ya_nFxOo((pyGcCw&T`e zw)?R-hCkq`MN?K0$`}jjR|VrT%Z&t^oHp7X`hYY#;qg-Se9gWx$SGgd@C-VNCsInE z`A3htu)1s*n!MRHXNCO<%9#LpEZ!Kru_4nHOgkpxzH-P`ujD(O{%u&|O z)0AX(^1Ad{Hpl7og3DQih^!%&Oc>98pig`$f5k7KhTD^6X_>CMtb4)yIA7i4>(ti_ zM#HI*KZK-8$w5|bgddc^`)wy9C$En^{=8YmKuIn!iskpEHe9l?2fGA91VJX)Z=`lDOOTSICK_#LAAQ{WB` zDFz|~tiuQb9w`(Ml#o69+H*-!{Wg9DmQ_SBE+0QiLox}^KfQ7Y@9v*K`YvTVqaT0g zD5QD*+S7IpEL5U&8M;mQxt(tMI#}7i`fSayGI4P9fpjQ`v_r5@;^tY~nNmqHq^#+n zO|uqUDzf13XMv)w-9qh5Ii^`?#7*ZIx1jF=CpfCma$k3Yst6VKEL>)h^mF)tx{yxC z)l=`b&QP_Ce;#BV%`+K;otw{+e&==(EEE(+q$e16KN@f5h=Pg=vK>278q8C;beJV6 z0hnX4auyXmFiS;H5Q2D)lo-zsO4LRtMa6 zg!u8h*{S<$=oc3)YP>Rdf|bIrO;nE}$>r#NXlm|tbm_9HCWW(K^_=hST36=hl90BQ zQeDl{_Wq(B1SEV?a7qW@E}gb&%$aGM4ho!Hdyd&FHumQQZ^UfZorR0no&-zB<@_(m|R)YRBKi*^Uz_|3ch z`}3gmnG-#ZV>ojbGw#4GOGf~8JS{hx36!bY5iK`po z|H^#P|Elu;K=+uiw0Jn|uRl?L2eh}RF0G&-JGmfYaA{$Dw6vlF3iB}aLz!p7fzaUo zX{LQ+n1m&!fLT8&8_azHJ1m;{xCOksyxLp*$_vhNN}H3roE)|1_E&wl<%5^3ZyiTf z;P|%C`jHo!-;C7=e!Zq2@~2vjXL!s6o4wnq*ug=qj?$c*d#Ta0$hBM7fEOa7R_Dw_eGfsHe@KL6&ZGPC<4NEqA3BS~f-Y>uC^M5!^3gv|`umlUGXJ4#86uxqR_ z7f4h67|>r!0RoflQpimOA=%13Q-0=|pok}d8MEU=io8QNM%|E?4@=lv;X53elcR;C-^J+KiYE$gCdS$I zW?ehBi4BS?>IpB!A=5ILnG2dKE-22vos->^n{iOMFZ69>M6%I8ohC~~jDLue{OyJqCYj?TNp9OIkS)FSQAJUvi&+}A zj2P9MbKk*=zqIu&y!+oFC&6KP!zmT)#>V~mrvlpE)SE{dEQ)9)177o%H^ZZ1R5LOAR}onrE15CE6qQUx$Sgm8 z`}|0OV!|m}`YT60+>)9kPr(sb#{mJn@&vpXdPA~Xfv{G{;+ong{1kJVSgho5a%Q^S znA&OMFd`}P{(tTrUM;#7UBz814{dSL2dNi*(jU&vJ9&+`x?I|9-lh99JwN-gMOL@z zX=u9pkq%@{;p2*{1vYG&t8>Y5&3Gy$@2qs$JuRPLx{>J*QiPu>WB=WNqaBv7H483x z^s*dyM3YLe;-H`6hW1yoHCCZ~>)bev5VD;G>s>@9!#GyHQ+7=V&qdL$_*h#=+7g zVX(~{>Kvykw)2>Kw}034#dPf^)le#r z8YDkPm)E3sHrcsGPZun6Xu$jamp48wXp4W2pt(I?NnXv2)mA<~D);^+)<)b0?5rYQ zZX{ALU|lyX&jcs02idn(YbMm;!QIeoa0VPvrUu$#;XGP^E!L=9^w2wf zB_^vunT2l5doyQQE`C0&g=WeB;T>)Fon~3m&k43JW+PVwZcJA~2x)m>N)L6)gwhWh z$75nTW!b~Ra{H$WmopGnf3P8iVH(uNF`JZ?HN) zg>S+f$t&xctpYskZVQUf#uaRf10-X!`A%YsC4z|b5CASG*$4ce&)JsIAm^A>_-;tgwq*tkH{c;;zDU_U<>= zZ?`}hO%3A^PLjNX5AP8z15Lp^fdTGXP+RL&WernP`3caZw}zwjcgM^y2RF%2pWCjL zW72bN^kXK8r|>_kx0IxRkxEP3thZsJOh%Se8Bfp3c_9hpBi@~rgfq;zzNk{$dX~|+ zODumm?w@Emmkd+|cM`+4=VZO?Pfk2ySgs1&e0ByMfZtCy4EBaDuWC?e9TheqEf4X`HSg->{fE0)N;1f%w1Okxr;hR|e z*-F=c8lDmAd^Y)N8GFB?%rZsV$XE` zgNn7m-gXtXE<}OMSj=1%vPx3ehd_||Bi=e^(fO>=*=@i3DIE0`o%SI3%Ny0IChcB* zEk&<)-gBgN!{R-thF?QY(X9Gh?!vy6i_8E3Iz>*DiuW>-S9iapoK!6L9!$Ih={LWo z^;g+yBYE_%$;Ti~WPc+XI55$tyl?3Lg|?UHWly|WyNyC~gCL5TZaAPQ2#=YnUK#FI ztw3qNw4lp&WN?xlPv`F4fzY9Ut5y8Hsi;{>l@aQK${m&G(CPU8Ly9!^5DC_4Nl<88 zua2(9WL5k=1dMrlf&fi}8vI1nGKLRP3BfLsSEN7?^uz=Lq8RtGti*l{#q(eI=HmX@ z1O={vk3p@VnBF>OllRW-|Le3jyH=58W7-w0{Nb$nag4&! zn8R$p4c%7*yP6m~z8GliOKTfY7|dd9BFTYXuNCh1Ne#hB5ZZ+nLStj=k8EbbOeSpZO=S-r9I{qxnuB&5j)x z!~7TsM;84s>4aQ`D%mSJgM%^jKWrIvpoRdJoFVwU@dO_{cSkPO_X(skPoZTY8aly| z({Q?+b-Ed)d?>`Cm>A~qrVEpPofd&U)tdd@MS8Eed|a#&@Q_|uMTKS*bE?~gJh6LH z)!dT6PjZk80|+o33>pF$8cM5E7|HLfT_KU{VNYAP&?@35`c30V~JB z-wwkq0t7%nDdIP+0-m5dHB)^Gt?~?I13gT*kgp^^BaQ1H<;Xm5TW!`*2jchV%$^@( z+MF&9y@ONi3y2%G6PdozcayMNd8K~jOnW~!aYOk_i@VXc%7#5|$#On8V@5D**d9lM zI#(qq77#_=c}9tCwiG6g;nS?wn)b53Iw~tZR3Cgp_xPTm9&Wq;o%!e2q>qO39bm4M zuUEm*QAIps-8;;4D^gOcTf3*3ihWNiZwETQ$-Uk`AlGzV@#M1nl*Et5iUNKG(qw)Q zaT*CHNKwf91hQ}M%HVQA1Ol2zAK&{*#!Ft}_*f)L^1w`v$gDHCpK;^c zRHQumsQu0%7gZ}MI`dS|e;^JdmREmUwZ*8e!i_7L@P?v2&xaweZgyRXqb2(sUrV(vXxFvo8QE5NefW_mhlH${c9wuS8Y^I$98CfDuGv$1^%7w+ zWE_Fg7_BK^0H72Y=Sl|WeKhW56kiPGgkiNCbT$xk;1%#A;HZw4@FQ385%4FGGD;O& zdTbxla7%Vkr4w0Ri9gw%kX4n5 z^m#JN^I&xqZtU(5VC^<*P;0V51Q~;JP#f39-vw$M^2X9jy?5|2*5K?X+2ig9jJd3> z6@qvyM*|VuURSydG}}J?fQct^JP~3#Ele@fVZZmaVbsldviudZLGd{%mZ|hrijIQt ziFU*D>~5!N<=sP%70D~#Y06*d`;$&9CuXc?O0kFX2siLSYNm(vJ zdk^XmFH-B6^+mlp`g}tz=u_^sqlP15D1oCU$|^4NkYRpufhWKKu>n-RkZsCsDZjbO z0y%=xz;N_{ZyDs^^>TM_o^R|C5wnBtDBZwfR16rDtK%>e*HK?z#W#*7h+000000AM_@g3K3}{Or$z=L@LBj7d2*;LX*4<8qAmpyj?_ zr2baa4FR_rI3@9IGK`Tky2A4YSQ5H_wyfb?gIUEM^CBIa$diK1uD;kWpf$Xo)3|jA z+R~p}jMvs?(CN!n)0XL%XU}Ms#6)EjF8)km)JL>v?oYlT;GN3x&?Oog9;_g5xE~2mk;gu@TaYSAU(_`~K56>C?mb z^KW+3>P(@TBThT5`&lUkL8i{b`^n`TAFkVDPK&O+36FR9#`CD?y@?vM{aBa^UOD5j z%^^6RO;r?Y%2|PEVoS#ntz)LO`xJ3AVyxq!orr6Sjtj1V+gf^K3PGOA>BAY5=aYh! z6jZ=$)Q0K#hrgP?|Nnpezf=i{34mfN0FFO{4-H@e9@%x0h-vD&4F4=+vIy?)(6;mCgImyazWeKty- zE0gkzv%?~Ev-$}m&eVP#38!e`&r@k*Z)cBr@+k@Z%Vnwj+GWpI43VVZL05nVdMoMp zMvD>qCeT(!wC;C{G%EpgKOai|=$s*X*fCBBYdRwzF0%F0$kdqtkkAP4%hA>j%1fWq z$QLeZ2?zi>5B6*qo(vNJPiJRS00h9J2mk;80078FJH8G8001#^lmZR0x3|Q(#lXVE z#l65M-q?+-%Zrb~q2gYmy2MYn~6fPh=rk-rmB^& z*xXp6RF!BA9T|s;_ua}x{q&ZRAD=M5|90w}1569#F!9bDetEX?q-SCX%l7QIcXB3! z(=*sKxFGOJOf*+cW}0C2N&!?l@P_)hfgOR<5ylZk18}y?+IOJ!GfIb{-u)pU!C#pG z9@%v`)>j_2>!r6h^ZZ%5t2*MbiITKtiuxo03?dW}>RBEE002M+`uNOfjy=?1jg=M0 zfF9DzQXw?rvF;g64v&_`Q0_7jy8e!wqA+w-^uiXkTqY1Ny)yJ{irb-6Iz^GjSi7`+ z0RU#kxN-p(mN|c`??qJt!x{IpGyL8H2d{4@J3-k1JeW%Z{_-8ov>3j033Du5a~Oyt z%%sB@g+-D;0}22*b(>Jj3j^_>?p%ekb1VQp+0Dwy2=dYT93JatYm-(k4+EXanR9Z0 zATUs{G1i1Lk1+xO0KlDr^To8+AHA>SJ!Cs?-Z5)0?)|~x-;Woy3$nx1c_)dQWC0OX z7C+#(s5u;eIO(%#*jo;Ejs2+AI|;vX-#7ERQv<&W5MMOJRg@jarwoYoH9HH8+7w_+ zd(Lxeg{!4EdRz)DJjQuF{aJ4B{VJGAQvr?`f<#y`_MN?V?k%Q*_KAM{*o#W$>MqgZ zc$>BE9AJ>SoOIj;s7?aD*iFLLYagw@Pip^yT$pa?*d7ExPfh|%7!!&#&O&o$1ONa4 z0Ait?rTCl1aV+bS?v~pH`L!h(HJy{WhntPAN2aas<}bh47@f5ak$!iaR2+4-@x#W96k4I}aq0aS_6jnOZLf1GVUcW4U4k004j)-u3x!>`udJ^|jG_gRwQv{q^)`4&{q2 z-3&?83ftDz)tT(HA7m`JzIv@$EXcn!!RCuLNfUebL+reNMruCS9QBzEa-IV&IWe2yQVRMw=B4z6(k`&mdo=s?_2!82G^cf;2Cf0= zPGx+91&4)#l+b<)N?~=DW?#X_H(f2J7LA_$1F!%(06y7ebbssp#dWjJCtQ)Fa(Q4} z;>4U2VIULG3_?>2E*$*`000mD9R5+hkkjx;m%maQ;*s=02CsOl@=9x(v)>lF@*eK; z8g&<=hxQ>V_$p!4cB!v|<19Gs;$k~B~0wk3pd z$Xpmu=%bwK)opP=4!K3I-{7IH6ZHc1z)0sJ{N+ngLpijh@GM zr>+}q<0`eexw%UAQM(=UrFqNU!_ovZLE8gpo777Eyiu5AGPW(*y_T8Cw4RTE9}C8X zeC|!uRXdWCA)%RO)8gZAO>fXRtZu__f1~Q^$4ajKkQrc`(ZPW|q8Y^)PgU=*gG36+ ziYXF~C|VR?7hnNVCY9?MJOCtnoLa#5rg7DOSn@yzGyv*ftEn^pzH0y;*-d4-+t;XW zVqs3SuyQ;wGsM}>rMDvofUy_}rbTkhM*sj+nW^tH@1Mgnc-(Ou_wh#`a5A5V%PheT zHQi!N$9#k_xeIg@epSvM3RTo0h-fG(_02l6 zuos(7nUfHDP-RTE?&`xLzC6#U(j0Z`tSJM_k&Sp`U^3LA>czgwR?hM+6*$6&^;HKZ z3XMkZQm}a5+ZmipD0l>Bi_r!EG}a?<1nQjY386Ir9@)*qzT@xm<=~74tUZf_7MXNs z17JW?3|NGj=OX|BSV%mEOtdrO;eT#f)r**ZgXV7qh=v^I`WzD9o%wSnk&}ziy>QOf zY45`bo*X*?z&W$GWub~ltn1B@HxCle)^~WcQ5P15sRT!hR0m)k2hCc zYp^Nhg}sLbyTra5bsNAXa|cn_1EaXoYgoK;Z_~aTjV^5Ermxc*P=LE+5XHTrHn_E2 zZao|a6P(*E9&_jbFc<;7agLDc#xQg;80bQVP)^}UDCM>ZhC1*ya?`=;IfA1D0N&XB nx91O30e}qv0MHQx0000000000u=%wrmQ7%R34jg)OaK!A6M&Cu literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/code0.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/code0.js new file mode 100644 index 0000000..6ce48e7 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/code0.js @@ -0,0 +1,121 @@ +gdjs.Start_32GameCode = {}; +gdjs.Start_32GameCode.GDSfondoObjects1= []; +gdjs.Start_32GameCode.GDSfondoObjects2= []; +gdjs.Start_32GameCode.GDTitoloGiocoObjects1= []; +gdjs.Start_32GameCode.GDTitoloGiocoObjects2= []; +gdjs.Start_32GameCode.GDNewObjectObjects1= []; +gdjs.Start_32GameCode.GDNewObjectObjects2= []; +gdjs.Start_32GameCode.GDNewObject2Objects1= []; +gdjs.Start_32GameCode.GDNewObject2Objects2= []; +gdjs.Start_32GameCode.GDOptionsObjects1= []; +gdjs.Start_32GameCode.GDOptionsObjects2= []; +gdjs.Start_32GameCode.GDCreditsObjects1= []; +gdjs.Start_32GameCode.GDCreditsObjects2= []; +gdjs.Start_32GameCode.GDPlayObjects1= []; +gdjs.Start_32GameCode.GDPlayObjects2= []; + +gdjs.Start_32GameCode.conditionTrue_0 = {val:false}; +gdjs.Start_32GameCode.condition0IsTrue_0 = {val:false}; +gdjs.Start_32GameCode.condition1IsTrue_0 = {val:false}; +gdjs.Start_32GameCode.condition2IsTrue_0 = {val:false}; + + +gdjs.Start_32GameCode.mapOfGDgdjs_46Start_9532GameCode_46GDPlayObjects1Objects = Hashtable.newFrom({"Play": gdjs.Start_32GameCode.GDPlayObjects1});gdjs.Start_32GameCode.mapOfGDgdjs_46Start_9532GameCode_46GDOptionsObjects1Objects = Hashtable.newFrom({"Options": gdjs.Start_32GameCode.GDOptionsObjects1});gdjs.Start_32GameCode.mapOfGDgdjs_46Start_9532GameCode_46GDCreditsObjects1Objects = Hashtable.newFrom({"Credits": gdjs.Start_32GameCode.GDCreditsObjects1});gdjs.Start_32GameCode.eventsList0x5b6e18 = function(runtimeScene) { + +{ + +gdjs.Start_32GameCode.GDPlayObjects1.createFrom(runtimeScene.getObjects("Play")); + +gdjs.Start_32GameCode.condition0IsTrue_0.val = false; +gdjs.Start_32GameCode.condition1IsTrue_0.val = false; +{ +gdjs.Start_32GameCode.condition0IsTrue_0.val = gdjs.evtTools.input.cursorOnObject(gdjs.Start_32GameCode.mapOfGDgdjs_46Start_9532GameCode_46GDPlayObjects1Objects, runtimeScene, true, false); +}if ( gdjs.Start_32GameCode.condition0IsTrue_0.val ) { +{ +gdjs.Start_32GameCode.condition1IsTrue_0.val = gdjs.evtTools.input.isMouseButtonPressed(runtimeScene, "Left"); +}} +if (gdjs.Start_32GameCode.condition1IsTrue_0.val) { +{gdjs.evtTools.runtimeScene.replaceScene(runtimeScene, "Phase1", false); +}} + +} + + +{ + +gdjs.Start_32GameCode.GDOptionsObjects1.createFrom(runtimeScene.getObjects("Options")); + +gdjs.Start_32GameCode.condition0IsTrue_0.val = false; +gdjs.Start_32GameCode.condition1IsTrue_0.val = false; +{ +gdjs.Start_32GameCode.condition0IsTrue_0.val = gdjs.evtTools.input.cursorOnObject(gdjs.Start_32GameCode.mapOfGDgdjs_46Start_9532GameCode_46GDOptionsObjects1Objects, runtimeScene, true, false); +}if ( gdjs.Start_32GameCode.condition0IsTrue_0.val ) { +{ +gdjs.Start_32GameCode.condition1IsTrue_0.val = gdjs.evtTools.input.isMouseButtonPressed(runtimeScene, "Left"); +}} +if (gdjs.Start_32GameCode.condition1IsTrue_0.val) { +{gdjs.evtTools.runtimeScene.replaceScene(runtimeScene, "Options", false); +}} + +} + + +{ + +gdjs.Start_32GameCode.GDCreditsObjects1.createFrom(runtimeScene.getObjects("Credits")); + +gdjs.Start_32GameCode.condition0IsTrue_0.val = false; +gdjs.Start_32GameCode.condition1IsTrue_0.val = false; +{ +gdjs.Start_32GameCode.condition0IsTrue_0.val = gdjs.evtTools.input.cursorOnObject(gdjs.Start_32GameCode.mapOfGDgdjs_46Start_9532GameCode_46GDCreditsObjects1Objects, runtimeScene, true, false); +}if ( gdjs.Start_32GameCode.condition0IsTrue_0.val ) { +{ +gdjs.Start_32GameCode.condition1IsTrue_0.val = gdjs.evtTools.input.isMouseButtonPressed(runtimeScene, "Left"); +}} +if (gdjs.Start_32GameCode.condition1IsTrue_0.val) { +{gdjs.evtTools.runtimeScene.replaceScene(runtimeScene, "Credits", false); +}} + +} + + +{ + + +gdjs.Start_32GameCode.condition0IsTrue_0.val = false; +{ +gdjs.Start_32GameCode.condition0IsTrue_0.val = gdjs.evtTools.runtimeScene.sceneJustBegins(runtimeScene); +}if (gdjs.Start_32GameCode.condition0IsTrue_0.val) { +{gdjs.evtTools.sound.playSound(runtimeScene, "Festa-di-Laurea-piena-da-convertire.ogg", false, 100, 1); +}} + +} + + +}; //End of gdjs.Start_32GameCode.eventsList0x5b6e18 + + +gdjs.Start_32GameCode.func = function(runtimeScene) { +runtimeScene.getOnceTriggers().startNewFrame(); + +gdjs.Start_32GameCode.GDSfondoObjects1.length = 0; +gdjs.Start_32GameCode.GDSfondoObjects2.length = 0; +gdjs.Start_32GameCode.GDTitoloGiocoObjects1.length = 0; +gdjs.Start_32GameCode.GDTitoloGiocoObjects2.length = 0; +gdjs.Start_32GameCode.GDNewObjectObjects1.length = 0; +gdjs.Start_32GameCode.GDNewObjectObjects2.length = 0; +gdjs.Start_32GameCode.GDNewObject2Objects1.length = 0; +gdjs.Start_32GameCode.GDNewObject2Objects2.length = 0; +gdjs.Start_32GameCode.GDOptionsObjects1.length = 0; +gdjs.Start_32GameCode.GDOptionsObjects2.length = 0; +gdjs.Start_32GameCode.GDCreditsObjects1.length = 0; +gdjs.Start_32GameCode.GDCreditsObjects2.length = 0; +gdjs.Start_32GameCode.GDPlayObjects1.length = 0; +gdjs.Start_32GameCode.GDPlayObjects2.length = 0; + +gdjs.Start_32GameCode.eventsList0x5b6e18(runtimeScene); +return; + +} + +gdjs['Start_32GameCode'] = gdjs.Start_32GameCode; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/code1.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/code1.js new file mode 100644 index 0000000..63b7e0b --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/code1.js @@ -0,0 +1,1492 @@ +gdjs.Phase1Code = {}; +gdjs.Phase1Code.GDBombObjects1_1final = []; + +gdjs.Phase1Code.GDInvader1Objects1_1final = []; + +gdjs.Phase1Code.GDInvader2Objects1_1final = []; + +gdjs.Phase1Code.GDInvader3Objects1_1final = []; + +gdjs.Phase1Code.GDShipObjects1_1final = []; + +gdjs.Phase1Code.forEachIndex3 = 0; + +gdjs.Phase1Code.forEachIndex4 = 0; + +gdjs.Phase1Code.forEachObjects3 = []; + +gdjs.Phase1Code.forEachObjects4 = []; + +gdjs.Phase1Code.forEachTemporary3 = null; + +gdjs.Phase1Code.forEachTemporary4 = null; + +gdjs.Phase1Code.forEachTotalCount3 = 0; + +gdjs.Phase1Code.forEachTotalCount4 = 0; + +gdjs.Phase1Code.stopDoWhile2 = false; + +gdjs.Phase1Code.GDInvader1Objects1= []; +gdjs.Phase1Code.GDInvader1Objects2= []; +gdjs.Phase1Code.GDInvader1Objects3= []; +gdjs.Phase1Code.GDInvader1Objects4= []; +gdjs.Phase1Code.GDInvader1Objects5= []; +gdjs.Phase1Code.GDInvader1Objects6= []; +gdjs.Phase1Code.GDInvader2Objects1= []; +gdjs.Phase1Code.GDInvader2Objects2= []; +gdjs.Phase1Code.GDInvader2Objects3= []; +gdjs.Phase1Code.GDInvader2Objects4= []; +gdjs.Phase1Code.GDInvader2Objects5= []; +gdjs.Phase1Code.GDInvader2Objects6= []; +gdjs.Phase1Code.GDInvader3Objects1= []; +gdjs.Phase1Code.GDInvader3Objects2= []; +gdjs.Phase1Code.GDInvader3Objects3= []; +gdjs.Phase1Code.GDInvader3Objects4= []; +gdjs.Phase1Code.GDInvader3Objects5= []; +gdjs.Phase1Code.GDInvader3Objects6= []; +gdjs.Phase1Code.GDShipObjects1= []; +gdjs.Phase1Code.GDShipObjects2= []; +gdjs.Phase1Code.GDShipObjects3= []; +gdjs.Phase1Code.GDShipObjects4= []; +gdjs.Phase1Code.GDShipObjects5= []; +gdjs.Phase1Code.GDShipObjects6= []; +gdjs.Phase1Code.GDBackgroundObjects1= []; +gdjs.Phase1Code.GDBackgroundObjects2= []; +gdjs.Phase1Code.GDBackgroundObjects3= []; +gdjs.Phase1Code.GDBackgroundObjects4= []; +gdjs.Phase1Code.GDBackgroundObjects5= []; +gdjs.Phase1Code.GDBackgroundObjects6= []; +gdjs.Phase1Code.GDBulletObjects1= []; +gdjs.Phase1Code.GDBulletObjects2= []; +gdjs.Phase1Code.GDBulletObjects3= []; +gdjs.Phase1Code.GDBulletObjects4= []; +gdjs.Phase1Code.GDBulletObjects5= []; +gdjs.Phase1Code.GDBulletObjects6= []; +gdjs.Phase1Code.GDLeftObjects1= []; +gdjs.Phase1Code.GDLeftObjects2= []; +gdjs.Phase1Code.GDLeftObjects3= []; +gdjs.Phase1Code.GDLeftObjects4= []; +gdjs.Phase1Code.GDLeftObjects5= []; +gdjs.Phase1Code.GDLeftObjects6= []; +gdjs.Phase1Code.GDRightObjects1= []; +gdjs.Phase1Code.GDRightObjects2= []; +gdjs.Phase1Code.GDRightObjects3= []; +gdjs.Phase1Code.GDRightObjects4= []; +gdjs.Phase1Code.GDRightObjects5= []; +gdjs.Phase1Code.GDRightObjects6= []; +gdjs.Phase1Code.GDFireObjects1= []; +gdjs.Phase1Code.GDFireObjects2= []; +gdjs.Phase1Code.GDFireObjects3= []; +gdjs.Phase1Code.GDFireObjects4= []; +gdjs.Phase1Code.GDFireObjects5= []; +gdjs.Phase1Code.GDFireObjects6= []; +gdjs.Phase1Code.GDScoreTEXTObjects1= []; +gdjs.Phase1Code.GDScoreTEXTObjects2= []; +gdjs.Phase1Code.GDScoreTEXTObjects3= []; +gdjs.Phase1Code.GDScoreTEXTObjects4= []; +gdjs.Phase1Code.GDScoreTEXTObjects5= []; +gdjs.Phase1Code.GDScoreTEXTObjects6= []; +gdjs.Phase1Code.GDScoreNUMObjects1= []; +gdjs.Phase1Code.GDScoreNUMObjects2= []; +gdjs.Phase1Code.GDScoreNUMObjects3= []; +gdjs.Phase1Code.GDScoreNUMObjects4= []; +gdjs.Phase1Code.GDScoreNUMObjects5= []; +gdjs.Phase1Code.GDScoreNUMObjects6= []; +gdjs.Phase1Code.GDUFOObjects1= []; +gdjs.Phase1Code.GDUFOObjects2= []; +gdjs.Phase1Code.GDUFOObjects3= []; +gdjs.Phase1Code.GDUFOObjects4= []; +gdjs.Phase1Code.GDUFOObjects5= []; +gdjs.Phase1Code.GDUFOObjects6= []; +gdjs.Phase1Code.GDBombObjects1= []; +gdjs.Phase1Code.GDBombObjects2= []; +gdjs.Phase1Code.GDBombObjects3= []; +gdjs.Phase1Code.GDBombObjects4= []; +gdjs.Phase1Code.GDBombObjects5= []; +gdjs.Phase1Code.GDBombObjects6= []; +gdjs.Phase1Code.GDCountObjects1= []; +gdjs.Phase1Code.GDCountObjects2= []; +gdjs.Phase1Code.GDCountObjects3= []; +gdjs.Phase1Code.GDCountObjects4= []; +gdjs.Phase1Code.GDCountObjects5= []; +gdjs.Phase1Code.GDCountObjects6= []; +gdjs.Phase1Code.GDBombTextNUMObjects1= []; +gdjs.Phase1Code.GDBombTextNUMObjects2= []; +gdjs.Phase1Code.GDBombTextNUMObjects3= []; +gdjs.Phase1Code.GDBombTextNUMObjects4= []; +gdjs.Phase1Code.GDBombTextNUMObjects5= []; +gdjs.Phase1Code.GDBombTextNUMObjects6= []; +gdjs.Phase1Code.GDBaseObjects1= []; +gdjs.Phase1Code.GDBaseObjects2= []; +gdjs.Phase1Code.GDBaseObjects3= []; +gdjs.Phase1Code.GDBaseObjects4= []; +gdjs.Phase1Code.GDBaseObjects5= []; +gdjs.Phase1Code.GDBaseObjects6= []; + +gdjs.Phase1Code.conditionTrue_0 = {val:false}; +gdjs.Phase1Code.condition0IsTrue_0 = {val:false}; +gdjs.Phase1Code.condition1IsTrue_0 = {val:false}; +gdjs.Phase1Code.condition2IsTrue_0 = {val:false}; +gdjs.Phase1Code.conditionTrue_1 = {val:false}; +gdjs.Phase1Code.condition0IsTrue_1 = {val:false}; +gdjs.Phase1Code.condition1IsTrue_1 = {val:false}; +gdjs.Phase1Code.condition2IsTrue_1 = {val:false}; + + +gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDInvader1Objects2Objects = Hashtable.newFrom({"Invader1": gdjs.Phase1Code.GDInvader1Objects2});gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDInvader2Objects2Objects = Hashtable.newFrom({"Invader2": gdjs.Phase1Code.GDInvader2Objects2});gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDInvader3Objects2Objects = Hashtable.newFrom({"Invader3": gdjs.Phase1Code.GDInvader3Objects2});gdjs.Phase1Code.eventsList0xb9b9c4 = function(runtimeScene) { + +}; //End of gdjs.Phase1Code.eventsList0xb9b9c4 +gdjs.Phase1Code.eventsList0xb99764 = function(runtimeScene) { + +{ + + + +} + + +{ + + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = !(gdjs.evtTools.systemInfo.isMobile()); +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +{gdjs.evtTools.camera.hideLayer(runtimeScene, "Controls"); +}} + +} + + +{ + + + +} + + +{ + + +gdjs.Phase1Code.stopDoWhile2 = false; +do {gdjs.Phase1Code.GDInvader1Objects2.length = 0; + +gdjs.Phase1Code.GDInvader2Objects2.length = 0; + +gdjs.Phase1Code.GDInvader3Objects2.length = 0; + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(5)) < 9; +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +if (true) { +{gdjs.evtTools.object.createObjectOnScene((typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : runtimeScene), gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDInvader1Objects2Objects, gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(5)) * 60, 0, ""); +}{runtimeScene.getVariables().getFromIndex(5).add(1); +}{gdjs.evtTools.object.createObjectOnScene((typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : runtimeScene), gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDInvader2Objects2Objects, gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(6)) * 60, 40, ""); +}{runtimeScene.getVariables().getFromIndex(6).add(1); +}{gdjs.evtTools.object.createObjectOnScene((typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : runtimeScene), gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDInvader3Objects2Objects, gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(7)) * 60, 80, ""); +}{runtimeScene.getVariables().getFromIndex(7).add(1); +} +{ //Subevents: +gdjs.Phase1Code.eventsList0xb9b9c4(runtimeScene);} //Subevents end. +} +} else gdjs.Phase1Code.stopDoWhile2 = true; +} while ( !gdjs.Phase1Code.stopDoWhile2 ); + +} + + +}; //End of gdjs.Phase1Code.eventsList0xb99764 +gdjs.Phase1Code.eventsList0xb9aebc = function(runtimeScene) { + +{ + + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.runtimeScene.sceneJustBegins(runtimeScene); +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +{gdjs.evtTools.runtimeScene.resetTimer(runtimeScene, "InvaderTimer"); +}{gdjs.evtTools.runtimeScene.resetTimer(runtimeScene, "UFOTimer"); +}{runtimeScene.getVariables().getFromIndex(0).setNumber(1); +}{runtimeScene.getVariables().getFromIndex(4).setNumber(1); +}{runtimeScene.getVariables().getFromIndex(5).setNumber(1); +}{runtimeScene.getVariables().getFromIndex(6).setNumber(1); +}{runtimeScene.getVariables().getFromIndex(7).setNumber(1); +}{runtimeScene.getVariables().getFromIndex(8).setNumber(0); +}{runtimeScene.getVariables().getFromIndex(3).setNumber(0.5); +}{runtimeScene.getVariables().getFromIndex(2).setNumber(24); +}{runtimeScene.getVariables().getFromIndex(9).setNumber(0); +}{runtimeScene.getVariables().getFromIndex(11).setNumber(4); +}{runtimeScene.getVariables().getFromIndex(12).setNumber(2); +} +{ //Subevents +gdjs.Phase1Code.eventsList0xb99764(runtimeScene);} //End of subevents +} + +} + + +}; //End of gdjs.Phase1Code.eventsList0xb9aebc +gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBombObjects5Objects = Hashtable.newFrom({"Bomb": gdjs.Phase1Code.GDBombObjects5});gdjs.Phase1Code.eventsList0xb9c1dc = function(runtimeScene) { + +{ + + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +{gdjs.Phase1Code.conditionTrue_1 = gdjs.Phase1Code.condition0IsTrue_0; +gdjs.Phase1Code.condition0IsTrue_1.val = false; +gdjs.Phase1Code.condition1IsTrue_1.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_1.val = gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(9)) < gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(11)); +}if ( gdjs.Phase1Code.condition0IsTrue_1.val ) { +{ +gdjs.Phase1Code.condition1IsTrue_1.val = gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(10)) < gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(12)); +}} +gdjs.Phase1Code.conditionTrue_1.val = true && gdjs.Phase1Code.condition0IsTrue_1.val && gdjs.Phase1Code.condition1IsTrue_1.val; +} +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +gdjs.Phase1Code.GDInvader1Objects5.createFrom(gdjs.Phase1Code.GDInvader1Objects4); + +gdjs.Phase1Code.GDBombObjects5.length = 0; + +{gdjs.evtTools.object.createObjectOnScene((typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : runtimeScene), gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBombObjects5Objects, (( gdjs.Phase1Code.GDInvader1Objects5.length === 0 ) ? 0 :gdjs.Phase1Code.GDInvader1Objects5[0].getPointX("")), (( gdjs.Phase1Code.GDInvader1Objects5.length === 0 ) ? 0 :gdjs.Phase1Code.GDInvader1Objects5[0].getPointY("")), ""); +}{runtimeScene.getVariables().getFromIndex(9).add(1); +}} + +} + + +}; //End of gdjs.Phase1Code.eventsList0xb9c1dc +gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBombObjects5Objects = Hashtable.newFrom({"Bomb": gdjs.Phase1Code.GDBombObjects5});gdjs.Phase1Code.eventsList0xb9c81c = function(runtimeScene) { + +{ + + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +{gdjs.Phase1Code.conditionTrue_1 = gdjs.Phase1Code.condition0IsTrue_0; +gdjs.Phase1Code.condition0IsTrue_1.val = false; +gdjs.Phase1Code.condition1IsTrue_1.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_1.val = gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(9)) < gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(11)); +}if ( gdjs.Phase1Code.condition0IsTrue_1.val ) { +{ +gdjs.Phase1Code.condition1IsTrue_1.val = gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(10)) < gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(12)); +}} +gdjs.Phase1Code.conditionTrue_1.val = true && gdjs.Phase1Code.condition0IsTrue_1.val && gdjs.Phase1Code.condition1IsTrue_1.val; +} +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +gdjs.Phase1Code.GDInvader1Objects5.createFrom(runtimeScene.getObjects("Invader1")); +gdjs.Phase1Code.GDBombObjects5.length = 0; + +{gdjs.evtTools.object.createObjectOnScene((typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : runtimeScene), gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBombObjects5Objects, (( gdjs.Phase1Code.GDInvader1Objects5.length === 0 ) ? 0 :gdjs.Phase1Code.GDInvader1Objects5[0].getPointX("")), (( gdjs.Phase1Code.GDInvader1Objects5.length === 0 ) ? 0 :gdjs.Phase1Code.GDInvader1Objects5[0].getPointY("")), ""); +}{runtimeScene.getVariables().getFromIndex(9).add(1); +}} + +} + + +{ + + +{ +} + +} + + +}; //End of gdjs.Phase1Code.eventsList0xb9c81c +gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBombObjects5Objects = Hashtable.newFrom({"Bomb": gdjs.Phase1Code.GDBombObjects5});gdjs.Phase1Code.eventsList0xb9ceec = function(runtimeScene) { + +{ + + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +{gdjs.Phase1Code.conditionTrue_1 = gdjs.Phase1Code.condition0IsTrue_0; +gdjs.Phase1Code.condition0IsTrue_1.val = false; +gdjs.Phase1Code.condition1IsTrue_1.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_1.val = gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(9)) < gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(11)); +}if ( gdjs.Phase1Code.condition0IsTrue_1.val ) { +{ +gdjs.Phase1Code.condition1IsTrue_1.val = gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(10)) < gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(12)); +}} +gdjs.Phase1Code.conditionTrue_1.val = true && gdjs.Phase1Code.condition0IsTrue_1.val && gdjs.Phase1Code.condition1IsTrue_1.val; +} +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +gdjs.Phase1Code.GDInvader1Objects5.createFrom(runtimeScene.getObjects("Invader1")); +gdjs.Phase1Code.GDBombObjects5.length = 0; + +{gdjs.evtTools.object.createObjectOnScene((typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : runtimeScene), gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBombObjects5Objects, (( gdjs.Phase1Code.GDInvader1Objects5.length === 0 ) ? 0 :gdjs.Phase1Code.GDInvader1Objects5[0].getPointX("")), (( gdjs.Phase1Code.GDInvader1Objects5.length === 0 ) ? 0 :gdjs.Phase1Code.GDInvader1Objects5[0].getPointY("")), ""); +}{runtimeScene.getVariables().getFromIndex(9).add(1); +}} + +} + + +}; //End of gdjs.Phase1Code.eventsList0xb9ceec +gdjs.Phase1Code.eventsList0xb9d7e4 = function(runtimeScene) { + +{ + + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(3)) > 0.1; +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +{runtimeScene.getVariables().getFromIndex(3).sub(0.1); +}} + +} + + +}; //End of gdjs.Phase1Code.eventsList0xb9d7e4 +gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDInvader1Objects2ObjectsGDgdjs_46Phase1Code_46GDInvader2Objects2ObjectsGDgdjs_46Phase1Code_46GDInvader3Objects2Objects = Hashtable.newFrom({"Invader1": gdjs.Phase1Code.GDInvader1Objects2, "Invader2": gdjs.Phase1Code.GDInvader2Objects2, "Invader3": gdjs.Phase1Code.GDInvader3Objects2});gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBaseObjects2Objects = Hashtable.newFrom({"Base": gdjs.Phase1Code.GDBaseObjects2});gdjs.Phase1Code.eventsList0xb9c0a4 = function(runtimeScene) { + +{ + +gdjs.Phase1Code.GDInvader1Objects3.createFrom(runtimeScene.getObjects("Invader1")); + +for(gdjs.Phase1Code.forEachIndex4 = 0;gdjs.Phase1Code.forEachIndex4 < gdjs.Phase1Code.GDInvader1Objects3.length;++gdjs.Phase1Code.forEachIndex4) { +gdjs.Phase1Code.GDInvader1Objects4.length = 0; + + +gdjs.Phase1Code.forEachTemporary4 = gdjs.Phase1Code.GDInvader1Objects3[gdjs.Phase1Code.forEachIndex4]; +gdjs.Phase1Code.GDInvader1Objects4.push(gdjs.Phase1Code.forEachTemporary4); +if (true) { +{for(var i = 0, len = gdjs.Phase1Code.GDInvader1Objects4.length ;i < len;++i) { + gdjs.Phase1Code.GDInvader1Objects4[i].setX(gdjs.Phase1Code.GDInvader1Objects4[i].getX() + (40 * gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(0)))); +} +}{for(var i = 0, len = gdjs.Phase1Code.GDInvader1Objects4.length ;i < len;++i) { + gdjs.Phase1Code.GDInvader1Objects4[i].setY(20 + (20 * gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(4)))); +} +}{runtimeScene.getVariables().getFromIndex(10).setNumber(gdjs.randomInRange(0, 30)); +} +{ //Subevents: +gdjs.Phase1Code.eventsList0xb9c1dc(runtimeScene);} //Subevents end. +} +} + +} + + +{ + +gdjs.Phase1Code.GDInvader2Objects3.createFrom(runtimeScene.getObjects("Invader2")); + +for(gdjs.Phase1Code.forEachIndex4 = 0;gdjs.Phase1Code.forEachIndex4 < gdjs.Phase1Code.GDInvader2Objects3.length;++gdjs.Phase1Code.forEachIndex4) { +gdjs.Phase1Code.GDInvader2Objects4.length = 0; + + +gdjs.Phase1Code.forEachTemporary4 = gdjs.Phase1Code.GDInvader2Objects3[gdjs.Phase1Code.forEachIndex4]; +gdjs.Phase1Code.GDInvader2Objects4.push(gdjs.Phase1Code.forEachTemporary4); +if (true) { +{for(var i = 0, len = gdjs.Phase1Code.GDInvader2Objects4.length ;i < len;++i) { + gdjs.Phase1Code.GDInvader2Objects4[i].setX(gdjs.Phase1Code.GDInvader2Objects4[i].getX() + (40 * gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(0)))); +} +}{for(var i = 0, len = gdjs.Phase1Code.GDInvader2Objects4.length ;i < len;++i) { + gdjs.Phase1Code.GDInvader2Objects4[i].setY(60 + (20 * gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(4)))); +} +}{runtimeScene.getVariables().getFromIndex(10).setNumber(gdjs.randomInRange(0, 30)); +} +{ //Subevents: +gdjs.Phase1Code.eventsList0xb9c81c(runtimeScene);} //Subevents end. +} +} + +} + + +{ + +gdjs.Phase1Code.GDInvader3Objects3.createFrom(runtimeScene.getObjects("Invader3")); + +for(gdjs.Phase1Code.forEachIndex4 = 0;gdjs.Phase1Code.forEachIndex4 < gdjs.Phase1Code.GDInvader3Objects3.length;++gdjs.Phase1Code.forEachIndex4) { +gdjs.Phase1Code.GDInvader3Objects4.length = 0; + + +gdjs.Phase1Code.forEachTemporary4 = gdjs.Phase1Code.GDInvader3Objects3[gdjs.Phase1Code.forEachIndex4]; +gdjs.Phase1Code.GDInvader3Objects4.push(gdjs.Phase1Code.forEachTemporary4); +if (true) { +{for(var i = 0, len = gdjs.Phase1Code.GDInvader3Objects4.length ;i < len;++i) { + gdjs.Phase1Code.GDInvader3Objects4[i].setX(gdjs.Phase1Code.GDInvader3Objects4[i].getX() + (40 * gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(0)))); +} +}{for(var i = 0, len = gdjs.Phase1Code.GDInvader3Objects4.length ;i < len;++i) { + gdjs.Phase1Code.GDInvader3Objects4[i].setY(100 + (20 * gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(4)))); +} +}{runtimeScene.getVariables().getFromIndex(10).setNumber(gdjs.randomInRange(0, 30)); +} +{ //Subevents: +gdjs.Phase1Code.eventsList0xb9ceec(runtimeScene);} //Subevents end. +} +} + +} + + +{ + + +{ +{gdjs.evtTools.runtimeScene.resetTimer(runtimeScene, "InvaderTimer"); +}{gdjs.evtTools.sound.playSound(runtimeScene, "lowRandom.ogg", false, 30, 1); +}} + +} + + +{ + + + +} + + +{ + +gdjs.Phase1Code.GDInvader1Objects3.createFrom(runtimeScene.getObjects("Invader1")); +gdjs.Phase1Code.GDInvader2Objects3.createFrom(runtimeScene.getObjects("Invader2")); +gdjs.Phase1Code.GDInvader3Objects3.createFrom(runtimeScene.getObjects("Invader3")); + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +for(var i = 0, k = 0, l = gdjs.Phase1Code.GDInvader1Objects3.length;i 980 ) { + gdjs.Phase1Code.condition0IsTrue_0.val = true; + gdjs.Phase1Code.GDInvader1Objects3[k] = gdjs.Phase1Code.GDInvader1Objects3[i]; + ++k; + } +} +gdjs.Phase1Code.GDInvader1Objects3.length = k;for(var i = 0, k = 0, l = gdjs.Phase1Code.GDInvader2Objects3.length;i 980 ) { + gdjs.Phase1Code.condition0IsTrue_0.val = true; + gdjs.Phase1Code.GDInvader2Objects3[k] = gdjs.Phase1Code.GDInvader2Objects3[i]; + ++k; + } +} +gdjs.Phase1Code.GDInvader2Objects3.length = k;for(var i = 0, k = 0, l = gdjs.Phase1Code.GDInvader3Objects3.length;i 980 ) { + gdjs.Phase1Code.condition0IsTrue_0.val = true; + gdjs.Phase1Code.GDInvader3Objects3[k] = gdjs.Phase1Code.GDInvader3Objects3[i]; + ++k; + } +} +gdjs.Phase1Code.GDInvader3Objects3.length = k;}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +{runtimeScene.getVariables().getFromIndex(0).setNumber(-(1)); +}{runtimeScene.getVariables().getFromIndex(4).add(1); +}} + +} + + +{ + + + +} + + +{ + +gdjs.Phase1Code.GDBaseObjects2.createFrom(runtimeScene.getObjects("Base")); +gdjs.Phase1Code.GDInvader1Objects2.createFrom(runtimeScene.getObjects("Invader1")); +gdjs.Phase1Code.GDInvader2Objects2.createFrom(runtimeScene.getObjects("Invader2")); +gdjs.Phase1Code.GDInvader3Objects2.createFrom(runtimeScene.getObjects("Invader3")); + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.object.hitBoxesCollisionTest(gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDInvader1Objects2ObjectsGDgdjs_46Phase1Code_46GDInvader2Objects2ObjectsGDgdjs_46Phase1Code_46GDInvader3Objects2Objects, gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBaseObjects2Objects, false, runtimeScene, false); +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +/* Reuse gdjs.Phase1Code.GDBaseObjects2 */ +{for(var i = 0, len = gdjs.Phase1Code.GDBaseObjects2.length ;i < len;++i) { + gdjs.Phase1Code.GDBaseObjects2[i].deleteFromScene(runtimeScene); +} +}} + +} + + +}; //End of gdjs.Phase1Code.eventsList0xb9c0a4 +gdjs.Phase1Code.eventsList0xb9befc = function(runtimeScene) { + +{ + + + +} + + +{ + + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.runtimeScene.timerElapsedTime(runtimeScene, gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(3)), "InvaderTimer"); +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { + +{ //Subevents +gdjs.Phase1Code.eventsList0xb9c0a4(runtimeScene);} //End of subevents +} + +} + + +{ + + + +} + + +{ + + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(2)) < 18; +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +{runtimeScene.getVariables().getFromIndex(3).setNumber(0.4); +}{runtimeScene.getVariables().getFromIndex(11).setNumber(6); +}} + +} + + +{ + + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(2)) < 12; +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +{runtimeScene.getVariables().getFromIndex(3).setNumber(0.3); +}{runtimeScene.getVariables().getFromIndex(11).setNumber(7); +}} + +} + + +{ + + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(2)) < 7; +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +{runtimeScene.getVariables().getFromIndex(3).setNumber(0.2); +}{runtimeScene.getVariables().getFromIndex(11).setNumber(8); +}} + +} + + +{ + + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.common.getVariableNumber(runtimeScene.getVariables().getFromIndex(2)) < 3; +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +{runtimeScene.getVariables().getFromIndex(3).setNumber(0.1); +}} + +} + + +}; //End of gdjs.Phase1Code.eventsList0xb9befc +gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDLeftObjects3Objects = Hashtable.newFrom({"Left": gdjs.Phase1Code.GDLeftObjects3});gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDRightObjects3Objects = Hashtable.newFrom({"Right": gdjs.Phase1Code.GDRightObjects3});gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDFireObjects2Objects = Hashtable.newFrom({"Fire": gdjs.Phase1Code.GDFireObjects2});gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBulletObjects2Objects = Hashtable.newFrom({"Bullet": gdjs.Phase1Code.GDBulletObjects2});gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBulletObjects2Objects = Hashtable.newFrom({"Bullet": gdjs.Phase1Code.GDBulletObjects2});gdjs.Phase1Code.eventsList0xb9f19c = function(runtimeScene) { + +{ + +gdjs.Phase1Code.GDBulletObjects2.createFrom(runtimeScene.getObjects("Bullet")); + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.object.pickedObjectsCount(gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBulletObjects2Objects) < 1; +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +gdjs.Phase1Code.GDShipObjects2.createFrom(runtimeScene.getObjects("Ship")); +/* Reuse gdjs.Phase1Code.GDBulletObjects2 */ +{gdjs.evtTools.object.createObjectOnScene((typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : runtimeScene), gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBulletObjects2Objects, (( gdjs.Phase1Code.GDShipObjects2.length === 0 ) ? 0 :gdjs.Phase1Code.GDShipObjects2[0].getPointX("")), (( gdjs.Phase1Code.GDShipObjects2.length === 0 ) ? 0 :gdjs.Phase1Code.GDShipObjects2[0].getPointY("")) - 20, ""); +}{gdjs.evtTools.sound.playSound(runtimeScene, "laser8.ogg", false, 30, 1); +}} + +} + + +}; //End of gdjs.Phase1Code.eventsList0xb9f19c +gdjs.Phase1Code.eventsList0xb9ebd4 = function(runtimeScene) { + +{ + +gdjs.Phase1Code.GDLeftObjects3.createFrom(runtimeScene.getObjects("Left")); +gdjs.Phase1Code.GDShipObjects3.createFrom(runtimeScene.getObjects("Ship")); + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +gdjs.Phase1Code.condition1IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.input.cursorOnObject(gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDLeftObjects3Objects, runtimeScene, true, false); +}if ( gdjs.Phase1Code.condition0IsTrue_0.val ) { +{ +for(var i = 0, k = 0, l = gdjs.Phase1Code.GDShipObjects3.length;i 50 ) { + gdjs.Phase1Code.condition1IsTrue_0.val = true; + gdjs.Phase1Code.GDShipObjects3[k] = gdjs.Phase1Code.GDShipObjects3[i]; + ++k; + } +} +gdjs.Phase1Code.GDShipObjects3.length = k;}} +if (gdjs.Phase1Code.condition1IsTrue_0.val) { +/* Reuse gdjs.Phase1Code.GDShipObjects3 */ +{for(var i = 0, len = gdjs.Phase1Code.GDShipObjects3.length ;i < len;++i) { + gdjs.Phase1Code.GDShipObjects3[i].setX(gdjs.Phase1Code.GDShipObjects3[i].getX() - (120 * gdjs.evtTools.runtimeScene.getElapsedTimeInSeconds(runtimeScene))); +} +}} + +} + + +{ + +gdjs.Phase1Code.GDRightObjects3.createFrom(runtimeScene.getObjects("Right")); +gdjs.Phase1Code.GDShipObjects3.createFrom(runtimeScene.getObjects("Ship")); + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +gdjs.Phase1Code.condition1IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.input.cursorOnObject(gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDRightObjects3Objects, runtimeScene, true, false); +}if ( gdjs.Phase1Code.condition0IsTrue_0.val ) { +{ +for(var i = 0, k = 0, l = gdjs.Phase1Code.GDShipObjects3.length;i 50 ) { + gdjs.Phase1Code.condition1IsTrue_0.val = true; + gdjs.Phase1Code.GDShipObjects2[k] = gdjs.Phase1Code.GDShipObjects2[i]; + ++k; + } +} +gdjs.Phase1Code.GDShipObjects2.length = k;}} +if (gdjs.Phase1Code.condition1IsTrue_0.val) { +/* Reuse gdjs.Phase1Code.GDShipObjects2 */ +{for(var i = 0, len = gdjs.Phase1Code.GDShipObjects2.length ;i < len;++i) { + gdjs.Phase1Code.GDShipObjects2[i].setX(gdjs.Phase1Code.GDShipObjects2[i].getX() - (120 * gdjs.evtTools.runtimeScene.getElapsedTimeInSeconds(runtimeScene))); +} +}} + +} + + +{ + +gdjs.Phase1Code.GDShipObjects2.createFrom(runtimeScene.getObjects("Ship")); + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +gdjs.Phase1Code.condition1IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.input.isKeyPressed(runtimeScene, "Right"); +}if ( gdjs.Phase1Code.condition0IsTrue_0.val ) { +{ +for(var i = 0, k = 0, l = gdjs.Phase1Code.GDShipObjects2.length;i 600 ) { + gdjs.Phase1Code.condition0IsTrue_0.val = true; + gdjs.Phase1Code.GDBombObjects4[k] = gdjs.Phase1Code.GDBombObjects4[i]; + ++k; + } +} +gdjs.Phase1Code.GDBombObjects4.length = k;}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +/* Reuse gdjs.Phase1Code.GDBombObjects4 */ +{for(var i = 0, len = gdjs.Phase1Code.GDBombObjects4.length ;i < len;++i) { + gdjs.Phase1Code.GDBombObjects4[i].deleteFromScene(runtimeScene); +} +}{runtimeScene.getVariables().getFromIndex(9).sub(1); +}} + +} + + +}; //End of gdjs.Phase1Code.eventsList0xb4661c +gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBombObjects1Objects = Hashtable.newFrom({"Bomb": gdjs.Phase1Code.GDBombObjects1});gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBaseObjects1Objects = Hashtable.newFrom({"Base": gdjs.Phase1Code.GDBaseObjects1});gdjs.Phase1Code.eventsList0xb425c4 = function(runtimeScene) { + +{ + +gdjs.Phase1Code.GDBombObjects2.createFrom(runtimeScene.getObjects("Bomb")); + +for(gdjs.Phase1Code.forEachIndex3 = 0;gdjs.Phase1Code.forEachIndex3 < gdjs.Phase1Code.GDBombObjects2.length;++gdjs.Phase1Code.forEachIndex3) { +gdjs.Phase1Code.GDBombObjects3.length = 0; + + +gdjs.Phase1Code.forEachTemporary3 = gdjs.Phase1Code.GDBombObjects2[gdjs.Phase1Code.forEachIndex3]; +gdjs.Phase1Code.GDBombObjects3.push(gdjs.Phase1Code.forEachTemporary3); +if (true) { +{for(var i = 0, len = gdjs.Phase1Code.GDBombObjects3.length ;i < len;++i) { + gdjs.Phase1Code.GDBombObjects3[i].setY(gdjs.Phase1Code.GDBombObjects3[i].getY() + (180 * gdjs.evtTools.runtimeScene.getElapsedTimeInSeconds(runtimeScene))); +} +} +{ //Subevents: +gdjs.Phase1Code.eventsList0xb4661c(runtimeScene);} //Subevents end. +} +} + +} + + +{ + +gdjs.Phase1Code.GDBaseObjects1.createFrom(runtimeScene.getObjects("Base")); +gdjs.Phase1Code.GDBombObjects1.createFrom(runtimeScene.getObjects("Bomb")); + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.object.hitBoxesCollisionTest(gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBombObjects1Objects, gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBaseObjects1Objects, false, runtimeScene, false); +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +/* Reuse gdjs.Phase1Code.GDBaseObjects1 */ +/* Reuse gdjs.Phase1Code.GDBombObjects1 */ +{for(var i = 0, len = gdjs.Phase1Code.GDBombObjects1.length ;i < len;++i) { + gdjs.Phase1Code.GDBombObjects1[i].deleteFromScene(runtimeScene); +} +}{for(var i = 0, len = gdjs.Phase1Code.GDBaseObjects1.length ;i < len;++i) { + gdjs.Phase1Code.GDBaseObjects1[i].deleteFromScene(runtimeScene); +} +}{runtimeScene.getVariables().getFromIndex(9).sub(1); +}{gdjs.evtTools.sound.playSound(runtimeScene, "laser1.ogg", false, 30, 1); +}} + +} + + +}; //End of gdjs.Phase1Code.eventsList0xb425c4 +gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDUFOObjects2Objects = Hashtable.newFrom({"UFO": gdjs.Phase1Code.GDUFOObjects2});gdjs.Phase1Code.eventsList0xb72c24 = function(runtimeScene) { + +}; //End of gdjs.Phase1Code.eventsList0xb72c24 +gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDUFOObjects2Objects = Hashtable.newFrom({"UFO": gdjs.Phase1Code.GDUFOObjects2});gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBulletObjects2Objects = Hashtable.newFrom({"Bullet": gdjs.Phase1Code.GDBulletObjects2});gdjs.Phase1Code.eventsList0xb02424 = function(runtimeScene) { + +{ + + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.runtimeScene.timerElapsedTime(runtimeScene, 15, "UFOTimer"); +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +gdjs.Phase1Code.GDUFOObjects2.length = 0; + +{gdjs.evtTools.object.createObjectOnScene((typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : runtimeScene), gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDUFOObjects2Objects, 0, 60, ""); +}{gdjs.evtTools.runtimeScene.resetTimer(runtimeScene, "UFOTimer"); +}} + +} + + +{ + +gdjs.Phase1Code.GDUFOObjects2.createFrom(runtimeScene.getObjects("UFO")); + +for(gdjs.Phase1Code.forEachIndex3 = 0;gdjs.Phase1Code.forEachIndex3 < gdjs.Phase1Code.GDUFOObjects2.length;++gdjs.Phase1Code.forEachIndex3) { +gdjs.Phase1Code.GDUFOObjects3.length = 0; + + +gdjs.Phase1Code.forEachTemporary3 = gdjs.Phase1Code.GDUFOObjects2[gdjs.Phase1Code.forEachIndex3]; +gdjs.Phase1Code.GDUFOObjects3.push(gdjs.Phase1Code.forEachTemporary3); +if (true) { +{for(var i = 0, len = gdjs.Phase1Code.GDUFOObjects3.length ;i < len;++i) { + gdjs.Phase1Code.GDUFOObjects3[i].setX(gdjs.Phase1Code.GDUFOObjects3[i].getX() + (90 * gdjs.evtTools.runtimeScene.getElapsedTimeInSeconds(runtimeScene))); +} +}{gdjs.evtTools.sound.playSound(runtimeScene, "twoTone1.ogg", false, 5, 1); +}} +} + +} + + +{ + +gdjs.Phase1Code.GDBulletObjects2.createFrom(runtimeScene.getObjects("Bullet")); +gdjs.Phase1Code.GDUFOObjects2.createFrom(runtimeScene.getObjects("UFO")); + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.object.hitBoxesCollisionTest(gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDUFOObjects2Objects, gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBulletObjects2Objects, false, runtimeScene, false); +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +/* Reuse gdjs.Phase1Code.GDBulletObjects2 */ +/* Reuse gdjs.Phase1Code.GDUFOObjects2 */ +{for(var i = 0, len = gdjs.Phase1Code.GDBulletObjects2.length ;i < len;++i) { + gdjs.Phase1Code.GDBulletObjects2[i].deleteFromScene(runtimeScene); +} +}{for(var i = 0, len = gdjs.Phase1Code.GDUFOObjects2.length ;i < len;++i) { + gdjs.Phase1Code.GDUFOObjects2[i].deleteFromScene(runtimeScene); +} +}{runtimeScene.getGame().getVariables().getFromIndex(0).add(200); +}{runtimeScene.getVariables().getFromIndex(8).setNumber(0); +}} + +} + + +{ + + +{ +} + +} + + +}; //End of gdjs.Phase1Code.eventsList0xb02424 +gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDInvader1Objects1ObjectsGDgdjs_46Phase1Code_46GDInvader2Objects1ObjectsGDgdjs_46Phase1Code_46GDInvader3Objects1Objects = Hashtable.newFrom({"Invader1": gdjs.Phase1Code.GDInvader1Objects1, "Invader2": gdjs.Phase1Code.GDInvader2Objects1, "Invader3": gdjs.Phase1Code.GDInvader3Objects1});gdjs.Phase1Code.eventsList0xb6d9f4 = function(runtimeScene) { + +{ + +gdjs.Phase1Code.GDInvader1Objects1.createFrom(runtimeScene.getObjects("Invader1")); +gdjs.Phase1Code.GDInvader2Objects1.createFrom(runtimeScene.getObjects("Invader2")); +gdjs.Phase1Code.GDInvader3Objects1.createFrom(runtimeScene.getObjects("Invader3")); + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +gdjs.Phase1Code.condition0IsTrue_0.val = gdjs.evtTools.object.pickedObjectsCount(gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDInvader1Objects1ObjectsGDgdjs_46Phase1Code_46GDInvader2Objects1ObjectsGDgdjs_46Phase1Code_46GDInvader3Objects1Objects) == 0; +}if (gdjs.Phase1Code.condition0IsTrue_0.val) { +{gdjs.evtTools.runtimeScene.replaceScene(runtimeScene, "WinPage", false); +}} + +} + + +}; //End of gdjs.Phase1Code.eventsList0xb6d9f4 +gdjs.Phase1Code.eventsList0xb45e3c = function(runtimeScene) { + +{ + + +{ +gdjs.Phase1Code.GDScoreNUMObjects1.createFrom(runtimeScene.getObjects("ScoreNUM")); +{runtimeScene.getGame().getVariables().getFromIndex(0).setNumber(gdjs.evtTools.common.trunc(gdjs.evtTools.common.getVariableNumber(runtimeScene.getGame().getVariables().getFromIndex(0)))); +}{for(var i = 0, len = gdjs.Phase1Code.GDScoreNUMObjects1.length ;i < len;++i) { + gdjs.Phase1Code.GDScoreNUMObjects1[i].setString(gdjs.evtTools.common.toString(gdjs.evtTools.common.getVariableNumber(runtimeScene.getGame().getVariables().getFromIndex(0)))); +} +}} + +} + + +}; //End of gdjs.Phase1Code.eventsList0xb45e3c +gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDShipObjects2Objects = Hashtable.newFrom({"Ship": gdjs.Phase1Code.GDShipObjects2});gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDInvader1Objects2ObjectsGDgdjs_46Phase1Code_46GDInvader2Objects2ObjectsGDgdjs_46Phase1Code_46GDInvader3Objects2Objects = Hashtable.newFrom({"Invader1": gdjs.Phase1Code.GDInvader1Objects2, "Invader2": gdjs.Phase1Code.GDInvader2Objects2, "Invader3": gdjs.Phase1Code.GDInvader3Objects2});gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDShipObjects2Objects = Hashtable.newFrom({"Ship": gdjs.Phase1Code.GDShipObjects2});gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDBombObjects2Objects = Hashtable.newFrom({"Bomb": gdjs.Phase1Code.GDBombObjects2});gdjs.Phase1Code.eventsList0xb51c74 = function(runtimeScene) { + +{ + + + +} + + +{ + +gdjs.Phase1Code.GDBombObjects1.length = 0; + +gdjs.Phase1Code.GDInvader1Objects1.length = 0; + +gdjs.Phase1Code.GDInvader2Objects1.length = 0; + +gdjs.Phase1Code.GDInvader3Objects1.length = 0; + +gdjs.Phase1Code.GDShipObjects1.length = 0; + + +gdjs.Phase1Code.condition0IsTrue_0.val = false; +{ +{gdjs.Phase1Code.conditionTrue_1 = gdjs.Phase1Code.condition0IsTrue_0; +gdjs.Phase1Code.GDBombObjects1_1final.length = 0;gdjs.Phase1Code.GDInvader1Objects1_1final.length = 0;gdjs.Phase1Code.GDInvader2Objects1_1final.length = 0;gdjs.Phase1Code.GDInvader3Objects1_1final.length = 0;gdjs.Phase1Code.GDShipObjects1_1final.length = 0;gdjs.Phase1Code.condition0IsTrue_1.val = false; +gdjs.Phase1Code.condition1IsTrue_1.val = false; +{ +gdjs.Phase1Code.GDInvader1Objects2.createFrom(runtimeScene.getObjects("Invader1")); +gdjs.Phase1Code.GDInvader2Objects2.createFrom(runtimeScene.getObjects("Invader2")); +gdjs.Phase1Code.GDInvader3Objects2.createFrom(runtimeScene.getObjects("Invader3")); +gdjs.Phase1Code.GDShipObjects2.createFrom(runtimeScene.getObjects("Ship")); +gdjs.Phase1Code.condition0IsTrue_1.val = gdjs.evtTools.object.hitBoxesCollisionTest(gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDShipObjects2Objects, gdjs.Phase1Code.mapOfGDgdjs_46Phase1Code_46GDInvader1Objects2ObjectsGDgdjs_46Phase1Code_46GDInvader2Objects2ObjectsGDgdjs_46Phase1Code_46GDInvader3Objects2Objects, false, runtimeScene, false); +if( gdjs.Phase1Code.condition0IsTrue_1.val ) { + gdjs.Phase1Code.conditionTrue_1.val = true; + for(var j = 0, jLen = gdjs.Phase1Code.GDInvader1Objects2.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 literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/enemyBlue1.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/enemyBlue1.png new file mode 100644 index 0000000000000000000000000000000000000000..dd0bf7357560dd05633203c6e67a265c0863075f GIT binary patch literal 4448 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 Jy2Q#S?q3#@W^Vuh literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/enemyGreen2.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/enemyGreen2.png new file mode 100644 index 0000000000000000000000000000000000000000..008e1148bc3ed8df7e0616fa7c7427e98d50da8d GIT binary patch literal 4432 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 right-layer.getCameraWidth(cameraId)/2 ) newX = right-layer.getCameraWidth(cameraId)/2; + + var newY = object.getDrawableY()+object.getCenterY()+yOffset; + if ( newY < top +layer.getCameraHeight(cameraId)/2 ) newY = top+layer.getCameraHeight(cameraId)/2; + if ( newY > bottom-layer.getCameraHeight(cameraId)/2 ) newY = bottom-layer.getCameraHeight(cameraId)/2; + + layer.setCameraX(newX, cameraId); + layer.setCameraY(newY, cameraId); +} + +/** + * Update a layer effect parameter (with a number). + * @param {gdjs.RuntimeScene} runtimeScene The scene + * @param {string} layer The name of the layer + * @param {string} effect The name of the effect + * @param {string} parameter The parameter to update + * @param {number} value The new value + */ +gdjs.evtTools.camera.setLayerEffectDoubleParameter = function(runtimeScene, layer, effect, parameter, value) { + if ( !runtimeScene.hasLayer(layer) ) { return; } + + return runtimeScene.getLayer(layer).setEffectDoubleParameter(effect, parameter, value); +} + +/** + * Update a layer effect parameter (with a string). + * @param {gdjs.RuntimeScene} runtimeScene The scene + * @param {string} layer The name of the layer + * @param {string} effect The name of the effect + * @param {string} parameter The parameter to update + * @param {string} value The new value + */ +gdjs.evtTools.camera.setLayerEffectStringParameter = function(runtimeScene, layer, effect, parameter, value) { + if ( !runtimeScene.hasLayer(layer) ) { return; } + + return runtimeScene.getLayer(layer).setEffectStringParameter(effect, parameter, value); +} + +/** + * Enable or disable a layer effect parameter (boolean). + * @param {gdjs.RuntimeScene} runtimeScene The scene + * @param {string} layer The name of the layer + * @param {string} effect The name of the effect + * @param {string} parameter The parameter to update + * @param {boolean} value The new value + */ +gdjs.evtTools.camera.setLayerEffectBooleanParameter = function(runtimeScene, layer, effect, parameter, value) { + if ( !runtimeScene.hasLayer(layer) ) { return; } + + return runtimeScene.getLayer(layer).setEffectBooleanParameter(effect, parameter, value); +} + +/** + * Enable, or disable, an effect of a layer. + * @param {gdjs.RuntimeScene} runtimeScene The scene + * @param {string} layer The name of the layer + * @param {string} effect The name of the effect + * @param {boolean} enabled true to enable, false to disable. + */ +gdjs.evtTools.camera.enableLayerEffect = function(runtimeScene, layer, effect, enabled) { + if ( !runtimeScene.hasLayer(layer) ) { return; } + + runtimeScene.getLayer(layer).enableEffect(effect, enabled); +} + +/** + * Check if an effect is enabled. + * @param {gdjs.RuntimeScene} runtimeScene The scene + * @param {string} layer The name of the layer + * @param {string} effect The name of the effect + * @return {boolean} true if the effect is enabled, false otherwise. + */ +gdjs.evtTools.camera.layerEffectEnabled = function(runtimeScene, layer, effect) { + if ( !runtimeScene.hasLayer(layer) ) { return true; } + + return runtimeScene.getLayer(layer).isEffectEnabled(effect); +} + +gdjs.evtTools.camera.setLayerTimeScale = function(runtimeScene, layer, timeScale) { + if ( !runtimeScene.hasLayer(layer) ) { return; } + return runtimeScene.getLayer(layer).setTimeScale(timeScale); +} + +gdjs.evtTools.camera.getLayerTimeScale = function(runtimeScene, layer) { + if ( !runtimeScene.hasLayer(layer) ) { return 1; } + return runtimeScene.getLayer(layer).getTimeScale(); +} diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/commontools.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/commontools.js new file mode 100644 index 0000000..241e11f --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/commontools.js @@ -0,0 +1,196 @@ +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * @memberof gdjs.evtTools + * @class common + * @static + * @private + */ +gdjs.evtTools.common = gdjs.evtTools.common || {}; + +/** + * Get the value of a variable. Equivalent of variable.getAsNumber(). + * @private + */ +gdjs.evtTools.common.getVariableNumber = function(variable) { + return variable.getAsNumber(); +}; + +/** + * Get the string of a variable. Equivalent of variable.getAsString(). + * @private + */ +gdjs.evtTools.common.getVariableString = function(variable) { + return variable.getAsString(); +}; + +/** + * @private + */ +gdjs.evtTools.common.sceneVariableExists = function( + runtimeScene, + variableName +) { + return runtimeScene.getVariables().has(variableName); +}; + +/** + * @private + */ +gdjs.evtTools.common.globalVariableExists = function( + runtimeScene, + variableName +) { + return runtimeScene + .getGame() + .getVariables() + .has(variableName); +}; + +/** + * @private + */ +gdjs.evtTools.common.variableChildExists = function(variable, childName) { + return variable.hasChild(childName); +}; + +/** + * @private + */ +gdjs.evtTools.common.variableRemoveChild = function(variable, childName) { + return variable.removeChild(childName); +}; + +/** + * @private + */ +gdjs.evtTools.common.variableClearChildren = function(variable) { + variable.clearChildren(); +}; + +/** + * @private + */ +gdjs.evtTools.common.getVariableChildCount = function(variable) { + if (variable.isStructure() == false) return 0; + return Object.keys(variable.getAllChildren()).length; +}; + +/** + * Convert a string to a float. + * @private + */ +gdjs.evtTools.common.toNumber = function(str) { + return parseFloat(str); +}; + +/** + * Convert a number to a string. + * @private + */ +gdjs.evtTools.common.toString = function(num) { + //Using String literal is fastest than using toString according to + //http://jsperf.com/number-to-string/2 and http://jsben.ch/#/ghQYR + return '' + num; +}; + +/** + * Negate the boolean. + * @private + */ +gdjs.evtTools.common.logicalNegation = function(bool) { + return !bool; +}; + +gdjs.evtTools.common.clamp = function(x, min, max) { + return Math.min(Math.max(x, min), max); +}; + +gdjs.evtTools.common.acosh = function(arg) { + // http://kevin.vanzonneveld.net + // + original by: Onno Marsman + return Math.log(arg + Math.sqrt(arg * arg - 1)); +}; + +gdjs.evtTools.common.asinh = function(arg) { + // http://kevin.vanzonneveld.net + // + original by: Onno Marsman + return Math.log(arg + Math.sqrt(arg * arg + 1)); +}; + +gdjs.evtTools.common.atanh = function(arg) { + // http://kevin.vanzonneveld.net + // + original by: Onno Marsman + return 0.5 * Math.log((1 + arg) / (1 - arg)); +}; + +gdjs.evtTools.common.cosh = function(arg) { + return (Math.exp(arg) + Math.exp(-arg)) / 2; +}; + +gdjs.evtTools.common.sinh = function(arg) { + return (Math.exp(arg) - Math.exp(-arg)) / 2; +}; + +gdjs.evtTools.common.tanh = function(arg) { + return (Math.exp(arg) - Math.exp(-arg)) / (Math.exp(arg) + Math.exp(-arg)); +}; + +gdjs.evtTools.common.cot = function(arg) { + return 1 / Math.tan(arg); +}; + +gdjs.evtTools.common.csc = function(arg) { + return 1 / Math.sin(arg); +}; + +gdjs.evtTools.common.sec = function(arg) { + return 1 / Math.cos(arg); +}; + +gdjs.evtTools.common.log10 = function(arg) { + return Math.log(arg) / Math.LN10; +}; + +gdjs.evtTools.common.log2 = function(arg) { + return Math.log(arg) / Math.LN2; +}; + +gdjs.evtTools.common.sign = function(arg) { + if (arg === 0) return 0; + + return arg > 0 ? +1 : -1; +}; + +gdjs.evtTools.common.cbrt = function(x) { + return Math.pow(x, 1 / 3); +}; + +gdjs.evtTools.common.nthroot = function(x, n) { + return Math.pow(x, 1 / n); +}; + +gdjs.evtTools.common.mod = function(x, y) { + return x - y * Math.floor(x / y); +}; + +gdjs.evtTools.common.angleDifference = function(angle1, angle2) { + return ( + gdjs.evtTools.common.mod( + gdjs.evtTools.common.mod(angle1 - angle2, 360.0) + 180.0, + 360.0 + ) - 180.0 + ); +}; + +gdjs.evtTools.common.lerp = function(a, b, x) { + return a + (b - a) * x; +}; + +gdjs.evtTools.common.trunc = function(x) { + return x | 0; +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/inputtools.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/inputtools.js new file mode 100644 index 0000000..f658c04 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/inputtools.js @@ -0,0 +1,284 @@ +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * Tools related to input ( Keyboard, mouse ), for events generated code. + * + * @memberof gdjs.evtTools + * @class input + * @static + * @private + */ +gdjs.evtTools.input = gdjs.evtTools.input || {}; + +/** + * Return true if the specified key is pressed + * + * @private + */ +gdjs.evtTools.input.isKeyPressed = function(runtimeScene, key) { + if (gdjs.evtTools.input.keysNameToCode.hasOwnProperty(key)) { + return runtimeScene.getGame().getInputManager().isKeyPressed(gdjs.evtTools.input.keysNameToCode[key]); + } + + return false; +}; + +/** + * Return true if the specified key was just released + * + * @private + */ +gdjs.evtTools.input.wasKeyReleased = function(runtimeScene, key) { + if (gdjs.evtTools.input.keysNameToCode.hasOwnProperty(key)) { + return runtimeScene.getGame().getInputManager().wasKeyReleased(gdjs.evtTools.input.keysNameToCode[key]); + } + + return false; +}; + +/** + * Return the name of the last key pressed in the game + * @private + */ +gdjs.evtTools.input.lastPressedKey = function(runtimeScene) { + //Ensure _keysCodeToName is constructed + if (gdjs.evtTools.input._keysCodeToName === undefined) { + gdjs.evtTools.input._keysCodeToName = {}; + var keysNameToCode = gdjs.evtTools.input.keysNameToCode; + for(var p in keysNameToCode) { + if (keysNameToCode.hasOwnProperty(p)) { + gdjs.evtTools.input._keysCodeToName[keysNameToCode[p]] = p; + } + } + } + + var keyCode = runtimeScene.getGame().getInputManager().getLastPressedKey(); + if (gdjs.evtTools.input._keysCodeToName.hasOwnProperty(keyCode)) { + return gdjs.evtTools.input._keysCodeToName[keyCode]; + } + + return ""; +}; + +/** + * Hashmap associated each name of a key to its keyCode. + * @memberof gdjs.evtTools + */ +gdjs.evtTools.input.keysNameToCode = { + "a": 65, + "b": 66, + "c": 67, + "d": 68, + "e": 69, + "f": 70, + "g": 71, + "h": 72, + "i": 73, + "j": 74, + "k": 75, + "l": 76, + "m": 77, + "n": 78, + "o": 79, + "p": 80, + "q": 81, + "r": 82, + "s": 83, + "t": 84, + "u": 85, + "v": 86, + "w": 87, + "x": 88, + "y": 89, + "z": 90, + + "Num0": 48, + "Num1": 49, + "Num2": 50, + "Num3": 51, + "Num4": 52, + "Num5": 53, + "Num6": 54, + "Num7": 55, + "Num8": 56, + "Num9": 57, + + "Numpad0": 96, + "Numpad1": 97, + "Numpad2": 98, + "Numpad3": 99, + "Numpad4": 100, + "Numpad5": 101, + "Numpad6": 102, + "Numpad7": 103, + "Numpad8": 104, + "Numpad9": 105, + + "RControl": 17, + "RShift": 16, + "RAlt": 18, + "LControl": 17, + "LShift": 16, + "LAlt": 18, + "LSystem": 91, + "RSystem": 91, + /*"Menu": sf::Keyboard::Menu , + "LBracket": sf::Keyboard::LBracket , + "RBracket": sf::Keyboard::RBracket , + "SemiColon": sf::Keyboard::SemiColon , + "Comma": sf::Keyboard::Comma , + "Period": sf::Keyboard::Period , + "Quote": sf::Keyboard::Quote , + "Slash": sf::Keyboard::Slash , + "BackSlash": sf::Keyboard::BackSlash , + "Tilde": sf::Keyboard::Tilde , + "Equal": sf::Keyboard::Equal , + "Dash": sf::Keyboard::Dash,*/ + "Space": 32, + "Return": 13, + "Back": 8, + "Tab": 9, + "PageUp": 33, + "PageDown": 34, + "End": 35, + "Home": 36, + "Delete": 46, + "Insert": 45, + "Escape": 27, + + "Add": 107, + "Subtract": 109, + "Multiply": 106, + "Divide": 111, + + "Left": 37, + "Up": 38, + "Right": 39, + "Down": 40, + + "F1": 112, + "F2": 113, + "F3": 114, + "F4": 115, + "F5": 116, + "F6": 117, + "F7": 118, + "F8": 119, + "F9": 120, + "F10": 121, + "F11": 122, + "F12": 123, + + "Pause": 19 +}; + +gdjs.evtTools.input.anyKeyPressed = function(runtimeScene) { + return runtimeScene.getGame().getInputManager().anyKeyPressed(); +}; + +gdjs.evtTools.input.isMouseButtonPressed = function(runtimeScene, button) { + if ( button === "Left" ) return runtimeScene.getGame().getInputManager().isMouseButtonPressed(0); + if ( button === "Right" ) return runtimeScene.getGame().getInputManager().isMouseButtonPressed(1); + if ( button === "Middle" ) return runtimeScene.getGame().getInputManager().isMouseButtonPressed(2); + return false; +}; + +gdjs.evtTools.input.isMouseButtonReleased = function(runtimeScene, button) { + if ( button === "Left" ) return runtimeScene.getGame().getInputManager().isMouseButtonReleased(0); + if ( button === "Right" ) return runtimeScene.getGame().getInputManager().isMouseButtonReleased(1); + if ( button === "Middle" ) return runtimeScene.getGame().getInputManager().isMouseButtonReleased(2); + return false; +}; + +gdjs.evtTools.input.hideCursor = function(runtimeScene) { + runtimeScene.getRenderer().hideCursor(); +}; + +gdjs.evtTools.input.showCursor = function(runtimeScene) { + runtimeScene.getRenderer().showCursor(); +}; + +gdjs.evtTools.input.getMouseWheelDelta = function(runtimeScene) { + return runtimeScene.getGame().getInputManager().getMouseWheelDelta(); +}; + +gdjs.evtTools.input.isScrollingUp = function(runtimeScene) { + return runtimeScene.getGame().getInputManager().isScrollingUp(); +}; + +gdjs.evtTools.input.isScrollingDown = function(runtimeScene) { + return runtimeScene.getGame().getInputManager().isScrollingDown(); +}; + +gdjs.evtTools.input.getMouseX = function(runtimeScene, layer, camera) { + return runtimeScene.getLayer(layer).convertCoords( + runtimeScene.getGame().getInputManager().getMouseX(), + runtimeScene.getGame().getInputManager().getMouseY())[0]; +}; + +gdjs.evtTools.input.getMouseY = function(runtimeScene, layer, camera) { + return runtimeScene.getLayer(layer).convertCoords( + runtimeScene.getGame().getInputManager().getMouseX(), + runtimeScene.getGame().getInputManager().getMouseY())[1]; +}; + +gdjs.evtTools.input._cursorIsOnObject = function(obj, runtimeScene) { + return obj.cursorOnObject(runtimeScene); +}; + +gdjs.evtTools.input.cursorOnObject = function(objectsLists, runtimeScene, accurate, inverted) { + return gdjs.evtTools.object.pickObjectsIf(gdjs.evtTools.input._cursorIsOnObject, + objectsLists, inverted, runtimeScene); +}; + +gdjs.evtTools.input.getTouchX = function(runtimeScene, identifier, layer, camera) { + return runtimeScene.getLayer(layer).convertCoords( + runtimeScene.getGame().getInputManager().getTouchX(identifier), + runtimeScene.getGame().getInputManager().getTouchY(identifier))[0]; +}; + +gdjs.evtTools.input.getTouchY = function(runtimeScene, identifier, layer, camera) { + return runtimeScene.getLayer(layer).convertCoords( + runtimeScene.getGame().getInputManager().getTouchX(identifier), + runtimeScene.getGame().getInputManager().getTouchY(identifier))[1]; +}; + +gdjs.evtTools.input.getLastTouchId = function() { + return gdjs.evtTools.input.lastTouchId || 0; +}; + +gdjs.evtTools.input.getLastEndedTouchId = function() { + return gdjs.evtTools.input.lastEndedTouchId || 0; +}; + +gdjs.evtTools.input.popStartedTouch = function(runtimeScene) { + var startedTouchId = runtimeScene.getGame().getInputManager().popStartedTouch(); + + if (startedTouchId !== undefined) { + gdjs.evtTools.input.lastTouchId = startedTouchId; + return true; + } + + return false; +}; + +gdjs.evtTools.input.popEndedTouch = function(runtimeScene) { + var endedTouchId = runtimeScene.getGame().getInputManager().popEndedTouch(); + + if (endedTouchId !== undefined) { + gdjs.evtTools.input.lastEndedTouchId = endedTouchId; + return true; + } + + return false; +}; + + + +gdjs.evtTools.input.touchSimulateMouse = function(runtimeScene, enable) { + runtimeScene.getGame().getInputManager().touchSimulateMouse(enable); +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/networktools.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/networktools.js new file mode 100644 index 0000000..4c5d3ca --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/networktools.js @@ -0,0 +1,127 @@ +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * @memberof gdjs.evtTools + * @namespace network + */ +gdjs.evtTools.network = gdjs.evtTools.network || {}; + +gdjs.evtTools.network.sendHttpRequest = function(host, uri, body, method, contentType, responseVar) +{ + try { + var xhr; + if (typeof XMLHttpRequest !== 'undefined') + xhr = new XMLHttpRequest(); + else { + var versions = ["MSXML2.XmlHttp.5.0", + "MSXML2.XmlHttp.4.0", + "MSXML2.XmlHttp.3.0", + "MSXML2.XmlHttp.2.0", + "Microsoft.XmlHttp"] + + for(var i = 0, len = versions.length; i < len; i++) { + try { + xhr = new ActiveXObject(versions[i]); + break; + } + catch(e){} + } // end for + } + + if ( xhr === undefined ) return; + + xhr.open(method, host+uri, false); + xhr.setRequestHeader( "Content-Type", contentType === "" ? "application/x-www-form-urlencoded" : contentType ); + xhr.send(body); + responseVar.setString(xhr.responseText); + } + catch(e){} +}; + +/** + * Convert a variable to JSON. + * TODO: Move to gdjs.Variable static + * @param {gdjs.Variable} variable The variable to convert to JSON + * @returns {string} The JSON string representing the variable + */ +gdjs.evtTools.network.variableStructureToJSON = function(variable) +{ + if ( !variable.isStructure() ) { + if ( variable.isNumber() ) + return JSON.stringify(variable.getAsNumber()); + else + return JSON.stringify(variable.getAsString()); + } + + var str = "{"; + var firstChild = true; + var children = variable.getAllChildren(); + for(var p in children) { + if (children.hasOwnProperty(p)) { + if ( !firstChild ) str += ","; + str += JSON.stringify(p) + ": " + gdjs.evtTools.network.variableStructureToJSON(children[p]); + + firstChild = false; + } + } + + str += "}"; + return str; +}; + +gdjs.evtTools.network.objectVariableStructureToJSON = function(object, variable) +{ + return gdjs.evtTools.network.variableStructureToJSON(variable); +} + +gdjs.evtTools.network._objectToVariable = function(obj, variable) +{ + if(!isNaN(obj)) { //Number + variable.setNumber(obj); + } + else if (typeof obj == 'string' || obj instanceof String) { + variable.setString(obj); + } + else if ( Array.isArray(obj) ) { + for(var i = 0;i= objectsCount) index = objectsCount-1; //Should never happen. + + // Find the object + var startIndex = 0; + var theChosenOne = null; + for (var listName in objectsLists.items) { + if (objectsLists.items.hasOwnProperty(listName)) { + var list = objectsLists.items[listName]; + + if (index - startIndex < list.length) { + theChosenOne = list[index - startIndex]; + break; + } + + startIndex += list.length; + } + } + + gdjs.evtTools.object.pickOnly(objectsLists, theChosenOne); + return true; +}; + +gdjs.evtTools.object.pickNearestObject = function(objectsLists, x, y, inverted) { + var bestObject = null; + var best = 0; + var first = true; + var lists = gdjs.staticArray(gdjs.evtTools.object.pickNearestObject); + objectsLists.values(lists); + for(var i = 0, len = lists.length;i= testSqDist) ) { + testSqDist = result.farSqDist; + matchObject = object; + resultX = result.farX; + resultY = result.farY; + } + } + } + } + + if ( !matchObject ) + return false; + + gdjs.evtTools.object.pickOnly(objectsLists, matchObject); + varX.setNumber(resultX); + varY.setNumber(resultY); + return true; +}; + +/** + * Do the work of creating a new object + * @private + */ +gdjs.evtTools.object.doCreateObjectOnScene = function(objectsContext, objectName, objectsLists, x, y, layer) { + // objectsContext will either be the gdjs.RuntimeScene or, in an events function, the + // eventsFunctionContext. We can't directly use runtimeScene because the object name could + // be different than the real object name (this is the case in a function. The eventsFunctionContext + // will take care of this in createObject). + var obj = objectsContext.createObject(objectName); + + if ( obj !== null ) { + //Do some extra setup + obj.setPosition(x,y); + obj.setLayer(layer); + + //Let the new object be picked by next actions/conditions. + if ( objectsLists.containsKey(objectName) ) { + objectsLists.get(objectName).push(obj); + } + } +}; + +/** + * Allows events to create a new object on a scene. + * @private + */ +gdjs.evtTools.object.createObjectOnScene = function(objectsContext, objectsLists, x, y, layer) { + gdjs.evtTools.object.doCreateObjectOnScene(objectsContext, objectsLists.firstKey(), objectsLists, x, y, layer); +}; + +/** + * Allows events to create a new object on a scene. + * @private + */ +gdjs.evtTools.object.createObjectFromGroupOnScene = function(objectsContext, objectsLists, objectName, x, y, layer) { + gdjs.evtTools.object.doCreateObjectOnScene(objectsContext, objectName, objectsLists, x, y, layer); +}; + +/** + * Allows events to get the number of objects picked. + * @private + */ +gdjs.evtTools.object.pickedObjectsCount = function(objectsLists) { + var size = 0; + var lists = gdjs.staticArray(gdjs.evtTools.object.pickedObjectsCount); + objectsLists.values(lists); + for(var i = 0, len = lists.length;i= timeInSeconds; +}; + +gdjs.evtTools.runtimeScene.timerPaused = function(runtimeScene, timerName) { + var timeManager = runtimeScene.getTimeManager(); + if ( !timeManager.hasTimer(timerName) ) return false; + + return timeManager.getTimer(timerName).isPaused(); +}; + +gdjs.evtTools.runtimeScene.resetTimer = function(runtimeScene, timerName) { + var timeManager = runtimeScene.getTimeManager(); + if ( !timeManager.hasTimer(timerName) ) + timeManager.addTimer(timerName); + else + timeManager.getTimer(timerName).reset(); +}; + +gdjs.evtTools.runtimeScene.pauseTimer = function(runtimeScene, timerName) { + var timeManager = runtimeScene.getTimeManager(); + if ( !timeManager.hasTimer(timerName) ) timeManager.addTimer(timerName); + + timeManager.getTimer(timerName).setPaused(true); +}; + +gdjs.evtTools.runtimeScene.unpauseTimer = function(runtimeScene, timerName) { + var timeManager = runtimeScene.getTimeManager(); + if ( !timeManager.hasTimer(timerName) ) timeManager.addTimer(timerName); + + return timeManager.getTimer(timerName).setPaused(false); +}; + +gdjs.evtTools.runtimeScene.removeTimer = function(runtimeScene, timerName) { + var timeManager = runtimeScene.getTimeManager(); + timeManager.removeTimer(timerName); +}; + +gdjs.evtTools.runtimeScene.getTimerElapsedTimeInSeconds = function(runtimeScene, timerName) { + var timeManager = runtimeScene.getTimeManager(); + if (!timeManager.hasTimer(timerName)) return 0; + + return timeManager.getTimer(timerName).getTime() / 1000; +}; + +gdjs.evtTools.runtimeScene.getTimeFromStartInSeconds = function(runtimeScene) { + return runtimeScene.getTimeManager().getTimeFromStart() / 1000; +}; + +gdjs.evtTools.runtimeScene.getTime = function(runtimeScene, what) { + if ( what === "timestamp" ) { + return Date.now(); + } + + var now = new Date(); + + if ( what === "hour" ) + return now.getHours(); + else if ( what === "min" ) + return now.getMinutes(); + else if ( what === "sec" ) + return now.getSeconds(); + else if ( what === "mday" ) + return now.getDate(); + else if ( what === "mon" ) + return now.getMonth(); + else if ( what === "year" ) + return now.getFullYear() - 1900; //Conform to the C way of returning years. + else if ( what === "wday" ) + return now.getDay(); + else if ( what === "yday" ) { + var start = new Date(now.getFullYear(), 0, 0); + var diff = now - start; + var oneDay = 1000 * 60 * 60 * 24; + return Math.floor(diff / oneDay); + } + + return 0; +}; + +gdjs.evtTools.runtimeScene.replaceScene = function(runtimeScene, newSceneName, clearOthers) { + if (!runtimeScene.getGame().getSceneData(newSceneName)) return; + + runtimeScene.requestChange(clearOthers ? + gdjs.RuntimeScene.CLEAR_SCENES : + gdjs.RuntimeScene.REPLACE_SCENE, newSceneName); +}; + +gdjs.evtTools.runtimeScene.pushScene = function(runtimeScene, newSceneName) { + if (!runtimeScene.getGame().getSceneData(newSceneName)) return; + + runtimeScene.requestChange(gdjs.RuntimeScene.PUSH_SCENE, newSceneName); +}; + +gdjs.evtTools.runtimeScene.popScene = function(runtimeScene) { + runtimeScene.requestChange(gdjs.RuntimeScene.POP_SCENE); +}; + +gdjs.evtTools.runtimeScene.stopGame = function(runtimeScene) { + runtimeScene.requestChange(gdjs.RuntimeScene.STOP_GAME); +}; + +gdjs.evtTools.runtimeScene.createObjectsFromExternalLayout = function(scene, externalLayout, xPos, yPos) { + var externalLayoutData = scene.getGame().getExternalLayoutData(externalLayout); + if ( externalLayoutData === null ) return; + + scene.createObjectsFrom(externalLayoutData.instances, xPos, yPos); +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/soundtools.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/soundtools.js new file mode 100644 index 0000000..33ed669 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/soundtools.js @@ -0,0 +1,163 @@ +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * Class used by events to interact with the soundManager. + * + * @memberof gdjs.evtTools + * @class sound + * @static + * @private + */ +gdjs.evtTools.sound = gdjs.evtTools.sound || {}; + +gdjs.evtTools.sound.getGlobalVolume = function(runtimeScene) { + return runtimeScene.getSoundManager().getGlobalVolume(); +}; + +gdjs.evtTools.sound.setGlobalVolume = function(runtimeScene, globalVolume) { + runtimeScene.getSoundManager().setGlobalVolume(globalVolume); +}; + +//Sounds: + +gdjs.evtTools.sound.playSound = function(runtimeScene, soundFile, loop, volume, pitch) { + runtimeScene.getSoundManager().playSound(soundFile, loop, volume, pitch); +}; + +gdjs.evtTools.sound.playSoundOnChannel = function(runtimeScene, soundFile, channel, loop, volume, pitch) { + runtimeScene.getSoundManager().playSoundOnChannel(soundFile, channel, loop, volume, pitch); +}; + +gdjs.evtTools.sound.stopSoundOnChannel = function(runtimeScene, channel) { + var sound = runtimeScene.getSoundManager().getSoundOnChannel(channel); + sound && sound.stop(); +}; + +gdjs.evtTools.sound.pauseSoundOnChannel = function(runtimeScene, channel) { + var sound = runtimeScene.getSoundManager().getSoundOnChannel(channel); + sound && sound.pause(); +}; + +gdjs.evtTools.sound.continueSoundOnChannel = function(runtimeScene, channel) { + var sound = runtimeScene.getSoundManager().getSoundOnChannel(channel); + if (sound && !sound.playing()) sound.play(); +}; + +gdjs.evtTools.sound.isSoundOnChannelPlaying = function(runtimeScene, channel) { + var sound = runtimeScene.getSoundManager().getSoundOnChannel(channel); + return sound ? sound.playing() : false; +}; + +gdjs.evtTools.sound.isSoundOnChannelPaused = function(runtimeScene, channel) { + var sound = runtimeScene.getSoundManager().getSoundOnChannel(channel); + return sound ? sound.paused() : false; +}; + +gdjs.evtTools.sound.isSoundOnChannelStopped = function(runtimeScene, channel) { + var sound = runtimeScene.getSoundManager().getSoundOnChannel(channel); + return sound ? sound.stopped() : true; +}; + +gdjs.evtTools.sound.getSoundOnChannelVolume = function(runtimeScene, channel) { + var sound = runtimeScene.getSoundManager().getSoundOnChannel(channel); + return sound ? sound.volume() * 100 : 100; +}; + +gdjs.evtTools.sound.setSoundOnChannelVolume = function(runtimeScene, channel, volume) { + var sound = runtimeScene.getSoundManager().getSoundOnChannel(channel); + sound && sound.volume(volume / 100); +}; + +gdjs.evtTools.sound.getSoundOnChannelPlayingOffset = function(runtimeScene, channel) { + var sound = runtimeScene.getSoundManager().getSoundOnChannel(channel); + return sound ? sound.seek() : 0; +}; + +gdjs.evtTools.sound.setSoundOnChannelPlayingOffset = function(runtimeScene, channel, playingOffset) { + var sound = runtimeScene.getSoundManager().getSoundOnChannel(channel); + sound && sound.seek(playingOffset); +}; + +gdjs.evtTools.sound.getSoundOnChannelPitch = function(runtimeScene, channel) { + var sound = runtimeScene.getSoundManager().getSoundOnChannel(channel); + return sound ? sound.getRate() : 1; +}; + +gdjs.evtTools.sound.setSoundOnChannelPitch = function(runtimeScene, channel, pitch) { + var sound = runtimeScene.getSoundManager().getSoundOnChannel(channel); + sound && sound.setRate(pitch); +}; + +//Musics: + +gdjs.evtTools.sound.playMusic = function(runtimeScene, soundFile, loop, volume, pitch) { + runtimeScene.getSoundManager().playMusic(soundFile, loop, volume, pitch); +}; + +gdjs.evtTools.sound.playMusicOnChannel = function(runtimeScene, soundFile, channel, loop, volume, pitch) { + runtimeScene.getSoundManager().playMusicOnChannel(soundFile, channel, loop, volume, pitch); +}; + +gdjs.evtTools.sound.stopMusicOnChannel = function(runtimeScene, channel) { + var music = runtimeScene.getSoundManager().getMusicOnChannel(channel); + music && music.stop(); +}; + +gdjs.evtTools.sound.pauseMusicOnChannel = function(runtimeScene, channel) { + var music = runtimeScene.getSoundManager().getMusicOnChannel(channel); + music && music.pause(); +}; + +gdjs.evtTools.sound.continueMusicOnChannel = function(runtimeScene, channel) { + var music = runtimeScene.getSoundManager().getMusicOnChannel(channel); + if (music && !music.playing()) music.play(); +}; + +gdjs.evtTools.sound.isMusicOnChannelPlaying = function(runtimeScene, channel) { + var music = runtimeScene.getSoundManager().getMusicOnChannel(channel); + return music ? music.playing() : false; +}; + +gdjs.evtTools.sound.isMusicOnChannelPaused = function(runtimeScene, channel) { + var music = runtimeScene.getSoundManager().getMusicOnChannel(channel); + return music ? music.paused() : false; +}; + +gdjs.evtTools.sound.isMusicOnChannelStopped = function(runtimeScene, channel) { + var music = runtimeScene.getSoundManager().getMusicOnChannel(channel); + return music ? music.stopped() : true; +}; + +gdjs.evtTools.sound.getMusicOnChannelVolume = function(runtimeScene, channel) { + var music = runtimeScene.getSoundManager().getMusicOnChannel(channel); + return music ? music.volume() * 100 : 100; +}; + +gdjs.evtTools.sound.setMusicOnChannelVolume = function(runtimeScene, channel, volume) { + var music = runtimeScene.getSoundManager().getMusicOnChannel(channel); + music && music.volume(volume / 100); +}; + +gdjs.evtTools.sound.getMusicOnChannelPlayingOffset = function(runtimeScene, channel) { + var music = runtimeScene.getSoundManager().getMusicOnChannel(channel); + return music ? music.seek() : 0; +}; + +gdjs.evtTools.sound.setMusicOnChannelPlayingOffset = function(runtimeScene, channel, playingOffset) { + var music = runtimeScene.getSoundManager().getMusicOnChannel(channel); + music && music.seek(playingOffset); +}; + +gdjs.evtTools.sound.getMusicOnChannelPitch = function(runtimeScene, channel) { + var music = runtimeScene.getSoundManager().getMusicOnChannel(channel); + return music ? music.getRate() : 1; +}; + +gdjs.evtTools.sound.setMusicOnChannelPitch = function(runtimeScene, channel, pitch) { + var music = runtimeScene.getSoundManager().getMusicOnChannel(channel); + music && music.setRate(pitch); +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/storagetools.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/storagetools.js new file mode 100644 index 0000000..bdedd10 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/storagetools.js @@ -0,0 +1,254 @@ +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * Tools related to storage, for events generated code. + * + * @memberof gdjs.evtTools + * @namespace storage + * @private + */ +gdjs.evtTools.storage = gdjs.evtTools.storage || { + loadedFiles: new Hashtable(), + localStorage: typeof cc !== 'undefined' ? cc.sys.localStorage : localStorage, + fileUtils: null //Disabled for now +}; + +/** + * Load into memory a JSON object stored in the local storage object + * provided by the browser. + * The JSON object is named GDJS_filename in the localStorage object. + * + * @param filename {String} The name of the JSON object + */ +gdjs.evtTools.storage.loadJSONFileFromStorage = function(filename) { + if ( gdjs.evtTools.storage.loadedFiles.containsKey(filename) ) + return; //Already loaded. + + var rawStr = null; + if (gdjs.evtTools.storage.fileUtils) { + var fileUtils = gdjs.evtTools.storage.fileUtils; + + var fullPath = jsb.fileUtils.getWritablePath() + filename; + if (jsb.fileUtils.isFileExist(fullPath)) { + rawStr = jsb.fileUtils.getStringFromFile(fullPath); + } else { + console.log('File "' + filename + '" does not exist.'); + } + } else { + var localStorage = gdjs.evtTools.storage.localStorage; + rawStr = localStorage.getItem("GDJS_"+filename); + } + + try { + if ( rawStr !== null ) + gdjs.evtTools.storage.loadedFiles.put(filename, JSON.parse(rawStr)); + else + gdjs.evtTools.storage.loadedFiles.put(filename, {}); + } + catch(e) { + console.log('Unable to load data from "' + filename + '"!'); + gdjs.evtTools.storage.loadedFiles.put(filename, {}); + } +}; + +/** + * Unload from memory a JSON object, which is then stored in the local storage + * object provided by the browser. + * The JSON object is named GDJS_filename in the localStorage object. + * + * @param filename {String} The name of the JSON object + */ +gdjs.evtTools.storage.unloadJSONFile = function(filename) { + if ( !gdjs.evtTools.storage.loadedFiles.containsKey(filename) ) + return; //Not loaded. + + var jsonObject = gdjs.evtTools.storage.loadedFiles.get(filename); + var rawStr = JSON.stringify(jsonObject); + if (gdjs.evtTools.storage.fileUtils) { + var fileUtils = gdjs.evtTools.storage.fileUtils; + + var fullPath = jsb.fileUtils.getWritablePath() + filename; + if (!jsb.fileUtils.writeToFile(rawStr, fullPath)) { + console.log('Unable to save data to file "' + filename + '"!'); + } + + } else { + var localStorage = gdjs.evtTools.storage.localStorage; + try { + localStorage.setItem("GDJS_"+filename, rawStr); + } catch(e) { + //TODO: Handle storage error. + console.log('Unable to save data to localStorage for "' + filename + '"!'); + } + } + + gdjs.evtTools.storage.loadedFiles.remove(filename); +}; + +gdjs.evtTools.storage.clearJSONFile = function(filename) { + var notPermanentlyLoaded = false; + if ( !gdjs.evtTools.storage.loadedFiles.containsKey(filename) ) { + notPermanentlyLoaded = true; + gdjs.evtTools.storage.loadJSONFileFromStorage(filename); + } + + var JSONobject = gdjs.evtTools.storage.loadedFiles.get(filename); + for ( var p in JSONobject ) { + if ( JSONobject.hasOwnProperty(p) ) + delete JSONobject[p]; + } + + if ( notPermanentlyLoaded ) gdjs.evtTools.storage.unloadJSONFile(filename); + return true; +}; + +gdjs.evtTools.storage.elementExistsInJSONFile = function(filename, element) { + var notPermanentlyLoaded = false; + if ( !gdjs.evtTools.storage.loadedFiles.containsKey(filename) ) { + notPermanentlyLoaded = true; + gdjs.evtTools.storage.loadJSONFileFromStorage(filename); + } + + var elemArray = element.split("/"); + var currentElem = gdjs.evtTools.storage.loadedFiles.get(filename); + for (var i =0;i= 0 ) + return str.substr(start, len); + + return ""; +}; + +/** + * Return a new string containing the character at the specified position. + * @private + */ +gdjs.evtTools.string.strAt = function(str, start) { + if ( start < str.length && start >= 0 ) + return str.substr(start, 1); + + return ""; +}; + +/** + * Return the string repeated. + * @private + */ +gdjs.evtTools.string.strRepeat = function(str, count) { + var result = ""; + for ( var i = 0; i < count; i++ ) + result += str; + + return result; +} + +/** + * Return the length of the string + * @private + */ +gdjs.evtTools.string.strLen = function(str) { + return str.length; +}; + +/** + * Search in a string + * @private + */ +gdjs.evtTools.string.strFind = function(str, what) { + return str.indexOf(what); +}; + +/** + * Reverse search in a string + * @private + */ +gdjs.evtTools.string.strRFind = function(str, what) { + return str.lastIndexOf(what); +}; + +/** + * Search in a string, starting from a specified position. + * @private + */ +gdjs.evtTools.string.strFindFrom = function(str, what, pos) { + return str.indexOf(what, pos); +}; + +/** + * Reverse search in a string, starting from a specified position. + * @private + */ +gdjs.evtTools.string.strRFindFrom = function(str, what, pos) { + return str.lastIndexOf(what, pos); +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/windowtools.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/windowtools.js new file mode 100644 index 0000000..7997dbc --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/events-tools/windowtools.js @@ -0,0 +1,80 @@ +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * Tools related to window, for events generated code. + * @memberof gdjs.evtTools + * @class window + * @static + * @private + */ +gdjs.evtTools.window = gdjs.evtTools.window || {}; + +gdjs.evtTools.window.setMargins = function(runtimeScene, top, right, bottom, left) { + runtimeScene.getGame().getRenderer().setMargins(top, right, bottom, left); +}; + +gdjs.evtTools.window.setFullScreen = function(runtimeScene, enable, keepAspectRatio) { + runtimeScene.getGame().getRenderer().keepAspectRatio(keepAspectRatio); + runtimeScene.getGame().getRenderer().setFullScreen(enable); +}; + +gdjs.evtTools.window.setWindowSize = function(runtimeScene, width, height, updateGameResolution) { + runtimeScene.getGame().getRenderer().setWindowSize(width, height); + if (updateGameResolution) { + runtimeScene.getGame().setGameResolutionSize(width, height); + } +}; + +gdjs.evtTools.window.centerWindow = function(runtimeScene) { + runtimeScene.getGame().getRenderer().centerWindow(); +}; + +gdjs.evtTools.window.setGameResolutionSize = function(runtimeScene, width, height) { + runtimeScene.getGame().setGameResolutionSize(width, height); +}; + +gdjs.evtTools.window.setGameResolutionResizeMode = function(runtimeScene, resizeMode) { + runtimeScene.getGame().setGameResolutionResizeMode(resizeMode); +}; + +gdjs.evtTools.window.setAdaptGameResolutionAtRuntime = function(runtimeScene, enable) { + runtimeScene.getGame().setAdaptGameResolutionAtRuntime(enable); +}; + +gdjs.evtTools.window.setWindowTitle = function(runtimeScene, title) { + runtimeScene.getGame().getRenderer().setWindowTitle(title); +}; + +gdjs.evtTools.window.getWindowTitle = function(runtimeScene) { + runtimeScene.getGame().getRenderer().getWindowTitle(); +}; + +gdjs.evtTools.window.getWindowInnerWidth = function() { + if (gdjs.RuntimeGameRenderer && gdjs.RuntimeGameRenderer.getWindowInnerWidth) + return gdjs.RuntimeGameRenderer.getWindowInnerWidth(); + + return (typeof window !== "undefined") ? window.innerWidth : 800; +}; + +gdjs.evtTools.window.getWindowInnerHeight = function() { + if (gdjs.RuntimeGameRenderer && gdjs.RuntimeGameRenderer.getWindowInnerHeight) + return gdjs.RuntimeGameRenderer.getWindowInnerHeight(); + + return (typeof window !== "undefined") ? window.innerHeight : 800; +}; + +gdjs.evtTools.window.getGameResolutionWidth = function(runtimeScene) { + return runtimeScene.getGame().getGameResolutionWidth(); +}; + +gdjs.evtTools.window.getGameResolutionHeight = function(runtimeScene) { + return runtimeScene.getGame().getGameResolutionHeight(); +}; + +gdjs.evtTools.window.openURL = function(url, runtimeScene) { + return runtimeScene.getGame().getRenderer().openURL(url); +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/fontfaceobserver-font-manager/fontfaceobserver-font-manager.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/fontfaceobserver-font-manager/fontfaceobserver-font-manager.js new file mode 100644 index 0000000..94e850c --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/fontfaceobserver-font-manager/fontfaceobserver-font-manager.js @@ -0,0 +1,128 @@ +/* + * GDevelop JS Platform + * Copyright 2013-present Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * FontFaceObserverFontManager loads fonts (using fontfaceobserver library) + * from the game resources (see `loadFonts`), and allow to access to + * the font families of the loaded fonts during the game (see `getFontFamily`). + * + * "@font-face" declarations must be have been added separately in the index.html + * (or any CSS file). + * + * @class FontFaceObserverFontManager + * @memberof gdjs + * @param {Object} resources The resources data of the game. + */ +gdjs.FontFaceObserverFontManager = function(resources) +{ + this._resources = resources; + this._loadedFontFamily = {}; // Associate font resource names to the loaded font family + this._loadedFonts = {}; // Associate font resource names to the resources, for faster access +}; + +gdjs.FontManager = gdjs.FontFaceObserverFontManager; //Register the class to let the engine use it. + +/** + * Return the font family associated to the specified font resource name. + * The font resource must have been loaded before. If that's not the case, + * a font family will be returned but without guarantee of it being loaded (to + * keep compatibility with GDevelop 5.0-beta56 and previous). + * + * @param {string} resourceName The name of the resource to get. + * @returns {string} The font family to be used for this font resource, + * or "Arial" if `resourceName` is empty. + */ +gdjs.FontFaceObserverFontManager.prototype.getFontFamily = function(resourceName) { + if (this._loadedFontFamily[resourceName]) { + return this._loadedFontFamily[resourceName]; + } + + return resourceName ? + gdjs.FontFaceObserverFontManager._getFontFamilyFromFilename(resourceName) : + 'Arial'; +} + +/** + * Return the font file associated to the specified font resource name. + * The font resource must have been loaded before. If that's not the case, + * the resource name will be returned (to + * keep compatibility with GDevelop 5.0-beta56 and previous). + * + * Should only be useful for renderers running on a non HTML5/non browser environment. + * + * @param {string} resourceName The name of the resource to get. + * @returns {string} The file of the font resource. + */ +gdjs.FontFaceObserverFontManager.prototype.getFontFile = function(resourceName) { + if (this._loadedFonts[resourceName]) { + return this._loadedFonts[resourceName].file || ''; + } + + return resourceName; +} + +/** + * Return the font family for a given filename. + * Should be kept in sync with the declaration of "@font-face" during exports. + * + * @private + * @param {string} filename The filename of the font + * @returns {string} The font family to be used for this font resource. + */ +gdjs.FontFaceObserverFontManager._getFontFamilyFromFilename = function(filename) { + return "gdjs_font_" + filename; +} + +/** + * Load the specified resources, so that fonts are loaded and can then be + * used by using the font family returned by getFontFamily. + * @param onProgress Callback called each time a new file is loaded. + * @param onComplete Callback called when loading is done. + * @param resources The resources to be loaded. If not specified, will load the resources + * specified in the FontFaceObserverFontManager constructor. + */ +gdjs.FontFaceObserverFontManager.prototype.loadFonts = function(onProgress, onComplete, resources) { + resources = resources || this._resources; + + //Construct the list of files to be loaded. + //For one loaded file, it can have one or more resources + //that use it. + var filesResources = {}; + for(var i = 0, len = resources.length;iparseInt(a[1],10)}else C=!1;return C}function J(){null===F&&(F=!!document.fonts);return F} +function K(){if(null===E){var a=document.createElement("div");try{a.style.font="condensed 100px sans-serif"}catch(b){}E=""!==a.style.font}return E}function L(a,b){return[a.style,a.weight,K()?a.stretch:"","100px",b].join(" ")} +A.prototype.load=function(a,b){var c=this,k=a||"BESbswy",q=0,D=b||3E3,H=(new Date).getTime();return new Promise(function(a,b){if(J()&&!G()){var M=new Promise(function(a,b){function e(){(new Date).getTime()-H>=D?b():document.fonts.load(L(c,'"'+c.family+'"'),k).then(function(c){1<=c.length?a():setTimeout(e,25)},function(){b()})}e()}),N=new Promise(function(a,c){q=setTimeout(c,D)});Promise.race([N,M]).then(function(){clearTimeout(q);a(c)},function(){b(c)})}else m(function(){function u(){var b;if(b=-1!= +f&&-1!=g||-1!=f&&-1!=h||-1!=g&&-1!=h)(b=f!=g&&f!=h&&g!=h)||(null===B&&(b=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent),B=!!b&&(536>parseInt(b[1],10)||536===parseInt(b[1],10)&&11>=parseInt(b[2],10))),b=B&&(f==v&&g==v&&h==v||f==w&&g==w&&h==w||f==x&&g==x&&h==x)),b=!b;b&&(d.parentNode&&d.parentNode.removeChild(d),clearTimeout(q),a(c))}function I(){if((new Date).getTime()-H>=D)d.parentNode&&d.parentNode.removeChild(d),b(c);else{var a=document.hidden;if(!0===a||void 0===a)f=e.a.offsetWidth, +g=n.a.offsetWidth,h=p.a.offsetWidth,u();q=setTimeout(I,50)}}var e=new r(k),n=new r(k),p=new r(k),f=-1,g=-1,h=-1,v=-1,w=-1,x=-1,d=document.createElement("div");d.dir="ltr";t(e,L(c,"sans-serif"));t(n,L(c,"serif"));t(p,L(c,"monospace"));d.appendChild(e.a);d.appendChild(n.a);d.appendChild(p.a);document.body.appendChild(d);v=e.a.offsetWidth;w=n.a.offsetWidth;x=p.a.offsetWidth;I();z(e,function(a){f=a;u()});t(e,L(c,'"'+c.family+'",sans-serif'));z(n,function(a){g=a;u()});t(n,L(c,'"'+c.family+'",serif')); +z(p,function(a){h=a;u()});t(p,L(c,'"'+c.family+'",monospace'))})})};"object"===typeof module?module.exports=A:(window.FontFaceObserver=A,window.FontFaceObserver.prototype.load=A.prototype.load);}()); +})() \ No newline at end of file diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/force.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/force.js new file mode 100644 index 0000000..1df3450 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/force.js @@ -0,0 +1,135 @@ +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * A vector used to move objects. + * + * @memberof gdjs + * @class Force + * @param {number} x The initial x component + * @param {number} y The initial y component + * @param {number} multiplier The multiplier (0 for a force that disappear on next frame, 1 for a permanent force) + */ +gdjs.Force = function(x,y, multiplier) +{ + this._x = x || 0; + this._y = y || 0; + this._angle = Math.atan2(y,x)*180/Math.PI; + this._length = Math.sqrt(x*x+y*y); + this._dirty = false; + this._multiplier = multiplier; +} + +/** + * Returns the X component of the force. + */ +gdjs.Force.prototype.getX = function() { + return this._x; +} + +/** + * Returns the Y component of the force. + */ +gdjs.Force.prototype.getY = function() { + return this._y; +} + +/** + * Set the x component of the force. + * @param {number} x The new X component + */ +gdjs.Force.prototype.setX = function(x) { + this._x = x; + this._dirty = true; +} + +/** + * Set the y component of the force. + * @param {number} y The new Y component + */ +gdjs.Force.prototype.setY = function(y) { + this._y = y; + this._dirty = true; +} + +/** + * Set the angle of the force. + * @param {number} angle The new angle + */ +gdjs.Force.prototype.setAngle = function(angle) { + + if ( this._dirty ) { + this._length = Math.sqrt(this._x*this._x+this._y*this._y); + this._dirty = false; + } + + this._angle = angle; + var angleInRadians = angle/180*Math.PI; + this._x = Math.cos(angleInRadians)*this._length; + this._y = Math.sin(angleInRadians)*this._length; +} + +/** + * Set the length of the force. + * @param {number} len The length + */ +gdjs.Force.prototype.setLength = function(len) { + + if ( this._dirty ) { + this._angle = Math.atan2(this._y, this._x)*180/Math.PI; + this._dirty = false; + } + + this._length = len; + var angleInRadians = this._angle/180*Math.PI; + this._x = Math.cos(angleInRadians)*this._length; + this._y = Math.sin(angleInRadians)*this._length; +} + +/** + * Get the angle of the force + */ +gdjs.Force.prototype.getAngle = function() { + if ( this._dirty ) { + this._angle = Math.atan2(this._y, this._x)*180/Math.PI; + this._length = Math.sqrt(this._x*this._x+this._y*this._y); + + this._dirty = false; + } + + return this._angle; +} + + +/** + * Get the length of the force + */ +gdjs.Force.prototype.getLength = function() { + if ( this._dirty ) { + this._angle = Math.atan2(this._y, this._x)*180/Math.PI; + this._length = Math.sqrt(this._x*this._x+this._y*this._y); + + this._dirty = false; + } + + return this._length; +}; + +/** + * Return 1 (true) if the force is permanent, 0 (false) if it is instant. + * @returns {number} + */ +gdjs.Force.prototype.getMultiplier = function() { + return this._multiplier; +}; + +/** + * Set if the force multiplier. + * @param {number} multiplier The new value + */ +gdjs.Force.prototype.setMultiplier = function(multiplier) { + this._multiplier = multiplier; +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/gd-splash-image.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/gd-splash-image.js new file mode 100644 index 0000000..4eff0dc --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/gd-splash-image.js @@ -0,0 +1 @@ +gdjs.splashImage = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhwAAADBCAMAAACzH5mWAAACYVBMVEUAAAD///////////////////////////9kqOP///9nrOP///////////////////////////////////////////////84gMpZntv///87gspGi/X///89hM1Zntz///////85gcr///9QlNdOkNr///////9Ahs7///////8/hc3///////9Fhs3///86gss7g8w/hs3///////////87gsv///88g8z///9Bhs5NktT///9KkM7///////89g8z///////8+hc7///////9Bh87///85gsv///////8+hc3///87g8z///////////8/hc3///////8+hc3///9Bh9BOktY9hM3///8/hc7///9Ahs7///9coN3///8/hs7///9Ah8////9Bhs3///9mq+M+hc1UmdlAh83///9UmNn///////////9ChslHiNT///89hM3///////////9Sl9j///9Vmdk/hc7///9FjNH///9Umdn///9YndxlquP///9WmtplquJkqeJhpuE+htD///9RlddYnNs9hMw9hM1mrOT///9lquI+hc5Tl9llq+RjpuH///9nrONVmdlmq+NPlNZmq+P///////9Tl9hjqeJPk9ZZnttQldZiqOFmrONQlddfpN5jp+H///9Qk9dXnNthpuBnrORZn9xlq+NmquJjqeFdot5WmtlnreNmreNOk9ZYnds3f8n///9nrONVmdlTmNhYndtQlNZmq+NkqeJWm9pSltdNktVRlddhpuBcod1bn9xOk9VjqOFfpN9eot49hMxgpd9Znts7g8th3d+dAAAAs3RSTlMAONj2SASTLZmM3d17p1Py6ohNRDL9mf7MR+0CF9a7DCD8xKoM+rB6VxysdV4gE/frpHAoBvPv4ctAEQkHAvjk4ce2hIBPJPrl0L8m8NSso5ARuLF4SRjFtIhpZD0v15xmWUI19Ly6fW9sY1BANCon7NvNwLu2nIKBYzo5+unVq5eUgVtDMC/7+dnNzKCdl2soIg/37+zqx49b39XFoZ+KdnRyUEtAw8Czr6M3687KbmdZzQSiAnEAABAaSURBVHja7NoxioNQFIXhWwa3YOsqwqwjneVbh6DpHoJBxMIiMhYjMZA0t4ntLGyygpmB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' diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/gd.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/gd.js new file mode 100644 index 0000000..6c389de --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/gd.js @@ -0,0 +1,379 @@ +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * The `gdjs` namespace contains all classes and objects of the game engine. + * @namespace + */ +window.gdjs = { + objectsTypes: new Hashtable(), + behaviorsTypes: new Hashtable(), + /** + * Contains functions used by events (this is a convention only, functions can actually + * by anywhere). + * @namespace + * @memberOf gdjs + */ + evtTools: {}, + callbacksFirstRuntimeSceneLoaded: [], + callbacksRuntimeSceneLoaded: [], + callbacksRuntimeScenePreEvents: [], + callbacksRuntimeScenePostEvents: [], + callbacksRuntimeScenePaused: [], + callbacksRuntimeSceneResumed: [], + callbacksRuntimeSceneUnloading: [], + callbacksRuntimeSceneUnloaded: [], + callbacksObjectDeletedFromScene: [], +}; + +/** + * Convert a rgb color value to a hex string. + * + * No "#" or "0x" are added. + * @param {number} r Red + * @param {number} g Green + * @param {number} b Blue + * @returns {string} + */ +gdjs.rgbToHex = function(r, g, b) { + return '' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1); +}; + +/** + * Convert a rgb color value to a hex value. + * @param {number} r Red + * @param {number} g Green + * @param {number} b Blue + * @returns {number} + */ +gdjs.rgbToHexNumber = function(r, g, b) { + return (r << 16) + (g << 8) + b; +}; + +/** + * Get a random integer between 0 and max. + * @param {number} max The maximum value (inclusive). + * @returns {number} + */ +gdjs.random = function(max) { + if (max <= 0) return 0; + return Math.floor(Math.random() * (max + 1)); +}; + +/** + * Get a random integer between min and max. + * @param {number} min The minimum value (inclusive). + * @param {number} max The maximum value (inclusive). + * @returns {number} + */ +gdjs.randomInRange = function(min, max) { + return min + gdjs.random(max - min); // return min if min >= max +}; + +/** + * Get a random float in the range 0 to less than max (inclusive of 0, but not max). + * @param {number} max The maximum value (exclusive). + * @returns {number} + */ +gdjs.randomFloat = function(max) { + if (max <= 0) return 0; + return Math.random() * max; +}; + +/** + * Get a random float between min and max + * @param {number} min The minimum value (inclusive). + * @param {number} max The maximum value (exclusive). + * @returns {number} + */ +gdjs.randomFloatInRange = function(min, max) { + return min + gdjs.randomFloat(max - min); // return min if min >= max +}; + +/** + * Get a random number between min and max in steps + * @param {number} min The minimum value (inclusive). + * @param {number} max The maximum value (inclusive). + * @param {number} step The interval between each value. + * @returns {number} + */ +gdjs.randomWithStep = function(min, max, step) { + if (step <= 0) return min + gdjs.random(max - min); + return min + gdjs.random(Math.floor((max - min) / step)) * step; // return min if min >= max +}; + +/** + * Convert an angle in degrees to radians. + * @param {number} angleInDegrees The angle in degrees. + * @returns {number} + */ +gdjs.toRad = function(angleInDegrees) { + return (angleInDegrees / 180) * 3.14159; +}; + +/** + * Convert an angle in radians to degrees. + * @param {number} angleInRadians The angle in radians. + * @returns {number} + */ +gdjs.toDegrees = function(angleInRadians) { + return (angleInRadians * 180) / 3.14159; +}; + +/** + * A Constructor for a {@link gdjs.RuntimeObject}. + * @name RuntimeObjectConstructor + * @function + * @param {gdjs.RuntimeScene} runtimeScene The {@link gdjs.RuntimeScene} the object belongs to. + * @param {ObjectData} objectData The initial properties of the object. + */ + +/** + * Register a runtime object (class extending {@link gdjs.RuntimeObject}) that can be used in a scene. + * + * The name of the type of the object must be complete, with the namespace if any. For + * example, if you are providing a Text object in the TextObject extension, the full name + * of the type of the object is "TextObject::Text". + * + * @param {string} objectTypeName The name of the type of the Object. + * @param {RuntimeObjectConstructor} Ctor The constructor of the Object. + */ +gdjs.registerObject = function(objectTypeName, Ctor) { + gdjs.objectsTypes.put(objectTypeName, Ctor); +}; + +/** + * A Constructor for a {@link gdjs.RuntimeBehavior}. + * @name RuntimeBehaviorConstructor + * @function + * @param {gdjs.RuntimeScene} runtimeScene The scene owning the object of the behavior + * @param {BehaviorData} behaviorData The properties used to setup the behavior + * @param {gdjs.RuntimeObject} owner The object owning the behavior + */ + +/** + * Register a runtime behavior (class extending {@link gdjs.RuntimeBehavior}) that can be used by a + * {@link gdjs.RuntimeObject}. + * + * The type of the behavior must be complete, with the namespace of the extension. For + * example, if you are providing a Draggable behavior in the DraggableBehavior extension, + * the full name of the type of the behavior is "DraggableBehavior::Draggable". + * + * @param {string} behaviorTypeName The name of the type of the behavior. + * @param {RuntimeBehaviorConstructor} Ctor The constructor of the Object. + */ +gdjs.registerBehavior = function(behaviorTypeName, Ctor) { + gdjs.behaviorsTypes.put(behaviorTypeName, Ctor); +}; + +/** + * Register a function to be called when the first {@link gdjs.RuntimeScene} is loaded, after + * resources loading is done. This can be considered as the "start of the game". + * + * @param {Function} callback The function to be called. + */ +gdjs.registerFirstRuntimeSceneLoadedCallback = function(callback) { + gdjs.callbacksFirstRuntimeSceneLoaded.push(callback); +}; + +/** + * Register a function to be called when a scene is loaded. + * @param {Function} callback The function to be called. + */ +gdjs.registerRuntimeSceneLoadedCallback = function(callback) { + gdjs.callbacksRuntimeSceneLoaded.push(callback); +}; + +/** + * Register a function to be called each time a scene is stepped (i.e: at every frame), + * before events are run. + * @param {Function} callback The function to be called. + */ +gdjs.registerRuntimeScenePreEventsCallback = function(callback) { + gdjs.callbacksRuntimeScenePreEvents.push(callback); +}; + +/** + * Register a function to be called each time a scene is stepped (i.e: at every frame), + * after events are run and before rendering. + * @param {Function} callback The function to be called. + */ +gdjs.registerRuntimeScenePostEventsCallback = function(callback) { + gdjs.callbacksRuntimeScenePostEvents.push(callback); +}; + +/** + * Register a function to be called when a scene is paused. + * @param {Function} callback The function to be called. + */ +gdjs.registerRuntimeScenePausedCallback = function(callback) { + gdjs.callbacksRuntimeScenePaused.push(callback); +}; + +/** + * Register a function to be called when a scene is resumed. + * @param {Function} callback The function to be called. + */ +gdjs.registerRuntimeSceneResumedCallback = function(callback) { + gdjs.callbacksRuntimeSceneResumed.push(callback); +}; + +/** + * Register a function to be called when a scene unload started. This is + * before the object deletion and renderer destruction. It is safe to + * manipulate these. It is **not** be safe to release resources as other + * callbacks might do operations on objects or the scene. + * + * @param {Function} callback The function to be called. + */ +gdjs.registerRuntimeSceneUnloadingCallback = function(callback) { + gdjs.callbacksRuntimeSceneUnloading.push(callback); +}; + +/** + * Register a function to be called when a scene is unloaded. The objects + * and renderer are now destroyed - it is **not** safe to do anything apart + * from releasing resources. + * + * @param {Function} callback The function to be called. + */ +gdjs.registerRuntimeSceneUnloadedCallback = function(callback) { + gdjs.callbacksRuntimeSceneUnloaded.push(callback); +}; + +/** + * Register a function to be called when an object is deleted from a scene. + * @param {Function} callback The function to be called. + */ +gdjs.registerObjectDeletedFromSceneCallback = function(callback) { + gdjs.callbacksObjectDeletedFromScene.push(callback); +}; + +/** + * Keep this function until we're sure now client is using it anymore. + * @deprecated + * @private + */ +gdjs.registerGlobalCallbacks = function() { + console.warning( + "You're calling gdjs.registerGlobalCallbacks. This method is now useless and you must not call it anymore." + ); +}; + +/** + * Remove all the global callbacks that were registered previously. + * + * Should only be used for testing - this should never be used at runtime. + */ +gdjs.clearGlobalCallbacks = function() { + gdjs.callbacksFirstRuntimeSceneLoaded = []; + gdjs.callbacksRuntimeSceneLoaded = []; + gdjs.callbacksRuntimeScenePreEvents = []; + gdjs.callbacksRuntimeScenePostEvents = []; + gdjs.callbacksRuntimeScenePaused = []; + gdjs.callbacksRuntimeSceneResumed = []; + gdjs.callbacksRuntimeSceneUnloading = []; + gdjs.callbacksRuntimeSceneUnloaded = []; + gdjs.callbacksObjectDeletedFromScene = []; +}; + +/** + * Get the constructor of an object. + * + * @param {string} name The name of the type of the object. + * @returns {ObjectCtor} + */ +gdjs.getObjectConstructor = function(name) { + if (name !== undefined && gdjs.objectsTypes.containsKey(name)) + return gdjs.objectsTypes.get(name); + + console.warn('Object type "' + name + '" was not found.'); + return gdjs.objectsTypes.get(''); //Create a base empty runtime object. +}; + +/** + * Get the constructor of a behavior. + * + * @param {string} name The name of the type of the behavior. + * @returns {BehaviorCtor} + */ +gdjs.getBehaviorConstructor = function(name) { + if (name !== undefined && gdjs.behaviorsTypes.containsKey(name)) + return gdjs.behaviorsTypes.get(name); + + console.warn('Behavior type "' + name + '" was not found.'); + return gdjs.behaviorsTypes.get(''); //Create a base empty runtime behavior. +}; + +/** + * Create a static array that won't need a new allocation each time it's used. + * @param {any} owner The owner of the Array. + * @returns {Array} + */ +gdjs.staticArray = function(owner) { + owner._staticArray = owner._staticArray || []; + return owner._staticArray; +}; + +/** + * Create a second static array that won't need a new allocation each time it's used. + * @param {any} owner The owner of the Array. + * @returns {Array} + */ +gdjs.staticArray2 = function(owner) { + owner._staticArray2 = owner._staticArray2 || []; + return owner._staticArray2; +}; + +/** + * Create a static object that won't need a new allocation each time it's used. + * @param {any} owner The owner of the Array. + * @returns {Object} + */ +gdjs.staticObject = function(owner) { + owner._staticObject = owner._staticObject || {}; + return owner._staticObject; +}; + +/** + * Return a new array of objects that is the concatenation of all the objects passed + * as parameters. + * @param objectsLists + * @returns {Array} + */ +gdjs.objectsListsToArray = function(objectsLists) { + var lists = gdjs.staticArray(gdjs.objectsListsToArray); + objectsLists.values(lists); + + var result = []; + for (var i = 0; i < lists.length; ++i) { + var arr = lists[i]; + for (var k = 0; k < arr.length; ++k) { + result.push(arr[k]); + } + } + return result; +}; + +Array.prototype.remove = function(from) { + //Adapted from the nice article available at + //https://www.scirra.com/blog/76/how-to-write-low-garbage-real-time-javascript + for (var i = from, len = this.length - 1; i < len; i++) this[i] = this[i + 1]; + + this.length = len; +}; + +Array.prototype.createFrom = function(arr) { + var len = arr.length; + for (var i = 0; i < len; ++i) { + this[i] = arr[i]; + } + this.length = len; +}; + +//Make sure console.warn and console.error are available. +console.warn = console.warn || console.log; +console.error = console.error || console.log; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/howler-sound-manager/howler-sound-manager.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/howler-sound-manager/howler-sound-manager.js new file mode 100644 index 0000000..e9e2641 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/howler-sound-manager/howler-sound-manager.js @@ -0,0 +1,419 @@ +/* + * GDevelop JS Platform + * Copyright 2013-present Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * A thin wrapper around a Howl object with: + * * Extra methods `paused`, `stopped`, `getRate`/`setRate` and `canBeDestroyed` methods. + * * Automatic clamping when calling `setRate` to ensure a valid value is passed to Howler.js. + * + * See https://github.com/goldfire/howler.js#methods for the full documentation. + * + * @memberof gdjs + * @class HowlerSound + */ +gdjs.HowlerSound = function(o) { + Howl.call(this, o); + this._paused = false; + this._stopped = true; + this._canBeDestroyed = false; + this._rate = o.rate || 1; + + //Add custom events listener to keep + //track of the sound status. + var that = this; + this.on('end', function() { + if (!that.loop()) { + that._canBeDestroyed = true; + that._paused = false; + that._stopped = true; + } + }); + this.on('playerror', function(id, error) { + console.error( + "Can't play a sound, considering it as stopped. Error is:", + error + ); + that._paused = false; + that._stopped = true; + }); + + // Track play/pause event to be sure the status is + // sync'ed with the sound - though this should be redundant + // with `play`/`pause` methods already doing that. Keeping + // that to be sure that the status is always correct. + this.on('play', function() { + that._paused = false; + that._stopped = false; + }); + this.on('pause', function() { + that._paused = true; + that._stopped = false; + }); +}; +gdjs.HowlerSound.prototype = Object.create(Howl.prototype); + +// Redefine `stop`/`play`/`pause` to ensure the status of the sound +// is immediately updated (so that calling `stopped` just after +// `play` will return false). + +gdjs.HowlerSound.prototype.stop = function() { + this._paused = false; + this._stopped = true; + return Howl.prototype.stop.call(this); +}; +gdjs.HowlerSound.prototype.play = function() { + this._paused = false; + this._stopped = false; + return Howl.prototype.play.call(this); +}; +gdjs.HowlerSound.prototype.pause = function() { + this._paused = true; + this._stopped = false; + return Howl.prototype.pause.call(this); +}; + +// Add methods to query the status of the sound: + +gdjs.HowlerSound.prototype.paused = function() { + return this._paused; +}; +gdjs.HowlerSound.prototype.stopped = function() { + return this._stopped; +}; +gdjs.HowlerSound.prototype.canBeDestroyed = function() { + return this._canBeDestroyed; +}; + +// Methods to safely update the rate of the sound: + +gdjs.HowlerSound.prototype.getRate = function() { + return this._rate; +}; +gdjs.HowlerSound.prototype.setRate = function(rate) { + this._rate = gdjs.HowlerSoundManager.clampRate(rate); + this.rate(this._rate); +}; + +/** + * HowlerSoundManager is used to manage the sounds and musics of a RuntimeScene. + * + * It is basically a container to associate channels to sounds and keep a list + * of all sounds being played. + * + * @memberof gdjs + * @class HowlerSoundManager + */ +gdjs.HowlerSoundManager = function(resources) { + this._resources = resources; + this._availableResources = {}; //Map storing "audio" resources for faster access. + + this._globalVolume = 100; + + this._sounds = {}; + this._musics = {}; + this._freeSounds = []; //Sounds without an assigned channel. + this._freeMusics = []; //Musics without an assigned channel. + + this._pausedSounds = []; + this._paused = false; + + var that = this; + this._checkForPause = function() { + if (that._paused) { + this.pause(); + that._pausedSounds.push(this); + } + }; + + document.addEventListener('deviceready', function() { + // pause/resume sounds in Cordova when the app is being paused/resumed + document.addEventListener( + 'pause', + function() { + var soundList = that._freeSounds.concat(that._freeMusics); + for (var key in that._sounds) { + if (that._sounds.hasOwnProperty(key)) { + soundList.push(that._sounds[key]); + } + } + for (var key in that._musics) { + if (that._musics.hasOwnProperty(key)) { + soundList.push(that._musics[key]); + } + } + for (var i = 0; i < soundList.length; i++) { + var sound = soundList[i]; + if (!sound.paused() && !sound.stopped()) { + sound.pause(); + that._pausedSounds.push(sound); + } + } + that._paused = true; + }, + false + ); + document.addEventListener( + 'resume', + function() { + for (var i = 0; i < that._pausedSounds.length; i++) { + var sound = that._pausedSounds[i]; + if (!sound.stopped()) { + sound.play(); + } + } + that._pausedSounds.length = 0; + that._paused = false; + }, + false + ); + }); +}; + +gdjs.SoundManager = gdjs.HowlerSoundManager; //Register the class to let the engine use it. + +/** + * Ensure rate is in a range valid for Howler.js + * @return The clamped rate + * @private + */ +gdjs.HowlerSoundManager.clampRate = function(rate) { + if (rate > 4.0) return 4.0; + if (rate < 0.5) return 0.5; + + return rate; +}; + +/** + * Return the file associated to the given sound name. + * + * Names and files are loaded from resources when preloadAudio is called. If no + * file is associated to the given name, then the name will be considered as a + * filename and will be returned. + * + * @private + * @return The associated filename + */ +gdjs.HowlerSoundManager.prototype._getFileFromSoundName = function(soundName) { + if ( + this._availableResources.hasOwnProperty(soundName) && + this._availableResources[soundName].file + ) { + return this._availableResources[soundName].file; + } + + return soundName; +}; + +/** + * Store the sound in the specified array, put it at the first index that + * is free, or add it at the end if no element is free + * ("free" means that the gdjs.HowlerSound can be destroyed). + * + * @param {Array} arr The array containing the sounds. + * @param {gdjs.HowlerSound} arr The gdjs.HowlerSound to add. + * @return The gdjs.HowlerSound that have been added (i.e: the second parameter). + * @private + */ +gdjs.HowlerSoundManager.prototype._storeSoundInArray = function(arr, sound) { + //Try to recycle an old sound. + var index = null; + for (var i = 0, len = arr.length; i < len; ++i) { + if (arr[i] !== null && arr[i].canBeDestroyed()) { + arr[index] = sound; + return sound; + } + } + + arr.push(sound); + return sound; +}; + +gdjs.HowlerSoundManager.prototype.playSound = function( + soundName, + loop, + volume, + pitch +) { + var soundFile = this._getFileFromSoundName(soundName); + + var sound = new gdjs.HowlerSound({ + src: [soundFile], //TODO: ogg, mp3... + loop: loop, + volume: volume / 100, + rate: gdjs.HowlerSoundManager.clampRate(pitch), + }); + + this._storeSoundInArray(this._freeSounds, sound).play(); + + sound.on('play', this._checkForPause); +}; + +gdjs.HowlerSoundManager.prototype.playSoundOnChannel = function( + soundName, + channel, + loop, + volume, + pitch +) { + var oldSound = this._sounds[channel]; + if (oldSound) { + oldSound.unload(); + } + + var soundFile = this._getFileFromSoundName(soundName); + + var sound = new gdjs.HowlerSound({ + src: [soundFile], //TODO: ogg, mp3... + loop: loop, + volume: volume / 100, + rate: gdjs.HowlerSoundManager.clampRate(pitch), + }); + + sound.play(); + this._sounds[channel] = sound; + + sound.on('play', this._checkForPause); +}; + +gdjs.HowlerSoundManager.prototype.getSoundOnChannel = function(channel) { + return this._sounds[channel]; +}; + +gdjs.HowlerSoundManager.prototype.playMusic = function( + soundName, + loop, + volume, + pitch +) { + var soundFile = this._getFileFromSoundName(soundName); + + var sound = new gdjs.HowlerSound({ + src: [soundFile], //TODO: ogg, mp3... + loop: loop, + html5: true, //Force HTML5 audio so we don't wait for the full file to be loaded on Android. + volume: volume / 100, + rate: gdjs.HowlerSoundManager.clampRate(pitch), + }); + + this._storeSoundInArray(this._freeMusics, sound).play(); + + sound.on('play', this._checkForPause); +}; + +gdjs.HowlerSoundManager.prototype.playMusicOnChannel = function( + soundName, + channel, + loop, + volume, + pitch +) { + var oldMusic = this._musics[channel]; + if (oldMusic) { + oldMusic.unload(); + } + + var soundFile = this._getFileFromSoundName(soundName); + + var music = new gdjs.HowlerSound({ + src: [soundFile], //TODO: ogg, mp3... + loop: loop, + html5: true, //Force HTML5 audio so we don't wait for the full file to be loaded on Android. + volume: volume / 100, + rate: gdjs.HowlerSoundManager.clampRate(pitch), + }); + + music.play(); + this._musics[channel] = music; + + music.on('play', this._checkForPause); +}; + +gdjs.HowlerSoundManager.prototype.getMusicOnChannel = function(channel) { + return this._musics[channel]; +}; + +gdjs.HowlerSoundManager.prototype.setGlobalVolume = function(volume) { + this._globalVolume = volume; + if (this._globalVolume > 100) this._globalVolume = 100; + if (this._globalVolume < 0) this._globalVolume = 0; + Howler.volume(this._globalVolume / 100); +}; + +gdjs.HowlerSoundManager.prototype.getGlobalVolume = function() { + return this._globalVolume; +}; + +gdjs.HowlerSoundManager.prototype.clearAll = function() { + for (var i = 0; i < this._freeSounds.length; ++i) { + if (this._freeSounds[i]) this._freeSounds[i].unload(); + } + for (var i = 0; i < this._freeMusics.length; ++i) { + if (this._freeMusics[i]) this._freeMusics[i].unload(); + } + this._freeSounds.length = 0; + this._freeMusics.length = 0; + + for (var p in this._sounds) { + if (this._sounds.hasOwnProperty(p) && this._sounds[p]) { + this._sounds[p].unload(); + delete this._sounds[p]; + } + } + for (var p in this._musics) { + if (this._musics.hasOwnProperty(p) && this._musics[p]) { + this._musics[p].unload(); + delete this._musics[p]; + } + } + this._pausedSounds.length = 0; +}; + +gdjs.HowlerSoundManager.prototype.preloadAudio = function( + onProgress, + onComplete, + resources +) { + resources = resources || this._resources; + + //Construct the list of files to be loaded. + //For one loaded file, it can have one or more resources + //that use it. + var files = []; + for (var i = 0, len = resources.length; i < len; ++i) { + var res = resources[i]; + if (res.file && res.kind === 'audio') { + this._availableResources[res.name] = res; + + if (files.indexOf(res.file) === -1) { + files.push(res.file); + } + } + } + + if (files.length === 0) return onComplete(files.length); + + var loaded = 0; + function onLoad(audioFile) { + loaded++; + if (loaded === files.length) { + return onComplete(files.length); + } + + onProgress(loaded, files.length); + } + + var that = this; + for (var i = 0; i < files.length; ++i) { + (function(audioFile) { + var sound = new XMLHttpRequest(); + sound.addEventListener('load', onLoad.bind(that, audioFile)); + sound.addEventListener('error', onLoad.bind(that, audioFile)); + sound.addEventListener('abort', onLoad.bind(that, audioFile)); + sound.open('GET', audioFile); + sound.send(); + })(files[i]); + } +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/howler-sound-manager/howler.min.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/howler-sound-manager/howler.min.js new file mode 100644 index 0000000..fb1d970 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/howler-sound-manager/howler.min.js @@ -0,0 +1,4 @@ +/*! howler.js v2.1.2 | (c) 2013-2019, James Simpson of GoldFire Studios | MIT License | howlerjs.com */ +!function(){"use strict";var e=function(){this.init()};e.prototype={init:function(){var e=this||n;return e._counter=1e3,e._html5AudioPool=[],e.html5PoolSize=10,e._codecs={},e._howls=[],e._muted=!1,e._volume=1,e._canPlayEvent="canplaythrough",e._navigator="undefined"!=typeof window&&window.navigator?window.navigator:null,e.masterGain=null,e.noAudio=!1,e.usingWebAudio=!0,e.autoSuspend=!0,e.ctx=null,e.autoUnlock=!0,e._setup(),e},volume:function(e){var o=this||n;if(e=parseFloat(e),o.ctx||_(),void 0!==e&&e>=0&&e<=1){if(o._volume=e,o._muted)return o;o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e,n.ctx.currentTime);for(var t=0;t=0;o--)e._howls[o].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,_()),e},codecs:function(e){return(this||n)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||n;if(e.state=e.ctx?e.ctx.state||"suspended":"suspended",e._autoSuspend(),!e.usingWebAudio)if("undefined"!=typeof Audio)try{var o=new Audio;void 0===o.oncanplaythrough&&(e._canPlayEvent="canplay")}catch(n){e.noAudio=!0}else e.noAudio=!0;try{var o=new Audio;o.muted&&(e.noAudio=!0)}catch(e){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||n,o=null;try{o="undefined"!=typeof Audio?new Audio:null}catch(n){return e}if(!o||"function"!=typeof o.canPlayType)return e;var t=o.canPlayType("audio/mpeg;").replace(/^no$/,""),r=e._navigator&&e._navigator.userAgent.match(/OPR\/([0-6].)/g),a=r&&parseInt(r[0].split("/")[1],10)<33;return e._codecs={mp3:!(a||!t&&!o.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!t,opus:!!o.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!o.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),aac:!!o.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!o.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(o.canPlayType("audio/x-m4a;")||o.canPlayType("audio/m4a;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(o.canPlayType("audio/x-mp4;")||o.canPlayType("audio/mp4;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),webm:!!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),dolby:!!o.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(o.canPlayType("audio/x-flac;")||o.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||n;if(!e._audioUnlocked&&e.ctx){e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var o=function(n){for(var t=0;t0?i._seek:t._sprite[e][0]/1e3),s=Math.max(0,(t._sprite[e][0]+t._sprite[e][1])/1e3-_),l=1e3*s/Math.abs(i._rate),c=t._sprite[e][0]/1e3,f=(t._sprite[e][0]+t._sprite[e][1])/1e3,p=!(!i._loop&&!t._sprite[e][2]);i._sprite=e,i._ended=!1;var m=function(){i._paused=!1,i._seek=_,i._start=c,i._stop=f,i._loop=p};if(_>=f)return void t._ended(i);var v=i._node;if(t._webAudio){var h=function(){t._playLock=!1,m(),t._refreshBuffer(i);var e=i._muted||t._muted?0:i._volume;v.gain.setValueAtTime(e,n.ctx.currentTime),i._playStart=n.ctx.currentTime,void 0===v.bufferSource.start?i._loop?v.bufferSource.noteGrainOn(0,_,86400):v.bufferSource.noteGrainOn(0,_,s):i._loop?v.bufferSource.start(0,_,86400):v.bufferSource.start(0,_,s),l!==1/0&&(t._endTimers[i._id]=setTimeout(t._ended.bind(t,i),l)),o||setTimeout(function(){t._emit("play",i._id),t._loadQueue()},0)};"running"===n.state?h():(t._playLock=!0,t.once("resume",h),t._clearTimer(i._id))}else{var y=function(){v.currentTime=_,v.muted=i._muted||t._muted||n._muted||v.muted,v.volume=i._volume*n.volume(),v.playbackRate=i._rate;try{var r=v.play();if(r&&"undefined"!=typeof Promise&&(r instanceof Promise||"function"==typeof r.then)?(t._playLock=!0,m(),r.then(function(){t._playLock=!1,v._unlocked=!0,o||(t._emit("play",i._id),t._loadQueue())}).catch(function(){t._playLock=!1,t._emit("playerror",i._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),i._ended=!0,i._paused=!0})):o||(t._playLock=!1,m(),t._emit("play",i._id),t._loadQueue()),v.playbackRate=i._rate,v.paused)return void t._emit("playerror",i._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");"__default"!==e||i._loop?t._endTimers[i._id]=setTimeout(t._ended.bind(t,i),l):(t._endTimers[i._id]=function(){t._ended(i),v.removeEventListener("ended",t._endTimers[i._id],!1)},v.addEventListener("ended",t._endTimers[i._id],!1))}catch(e){t._emit("playerror",i._id,e)}};"data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"===v.src&&(v.src=t._src,v.load());var g=window&&window.ejecta||!v.readyState&&n._navigator.isCocoonJS;if(v.readyState>=3||g)y();else{t._playLock=!0;var A=function(){y(),v.removeEventListener(n._canPlayEvent,A,!1)};v.addEventListener(n._canPlayEvent,A,!1),t._clearTimer(i._id)}}return i._id},pause:function(e){var n=this;if("loaded"!==n._state||n._playLock)return n._queue.push({event:"pause",action:function(){n.pause(e)}}),n;for(var o=n._getSoundIds(e),t=0;t=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else r.length>=2&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var a;if(!(void 0!==e&&e>=0&&e<=1))return a=o?t._soundById(o):t._sounds[0],a?a._volume:0;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"volume",action:function(){t.volume.apply(t,r)}}),t;void 0===o&&(t._volume=e),o=t._getSoundIds(o);for(var u=0;u0?t/_:t),l=Date.now();e._fadeTo=o,e._interval=setInterval(function(){var r=(Date.now()-l)/t;l=Date.now(),i+=d*r,i=Math.max(0,i),i=Math.min(1,i),i=Math.round(100*i)/100,u._webAudio?e._volume=i:u.volume(i,e._id,!0),a&&(u._volume=i),(on&&i>=o)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,u.volume(o,e._id),u._emit("fade",e._id))},s)},_stopFade:function(e){var o=this,t=o._soundById(e);return t&&t._interval&&(o._webAudio&&t._node.gain.cancelScheduledValues(n.ctx.currentTime),clearInterval(t._interval),t._interval=null,o.volume(t._fadeTo,e),t._fadeTo=null,o._emit("fade",e)),o},loop:function(){var e,n,o,t=this,r=arguments;if(0===r.length)return t._loop;if(1===r.length){if("boolean"!=typeof r[0])return!!(o=t._soundById(parseInt(r[0],10)))&&o._loop;e=r[0],t._loop=e}else 2===r.length&&(e=r[0],n=parseInt(r[1],10));for(var a=t._getSoundIds(n),u=0;u=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var i;if("number"!=typeof e)return i=t._soundById(o),i?i._rate:t._rate;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"rate",action:function(){t.rate.apply(t,r)}}),t;void 0===o&&(t._rate=e),o=t._getSoundIds(o);for(var d=0;d=0?o=parseInt(r[0],10):t._sounds.length&&(o=t._sounds[0]._id,e=parseFloat(r[0]))}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));if(void 0===o)return t;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"seek",action:function(){t.seek.apply(t,r)}}),t;var i=t._soundById(o);if(i){if(!("number"==typeof e&&e>=0)){if(t._webAudio){var d=t.playing(o)?n.ctx.currentTime-i._playStart:0,_=i._rateSeek?i._rateSeek-i._seek:0;return i._seek+(_+d*Math.abs(i._rate))}return i._node.currentTime}var s=t.playing(o);s&&t.pause(o,!0),i._seek=e,i._ended=!1,t._clearTimer(o),t._webAudio||!i._node||isNaN(i._node.duration)||(i._node.currentTime=e);var l=function(){t._emit("seek",o),s&&t.play(o,!0)};if(s&&!t._webAudio){var c=function(){t._playLock?setTimeout(c,0):l()};setTimeout(c,0)}else l()}return t},playing:function(e){var n=this;if("number"==typeof e){var o=n._soundById(e);return!!o&&!o._paused}for(var t=0;t=0&&n._howls.splice(a,1);var u=!0;for(t=0;t=0){u=!1;break}return r&&u&&delete r[e._src],n.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,n,o,t){var r=this,a=r["_on"+e];return"function"==typeof n&&a.push(t?{id:o,fn:n,once:t}:{id:o,fn:n}),r},off:function(e,n,o){var t=this,r=t["_on"+e],a=0;if("number"==typeof n&&(o=n,n=null),n||o)for(a=0;a=0;a--)r[a].id&&r[a].id!==n&&"load"!==e||(setTimeout(function(e){e.call(this,n,o)}.bind(t,r[a].fn),0),r[a].once&&t.off(e,r[a].fn,r[a].id));return t._loadQueue(e),t},_loadQueue:function(e){var n=this;if(n._queue.length>0){var o=n._queue[0];o.event===e&&(n._queue.shift(),n._loadQueue()),e||o.action()}return n},_ended:function(e){var o=this,t=e._sprite;if(!o._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime=0;t--){if(o<=n)return;e._sounds[t]._ended&&(e._webAudio&&e._sounds[t]._node&&e._sounds[t]._node.disconnect(0),e._sounds.splice(t,1),o--)}}},_getSoundIds:function(e){var n=this;if(void 0===e){for(var o=[],t=0;t=0;if(n._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),t))try{e.bufferSource.buffer=n._scratchBuffer}catch(e){}return e.bufferSource=null,o},_clearSound:function(e){/MSIE |Trident\//.test(n._navigator&&n._navigator.userAgent)||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var t=function(e){this._parent=e,this.init()};t.prototype={init:function(){var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,o._sounds.push(e),e.create(),e},create:function(){var e=this,o=e._parent,t=n._muted||e._muted||e._parent._muted?0:e._volume;return o._webAudio?(e._node=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),e._node.gain.setValueAtTime(t,n.ctx.currentTime),e._node.paused=!0,e._node.connect(n.masterGain)):(e._node=n._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(n._canPlayEvent,e._loadFn,!1),e._node.src=o._src,e._node.preload="auto",e._node.volume=t*n.volume(),e._node.load()),e},reset:function(){var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,e},_errorListener:function(){var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1)},_loadListener:function(){var e=this,o=e._parent;o._duration=Math.ceil(10*e._node.duration)/10,0===Object.keys(o._sprite).length&&(o._sprite={__default:[0,1e3*o._duration]}),"loaded"!==o._state&&(o._state="loaded",o._emit("load"),o._loadQueue()),e._node.removeEventListener(n._canPlayEvent,e._loadFn,!1)}};var r={},a=function(e){var n=e._src;if(r[n])return e._duration=r[n].duration,void d(e);if(/^data:[^;]+;base64,/.test(n)){for(var o=atob(n.split(",")[1]),t=new Uint8Array(o.length),a=0;a0?(r[o._src]=e,d(o,e)):t()};"undefined"!=typeof Promise&&1===n.ctx.decodeAudioData.length?n.ctx.decodeAudioData(e).then(a).catch(t):n.ctx.decodeAudioData(e,a,t)},d=function(e,n){n&&!e._duration&&(e._duration=n.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),"loaded"!==e._state&&(e._state="loaded",e._emit("load"),e._loadQueue())},_=function(){if(n.usingWebAudio){try{"undefined"!=typeof AudioContext?n.ctx=new AudioContext:"undefined"!=typeof webkitAudioContext?n.ctx=new webkitAudioContext:n.usingWebAudio=!1}catch(e){n.usingWebAudio=!1}n.ctx||(n.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(n._navigator&&n._navigator.platform),o=n._navigator&&n._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),t=o?parseInt(o[1],10):null;if(e&&t&&t<9){var r=/safari/.test(n._navigator&&n._navigator.userAgent.toLowerCase());(n._navigator&&n._navigator.standalone&&!r||n._navigator&&!n._navigator.standalone&&!r)&&(n.usingWebAudio=!1)}n.usingWebAudio&&(n.masterGain=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),n.masterGain.gain.setValueAtTime(n._muted?0:1,n.ctx.currentTime),n.masterGain.connect(n.ctx.destination)),n._setup()}};"function"==typeof define&&define.amd&&define([],function(){return{Howler:n,Howl:o}}),"undefined"!=typeof exports&&(exports.Howler=n,exports.Howl=o),"undefined"!=typeof window?(window.HowlerGlobal=e,window.Howler=n,window.Howl=o,window.Sound=t):"undefined"!=typeof global&&(global.HowlerGlobal=e,global.Howler=n,global.Howl=o,global.Sound=t)}(); +/*! Spatial Plugin */ +!function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){var n=this;if(!n.ctx||!n.ctx.listener)return n;for(var t=n._howls.length-1;t>=0;t--)n._howls[t].stereo(e);return n},HowlerGlobal.prototype.pos=function(e,n,t){var r=this;return r.ctx&&r.ctx.listener?(n="number"!=typeof n?r._pos[1]:n,t="number"!=typeof t?r._pos[2]:t,"number"!=typeof e?r._pos:(r._pos=[e,n,t],void 0!==r.ctx.listener.positionX?(r.ctx.listener.positionX.setTargetAtTime(r._pos[0],Howler.ctx.currentTime,.1),r.ctx.listener.positionY.setTargetAtTime(r._pos[1],Howler.ctx.currentTime,.1),r.ctx.listener.positionZ.setTargetAtTime(r._pos[2],Howler.ctx.currentTime,.1)):r.ctx.listener.setPosition(r._pos[0],r._pos[1],r._pos[2]),r)):r},HowlerGlobal.prototype.orientation=function(e,n,t,r,o,i){var a=this;if(!a.ctx||!a.ctx.listener)return a;var s=a._orientation;return n="number"!=typeof n?s[1]:n,t="number"!=typeof t?s[2]:t,r="number"!=typeof r?s[3]:r,o="number"!=typeof o?s[4]:o,i="number"!=typeof i?s[5]:i,"number"!=typeof e?s:(a._orientation=[e,n,t,r,o,i],void 0!==a.ctx.listener.forwardX?(a.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(t,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(e,n,t,r,o,i),a)},Howl.prototype.init=function(e){return function(n){var t=this;return t._orientation=n.orientation||[1,0,0],t._stereo=n.stereo||null,t._pos=n.pos||null,t._pannerAttr={coneInnerAngle:void 0!==n.coneInnerAngle?n.coneInnerAngle:360,coneOuterAngle:void 0!==n.coneOuterAngle?n.coneOuterAngle:360,coneOuterGain:void 0!==n.coneOuterGain?n.coneOuterGain:0,distanceModel:void 0!==n.distanceModel?n.distanceModel:"inverse",maxDistance:void 0!==n.maxDistance?n.maxDistance:1e4,panningModel:void 0!==n.panningModel?n.panningModel:"HRTF",refDistance:void 0!==n.refDistance?n.refDistance:1,rolloffFactor:void 0!==n.rolloffFactor?n.rolloffFactor:1},t._onstereo=n.onstereo?[{fn:n.onstereo}]:[],t._onpos=n.onpos?[{fn:n.onpos}]:[],t._onorientation=n.onorientation?[{fn:n.onorientation}]:[],e.call(this,n)}}(Howl.prototype.init),Howl.prototype.stereo=function(n,t){var r=this;if(!r._webAudio)return r;if("loaded"!==r._state)return r._queue.push({event:"stereo",action:function(){r.stereo(n,t)}}),r;var o=void 0===Howler.ctx.createStereoPanner?"spatial":"stereo";if(void 0===t){if("number"!=typeof n)return r._stereo;r._stereo=n,r._pos=[n,0,0]}for(var i=r._getSoundIds(t),a=0;a + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/inputmanager.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/inputmanager.js new file mode 100644 index 0000000..e84fbd9 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/inputmanager.js @@ -0,0 +1,317 @@ +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * Store input made on a canvas: mouse position, key pressed + * and touches states. + * + * See **bindStandardEvents** method for connecting the input + * manager to a canvas and **onFrameEnded** for signaling the + * end of a frame (necessary for proper touches events handling). + * + * @constructor + * @memberof gdjs + * @class InputManager + */ +gdjs.InputManager = function() +{ + this._pressedKeys = new Hashtable(); + this._releasedKeys = new Hashtable(); + this._lastPressedKey = 0; + this._pressedMouseButtons = new Array(5); + this._releasedMouseButtons = new Array(5); + this._mouseX = 0; + this._mouseY = 0; + this._mouseWheelDelta = 0; + this._touches = new Hashtable(); + this._startedTouches = []; //Identifiers of the touches that started during/before the frame. + this._endedTouches = []; //Identifiers of the touches that ended during/before the frame. + + this._touchSimulateMouse = true; +}; + +/** @constant {number} */ +gdjs.InputManager.MOUSE_LEFT_BUTTON = 0; + +/** @constant {number} */ +gdjs.InputManager.MOUSE_RIGHT_BUTTON = 1; + +/** @constant {number} */ +gdjs.InputManager.MOUSE_MIDDLE_BUTTON = 2; + +/** + * Should be called whenever a key is pressed + * @param {number} keyCode The key code associated to the key press. + */ +gdjs.InputManager.prototype.onKeyPressed = function(keyCode) { + this._pressedKeys.put(keyCode, true); + this._lastPressedKey = keyCode; +}; + +/** + * Should be called whenever a key is released + * @param {number} keyCode The key code associated to the key release. + */ +gdjs.InputManager.prototype.onKeyReleased = function(keyCode) { + this._pressedKeys.put(keyCode, false); + this._releasedKeys.put(keyCode, true); +}; + +/** + * Return the code of the last key that was pressed. + * @return {number} The code of the last key pressed. + */ +gdjs.InputManager.prototype.getLastPressedKey = function() { + return this._lastPressedKey; +}; + +/** + * Return true if the key corresponding to keyCode is pressed. + * @param {number} keyCode The key code to be tested. + */ +gdjs.InputManager.prototype.isKeyPressed = function(keyCode) { + return this._pressedKeys.containsKey(keyCode) && this._pressedKeys.get(keyCode); +}; + +/** + * Return true if the key corresponding to keyCode was released during the last frame. + * @param {number} keyCode The key code to be tested. + */ +gdjs.InputManager.prototype.wasKeyReleased = function(keyCode) { + return this._releasedKeys.containsKey(keyCode) && this._releasedKeys.get(keyCode); +}; + +/** + * Return true if any key is pressed + */ +gdjs.InputManager.prototype.anyKeyPressed = function() { + for(var keyCode in this._pressedKeys.items) { + if (this._pressedKeys.items.hasOwnProperty(keyCode)) { + if (this._pressedKeys.items[keyCode]) { + return true; + } + } + } + + return false; +}; + +/** + * Should be called when the mouse is moved.
+ * Please note that the coordinates must be expressed relative to the view position. + * + * @param {number} x The mouse new X position + * @param {number} y The mouse new Y position + */ +gdjs.InputManager.prototype.onMouseMove = function(x,y) { + this._mouseX = x; + this._mouseY = y; +}; + +/** + * Get the mouse X position + * + * @return the mouse X position, relative to the game view. + */ +gdjs.InputManager.prototype.getMouseX = function() { + return this._mouseX; +}; + +/** + * Get the mouse Y position + * + * @return the mouse Y position, relative to the game view. + */ +gdjs.InputManager.prototype.getMouseY = function() { + return this._mouseY; +}; + +/** + * Should be called whenever a mouse button is pressed + * @param {number} buttonCode The mouse button code associated to the event. + * See gdjs.InputManager.MOUSE_LEFT_BUTTON, gdjs.InputManager.MOUSE_RIGHT_BUTTON, gdjs.InputManager.MOUSE_MIDDLE_BUTTON + */ +gdjs.InputManager.prototype.onMouseButtonPressed = function(buttonCode) { + this._pressedMouseButtons[buttonCode] = true; + this._releasedMouseButtons[buttonCode] = false; +}; + +/** + * Should be called whenever a mouse button is released + * @param {number} buttonCode The mouse button code associated to the event. (see onMouseButtonPressed) + */ +gdjs.InputManager.prototype.onMouseButtonReleased = function(buttonCode) { + this._pressedMouseButtons[buttonCode] = false; + this._releasedMouseButtons[buttonCode] = true; +}; + +/** + * Return true if the mouse button corresponding to buttonCode is pressed. + * @param {number} buttonCode The mouse button code (0: Left button, 1: Right button). + */ +gdjs.InputManager.prototype.isMouseButtonPressed = function(buttonCode) { + return this._pressedMouseButtons[buttonCode] !== undefined && this._pressedMouseButtons[buttonCode]; +}; + +/** + * Return true if the mouse button corresponding to buttonCode was just released. + * @param {number} buttonCode The mouse button code (0: Left button, 1: Right button). + */ +gdjs.InputManager.prototype.isMouseButtonReleased = function(buttonCode) { + return this._releasedMouseButtons[buttonCode] !== undefined && this._releasedMouseButtons[buttonCode]; +}; + +/** + * Should be called whenever the mouse wheel is used + * @param {number} wheelDelta The mouse wheel delta + */ +gdjs.InputManager.prototype.onMouseWheel = function(wheelDelta) { + this._mouseWheelDelta = wheelDelta; +}; + +/** + * Return the mouse wheel delta + */ +gdjs.InputManager.prototype.getMouseWheelDelta = function() { + return this._mouseWheelDelta; +}; + +/** + * Get a touch X position + * + * @return the touch X position, relative to the game view. + */ +gdjs.InputManager.prototype.getTouchX = function(identifier) { + if (!this._touches.containsKey(identifier)) + return 0; + + return this._touches.get(identifier).x; +}; + +/** + * Get a touch Y position + * + * @return the touch Y position, relative to the game view. + */ +gdjs.InputManager.prototype.getTouchY = function(identifier) { + if (!this._touches.containsKey(identifier)) + return 0; + + return this._touches.get(identifier).y; +}; + +/** + * Update and return the array containing the identifiers of all touches. + * + */ +gdjs.InputManager.prototype.getAllTouchIdentifiers = function() { + gdjs.InputManager._allTouchIds = gdjs.InputManager._allTouchIds || []; + gdjs.InputManager._allTouchIds.length = 0; + + for(var id in this._touches.items) { + if (this._touches.items.hasOwnProperty(id)) { + gdjs.InputManager._allTouchIds.push(parseInt(id, 10)); + } + } + + return gdjs.InputManager._allTouchIds; +}; + +gdjs.InputManager.prototype.onTouchStart = function(identifier, x, y) { + this._startedTouches.push(identifier); + this._touches.put(identifier, {x: x, y: y}); + + if (this._touchSimulateMouse) { + this.onMouseMove(x, y); + this.onMouseButtonPressed(gdjs.InputManager.MOUSE_LEFT_BUTTON); + } +}; + +gdjs.InputManager.prototype.onTouchMove = function(identifier, x, y) { + var touch = this._touches.get(identifier); + if (!touch) return; + + touch.x = x; + touch.y = y; + + if (this._touchSimulateMouse) { + this.onMouseMove(x, y); + } +}; + +gdjs.InputManager.prototype.onTouchEnd = function(identifier) { + this._endedTouches.push(identifier); + if (this._touches.containsKey(identifier)) { //Postpone deletion at the end of the frame + this._touches.get(identifier).justEnded = true; + } + + if (this._touchSimulateMouse) { + this.onMouseButtonReleased(gdjs.InputManager.MOUSE_LEFT_BUTTON); + } +}; + +gdjs.InputManager.prototype.getStartedTouchIdentifiers = function() { + return this._startedTouches; +}; + +gdjs.InputManager.prototype.popStartedTouch = function() { + return this._startedTouches.shift(); +}; + +gdjs.InputManager.prototype.popEndedTouch = function() { + return this._endedTouches.shift(); +}; + +/** + * Set if touch events should simulate mouse events. + * + * If true, any touch will move the mouse position and set mouse buttons + * as pressed/released. + * @param enable {Boolean} true to simulate mouse events, false to disable it. + */ +gdjs.InputManager.prototype.touchSimulateMouse = function(enable) { + if (enable === undefined) enable = true; + + this._touchSimulateMouse = enable; +}; + +/** + * Notify the input manager that the frame ended, so anything that last + * only for one frame (started/ended touches) should be reset. + * + * This method should be called in the game loop (see gdjs.RuntimeGame.startGameLoop). + */ +gdjs.InputManager.prototype.onFrameEnded = function() { + //Only clear the ended touches at the end of the frame. + for(var id in this._touches.items) { + if (this._touches.items.hasOwnProperty(id)) { + var touch = this._touches.items[id]; + if(touch.justEnded) { + this._touches.remove(id); + } + } + } + + this._startedTouches.length = 0; + this._endedTouches.length = 0; + this._releasedKeys.clear(); + this._releasedMouseButtons.length = 0; + this._mouseWheelDelta = 0; +}; + +/** + * Return true if the mouse wheel scroll to up + */ +gdjs.InputManager.prototype.isScrollingUp = function() { + return this.getMouseWheelDelta() > 0; +}; + +/** + * Return true if the mouse wheel scroll to down + */ +gdjs.InputManager.prototype.isScrollingDown = function() { + return this.getMouseWheelDelta() < 0; +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/jsonmanager.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/jsonmanager.js new file mode 100644 index 0000000..f5f51b0 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/jsonmanager.js @@ -0,0 +1,158 @@ +/* + * GDevelop JS Platform + * Copyright 2013-present Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * JsonManager loads json files (using XMLHttpRequest), using the "json" resources + * registered in the game resources. + * + * Contrary to audio/fonts, json files are loaded asynchronously, when requested. + * You should properly handle errors, and give the developer/player a way to know + * that loading failed. + * + * @class JsonManager + * @memberof gdjs + * @param {Object[]} resources The resources data of the game. + */ +gdjs.JsonManager = function(resources) { + this._resources = resources; + + /** @type Object. */ + this._loadedJsons = {}; +}; + +/** + * The callback called when a json is preloaded + * @callback JsonManagerOnProgressCallback + * @param {number} loaded The number of json files loaded so far + * @param {number} total The total number to be loaded + * @returns {undefined} Nothing + */ + +/** + * The callback called when all jsons are preloaded + * @callback JsonManagerOnCompleteCallback + * @param {number} total The total number to be loaded + * @returns {undefined} Nothing + */ + +/** + * Request all the json resources to be preloaded (unless they are marked as not preloaded). + * + * @param {JsonManagerOnProgressCallback} onProgress The function called after each json is loaded. + * @param {JsonManagerOnCompleteCallback} onComplete The function called when all jsons are loaded. + */ +gdjs.JsonManager.prototype.preloadJsons = function(onProgress, onComplete) { + var resources = this._resources; + + var jsonResources = resources.filter(function(resource) { + return resource.kind === 'json' && !resource.disablePreload; + }); + if (jsonResources.length === 0) return onComplete(jsonResources.length); + + var loaded = 0; + /** @type JsonManagerRequestCallback */ + var onLoad = function(error, jsonContent) { + if (error) { + console.error('Error while preloading a json resource:' + error); + } + + loaded++; + if (loaded === jsonResources.length) { + return onComplete(jsonResources.length); + } + + onProgress(loaded, jsonResources.length); + }; + + for (var i = 0; i < jsonResources.length; ++i) { + this.loadJson(jsonResources[i].name, onLoad); + } +}; + +/** + * The callback called when a json that was requested is loaded (or an error occured). + * @callback JsonManagerRequestCallback + * @param {?Error} error The error, if any. `null` otherwise. + * @param {?Object} jsonContent The content of the json file (or null if an error occured). + * @returns {undefined} Nothing + */ + +/** + * Request the json file from the given resource name. + * This method is asynchronous. When loaded, the `callback` is called with the error + * (null if none) and the loaded json (a JS Object). + * + * @param {string} resourceName The resource pointing to the json file to load. + * @param {JsonManagerRequestCallback} callback The callback function called when json is loaded (or an error occured). + */ +gdjs.JsonManager.prototype.loadJson = function(resourceName, callback) { + var resource = this._resources.find(function(resource) { + return resource.kind === 'json' && resource.name === resourceName; + }); + if (!resource) { + callback( + new Error( + 'Can\'t find resource with name: "' + + resourceName + + '" (or is not a json resource).' + ), + null + ); + return; + } + + // Don't fetch again an object that is already in memory + if (this._loadedJsons[resourceName]) { + callback(null, this._loadedJsons[resourceName]); + return; + } + + var that = this; + var xhr = new XMLHttpRequest(); + xhr.responseType = 'json'; + xhr.open('GET', resource.file); + xhr.onload = function() { + if (xhr.status !== 200) { + callback( + new Error('HTTP error: ' + xhr.status + '(' + xhr.statusText + ')'), + null + ); + return; + } + + // Cache the result + that._loadedJsons[resourceName] = xhr.response; + + callback(null, xhr.response); + }; + xhr.onerror = function() { + callback(new Error('Network error'), null); + }; + xhr.onabort = function() { + callback(new Error('Request aborted'), null); + }; + xhr.send(); +}; + +/** + * Check if the given json resource was loaded (preloaded or loaded with `loadJson`). + * @param {string} resourceName The name of the json resource. + * @returns {boolean} true if the content of the json resource is loaded. false otherwise. + */ +gdjs.JsonManager.prototype.isJsonLoaded = function(resourceName) { + return !!this._loadedJsons[resourceName]; +}; + +/** + * Get the object for the given resource that is already loaded (preloaded or loaded with `loadJson`). + * If the resource is not loaded, `null` will be returned. + * + * @param {string} resourceName The name of the json resource. + * @returns {?Object} the content of the json resource, if loaded. `null` otherwise. + */ +gdjs.JsonManager.prototype.getLoadedJson = function(resourceName) { + return this._loadedJsons[resourceName] || null; +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/laser1.ogg b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/laser1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..56ad23de07f7704df9210eece99e8b682a879b87 GIT binary patch literal 9315 zcmd6McQ{<%*YBA@l!!=zAZm!-gCK|?dL2dyqjxh=M~xUkbkU>t2%|(7C5YZj1kr;8 zF@z*SqTVy|{oVI>pZmV|eeQGrx%=5?&)#dT^ErE!z4tn2wC(Nn04VTJsR;PniSlWf zgfKz8T->c3J@6!mV%c8~rupyh8;Cak&i`5PcS69?Mu0)iWz(~NFCqkgad<(tk)x}F zfVR6m3)0cb;2fPrl|@8ISVTxf=r#+NHtLb1tGlg-?ITZa{G={{mp<&ig1Q!5Q~m)= zMwlE=P}SFXAcM5@uyq%P5dFnwmRB$U9}fX&t@XK;(qQk^BIrDlgq6~)64WAIhS12X zWO-2Ol}Ju!I+r!pv4l|4>*;V4rNLrhj&#;>_#UOY>MhT!Qk+@VlqRb0rc#}w?$M7X9#u}|RoY8>mJV_oT9Qk~L;wqDE+wuGN`ilx2e9Ij4Ckm_d+ZS#Y$xf!)4k^D zdUJA3^%2k7TBgT{Bxi<4kHmVWN2I%*umdQU>2WpKj{9#fyKC*fGZs(lk$e^GrbG+M zrPr?AcM_ihX*9J(l1>8MVDILaHC2?rB-k5~1Vzpp?Dbb3u3C8H{Qb3ukL0g|Jz2U} z{vPsp+JDIXH4muoeOmEnZm(EWateZIAA~#h6%sELbh0~;yOWhD7Zk+9Hd&JNdsMlz z{%TGF0IVTYFcsF&f0}UCXS7y*+^;g9lJS%j=0}PQ@YM{74B{JHWzC4xmQWX^0(p7u zRdvm}Nh9m>#`R2RiuVs4%j>4pxL<-^=03L{26PVzolV?*B|LICYf+~A0C#aN^xT{v z6Cb0}{T_ue5#3}>NV2C6VjS{ zin>&q6Z#JfJs&L8KA1_;oc7e5@q`=KA&l!$GgBz@6x7l|z`s>A?*i;HqE;a&BF4EkFTR^4>Tw z=)s8pM@Q{F(4dHMqJMV)00^;n!uXUuL{*dY)$8;%>-5#B;o9*3u83()h-!j{y#=m1 zpxr9w-4_~AO#hIc+|$s5%Z%&8 z_28%(eYkOo^r)!Jgg$&!6g~+K!M!8p0eliQfkw}H!WU9da|Z|$8ZTWqYC#_{cLzSb zkC@pHFrGqN|B#0N(wIQYOnBN(qERMj1mZwLFGX`Y*>(brnoG7tc-zh#h)sARCg8R+ zo`@MQTf+u~@qWMrI&>-7*4)t6nAQt%5Na}={KXToU}$T2#{lG-OouK{p)J#-wc#K# zVpJ4ih(?$jBBrOrCX(>TGx`W)FAy1FIE5Y+#Usy&BMejU$c8EC1y4}e*7!Hva35_v zoxD7STE2srK7bqVhk{%@aw8f+D+~V>pyw63>}k6+9lB)v2qBR&jt;O)MlBoJ8cRM| zHcDAINVWx`j8HSQ2F5hc%ztNn*$-ItK_loMEvyeU?U48G6dnysOrosQ0v3$z%)Mim zX{FkBS4*(3Gb(t=U-4aR+s5_O9JN+QSKyAY;E-poqYBsh^SHH=uVCx2!)dUia<*Q0 zzV#7bn=8YhGj2c_*Q#5Oer)bT*7?&DjqtTY^zNfQSCu8641lhM;9YxdKrWA!7mAU9 z0MFSY@@P zxT4fI+sQB60h`T*#X4cJ0qr?FT4=A*d&YngiDf7=rt@AZc6_Wdetrh-*&P+kznoZmE`{nls=kn$n!C zMH#1{EbDETLE#2llYR7bGTMAPV0GGdVXdipd$79v2wQqs|Lv&56<4uK1^~3K06-#? zM@~gweH91?cZF!nXkn5V*oY)?p6-C;I*ZN7eG=B>AxRR}qy&(blq9mwl9T`=0ecTG zvL+?LoQVK{N&?)sKIU>)N#LUeg3$+n;8i2gp7~C*)z+%npjAt-_1h{b>k;{mpr=eg zN>K^60*6cgOTle|_Bp3CH3_8Wmte8Drs@jNDcB0$=ISjR*umlkD)^2%uuT=bph)b?2xfz8u#iaNHqGt_%S_kx~G1MB-(!t}sy=BZodUfQ10S2wh+e zrj)#gv6EuhdcOm}FJwJH=_eSNvV*ICfl>DEd z{?j}Dui*bb5KjKDP4)kx9~lrA=?cX8{VOt6z#xm(Rpai-45k!bqqQDW<>Iy)lI&ps zL-7kk2qnyszhMB3(ZUZfRGJ6uVH7BId%dub%4AqF3fJG1iAcwhB%9cqLLqvmLoL~xqVMxh^jfC8fz5o2u{Q=$Em*h1h z$J4B|oNiO=#Ys|Td0wS+x<6wkauM9USpb%HLP}Z|uHW(`;lf}N8$Luy8Vav$&n2g4 zSc9|^D26BkajCf~&2KOQ1g2x%2x55>dCI3o3~~@s35n%roQu05H!^ee^fy`XnH4|| zd;*tME^zZ^dTHgG_P()?pEh>E6cH>mz;6JMki~?Dukr8+2#JV_OGruM^U?Ey!C=mR z<-it$`TMHY9&t_r@ULok!L{RoVI@+CK^Wb2S~@yrCKhHUrkk`3Oiawo;f^*&u*Y)ZQM|&#*Cwkha5u z`yybhGLBz{;bo;Mk0p@zkq7*H^-k(c-a*ds@6uQchQ`v=?~%YU_c(gEn#yix6x^pTsBUbX)5#od2dUYxH~IYAZ2GoM=3V!a-Vma)vE=%uzR)G!Y}|mfcZD40-nU_o*)Q{7 z;5%ypd@`TMeok$a4#{a98YF!afuB}cZQzy}t-_R6i&iR$=Ev+Q#+cJ@SsamYCkYCR zc82wk9?*4vU#|brtKyXo(O9_dyGk-GwoL7}y$5z$rDZQoCM}UnbC-ySA4@0GJm#pZ= zk4{dheQ6bejY4L}A~eMGNW{d^LE<{*ajrGHob_{7!)s)_qf6G$i>rGqJBS~zuhzN* z3SjbZIBo^W9EH5#!06qO4Kst8jc^1XRDZdxsX0nHLx_>!>5xK8%O9g1HnVZA?Y)Nm zIFY-AO@k?G-Wpe_{;U>Xe&PLM^MFIJNb$sLQOYoZ4n{-f zepQ}a_vF_Ia=a}xquJNi0<5kKnVO=9P+EqIJF5k{p&Q+5?!rq816sh;&Z7KlFU9M~ zM~@aQFQroMX^FHj5mbQh!8Fspi?mbiys|Hzu6t6w-Ni@&Pv(2p8dj8NLf;0dFN-Tg zr|pX9g+iY?I<;lBOx2*OHj!H^eNx`@$>?oy{`X(2rt5l5Ow7&A0~e7J|u4W`=I(P-C*+N80Lj_37#REbR(d_wC3lrOmL=a`T4`Za} z4_bstJUfQU63&HLKN)@~-faoHRX6h(H|C^y9DOS&d7G}>(erb%QUg=1)Q z{$f>)&7H0i>VhCEqr2>%kp*F-ahO;r%Q!@i5TGFfvRh8|1%4fca3VhqyRmO>zoP{J zVJsO>*Y1`uH zU1rqdU#~CAkEWNPI1e8ztqyyRlL`>448XPD_E)ei156kwJN+2s(gq;iPC&!BwC5-g zM`hN zUHRa@xNACSPZG$PvAVqabCrQXq5I_>Y93mislayQ)QQKEN)>Ak$ob~?nod?L?T442 zh|!W|3AVmRTzw3M(gR$`?MM_exge42%XtlPxuut#uXO@shlOj{LvXjk0)%9MW4}W6 z;$f$wIS=`%vM@be~h-cuwSX|j~(ce`zKAsGP++XoWO2Fx1^U3a1lQ2s2O=!}nFpiRg# z)t8T(MJ&PyINg7(3ir@j1LR~x@{qV0RMEqu)}KT1%vB|&cZATpxh>Vvp4@9b+V+Z5yqK_DBzE?_Wp z8s_cj0F?*|Ud!U%=EpbYpK7Ro0}c1ma_})@=Vvy<7_2L&{JQelS-LUJ=Ji@r%nc5}?8g3gWdXla?VcgX#ZSXH0!OwIf_RoTsIV0B+S0!a)SOM zu>G;^;I}$F3CHPQ7JJ>gCp@^O;c1u}G8N@3S|qOJC|mTLeZ}Hoa~jb+<;$|=OnKX+ zQMuu(4obbbg&!WyzG!%vTrlQJb+Mh0k?F>1a08w9gLekh6>}&GgK0Eli6s^M)8e+7 zDt&Fu8Qr(+ZQQs*dQpWuOBsb=y;ykn?VxqALdzej!&XO zJ|$>fk|Y`CF|NwI0T~h!;Y75PrnV@#rqI4weu@aZfq5n2ObVp|77tI9H({A2f zC^pkTO?eq!;UJkR#!+~1Ho5XmX$(llctACdEG?Qds9iO!oyz6kP}S?{>?A(FqGwps zI_|qtqe{O4jRQ`3PJ7WgffY2BLDv}fZ}zCLke2fJS6am)^zw@NzUR4oP%Ks0_FAmE zXF4)kpR5-Wfy!li;W(eF>C@;WHQ?y|`^`wa%RPS9?@TUPoKM`Uo}E=h`ZIYdRhc-n z))nj^Ue#()@RGgclOwix2VFEd%`q5gOJe@G`bjN-2zXkKO_-`h<>rz-6bQ2tR)}=8 zmI-hd%m#dA=%3~#*%|bo+4O&YKKgBs?pp!X^&{hFbHUdtIpVmO#(+3Eh+M7;#tzB{ zNS*qh_WJeDg+i1`7=C(j11!~89i6QjaHm?}FIVXO*_q!i)w<9kKshR@&duSsTmPk} zQ)UdJ!7c>J4Fb3@pCRqgMfKC1g1u&asY*^)J}e195`!JcYy$uc>{_Etm}p2#d@pOU z?Xxf_;c0a1^vAH_@X7ePch<+VSCSVk`BKrS{G#@oGVKIZWPntZJCOrWM2aDe1G3dm z&1Icb_1Z7QasvQI85aL?0ILe-xfKx2VVAIsh$(qkn@c2cmZIGHW~)W~cA!p%=+M_r z3&LrJ4l!kC#Y1j6KYI+6LzKRjLPN(W2w>U$1X;X$y0rB2+Rdle!gh&!vmuxeC3wIS zC??9^83^-}6L&LS%NA^ESB&|({gPt)+ohbv#+?tt)SX${6{_7NUhkF-Tm2qAxQ)DY zjZr=xBatJ-+*A!v19K&vdVm~2R9|wEv+dJNNlbD%EaMV7AmC(UToIvMu6k80%b!G9 zdujSec9HLL+ait2`r)zB@|)@c!?VQ^1O6sIKWy+^j;*n6p^~8Wy0W*|{G`?m|FEtO zZ$A;&3%E2FD&wcfiVrX;7bVscr@Q5}*EZQ+_Mx60)IowN>ua#6jkZ z^Yov_@{6`xLD=W$=MLYwUT)$BQ^jlsrOEt1ny+;B{H9=oj7QAfRuFZY)j;cYrc)06eE;2R(?tG{d!c1pjK@t5xK79-Q!>f205YFeC%3O z@rIA-KKBD2Q7S#}JHLaM1u)M(8GW-4$q9_F(ks0_(9Fh2K7lpae*qX}d|i(DGS^XC zax#yq4UU(UIPp_E9(#rT!iuG^m{noZT})G4FhBKw8wDkcg@^^3U;?A~E{>gONu`RG~!Za&uRy75)5A4t9JHs)I^ z>qi^LQ|m>YgPq1&VfNlUM=RULIm~l4TX`Ow8x;oTTgkubqKG_TapGQbQl)qA-#Vr{ zA`wC#-7_ncJ#BjPM(E_Ye5$|f&CeI4)G;RqUh_Z75B*)A4rW+NpNNnV`W4hCXkETc zJilJMt`qE9+?Z7&*^F#wOjwoq(Z{CkeEs0CRGJ&e?*Da2{q>z9?zKG~e@xY}TinYeG6Xv$AOsD$ao8`~uT=K`IkA1Cmb%QoNc82^lSJu2vdKkm51h)o?Oa!)@1cJ{2#12L>Uaw#fIx&r%Gd~ zql^Q-hCh)qnC|^Ga$)9m;YV&~oH%%#B~~*g;j?{r$8O10cB$cf4xu7hs&Nu(9U zCHcblK1A7*-+#oCS>8K-yh;WUxG5N?`c~5LvVPL31LXNr3oCg|g4$TZC;cbyJj5T- z(gxX2xT2A67koVt$_^5i`hMHD+XiDDtnAM2KFO2bH?4c&(!-%ZtzDydAu55S>YZYO zJ^!`*v4zU-l8>Xw#1J1LSRfxb>O_7>z3#th=)!Cm>E*Ch;G(_G&#BXQUPq_6PN ztAq^wukzBwdg{h*Bb;F!(FNKDN28RVa ze(W2Bv4gbspKwk`UVab;$#jTia|`H^lT_^}uA7a~O>O?8+k;lc6U_J9pFElCY-prl?PhNp}AU@7h<36jDtR)A3me zPRuRU1c$(-hI=l}GRI@K)@R<^u zw{a#_V)?sd2S$7jS1GTW^_}pY5E6)fdg#75GC^9$A;xeE$-V82oT9-=JSo}9jCtF_ zB%Px@Q5YsIxHUjFCMUBJ(Smy|9+KFXM&>&&6alh=5y__;t3N zQDt$*a@YP=7)K(4eksn+>NQnw@urjq#hv{N0c<&;G@Eme?|yB)`;^${9f54$iR(mT z0Rv#_%(vD!+PCmQ$kqUHRO8~8Soh9Hg5n9qj)5echTMDYBmXZF>cIJ7a-}~%x<5w6 zzo97iX0I&ye(y?BkiOTCG0FY#=^)Nnolajivrd=zG_rbsDB(6+P5X40ZsM;hu1;)s>tfPCS@`K9KsuSRq8m|`-{#D?ef|UB%^QuOX8~u18!z-tSGzCj_3Pp3LrJpzX_w71sc#gpkR|z&!b{oAx>dT>;DA z$NcCUhUHWSzUXs#UPdj-@CGir>warEFtC|{zc(?w96Bm7evdVwN3mBWY3=?K`O}Cm6cG zX5o616cB-3p{rx(f!jZNRoRp1fAh6L`(wV{76{);HrjE_nY@+>N0+!{1K(M%KJ8-zTh3- z{Bb)B;d3cSh(tiF?Xd3C+qs`kHq)cRjVWYs%|XKtYXTugzpp$Vje4MQ@j;a;Q}p^9 zBc=iPXQ(M@C}x8Fepy~^lfsG#x3=tCQK85lC@uq&26|ieC{$FAz<~No$c2Jdnfz~B z;ymjkrPw%}sbH5@q;=}_ z=h!JxhIH}I3%8v$#`u!=Fcwmq$?u>p`{Jj-6;j#06R9F%!}bdXN>|~b;2(G5X)=j| zr>cMI5#--TJwI^x7y7=ZU*4)e;KQ6;aQQO#aHr*G3hcPPawGkRkND{9MC8E-Bc^w` in7gBJTC~>3GDwd^XB?n2N&c>vf0od-0!m5+Q2YBGRQP5fBkUB3+swMY?oB znn>4xf`GIj2)rFU=biJuckjF3`|dw?zS)yCYu5bstTk(9)}9!;xR?MWz&}!T=wBl6 z-qZ?&8{+Tn>)?hWvLH7~{uq-jB@t!6DAId9(+t;Y8tu*aD8=6 z*i{8OB179$PxGp$J<8cv0Yd&4n@3&aHu!o7z~*Qwd@~C+qVtd)l`eHN%OO?g;mar% zb*&r}vq`byM7BrC+Zt#T1BZ!`FnJa%3FgM`m_no&bhQQj7?m#NI5JpizaM|%5wBLu z8AXqU=?QnF!{XGb*i90IJJVr0>Xd?hXO!@qCP_L%YW3Nu*EN}$j`78QsXEI7PI~HE z!qKTZlrK#T)V1U?$6>-;C>YFLZ3TR#dMz}H{{C-}l(Z<6#IKm@sLgUJ0?rNt0JQorYd>QCP${50BBncf!x$bqCJ%@2p%D|r z43%{{PefJKD$07v0d1pmVxywBAP1nJxo!%zF_8Y#Jb;6cV(i6gdzj$EQ-8)lMR%^ zR^!#&<;OuDOLd{5yF@2Q@qNQ3nI5Z@qZ&2=)V-ZrY_Soby+6 zDgfY(Vuoq)M*pLT<&9x;=n*c;zE2}kT#z3p-7EH{U%HQ2tX8}kR9chlV9=l|t!C8K zuNgCUEPcD2?Qv$r(yg>+Tu1mNILpGP_QQbFL&fftqIQ#r9Lrmn?b|E-Dv#vUoM0o- zM^!$cZrt+wSMEls+)BTp4d!aSzE66F=iy@+2&-}DnLVUEtN#oEJx4$voH2|;^y-6tUg+kJjR;qw@W`TC@H;eo`?u9NvxK|{nBC13YViLkG3KuR4 z=PxSe^Xue0Tjm$KmkB+sT5Tx%ud>9cgQoz%@FUI-k2paG*9Hm5sdd4%Kmz#Cb*F$% z4|@DRbTr%n4T|_k{_hh20FnajFtJ-GS?zRF-5OK<8dKf#a6|ZimE`nCW%WVB3WBQ+ zXmv<@{|(A3DEMubp^YIeSLz~fjSVl^qtsa`it~}V()o10v+7F>k=&rs&H*<-&AXu8 z45%K(Tg7RNip#J3(m9qnUnap^ggc)&3v#QoD@iN#%@w~%mx zk608qd@{fo0HUO{gbSD*5)_NFH4=oEpP*u-@SLb5#pOIdn8E_Rj45LJ3VdP@ zF|`+JF^+cJQi1R4jiRrP`Zq6XE-AQoTmtKqkf1{xbu`B zV#?pytPWwZ7dncLp388yHFLIL^G6V(ttK+Q`5|V^oXxJ>23xHrq8G-|_E{>1a1a?W zB#SUZBW%qO6XSBD=|toyQ-p;-h>S2BM-Ryok*DPmW|>4}vrP1iA1Lf>u@5)fLt9K_ zEQ});t{^4|aErZYu$74X7L8!L2Hy=e@sD2cbDo=sp0n^mC}e&_huUW#7tEb46vGzG zGiL}H&LEUIa*FM?1xt+We$KbO(4{~$g57IoxxZn9u6v{4uy=F}>6jHdV{ykeAZdY3 zsbzDi7+3zZOq8xjjJDUl3)}d zK(fHYd?$;1A&X3*xWbi&eAkAu0=L3qw_G<%tP8f#4Ob@Gl!D5TD3SF^f z9@xT?xI*E+LigS(H*D2fLlv^I%yT;5?X>ENEfj04dOcmX_M@S|qOka0uA6%<2z4r4 z_WE9~dr+<`E>{SLbI0LIaX2w6uob&fTzDxC&lZY8fjR_hG9Ah@O4%j!>ot7u$* ztQu*NiL|eEUI2yboUQiI6B%gRiO{79=NWuM)z7}F(nH+qgWC1OHlNk9O&S1T^8o-V z$>(&;994`!EVwHq*e6I)CBg<3DW4nnDlS8v2Gyu|Gx`;&c+*osUV6IpGBiCEMg>xq zw7lu*Fb{G7U{(P4t;sy$N(G{~Krp5N5V>Ry+B4t%bCsiZE@;(aT_Ah7k2WX#DPD6tPHoq8$TWzQ+11AMnCfZoFwh9us)!s6(!!}$)nJ8$| z)wT+-J2(Z?wccOA-Mx9^ue zf;W;uoq{(i1*XIMGMy3JuIIsH)lQvVNY+UcV7LStL_@fMc;=oSy#IHh^`ABThdqk_ zUr_&HkN+?D{{g}o|GBCDJNnT8DRDkPO3*(&Qwwym1Y;fHuIxw#DLk9wu(pt}L%(7d zC+LdbIHMR~ZsK*lppO=Of+4d|Fw1yQNM^a9fZ1w5@c|4LUx~+htQS<@_9&BEwzPaL zH<67Rcw5clQ3gigs6HvM0OLNke*}Nzz`U#ifZ?93P-@fuXm0mUmnLCTaCRV911HoOrPE-Wk_(Ku!4*SXN>L0tLSO;5MlmQ6 zi&KhNz;sTl)X&q60KhJS6i~&`zvj186!Ek2g!3Lw$lGKvv)q0I(=+*TU zKV~@?xXYY3Nl|3T@nd9nSDUhtrUiFzC;)9GV_<^{?Wk_s^%Jxv%4=JZz; zEHRkBpK7iCr!0W@sYVp6bFUJUqlV~4gtM`7aPvaBI5}Clpin+uL0)Jal;_3cl$ap2 zmyLz_6E-d=uRu&9HX;5&6~UuQY%&KmhiweAEkJ>Chu=@cC@zx2sQ`vTNJK~NPip)47O zI?5%+2qT!9xfe_C2I0pJn9e8uXWVj6cu&ysXR;rL$LB_>WdXw#sSG1JznT zJGY*tWAsz}m@KS^L(kz3e}}!vZ7j9f6?2|?`GB^1B#{wssEHwu;jn(%;rlWSLhd(J zjN@Hvmm5fm2nDJ~#&`ywS!~jM9j2+uB%cyX2Tx?MJZC#~S^b323k$X;i2YcXggC&6j=Ka{{*d_lGXpOB&J- zCdNNh4K$8o{NWLE=HrJWM<8`-Z(1OP659Q#Q~r4BGZ#UOdXxXn?8Z{p;L&DgJo%F$ zI?5NDQLV;?qqkCkAk8`bi$A3MCI>q>d;&gb(BG83aCYgW|LLTpMOY=rJj0!|-NbR< zZyR$B-+0t_*7J8vbL*IaAHZ;bT(#+9*XZFZb;bItw>(;_1{-*<(2PTlyA;@E04zBa zVD{ko{~KPQ`XNBx*fSm zR0Wq`JgEq@u3VxZvuwaWJ97LnzjwH_u#+OKRY|ooj)-F!B9{3b_LH~A4)H|H`jDMr-9*l z5Z{>0#_06Hq2IUYU+>sWMyBT+B@{T*UQT_hZ1i38691N58DAMMH7y$UIShGNbNf$V z{87P9Lvyosx#-aJ1#UKGI!jV9;P~O}X05PoM&bfjGG{b_PrkPEQIKvX8S9NG^*@hg z!h?qkXV$G3{p9IJZ}XHlGz<4KweleXE#8GF#*isr;$~(2t#eSo9o~{`a0_jlg!r_U zUbDFTQy;UPS;hP;y+*lwA1N+8GvfvTVXxkW2+KHHYf8?}c2FF+LX8SW9Y1vT4z@FB z-X#%Zm)uZEJfiWS@nVqyY}jY(Lr2NmS~dB2EUqdeUfD=1J1*ZF9I5Q*<=wph2%Y35 z$YYh}66G29m@_^;e9Oywq9;sUeO+m-BdjI0G0K3vkt#}kH_)G{ z`CTD~lEFZcDj*zj58bYO%o{Cn4IpGpezazu?}5>MZDHb-ACPWP0+dOj6a6?wB!e!f zK7#`nud&};nw}fJr1L=Qjv0H z<8r_G7KAw_!?D+j#^tG;iBw3I_}y(e8tLK!K{jhuQkGWIFm11S35Q{?W1F+jep$S= zJst{D8S%25yqBxV4M68=rxMQ7#2$am$e#*dFqd2M8W46VqnIc4?y}GG&W#_Hg#hch z-4kz`{`{F3}ecYccC1Z8!qjV#Hry`lgC7Q2t?g9;`@Mwa)1 zi?hkmku8}ispK4fz%}9HrbiN`-Z!oUp*OH*O#5bEne)mnai48nkW7a^j};sKS?Ak$ zzO_YTUp`MI&+!;GDGZSKeV5yo)dx5(Sl2dHu#qA^zNoLPe3E2T^{~n;S55!SFvWX{ zYBW$fCtG0qP@AXocbe`FMW7#GqkWv_#+d2ek@~Wt>GRf*pP)pAH~bj|Cd~^TErL|O z$P55KP?Q+Ni@dOJiz%2s$^f1#xq2F;_`yIdFemraCE+czyul-`U#{RIr$3<+mPQ#giJQskL1Gs8(o`k0L=wuj-FKR83FIWux0)xIi>~+0@8Sf2Ef2O=~z@`pb5Wc?C{gT<07)0 zEdS4Ie6GHb=!B2?~nqqWG~mK z0ViR`7e^|C8=tTI4KJY*3_8q4<{mUuK*S@PGCd{4BWr8r+xK|)7A0(H8^_<7YKOTG z&0JZx;T+QyYPg+yo}X+~5-C)CXT(KsYRuoauBs2hF?B9;0+w>Md!CJTd<#I&=ZtW* zYfKhRCFZ}x9=cMul5mTC+^Q>s+~i@TIJqe!c&^g2fHV}xp2;Gnzn!#)gae{=+-MJ! zNfGKxz1;Wf=AWMQOOpWteS7wew)!M=?%}K-226^wj-UN5f2Pd(Y%XCUV{8i|@WEo= zn6g9$!}TUKRe+DcX~;?|WgR#)jn`M;Kk}+3^(Iuh%krT)>eb-w@L6cITa;nLip1kjT7|?;dUQ>I@5RYzI`;)J~|wPYmQk z7p6DD&G7zm(RHN-M!;GjZ6tX-%SmB!K|&mlt8+vY^HAwkfhTtN$$;ZnvN161} zVa7I}P9H(-I<+eqE#`h@s{qZpV{wh2!knuV{I@dCW7ujsu93e1ujd<1He`LxRysM$@EL{^Y_b$_{|eSVZ$b2W3DCqIrA2k21J?&3 zv??B#2fn;OKc4-vv9w_m^2@=tTG~ILGS#{y>QC>guVn-kjrX};-_X#|rZR7D@2ZmR zi>r<4FZbP)E!LQ~#aJC{%~BuekgA;3*lY)Kd$^9j^v|)xFNHNDws#+1UZHfo{YcE! zNNT~p_ET-@xqyJOnh_9T{Q7vSR&MX_u={z_%XrRY%1>+))q#PZ;@TOqC(|2TLX(g#_?2pEEfs?Iq``K}f1fluu zWqqfk7#wd6Z;hR@bT5l<%s4$Il@ESwbi00y`O>smzRr5(dWlh`q)|3JKg}F-)}{x! zIm21pzB{m;RXz^&4!gk-qsso<=Hxd>uk|$H8lxV29fya+Xoq#_CQ`Djy+e(& z1H(<9d@L)uN9Ft1boZ7#H~!4}>=^<=-T{Ur93kJ9l+VytvGVrT&6Nf;Da(^!q{4p8 z9oUGQxSZCKHa zv?3sm)ytOW=@}|{Jy~4Klszr9xPGU{_bAQMF1wOl1+D2Yn&C=%fV^RVBx$pCOBk1@ zj<0_eaf4ob@t~aC`G)kw391bKe8h!p=tEEaTdYu9Dt)GoP0tZsLx&kwa2MuwtTvhb z7PxjTheAvnmtYAgx^-_lEs+FB61{(La<81^>GYKl`tFqOn&8G}1-fA@`;+WDTfQr- z?p*RDRVtTwh67W-NSLLG?q!Zft!;Hos}3ANA9;-WMieGn^M6?E$sSo($)n7Rjfr;r zL&Mz!Iqo^SWVYUDTt5Cmr=w-lj#gqmYy%M77N8cT*tGLw0x+K4(T~WkroehU*H*|J zXu={ARmoUuL?6mLSo~wMU-a(wa^zP<)@1yvMtq}P(ZtPTk9&zS<)ayWA6CLiq;qqe zc9Y`q&SLT3E_A<~5PRVBJ_jIYnnuBjV}fTtoP!F`D%nxZ_8fI=Zx-4f+1=oyfw6G2 zJthJ2n1;pF=tSvX4POEnij^;H){}hQlGwMuKzAuh@D6pL%ytxtyeS+e}NO5`Nd2^)>uC$d!{KP>gff1&fgTGCm9$ zuhMnMyqV*RPe>k3d9Qm{vYEeOrcTtqFC8jSi#GLn1GOwu;3V; z<0nTVx)~B>Cj)sN1GCEXoDwT1G#Eal$ZO`!wd(-g^^34zCdCsdGki6h0^q{#$yJ+ycb@$u{8GqT2vKNdL!Z}=Zu zeakH?A_*q^DP(E0sY}nI3Uj6uaiJ!IQ!wzs2^k-G3~C+}UJMGx3)pT`RW!S)jJ-c_ zlDE2Pe>T8x;}6S7#wQ!cE>koKZ^KP1X$1ElA#<#mOa+qjxe%r*@2Q*-#-PcC=s3YU zw;Z;}p5Lea!wqPrn!-1LWh66ikn?kbgYE>$lUI)~KZMgbs_2!!J5ueOh&OGQt+?2lX?7=d-Y4 z8GdFQK91?kCBbzcpCDP!xx7{DT2RqWYje}r)}WghAMT7eGjqK{kL%s=cc9Y8rwOmOz$LbKQDQFh&z+N2fQ;XkGxzZsQP4$^+Cga z&D|?@ou;u=??x6SUVBA6e2Xu1^xA~A>e_%$ews~etvr0vCJQ>$@J*M(QmV4B|1!Cc;7nT*R`LyA9VL)*jj$3 z)3+Rx-80=o+E29rY|qhbmp6hbB}|F`1w+M{0Ifqu*MU?l*cuNOvFP4CSI933@i_jPYz)Qv`L;+#HYbGC|hFstU&c~BQ&DdPVdZL!=F)Qra*e_9lMZ;W;H6S^KP{>+9g z_3&{j|EpkG?#ne75W7^Cyfem!lg``>1Lv`U=7rzqA2M&gMxjes4(A+P9*RP3O;WlkijHANt>x z`mK<@Z0*9bQ%{5Psq=%obmjM6`P_KF%s7b#Lr&G)bAXQ>7B9HI$$bHNC99pX zBB8$)j*rcYU03xIFE`vh9DK2bL0Jp7RNu?FOZat}Wyq}g=8UFN(16e!a?paXt-V)p zodGYJR!x6Tx$)9R&s0Ya6WhDN?pYz%mE;&190|HNi>L49B_&_c@38hMpw~Cix9#Jg r!+3;JyS*eMVFV4ZA!geEcmWaW;GgS2g;~*CD_sC^0#<-w8sL8cPdE>X literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/laserGreen04.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/laserGreen04.png new file mode 100644 index 0000000000000000000000000000000000000000..81f7e2b09a57b06394f87832ef6fbd52deaaabff GIT binary patch literal 1612 zcmbVMTWB0r7@kI}ZM2lo6pIb?IFXQ&&UH7l&X~1LX1ANg?lx|=B!y6WcINEvkexZ> z%-QTF3QD05#iH2ay5D@8rCH&SW6beNfQ z`_A{@{{tiG#G3X8+Zl#glN^p^=y)&v)~&jS{wLNyu!jz--QnFn!`!zn_*O7)9NEAy zE4!@hI2ljv&)rH0+A|QtfmJ?-{PR+BxGNbHRe@aZbIx1Sj zGaee9NoS3jNkcW+t&f3$szwQHL?EczCCAsQQMSgb(Rr{fu%HGZlTmgs5D3OoBS6O< z0{y(g8B$mV5tWw|QI*46fGkQ8L5v7eh!Z7ERJ4!^8V^gQd1hYA#I`qN(N&Z!65?ut zP^nb-N{Gi^L6B5c6+~H(WsV{^f7&6i$~k^_lOcwD!?RpsVFv_^Fo(+|%2G}1CfII^ z*6|x|q7DlQJ=ei7e>x^;Y$0P5OQ zswLx=y4ZG0giqpA)QpBhZi)7@(=HM+$j4>RK=CQ6W_MtXtLYws1bbPGOU*!yG*t$= z9t7qQ&^u;1Ca(CKm)$`zNKljw&N)$~Z&s#(3u%(n7er93LsQta^3%70_A56*Y1WvK zz<&jshL*>k4XMqR4GTzcodOG5p44<)!X6b&wF@oZPwM)Jhx1m69{8EW5J<*#MN$=o zlXs~jEi3URoc4`i z+G<#I(Q0|fp?%Jy4Q=k&4`Z|$UQWgav%N1}IdCR<*At!bFP>i7xm`N6<^6{)gW_g> zKLN*Aez@X1yYc6;mBA7AVB53PRX*%LPw zf5C&_rYGJ>jIR1FHorc1^n=~r#)rSwrSnIg?D?tlQY8HH!k53l_x5Ywe6?`t$N6oK zpS#$#^!-rBub*zZ|MYX-XD@y({&8mhptq=ZURk^8nQd|O*3`a4Z_f*f;YZ^KXFr*` zaJoa;wf9s;+4U~I`_=ldv literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/laserRed06.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/laserRed06.png new file mode 100644 index 0000000000000000000000000000000000000000..33b59cbc222dce637cbc22795aba93bf417fe517 GIT binary patch literal 816 zcmV-01JC@4P)BHc25c+B*8XNA<&^iDF|I0TogLEIEaggZsMkhi#WJAR5XjYbP?&$ zp%Ac;Rw@LsWN)#p^b6GT91Gp=J8+=A+%NOwcb=ESNk|sv-%h1+<@}56O3!~8Z5s2- z^YhFayA!7tJVOvX@FW3i&9iJJ^S=?x)&Tsk@m`fm`n^I#l*Yyk`iKYP<8t3WIFQ>E ze%{}=`V2hX4?Nv2zynVcV9(Rs@(R2n@pj5(>sIB(;h{17h@0iI-2d$N)4S_tR6kP2thRgw3-np zb^#uEngDyA=9X85<2~KlGKL> znV(^_R#uGRM+`Naa(~h7%54fei;GsDwZW4C!ISACzynVcV9(Rs@(R2{@fr>5smkM} zC1dyzL&L*ze{pgmw<&zTylnMZ8$1~hJee-tsxb3pKJa8ZW}ZO@o`<(*?s?6H1#19z z>vg&RW_~lYySggBb_z4_bU*NPJ7%6?2OfB$00)K$mogjAc>eQ6=i$+!qo^|b*c@`hb*5CsVJV}59Lt?v*Y`jmKo7Sz$tx826{^i-3+@`QG zGh@AfD^3Fd&$xczfhP&DY$Y}h3=Rxq;uMefaedvoRk=|r$?xC&6|;wPbJn(H#pzvx zCtrK;3_9?@69w4wM7V)G82GTZW}UW0J{Wj3KW|MQD^B|08B-TL@FW42t;9B<2Lmiy zLmxZ?@6F_-cdKH2GxXB@X6UosU2EI2;$#jUGfxs==1FV=I&E3DhCX=UNdoqsC%x)F u5`kx2NbtZj1dNoK2c98dq|7`6?>9InJc_sg literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/layer.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/layer.js new file mode 100644 index 0000000..261fe9a --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/layer.js @@ -0,0 +1,391 @@ +// @ts-check +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * Represents a layer of a scene, used to display objects. + * + * Viewports and multiple cameras are not supported. + * + * @class Layer + * @param {Object} layerData The data used to initialize the layer + * @param {gdjs.RuntimeScene} runtimeScene The scene in which the layer is used + * @memberof gdjs + */ +gdjs.Layer = function(layerData, runtimeScene) { + this._name = layerData.name; + this._cameraRotation = 0; + this._zoomFactor = 1; + this._timeScale = 1; + this._hidden = !layerData.visibility; + this._effects = layerData.effects || []; + this._cameraX = runtimeScene.getGame().getGameResolutionWidth() / 2; + this._cameraY = runtimeScene.getGame().getGameResolutionHeight() / 2; + this._cachedGameResolutionWidth = runtimeScene + .getGame() + .getGameResolutionWidth(); + this._cachedGameResolutionHeight = runtimeScene + .getGame() + .getGameResolutionHeight(); + this._runtimeScene = runtimeScene; + + // @ts-ignore - assume the proper renderer is passed + this._renderer = new gdjs.LayerRenderer(this, runtimeScene.getRenderer()); + this.show(!this._hidden); + this._setEffectsDefaultParameters(); +}; + +gdjs.Layer.prototype.getRenderer = function() { + return this._renderer; +}; + +/** + * Called by the RuntimeScene whenever the game resolution size is changed. + * Updates the layer width/height and position. + */ +gdjs.Layer.prototype.onGameResolutionResized = function() { + var oldGameResolutionWidth = this._cachedGameResolutionWidth; + var oldGameResolutionHeight = this._cachedGameResolutionHeight; + this._cachedGameResolutionWidth = this._runtimeScene + .getGame() + .getGameResolutionWidth(); + this._cachedGameResolutionHeight = this._runtimeScene + .getGame() + .getGameResolutionHeight(); + + // Adapt position of the camera center as: + // * Most cameras following a player/object on the scene will be updating this + // in events anyway. + // * Cameras not following a player/object are usually UIs which are intuitively + // expected not to "move". Not adapting the center position would make the camera + // move from its initial position (which is centered in the screen) - and anchor + // behavior would behave counterintuitively. + this._cameraX += + (this._cachedGameResolutionWidth - oldGameResolutionWidth) / 2; + this._cameraY += + (this._cachedGameResolutionHeight - oldGameResolutionHeight) / 2; + this._renderer.updatePosition(); +}; + +/** + * Returns the scene the layer belongs to + * @returns {gdjs.RuntimeScene} the scene the layer belongs to + */ +gdjs.Layer.prototype.getRuntimeScene = function() { + return this._runtimeScene; +}; + +/** + * Called at each frame, after events are run and before rendering. + * @param {gdjs.RuntimeScene} runtimeScene The scene the layer belongs to. + */ +gdjs.Layer.prototype.update = function(runtimeScene) { + return this._renderer.updateTime(); +}; + +/** + * Get the name of the layer + * @return {String} The name of the layer + */ +gdjs.Layer.prototype.getName = function() { + return this._name; +}; + +/** + * Change the camera center X position. + * + * @param {number=} cameraId The camera number. Currently ignored. + * @return The x position of the camera + */ +gdjs.Layer.prototype.getCameraX = function(cameraId) { + return this._cameraX; +}; + +/** + * Change the camera center Y position. + * + * @param {number=} cameraId The camera number. Currently ignored. + * @return The y position of the camera + */ +gdjs.Layer.prototype.getCameraY = function(cameraId) { + return this._cameraY; +}; + +/** + * Set the camera center X position. + * + * @param {number} x The new x position + * @param {number=} cameraId The camera number. Currently ignored. + */ +gdjs.Layer.prototype.setCameraX = function(x, cameraId) { + this._cameraX = x; + this._renderer.updatePosition(); +}; + +/** + * Set the camera center Y position. + * + * @param {number} y The new y position + * @param {number=} cameraId The camera number. Currently ignored. + */ +gdjs.Layer.prototype.setCameraY = function(y, cameraId) { + this._cameraY = y; + this._renderer.updatePosition(); +}; + +/** + * Get the camera width (which can be different than the game resolution width + * if the camera is zoomed). + * + * @param {number=} cameraId The camera number. Currently ignored. + * @return {number} The width of the camera + */ +gdjs.Layer.prototype.getCameraWidth = function(cameraId) { + return (+this._cachedGameResolutionWidth * 1) / this._zoomFactor; +}; + +/** + * Get the camera height (which can be different than the game resolution height + * if the camera is zoomed). + * + * @param {number=} cameraId The camera number. Currently ignored. + * @return {number} The height of the camera + */ +gdjs.Layer.prototype.getCameraHeight = function(cameraId) { + return (+this._cachedGameResolutionHeight * 1) / this._zoomFactor; +}; + +/** + * Show (or hide) the layer. + * @param {boolean} enable true to show the layer, false to hide it. + */ +gdjs.Layer.prototype.show = function(enable) { + this._hidden = !enable; + this._renderer.updateVisibility(enable); +}; + +/** + * Check if the layer is visible. + * + * @return true if the layer is visible. + */ +gdjs.Layer.prototype.isVisible = function() { + return !this._hidden; +}; + +/** + * Set the zoom of a camera. + * + * @param {number} newZoom The new zoom. Must be superior to 0. 1 is the default zoom. + * @param {number=} cameraId The camera number. Currently ignored. + */ +gdjs.Layer.prototype.setCameraZoom = function(newZoom, cameraId) { + this._zoomFactor = newZoom; + this._renderer.updatePosition(); +}; + +/** + * Get the zoom of a camera. + * + * @param {number=} cameraId The camera number. Currently ignored. + * @return {number} The zoom. + */ +gdjs.Layer.prototype.getCameraZoom = function(cameraId) { + return this._zoomFactor; +}; + +/** + * Get the rotation of the camera, expressed in degrees. + * + * @param {number=} cameraId The camera number. Currently ignored. + * @return {number} The rotation, in degrees. + */ +gdjs.Layer.prototype.getCameraRotation = function(cameraId) { + return this._cameraRotation; +}; + +/** + * Set the rotation of the camera, expressed in degrees. + * The rotation is made around the camera center. + * + * @param {number} rotation The new rotation, in degrees. + * @param {number=} cameraId The camera number. Currently ignored. + */ +gdjs.Layer.prototype.setCameraRotation = function(rotation, cameraId) { + this._cameraRotation = rotation; + this._renderer.updatePosition(); +}; + +/** + * Convert a point from the canvas coordinates (For example, the mouse position) to the + * "world" coordinates. + * + * TODO: Update this method to store the result in a static array + * + * @param {number} x The x position, in canvas coordinates. + * @param {number} y The y position, in canvas coordinates. + * @param {number=} cameraId The camera number. Currently ignored. + */ +gdjs.Layer.prototype.convertCoords = function(x, y, cameraId) { + x -= this._cachedGameResolutionWidth / 2; + y -= this._cachedGameResolutionHeight / 2; + x /= Math.abs(this._zoomFactor); + y /= Math.abs(this._zoomFactor); + + // Only compute angle and cos/sin once (allow heavy optimization from JS engines). + var angleInRadians = (this._cameraRotation / 180) * Math.PI; + var tmp = x; + var cosValue = Math.cos(angleInRadians); + var sinValue = Math.sin(angleInRadians); + x = cosValue * x - sinValue * y; + y = sinValue * tmp + cosValue * y; + + return [x + this.getCameraX(cameraId), y + this.getCameraY(cameraId)]; +}; + +gdjs.Layer.prototype.convertInverseCoords = function(x, y, cameraId) { + x -= this.getCameraX(cameraId); + y -= this.getCameraY(cameraId); + + // Only compute angle and cos/sin once (allow heavy optimization from JS engines). + var angleInRadians = (this._cameraRotation / 180) * Math.PI; + var tmp = x; + var cosValue = Math.cos(-angleInRadians); + var sinValue = Math.sin(-angleInRadians); + x = cosValue * x - sinValue * y; + y = sinValue * tmp + cosValue * y; + + x *= Math.abs(this._zoomFactor); + y *= Math.abs(this._zoomFactor); + + return [ + x + this._cachedGameResolutionWidth / 2, + y + this._cachedGameResolutionHeight / 2, + ]; +}; + +gdjs.Layer.prototype.getWidth = function() { + return this._cachedGameResolutionWidth; +}; + +gdjs.Layer.prototype.getHeight = function() { + return this._cachedGameResolutionHeight; +}; + +gdjs.Layer.prototype.getEffects = function() { + return this._effects; +}; + +/** + * Change an effect parameter value (for parameters that are numbers). + * @param {string} name The name of the effect to update. + * @param {string} parameterName The name of the parameter to update. + * @param {number} value The new value (number). + */ +gdjs.Layer.prototype.setEffectDoubleParameter = function( + name, + parameterName, + value +) { + return this._renderer.setEffectDoubleParameter(name, parameterName, value); +}; + +/** + * Change an effect parameter value (for parameters that are strings). + * @param {string} name The name of the effect to update. + * @param {string} parameterName The name of the parameter to update. + * @param {string} value The new value (string). + */ +gdjs.Layer.prototype.setEffectStringParameter = function( + name, + parameterName, + value +) { + return this._renderer.setEffectStringParameter(name, parameterName, value); +}; + +/** + * Change an effect parameter value (for parameters that are booleans). + * @param {string} name The name of the effect to update. + * @param {string} parameterName The name of the parameter to update. + * @param {boolean} value The new value (boolean). + */ +gdjs.Layer.prototype.setEffectBooleanParameter = function( + name, + parameterName, + value +) { + return this._renderer.setEffectBooleanParameter(name, parameterName, value); +}; + +/** + * Enable or disable an effect. + * @param {string} name The name of the effect to enable or disable. + * @param {boolean} enable true to enable, false to disable + */ +gdjs.Layer.prototype.enableEffect = function(name, enable) { + this._renderer.enableEffect(name, enable); +}; + +/** + * Check if an effect is enabled + * @param {string} name The name of the effect + * @return {boolean} true if the effect is enabled, false otherwise. + */ +gdjs.Layer.prototype.isEffectEnabled = function(name) { + return this._renderer.isEffectEnabled(name); +}; + +gdjs.Layer.prototype._setEffectsDefaultParameters = function() { + for (var i = 0; i < this._effects.length; ++i) { + var effect = this._effects[i]; + for (var name in effect.doubleParameters) { + this.setEffectDoubleParameter( + effect.name, + name, + effect.doubleParameters[name] + ); + } + for (var name in effect.stringParameters) { + this.setEffectStringParameter( + effect.name, + name, + effect.stringParameters[name] + ); + } + for (var name in effect.booleanParameters) { + this.setEffectBooleanParameter( + effect.name, + name, + effect.booleanParameters[name] + ); + } + } +}; + +/** + * Set the time scale for the objects on the layer: + * time will be slower if time scale is < 1, faster if > 1. + * @param {number} timeScale The new time scale (must be positive). + */ +gdjs.Layer.prototype.setTimeScale = function(timeScale) { + if (timeScale >= 0) this._timeScale = timeScale; +}; + +/** + * Get the time scale for the objects on the layer. + */ +gdjs.Layer.prototype.getTimeScale = function() { + return this._timeScale; +}; + +/** + * Return the time elapsed since the last frame, + * in milliseconds, for objects on the layer. + */ +gdjs.Layer.prototype.getElapsedTime = function() { + return this._runtimeScene.getTimeManager().getElapsedTime() * this._timeScale; +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/libs/hshg.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/libs/hshg.js new file mode 100644 index 0000000..fee15de --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/libs/hshg.js @@ -0,0 +1,617 @@ +// Hierarchical Spatial Hash Grid: HSHG +//Note that this file has been customized so that HSHG is put into the gdjs object. +//Thus, it must be included after gd.js + +/** + * @namespace + * @memberof gdjs + */ +gdjs.HSHG = gdjs.HSHG || {}; + +(function(root, undefined){ + +//--------------------------------------------------------------------- +// GLOBAL FUNCTIONS +//--------------------------------------------------------------------- + +/** + * Updates every object's position in the grid, but only if + * the hash value for that object has changed. + * This method DOES NOT take into account object expansion or + * contraction, just position, and does not attempt to change + * the grid the object is currently in; it only (possibly) changes + * the cell. + * + * If the object has significantly changed in size, the best bet is to + * call removeObject() and addObject() sequentially, outside of the + * normal update cycle of HSHG. + * + * @return void + */ +function update_RECOMPUTE(){ + + var i + ,obj + ,grid + ,meta + ,objAABB + ,newObjHash; + + // for each object + for(i = 0; i < this._globalObjects.length; i++){ + obj = this._globalObjects[i]; + meta = obj.HSHG; + grid = meta.grid; + + // recompute hash + objAABB = obj.getAABB(); + newObjHash = grid.toHash(objAABB.min[0], objAABB.min[1]); + + if(newObjHash !== meta.hash){ + // grid position has changed, update! + grid.removeObject(obj); + grid.addObject(obj, newObjHash); + } + } +} + +function update_REMOVEALL(){ +// not implemented yet :) +} + +function testAABBOverlap(objA, objB){ + var a = objA.getAABB() + ,b = objB.getAABB(); + + if(a.min[0] > b.max[0] || a.min[1] > b.max[1] + || a.max[0] < b.min[0] || a.max[1] < b.min[1]){ + return false; + } else { + return true; + } +} + +function getLongestAABBEdge(min, max){ + return Math.max( + Math.abs(max[0] - min[0]) + ,Math.abs(max[1] - min[1]) + ); +} + +//--------------------------------------------------------------------- +// ENTITIES +//--------------------------------------------------------------------- + +/** + * A hierarchical spatial grid containing objects and allowing fast test collisions between them. + * + * @class HSHG + * @memberof gdjs.HSHG + * @constructor + */ +function HSHG(){ + + this.MAX_OBJECT_CELL_DENSITY = 1/8 // objects / cells + this.INITIAL_GRID_LENGTH = 256 // 16x16 + this.HIERARCHY_FACTOR = 2 + this.HIERARCHY_FACTOR_SQRT = Math.SQRT2 + this.UPDATE_METHOD = update_RECOMPUTE // or update_REMOVEALL + + this._grids = []; + this._globalObjects = []; +} + +/** + * Add an object to the grid. The object can be anything as long as it provides a getAABB method. + * An 'HSHG' property is added to the object, and is then deleted when the object is removed from the HSHG. + */ +HSHG.prototype.addObject = function(obj){ + var x ,i + ,cellSize + ,objAABB = obj.getAABB() + ,objSize = getLongestAABBEdge(objAABB.min, objAABB.max) + ,oneGrid, newGrid; + + // for HSHG metadata + obj.HSHG = { + globalObjectsIndex: this._globalObjects.length + }; //TODO: recycle existing object if necessary. + + // add to global object array + this._globalObjects.push(obj); + + if(this._grids.length === 0) { + // no grids exist yet + cellSize = objSize * this.HIERARCHY_FACTOR_SQRT; + newGrid = new Grid(cellSize, this.INITIAL_GRID_LENGTH, this); + newGrid.initCells(); + newGrid.addObject(obj); + + this._grids.push(newGrid); + } else { + x = 0; + + // grids are sorted by cellSize, smallest to largest + for(i = 0; i < this._grids.length; i++){ + oneGrid = this._grids[i]; + x = oneGrid.cellSize; + if(objSize < x){ + x = x / this.HIERARCHY_FACTOR; + if(objSize < x) { + // find appropriate size + while( objSize < x ) { + x = x / this.HIERARCHY_FACTOR; + } + newGrid = new Grid(x * this.HIERARCHY_FACTOR, this.INITIAL_GRID_LENGTH, this); + newGrid.initCells(); + // assign obj to grid + newGrid.addObject(obj) + // insert grid into list of grids directly before oneGrid + this._grids.splice(i, 0, newGrid); + } else { + // insert obj into grid oneGrid + oneGrid.addObject(obj); + } + return; + } + } + + while( objSize >= x ){ + x = x * this.HIERARCHY_FACTOR; + } + + newGrid = new Grid(x, this.INITIAL_GRID_LENGTH, this); + newGrid.initCells(); + // insert obj into grid + newGrid.addObject(obj) + // add newGrid as last element in grid list + this._grids.push(newGrid); + } +}; + +/** + * Remove an object from the HSHG. The object must be in the HSHG before being removed. + */ +HSHG.prototype.removeObject = function(obj){ + var meta = obj.HSHG + ,globalObjectsIndex + ,replacementObj; + + if(meta === undefined){ + throw Error( obj + ' was not in the HSHG.' ); + return; + } + + // remove object from global object list + globalObjectsIndex = meta.globalObjectsIndex + if(globalObjectsIndex === this._globalObjects.length - 1){ + this._globalObjects.pop(); + } else { + replacementObj = this._globalObjects.pop(); + replacementObj.HSHG.globalObjectsIndex = globalObjectsIndex; + this._globalObjects[ globalObjectsIndex ] = replacementObj; + } + + meta.grid.removeObject(obj); + + // remove meta data + delete obj.HSHG; +}; + + +/** + * Must be called when objects have been moved ( typically at each "tick" of the game/simulation ). + */ +HSHG.prototype.update = function(){ + this.UPDATE_METHOD.call(this); +}; + +/** + * Return a list of objects colliding with theObject. + * @param {gdjs.RuntimeObject} theObject The object to be tested against. + */ +HSHG.prototype.queryForCollisionWith = function(theObject, result){ + + var i, j, k, l, c + ,grid + ,cell + ,objA + ,objB + ,offset + ,adjacentCell + ,biggerGrid + ,objAAABB + ,objAHashInBiggerGrid; + + result.length = 0; + + theObject.HSHG.excludeMe = true; + var theObjectAABB = theObject.getAABB(); + var theObjectHashInItsGrid = theObject.HSHG.grid.toHash(theObjectAABB.min[0], theObjectAABB.min[1]); + var theObjectCellInItsGrid = theObject.HSHG.grid.allCells[theObjectHashInItsGrid]; + + // default broad test to internal aabb overlap test + broadOverlapTest = testAABBOverlap; + + // for all grids ordered by cell size ASC + for(i = 0; i < this._grids.length; i++){ + grid = this._grids[i]; + + if ( grid.cellSize === theObject.HSHG.grid.cellSize ) { //We're in the grid of theObject: + + // 1)Test against neighbors: + + // For each cell of the grid that is occupied + for(j = 0; j < grid.occupiedCells.length; j++){ + cell = grid.occupiedCells[j]; + + // Collide all objects within the occupied cell + for(l = 0; l < cell.objectContainer.length; l++){ + objB = cell.objectContainer[l]; //Note that objB could be theObject. + if(!objB.HSHG.excludeMe && broadOverlapTest(theObject, objB) === true){ + result.push( objB ); + } + } + + // For the first half of all adjacent cells (offset 4 is the current cell) + for(c = 0; c < 4; c++){ + offset = cell.neighborOffsetArray[c]; + adjacentCell = grid.allCells[ cell.allCellsIndex + offset ]; + + // Collide all objects in cell with adjacent cell + for(l = 0; l < adjacentCell.objectContainer.length; l++){ + objB = adjacentCell.objectContainer[l]; //Note that objB could be theObject. + if(!objB.HSHG.excludeMe && broadOverlapTest(theObject, objB) === true){ + result.push( objB ); + } + } + } + } + + // 2)Test against objects of bigger grids: + + // For all grids with cellsize larger than the grid of theObject: + for(k = i + 1; k < this._grids.length; k++){ + biggerGrid = this._grids[k]; + var objectHashInBiggerGrid = biggerGrid.toHash(theObjectAABB.min[0], theObjectAABB.min[1]); + cell = biggerGrid.allCells[objectHashInBiggerGrid]; + + // Check theObject against every object in all cells in offset array of cell + // for all adjacent cells... + for(c = 0; c < cell.neighborOffsetArray.length; c++){ + offset = cell.neighborOffsetArray[c]; + adjacentCell = biggerGrid.allCells[ cell.allCellsIndex + offset ]; + + // for all objects in the adjacent cell... + for(l = 0; l < adjacentCell.objectContainer.length; l++){ + objB = adjacentCell.objectContainer[l]; + + // Test against theObject: Note that objB is necessarily different from theObject. + if(broadOverlapTest(theObject, objB) === true){ + result.push( objB ); + } + } + } + } + + break; //All collisions with object have now been registered + } + else if ( grid.cellSize < theObject.HSHG.grid.cellSize ) { //We're in a grid with smaller objects + + // For all objects that are stored in this smaller grid + for(j = 0; j < grid.allObjects.length; j++){ + + //Get the object of the smaller grid. + objA = grid.allObjects[j]; + objAAABB = objA.getAABB(); + + //Get its position in the (bigger) grid containing theObject. + objAHashInBiggerGrid = theObject.HSHG.grid.toHash(objAAABB.min[0], objAAABB.min[1]); + + //Check if it is near theObject (i.e: Check if the cell of objA is a neighbor of the cell + //of theObject ). + var objAIsInAdjacentCellToObject = false; + for(c = 0; c < theObjectCellInItsGrid.neighborOffsetArray.length; c++){ + offset = theObjectCellInItsGrid.neighborOffsetArray[c]; + if ( objAHashInBiggerGrid === theObjectCellInItsGrid.allCellsIndex + offset ) { + objAIsInAdjacentCellToObject = true; + break; + } + } + + //If objA is near theObject, trigger a collision test. + if ( objAIsInAdjacentCellToObject ) { + //Note that objA is necessarily different from theObject + if(broadOverlapTest(theObject, objA) === true){ + result.push( objA ); + } + } + } + } + } + + delete theObject.HSHG.excludeMe; +}; + +HSHG.update_RECOMPUTE = update_RECOMPUTE; +HSHG.update_REMOVEALL = update_REMOVEALL; + +/** + * Grid + * + * @class Grid + * @memberof gdjs.HSHG + * @constructor + * @param cellSize {int} the pixel size of each cell of the grid + * @param cellCount {int} the total number of cells for the grid (width x height) + * @param parentHierarchy {HSHG} the HSHG to which this grid belongs + * @return void + */ +function Grid(cellSize, cellCount, parentHierarchy){ + this.cellSize = cellSize; + this.inverseCellSize = 1/cellSize; + this.rowColumnCount = ~~Math.sqrt(cellCount); + this.xyHashMask = this.rowColumnCount - 1; + this.occupiedCells = []; + this.allCells = Array(this.rowColumnCount*this.rowColumnCount); + this.allObjects = []; + this.sharedInnerOffsets = []; + + this._parentHierarchy = parentHierarchy || null; +} + +Grid.prototype.initCells = function(){ + + // TODO: inner/unique offset rows 0 and 2 may need to be + // swapped due to +y being "down" vs "up" + + var i, gridLength = this.allCells.length + ,x, y + ,wh = this.rowColumnCount + ,isOnRightEdge, isOnLeftEdge, isOnTopEdge, isOnBottomEdge + ,innerOffsets = [ + // y+ down offsets + //-1 + -wh, -wh, -wh + 1, + //-1, 0, 1, + //wh - 1, wh, wh + 1 + + // y+ up offsets + wh - 1, wh, wh + 1, + -1, 0, 1, + -1 + -wh, -wh, -wh + 1 + ] + ,leftOffset, rightOffset, topOffset, bottomOffset + ,uniqueOffsets = [] + ,cell; + + this.sharedInnerOffsets = innerOffsets; + + // init all cells, creating offset arrays as needed + + for(i = 0; i < gridLength; i++){ + + cell = new Cell(); + // compute row (y) and column (x) for an index + y = ~~(i / this.rowColumnCount); + x = ~~(i - (y*this.rowColumnCount)); + + // reset / init + isOnRightEdge = false; + isOnLeftEdge = false; + isOnTopEdge = false; + isOnBottomEdge = false; + + // right or left edge cell + if((x+1) % this.rowColumnCount == 0){ isOnRightEdge = true; } + else if(x % this.rowColumnCount == 0){ isOnLeftEdge = true; } + + // top or bottom edge cell + if((y+1) % this.rowColumnCount == 0){ isOnTopEdge = true; } + else if(y % this.rowColumnCount == 0){ isOnBottomEdge = true; } + + // if cell is edge cell, use unique offsets, otherwise use inner offsets + if(isOnRightEdge || isOnLeftEdge || isOnTopEdge || isOnBottomEdge){ + + // figure out cardinal offsets first + rightOffset = isOnRightEdge === true ? -wh + 1 : 1; + leftOffset = isOnLeftEdge === true ? wh - 1 : -1; + topOffset = isOnTopEdge === true ? -gridLength + wh : wh; + bottomOffset = isOnBottomEdge === true ? gridLength - wh : -wh; + + // diagonals are composites of the cardinals + uniqueOffsets = [ + // y+ down offset + //leftOffset + bottomOffset, bottomOffset, rightOffset + bottomOffset, + //leftOffset, 0, rightOffset, + //leftOffset + topOffset, topOffset, rightOffset + topOffset + + // y+ up offset + leftOffset + topOffset, topOffset, rightOffset + topOffset, + leftOffset, 0, rightOffset, + leftOffset + bottomOffset, bottomOffset, rightOffset + bottomOffset + ]; + + cell.neighborOffsetArray = uniqueOffsets; + } else { + cell.neighborOffsetArray = this.sharedInnerOffsets; + } + + cell.allCellsIndex = i; + this.allCells[i] = cell; + } +} + +Grid.prototype.toHash = function(x, y, z){ + var i, xHash, yHash, zHash; + + if(x < 0){ + i = (-x) * this.inverseCellSize; + xHash = this.rowColumnCount - 1 - ( ~~i & this.xyHashMask ); + } else { + i = x * this.inverseCellSize; + xHash = ~~i & this.xyHashMask; + } + + if(y < 0){ + i = (-y) * this.inverseCellSize; + yHash = this.rowColumnCount - 1 - ( ~~i & this.xyHashMask ); + } else { + i = y * this.inverseCellSize; + yHash = ~~i & this.xyHashMask; + } + + return xHash + yHash * this.rowColumnCount; +} + +Grid.prototype.addObject = function(obj, hash){ + var objAABB + ,objHash + ,targetCell; + + // technically, passing this in this should save some computational effort when updating objects + if(hash !== undefined){ + objHash = hash; + } else { + objAABB = obj.getAABB() + objHash = this.toHash(objAABB.min[0], objAABB.min[1]) + } + targetCell = this.allCells[objHash]; + + if(targetCell.objectContainer.length === 0){ + // insert this cell into occupied cells list + targetCell.occupiedCellsIndex = this.occupiedCells.length; + this.occupiedCells.push(targetCell); + } + + // add meta data to obj, for fast update/removal + obj.HSHG.objectContainerIndex = targetCell.objectContainer.length; + obj.HSHG.hash = objHash; + obj.HSHG.grid = this; + obj.HSHG.allGridObjectsIndex = this.allObjects.length; + // add obj to cell + targetCell.objectContainer.push(obj); + + // we can assume that the targetCell is already a member of the occupied list + + // add to grid-global object list + this.allObjects.push(obj); + + // do test for grid density + if(this.allObjects.length / this.allCells.length > this._parentHierarchy.MAX_OBJECT_CELL_DENSITY){ + // grid must be increased in size + this.expandGrid(); + } +} + +Grid.prototype.removeObject = function(obj){ + var meta = obj.HSHG + ,hash + ,containerIndex + ,allGridObjectsIndex + ,cell + ,replacementCell + ,replacementObj; + + hash = meta.hash; + containerIndex = meta.objectContainerIndex; + allGridObjectsIndex = meta.allGridObjectsIndex; + cell = this.allCells[hash]; + + // remove object from cell object container + if(cell.objectContainer.length === 1){ + // this is the last object in the cell, so reset it + cell.objectContainer.length = 0; + + // remove cell from occupied list + if(cell.occupiedCellsIndex === this.occupiedCells.length - 1){ + // special case if the cell is the newest in the list + this.occupiedCells.pop(); + } else { + replacementCell = this.occupiedCells.pop(); + replacementCell.occupiedCellsIndex = cell.occupiedCellsIndex; + this.occupiedCells[ cell.occupiedCellsIndex ] = replacementCell; + } + + cell.occupiedCellsIndex = null; + } else { + // there is more than one object in the container + if(containerIndex === cell.objectContainer.length - 1){ + // special case if the obj is the newest in the container + cell.objectContainer.pop(); + } else { + replacementObj = cell.objectContainer.pop(); + replacementObj.HSHG.objectContainerIndex = containerIndex; + cell.objectContainer[ containerIndex ] = replacementObj; + } + } + + // remove object from grid object list + if(allGridObjectsIndex === this.allObjects.length - 1){ + this.allObjects.pop(); + } else { + replacementObj = this.allObjects.pop(); + replacementObj.HSHG.allGridObjectsIndex = allGridObjectsIndex; + this.allObjects[ allGridObjectsIndex ] = replacementObj; + } +} + +Grid.prototype.expandGrid = function(){ + var i, j + ,currentCellCount = this.allCells.length + ,currentRowColumnCount = this.rowColumnCount + ,currentXYHashMask = this.xyHashMask + + ,newCellCount = currentCellCount * 4 // double each dimension + ,newRowColumnCount = ~~Math.sqrt(newCellCount) + ,newXYHashMask = newRowColumnCount - 1 + ,allObjects = this.allObjects.slice(0) // duplicate array, not objects contained + ,aCell + ,push = Array.prototype.push; + + // remove all objects + for(i = 0; i < allObjects.length; i++){ + this.removeObject(allObjects[i]); + } + + // reset grid values, set new grid to be 4x larger than last + this.rowColumnCount = newRowColumnCount; + this.allCells = Array(this.rowColumnCount*this.rowColumnCount); + this.xyHashMask = newXYHashMask; + + // initialize new cells + this.initCells(); + + // re-add all objects to grid + for(i = 0; i < allObjects.length; i++){ + this.addObject(allObjects[i]); + } +} + +/** + * A cell of a grid + * + * @class Cell + * @memberof gdjs.HSHG + * @constructor + * @private + */ +function Cell(){ + this.objectContainer = []; + this.neighborOffsetArray; + this.occupiedCellsIndex = null; + this.allCellsIndex = null; +} + +//--------------------------------------------------------------------- +// EXPORTS +//--------------------------------------------------------------------- + +root['HSHG'] = HSHG; +HSHG._private = { + Grid: Grid, + Cell: Cell, + testAABBOverlap: testAABBOverlap, + getLongestAABBEdge: getLongestAABBEdge +}; + +})(gdjs.HSHG); diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/libs/jshashtable.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/libs/jshashtable.js new file mode 100644 index 0000000..33759c8 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/libs/jshashtable.js @@ -0,0 +1,134 @@ +// @ts-check +/** + * A generic map (key-value) container. + * + * Mostly used for storing lists of objects for + * GDevelop generated events. + * + * @constructor + */ +function Hashtable() +{ + /** + * The content of the Hashtable. Prefer using methods rather + * than accessing this internal object, unless you need to iterate + * on the values. + * @type {Object.} + */ + this.items = {}; +} + +/** + * Construct a Hashtable from a JS object. + * + * @param {Object.} items The content of the Hashtable. + * @returns {Hashtable} The new hashtable. + * @static + */ +Hashtable.newFrom = function(items) { + var hashtable = new Hashtable(); + hashtable.items = items; + return hashtable; +} + +/** + * Add a key-value pair to the Hashtable. + * If a value already exists for this key, it is overwritten. + * + * @memberof Hashtable + * @param {string} key The key. + * @param {any} value The value to associate to the key. + */ +Hashtable.prototype.put = function(key, value) { + this.items[key] = value; +} + +/** + * Get a value corresponding to a key, or undefined if not found. + * + * @memberof Hashtable + * @param {string} key The key associated to the value. + */ +Hashtable.prototype.get = function(key) { + return this.items[key]; +} + +/** + * Verify if a key exists in the Hashtable. + * + * @memberof Hashtable + * @param {string} key The key to search in the Hashtable. + * @returns {boolean} true if the key exists. + */ +Hashtable.prototype.containsKey = function(key) { + return this.items.hasOwnProperty(key); +} + +/** + * Remove the value associated to the specified key. + * + * @memberof Hashtable + * @param {string} key The key to remove. + */ +Hashtable.prototype.remove = function(key) { + delete this.items[key]; +} + +/** + * Get the first key of the Hashtable. + * + * @memberof Hashtable + * @returns {?string} The first key of the Hashtable, or undefined if empty. + */ +Hashtable.prototype.firstKey = function() { + for (var k in this.items) { + if (this.items.hasOwnProperty(k)) { + return k; + } + } + + return null; +} + +/** + * Dump all the keys of the Hashtable to an array (which is cleared first). + * + * @memberof Hashtable + * @param {Array} result The Array where the result gets pushed. + */ +Hashtable.prototype.keys = function(result) { + result.length = 0; + for (var k in this.items) { + if (this.items.hasOwnProperty(k)) { + result.push(k); + } + } +} + +/** + * Dump all the values of the Hashtable to an array (which is cleared first). + * + * @memberof Hashtable + * @param {Array} result The Array where the results get pushed. + */ +Hashtable.prototype.values = function(result) { + result.length = 0; + for (var k in this.items) { + if (this.items.hasOwnProperty(k)) { + result.push(this.items[k]); + } + } +} + +/** + * Clear the Hashtable. + * + * @memberof Hashtable + */ +Hashtable.prototype.clear = function() { + for (var k in this.items) { + if (this.items.hasOwnProperty(k)) { + delete this.items[k]; + } + } +} diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/libs/rbush.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/libs/rbush.js new file mode 100644 index 0000000..151de67 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/libs/rbush.js @@ -0,0 +1,624 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.rbush = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 0) { + if (insertPath[level].children.length > this._maxEntries) { + this._split(insertPath, level); + level--; + } else break; + } + + // adjust bboxes along the insertion path + this._adjustParentBBoxes(bbox, insertPath, level); + }, + + // split overflowed node into two + _split: function (insertPath, level) { + + var node = insertPath[level], + M = node.children.length, + m = this._minEntries; + + this._chooseSplitAxis(node, m, M); + + var splitIndex = this._chooseSplitIndex(node, m, M); + + var newNode = createNode(node.children.splice(splitIndex, node.children.length - splitIndex)); + newNode.height = node.height; + newNode.leaf = node.leaf; + + calcBBox(node, this.toBBox); + calcBBox(newNode, this.toBBox); + + if (level) insertPath[level - 1].children.push(newNode); + else this._splitRoot(node, newNode); + }, + + _splitRoot: function (node, newNode) { + // split root node + this.data = createNode([node, newNode]); + this.data.height = node.height + 1; + this.data.leaf = false; + calcBBox(this.data, this.toBBox); + }, + + _chooseSplitIndex: function (node, m, M) { + + var i, bbox1, bbox2, overlap, area, minOverlap, minArea, index; + + minOverlap = minArea = Infinity; + + for (i = m; i <= M - m; i++) { + bbox1 = distBBox(node, 0, i, this.toBBox); + bbox2 = distBBox(node, i, M, this.toBBox); + + overlap = intersectionArea(bbox1, bbox2); + area = bboxArea(bbox1) + bboxArea(bbox2); + + // choose distribution with minimum overlap + if (overlap < minOverlap) { + minOverlap = overlap; + index = i; + + minArea = area < minArea ? area : minArea; + + } else if (overlap === minOverlap) { + // otherwise choose distribution with minimum area + if (area < minArea) { + minArea = area; + index = i; + } + } + } + + return index; + }, + + // sorts node children by the best axis for split + _chooseSplitAxis: function (node, m, M) { + + var compareMinX = node.leaf ? this.compareMinX : compareNodeMinX, + compareMinY = node.leaf ? this.compareMinY : compareNodeMinY, + xMargin = this._allDistMargin(node, m, M, compareMinX), + yMargin = this._allDistMargin(node, m, M, compareMinY); + + // if total distributions margin value is minimal for x, sort by minX, + // otherwise it's already sorted by minY + if (xMargin < yMargin) node.children.sort(compareMinX); + }, + + // total margin of all possible split distributions where each node is at least m full + _allDistMargin: function (node, m, M, compare) { + + node.children.sort(compare); + + var toBBox = this.toBBox, + leftBBox = distBBox(node, 0, m, toBBox), + rightBBox = distBBox(node, M - m, M, toBBox), + margin = bboxMargin(leftBBox) + bboxMargin(rightBBox), + i, child; + + for (i = m; i < M - m; i++) { + child = node.children[i]; + extend(leftBBox, node.leaf ? toBBox(child) : child); + margin += bboxMargin(leftBBox); + } + + for (i = M - m - 1; i >= m; i--) { + child = node.children[i]; + extend(rightBBox, node.leaf ? toBBox(child) : child); + margin += bboxMargin(rightBBox); + } + + return margin; + }, + + _adjustParentBBoxes: function (bbox, path, level) { + // adjust bboxes along the given tree path + for (var i = level; i >= 0; i--) { + extend(path[i], bbox); + } + }, + + _condense: function (path) { + // go through the path, removing empty nodes and updating bboxes + for (var i = path.length - 1, siblings; i >= 0; i--) { + if (path[i].children.length === 0) { + if (i > 0) { + siblings = path[i - 1].children; + siblings.splice(siblings.indexOf(path[i]), 1); + + } else this.clear(); + + } else calcBBox(path[i], this.toBBox); + } + }, + + _initFormat: function (format) { + // data format (minX, minY, maxX, maxY accessors) + + // uses eval-type function compilation instead of just accepting a toBBox function + // because the algorithms are very sensitive to sorting functions performance, + // so they should be dead simple and without inner calls + + var compareArr = ['return a', ' - b', ';']; + + this.compareMinX = new Function('a', 'b', compareArr.join(format[0])); + this.compareMinY = new Function('a', 'b', compareArr.join(format[1])); + + this.toBBox = new Function('a', + 'return {minX: a' + format[0] + + ', minY: a' + format[1] + + ', maxX: a' + format[2] + + ', maxY: a' + format[3] + '};'); + } +}; + +function findItem(item, items, equalsFn) { + if (!equalsFn) return items.indexOf(item); + + for (var i = 0; i < items.length; i++) { + if (equalsFn(item, items[i])) return i; + } + return -1; +} + +// calculate node's bbox from bboxes of its children +function calcBBox(node, toBBox) { + distBBox(node, 0, node.children.length, toBBox, node); +} + +// min bounding rectangle of node children from k to p-1 +function distBBox(node, k, p, toBBox, destNode) { + if (!destNode) destNode = createNode(null); + destNode.minX = Infinity; + destNode.minY = Infinity; + destNode.maxX = -Infinity; + destNode.maxY = -Infinity; + + for (var i = k, child; i < p; i++) { + child = node.children[i]; + extend(destNode, node.leaf ? toBBox(child) : child); + } + + return destNode; +} + +function extend(a, b) { + a.minX = Math.min(a.minX, b.minX); + a.minY = Math.min(a.minY, b.minY); + a.maxX = Math.max(a.maxX, b.maxX); + a.maxY = Math.max(a.maxY, b.maxY); + return a; +} + +function compareNodeMinX(a, b) { return a.minX - b.minX; } +function compareNodeMinY(a, b) { return a.minY - b.minY; } + +function bboxArea(a) { return (a.maxX - a.minX) * (a.maxY - a.minY); } +function bboxMargin(a) { return (a.maxX - a.minX) + (a.maxY - a.minY); } + +function enlargedArea(a, b) { + return (Math.max(b.maxX, a.maxX) - Math.min(b.minX, a.minX)) * + (Math.max(b.maxY, a.maxY) - Math.min(b.minY, a.minY)); +} + +function intersectionArea(a, b) { + var minX = Math.max(a.minX, b.minX), + minY = Math.max(a.minY, b.minY), + maxX = Math.min(a.maxX, b.maxX), + maxY = Math.min(a.maxY, b.maxY); + + return Math.max(0, maxX - minX) * + Math.max(0, maxY - minY); +} + +function contains(a, b) { + return a.minX <= b.minX && + a.minY <= b.minY && + b.maxX <= a.maxX && + b.maxY <= a.maxY; +} + +function intersects(a, b) { + return b.minX <= a.maxX && + b.minY <= a.maxY && + b.maxX >= a.minX && + b.maxY >= a.minY; +} + +function createNode(children) { + return { + children: children, + height: 1, + leaf: true, + minX: Infinity, + minY: Infinity, + maxX: -Infinity, + maxY: -Infinity + }; +} + +// sort an array so that items come in groups of n unsorted items, with groups sorted between each other; +// combines selection algorithm with binary divide & conquer approach + +function multiSelect(arr, left, right, n, compare) { + var stack = [left, right], + mid; + + while (stack.length) { + right = stack.pop(); + left = stack.pop(); + + if (right - left <= n) continue; + + mid = left + Math.ceil((right - left) / n / 2) * n; + quickselect(arr, mid, left, right, compare); + + stack.push(left, mid, mid, right); + } +} + +},{"quickselect":2}],2:[function(require,module,exports){ +'use strict'; + +module.exports = partialSort; + +// Floyd-Rivest selection algorithm: +// Rearrange items so that all items in the [left, k] range are smaller than all items in (k, right]; +// The k-th element will have the (k - left + 1)th smallest value in [left, right] + +function partialSort(arr, k, left, right, compare) { + + while (right > left) { + if (right - left > 600) { + var n = right - left + 1; + var m = k - left + 1; + var z = Math.log(n); + var s = 0.5 * Math.exp(2 * z / 3); + var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1); + var newLeft = Math.max(left, Math.floor(k - m * s / n + sd)); + var newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd)); + partialSort(arr, k, newLeft, newRight, compare); + } + + var t = arr[k]; + var i = left; + var j = right; + + swap(arr, left, k); + if (compare(arr[right], t) > 0) swap(arr, left, right); + + while (i < j) { + swap(arr, i, j); + i++; + j--; + while (compare(arr[i], t) < 0) i++; + while (compare(arr[j], t) > 0) j--; + } + + if (compare(arr[left], t) === 0) swap(arr, left, j); + else { + j++; + swap(arr, j, right); + } + + if (j <= k) left = j + 1; + if (k <= j) right = j - 1; + } +} + +function swap(arr, i, j) { + var tmp = arr[i]; + arr[i] = arr[j]; + arr[j] = tmp; +} + +function defaultCompare(a, b) { + return a < b ? -1 : a > b ? 1 : 0; +} + +},{}]},{},[1])(1) +}); diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/lose1.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/lose1.png new file mode 100644 index 0000000000000000000000000000000000000000..bde1f372f4b9a0368239ab7333656055da27e5a7 GIT binary patch literal 4821 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 literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/oncetriggers.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/oncetriggers.js new file mode 100644 index 0000000..5ddc88f --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/oncetriggers.js @@ -0,0 +1,52 @@ +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * OnceTriggers is used to store the status of the conditions "Trigger once", + * that are used in events to have conditions that are only valid for one frame in a row. + * + * @memberof gdjs + * @class OnceTriggers + * @constructor + */ +gdjs.OnceTriggers = function() +{ + this._onceTriggers = {}; + this._lastFrameOnceTrigger = {}; +}; + +/** + * To be called when events begin so that "Trigger once" conditions + * are properly handled. + */ +gdjs.OnceTriggers.prototype.startNewFrame = function() { + this._clearObject(this._lastFrameOnceTrigger); + for (var k in this._onceTriggers) { + if (this._onceTriggers.hasOwnProperty(k)) { + this._lastFrameOnceTrigger[k] = this._onceTriggers[k]; + delete this._onceTriggers[k]; + } + } +}; + +/** + * Used by "Trigger once" conditions: return true only if + * this method was not called with the same identifier during the last frame. + * @param triggerId The identifier of the "Trigger once" condition. + */ +gdjs.OnceTriggers.prototype.triggerOnce = function(triggerId) { + this._onceTriggers[triggerId] = true; + + return !this._lastFrameOnceTrigger.hasOwnProperty(triggerId); +}; + +gdjs.OnceTriggers.prototype._clearObject = function(obj) { + for (var k in obj) { + if (obj.hasOwnProperty(k)) { + delete obj[k]; + } + } +}; \ No newline at end of file diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/layer-pixi-renderer.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/layer-pixi-renderer.js new file mode 100644 index 0000000..e46bee2 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/layer-pixi-renderer.js @@ -0,0 +1,228 @@ +// @ts-check +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * The renderer for a gdjs.Layer using Pixi.js. + * + * @class LayerPixiRenderer + * @memberof gdjs + * @param {gdjs.Layer} layer The layer + * @param {gdjs.RuntimeScenePixiRenderer} runtimeSceneRenderer The scene renderer + */ +gdjs.LayerPixiRenderer = function(layer, runtimeSceneRenderer) { + // @ts-ignore + this._pixiContainer = new PIXI.Container(); + /** @type Object. */ + this._filters = {}; + this._layer = layer; + runtimeSceneRenderer.getPIXIContainer().addChild(this._pixiContainer); + + this._setupFilters(); +}; + +gdjs.LayerRenderer = gdjs.LayerPixiRenderer; //Register the class to let the engine use it. + +/** + * Update the position of the PIXI container. To be called after each change + * made to position, zoom or rotation of the camera. + * @private + */ +gdjs.LayerPixiRenderer.prototype.updatePosition = function() { + var angle = -gdjs.toRad(this._layer.getCameraRotation()); + var zoomFactor = this._layer.getCameraZoom(); + + this._pixiContainer.rotation = angle; + this._pixiContainer.scale.x = zoomFactor; + this._pixiContainer.scale.y = zoomFactor; + + var cosValue = Math.cos(angle); + var sinValue = Math.sin(angle); + var centerX = + this._layer.getCameraX() * zoomFactor * cosValue - + this._layer.getCameraY() * zoomFactor * sinValue; + var centerY = + this._layer.getCameraX() * zoomFactor * sinValue + + this._layer.getCameraY() * zoomFactor * cosValue; + + this._pixiContainer.position.x = -centerX; + this._pixiContainer.position.y = -centerY; + this._pixiContainer.position.x += this._layer.getWidth() / 2; + this._pixiContainer.position.y += this._layer.getHeight() / 2; +}; + +gdjs.LayerPixiRenderer.prototype.updateVisibility = function(visible) { + this._pixiContainer.visible = !!visible; +}; + +gdjs.LayerPixiRenderer.prototype.updateTime = function() { + for(var filterName in this._filters) { + var filter = this._filters[filterName]; + filter.update(filter.pixiFilter, this._layer); + } +}; + +gdjs.LayerPixiRenderer.prototype._setupFilters = function() { + var effects = this._layer.getEffects(); + if (effects.length === 0) { + return; + } + + this._filters = {}; + + // @ts-ignore + /** @type PIXI.Filter[] */ + var pixiFilters = []; + for (var i = 0; i < effects.length; ++i) { + var effect = effects[i]; + var filterCreator = gdjs.PixiFiltersTools.getFilterCreator( + effect.effectType + ); + if (!filterCreator) { + console.log( + 'Filter "' + + effect.name + + '" has an unknown effect type: "' + + effect.effectType + + '". Was it registered properly? Is the effect type correct?' + ); + continue; + } + + /** @type gdjsPixiFiltersToolsFilter */ + var filter = { + pixiFilter: filterCreator.makePIXIFilter(this._layer, effect), + updateDoubleParameter: filterCreator.updateDoubleParameter, + updateStringParameter: filterCreator.updateStringParameter, + updateBooleanParameter: filterCreator.updateBooleanParameter, + update: filterCreator.update, + }; + + pixiFilters.push(filter.pixiFilter); + this._filters[effect.name] = filter; + } + + this._pixiContainer.filters = pixiFilters; +}; + +/** + * Add a child to the pixi container associated to the layer. + * All objects which are on this layer must be children of this container. + * + * @param child The child (PIXI object) to be added. + * @param zOrder The z order of the associated object. + */ +gdjs.LayerPixiRenderer.prototype.addRendererObject = function(child, zOrder) { + child.zOrder = zOrder; //Extend the pixi object with a z order. + + for (var i = 0, len = this._pixiContainer.children.length; i < len; ++i) { + if (this._pixiContainer.children[i].zOrder >= zOrder) { + //TODO : Dichotomic search + this._pixiContainer.addChildAt(child, i); + return; + } + } + this._pixiContainer.addChild(child); +}; + +/** + * Change the z order of a child associated to an object. + * + * @param child The child (PIXI object) to be modified. + * @param newZOrder The z order of the associated object. + */ +gdjs.LayerPixiRenderer.prototype.changeRendererObjectZOrder = function( + child, + newZOrder +) { + this._pixiContainer.removeChild(child); + this.addRendererObject(child, newZOrder); +}; + +/** + * Remove a child from the internal pixi container. + * Should be called when an object is deleted or removed from the layer. + * + * @param child The child (PIXI object) to be removed. + */ +gdjs.LayerPixiRenderer.prototype.removeRendererObject = function(child) { + this._pixiContainer.removeChild(child); +}; + +/** + * Update the parameter of an effect (with a number). + * @param {string} name The effect name + * @param {string} parameterName The parameter name + * @param {number} value The new value for the parameter + */ +gdjs.LayerPixiRenderer.prototype.setEffectDoubleParameter = function( + name, + parameterName, + value +) { + var filter = this._filters[name]; + if (!filter) return; + + filter.updateDoubleParameter(filter.pixiFilter, parameterName, value); +}; + +/** + * Update the parameter of an effect (with a string). + * @param {string} name The effect name + * @param {string} parameterName The parameter name + * @param {string} value The new value for the parameter + */ +gdjs.LayerPixiRenderer.prototype.setEffectStringParameter = function( + name, + parameterName, + value +) { + var filter = this._filters[name]; + if (!filter) return; + + filter.updateStringParameter(filter.pixiFilter, parameterName, value); +}; + +/** + * Enable or disable the parameter of an effect (boolean). + * @param {string} name The effect name + * @param {string} parameterName The parameter name + * @param {boolean} value The new value for the parameter + */ +gdjs.LayerPixiRenderer.prototype.setEffectBooleanParameter = function( + name, + parameterName, + value +) { + var filter = this._filters[name]; + if (!filter) return; + + filter.updateBooleanParameter(filter.pixiFilter, parameterName, value); +}; + +/** + * Enable an effect. + * @param {string} name The effect name + * @param {boolean} value Set to true to enable, false to disable + */ +gdjs.LayerPixiRenderer.prototype.enableEffect = function(name, value) { + var filter = this._filters[name]; + if (!filter) return; + + gdjs.PixiFiltersTools.enableEffect(filter, value); +}; + +/** + * Check if an effect is enabled. + * @param {string} name The effect name + * @return {boolean} true if the filter is enabled + */ +gdjs.LayerPixiRenderer.prototype.isEffectEnabled = function(name) { + var filter = this._filters[name]; + if (!filter) return false; + + return gdjs.PixiFiltersTools.isEffectEnabled(filter); +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/loadingscreen-pixi-renderer.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/loadingscreen-pixi-renderer.js new file mode 100644 index 0000000..ed3d98b --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/loadingscreen-pixi-renderer.js @@ -0,0 +1,83 @@ +gdjs.LoadingScreenPixiRenderer = function(runtimeGamePixiRenderer, loadingScreenSetup) { + this._pixiRenderer = runtimeGamePixiRenderer.getPIXIRenderer(); + if (!this._pixiRenderer) { + // A PIXI Renderer can be missing during tests, when creating a runtime game + // without a canvas. + return; + } + + this._loadingScreen = new PIXI.Container(); + + this._progressText = new PIXI.Text(' ', { + fontSize: '30px', + fontFamily: 'Arial', + fill: '#FFFFFF', + align: 'center', + }); + this._loadingScreen.addChild(this._progressText); + + if (loadingScreenSetup && loadingScreenSetup.showGDevelopSplash) { + this._madeWithText = new PIXI.Text('Made with', { + fontSize: '30px', + fontFamily: 'Arial', + fill: '#FFFFFF', + align: 'center', + }); + this._madeWithText.position.y = this._pixiRenderer.height / 2 - 130; + this._websiteText = new PIXI.Text('gdevelop-app.com', { + fontSize: '30px', + fontFamily: 'Arial', + fill: '#FFFFFF', + align: 'center', + }); + this._websiteText.position.y = this._pixiRenderer.height / 2 + 100; + + this._splashImage = new PIXI.Sprite.fromImage(gdjs.splashImage); + this._splashImage.position.x = this._pixiRenderer.width / 2; + this._splashImage.position.y = this._pixiRenderer.height / 2; + this._splashImage.anchor.x = 0.5; + this._splashImage.anchor.y = 0.5; + this._splashImage.scale.x = this._pixiRenderer.width / 800; + this._splashImage.scale.y = this._pixiRenderer.width / 800; + this._loadingScreen.addChild(this._splashImage); + this._loadingScreen.addChild(this._madeWithText); + this._loadingScreen.addChild(this._websiteText); + } +}; + +gdjs.LoadingScreenRenderer = gdjs.LoadingScreenPixiRenderer; //Register the class to let the engine use it. + +gdjs.LoadingScreenPixiRenderer.prototype.render = function(percent) { + if (!this._pixiRenderer) { + return; + } + + var screenBorder = 10; + + if (this._madeWithText) { + this._madeWithText.position.x = + this._pixiRenderer.width / 2 - this._madeWithText.width / 2; + this._madeWithText.position.y = + this._pixiRenderer.height / 2 - + this._splashImage.height / 2 - + this._madeWithText.height - + 20; + } + if (this._websiteText) { + this._websiteText.position.x = + this._pixiRenderer.width - this._websiteText.width - screenBorder; + this._websiteText.position.y = + this._pixiRenderer.height - this._websiteText.height - screenBorder; + } + + this._progressText.text = percent + '%'; + this._progressText.position.x = screenBorder; + this._progressText.position.y = + this._pixiRenderer.height - this._progressText.height - screenBorder; + + this._pixiRenderer.render(this._loadingScreen); +}; + +gdjs.LoadingScreenPixiRenderer.prototype.unload = function() { + // Nothing to do +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/pixi-filters-tools.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/pixi-filters-tools.js new file mode 100644 index 0000000..e021384 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/pixi-filters-tools.js @@ -0,0 +1,120 @@ +// @ts-check +/** + * Contains tools related to PIXI filters handling. + */ +gdjs.PixiFiltersTools = {}; + +gdjs.PixiFiltersTools.clampValue = function(value, min, max) { return Math.max(min, Math.min(max, value)); }; +gdjs.PixiFiltersTools.clampKernelSize = function(value) { return (([5, 7, 9, 11, 13, 15].indexOf(value) !== -1) ? value : 5); }; + +/** Object. */ +gdjs.PixiFiltersTools._filterCreators = {}; + +/** + * Enable an effect. + * @param {gdjsPixiFiltersToolsFilter} filter The filter to enable or disable + * @param {boolean} value Set to true to enable, false to disable + */ +gdjs.PixiFiltersTools.enableEffect = function(filter, value) { + filter.pixiFilter.enabled = value; +} + +/** + * Check if an effect is enabled. + * @param {gdjsPixiFiltersToolsFilter} filter The filter to be checked + * @return {boolean} true if the filter is enabled + */ +gdjs.PixiFiltersTools.isEffectEnabled = function(filter) { + return filter.pixiFilter.enabled; +} + +/** + * Return the creator for the filter with the given name, if any. + * @param {string} filterName The name of the filter to get + * @return {?gdjsPixiFiltersToolsFilterCreator} The filter creator, if any (null otherwise). + */ +gdjs.PixiFiltersTools.getFilterCreator = function(filterName) { + if (gdjs.PixiFiltersTools._filterCreators.hasOwnProperty(filterName)) + return gdjs.PixiFiltersTools._filterCreators[filterName]; + + return null; +} + +/** + * Register a new PIXI filter creator, to be used by GDJS. + * @param {string} filterName The name of the filter to get + * @param {gdjsPixiFiltersToolsFilterCreator} filterCreator The object used to create the filter. + */ +gdjs.PixiFiltersTools.registerFilterCreator = function(filterName, filterCreator) { + if (gdjs.PixiFiltersTools._filterCreators.hasOwnProperty(filterName)) + console.warn("Filter \"" + filterName + "\" was already registered in gdjs.PixiFiltersTools. Replacing it with the new one."); + + gdjs.PixiFiltersTools._filterCreators[filterName] = filterCreator; +} + +// Type definitions: + +/** + * Function to call to create the PIXI filter used at runtime + * @callback gdjsPixiFiltersToolsFilterCreatorMakePIXIFilter + * @param {gdjs.Layer} layer + * @param {Object} effectData + * @returns {Object} + */ + +/** + * The function to be called to update the filter at every frame + * @callback gdjsPixiFiltersToolsUpdate + * @param {Object} filter + * @param {gdjs.Layer} layer + * @returns {Object} + */ + +/** + * The function to be called to update a parameter (with a number) + * @callback gdjsPixiFiltersToolsUpdateDoubleParameter + * @param {Object} filter + * @param {string} parameterName + * @param {number} value + * @returns {void} + */ + +/** + * The function to be called to update a parameter (with a string) + * @callback gdjsPixiFiltersToolsUpdateStringParameter + * @param {Object} filter + * @param {string} parameterName + * @param {string} value + * @returns {void} + */ + +/** + * The function to be called to update a parameter (with a boolean) + * @callback gdjsPixiFiltersToolsUpdateBooleanParameter + * @param {Object} filter + * @param {string} parameterName + * @param {boolean} value + * @returns {void} + */ + +/** + * A wrapper allowing to create a PIXI filter and update it using a common interface + * @typedef gdjsPixiFiltersToolsFilterCreator + * @type {Object} + * @property {gdjsPixiFiltersToolsFilterCreatorMakePIXIFilter} makePIXIFilter Function to call to create the filter + * @property {gdjsPixiFiltersToolsUpdate} update The function to be called to update the filter at every frame + * @property {gdjsPixiFiltersToolsUpdateDoubleParameter} updateDoubleParameter The function to be called to update a parameter (with a number) + * @property {gdjsPixiFiltersToolsUpdateStringParameter} updateStringParameter The function to be called to update a parameter (with a string) + * @property {gdjsPixiFiltersToolsUpdateBooleanParameter} updateBooleanParameter The function to be called to update a parameter (with a boolean) + */ + +/** + * The type of a filter used to manipulate a Pixi filter. + * @typedef gdjsPixiFiltersToolsFilter + * @type {Object} + * @property {any} pixiFilter The PIXI filter + * @property {gdjsPixiFiltersToolsUpdate} update The function to be called to update the filter at every frame + * @property {gdjsPixiFiltersToolsUpdateDoubleParameter} updateDoubleParameter The function to be called to update a parameter (with a number) + * @property {gdjsPixiFiltersToolsUpdateStringParameter} updateStringParameter The function to be called to update a parameter (with a string) + * @property {gdjsPixiFiltersToolsUpdateBooleanParameter} updateBooleanParameter The function to be called to update a parameter (with a boolean) + */ diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/pixi-image-manager.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/pixi-image-manager.js new file mode 100644 index 0000000..5dd35c6 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/pixi-image-manager.js @@ -0,0 +1,174 @@ +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * PixiImageManager loads and stores textures that can be used by the Pixi.js renderers. + * + * @class PixiImageManager + * @memberof gdjs + * @param {Object} resources The resources data of the game. + */ +gdjs.PixiImageManager = function(resources) +{ + this._resources = resources; + + // The invalid texture is a 8x8 PNG file filled with magenta (#ff00ff), to be + // easily spotted if rendered on screen. + this._invalidTexture = PIXI.Texture.from("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAFElEQVQoU2P8z/D/PwMewDgyFAAApMMX8Zi0uXAAAAAASUVORK5CYIIA"); + this._loadedTextures = new Hashtable(); +}; + +gdjs.ImageManager = gdjs.PixiImageManager; //Register the class to let the engine use it. + +/** + * Return the PIXI texture associated to the specified resource name. + * Returns a placeholder texture if not found. + * @param {string} resourceName The name of the resource + * @returns {PIXI.Texture} The requested texture, or a placeholder if not found. + */ +gdjs.PixiImageManager.prototype.getPIXITexture = function(resourceName) { + if ( this._loadedTextures.containsKey(resourceName) ) { + return this._loadedTextures.get(resourceName); + } + if ( resourceName === "" ) { + return this._invalidTexture; + } + + //Texture is not loaded, load it now from the resources list. + if ( this._resources ) { + var texture = null; + + for(var i = 0, len = this._resources.length;i0)-(t<0)},r.abs=function(t){var e=t>>31;return(t^e)-e},r.min=function(t,e){return e^(t^e)&-(t65535)<<4,t>>>=e,r=(t>255)<<3,t>>>=r,e|=r,r=(t>15)<<2,t>>>=r,e|=r,r=(t>3)<<1,t>>>=r,(e|=r)|t>>1},r.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},r.popCount=function(t){return t-=t>>>1&1431655765,16843009*((t=(858993459&t)+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},r.countTrailingZeros=n,r.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)+1},r.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},r.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var i=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<>>8&255]<<16|i[t>>>16&255]<<8|i[t>>>24&255]},r.interleave2=function(t,e){return t&=65535,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e&=65535,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t|e<<1},r.deinterleave2=function(t,e){return t=t>>>e&1431655765,t=858993459&(t|t>>>1),t=252645135&(t|t>>>2),t=16711935&(t|t>>>4),(t=65535&(t|t>>>16))<<16>>16},r.interleave3=function(t,e,r){return t&=1023,t=4278190335&(t|t<<16),t=251719695&(t|t<<8),t=3272356035&(t|t<<4),t=1227133513&(t|t<<2),e&=1023,e=4278190335&(e|e<<16),e=251719695&(e|e<<8),e=3272356035&(e|e<<4),e=1227133513&(e|e<<2),t|=e<<1,r&=1023,r=4278190335&(r|r<<16),r=251719695&(r|r<<8),r=3272356035&(r|r<<4),r=1227133513&(r|r<<2),t|r<<2},r.deinterleave3=function(t,e){return t=t>>>e&1227133513,t=3272356035&(t|t>>>2),t=251719695&(t|t>>>4),t=4278190335&(t|t>>>8),(t=1023&(t|t>>>16))<<22>>22},r.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>n(t)+1}},{}],2:[function(t,e,r){"use strict";function n(t,e,r){r=r||2;var n=e&&e.length,o=n?e[0]*r:t.length,a=i(t,0,o,r,!0),u=[];if(!a||a.next===a.prev)return u;var h,l,d,f,p,v,g;if(n&&(a=c(t,e,a,r)),t.length>80*r){h=d=t[0],l=f=t[1];for(var y=r;yd&&(d=p),v>f&&(f=v);g=Math.max(d-h,f-l),g=0!==g?1/g:0}return s(a,u,r,h,l,g),u}function i(t,e,r,n,i){var o,s;if(i===A(t,e,r,n)>0)for(o=e;o=e;o-=n)s=P(o,t[o],t[o+1],s);return s&&T(s,s.next)&&(C(s),s=s.next),s}function o(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!T(n,n.next)&&0!==x(n.prev,n,n.next))n=n.next;else{if(C(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function s(t,e,r,n,i,c,d){if(t){!d&&c&&v(t,n,i,c);for(var f,p,g=t;t.prev!==t.next;)if(f=t.prev,p=t.next,c?u(t,n,i,c):a(t))e.push(f.i/r),e.push(t.i/r),e.push(p.i/r),C(t),t=p.next,g=p.next;else if((t=p)===g){d?1===d?(t=h(t,e,r),s(t,e,r,n,i,c,2)):2===d&&l(t,e,r,n,i,c):s(o(t),e,r,n,i,c,1);break}}}function a(t){var e=t.prev,r=t,n=t.next;if(x(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(_(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&x(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function u(t,e,r,n){var i=t.prev,o=t,s=t.next;if(x(i,o,s)>=0)return!1;for(var a=i.xo.x?i.x>s.x?i.x:s.x:o.x>s.x?o.x:s.x,l=i.y>o.y?i.y>s.y?i.y:s.y:o.y>s.y?o.y:s.y,c=y(a,u,e,r,n),d=y(h,l,e,r,n),f=t.prevZ,p=t.nextZ;f&&f.z>=c&&p&&p.z<=d;){if(f!==t.prev&&f!==t.next&&_(i.x,i.y,o.x,o.y,s.x,s.y,f.x,f.y)&&x(f.prev,f,f.next)>=0)return!1;if(f=f.prevZ,p!==t.prev&&p!==t.next&&_(i.x,i.y,o.x,o.y,s.x,s.y,p.x,p.y)&&x(p.prev,p,p.next)>=0)return!1;p=p.nextZ}for(;f&&f.z>=c;){if(f!==t.prev&&f!==t.next&&_(i.x,i.y,o.x,o.y,s.x,s.y,f.x,f.y)&&x(f.prev,f,f.next)>=0)return!1;f=f.prevZ}for(;p&&p.z<=d;){if(p!==t.prev&&p!==t.next&&_(i.x,i.y,o.x,o.y,s.x,s.y,p.x,p.y)&&x(p.prev,p,p.next)>=0)return!1;p=p.nextZ}return!0}function h(t,e,r){var n=t;do{var i=n.prev,o=n.next.next;!T(i,o)&&w(i,n,n.next,o)&&S(i,o)&&S(o,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(o.i/r),C(n),C(n.next),n=t=o),n=n.next}while(n!==t);return n}function l(t,e,r,n,i,a){var u=t;do{for(var h=u.next.next;h!==u.prev;){if(u.i!==h.i&&b(u,h)){var l=M(u,h);return u=o(u,u.next),l=o(l,l.next),s(u,e,r,n,i,a),void s(l,e,r,n,i,a)}h=h.next}u=u.next}while(u!==t)}function c(t,e,r,n){var s,a,u,h,l,c=[];for(s=0,a=e.length;s=n.next.y&&n.next.y!==n.y){var a=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=i&&a>s){if(s=a,a===i){if(o===n.y)return n;if(o===n.next.y)return n.next}r=n.x=n.x&&n.x>=l&&i!==n.x&&_(or.x)&&S(n,t)&&(r=n,d=u),n=n.next;return r}function v(t,e,r,n){var i=t;do{null===i.z&&(i.z=y(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,g(i)}function g(t){var e,r,n,i,o,s,a,u,h=1;do{for(r=t,t=null,o=null,s=0;r;){for(s++,n=r,a=0,e=0;e0||u>0&&n;)0!==a&&(0===u||!n||r.z<=n.z)?(i=r,r=r.nextZ,a--):(i=n,n=n.nextZ,u--),o?o.nextZ=i:t=i,i.prevZ=o,o=i;r=n}o.nextZ=null,h*=2}while(s>1);return t}function y(t,e,r,n,i){return t=32767*(t-r)*i,e=32767*(e-n)*i,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t|e<<1}function m(t){var e=t,r=t;do{e.x=0&&(t-s)*(n-a)-(r-s)*(e-a)>=0&&(r-s)*(o-a)-(i-s)*(n-a)>=0}function b(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!E(t,e)&&S(t,e)&&S(e,t)&&O(t,e)}function x(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function T(t,e){return t.x===e.x&&t.y===e.y}function w(t,e,r,n){return!!(T(t,e)&&T(r,n)||T(t,n)&&T(r,e))||x(t,e,r)>0!=x(t,e,n)>0&&x(r,n,t)>0!=x(r,n,e)>0}function E(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&w(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function S(t,e){return x(t.prev,t,t.next)<0?x(t,e,t.next)>=0&&x(t,t.prev,e)>=0:x(t,e,t.prev)<0||x(t,t.next,e)<0}function O(t,e){var r=t,n=!1,i=(t.x+e.x)/2,o=(t.y+e.y)/2;do{r.y>o!=r.next.y>o&&r.next.y!==r.y&&i<(r.next.x-r.x)*(o-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}function M(t,e){var r=new R(t.i,t.x,t.y),n=new R(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,o.next=n,n.prev=o,n}function P(t,e,r,n){var i=new R(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function C(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function R(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function A(t,e,r,n){for(var i=0,o=e,s=r-n;o0&&(n+=t[i-1].length,r.holes.push(n))}return r}},{}],3:[function(t,e,r){"use strict";function n(){}function i(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function o(){this._events=new n,this._eventsCount=0}var s=Object.prototype.hasOwnProperty,a="~";Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(a=!1)),o.prototype.eventNames=function(){var t,e,r=[];if(0===this._eventsCount)return r;for(e in t=this._events)s.call(t,e)&&r.push(a?e.slice(1):e);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(t)):r},o.prototype.listeners=function(t,e){var r=a?a+t:t,n=this._events[r];if(e)return!!n;if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,s=new Array(o);i=0;n--){var i=t[n];"."===i?t.splice(n,1):".."===i?(t.splice(n,1),r++):r&&(t.splice(n,1),r--)}if(e)for(;r--;r)t.unshift("..");return t}function n(t,e){if(t.filter)return t.filter(e);for(var r=[],n=0;n=-1&&!i;o--){var s=o>=0?arguments[o]:t.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(r=s+"/"+r,i="/"===s.charAt(0))}return r=e(n(r.split("/"),function(t){return!!t}),!i).join("/"),(i?"/":"")+r||"."},r.normalize=function(t){var i=r.isAbsolute(t),o="/"===s(t,-1);return t=e(n(t.split("/"),function(t){return!!t}),!i).join("/"),t||i||(t="."),t&&o&&(t+="/"),(i?"/":"")+t},r.isAbsolute=function(t){return"/"===t.charAt(0)},r.join=function(){var t=Array.prototype.slice.call(arguments,0);return r.normalize(n(t,function(t,e){if("string"!=typeof t)throw new TypeError("Arguments to path.join must be strings");return t}).join("/"))},r.relative=function(t,e){function n(t){for(var e=0;e=0&&""===t[r];r--);return e>r?[]:t.slice(e,r-e+1)}t=r.resolve(t).substr(1),e=r.resolve(e).substr(1);for(var i=n(t.split("/")),o=n(e.split("/")),s=Math.min(i.length,o.length),a=s,u=0;u=t.byteLength?n.bufferSubData(this.type,e,t):n.bufferData(this.type,t,this.drawType),this.data=t},i.prototype.bind=function(){this.gl.bindBuffer(this.type,this.buffer)},i.createVertexBuffer=function(t,e,r){return new i(t,t.ARRAY_BUFFER,e,r)},i.createIndexBuffer=function(t,e,r){return new i(t,t.ELEMENT_ARRAY_BUFFER,e,r)},i.create=function(t,e,r,n){return new i(t,e,r,n)},i.prototype.destroy=function(){this.gl.deleteBuffer(this.buffer)},e.exports=i},{}],10:[function(t,e,r){var n=t("./GLTexture"),i=function(t,e,r){this.gl=t,this.framebuffer=t.createFramebuffer(),this.stencil=null,this.texture=null,this.width=e||100,this.height=r||100};i.prototype.enableTexture=function(t){var e=this.gl;this.texture=t||new n(e),this.texture.bind(),this.bind(),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.texture.texture,0)},i.prototype.enableStencil=function(){if(!this.stencil){var t=this.gl;this.stencil=t.createRenderbuffer(),t.bindRenderbuffer(t.RENDERBUFFER,this.stencil),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,this.stencil),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,this.width,this.height)}},i.prototype.clear=function(t,e,r,n){this.bind();var i=this.gl;i.clearColor(t,e,r,n),i.clear(i.COLOR_BUFFER_BIT|i.DEPTH_BUFFER_BIT)},i.prototype.bind=function(){var t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer)},i.prototype.unbind=function(){var t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,null)},i.prototype.resize=function(t,e){var r=this.gl;this.width=t,this.height=e,this.texture&&this.texture.uploadData(null,t,e),this.stencil&&(r.bindRenderbuffer(r.RENDERBUFFER,this.stencil),r.renderbufferStorage(r.RENDERBUFFER,r.DEPTH_STENCIL,t,e))},i.prototype.destroy=function(){var t=this.gl;this.texture&&this.texture.destroy(),t.deleteFramebuffer(this.framebuffer),this.gl=null,this.stencil=null,this.texture=null},i.createRGBA=function(t,e,r,o){var s=n.fromData(t,null,e,r);s.enableNearestScaling(),s.enableWrapClamp();var a=new i(t,e,r);return a.enableTexture(s),a.unbind(),a},i.createFloat32=function(t,e,r,o){var s=new n.fromData(t,o,e,r);s.enableNearestScaling(),s.enableWrapClamp();var a=new i(t,e,r);return a.enableTexture(s),a.unbind(),a},e.exports=i},{"./GLTexture":12}],11:[function(t,e,r){var n=t("./shader/compileProgram"),i=t("./shader/extractAttributes"),o=t("./shader/extractUniforms"),s=t("./shader/setPrecision"),a=t("./shader/generateUniformAccessObject"),u=function(t,e,r,u,h){this.gl=t,u&&(e=s(e,u),r=s(r,u)),this.program=n(t,e,r,h),this.attributes=i(t,this.program),this.uniformData=o(t,this.program),this.uniforms=a(t,this.uniformData)};u.prototype.bind=function(){return this.gl.useProgram(this.program),this},u.prototype.destroy=function(){this.attributes=null,this.uniformData=null,this.uniforms=null,this.gl.deleteProgram(this.program)},e.exports=u},{"./shader/compileProgram":17,"./shader/extractAttributes":19,"./shader/extractUniforms":20,"./shader/generateUniformAccessObject":21,"./shader/setPrecision":25}],12:[function(t,e,r){var n=function(t,e,r,n,i){this.gl=t,this.texture=t.createTexture(),this.mipmap=!1,this.premultiplyAlpha=!1,this.width=e||-1,this.height=r||-1,this.format=n||t.RGBA,this.type=i||t.UNSIGNED_BYTE};n.prototype.upload=function(t){this.bind();var e=this.gl;e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha);var r=t.videoWidth||t.width,n=t.videoHeight||t.height;n!==this.height||r!==this.width?e.texImage2D(e.TEXTURE_2D,0,this.format,this.format,this.type,t):e.texSubImage2D(e.TEXTURE_2D,0,0,0,this.format,this.type,t),this.width=r,this.height=n};var i=!1;n.prototype.uploadData=function(t,e,r){this.bind();var n=this.gl;if(t instanceof Float32Array){if(!i){if(!n.getExtension("OES_texture_float"))throw new Error("floating point textures not available");i=!0}this.type=n.FLOAT}else this.type=this.type||n.UNSIGNED_BYTE;n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha),e!==this.width||r!==this.height?n.texImage2D(n.TEXTURE_2D,0,this.format,e,r,0,this.format,this.type,t||null):n.texSubImage2D(n.TEXTURE_2D,0,0,0,e,r,this.format,this.type,t||null),this.width=e,this.height=r},n.prototype.bind=function(t){var e=this.gl;void 0!==t&&e.activeTexture(e.TEXTURE0+t),e.bindTexture(e.TEXTURE_2D,this.texture)},n.prototype.unbind=function(){var t=this.gl;t.bindTexture(t.TEXTURE_2D,null)},n.prototype.minFilter=function(t){var e=this.gl;this.bind(),this.mipmap?e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t?e.LINEAR_MIPMAP_LINEAR:e.NEAREST_MIPMAP_NEAREST):e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t?e.LINEAR:e.NEAREST)},n.prototype.magFilter=function(t){var e=this.gl;this.bind(),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t?e.LINEAR:e.NEAREST)},n.prototype.enableMipmap=function(){var t=this.gl;this.bind(),this.mipmap=!0,t.generateMipmap(t.TEXTURE_2D)},n.prototype.enableLinearScaling=function(){this.minFilter(!0),this.magFilter(!0)},n.prototype.enableNearestScaling=function(){this.minFilter(!1),this.magFilter(!1)},n.prototype.enableWrapClamp=function(){var t=this.gl;this.bind(),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE)},n.prototype.enableWrapRepeat=function(){var t=this.gl;this.bind(),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.REPEAT),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.REPEAT)},n.prototype.enableWrapMirrorRepeat=function(){var t=this.gl;this.bind(),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.MIRRORED_REPEAT),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.MIRRORED_REPEAT)},n.prototype.destroy=function(){this.gl.deleteTexture(this.texture)},n.fromSource=function(t,e,r){var i=new n(t);return i.premultiplyAlpha=r||!1,i.upload(e),i},n.fromData=function(t,e,r,i){var o=new n(t);return o.uploadData(e,r,i),o},e.exports=n},{}],13:[function(t,e,r){function n(t,e){if(this.nativeVaoExtension=null,n.FORCE_NATIVE||(this.nativeVaoExtension=t.getExtension("OES_vertex_array_object")||t.getExtension("MOZ_OES_vertex_array_object")||t.getExtension("WEBKIT_OES_vertex_array_object")),this.nativeState=e,this.nativeVaoExtension){this.nativeVao=this.nativeVaoExtension.createVertexArrayOES();var r=t.getParameter(t.MAX_VERTEX_ATTRIBS);this.nativeState={tempAttribState:new Array(r),attribState:new Array(r)}}this.gl=t,this.attributes=[],this.indexBuffer=null,this.dirty=!1}var i=t("./setVertexAttribArrays");n.prototype.constructor=n,e.exports=n,n.FORCE_NATIVE=!1,n.prototype.bind=function(){if(this.nativeVao){if(this.nativeVaoExtension.bindVertexArrayOES(this.nativeVao),this.dirty)return this.dirty=!1,this.activate(),this;this.indexBuffer&&this.indexBuffer.bind()}else this.activate();return this},n.prototype.unbind=function(){return this.nativeVao&&this.nativeVaoExtension.bindVertexArrayOES(null),this},n.prototype.activate=function(){for(var t=this.gl,e=null,r=0;r1)for(var r=1;r1&&(n=r[0]+"@",t=r[1]),t=t.replace(D,"."),n+s(t.split("."),e).join(".")}function u(t){for(var e,r,n=[],i=0,o=t.length;i=55296&&e<=56319&&i65535&&(t-=65536,e+=k(t>>>10&1023|55296),t=56320|1023&t),e+=k(t)}).join("")}function l(t){return t-48<10?t-22:t-65<26?t-65:t-97<26?t-97:w}function c(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function d(t,e,r){var n=0;for(t=r?B(t/M):t>>1,t+=B(t/e);t>N*S>>1;n+=w)t=B(t/N);return B(n+(N+1)*t/(t+O))}function f(t){var e,r,n,i,s,a,u,c,f,p,v=[],g=t.length,y=0,m=C,_=P;for(r=t.lastIndexOf(R),r<0&&(r=0),n=0;n=128&&o("not-basic"),v.push(t.charCodeAt(n));for(i=r>0?r+1:0;i=g&&o("invalid-input"),c=l(t.charCodeAt(i++)),(c>=w||c>B((T-y)/a))&&o("overflow"),y+=c*a,f=u<=_?E:u>=_+S?S:u-_,!(cB(T/p)&&o("overflow"),a*=p;e=v.length+1,_=d(y-s,e,0==s),B(y/e)>T-m&&o("overflow"),m+=B(y/e),y%=e,v.splice(y++,0,m)}return h(v)}function p(t){var e,r,n,i,s,a,h,l,f,p,v,g,y,m,_,b=[];for(t=u(t),g=t.length,e=C,r=0,s=P,a=0;a=e&&vB((T-r)/y)&&o("overflow"),r+=(h-e)*y,e=h,a=0;aT&&o("overflow"),v==e){for(l=r,f=w;p=f<=s?E:f>=s+S?S:f-s,!(l= 0x80 (not a basic code point)","invalid-input":"Invalid input"},N=w-E,B=Math.floor,k=String.fromCharCode;if(b={version:"1.4.1",ucs2:{decode:u,encode:h},decode:f,encode:p,toASCII:g,toUnicode:v},"function"==typeof t&&"object"==typeof t.amd&&t.amd)t("punycode",function(){return b});else if(y&&m)if(r.exports==y)m.exports=b;else for(x in b)b.hasOwnProperty(x)&&(y[x]=b[x]);else i.punycode=b}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],28:[function(t,e,r){"use strict";function n(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.exports=function(t,e,r,o){e=e||"&",r=r||"=";var s={};if("string"!=typeof t||0===t.length)return s;var a=/\+/g;t=t.split(e);var u=1e3;o&&"number"==typeof o.maxKeys&&(u=o.maxKeys);var h=t.length;u>0&&h>u&&(h=u);for(var l=0;l=0?(c=v.substr(0,g),d=v.substr(g+1)):(c=v,d=""),f=decodeURIComponent(c),p=decodeURIComponent(d),n(s,f)?i(s[f])?s[f].push(p):s[f]=[s[f],p]:s[f]=p}return s};var i=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)}},{}],29:[function(t,e,r){"use strict";function n(t,e){if(t.map)return t.map(e);for(var r=[],n=0;n=i||0===r)){r=e+r>i?i-e:r;var o=i-r;for(n=e;n0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;i(this,t),this.baseUrl=r,this.progress=0,this.loading=!1,this.defaultQueryString="",this._beforeMiddleware=[],this._afterMiddleware=[],this._resourcesParsing=[],this._boundLoadResource=function(t,r){return e._loadResource(t,r)},this._queue=d.queue(this._boundLoadResource,n),this._queue.pause(),this.resources={},this.onProgress=new u.default,this.onError=new u.default,this.onLoad=new u.default,this.onStart=new u.default,this.onComplete=new u.default;for(var o=0;o0||e.responseType===t.XHR_RESPONSE_TYPE.BUFFER)?n=200:1223===n&&(n=204),2!=(n/100|0))return void this.abort("["+e.status+"] "+e.statusText+": "+e.responseURL);if(this.xhrType===t.XHR_RESPONSE_TYPE.TEXT)this.data=r,this.type=t.TYPE.TEXT;else if(this.xhrType===t.XHR_RESPONSE_TYPE.JSON)try{this.data=JSON.parse(r),this.type=t.TYPE.JSON}catch(t){return void this.abort("Error trying to parse loaded json: "+t)}else if(this.xhrType===t.XHR_RESPONSE_TYPE.DOCUMENT)try{if(window.DOMParser){var i=new DOMParser;this.data=i.parseFromString(r,"text/xml")}else{var o=document.createElement("div");o.innerHTML=r,this.data=o}this.type=t.TYPE.XML}catch(t){return void this.abort("Error trying to parse loaded xml: "+t)}else this.data=e.response||r;this.complete()},t.prototype._determineCrossOrigin=function(t,e){if(0===t.indexOf("data:"))return"";if(window.origin!==window.location.origin)return"anonymous";e=e||window.location,p||(p=document.createElement("a")),p.href=t,t=(0,l.default)(p.href,{strictMode:!0});var r=!t.port&&""===e.port||t.port===e.port,n=t.protocol?t.protocol+":":"";return t.host===e.hostname&&r&&n===e.protocol?"":"anonymous"},t.prototype._determineXhrType=function(){return t._xhrTypeMap[this.extension]||t.XHR_RESPONSE_TYPE.TEXT},t.prototype._determineLoadType=function(){return t._loadTypeMap[this.extension]||t.LOAD_TYPE.XHR},t.prototype._getExtension=function(){var t=this.url,e="";if(this.isDataUrl){var r=t.indexOf("/");e=t.substring(r+1,t.indexOf(";",r))}else{var n=t.indexOf("?"),i=t.indexOf("#"),o=Math.min(n>-1?n:t.length,i>-1?i:t.length);t=t.substring(0,o),e=t.substring(t.lastIndexOf(".")+1)}return e.toLowerCase()},t.prototype._getMimeFromXhrType=function(e){switch(e){case t.XHR_RESPONSE_TYPE.BUFFER:return"application/octet-binary";case t.XHR_RESPONSE_TYPE.BLOB:return"application/blob";case t.XHR_RESPONSE_TYPE.DOCUMENT:return"application/xml";case t.XHR_RESPONSE_TYPE.JSON:return"application/json";case t.XHR_RESPONSE_TYPE.DEFAULT:case t.XHR_RESPONSE_TYPE.TEXT:default:return"text/plain"}},u(t,[{key:"isDataUrl",get:function(){return this._hasFlag(t.STATUS_FLAGS.DATA_URL)}},{key:"isComplete",get:function(){return this._hasFlag(t.STATUS_FLAGS.COMPLETE)}},{key:"isLoading",get:function(){return this._hasFlag(t.STATUS_FLAGS.LOADING)}}]),t}();v.STATUS_FLAGS={NONE:0,DATA_URL:1,COMPLETE:2,LOADING:4},v.TYPE={UNKNOWN:0,JSON:1,XML:2,IMAGE:3,AUDIO:4,VIDEO:5,TEXT:6},v.LOAD_TYPE={XHR:1,IMAGE:2,AUDIO:3,VIDEO:4},v.XHR_RESPONSE_TYPE={DEFAULT:"text",BUFFER:"arraybuffer",BLOB:"blob",DOCUMENT:"document",JSON:"json",TEXT:"text"},v._loadTypeMap={gif:v.LOAD_TYPE.IMAGE,png:v.LOAD_TYPE.IMAGE,bmp:v.LOAD_TYPE.IMAGE,jpg:v.LOAD_TYPE.IMAGE,jpeg:v.LOAD_TYPE.IMAGE,tif:v.LOAD_TYPE.IMAGE,tiff:v.LOAD_TYPE.IMAGE,webp:v.LOAD_TYPE.IMAGE,tga:v.LOAD_TYPE.IMAGE,svg:v.LOAD_TYPE.IMAGE,"svg+xml":v.LOAD_TYPE.IMAGE,mp3:v.LOAD_TYPE.AUDIO,ogg:v.LOAD_TYPE.AUDIO,wav:v.LOAD_TYPE.AUDIO,mp4:v.LOAD_TYPE.VIDEO,webm:v.LOAD_TYPE.VIDEO},v._xhrTypeMap={xhtml:v.XHR_RESPONSE_TYPE.DOCUMENT,html:v.XHR_RESPONSE_TYPE.DOCUMENT,htm:v.XHR_RESPONSE_TYPE.DOCUMENT,xml:v.XHR_RESPONSE_TYPE.DOCUMENT,tmx:v.XHR_RESPONSE_TYPE.DOCUMENT,svg:v.XHR_RESPONSE_TYPE.DOCUMENT,tsx:v.XHR_RESPONSE_TYPE.DOCUMENT,gif:v.XHR_RESPONSE_TYPE.BLOB,png:v.XHR_RESPONSE_TYPE.BLOB,bmp:v.XHR_RESPONSE_TYPE.BLOB,jpg:v.XHR_RESPONSE_TYPE.BLOB,jpeg:v.XHR_RESPONSE_TYPE.BLOB,tif:v.XHR_RESPONSE_TYPE.BLOB,tiff:v.XHR_RESPONSE_TYPE.BLOB,webp:v.XHR_RESPONSE_TYPE.BLOB,tga:v.XHR_RESPONSE_TYPE.BLOB,json:v.XHR_RESPONSE_TYPE.JSON,text:v.XHR_RESPONSE_TYPE.TEXT,txt:v.XHR_RESPONSE_TYPE.TEXT,ttf:v.XHR_RESPONSE_TYPE.BUFFER,otf:v.XHR_RESPONSE_TYPE.BUFFER},v.EMPTY_GIF="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",void 0!==e&&(e.exports.default=v)},{"mini-signals":5,"parse-uri":7}],34:[function(t,e,r){"use strict";function n(){}function i(t,e,r,n){var i=0,o=t.length;!function s(a){if(a||i===o)return void(r&&r(a));n?setTimeout(function(){e(t[i++],s)},1):e(t[i++],s)}()}function o(t){return function(){if(null===t)throw new Error("Callback was already called.");var e=t;t=null,e.apply(this,arguments)}}function s(t,e){function r(t,e,r){if(null!=r&&"function"!=typeof r)throw new Error("task callback must be a function");if(a.started=!0,null==t&&a.idle())return void setTimeout(function(){return a.drain()},1);var i={data:t,callback:"function"==typeof r?r:n};e?a._tasks.unshift(i):a._tasks.push(i),setTimeout(function(){return a.process()},1)}function i(t){return function(){s-=1,t.callback.apply(t,arguments),null!=arguments[0]&&a.error(arguments[0],t.data),s<=a.concurrency-a.buffer&&a.unsaturated(),a.idle()&&a.drain(),a.process()}}if(null==e)e=1;else if(0===e)throw new Error("Concurrency must not be zero");var s=0,a={_tasks:[],concurrency:e,saturated:n,unsaturated:n,buffer:e/4,empty:n,drain:n,error:n,started:!1,paused:!1,push:function(t,e){r(t,!1,e)},kill:function(){s=0,a.drain=n,a.started=!1,a._tasks=[]},unshift:function(t,e){r(t,!0,e)},process:function(){for(;!a.paused&&s>2,o[1]=(3&n[0])<<4|n[1]>>4,o[2]=(15&n[1])<<2|n[2]>>6,o[3]=63&n[2];switch(r-(t.length-1)){case 2:o[3]=64,o[2]=64;break;case 1:o[3]=64}for(var a=0;a",'"',"`"," ","\r","\n","\t"],p=["{","}","|","\\","^","`"].concat(f),v=["'"].concat(p),g=["%","/","?",";","#"].concat(v),y=["/","?","#"],m=/^[+a-z0-9A-Z_-]{0,63}$/,_=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,b={javascript:!0,"javascript:":!0},x={javascript:!0,"javascript:":!0},T={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},w=t("querystring");n.prototype.parse=function(t,e,r){if(!h.isString(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var n=t.indexOf("?"),i=-1!==n&&n127?L+="x":L+=D[N];if(!L.match(m)){var k=A.slice(0,O),F=A.slice(O+1),j=D.match(_);j&&(k.push(j[1]),F.unshift(j[2])),F.length&&(a="/"+F.join(".")+a),this.hostname=k.join(".");break}}} +this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),R||(this.hostname=u.toASCII(this.hostname));var U=this.port?":"+this.port:"",X=this.hostname||"";this.host=X+U,this.href+=this.host,R&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==a[0]&&(a="/"+a))}if(!b[p])for(var O=0,I=v.length;O0)&&r.host.split("@");S&&(r.auth=S.shift(),r.host=r.hostname=S.shift())}return r.search=t.search,r.query=t.query,h.isNull(r.pathname)&&h.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!w.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var O=w.slice(-1)[0],M=(r.host||t.host||w.length>1)&&("."===O||".."===O)||""===O,P=0,C=w.length;C>=0;C--)O=w[C],"."===O?w.splice(C,1):".."===O?(w.splice(C,1),P++):P&&(w.splice(C,1),P--);if(!_&&!b)for(;P--;P)w.unshift("..");!_||""===w[0]||w[0]&&"/"===w[0].charAt(0)||w.unshift(""),M&&"/"!==w.join("/").substr(-1)&&w.push("");var R=""===w[0]||w[0]&&"/"===w[0].charAt(0);if(E){r.hostname=r.host=R?"":w.length?w.shift():"";var S=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@");S&&(r.auth=S.shift(),r.host=r.hostname=S.shift())}return _=_||r.host&&w.length,_&&!R&&w.unshift(""),w.length?r.pathname=w.join("/"):(r.pathname=null,r.path=null),h.isNull(r.pathname)&&h.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},n.prototype.parseHost=function(){var t=this.host,e=c.exec(t);e&&(e=e[0],":"!==e&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)}},{"./util":39,punycode:27,querystring:30}],39:[function(t,e,r){"use strict";e.exports={isString:function(t){return"string"==typeof t},isObject:function(t){return"object"==typeof t&&null!==t},isNull:function(t){return null===t},isNullOrUndefined:function(t){return null==t}}},{}],40:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var o=t("../core"),s=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(o),a=t("ismobilejs"),u=n(a),h=t("./accessibleTarget"),l=n(h);s.utils.mixins.delayMixin(s.DisplayObject.prototype,l.default);var c=100,d=0,f=0,p=2,v=function(){function t(e){i(this,t),!u.default.tablet&&!u.default.phone||navigator.isCocoonJS||this.createTouchHook();var r=document.createElement("div");r.style.width=c+"px",r.style.height=c+"px",r.style.position="absolute",r.style.top=d+"px",r.style.left=f+"px",r.style.zIndex=p,this.div=r,this.pool=[],this.renderId=0,this.debug=!1,this.renderer=e,this.children=[],this._onKeyDown=this._onKeyDown.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this.isActive=!1,this.isMobileAccessabillity=!1,window.addEventListener("keydown",this._onKeyDown,!1)}return t.prototype.createTouchHook=function(){var t=this,e=document.createElement("button");e.style.width="1px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.left="-1000px",e.style.zIndex=2,e.style.backgroundColor="#FF0000",e.title="HOOK DIV",e.addEventListener("focus",function(){t.isMobileAccessabillity=!0,t.activate(),document.body.removeChild(e)}),document.body.appendChild(e)},t.prototype.activate=function(){this.isActive||(this.isActive=!0,window.document.addEventListener("mousemove",this._onMouseMove,!0),window.removeEventListener("keydown",this._onKeyDown,!1),this.renderer.on("postrender",this.update,this),this.renderer.view.parentNode&&this.renderer.view.parentNode.appendChild(this.div))},t.prototype.deactivate=function(){this.isActive&&!this.isMobileAccessabillity&&(this.isActive=!1,window.document.removeEventListener("mousemove",this._onMouseMove,!0),window.addEventListener("keydown",this._onKeyDown,!1),this.renderer.off("postrender",this.update),this.div.parentNode&&this.div.parentNode.removeChild(this.div))},t.prototype.updateAccessibleObjects=function(t){if(t.visible){t.accessible&&t.interactive&&(t._accessibleActive||this.addChild(t),t.renderId=this.renderId);for(var e=t.children,r=0;rthis.renderer.width&&(t.width=this.renderer.width-t.x),t.y+t.height>this.renderer.height&&(t.height=this.renderer.height-t.y)},t.prototype.addChild=function(t){var e=this.pool.pop();e||(e=document.createElement("button"),e.style.width=c+"px",e.style.height=c+"px",e.style.backgroundColor=this.debug?"rgba(255,0,0,0.5)":"transparent",e.style.position="absolute",e.style.zIndex=p,e.style.borderStyle="none",navigator.userAgent.toLowerCase().indexOf("chrome")>-1?e.setAttribute("aria-live","off"):e.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?e.setAttribute("aria-relevant","additions"):e.setAttribute("aria-relevant","text"),e.addEventListener("click",this._onClick.bind(this)),e.addEventListener("focus",this._onFocus.bind(this)),e.addEventListener("focusout",this._onFocusOut.bind(this))),t.accessibleTitle&&null!==t.accessibleTitle?e.title=t.accessibleTitle:t.accessibleHint&&null!==t.accessibleHint||(e.title="displayObject "+t.tabIndex),t.accessibleHint&&null!==t.accessibleHint&&e.setAttribute("aria-label",t.accessibleHint),t._accessibleActive=!0,t._accessibleDiv=e,e.displayObject=t,this.children.push(t),this.div.appendChild(t._accessibleDiv),t._accessibleDiv.tabIndex=t.tabIndex},t.prototype._onClick=function(t){var e=this.renderer.plugins.interaction;e.dispatchEvent(t.target.displayObject,"click",e.eventData)},t.prototype._onFocus=function(t){t.target.getAttribute("aria-live","off")||t.target.setAttribute("aria-live","assertive");var e=this.renderer.plugins.interaction;e.dispatchEvent(t.target.displayObject,"mouseover",e.eventData)},t.prototype._onFocusOut=function(t){t.target.getAttribute("aria-live","off")||t.target.setAttribute("aria-live","polite");var e=this.renderer.plugins.interaction;e.dispatchEvent(t.target.displayObject,"mouseout",e.eventData)},t.prototype._onKeyDown=function(t){9===t.keyCode&&this.activate()},t.prototype._onMouseMove=function(t){0===t.movementX&&0===t.movementY||this.deactivate()},t.prototype.destroy=function(){this.div=null;for(var t=0;t]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i,r.SHAPES={POLY:0,RECT:1,CIRC:2,ELIP:3,RREC:4},r.PRECISION={LOW:"lowp",MEDIUM:"mediump",HIGH:"highp"},r.TRANSFORM_MODE={STATIC:0,DYNAMIC:1},r.TEXT_GRADIENT={LINEAR_VERTICAL:0,LINEAR_HORIZONTAL:1},r.UPDATE_PRIORITY={INTERACTION:50,HIGH:25,NORMAL:0,LOW:-25,UTILITY:-50}},{}],47:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../math"),o=function(){function t(){n(this,t),this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.rect=null}return t.prototype.isEmpty=function(){return this.minX>this.maxX||this.minY>this.maxY},t.prototype.clear=function(){this.updateID++,this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0},t.prototype.getRectangle=function(t){return this.minX>this.maxX||this.minY>this.maxY?i.Rectangle.EMPTY:(t=t||new i.Rectangle(0,0,1,1),t.x=this.minX,t.y=this.minY,t.width=this.maxX-this.minX,t.height=this.maxY-this.minY,t)},t.prototype.addPoint=function(t){this.minX=Math.min(this.minX,t.x),this.maxX=Math.max(this.maxX,t.x),this.minY=Math.min(this.minY,t.y),this.maxY=Math.max(this.maxY,t.y)},t.prototype.addQuad=function(t){var e=this.minX,r=this.minY,n=this.maxX,i=this.maxY,o=t[0],s=t[1];e=on?o:n,i=s>i?s:i,o=t[2],s=t[3],e=on?o:n,i=s>i?s:i,o=t[4],s=t[5],e=on?o:n,i=s>i?s:i,o=t[6],s=t[7],e=on?o:n,i=s>i?s:i,this.minX=e,this.minY=r,this.maxX=n,this.maxY=i},t.prototype.addFrame=function(t,e,r,n,i){var o=t.worldTransform,s=o.a,a=o.b,u=o.c,h=o.d,l=o.tx,c=o.ty,d=this.minX,f=this.minY,p=this.maxX,v=this.maxY,g=s*e+u*r+l,y=a*e+h*r+c;d=gp?g:p,v=y>v?y:v,g=s*n+u*r+l,y=a*n+h*r+c,d=gp?g:p,v=y>v?y:v,g=s*e+u*i+l,y=a*e+h*i+c,d=gp?g:p,v=y>v?y:v,g=s*n+u*i+l,y=a*n+h*i+c,d=gp?g:p,v=y>v?y:v,this.minX=d,this.minY=f,this.maxX=p,this.maxY=v},t.prototype.addVertices=function(t,e,r,n){for(var i=t.worldTransform,o=i.a,s=i.b,a=i.c,u=i.d,h=i.tx,l=i.ty,c=this.minX,d=this.minY,f=this.maxX,p=this.maxY,v=r;vf?m:f,p=_>p?_:p}this.minX=c,this.minY=d,this.maxX=f,this.maxY=p},t.prototype.addBounds=function(t){var e=this.minX,r=this.minY,n=this.maxX,i=this.maxY;this.minX=t.minXn?t.maxX:n,this.maxY=t.maxY>i?t.maxY:i},t.prototype.addBoundsMask=function(t,e){var r=t.minX>e.minX?t.minX:e.minX,n=t.minY>e.minY?t.minY:e.minY,i=t.maxXu?i:u,this.maxY=o>h?o:h}},t.prototype.addBoundsArea=function(t,e){var r=t.minX>e.x?t.minX:e.x,n=t.minY>e.y?t.minY:e.y,i=t.maxXu?i:u,this.maxY=o>h?o:h}},t}();r.default=o},{"../math":70}],48:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r1)for(var r=0;rthis.children.length)throw new Error(t+"addChildAt: The index "+e+" supplied is out of bounds "+this.children.length);return t.parent&&t.parent.removeChild(t),t.parent=this,t.transform._parentID=-1,this.children.splice(e,0,t),this._boundsID++,this.onChildrenChange(e),t.emit("added",this),t},e.prototype.swapChildren=function(t,e){if(t!==e){var r=this.getChildIndex(t),n=this.getChildIndex(e);this.children[r]=e,this.children[n]=t,this.onChildrenChange(r=this.children.length)throw new Error("The index "+e+" supplied is out of bounds "+this.children.length);var r=this.getChildIndex(t);(0,a.removeItems)(this.children,r,1),this.children.splice(e,0,t),this.onChildrenChange(e)},e.prototype.getChildAt=function(t){if(t<0||t>=this.children.length)throw new Error("getChildAt: Index ("+t+") does not exist.");return this.children[t]},e.prototype.removeChild=function(t){var e=arguments.length;if(e>1)for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:0,e=arguments[1],r=t,n="number"==typeof e?e:this.children.length,i=n-r,o=void 0;if(i>0&&i<=n){o=this.children.splice(r,i);for(var s=0;s2&&void 0!==arguments[2]&&arguments[2]||(this._recursivePostUpdateTransform(),this.parent?this.displayObjectUpdateTransform():(this.parent=this._tempDisplayObjectParent,this.displayObjectUpdateTransform(),this.parent=null)),this.worldTransform.apply(t,e)},e.prototype.toLocal=function(t,e,r,n){return e&&(t=e.toGlobal(t,r,n)),n||(this._recursivePostUpdateTransform(),this.parent?this.displayObjectUpdateTransform():(this.parent=this._tempDisplayObjectParent,this.displayObjectUpdateTransform(),this.parent=null)),this.worldTransform.applyInverse(t,r)},e.prototype.renderWebGL=function(t){},e.prototype.renderCanvas=function(t){},e.prototype.setParent=function(t){if(!t||!t.addChild)throw new Error("setParent: Argument must be a Container");return t.addChild(this),t},e.prototype.setTransform=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,a=arguments.length>7&&void 0!==arguments[7]?arguments[7]:0,u=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0;return this.position.x=t,this.position.y=e,this.scale.x=r||1,this.scale.y=n||1,this.rotation=i,this.skew.x=o,this.skew.y=s,this.pivot.x=a,this.pivot.y=u,this},e.prototype.destroy=function(){this.removeAllListeners(),this.parent&&this.parent.removeChild(this),this.transform=null,this.parent=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.filterArea=null,this.interactive=!1,this.interactiveChildren=!1,this._destroyed=!0},a(e,[{key:"_tempDisplayObjectParent",get:function(){return null===this.tempDisplayObjectParent&&(this.tempDisplayObjectParent=new e),this.tempDisplayObjectParent}},{key:"x",get:function(){return this.position.x},set:function(t){this.transform.position.x=t}},{key:"y",get:function(){return this.position.y},set:function(t){this.transform.position.y=t}},{key:"worldTransform",get:function(){return this.transform.worldTransform}},{key:"localTransform",get:function(){return this.transform.localTransform}},{key:"position",get:function(){return this.transform.position},set:function(t){this.transform.position.copy(t)}},{key:"scale",get:function(){return this.transform.scale},set:function(t){this.transform.scale.copy(t)}},{key:"pivot",get:function(){return this.transform.pivot},set:function(t){this.transform.pivot.copy(t)}},{key:"skew",get:function(){return this.transform.skew},set:function(t){this.transform.skew.copy(t)}},{key:"rotation",get:function(){return this.transform.rotation},set:function(t){this.transform.rotation=t}},{key:"worldVisible",get:function(){var t=this;do{if(!t.visible)return!1;t=t.parent}while(t);return!0}},{key:"mask",get:function(){return this._mask},set:function(t){this._mask&&(this._mask.renderable=!0,this._mask.isMask=!1),this._mask=t,this._mask&&(this._mask.renderable=!1,this._mask.isMask=!0)}},{key:"filters",get:function(){return this._filters&&this._filters.slice()},set:function(t){this._filters=t&&t.slice()}}]),e}(h.default);r.default=b,b.prototype.displayObjectUpdateTransform=b.prototype.updateTransform},{"../const":46,"../math":70,"../settings":101,"./Bounds":47,"./Transform":50,"./TransformStatic":52,eventemitter3:3}],50:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")} +function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]&&arguments[0];i(this,e);var n=o(this,t.call(this));return n.fillAlpha=1,n.lineWidth=0,n.nativeLines=r,n.lineColor=0,n.lineAlignment=.5,n.graphicsData=[],n.tint=16777215,n._prevTint=16777215,n.blendMode=_.BLEND_MODES.NORMAL,n.currentPath=null,n._webGL={},n.isMask=!1,n.boundsPadding=0,n._localBounds=new x.default,n.dirty=0,n.fastRectDirty=-1,n.clearDirty=0,n.boundsDirty=-1,n.cachedSpriteDirty=!1,n._spriteRect=null,n._fastRect=!1,n._prevRectTint=null,n._prevRectFillColor=null,n}return s(e,t),e.prototype.clone=function(){var t=new e;t.renderable=this.renderable,t.fillAlpha=this.fillAlpha,t.lineWidth=this.lineWidth,t.lineColor=this.lineColor,t.lineAlignment=this.lineAlignment,t.tint=this.tint,t.blendMode=this.blendMode,t.isMask=this.isMask,t.boundsPadding=this.boundsPadding,t.dirty=0,t.cachedSpriteDirty=this.cachedSpriteDirty;for(var r=0;re.CURVES.maxSegments&&(r=e.CURVES.maxSegments),r},e.prototype.lineStyle=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5;if(this.lineWidth=t,this.lineColor=e,this.lineAlpha=r,this.lineAlignment=n,this.currentPath)if(this.currentPath.shape.points.length){var i=new y.Polygon(this.currentPath.shape.points.slice(-2));i.closed=!1,this.drawShape(i)}else this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha,this.currentPath.lineAlignment=this.lineAlignment;return this},e.prototype.moveTo=function(t,e){var r=new y.Polygon([t,e]);return r.closed=!1,this.drawShape(r),this},e.prototype.lineTo=function(t,e){var r=this.currentPath.shape.points,n=r[r.length-2],i=r[r.length-1];return n===t&&i===e||(r.push(t,e),this.dirty++),this},e.prototype.quadraticCurveTo=function(t,r,n,i){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var o=this.currentPath.shape.points,s=0,a=0;0===o.length&&this.moveTo(0,0);for(var u=o[o.length-2],h=o[o.length-1],l=e.CURVES.adaptive?this._segmentsCount(this._quadraticCurveLength(u,h,t,r,n,i)):20,c=1;c<=l;++c){var d=c/l;s=u+(t-u)*d,a=h+(r-h)*d,o.push(s+(t+(n-t)*d-s)*d,a+(r+(i-r)*d-a)*d)}return this.dirty++,this},e.prototype.bezierCurveTo=function(t,r,n,i,o,s){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var a=this.currentPath.shape.points,u=a[a.length-2],h=a[a.length-1];a.length-=2;var l=e.CURVES.adaptive?this._segmentsCount(this._bezierCurveLength(u,h,t,r,n,i,o,s)):20;return(0,w.default)(u,h,t,r,n,i,o,s,l,a),this.dirty++,this},e.prototype.arcTo=function(t,e,r,n,i){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(t,e):this.moveTo(t,e);var o=this.currentPath.shape.points,s=o[o.length-2],a=o[o.length-1],u=a-e,h=s-t,l=n-e,c=r-t,d=Math.abs(u*c-h*l);if(d<1e-8||0===i)o[o.length-2]===t&&o[o.length-1]===e||o.push(t,e);else{var f=u*u+h*h,p=l*l+c*c,v=u*l+h*c,g=i*Math.sqrt(f)/d,y=i*Math.sqrt(p)/d,m=g*v/f,_=y*v/p,b=g*c+y*h,x=g*l+y*u,T=h*(y+m),w=u*(y+m),E=c*(g+_),S=l*(g+_),O=Math.atan2(w-x,T-b),M=Math.atan2(S-x,E-b);this.arc(b+t,x+e,i,O,M,h*l>c*u)}return this.dirty++,this},e.prototype.arc=function(t,r,n,i,o){var s=arguments.length>5&&void 0!==arguments[5]&&arguments[5];if(i===o)return this;!s&&o<=i?o+=_.PI_2:s&&i<=o&&(i+=_.PI_2);var a=o-i,u=e.CURVES.adaptive?this._segmentsCount(Math.abs(a)*n):40*Math.ceil(Math.abs(a)/_.PI_2);if(0===a)return this;var h=t+Math.cos(i)*n,l=r+Math.sin(i)*n,c=this.currentPath?this.currentPath.shape.points:null;if(c){var d=Math.abs(c[c.length-2]-h),f=Math.abs(c[c.length-1]-l);d<.001&&f<.001||c.push(h,l)}else this.moveTo(h,l),c=this.currentPath.shape.points;for(var p=a/(2*u),v=2*p,g=Math.cos(p),y=Math.sin(p),m=u-1,b=m%1/m,x=0;x<=m;++x){var T=x+b*x,w=p+i+v*T,E=Math.cos(w),S=-Math.sin(w);c.push((g*E+y*S)*n+t,(g*-S+y*E)*n+r)}return this.dirty++,this},e.prototype.beginFill=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return this.filling=!0,this.fillColor=t,this.fillAlpha=e,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},e.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},e.prototype.drawRect=function(t,e,r,n){return this.drawShape(new y.Rectangle(t,e,r,n)),this},e.prototype.drawRoundedRect=function(t,e,r,n,i){return this.drawShape(new y.RoundedRectangle(t,e,r,n,i)),this},e.prototype.drawCircle=function(t,e,r){return this.drawShape(new y.Circle(t,e,r)),this},e.prototype.drawEllipse=function(t,e,r,n){return this.drawShape(new y.Ellipse(t,e,r,n)),this},e.prototype.drawPolygon=function(t){var e=t,r=!0;if(e instanceof y.Polygon&&(r=e.closed,e=e.points),!Array.isArray(e)){e=new Array(arguments.length);for(var n=0;n5&&void 0!==arguments[5]?arguments[5]:0;i=i||n/2;for(var s=-1*Math.PI/2+o,a=2*r,u=_.PI_2/a,h=[],l=0;l0)&&(this.lineWidth=0,this.lineAlignment=.5,this.filling=!1,this.boundsDirty=-1,this.canvasTintDirty=-1,this.dirty++,this.clearDirty++,this.graphicsData.length=0),this.currentPath=null,this._spriteRect=null,this},e.prototype.isFastRect=function(){return 1===this.graphicsData.length&&this.graphicsData[0].shape.type===_.SHAPES.RECT&&!this.graphicsData[0].lineWidth},e.prototype._renderWebGL=function(t){this.dirty!==this.fastRectDirty&&(this.fastRectDirty=this.dirty,this._fastRect=this.isFastRect()),this._fastRect?this._renderSpriteRect(t):(t.setObjectRenderer(t.plugins.graphics),t.plugins.graphics.render(this))},e.prototype._renderSpriteRect=function(t){var e=this.graphicsData[0].shape;this._spriteRect||(this._spriteRect=new g.default(new d.default(d.default.WHITE)));var r=this._spriteRect,n=this.graphicsData[0].fillColor;if(16777215===this.tint)r.tint=n;else if(this.tint!==this._prevRectTint||n!==this._prevRectFillColor){var i=C,o=R;(0,m.hex2rgb)(n,i),(0,m.hex2rgb)(this.tint,o),i[0]*=o[0],i[1]*=o[1],i[2]*=o[2],r.tint=(0,m.rgb2hex)(i),this._prevRectTint=this.tint,this._prevRectFillColor=n}r.alpha=this.graphicsData[0].fillAlpha,r.worldAlpha=this.worldAlpha*r.alpha,r.blendMode=this.blendMode,r._texture._frame.width=e.width,r._texture._frame.height=e.height,r.transform.worldTransform=this.transform.worldTransform,r.anchor.set(-e.x/e.width,-e.y/e.height),r._onAnchorUpdate(),r._renderWebGL(t)},e.prototype._renderCanvas=function(t){!0!==this.isMask&&t.plugins.graphics.render(this)},e.prototype._calculateBounds=function(){this.boundsDirty!==this.dirty&&(this.boundsDirty=this.dirty,this.updateLocalBounds(),this.cachedSpriteDirty=!0);var t=this._localBounds;this._bounds.addFrame(this.transform,t.minX,t.minY,t.maxX,t.maxY)},e.prototype.containsPoint=function(t){this.worldTransform.applyInverse(t,P);for(var e=this.graphicsData,r=0;re?o+a:e,r=sn?s+u:n;else if(c===_.SHAPES.CIRC)o=i.x,s=i.y,a=i.radius+p,u=i.radius+p,t=o-ae?o+a:e,r=s-un?s+u:n;else if(c===_.SHAPES.ELIP)o=i.x,s=i.y,a=i.width+p,u=i.height+p,t=o-ae?o+a:e,r=s-un?s+u:n;else for(var v=i.points,g=0,y=0,m=0,b=0,x=0,T=0,w=0,E=0,S=0;S+2e?w+x:e,r=E-Tn?E+T:n)}else t=0,e=0,r=0,n=0;var O=this.boundsPadding;this._localBounds.minX=t-O,this._localBounds.maxX=e+O,this._localBounds.minY=r-O,this._localBounds.maxY=n+O},e.prototype.drawShape=function(t){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null;var e=new p.default(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,this.nativeLines,t,this.lineAlignment);return this.graphicsData.push(e),e.type===_.SHAPES.POLY&&(e.shape.closed=e.shape.closed,this.currentPath=e),this.dirty++,e},e.prototype.generateCanvasTexture=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=this.getLocalBounds(),n=l.default.create(r.width,r.height,t,e);O||(O=new S.default),this.transform.updateLocalTransform(),this.transform.localTransform.copy(M),M.invert(),M.tx-=r.x,M.ty-=r.y,O.render(this,n,!0,M);var i=d.default.fromCanvas(n.baseTexture._canvasRenderTarget.canvas,t,"graphics");return i.baseTexture.resolution=e,i.baseTexture.update(),i},e.prototype.closePath=function(){var t=this.currentPath;return t&&t.shape&&t.shape.close(),this},e.prototype.addHole=function(){var t=this.graphicsData.pop();return this.currentPath=this.graphicsData[this.graphicsData.length-1],this.currentPath.addHole(t.shape),this.currentPath=null,this},e.prototype.destroy=function(e){t.prototype.destroy.call(this,e);for(var r=0;r0){p=0;for(var y=0;y=2;x-=2)r.lineTo(d[x],d[x+1]);f[m].closed&&r.closePath()}}u.fill&&(r.globalAlpha=u.fillAlpha*n,r.fillStyle="#"+("00000"+(0|l).toString(16)).substr(-6),r.fill()),u.lineWidth&&(r.globalAlpha=u.lineAlpha*n,r.strokeStyle="#"+("00000"+(0|c).toString(16)).substr(-6),r.stroke())}else if(u.type===s.SHAPES.RECT)(u.fillColor||0===u.fillColor)&&(r.globalAlpha=u.fillAlpha*n,r.fillStyle="#"+("00000"+(0|l).toString(16)).substr(-6),r.fillRect(h.x,h.y,h.width,h.height)),u.lineWidth&&(r.globalAlpha=u.lineAlpha*n,r.strokeStyle="#"+("00000"+(0|c).toString(16)).substr(-6),r.strokeRect(h.x,h.y,h.width,h.height));else if(u.type===s.SHAPES.CIRC)r.beginPath(),r.arc(h.x,h.y,h.radius,0,2*Math.PI),r.closePath(),u.fill&&(r.globalAlpha=u.fillAlpha*n,r.fillStyle="#"+("00000"+(0|l).toString(16)).substr(-6),r.fill()),u.lineWidth&&(r.globalAlpha=u.lineAlpha*n,r.strokeStyle="#"+("00000"+(0|c).toString(16)).substr(-6),r.stroke());else if(u.type===s.SHAPES.ELIP){var T=2*h.width,w=2*h.height,E=h.x-T/2,S=h.y-w/2;r.beginPath();var O=T/2*.5522848,M=w/2*.5522848,P=E+T,C=S+w,R=E+T/2,A=S+w/2;r.moveTo(E,A),r.bezierCurveTo(E,A-M,R-O,S,R,S),r.bezierCurveTo(R+O,S,P,A-M,P,A),r.bezierCurveTo(P,A+M,R+O,C,R,C),r.bezierCurveTo(R-O,C,E,A+M,E,A),r.closePath(),u.fill&&(r.globalAlpha=u.fillAlpha*n,r.fillStyle="#"+("00000"+(0|l).toString(16)).substr(-6),r.fill()),u.lineWidth&&(r.globalAlpha=u.lineAlpha*n,r.strokeStyle="#"+("00000"+(0|c).toString(16)).substr(-6),r.stroke())}else if(u.type===s.SHAPES.RREC){var I=h.x,D=h.y,L=h.width,N=h.height,B=h.radius,k=Math.min(L,N)/2|0;B=B>k?k:B,r.beginPath(),r.moveTo(I,D+B),r.lineTo(I,D+N-B),r.quadraticCurveTo(I,D+N,I+B,D+N),r.lineTo(I+L-B,D+N),r.quadraticCurveTo(I+L,D+N,I+L,D+N-B),r.lineTo(I+L,D+B),r.quadraticCurveTo(I+L,D,I+L-B,D),r.lineTo(I+B,D),r.quadraticCurveTo(I,D,I,D+B),r.closePath(),(u.fillColor||0===u.fillColor)&&(r.globalAlpha=u.fillAlpha*n,r.fillStyle="#"+("00000"+(0|l).toString(16)).substr(-6),r.fill()),u.lineWidth&&(r.globalAlpha=u.lineAlpha*n,r.strokeStyle="#"+("00000"+(0|c).toString(16)).substr(-6),r.stroke())}}},t.prototype.updateGraphicsTint=function(t){t._prevTint=t.tint,t.canvasTintDirty=t.dirty;for(var e=(t.tint>>16&255)/255,r=(t.tint>>8&255)/255,n=(255&t.tint)/255,i=0;i>16&255)/255*e*255<<16)+((s>>8&255)/255*r*255<<8)+(255&s)/255*n*255,o._lineTint=((a>>16&255)/255*e*255<<16)+((a>>8&255)/255*r*255<<8)+(255&a)/255*n*255}},t.prototype.renderPolygon=function(t,e,r){r.moveTo(t[0],t[1]);for(var n=1;n9&&void 0!==arguments[9]?arguments[9]:[],l=0,c=0,d=0,f=0,p=0;h.push(t,e);for(var v=1,g=0;v<=u;++v)g=v/u,l=1-g,c=l*l,d=c*l,f=g*g,p=f*g,h.push(d*t+3*c*g*r+3*l*f*i+p*s,d*e+3*c*g*n+3*l*f*o+p*a);return h}r.__esModule=!0,r.default=n},{}],57:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=t("../../utils"),u=t("../../const"),h=t("../../renderers/webgl/utils/ObjectRenderer"),l=n(h),c=t("../../renderers/webgl/WebGLRenderer"),d=n(c),f=t("./WebGLGraphicsData"),p=n(f),v=t("./shaders/PrimitiveShader"),g=n(v),y=t("./utils/buildPoly"),m=n(y),_=t("./utils/buildRectangle"),b=n(_),x=t("./utils/buildRoundedRectangle"),T=n(x),w=t("./utils/buildCircle"),E=n(w),S=function(t){function e(r){i(this,e);var n=o(this,t.call(this,r));return n.graphicsDataPool=[],n.primitiveShader=null,n.gl=r.gl,n.CONTEXT_UID=0,n}return s(e,t),e.prototype.onContextChange=function(){this.gl=this.renderer.gl,this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.primitiveShader=new g.default(this.gl)},e.prototype.destroy=function(){l.default.prototype.destroy.call(this);for(var t=0;t32e4)&&(n=this.graphicsDataPool.pop()||new p.default(this.renderer.gl,this.primitiveShader,this.renderer.state.attribsState),n.nativeLines=r,n.reset(e),t.data.push(n)),n.dirty=!0,n},e}(l.default);r.default=S,d.default.registerPlugin("graphics",S)},{"../../const":46,"../../renderers/webgl/WebGLRenderer":84,"../../renderers/webgl/utils/ObjectRenderer":94,"../../utils":125,"./WebGLGraphicsData":58,"./shaders/PrimitiveShader":59,"./utils/buildCircle":60,"./utils/buildPoly":62,"./utils/buildRectangle":63,"./utils/buildRoundedRectangle":64}],58:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("pixi-gl-core"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=function(){function t(e,r,i){n(this,t),this.gl=e,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=o.default.GLBuffer.createVertexBuffer(e),this.indexBuffer=o.default.GLBuffer.createIndexBuffer(e),this.dirty=!0,this.nativeLines=!1,this.glPoints=null,this.glIndices=null,this.shader=r,this.vao=new o.default.VertexArrayObject(e,i).addIndex(this.indexBuffer).addAttribute(this.buffer,r.attributes.aVertexPosition,e.FLOAT,!1,24,0).addAttribute(this.buffer,r.attributes.aColor,e.FLOAT,!1,24,8)}return t.prototype.reset=function(){this.points.length=0,this.indices.length=0},t.prototype.upload=function(){this.glPoints=new Float32Array(this.points),this.buffer.upload(this.glPoints),this.glIndices=new Uint16Array(this.indices),this.indexBuffer.upload(this.glIndices),this.dirty=!1},t.prototype.destroy=function(){this.color=null,this.points=null,this.indices=null,this.vao.destroy(),this.buffer.destroy(),this.indexBuffer.destroy(),this.gl=null,this.buffer=null,this.indexBuffer=null,this.glPoints=null,this.glIndices=null},t}();r.default=s},{"pixi-gl-core":15}],59:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=t("../../../Shader"),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=function(t){function e(r){return n(this,e),i(this,t.call(this,r,["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform mat3 projectionMatrix;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void){"," gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"].join("\n"),["varying vec4 vColor;","void main(void){"," gl_FragColor = vColor;","}"].join("\n")))}return o(e,t),e}(a.default);r.default=u},{"../../../Shader":44}],60:[function(t,e,r){"use strict";function n(t,e,r){var n=t.shape,i=n.x,u=n.y,h=void 0,l=void 0;if(t.type===s.SHAPES.CIRC?(h=n.radius,l=n.radius):(h=n.width,l=n.height),0!==h&&0!==l){var c=Math.floor(30*Math.sqrt(n.radius))||Math.floor(15*Math.sqrt(n.width+n.height)),d=2*Math.PI/c;if(t.fill){var f=(0,a.hex2rgb)(t.fillColor),p=t.fillAlpha,v=f[0]*p,g=f[1]*p,y=f[2]*p,m=e.points,_=e.indices,b=m.length/6;_.push(b);for(var x=0;x196*p*p?(R=O-P,A=M-C,I=Math.sqrt(R*R+A*A),R/=I,A/=I,R*=p,A*=p,h.push(T-R*L,w-A*L),h.push(y,m,_,g),h.push(T+R*N,w+A*N),h.push(y,m,_,g), +h.push(T-R*N*L,w-A*L),h.push(y,m,_,g),d++):(h.push(T+(H-T)*L,w+(Y-w)*L),h.push(y,m,_,g),h.push(T-(H-T)*N,w-(Y-w)*N),h.push(y,m,_,g))}}b=r[2*(c-2)],x=r[2*(c-2)+1],T=r[2*(c-1)],w=r[2*(c-1)+1],O=-(x-w),M=b-T,I=Math.sqrt(O*O+M*M),O/=I,M/=I,O*=p,M*=p,h.push(T-O*L,w-M*L),h.push(y,m,_,g),h.push(T+O*N,w+M*N),h.push(y,m,_,g),l.push(f);for(var V=0;V=6){for(var i=[],o=t.holes,u=0;u0&&(0,s.default)(t,e,r)}r.__esModule=!0,r.default=i;var o=t("./buildLine"),s=n(o),a=t("../../../utils"),u=t("earcut"),h=n(u)},{"../../../utils":125,"./buildLine":61,earcut:2}],63:[function(t,e,r){"use strict";function n(t,e,r){var n=t.shape,i=n.x,a=n.y,u=n.width,h=n.height;if(t.fill){var l=(0,s.hex2rgb)(t.fillColor),c=t.fillAlpha,d=l[0]*c,f=l[1]*c,p=l[2]*c,v=e.points,g=e.indices,y=v.length/6;v.push(i,a),v.push(d,f,p,c),v.push(i+u,a),v.push(d,f,p,c),v.push(i,a+h),v.push(d,f,p,c),v.push(i+u,a+h),v.push(d,f,p,c),g.push(y,y,y+1,y+2,y+3,y+3)}if(t.lineWidth){var m=t.points;t.points=[i,a,i+u,a,i+u,a+h,i,a+h,i,a],(0,o.default)(t,e,r),t.points=m}}r.__esModule=!0,r.default=n;var i=t("./buildLine"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=t("../../../utils")},{"../../../utils":125,"./buildLine":61}],64:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e,r){var n=t.shape,i=n.x,o=n.y,a=n.width,h=n.height,d=n.radius,f=[];if(f.push(i+d,o),s(i+a-d,o,i+a,o,i+a,o+d,f),s(i+a,o+h-d,i+a,o+h,i+a-d,o+h,f),s(i+d,o+h,i,o+h,i,o+h-d,f),s(i,o+d,i,o,i+d+1e-10,o,f),t.fill){for(var p=(0,c.hex2rgb)(t.fillColor),v=t.fillAlpha,g=p[0]*v,y=p[1]*v,m=p[2]*v,_=e.points,b=e.indices,x=_.length/6,T=(0,u.default)(f,null,2),w=0,E=T.length;w6&&void 0!==arguments[6]?arguments[6]:[],u=a,h=0,l=0,c=0,d=0,f=0,p=0,v=0,g=0;v<=20;++v)g=v/20,h=o(t,r,g),l=o(e,n,g),c=o(r,i,g),d=o(n,s,g),f=o(h,c,g),p=o(l,d,g),u.push(f,p);return u}r.__esModule=!0,r.default=i;var a=t("earcut"),u=n(a),h=t("./buildLine"),l=n(h),c=t("../../../utils")},{"../../../utils":125,"./buildLine":61,earcut:2}],65:[function(t,e,r){"use strict";function n(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}function i(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0,r.autoDetectRenderer=r.Application=r.Filter=r.SpriteMaskFilter=r.Quad=r.RenderTarget=r.ObjectRenderer=r.WebGLManager=r.Shader=r.CanvasRenderTarget=r.TextureUvs=r.VideoBaseTexture=r.BaseRenderTexture=r.RenderTexture=r.BaseTexture=r.TextureMatrix=r.Texture=r.Spritesheet=r.CanvasGraphicsRenderer=r.GraphicsRenderer=r.GraphicsData=r.Graphics=r.TextMetrics=r.TextStyle=r.Text=r.SpriteRenderer=r.CanvasTinter=r.CanvasSpriteRenderer=r.Sprite=r.TransformBase=r.TransformStatic=r.Transform=r.Container=r.DisplayObject=r.Bounds=r.glCore=r.WebGLRenderer=r.CanvasRenderer=r.ticker=r.utils=r.settings=void 0;var o=t("./const");Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(r,t,{enumerable:!0,get:function(){return o[t]}})});var s=t("./math");Object.keys(s).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(r,t,{enumerable:!0,get:function(){return s[t]}})});var a=t("pixi-gl-core");Object.defineProperty(r,"glCore",{enumerable:!0,get:function(){return i(a).default}});var u=t("./display/Bounds");Object.defineProperty(r,"Bounds",{enumerable:!0,get:function(){return i(u).default}});var h=t("./display/DisplayObject");Object.defineProperty(r,"DisplayObject",{enumerable:!0,get:function(){return i(h).default}});var l=t("./display/Container");Object.defineProperty(r,"Container",{enumerable:!0,get:function(){return i(l).default}});var c=t("./display/Transform");Object.defineProperty(r,"Transform",{enumerable:!0,get:function(){return i(c).default}});var d=t("./display/TransformStatic");Object.defineProperty(r,"TransformStatic",{enumerable:!0,get:function(){return i(d).default}});var f=t("./display/TransformBase");Object.defineProperty(r,"TransformBase",{enumerable:!0,get:function(){return i(f).default}});var p=t("./sprites/Sprite");Object.defineProperty(r,"Sprite",{enumerable:!0,get:function(){return i(p).default}});var v=t("./sprites/canvas/CanvasSpriteRenderer");Object.defineProperty(r,"CanvasSpriteRenderer",{enumerable:!0,get:function(){return i(v).default}});var g=t("./sprites/canvas/CanvasTinter");Object.defineProperty(r,"CanvasTinter",{enumerable:!0,get:function(){return i(g).default}});var y=t("./sprites/webgl/SpriteRenderer");Object.defineProperty(r,"SpriteRenderer",{enumerable:!0,get:function(){return i(y).default}});var m=t("./text/Text");Object.defineProperty(r,"Text",{enumerable:!0,get:function(){return i(m).default}});var _=t("./text/TextStyle");Object.defineProperty(r,"TextStyle",{enumerable:!0,get:function(){return i(_).default}});var b=t("./text/TextMetrics");Object.defineProperty(r,"TextMetrics",{enumerable:!0,get:function(){return i(b).default}});var x=t("./graphics/Graphics");Object.defineProperty(r,"Graphics",{enumerable:!0,get:function(){return i(x).default}});var T=t("./graphics/GraphicsData");Object.defineProperty(r,"GraphicsData",{enumerable:!0,get:function(){return i(T).default}});var w=t("./graphics/webgl/GraphicsRenderer");Object.defineProperty(r,"GraphicsRenderer",{enumerable:!0,get:function(){return i(w).default}});var E=t("./graphics/canvas/CanvasGraphicsRenderer");Object.defineProperty(r,"CanvasGraphicsRenderer",{enumerable:!0,get:function(){return i(E).default}});var S=t("./textures/Spritesheet");Object.defineProperty(r,"Spritesheet",{enumerable:!0,get:function(){return i(S).default}});var O=t("./textures/Texture");Object.defineProperty(r,"Texture",{enumerable:!0,get:function(){return i(O).default}});var M=t("./textures/TextureMatrix");Object.defineProperty(r,"TextureMatrix",{enumerable:!0,get:function(){return i(M).default}});var P=t("./textures/BaseTexture");Object.defineProperty(r,"BaseTexture",{enumerable:!0,get:function(){return i(P).default}});var C=t("./textures/RenderTexture");Object.defineProperty(r,"RenderTexture",{enumerable:!0,get:function(){return i(C).default}});var R=t("./textures/BaseRenderTexture");Object.defineProperty(r,"BaseRenderTexture",{enumerable:!0,get:function(){return i(R).default}});var A=t("./textures/VideoBaseTexture");Object.defineProperty(r,"VideoBaseTexture",{enumerable:!0,get:function(){return i(A).default}});var I=t("./textures/TextureUvs");Object.defineProperty(r,"TextureUvs",{enumerable:!0,get:function(){return i(I).default}});var D=t("./renderers/canvas/utils/CanvasRenderTarget");Object.defineProperty(r,"CanvasRenderTarget",{enumerable:!0,get:function(){return i(D).default}});var L=t("./Shader");Object.defineProperty(r,"Shader",{enumerable:!0,get:function(){return i(L).default}});var N=t("./renderers/webgl/managers/WebGLManager");Object.defineProperty(r,"WebGLManager",{enumerable:!0,get:function(){return i(N).default}});var B=t("./renderers/webgl/utils/ObjectRenderer");Object.defineProperty(r,"ObjectRenderer",{enumerable:!0,get:function(){return i(B).default}});var k=t("./renderers/webgl/utils/RenderTarget");Object.defineProperty(r,"RenderTarget",{enumerable:!0,get:function(){return i(k).default}});var F=t("./renderers/webgl/utils/Quad");Object.defineProperty(r,"Quad",{enumerable:!0,get:function(){return i(F).default}});var j=t("./renderers/webgl/filters/spriteMask/SpriteMaskFilter");Object.defineProperty(r,"SpriteMaskFilter",{enumerable:!0,get:function(){return i(j).default}});var U=t("./renderers/webgl/filters/Filter");Object.defineProperty(r,"Filter",{enumerable:!0,get:function(){return i(U).default}});var X=t("./Application");Object.defineProperty(r,"Application",{enumerable:!0,get:function(){return i(X).default}});var G=t("./autoDetectRenderer");Object.defineProperty(r,"autoDetectRenderer",{enumerable:!0,get:function(){return G.autoDetectRenderer}});var W=t("./utils"),H=n(W),Y=t("./ticker"),V=n(Y),z=t("./settings"),q=i(z),K=t("./renderers/canvas/CanvasRenderer"),Z=i(K),J=t("./renderers/webgl/WebGLRenderer"),Q=i(J);r.settings=q.default,r.utils=H,r.ticker=V,r.CanvasRenderer=Z.default,r.WebGLRenderer=Q.default},{"./Application":43,"./Shader":44,"./autoDetectRenderer":45,"./const":46,"./display/Bounds":47,"./display/Container":48,"./display/DisplayObject":49,"./display/Transform":50,"./display/TransformBase":51,"./display/TransformStatic":52,"./graphics/Graphics":53,"./graphics/GraphicsData":54,"./graphics/canvas/CanvasGraphicsRenderer":55,"./graphics/webgl/GraphicsRenderer":57,"./math":70,"./renderers/canvas/CanvasRenderer":77,"./renderers/canvas/utils/CanvasRenderTarget":79,"./renderers/webgl/WebGLRenderer":84,"./renderers/webgl/filters/Filter":86,"./renderers/webgl/filters/spriteMask/SpriteMaskFilter":89,"./renderers/webgl/managers/WebGLManager":93,"./renderers/webgl/utils/ObjectRenderer":94,"./renderers/webgl/utils/Quad":95,"./renderers/webgl/utils/RenderTarget":96,"./settings":101,"./sprites/Sprite":102,"./sprites/canvas/CanvasSpriteRenderer":103,"./sprites/canvas/CanvasTinter":104,"./sprites/webgl/SpriteRenderer":106,"./text/Text":108,"./text/TextMetrics":109,"./text/TextStyle":110,"./textures/BaseRenderTexture":111,"./textures/BaseTexture":112,"./textures/RenderTexture":113,"./textures/Spritesheet":114,"./textures/Texture":115,"./textures/TextureMatrix":116,"./textures/TextureUvs":117,"./textures/VideoBaseTexture":118,"./ticker":121,"./utils":125,"pixi-gl-core":15}],66:[function(t,e,r){"use strict";function n(t){return t<0?-1:t>0?1:0}r.__esModule=!0;var i=t("./Matrix"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],a=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],u=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],h=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],l=[],c=[];!function(){for(var t=0;t<16;t++){var e=[];c.push(e);for(var r=0;r<16;r++)for(var i=n(s[t]*s[r]+u[t]*a[r]),d=n(a[t]*s[r]+h[t]*a[r]),f=n(s[t]*u[r]+u[t]*h[r]),p=n(a[t]*u[r]+h[t]*h[r]),v=0;v<16;v++)if(s[v]===i&&a[v]===d&&u[v]===f&&h[v]===p){e.push(v);break}}for(var g=0;g<16;g++){var y=new o.default;y.set(s[g],a[g],u[g],h[g],0,0),l.push(y)}}();var d={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MIRROR_HORIZONTAL:12,uX:function(t){return s[t]},uY:function(t){return a[t]},vX:function(t){return u[t]},vY:function(t){return h[t]},inv:function(t){return 8&t?15&t:7&-t},add:function(t,e){return c[t][e]},sub:function(t,e){return c[t][d.inv(e)]},rotate180:function(t){return 4^t},isVertical:function(t){return 2==(3&t)},byDirection:function(t,e){return 2*Math.abs(t)<=Math.abs(e)?e>=0?d.S:d.N:2*Math.abs(e)<=Math.abs(t)?t>0?d.E:d.W:e>0?t>0?d.SE:d.SW:t>0?d.NE:d.NW},matrixAppendRotationInv:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=l[d.inv(e)];i.tx=r,i.ty=n,t.append(i)}};r.default=d},{"./Matrix":67}],67:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:1,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;n(this,t),this.a=e,this.b=r,this.c=i,this.d=o,this.tx=s,this.ty=a,this.array=null}return t.prototype.fromArray=function(t){this.a=t[0],this.b=t[1],this.c=t[3],this.d=t[4],this.tx=t[2],this.ty=t[5]},t.prototype.set=function(t,e,r,n,i,o){return this.a=t,this.b=e,this.c=r,this.d=n,this.tx=i,this.ty=o,this},t.prototype.toArray=function(t,e){this.array||(this.array=new Float32Array(9));var r=e||this.array;return t?(r[0]=this.a,r[1]=this.b,r[2]=0,r[3]=this.c,r[4]=this.d,r[5]=0,r[6]=this.tx,r[7]=this.ty,r[8]=1):(r[0]=this.a,r[1]=this.c,r[2]=this.tx,r[3]=this.b,r[4]=this.d,r[5]=this.ty,r[6]=0,r[7]=0,r[8]=1),r},t.prototype.apply=function(t,e){e=e||new s.default;var r=t.x,n=t.y;return e.x=this.a*r+this.c*n+this.tx,e.y=this.b*r+this.d*n+this.ty,e},t.prototype.applyInverse=function(t,e){e=e||new s.default;var r=1/(this.a*this.d+this.c*-this.b),n=t.x,i=t.y;return e.x=this.d*r*n+-this.c*r*i+(this.ty*this.c-this.tx*this.d)*r,e.y=this.a*r*i+-this.b*r*n+(-this.ty*this.a+this.tx*this.b)*r,e},t.prototype.translate=function(t,e){return this.tx+=t,this.ty+=e,this},t.prototype.scale=function(t,e){return this.a*=t,this.d*=e,this.c*=t,this.b*=e,this.tx*=t,this.ty*=e,this},t.prototype.rotate=function(t){var e=Math.cos(t),r=Math.sin(t),n=this.a,i=this.c,o=this.tx;return this.a=n*e-this.b*r,this.b=n*r+this.b*e,this.c=i*e-this.d*r,this.d=i*r+this.d*e,this.tx=o*e-this.ty*r,this.ty=o*r+this.ty*e,this},t.prototype.append=function(t){var e=this.a,r=this.b,n=this.c,i=this.d;return this.a=t.a*e+t.b*n,this.b=t.a*r+t.b*i,this.c=t.c*e+t.d*n,this.d=t.c*r+t.d*i,this.tx=t.tx*e+t.ty*n+this.tx,this.ty=t.tx*r+t.ty*i+this.ty,this},t.prototype.setTransform=function(t,e,r,n,i,o,s,a,u){return this.a=Math.cos(s+u)*i,this.b=Math.sin(s+u)*i,this.c=-Math.sin(s-a)*o,this.d=Math.cos(s-a)*o,this.tx=t-(r*this.a+n*this.c),this.ty=e-(r*this.b+n*this.d),this},t.prototype.prepend=function(t){var e=this.tx;if(1!==t.a||0!==t.b||0!==t.c||1!==t.d){var r=this.a,n=this.c;this.a=r*t.a+this.b*t.c,this.b=r*t.b+this.b*t.d,this.c=n*t.a+this.d*t.c,this.d=n*t.b+this.d*t.d}return this.tx=e*t.a+this.ty*t.c+t.tx,this.ty=e*t.b+this.ty*t.d+t.ty,this},t.prototype.decompose=function(t){var e=this.a,r=this.b,n=this.c,i=this.d,o=-Math.atan2(-n,i),s=Math.atan2(r,e),u=Math.abs(o+s);return u<1e-5||Math.abs(a.PI_2-u)<1e-5?(t.rotation=s,e<0&&i>=0&&(t.rotation+=t.rotation<=0?Math.PI:-Math.PI),t.skew.x=t.skew.y=0):(t.rotation=0,t.skew.x=o,t.skew.y=s),t.scale.x=Math.sqrt(e*e+r*r),t.scale.y=Math.sqrt(n*n+i*i),t.position.x=this.tx,t.position.y=this.ty,t},t.prototype.invert=function(){var t=this.a,e=this.b,r=this.c,n=this.d,i=this.tx,o=t*n-e*r;return this.a=n/o,this.b=-e/o,this.c=-r/o,this.d=t/o,this.tx=(r*this.ty-n*i)/o,this.ty=-(t*this.ty-e*i)/o,this},t.prototype.identity=function(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this},t.prototype.clone=function(){var e=new t;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e},t.prototype.copy=function(t){return t.a=this.a,t.b=this.b,t.c=this.c,t.d=this.d,t.tx=this.tx,t.ty=this.ty,t},i(t,null,[{key:"IDENTITY",get:function(){return new t}},{key:"TEMP_MATRIX",get:function(){return new t}}]),t}();r.default=u},{"../const":46,"./Point":69}],68:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(t,e){for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;n(this,t),this._x=i,this._y=o,this.cb=e,this.scope=r}return t.prototype.clone=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return new t(e||this.cb,r||this.scope,this._x,this._y)},t.prototype.set=function(t,e){var r=t||0,n=e||(0!==e?r:0);this._x===r&&this._y===n||(this._x=r,this._y=n,this.cb.call(this.scope))},t.prototype.copy=function(t){this._x===t.x&&this._y===t.y||(this._x=t.x,this._y=t.y,this.cb.call(this.scope))},t.prototype.equals=function(t){return t.x===this._x&&t.y===this._y},i(t,[{key:"x",get:function(){return this._x},set:function(t){this._x!==t&&(this._x=t,this.cb.call(this.scope))}},{key:"y",get:function(){return this._y},set:function(t){this._y!==t&&(this._y=t,this.cb.call(this.scope))}}]),t}();r.default=o},{}],69:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;n(this,t),this.x=e,this.y=r}return t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.copy=function(t){this.set(t.x,t.y)},t.prototype.equals=function(t){return t.x===this.x&&t.y===this.y},t.prototype.set=function(t,e){this.x=t||0,this.y=e||(0!==e?this.x:0)},t}();r.default=i},{}],70:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0;var i=t("./Point");Object.defineProperty(r,"Point",{enumerable:!0,get:function(){return n(i).default}});var o=t("./ObservablePoint");Object.defineProperty(r,"ObservablePoint",{enumerable:!0,get:function(){return n(o).default}});var s=t("./Matrix");Object.defineProperty(r,"Matrix",{enumerable:!0,get:function(){return n(s).default}});var a=t("./GroupD8");Object.defineProperty(r,"GroupD8",{enumerable:!0,get:function(){return n(a).default}});var u=t("./shapes/Circle");Object.defineProperty(r,"Circle",{enumerable:!0,get:function(){return n(u).default}});var h=t("./shapes/Ellipse");Object.defineProperty(r,"Ellipse",{enumerable:!0,get:function(){return n(h).default}});var l=t("./shapes/Polygon");Object.defineProperty(r,"Polygon",{enumerable:!0,get:function(){return n(l).default}});var c=t("./shapes/Rectangle");Object.defineProperty(r,"Rectangle",{enumerable:!0,get:function(){return n(c).default}});var d=t("./shapes/RoundedRectangle");Object.defineProperty(r,"RoundedRectangle",{enumerable:!0,get:function(){return n(d).default}})},{"./GroupD8":66,"./Matrix":67,"./ObservablePoint":68,"./Point":69,"./shapes/Circle":71,"./shapes/Ellipse":72,"./shapes/Polygon":73,"./shapes/Rectangle":74,"./shapes/RoundedRectangle":75}],71:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("./Rectangle"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=t("../../const"),a=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;n(this,t),this.x=e,this.y=r,this.radius=i,this.type=s.SHAPES.CIRC}return t.prototype.clone=function(){return new t(this.x,this.y,this.radius)},t.prototype.contains=function(t,e){if(this.radius<=0)return!1;var r=this.radius*this.radius,n=this.x-t,i=this.y-e;return n*=n,i*=i,n+i<=r},t.prototype.getBounds=function(){return new o.default(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},t}();r.default=a},{"../../const":46,"./Rectangle":74}],72:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("./Rectangle"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=t("../../const"),a=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;n(this,t),this.x=e,this.y=r,this.width=i,this.height=o,this.type=s.SHAPES.ELIP}return t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.contains=function(t,e){if(this.width<=0||this.height<=0)return!1;var r=(t-this.x)/this.width,n=(e-this.y)/this.height;return r*=r,n*=n,r+n<=1},t.prototype.getBounds=function(){return new o.default(this.x-this.width,this.y-this.height,this.width,this.height)},t}();r.default=a},{"../../const":46,"./Rectangle":74}],73:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../Point"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=t("../../const"),a=function(){function t(){for(var e=arguments.length,r=Array(e),i=0;ie!=h>e&&t<(e-a)/(h-a)*(u-s)+s&&(r=!r)}return r},t}();r.default=a},{"../../const":46,"../Point":69}],74:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;n(this,t),this.x=Number(e),this.y=Number(r),this.width=Number(i),this.height=Number(s),this.type=o.SHAPES.RECT}return t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this},t.prototype.contains=function(t,e){return!(this.width<=0||this.height<=0)&&(t>=this.x&&t=this.y&&e0&&void 0!==arguments[0]?arguments[0]:1,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.001,r=Math.ceil((this.x+this.width-e)*t)/t,n=Math.ceil((this.y+this.height-e)*t)/t;this.x=Math.floor((this.x+e)*t)/t,this.y=Math.floor((this.y+e)*t)/t,this.width=r-this.x,this.height=n-this.y},i(t,[{key:"left",get:function(){return this.x}},{key:"right",get:function(){return this.x+this.width}},{key:"top",get:function(){return this.y}},{key:"bottom",get:function(){return this.y+this.height}}],[{key:"EMPTY",get:function(){return new t(0,0,0,0)}}]),t}();r.default=s},{"../../const":46}],75:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../../const"),o=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:20;n(this,t),this.x=e,this.y=r,this.width=o,this.height=s,this.radius=a,this.type=i.SHAPES.RREC}return t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height,this.radius)},t.prototype.contains=function(t,e){if(this.width<=0||this.height<=0)return!1;if(t>=this.x&&t<=this.x+this.width&&e>=this.y&&e<=this.y+this.height){if(e>=this.y+this.radius&&e<=this.y+this.height-this.radius||t>=this.x+this.radius&&t<=this.x+this.width-this.radius)return!0;var r=t-(this.x+this.radius),n=e-(this.y+this.radius),i=this.radius*this.radius;if(r*r+n*n<=i)return!0;if((r=t-(this.x+this.width-this.radius))*r+n*n<=i)return!0;if(n=e-(this.y+this.height-this.radius),r*r+n*n<=i)return!0;if((r=t-(this.x+this.radius))*r+n*n<=i)return!0}return!1},t}();r.default=o},{"../../const":46}],76:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=function(){function t(t,e){for(var r=0;r0){h=0;for(var d=0;d=2;g-=2)e.lineTo(a[g],a[g+1])}}}else if(o.type===i.SHAPES.RECT)e.rect(s.x,s.y,s.width,s.height),e.closePath();else if(o.type===i.SHAPES.CIRC)e.arc(s.x,s.y,s.radius,0,2*Math.PI),e.closePath();else if(o.type===i.SHAPES.ELIP){var y=2*s.width,m=2*s.height,_=s.x-y/2,b=s.y-m/2,x=y/2*.5522848,T=m/2*.5522848,w=_+y,E=b+m,S=_+y/2,O=b+m/2;e.moveTo(_,O),e.bezierCurveTo(_,O-T,S-x,b,S,b),e.bezierCurveTo(S+x,b,w,O-T,w,O),e.bezierCurveTo(w,O+T,S+x,E,S,E),e.bezierCurveTo(S-x,E,_,O+T,_,O),e.closePath()}else if(o.type===i.SHAPES.RREC){var M=s.x,P=s.y,C=s.width,R=s.height,A=s.radius,I=Math.min(C,R)/2|0;A=A>I?I:A,e.moveTo(M,P+A),e.lineTo(M,P+R-A),e.quadraticCurveTo(M,P+R,M+A,P+R),e.lineTo(M+C-A,P+R),e.quadraticCurveTo(M+C,P+R,M+C,P+R-A),e.lineTo(M+C,P+A),e.quadraticCurveTo(M+C,P,M+C-A,P),e.lineTo(M+A,P),e.quadraticCurveTo(M,P,M,P+A),e.closePath()}}}},t.prototype.popMask=function(t){t.context.restore(),t.invalidateBlendMode()},t.prototype.destroy=function(){},t}();r.default=o},{"../../../const":46}],79:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:[];return(0,s.default)()?(t[i.BLEND_MODES.NORMAL]="source-over",t[i.BLEND_MODES.ADD]="lighter",t[i.BLEND_MODES.MULTIPLY]="multiply",t[i.BLEND_MODES.SCREEN]="screen",t[i.BLEND_MODES.OVERLAY]="overlay",t[i.BLEND_MODES.DARKEN]="darken",t[i.BLEND_MODES.LIGHTEN]="lighten",t[i.BLEND_MODES.COLOR_DODGE]="color-dodge",t[i.BLEND_MODES.COLOR_BURN]="color-burn",t[i.BLEND_MODES.HARD_LIGHT]="hard-light",t[i.BLEND_MODES.SOFT_LIGHT]="soft-light",t[i.BLEND_MODES.DIFFERENCE]="difference",t[i.BLEND_MODES.EXCLUSION]="exclusion",t[i.BLEND_MODES.HUE]="hue",t[i.BLEND_MODES.SATURATION]="saturate",t[i.BLEND_MODES.COLOR]="color",t[i.BLEND_MODES.LUMINOSITY]="luminosity"):(t[i.BLEND_MODES.NORMAL]="source-over",t[i.BLEND_MODES.ADD]="lighter",t[i.BLEND_MODES.MULTIPLY]="source-over",t[i.BLEND_MODES.SCREEN]="source-over",t[i.BLEND_MODES.OVERLAY]="source-over",t[i.BLEND_MODES.DARKEN]="source-over",t[i.BLEND_MODES.LIGHTEN]="source-over",t[i.BLEND_MODES.COLOR_DODGE]="source-over",t[i.BLEND_MODES.COLOR_BURN]="source-over",t[i.BLEND_MODES.HARD_LIGHT]="source-over",t[i.BLEND_MODES.SOFT_LIGHT]="source-over",t[i.BLEND_MODES.DIFFERENCE]="source-over",t[i.BLEND_MODES.EXCLUSION]="source-over",t[i.BLEND_MODES.HUE]="source-over",t[i.BLEND_MODES.SATURATION]="source-over",t[i.BLEND_MODES.COLOR]="source-over",t[i.BLEND_MODES.LUMINOSITY]="source-over"),t[i.BLEND_MODES.NORMAL_NPM]=t[i.BLEND_MODES.NORMAL],t[i.BLEND_MODES.ADD_NPM]=t[i.BLEND_MODES.ADD],t[i.BLEND_MODES.SCREEN_NPM]=t[i.BLEND_MODES.SCREEN],t}r.__esModule=!0,r.default=n;var i=t("../../../const"),o=t("./canUseNewCanvasBlendModes"),s=function(t){return t&&t.__esModule?t:{default:t}}(o)},{"../../../const":46,"./canUseNewCanvasBlendModes":80}],82:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../../const"),o=t("../../settings"),s=function(t){return t&&t.__esModule?t:{default:t}}(o),a=function(){function t(e){n(this,t),this.renderer=e,this.count=0,this.checkCount=0,this.maxIdle=s.default.GC_MAX_IDLE,this.checkCountMax=s.default.GC_MAX_CHECK_COUNT,this.mode=s.default.GC_MODE}return t.prototype.update=function(){this.count++,this.mode!==i.GC_MODES.MANUAL&&++this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())},t.prototype.run=function(){for(var t=this.renderer.textureManager,e=t._managedTextures,r=!1,n=0;nthis.maxIdle&&(t.destroyTexture(i,!0),e[n]=null,r=!0)}if(r){for(var o=0,s=0;s=0;r--)this.unload(t.children[r])},t}();r.default=a},{"../../const":46,"../../settings":101}],83:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("pixi-gl-core"),o=t("../../const"),s=t("./utils/RenderTarget"),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=t("../../utils"),h=function(){function t(e){n(this,t),this.renderer=e,this.gl=e.gl,this._managedTextures=[]}return t.prototype.bindTexture=function(){},t.prototype.getTexture=function(){},t.prototype.updateTexture=function(t,e){var r=this.gl,n=!!t._glRenderTargets;if(!t.hasLoaded)return null;var s=this.renderer.boundTextures;if(void 0===e){e=0;for(var u=0;u 0.5)"," {"," color = vec4(1.0, 0.0, 0.0, 1.0);"," }"," else"," {"," color = vec4(0.0, 1.0, 0.0, 1.0);"," }"," gl_FragColor = mix(sample, masky, 0.5);"," gl_FragColor *= sample.a;","}"].join("\n")}}]),t}();r.default=f},{"../../../const":46,"../../../settings":101,"../../../utils":125,"./extractUniformsFromSrc":87}],87:[function(t,e,r){"use strict";function n(t,e,r){var n=i(t),o=i(e);return Object.assign(n,o)}function i(t){for(var e=new RegExp("^(projectionMatrix|uSampler|filterArea|filterClamp)$"),r={},n=void 0,i=t.replace(/\s+/g," ").split(/\s*;\s*/),o=0;o-1){var u=s.split(" "),h=u[1],l=u[2],c=1;l.indexOf("[")>-1&&(n=l.split(/\[|]/),l=n[0],c*=Number(n[1])),l.match(e)||(r[l]={value:a(h,c),name:l,type:h})}}return r}r.__esModule=!0,r.default=n;var o=t("pixi-gl-core"),s=function(t){return t&&t.__esModule?t:{default:t}}(o),a=s.default.shader.defaultValue},{"pixi-gl-core":15}],88:[function(t,e,r){"use strict";function n(t,e,r){var n=t.identity();return n.translate(e.x/r.width,e.y/r.height),n.scale(r.width,r.height),n}function i(t,e,r){var n=t.identity();n.translate(e.x/r.width,e.y/r.height);var i=r.width/e.width,o=r.height/e.height;return n.scale(i,o),n}function o(t,e,r,n){var i=n._texture.orig,o=t.set(r.width,0,0,r.height,e.x,e.y),a=n.worldTransform.copy(s.Matrix.TEMP_MATRIX);return a.invert(),o.prepend(a),o.scale(1/i.width,1/i.height),o.translate(n.anchor.x,n.anchor.y),o}r.__esModule=!0,r.calculateScreenSpaceMatrix=n,r.calculateNormalizedScreenSpaceMatrix=i,r.calculateSpriteMatrix=o;var s=t("../../../math")},{"../../../math":70}],89:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=t("../Filter"),u=n(a),h=t("../../../../math"),l=(t("path"),t("../../../../textures/TextureMatrix")),c=n(l),d=function(t){function e(r){i(this,e);var n=new h.Matrix,s=o(this,t.call(this,"attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 otherMatrix;\n\nvarying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n vMaskCoord = ( otherMatrix * vec3( aTextureCoord, 1.0) ).xy;\n}\n","varying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform sampler2D mask;\nuniform float alpha;\nuniform vec4 maskClamp;\n\nvoid main(void)\n{\n float clip = step(3.5,\n step(maskClamp.x, vMaskCoord.x) +\n step(maskClamp.y, vMaskCoord.y) +\n step(vMaskCoord.x, maskClamp.z) +\n step(vMaskCoord.y, maskClamp.w));\n\n vec4 original = texture2D(uSampler, vTextureCoord);\n vec4 masky = texture2D(mask, vMaskCoord);\n\n original *= (masky.r * masky.a * alpha * clip);\n\n gl_FragColor = original;\n}\n"));return r.renderable=!1,s.maskSprite=r,s.maskMatrix=n,s}return s(e,t),e.prototype.apply=function(t,e,r,n){var i=this.maskSprite,o=this.maskSprite.texture;o.valid&&(o.transform||(o.transform=new c.default(o,0)),o.transform.update(),this.uniforms.mask=o,this.uniforms.otherMatrix=t.calculateSpriteMatrix(this.maskMatrix,i).prepend(o.transform.mapCoord),this.uniforms.alpha=i.worldAlpha,this.uniforms.maskClamp=o.transform.uClampFrame,t.applyFilter(this,e,r,n))},e}(u.default);r.default=d},{"../../../../math":70,"../../../../textures/TextureMatrix":116,"../Filter":86,path:8}],90:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var a=t("./WebGLManager"),u=n(a),h=t("../utils/RenderTarget"),l=n(h),c=t("../utils/Quad"),d=n(c),f=t("../../../math"),p=t("../../../Shader"),v=n(p),g=t("../filters/filterTransforms"),y=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(g),m=t("bit-twiddle"),_=n(m),b=function(){function t(){s(this,t),this.renderTarget=null,this.target=null,this.resolution=1,this.sourceFrame=new f.Rectangle,this.destinationFrame=new f.Rectangle,this.filters=[]}return t.prototype.clear=function(){this.filters=null,this.target=null,this.renderTarget=null},t}(),x=function(t){function e(r){s(this,e);var n=i(this,t.call(this,r));return n.gl=n.renderer.gl,n.quad=new d.default(n.gl,r.state.attribState),n.shaderCache={},n.pool={},n.filterData=null,n.managedFilters=[],n.renderer.on("prerender",n.onPrerender,n),n._screenWidth=r.view.width,n._screenHeight=r.view.height,n}return o(e,t),e.prototype.pushFilter=function(t,e){var r=this.renderer,n=this.filterData;if(!n){n=this.renderer._activeRenderTarget.filterStack;var i=new b;i.sourceFrame=i.destinationFrame=this.renderer._activeRenderTarget.size,i.renderTarget=r._activeRenderTarget,this.renderer._activeRenderTarget.filterData=n={index:0,stack:[i]},this.filterData=n}var o=n.stack[++n.index],s=n.stack[0].destinationFrame;o||(o=n.stack[n.index]=new b);var a=t.filterArea&&0===t.filterArea.x&&0===t.filterArea.y&&t.filterArea.width===r.screen.width&&t.filterArea.height===r.screen.height,u=e[0].resolution,h=0|e[0].padding,l=a?r.screen:t.filterArea||t.getBounds(!0),c=o.sourceFrame,d=o.destinationFrame;c.x=(l.x*u|0)/u,c.y=(l.y*u|0)/u,c.width=(l.width*u|0)/u,c.height=(l.height*u|0)/u,a||(n.stack[0].renderTarget.transform||e[0].autoFit&&c.fit(s),c.pad(h)),d.width=c.width,d.height=c.height;var f=this.getPotRenderTarget(r.gl,c.width,c.height,u);o.target=t,o.filters=e,o.resolution=u,o.renderTarget=f,f.setFrame(d,c),r.bindRenderTarget(f),f.clear()},e.prototype.popFilter=function(){var t=this.filterData,e=t.stack[t.index-1],r=t.stack[t.index];this.quad.map(r.renderTarget.size,r.sourceFrame).upload();var n=r.filters;if(1===n.length)n[0].apply(this,r.renderTarget,e.renderTarget,!1,r),this.freePotRenderTarget(r.renderTarget);else{var i=r.renderTarget,o=this.getPotRenderTarget(this.renderer.gl,r.sourceFrame.width,r.sourceFrame.height,r.resolution);o.setFrame(r.destinationFrame,r.sourceFrame),o.clear();var s=0;for(s=0;s0&&void 0!==arguments[0]&&arguments[0],e=this.renderer,r=this.managedFilters;e.off("prerender",this.onPrerender,this);for(var n=0;n0&&(e+="\nelse "),r1&&void 0!==arguments[1]?arguments[1]:[];return e[i.BLEND_MODES.NORMAL]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.ADD]=[t.ONE,t.DST_ALPHA],e[i.BLEND_MODES.MULTIPLY]=[t.DST_COLOR,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.SCREEN]=[t.ONE,t.ONE_MINUS_SRC_COLOR],e[i.BLEND_MODES.OVERLAY]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.DARKEN]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.LIGHTEN]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.COLOR_DODGE]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.COLOR_BURN]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.HARD_LIGHT]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.SOFT_LIGHT]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.DIFFERENCE]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.EXCLUSION]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.HUE]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.SATURATION]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.COLOR]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.LUMINOSITY]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.NORMAL_NPM]=[t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.ADD_NPM]=[t.SRC_ALPHA,t.DST_ALPHA,t.ONE,t.DST_ALPHA],e[i.BLEND_MODES.SCREEN_NPM]=[t.SRC_ALPHA,t.ONE_MINUS_SRC_COLOR,t.ONE,t.ONE_MINUS_SRC_COLOR],e}r.__esModule=!0,r.default=n;var i=t("../../../const")},{"../../../const":46}],99:[function(t,e,r){"use strict";function n(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e[i.DRAW_MODES.POINTS]=t.POINTS,e[i.DRAW_MODES.LINES]=t.LINES,e[i.DRAW_MODES.LINE_LOOP]=t.LINE_LOOP,e[i.DRAW_MODES.LINE_STRIP]=t.LINE_STRIP,e[i.DRAW_MODES.TRIANGLES]=t.TRIANGLES,e[i.DRAW_MODES.TRIANGLE_STRIP]=t.TRIANGLE_STRIP,e[i.DRAW_MODES.TRIANGLE_FAN]=t.TRIANGLE_FAN,e}r.__esModule=!0,r.default=n;var i=t("../../../const")},{"../../../const":46}],100:[function(t,e,r){"use strict";function n(t){t.getContextAttributes().stencil||console.warn("Provided WebGL context does not have a stencil buffer, masks may not render correctly")}r.__esModule=!0,r.default=n},{}],101:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0;var i=t("./utils/maxRecommendedTextures"),o=n(i),s=t("./utils/canUploadSameBuffer"),a=n(s);r.default={TARGET_FPMS:.06,MIPMAP_TEXTURES:!0,RESOLUTION:1,FILTER_RESOLUTION:1,SPRITE_MAX_TEXTURES:(0,o.default)(32),SPRITE_BATCH_SIZE:4096,RETINA_PREFIX:/@([0-9\.]+)x/,RENDER_OPTIONS:{view:null,antialias:!1,forceFXAA:!1,autoResize:!1,transparent:!1,backgroundColor:0,clearBeforeRender:!0,preserveDrawingBuffer:!1,roundPixels:!1,width:800,height:600,legacy:!1},TRANSFORM_MODE:0,GC_MODE:0,GC_MAX_IDLE:3600,GC_MAX_CHECK_COUNT:600,WRAP_MODE:0,SCALE_MODE:0,PRECISION_VERTEX:"highp",PRECISION_FRAGMENT:"mediump",CAN_UPLOAD_SAME_BUFFER:(0,a.default)(),MESH_CANVAS_PADDING:0}},{"./utils/canUploadSameBuffer":122,"./utils/maxRecommendedTextures":127}],102:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=function(){function t(t,e){for(var r=0;r=n&&v.x=i&&v.y>16)+(65280&t)+((255&t)<<16)}},{key:"texture",get:function(){return this._texture},set:function(t){this._texture!==t&&(this._texture=t||d.default.EMPTY,this.cachedTint=16777215,this._textureID=-1,this._textureTrimmedID=-1,t&&(t.baseTexture.hasLoaded?this._onTextureUpdate():t.once("update",this._onTextureUpdate,this)))}}]),e}(p.default);r.default=g},{"../const":46,"../display/Container":48,"../math":70,"../textures/Texture":115,"../utils":125}],103:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var o=t("../../renderers/canvas/CanvasRenderer"),s=n(o),a=t("../../const"),u=t("../../math"),h=t("./CanvasTinter"),l=n(h),c=new u.Matrix,d=function(){function t(e){i(this,t),this.renderer=e}return t.prototype.render=function(t){var e=t._texture,r=this.renderer,n=e._frame.width,i=e._frame.height,o=t.transform.worldTransform,s=0,h=0;if(!(e.orig.width<=0||e.orig.height<=0)&&e.baseTexture.source&&(r.setBlendMode(t.blendMode),e.valid)){r.context.globalAlpha=t.worldAlpha;var d=e.baseTexture.scaleMode===a.SCALE_MODES.LINEAR;r.smoothProperty&&r.context[r.smoothProperty]!==d&&(r.context[r.smoothProperty]=d),e.trim?(s=e.trim.width/2+e.trim.x-t.anchor.x*e.orig.width,h=e.trim.height/2+e.trim.y-t.anchor.y*e.orig.height):(s=(.5-t.anchor.x)*e.orig.width,h=(.5-t.anchor.y)*e.orig.height),e.rotate&&(o.copy(c),o=c,u.GroupD8.matrixAppendRotationInv(o,e.rotate,s,h),s=0,h=0),s-=n/2,h-=i/2,r.roundPixels?(r.context.setTransform(o.a,o.b,o.c,o.d,o.tx*r.resolution|0,o.ty*r.resolution|0),s|=0,h|=0):r.context.setTransform(o.a,o.b,o.c,o.d,o.tx*r.resolution,o.ty*r.resolution);var f=e.baseTexture.resolution;16777215!==t.tint?(t.cachedTint===t.tint&&t.tintedTexture.tintId===t._texture._updateID||(t.cachedTint=t.tint,t.tintedTexture=l.default.getTintedTexture(t,t.tint)),r.context.drawImage(t.tintedTexture,0,0,n*f,i*f,s*r.resolution,h*r.resolution,n*r.resolution,i*r.resolution)):r.context.drawImage(e.baseTexture.source,e._frame.x*f,e._frame.y*f,n*f,i*f,s*r.resolution,h*r.resolution,n*r.resolution,i*r.resolution)}},t.prototype.destroy=function(){this.renderer=null},t}();r.default=d,s.default.registerPlugin("sprite",d)},{"../../const":46,"../../math":70,"../../renderers/canvas/CanvasRenderer":77,"./CanvasTinter":104}],104:[function(t,e,r){"use strict";r.__esModule=!0;var n=t("../../utils"),i=t("../../renderers/canvas/utils/canUseNewCanvasBlendModes"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s={getTintedTexture:function(t,e){var r=t._texture;e=s.roundColor(e);var n="#"+("00000"+(0|e).toString(16)).substr(-6);r.tintCache=r.tintCache||{};var i=r.tintCache[n],o=void 0;if(i){if(i.tintId===r._updateID)return r.tintCache[n];o=r.tintCache[n]}else o=s.canvas||document.createElement("canvas");if(s.tintMethod(r,e,o),o.tintId=r._updateID,s.convertTintToImage){var a=new Image;a.src=o.toDataURL(),r.tintCache[n]=a}else r.tintCache[n]=o,s.canvas=null;return o},tintWithMultiply:function(t,e,r){var n=r.getContext("2d"),i=t._frame.clone(),o=t.baseTexture.resolution;i.x*=o,i.y*=o,i.width*=o,i.height*=o,r.width=Math.ceil(i.width),r.height=Math.ceil(i.height),n.save(),n.fillStyle="#"+("00000"+(0|e).toString(16)).substr(-6),n.fillRect(0,0,i.width,i.height),n.globalCompositeOperation="multiply",n.drawImage(t.baseTexture.source,i.x,i.y,i.width,i.height,0,0,i.width,i.height),n.globalCompositeOperation="destination-atop",n.drawImage(t.baseTexture.source,i.x,i.y,i.width,i.height,0,0,i.width,i.height),n.restore()},tintWithOverlay:function(t,e,r){var n=r.getContext("2d"),i=t._frame.clone(),o=t.baseTexture.resolution;i.x*=o,i.y*=o,i.width*=o,i.height*=o,r.width=Math.ceil(i.width),r.height=Math.ceil(i.height),n.save(),n.globalCompositeOperation="copy",n.fillStyle="#"+("00000"+(0|e).toString(16)).substr(-6),n.fillRect(0,0,i.width,i.height),n.globalCompositeOperation="destination-atop",n.drawImage(t.baseTexture.source,i.x,i.y,i.width,i.height,0,0,i.width,i.height),n.restore()},tintWithPerPixel:function(t,e,r){var i=r.getContext("2d"),o=t._frame.clone(),s=t.baseTexture.resolution;o.x*=s,o.y*=s,o.width*=s,o.height*=s,r.width=Math.ceil(o.width),r.height=Math.ceil(o.height),i.save(),i.globalCompositeOperation="copy",i.drawImage(t.baseTexture.source,o.x,o.y,o.width,o.height,0,0,o.width,o.height),i.restore();for(var a=(0,n.hex2rgb)(e),u=a[0],h=a[1],l=a[2],c=i.getImageData(0,0,o.width,o.height),d=c.data,f=0;f=this.size&&this.flush(),t._texture._uvs&&(this.sprites[this.currentIndex++]=t)},e.prototype.flush=function(){if(0!==this.currentIndex){var t=this.renderer.gl,e=this.MAX_TEXTURES,r=S.default.nextPow2(this.currentIndex),n=S.default.log2(r),i=this.buffers[n],o=this.sprites,s=this.groups,a=i.float32View,u=i.uint32View,h=this.boundTextures,l=this.renderer.boundTextures,c=this.renderer.textureGC.count,d=0,f=void 0,p=void 0,v=1,g=0,y=s[0],m=void 0,_=void 0,T=x.premultiplyBlendMode[o[0]._texture.baseTexture.premultipliedAlpha?1:0][o[0].blendMode];y.textureCount=0,y.start=0,y.blend=T,O++;var E=void 0;for(E=0;E0&&(e+="\nelse "),r0&&(r.shadowColor=e.dropShadowColor);for(var f=Math.cos(e.dropShadowAngle)*e.dropShadowDistance,p=Math.sin(e.dropShadowAngle)*e.dropShadowDistance,v=0;v3&&void 0!==arguments[3]&&arguments[3],i=this._style,o=i.letterSpacing;if(0===o)return void(n?this.context.strokeText(t,e,r):this.context.fillText(t,e,r));for(var s=String.prototype.split.call(t,""),a=e,u=0,h="";u3&&void 0!==arguments[3]?arguments[3]:t._canvas;n=void 0===n||null===n?r.wordWrap:n;var o=r.toFontString(),s=t.measureFont(o),a=i.getContext("2d");a.font=o;for(var u=n?t.wordWrap(e,r,i):e,h=u.split(/(?:\r\n|\r|\n)/),l=new Array(h.length),c=0,d=0;d2&&void 0!==arguments[2]?arguments[2]:t._canvas,i=n.getContext("2d"),o=0,s="",a="",u={},h=r.letterSpacing,l=r.whiteSpace,c=t.collapseSpaces(l),d=t.collapseNewlines(l),f=!c,p=r.wordWrapWidth+h,v=t.tokenize(e),g=0;gp)if(""!==s&&(a+=t.addLine(s),s="",o=0),t.canBreakWords(y,r.breakWords))for(var x=y.split(""),T=0;Tp&&(a+=t.addLine(s),f=!1,s="",o=0),s+=w,o+=M}else{s.length>0&&(a+=t.addLine(s),s="",o=0);var P=g===v.length-1;a+=t.addLine(y,!P),f=!1,s="",o=0}else b+o>p&&(f=!1,a+=t.addLine(s),s="",o=0),(s.length>0||!t.isBreakingSpace(y)||f)&&(s+=y,o+=b)}return a+=t.addLine(s,!1)},t.addLine=function(e){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e=t.trimRight(e),e=r?e+"\n":e},t.getFromCache=function(t,e,r,n){var i=r[t];if(void 0===i){var o=t.length*e;i=n.measureText(t).width+o,r[t]=i}return i},t.collapseSpaces=function(t){return"normal"===t||"pre-line"===t},t.collapseNewlines=function(t){return"normal"===t},t.trimRight=function(e){if("string"!=typeof e)return"";for(var r=e.length-1;r>=0;r--){var n=e[r];if(!t.isBreakingSpace(n))break;e=e.slice(0,-1)}return e},t.isNewline=function(e){return"string"==typeof e&&t._newlines.indexOf(e.charCodeAt(0))>=0},t.isBreakingSpace=function(e){return"string"==typeof e&&t._breakingSpaces.indexOf(e.charCodeAt(0))>=0},t.tokenize=function(e){var r=[],n="";if("string"!=typeof e)return r;for(var i=0;ia;--d){for(var g=0;g0&&void 0!==arguments[0]?arguments[0]:"";e?delete t._fonts[e]:t._fonts={}},t}();r.default=i;var o=document.createElement("canvas");o.width=o.height=10,i._canvas=o,i._context=o.getContext("2d"),i._fonts={},i.METRICS_STRING="|Éq",i.BASELINE_SYMBOL="M",i.BASELINE_MULTIPLIER=1.4,i._newlines=[10,13],i._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288]},{}],110:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t){return"number"==typeof t?(0,l.hex2string)(t):("string"==typeof t&&0===t.indexOf("0x")&&(t=t.replace("0x","#")),t)}function o(t){if(Array.isArray(t)){for(var e=0;e=0;r--){var n=e[r].trim();!/([\"\'])[^\'\"]+\1/.test(n)&&d.indexOf(n)<0&&(n='"'+n+'"'),e[r]=n}return this.fontStyle+" "+this.fontVariant+" "+this.fontWeight+" "+t+" "+e.join(",")},u(t,[{key:"align",get:function(){return this._align},set:function(t){this._align!==t&&(this._align=t,this.styleID++)}},{key:"breakWords",get:function(){return this._breakWords},set:function(t){this._breakWords!==t&&(this._breakWords=t,this.styleID++)}},{key:"dropShadow",get:function(){return this._dropShadow},set:function(t){this._dropShadow!==t&&(this._dropShadow=t,this.styleID++)}},{key:"dropShadowAlpha",get:function(){return this._dropShadowAlpha},set:function(t){this._dropShadowAlpha!==t&&(this._dropShadowAlpha=t,this.styleID++)}},{key:"dropShadowAngle",get:function(){return this._dropShadowAngle},set:function(t){this._dropShadowAngle!==t&&(this._dropShadowAngle=t,this.styleID++)}},{key:"dropShadowBlur",get:function(){return this._dropShadowBlur},set:function(t){this._dropShadowBlur!==t&&(this._dropShadowBlur=t,this.styleID++)}},{key:"dropShadowColor",get:function(){return this._dropShadowColor},set:function(t){var e=o(t);this._dropShadowColor!==e&&(this._dropShadowColor=e,this.styleID++)}},{key:"dropShadowDistance",get:function(){return this._dropShadowDistance},set:function(t){this._dropShadowDistance!==t&&(this._dropShadowDistance=t,this.styleID++)}},{key:"fill",get:function(){return this._fill},set:function(t){var e=o(t);this._fill!==e&&(this._fill=e,this.styleID++)}},{key:"fillGradientType",get:function(){return this._fillGradientType},set:function(t){this._fillGradientType!==t&&(this._fillGradientType=t,this.styleID++)}},{key:"fillGradientStops",get:function(){return this._fillGradientStops},set:function(t){s(this._fillGradientStops,t)||(this._fillGradientStops=t,this.styleID++)}},{key:"fontFamily",get:function(){return this._fontFamily},set:function(t){this.fontFamily!==t&&(this._fontFamily=t,this.styleID++)}},{key:"fontSize",get:function(){return this._fontSize},set:function(t){this._fontSize!==t&&(this._fontSize=t,this.styleID++)}},{key:"fontStyle",get:function(){return this._fontStyle},set:function(t){this._fontStyle!==t&&(this._fontStyle=t,this.styleID++)}},{key:"fontVariant",get:function(){return this._fontVariant},set:function(t){this._fontVariant!==t&&(this._fontVariant=t,this.styleID++)}},{key:"fontWeight",get:function(){return this._fontWeight},set:function(t){this._fontWeight!==t&&(this._fontWeight=t,this.styleID++)}},{key:"letterSpacing",get:function(){return this._letterSpacing},set:function(t){this._letterSpacing!==t&&(this._letterSpacing=t,this.styleID++)}},{key:"lineHeight",get:function(){return this._lineHeight},set:function(t){this._lineHeight!==t&&(this._lineHeight=t,this.styleID++)}},{key:"leading",get:function(){return this._leading},set:function(t){this._leading!==t&&(this._leading=t,this.styleID++)}},{key:"lineJoin",get:function(){return this._lineJoin},set:function(t){this._lineJoin!==t&&(this._lineJoin=t,this.styleID++)}},{key:"miterLimit",get:function(){return this._miterLimit},set:function(t){this._miterLimit!==t&&(this._miterLimit=t,this.styleID++)}},{key:"padding",get:function(){return this._padding},set:function(t){this._padding!==t&&(this._padding=t,this.styleID++)}},{key:"stroke",get:function(){return this._stroke},set:function(t){var e=o(t);this._stroke!==e&&(this._stroke=e,this.styleID++)}},{key:"strokeThickness",get:function(){return this._strokeThickness},set:function(t){this._strokeThickness!==t&&(this._strokeThickness=t,this.styleID++)}},{key:"textBaseline",get:function(){return this._textBaseline},set:function(t){this._textBaseline!==t&&(this._textBaseline=t,this.styleID++)}},{key:"trim",get:function(){return this._trim},set:function(t){this._trim!==t&&(this._trim=t,this.styleID++)}},{key:"whiteSpace",get:function(){return this._whiteSpace},set:function(t){this._whiteSpace!==t&&(this._whiteSpace=t,this.styleID++)}},{key:"wordWrap",get:function(){return this._wordWrap},set:function(t){this._wordWrap!==t&&(this._wordWrap=t,this.styleID++)}},{key:"wordWrapWidth",get:function(){return this._wordWrapWidth},set:function(t){this._wordWrapWidth!==t&&(this._wordWrapWidth=t,this.styleID++)}}]),t}();r.default=f},{"../const":46,"../utils":125}],111:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=t("./BaseTexture"),u=n(a),h=t("../settings"),l=n(h),c=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,s=arguments[2],a=arguments[3];i(this,e);var u=o(this,t.call(this,null,s));return u.resolution=a||l.default.RESOLUTION,u.width=Math.ceil(r),u.height=Math.ceil(n),u.realWidth=u.width*u.resolution,u.realHeight=u.height*u.resolution,u.scaleMode=void 0!==s?s:l.default.SCALE_MODE,u.hasLoaded=!0,u._glRenderTargets={},u._canvasRenderTarget=null,u.valid=!1,u}return s(e,t),e.prototype.resize=function(t,e){t=Math.ceil(t),e=Math.ceil(e),t===this.width&&e===this.height||(this.valid=t>0&&e>0,this.width=t,this.height=e,this.realWidth=this.width*this.resolution,this.realHeight=this.height*this.resolution,this.valid&&this.emit("update",this))},e.prototype.destroy=function(){t.prototype.destroy.call(this,!0),this.renderer=null},e}(u.default);r.default=c},{"../settings":101,"./BaseTexture":112}],112:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=t("../utils"),u=t("../settings"),h=n(u),l=t("eventemitter3"),c=n(l),d=t("../utils/determineCrossOrigin"),f=n(d),p=t("bit-twiddle"),v=n(p),g=function(t){function e(r,n,s){i(this,e);var u=o(this,t.call(this));return u.uid=(0,a.uid)(),u.touched=0,u.resolution=s||h.default.RESOLUTION,u.width=100,u.height=100,u.realWidth=100,u.realHeight=100,u.scaleMode=void 0!==n?n:h.default.SCALE_MODE,u.hasLoaded=!1,u.isLoading=!1,u.source=null,u.origSource=null,u.imageType=null,u.sourceScale=1,u.premultipliedAlpha=!0,u.imageUrl=null,u.isPowerOfTwo=!1,u.mipmap=h.default.MIPMAP_TEXTURES,u.wrapMode=h.default.WRAP_MODE,u._glTextures={},u._enabled=0,u._virtalBoundId=-1,u._destroyed=!1,u.textureCacheIds=[],r&&u.loadSource(r),u}return s(e,t),e.prototype.update=function(){"svg"!==this.imageType&&(this.realWidth=this.source.naturalWidth||this.source.videoWidth||this.source.width,this.realHeight=this.source.naturalHeight||this.source.videoHeight||this.source.height,this._updateDimensions()),this.emit("update",this)},e.prototype._updateDimensions=function(){this.width=this.realWidth/this.resolution,this.height=this.realHeight/this.resolution,this.isPowerOfTwo=v.default.isPow2(this.realWidth)&&v.default.isPow2(this.realHeight)},e.prototype.loadSource=function(t){var e=this.isLoading;this.hasLoaded=!1,this.isLoading=!1,e&&this.source&&(this.source.onload=null,this.source.onerror=null);var r=!this.source;if(this.source=t,(t.src&&t.complete||t.getContext)&&t.width&&t.height)this._updateImageType(),"svg"===this.imageType?this._loadSvgSource():this._sourceLoaded(),r&&this.emit("loaded",this);else if(!t.getContext){this.isLoading=!0;var n=this;if(t.onload=function(){if(n._updateImageType(),t.onload=null,t.onerror=null,n.isLoading){if(n.isLoading=!1,n._sourceLoaded(),"svg"===n.imageType)return void n._loadSvgSource();n.emit("loaded",n)}},t.onerror=function(){t.onload=null,t.onerror=null,n.isLoading&&(n.isLoading=!1,n.emit("error",n))},t.complete&&t.src){if(t.onload=null,t.onerror=null,"svg"===n.imageType)return void n._loadSvgSource();this.isLoading=!1,t.width&&t.height?(this._sourceLoaded(),e&&this.emit("loaded",this)):e&&this.emit("error",this)}}},e.prototype._updateImageType=function(){if(this.imageUrl){var t=(0,a.decomposeDataUri)(this.imageUrl),e=void 0;if(t&&"image"===t.mediaType){var r=t.subType.split("+")[0];if(!(e=(0,a.getUrlFileExtension)("."+r)))throw new Error("Invalid image type in data URI.")}else(e=(0,a.getUrlFileExtension)(this.imageUrl))||(e="png");this.imageType=e}},e.prototype._loadSvgSource=function(){if("svg"===this.imageType){var t=(0,a.decomposeDataUri)(this.imageUrl);t?this._loadSvgSourceUsingDataUri(t):this._loadSvgSourceUsingXhr()}},e.prototype._loadSvgSourceUsingDataUri=function(t){var e=void 0;if("base64"===t.encoding){if(!atob)throw new Error("Your browser doesn't support base64 conversions.");e=atob(t.data)}else e=t.data;this._loadSvgSourceUsingString(e)},e.prototype._loadSvgSourceUsingXhr=function(){var t=this,e=new XMLHttpRequest;e.onload=function(){if(e.readyState!==e.DONE||200!==e.status)throw new Error("Failed to load SVG using XHR.");t._loadSvgSourceUsingString(e.response)},e.onerror=function(){return t.emit("error",t)},e.open("GET",this.imageUrl,!0),e.send()},e.prototype._loadSvgSourceUsingString=function(t){var r=(0,a.getSvgSize)(t),n=r.width,i=r.height;if(!n||!i)throw new Error("The SVG image must have width and height defined (in pixels), canvas API needs them.");this.realWidth=Math.round(n*this.sourceScale),this.realHeight=Math.round(i*this.sourceScale),this._updateDimensions();var o=document.createElement("canvas");o.width=this.realWidth,o.height=this.realHeight,o._pixiId="canvas_"+(0,a.uid)(),o.getContext("2d").drawImage(this.source,0,0,n,i,0,0,this.realWidth,this.realHeight),this.origSource=this.source,this.source=o,e.addToCache(this,o._pixiId),this.isLoading=!1,this._sourceLoaded(),this.emit("loaded",this)},e.prototype._sourceLoaded=function(){this.hasLoaded=!0,this.update()},e.prototype.destroy=function(){this.imageUrl&&(delete a.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")),this.source=null,this.dispose(),e.removeFromCache(this),this.textureCacheIds=null,this._destroyed=!0},e.prototype.dispose=function(){this.emit("dispose",this)},e.prototype.updateSourceImage=function(t){this.source.src=t,this.loadSource(this.source)},e.fromImage=function(t,r,n,i){var o=a.BaseTextureCache[t];if(!o){var s=new Image;void 0===r&&0!==t.indexOf("data:")?s.crossOrigin=(0,f.default)(t):r&&(s.crossOrigin="string"==typeof r?r:"anonymous"),o=new e(s,n),o.imageUrl=t,i&&(o.sourceScale=i),o.resolution=(0,a.getResolutionOfUrl)(t),s.src=t,e.addToCache(o,t)}return o},e.fromCanvas=function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"canvas";t._pixiId||(t._pixiId=n+"_"+(0,a.uid)());var i=a.BaseTextureCache[t._pixiId];return i||(i=new e(t,r),e.addToCache(i,t._pixiId)),i},e.from=function(t,r,n){if("string"==typeof t)return e.fromImage(t,void 0,r,n);if(t instanceof HTMLImageElement){var i=t.src,o=a.BaseTextureCache[i] +;return o||(o=new e(t,r),o.imageUrl=i,n&&(o.sourceScale=n),o.resolution=(0,a.getResolutionOfUrl)(i),e.addToCache(o,i)),o}return t instanceof HTMLCanvasElement?e.fromCanvas(t,r):t},e.addToCache=function(t,e){e&&(-1===t.textureCacheIds.indexOf(e)&&t.textureCacheIds.push(e),a.BaseTextureCache[e]=t)},e.removeFromCache=function(t){if("string"==typeof t){var e=a.BaseTextureCache[t];if(e){var r=e.textureCacheIds.indexOf(t);return r>-1&&e.textureCacheIds.splice(r,1),delete a.BaseTextureCache[t],e}}else if(t&&t.textureCacheIds){for(var n=0;n0&&e>0,this._frame.width=this.orig.width=t,this._frame.height=this.orig.height=e,r||this.baseTexture.resize(t,e),this._updateUvs()},e.create=function(t,r,n,i){return new e(new u.default(t,r,n,i))},e}(l.default);r.default=c},{"./BaseRenderTexture":111,"./Texture":115}],114:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(t,e){for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:null;n(this,t),this.baseTexture=e,this.textures={},this.animations={},this.data=r,this.resolution=this._updateResolution(i||this.baseTexture.imageUrl),this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null}return i(t,null,[{key:"BATCH_SIZE",get:function(){return 1e3}}]),t.prototype._updateResolution=function(t){var e=this.data.meta.scale,r=(0,s.getResolutionOfUrl)(t,null);return null===r&&(r=void 0!==e?parseFloat(e):1),1!==r&&(this.baseTexture.resolution=r,this.baseTexture.update()),r},t.prototype.parse=function(e){this._batchIndex=0,this._callback=e,this._frameKeys.length<=t.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()},t.prototype._processFrames=function(e){for(var r=e,n=t.BATCH_SIZE,i=this.baseTexture.sourceScale;r-e=r.length)break;o=r[i++]}else{if(i=r.next(),i.done)break;o=i.value}var s=o;this.animations[e].push(this.textures[s])}}},t.prototype._parseComplete=function(){var t=this._callback;this._callback=null,this._batchIndex=0,t.call(this,this.textures)},t.prototype._nextBatch=function(){var e=this;this._processFrames(this._batchIndex*t.BATCH_SIZE),this._batchIndex++,setTimeout(function(){e._batchIndex*t.BATCH_SIZE0&&void 0!==arguments[0]&&arguments[0];for(var e in this.textures)this.textures[e].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,t&&this.baseTexture.destroy(),this.baseTexture=null},t}();r.default=a},{"../":65,"../utils":125}],115:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t){t.destroy=function(){},t.on=function(){},t.once=function(){},t.emit=function(){}}r.__esModule=!0;var u=function(){function t(t,e){for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:"canvas";return new e(l.default.fromCanvas(t,r,n))},e.fromVideo=function(t,r,n,i){return"string"==typeof t?e.fromVideoUrl(t,r,n,i):new e(d.default.fromVideo(t,r,i))},e.fromVideoUrl=function(t,r,n,i){return new e(d.default.fromUrl(t,r,n,i))},e.from=function(t){if("string"==typeof t){var r=m.TextureCache[t];if(!r){return null!==t.match(/\.(mp4|webm|ogg|h264|avi|mov)$/)?e.fromVideoUrl(t):e.fromImage(t)}return r}return t instanceof HTMLImageElement?new e(l.default.from(t)):t instanceof HTMLCanvasElement?e.fromCanvas(t,b.default.SCALE_MODE,"HTMLCanvasElement"):t instanceof HTMLVideoElement?e.fromVideo(t):t instanceof l.default?new e(t):t},e.fromLoader=function(t,r,n){var i=new l.default(t,void 0,(0,m.getResolutionOfUrl)(r)),o=new e(i);return i.imageUrl=r,n||(n=r),l.default.addToCache(o.baseTexture,n),e.addToCache(o,n),n!==r&&(l.default.addToCache(o.baseTexture,r),e.addToCache(o,r)),o},e.addToCache=function(t,e){e&&(-1===t.textureCacheIds.indexOf(e)&&t.textureCacheIds.push(e),m.TextureCache[e]=t)},e.removeFromCache=function(t){if("string"==typeof t){var e=m.TextureCache[t];if(e){var r=e.textureCacheIds.indexOf(t);return r>-1&&e.textureCacheIds.splice(r,1),delete m.TextureCache[t],e}}else if(t&&t.textureCacheIds){for(var n=0;nthis.baseTexture.width,s=r+i>this.baseTexture.height;if(o||s){var a=o&&s?"and":"or",u="X: "+e+" + "+n+" = "+(e+n)+" > "+this.baseTexture.width,h="Y: "+r+" + "+i+" = "+(r+i)+" > "+this.baseTexture.height;throw new Error("Texture Error: frame does not fit inside the base Texture dimensions: "+u+" "+a+" "+h)}this.valid=n&&i&&this.baseTexture.hasLoaded,this.trim||this.rotate||(this.orig=t),this.valid&&this._updateUvs()}},{key:"rotate",get:function(){return this._rotate},set:function(t){this._rotate=t,this.valid&&this._updateUvs()}},{key:"width",get:function(){return this.orig.width}},{key:"height",get:function(){return this.orig.height}}]),e}(g.default);r.default=x,x.EMPTY=new x(new l.default),a(x.EMPTY),a(x.EMPTY.baseTexture),x.WHITE=function(){var t=document.createElement("canvas");t.width=10,t.height=10;var e=t.getContext("2d");return e.fillStyle="white",e.fillRect(0,0,10,10),new x(new l.default(t))}(),a(x.WHITE),a(x.WHITE.baseTexture)},{"../math":70,"../settings":101,"../utils":125,"./BaseTexture":112,"./TextureUvs":117,"./VideoBaseTexture":118,eventemitter3:3}],116:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(t,e){for(var r=0;r2&&void 0!==arguments[2])||arguments[2];if(i(this,e),!r)throw new Error("No video source element specified.");(r.readyState===r.HAVE_ENOUGH_DATA||r.readyState===r.HAVE_FUTURE_DATA)&&r.width&&r.height&&(r.complete=!0);var a=o(this,t.call(this,r,n));return a.width=r.videoWidth,a.height=r.videoHeight,a._autoUpdate=!0,a._isAutoUpdating=!1,a.autoPlay=s,a.update=a.update.bind(a),a._onCanPlay=a._onCanPlay.bind(a),r.addEventListener("play",a._onPlayStart.bind(a)),r.addEventListener("pause",a._onPlayStop.bind(a)),a.hasLoaded=!1,a.__loaded=!1,a._isSourceReady()?a._onCanPlay():(r.addEventListener("canplay",a._onCanPlay),r.addEventListener("canplaythrough",a._onCanPlay)),a}return s(e,t),e.prototype._isSourcePlaying=function(){var t=this.source;return t.currentTime>0&&!1===t.paused&&!1===t.ended&&t.readyState>2},e.prototype._isSourceReady=function(){return 3===this.source.readyState||4===this.source.readyState},e.prototype._onPlayStart=function(){this.hasLoaded||this._onCanPlay(),!this._isAutoUpdating&&this.autoUpdate&&(d.shared.add(this.update,this,f.UPDATE_PRIORITY.HIGH),this._isAutoUpdating=!0)},e.prototype._onPlayStop=function(){this._isAutoUpdating&&(d.shared.remove(this.update,this),this._isAutoUpdating=!1)},e.prototype._onCanPlay=function(){this.hasLoaded=!0,this.source&&(this.source.removeEventListener("canplay",this._onCanPlay),this.source.removeEventListener("canplaythrough",this._onCanPlay),this.width=this.source.videoWidth,this.height=this.source.videoHeight,this.__loaded||(this.__loaded=!0,this.emit("loaded",this)),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&this.source.play())},e.prototype.destroy=function(){this._isAutoUpdating&&d.shared.remove(this.update,this),this.source&&this.source._pixiId&&(l.default.removeFromCache(this.source._pixiId),delete this.source._pixiId,this.source.pause(),this.source.src="",this.source.load()),t.prototype.destroy.call(this)},e.fromVideo=function(t,r,n){t._pixiId||(t._pixiId="video_"+(0,c.uid)());var i=c.BaseTextureCache[t._pixiId];return i||(i=new e(t,r,n),l.default.addToCache(i,t._pixiId)),i},e.fromUrl=function(t,r,n,i){var o=document.createElement("video");o.setAttribute("webkit-playsinline",""),o.setAttribute("playsinline","");var s=Array.isArray(t)?t[0].src||t[0]:t.src||t;if(void 0===n&&0!==s.indexOf("data:")?o.crossOrigin=(0,v.default)(s):n&&(o.crossOrigin="string"==typeof n?n:"anonymous"),Array.isArray(t))for(var u=0;u2&&void 0!==arguments[2]?arguments[2]:u.UPDATE_PRIORITY.NORMAL;return this._addListener(new l.default(t,e,r))},t.prototype.addOnce=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:u.UPDATE_PRIORITY.NORMAL;return this._addListener(new l.default(t,e,r,!0))},t.prototype._addListener=function(t){var e=this._head.next,r=this._head;if(e){for(;e;){if(t.priority>e.priority){t.connect(r);break}r=e,e=e.next}t.previous||t.connect(r)}else t.connect(r);return this._startIfPossible(),this},t.prototype.remove=function(t,e){for(var r=this._head.next;r;)r=r.match(t,e)?r.destroy():r.next;return this._head.next||this._cancelIfNeeded(),this},t.prototype.start=function(){this.started||(this.started=!0,this._requestIfNeeded())},t.prototype.stop=function(){this.started&&(this.started=!1,this._cancelIfNeeded())},t.prototype.destroy=function(){this.stop();for(var t=this._head.next;t;)t=t.destroy(!0);this._head.destroy(),this._head=null},t.prototype.update=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:performance.now(),e=void 0;if(t>this.lastTime){e=this.elapsedMS=t-this.lastTime,e>this._maxElapsedMS&&(e=this._maxElapsedMS),this.deltaTime=e*a.default.TARGET_FPMS*this.speed;for(var r=this._head,n=r.next;n;)n=n.emit(this.deltaTime);r.next||this._cancelIfNeeded()}else this.deltaTime=this.elapsedMS=0;this.lastTime=t},o(t,[{key:"FPS",get:function(){return 1e3/this.elapsedMS}},{key:"minFPS",get:function(){return 1e3/this._maxElapsedMS},set:function(t){var e=Math.min(Math.max(0,t)/1e3,a.default.TARGET_FPMS);this._maxElapsedMS=1/e}}]),t}();r.default=c},{"../const":46,"../settings":101,"./TickerListener":120}],120:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];n(this,t),this.fn=e,this.context=r,this.priority=i,this.once=o,this.next=null,this.previous=null,this._destroyed=!1}return t.prototype.match=function(t,e){return e=e||null,this.fn===t&&this.context===e},t.prototype.emit=function(t){this.fn&&(this.context?this.fn.call(this.context,t):this.fn(t));var e=this.next;return this.once&&this.destroy(!0),this._destroyed&&(this.next=null),e},t.prototype.connect=function(t){this.previous=t,t.next&&(t.next.previous=this),this.next=t.next,t.next=this},t.prototype.destroy=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._destroyed=!0,this.fn=null,this.context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);var e=this.next;return this.next=t?null:e,this.previous=null,e},t}();r.default=i},{}],121:[function(t,e,r){"use strict";r.__esModule=!0,r.Ticker=r.shared=void 0;var n=t("./Ticker"),i=function(t){return t&&t.__esModule?t:{default:t}}(n),o=new i.default;o.autoStart=!0,o.destroy=function(){},r.shared=o,r.Ticker=i.default},{"./Ticker":119}],122:[function(t,e,r){"use strict";function n(){return!(!!navigator.platform&&/iPad|iPhone|iPod/.test(navigator.platform))}r.__esModule=!0,r.default=n},{}],123:[function(t,e,r){"use strict";function n(t){for(var e=6*t,r=new Uint16Array(e),n=0,i=0;n1&&void 0!==arguments[1]?arguments[1]:window.location;if(0===t.indexOf("data:"))return"";e=e||window.location,s||(s=document.createElement("a")),s.href=t,t=o.default.parse(s.href);var r=!t.port&&""===e.port||t.port===e.port;return t.hostname===e.hostname&&r&&t.protocol===e.protocol?"":"anonymous"}r.__esModule=!0,r.default=n;var i=t("url"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=void 0},{url:38}],125:[function(t,e,r){"use strict";function n(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}function i(t){return t&&t.__esModule?t:{default:t}}function o(){return++U}function s(t,e){return e=e||[],e[0]=(t>>16&255)/255,e[1]=(t>>8&255)/255,e[2]=(255&t)/255,e}function a(t){return t=t.toString(16),"#"+(t="000000".substr(0,6-t.length)+t)}function u(t){return(255*t[0]<<16)+(255*t[1]<<8)+(255*t[2]|0)}function h(t,e){var r=S.default.RETINA_PREFIX.exec(t);return r?parseFloat(r[1]):void 0!==e?e:1}function l(t){var e=w.DATA_URI.exec(t);if(e)return{mediaType:e[1]?e[1].toLowerCase():void 0,subType:e[2]?e[2].toLowerCase():void 0,charset:e[3]?e[3].toLowerCase():void 0,encoding:e[4]?e[4].toLowerCase():void 0,data:e[5]}}function c(t){var e=w.URL_FILE_EXTENSION.exec(t);if(e)return e[1].toLowerCase()}function d(t){var e=w.SVG_SIZE.exec(t),r={};return e&&(r[e[1]]=Math.round(parseFloat(e[3])),r[e[5]]=Math.round(parseFloat(e[7]))),r}function f(){X=!0}function p(t){if(!X){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var e=["\n %c %c %c PixiJS "+w.VERSION+" - ✰ "+t+" ✰ %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ \n\n","background: #ff66a5; padding:5px 0;","background: #ff66a5; padding:5px 0;","color: #ff66a5; background: #030307; padding:5px 0;","background: #ff66a5; padding:5px 0;","background: #ffc3dc; padding:5px 0;","background: #ff66a5; padding:5px 0;","color: #ff2424; background: #fff; padding:5px 0;","color: #ff2424; background: #fff; padding:5px 0;","color: #ff2424; background: #fff; padding:5px 0;"];window.console.log.apply(console,e)}else window.console&&window.console.log("PixiJS "+w.VERSION+" - "+t+" - http://www.pixijs.com/");X=!0}}function v(){var t={stencil:!0,failIfMajorPerformanceCaveat:!0};try{if(!window.WebGLRenderingContext)return!1;var e=document.createElement("canvas"),r=e.getContext("webgl",t)||e.getContext("experimental-webgl",t),n=!(!r||!r.getContextAttributes().stencil);if(r){var i=r.getExtension("WEBGL_lose_context");i&&i.loseContext()}return r=null,n}catch(t){return!1}}function g(t){return 0===t?0:t<0?-1:1}function y(){var t=void 0;for(t in G)G[t].destroy();for(t in W)W[t].destroy()}function m(){var t=void 0;for(t in G)delete G[t];for(t in W)delete W[t]}function _(t,e){return H[e?1:0][t]}function b(t,e){if(1===e)return(255*e<<24)+t;if(0===e)return 0;var r=t>>16&255,n=t>>8&255,i=255&t;return r=r*e+.5|0,n=n*e+.5|0,i=i*e+.5|0,(255*e<<24)+(r<<16)+(n<<8)+i}function x(t,e,r,n){return r=r||new Float32Array(4),n||void 0===n?(r[0]=t[0]*e,r[1]=t[1]*e,r[2]=t[2]*e):(r[0]=t[0],r[1]=t[1],r[2]=t[2]),r[3]=e,r}function T(t,e,r,n){return r=r||new Float32Array(4),r[0]=(t>>16&255)/255,r[1]=(t>>8&255)/255,r[2]=(255&t)/255,(n||void 0===n)&&(r[0]*=e,r[1]*=e,r[2]*=e),r[3]=e,r}r.__esModule=!0,r.premultiplyBlendMode=r.BaseTextureCache=r.TextureCache=r.earcut=r.mixins=r.pluginTarget=r.EventEmitter=r.removeItems=r.isMobile=void 0,r.uid=o,r.hex2rgb=s,r.hex2string=a,r.rgb2hex=u,r.getResolutionOfUrl=h,r.decomposeDataUri=l,r.getUrlFileExtension=c,r.getSvgSize=d,r.skipHello=f,r.sayHello=p,r.isWebGLSupported=v,r.sign=g,r.destroyTextureCache=y,r.clearTextureCache=m,r.correctBlendMode=_,r.premultiplyTint=b,r.premultiplyRgba=x,r.premultiplyTintToRgba=T;var w=t("../const"),E=t("../settings"),S=i(E),O=t("eventemitter3"),M=i(O),P=t("./pluginTarget"),C=i(P),R=t("./mixin"),A=n(R),I=t("ismobilejs"),D=n(I),L=t("remove-array-items"),N=i(L),B=t("./mapPremultipliedBlendModes"),k=i(B),F=t("earcut"),j=i(F),U=0,X=!1;r.isMobile=D,r.removeItems=N.default,r.EventEmitter=M.default,r.pluginTarget=C.default,r.mixins=A,r.earcut=j.default;var G=r.TextureCache=Object.create(null),W=r.BaseTextureCache=Object.create(null),H=r.premultiplyBlendMode=(0,k.default)()},{"../const":46,"../settings":101,"./mapPremultipliedBlendModes":126,"./mixin":128,"./pluginTarget":129,earcut:2,eventemitter3:3,ismobilejs:4,"remove-array-items":31}],126:[function(t,e,r){"use strict";function n(){for(var t=[],e=[],r=0;r<32;r++)t[r]=r,e[r]=r;t[i.BLEND_MODES.NORMAL_NPM]=i.BLEND_MODES.NORMAL,t[i.BLEND_MODES.ADD_NPM]=i.BLEND_MODES.ADD,t[i.BLEND_MODES.SCREEN_NPM]=i.BLEND_MODES.SCREEN,e[i.BLEND_MODES.NORMAL]=i.BLEND_MODES.NORMAL_NPM,e[i.BLEND_MODES.ADD]=i.BLEND_MODES.ADD_NPM,e[i.BLEND_MODES.SCREEN]=i.BLEND_MODES.SCREEN_NPM;var n=[];return n.push(e),n.push(t),n}r.__esModule=!0,r.default=n;var i=t("../const")},{"../const":46}],127:[function(t,e,r){"use strict";function n(t){return o.default.tablet||o.default.phone?4:t}r.__esModule=!0,r.default=n;var i=t("ismobilejs"),o=function(t){return t&&t.__esModule?t:{default:t}}(i)},{ismobilejs:4}],128:[function(t,e,r){"use strict";function n(t,e){if(t&&e)for(var r=Object.keys(e),n=0;n1?this._fontStyle="italic":t.indexOf("oblique")>-1?this._fontStyle="oblique":this._fontStyle="normal",t.indexOf("small-caps")>-1?this._fontVariant="small-caps":this._fontVariant="normal";var e=t.split(" "),r=-1;this._fontSize=26;for(var i=0;i-1&&r=this._durations[this.currentFrame];)n-=this._durations[this.currentFrame]*i,this._currentTime+=i;this._currentTime+=n/this._durations[this.currentFrame]}else this._currentTime+=e;this._currentTime<0&&!this.loop?(this.gotoAndStop(0),this.onComplete&&this.onComplete()):this._currentTime>=this._textures.length&&!this.loop?(this.gotoAndStop(this._textures.length-1),this.onComplete&&this.onComplete()):r!==this.currentFrame&&(this.loop&&this.onLoop&&(this.animationSpeed>0&&this.currentFramer&&this.onLoop()),this.updateTexture())},e.prototype.updateTexture=function(){this._texture=this._textures[this.currentFrame],this._textureID=-1,this.cachedTint=16777215,this.updateAnchor&&this._anchor.copy(this._texture.defaultAnchor),this.onFrameChange&&this.onFrameChange(this.currentFrame)},e.prototype.destroy=function(e){this.stop(),t.prototype.destroy.call(this,e)},e.fromFrames=function(t){for(var r=[],n=0;n1&&void 0!==arguments[1]?arguments[1]:{};i(this,e);var s=o(this,t.call(this));return s._textWidth=0,s._textHeight=0,s._glyphs=[],s._font={tint:void 0!==n.tint?n.tint:16777215,align:n.align||"left",name:null,size:0},s.font=n.font,s._text=r,s._maxWidth=0,s._maxLineHeight=0,s._letterSpacing=0,s._anchor=new c.default(function(){s.dirty=!0},s,0,0),s.dirty=!1,s.updateText(),s}return s(e,t),e.prototype.updateText=function(){for(var t=e.fonts[this._font.name],r=this._font.size/t.size,n=new h.Point,i=[],o=[],s=this.text.replace(/(?:\r\n|\r)/g,"\n"),a=s.length,u=this._maxWidth*t.size/this._font.size,l=null,c=0,d=0,f=0,p=-1,v=0,g=0,y=0,m=0;m0&&n.x>u&&(++g,h.utils.removeItems(i,1+p-g,1+m-p),m=p,p=-1,o.push(v),d=Math.max(d,v),f++,n.x=0,n.y+=t.lineHeight,l=null))}else o.push(c),d=Math.max(d,c),++f,++g,n.x=0,n.y+=t.lineHeight,l=null}var T=s.charAt(s.length-1);"\r"!==T&&"\n"!==T&&(/(?:\s)/.test(T)&&(c=v),o.push(c),d=Math.max(d,c));for(var w=[],E=0;E<=f;E++){var S=0;"right"===this._font.align?S=d-o[E]:"center"===this._font.align&&(S=(d-o[E])/2),w.push(S)}for(var O=i.length,M=this.tint,P=0;P=0?t:16777215,this.dirty=!0}},{key:"align",get:function(){return this._font.align},set:function(t){this._font.align=t||"left",this.dirty=!0}},{key:"anchor",get:function(){return this._anchor},set:function(t){"number"==typeof t?this._anchor.set(t):this._anchor.copy(t)}},{key:"font",get:function(){return this._font},set:function(t){t&&("string"==typeof t?(t=t.split(" "),this._font.name=1===t.length?t[0]:t.slice(1).join(" "),this._font.size=t.length>=2?parseInt(t[0],10):e.fonts[this._font.name].size):(this._font.name=t.name,this._font.size="number"==typeof t.size?t.size:parseInt(t.size,10)),this.dirty=!0)}},{key:"text",get:function(){return this._text},set:function(t){t=t.toString()||" ",this._text!==t&&(this._text=t,this.dirty=!0)}},{key:"maxWidth",get:function(){return this._maxWidth},set:function(t){this._maxWidth!==t&&(this._maxWidth=t,this.dirty=!0)}},{key:"maxLineHeight",get:function(){return this.validate(),this._maxLineHeight}},{key:"textWidth",get:function(){return this.validate(),this._textWidth}},{key:"letterSpacing",get:function(){return this._letterSpacing},set:function(t){this._letterSpacing!==t&&(this._letterSpacing=t,this.dirty=!0)}},{key:"textHeight",get:function(){return this.validate(),this._textHeight}}]),e}(h.Container);r.default=v,v.fonts={}},{"../core":65,"../core/math/ObservablePoint":68,"../core/settings":101,"../core/utils":125}],137:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:100,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:100;n(this,e);var a=i(this,t.call(this,r));return a.tileTransform=new u.TransformStatic,a._width=o,a._height=s,a._canvasPattern=null,a.uvTransform=r.transform||new u.TextureMatrix(r),a.pluginName="tilingSprite",a.uvRespectAnchor=!1,a}return o(e,t),e.prototype._onTextureUpdate=function(){this.uvTransform&&(this.uvTransform.texture=this._texture),this.cachedTint=16777215},e.prototype._renderWebGL=function(t){var e=this._texture;e&&e.valid&&(this.tileTransform.updateLocalTransform(),this.uvTransform.update(),t.setObjectRenderer(t.plugins[this.pluginName]),t.plugins[this.pluginName].render(this))},e.prototype._renderCanvas=function(t){var e=this._texture;if(e.baseTexture.hasLoaded){var r=t.context,n=this.worldTransform,i=t.resolution,o=2===e.rotate,s=e.baseTexture,a=s.resolution,h=this.tilePosition.x/this.tileScale.x%e.orig.width*a,c=this.tilePosition.y/this.tileScale.y%e.orig.height*a;if(this._textureID!==this._texture._updateID||this.cachedTint!==this.tint){this._textureID=this._texture._updateID;var d=new u.CanvasRenderTarget(e.orig.width,e.orig.height,a);if(16777215!==this.tint)this.tintedTexture=l.default.getTintedTexture(this,this.tint),d.context.drawImage(this.tintedTexture,0,0);else{var f=e._frame.x*a,p=e._frame.y*a,v=e._frame.width*a,g=e._frame.height*a,y=(e.trim?e.trim.width:e.orig.width)*a,m=(e.trim?e.trim.height:e.orig.height)*a,_=(e.trim?e.trim.x:0)*a,b=(e.trim?e.trim.y:0)*a;o?(d.context.rotate(-Math.PI/2),d.context.translate(-m,0),d.context.drawImage(s.source,f,p,v,g,-b,_,m,y)):d.context.drawImage(s.source,f,p,v,g,_,b,y,m)}this.cachedTint=this.tint,this._canvasPattern=d.context.createPattern(d.canvas,"repeat")}r.globalAlpha=this.worldAlpha,r.setTransform(n.a*i,n.b*i,n.c*i,n.d*i,n.tx*i,n.ty*i),t.setBlendMode(this.blendMode),r.fillStyle=this._canvasPattern,r.scale(this.tileScale.x/a,this.tileScale.y/a);var x=this.anchor.x*-this._width*a,T=this.anchor.y*-this._height*a;this.uvRespectAnchor?(r.translate(h,c),r.fillRect(-h+x,-c+T,this._width/this.tileScale.x*a,this._height/this.tileScale.y*a)):(r.translate(h+x,c+T),r.fillRect(-h,-c,this._width/this.tileScale.x*a,this._height/this.tileScale.y*a))}},e.prototype._calculateBounds=function(){var t=this._width*-this._anchor._x,e=this._height*-this._anchor._y,r=this._width*(1-this._anchor._x),n=this._height*(1-this._anchor._y);this._bounds.addFrame(this.transform,t,e,r,n)},e.prototype.getLocalBounds=function(e){return 0===this.children.length?(this._bounds.minX=this._width*-this._anchor._x, +this._bounds.minY=this._height*-this._anchor._y,this._bounds.maxX=this._width*(1-this._anchor._x),this._bounds.maxY=this._height*(1-this._anchor._y),e||(this._localBoundsRect||(this._localBoundsRect=new u.Rectangle),e=this._localBoundsRect),this._bounds.getRectangle(e)):t.prototype.getLocalBounds.call(this,e)},e.prototype.containsPoint=function(t){this.worldTransform.applyInverse(t,c);var e=this._width,r=this._height,n=-e*this.anchor._x;if(c.x>=n&&c.x=i&&c.y0&&void 0!==arguments[0]?arguments[0]:new i.Point,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.parent?this.parent.toGlobal(this.position,t,e):(t.x=this.position.x,t.y=this.position.y),t}},{"../core":65}],141:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0,r.BitmapText=r.TilingSpriteRenderer=r.TilingSprite=r.AnimatedSprite=void 0;var i=t("./AnimatedSprite");Object.defineProperty(r,"AnimatedSprite",{enumerable:!0,get:function(){return n(i).default}});var o=t("./TilingSprite");Object.defineProperty(r,"TilingSprite",{enumerable:!0,get:function(){return n(o).default}});var s=t("./webgl/TilingSpriteRenderer");Object.defineProperty(r,"TilingSpriteRenderer",{enumerable:!0,get:function(){return n(s).default}});var a=t("./BitmapText");Object.defineProperty(r,"BitmapText",{enumerable:!0,get:function(){return n(a).default}}),t("./cacheAsBitmap"),t("./getChildByName"),t("./getGlobalPosition")},{"./AnimatedSprite":135,"./BitmapText":136,"./TilingSprite":137,"./cacheAsBitmap":138,"./getChildByName":139,"./getGlobalPosition":140,"./webgl/TilingSpriteRenderer":142}],142:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=t("../../core"),a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(s),u=t("../../core/const"),h=(t("path"),new a.Matrix),l=function(t){function e(r){n(this,e);var o=i(this,t.call(this,r));return o.shader=null,o.simpleShader=null,o.quad=null,o}return o(e,t),e.prototype.onContextChange=function(){var t=this.renderer.gl;this.shader=new a.Shader(t,"attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n","varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\nuniform mat3 uMapCoord;\nuniform vec4 uClampFrame;\nuniform vec2 uClampOffset;\n\nvoid main(void)\n{\n vec2 coord = mod(vTextureCoord - uClampOffset, vec2(1.0, 1.0)) + uClampOffset;\n coord = (uMapCoord * vec3(coord, 1.0)).xy;\n coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);\n\n vec4 sample = texture2D(uSampler, coord);\n gl_FragColor = sample * uColor;\n}\n"),this.simpleShader=new a.Shader(t,"attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n","varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\n\nvoid main(void)\n{\n vec4 sample = texture2D(uSampler, vTextureCoord);\n gl_FragColor = sample * uColor;\n}\n"),this.renderer.bindVao(null),this.quad=new a.Quad(t,this.renderer.state.attribState),this.quad.initVao(this.shader)},e.prototype.render=function(t){var e=this.renderer,r=this.quad;e.bindVao(r.vao);var n=r.vertices;n[0]=n[6]=t._width*-t.anchor.x,n[1]=n[3]=t._height*-t.anchor.y,n[2]=n[4]=t._width*(1-t.anchor.x),n[5]=n[7]=t._height*(1-t.anchor.y),t.uvRespectAnchor&&(n=r.uvs,n[0]=n[6]=-t.anchor.x,n[1]=n[3]=-t.anchor.y,n[2]=n[4]=1-t.anchor.x,n[5]=n[7]=1-t.anchor.y),r.upload();var i=t._texture,o=i.baseTexture,s=t.tileTransform.localTransform,l=t.uvTransform,c=o.isPowerOfTwo&&i.frame.width===o.width&&i.frame.height===o.height;c&&(o._glTextures[e.CONTEXT_UID]?c=o.wrapMode!==u.WRAP_MODES.CLAMP:o.wrapMode===u.WRAP_MODES.CLAMP&&(o.wrapMode=u.WRAP_MODES.REPEAT));var d=c?this.simpleShader:this.shader;e.bindShader(d);var f=i.width,p=i.height,v=t._width,g=t._height;h.set(s.a*f/v,s.b*f/g,s.c*p/v,s.d*p/g,s.tx/v,s.ty/g),h.invert(),c?h.prepend(l.mapCoord):(d.uniforms.uMapCoord=l.mapCoord.toArray(!0),d.uniforms.uClampFrame=l.uClampFrame,d.uniforms.uClampOffset=l.uClampOffset),d.uniforms.uTransform=h.toArray(!0),d.uniforms.uColor=a.utils.premultiplyTintToRgba(t.tint,t.worldAlpha,d.uniforms.uColor,o.premultipliedAlpha),d.uniforms.translationMatrix=t.transform.worldTransform.toArray(!0),d.uniforms.uSampler=e.bindTexture(i),e.setBlendMode(a.utils.correctBlendMode(t.blendMode,o.premultipliedAlpha)),r.vao.draw(this.renderer.gl.TRIANGLES,6,0)},e}(a.ObjectRenderer);r.default=l,a.WebGLRenderer.registerPlugin("tilingSprite",l)},{"../../core":65,"../../core/const":46,path:8}],143:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:1;n(this,e);var o=i(this,t.call(this,"attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}","varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float uAlpha;\n\nvoid main(void)\n{\n gl_FragColor = texture2D(uSampler, vTextureCoord) * uAlpha;\n}\n"));return o.alpha=r,o.glShaderKey="alpha",o}return o(e,t),s(e,[{key:"alpha",get:function(){return this.uniforms.uAlpha},set:function(t){this.uniforms.uAlpha=t}}]),e}(u.Filter));r.default=h},{"../../core":65,path:8}],144:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=function(){function t(t,e){for(var r=0;r=r&&(u=t-h-1),l=l.replace("%value%",e[u]),s+=l,s+="\n"}return n=n.replace("%blur%",s),n=n.replace("%size%",t)}r.__esModule=!0,r.default=n;var i={5:[.153388,.221461,.250301],7:[.071303,.131514,.189879,.214607],9:[.028532,.067234,.124009,.179044,.20236],11:[.0093,.028002,.065984,.121703,.175713,.198596],13:[.002406,.009255,.027867,.065666,.121117,.174868,.197641],15:[489e-6,.002403,.009246,.02784,.065602,.120999,.174697,.197448]},o=["varying vec2 vBlurTexCoords[%size%];","uniform sampler2D uSampler;","void main(void)","{"," gl_FragColor = vec4(0.0);"," %blur%","}"].join("\n")},{}],148:[function(t,e,r){"use strict";function n(t,e){var r=Math.ceil(t/2),n=i,o="",s=void 0;s=e?"vBlurTexCoords[%index%] = aTextureCoord + vec2(%sampleIndex% * strength, 0.0);":"vBlurTexCoords[%index%] = aTextureCoord + vec2(0.0, %sampleIndex% * strength);";for(var a=0;ae;)r-=2;return r}r.__esModule=!0,r.default=n},{}],150:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r 0.0) {\n c.rgb /= c.a;\n }\n\n vec4 result;\n\n result.r = (m[0] * c.r);\n result.r += (m[1] * c.g);\n result.r += (m[2] * c.b);\n result.r += (m[3] * c.a);\n result.r += m[4];\n\n result.g = (m[5] * c.r);\n result.g += (m[6] * c.g);\n result.g += (m[7] * c.b);\n result.g += (m[8] * c.a);\n result.g += m[9];\n\n result.b = (m[10] * c.r);\n result.b += (m[11] * c.g);\n result.b += (m[12] * c.b);\n result.b += (m[13] * c.a);\n result.b += m[14];\n\n result.a = (m[15] * c.r);\n result.a += (m[16] * c.g);\n result.a += (m[17] * c.b);\n result.a += (m[18] * c.a);\n result.a += m[19];\n\n vec3 rgb = mix(c.rgb, result.rgb, uAlpha);\n\n // Premultiply alpha again.\n rgb *= result.a;\n\n gl_FragColor = vec4(rgb, result.a);\n}\n"));return r.uniforms.m=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],r.alpha=1,r}return o(e,t),e.prototype._loadMatrix=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=t;e&&(this._multiply(r,this.uniforms.m,t),r=this._colorMatrix(r)),this.uniforms.m=r},e.prototype._multiply=function(t,e,r){return t[0]=e[0]*r[0]+e[1]*r[5]+e[2]*r[10]+e[3]*r[15],t[1]=e[0]*r[1]+e[1]*r[6]+e[2]*r[11]+e[3]*r[16],t[2]=e[0]*r[2]+e[1]*r[7]+e[2]*r[12]+e[3]*r[17],t[3]=e[0]*r[3]+e[1]*r[8]+e[2]*r[13]+e[3]*r[18],t[4]=e[0]*r[4]+e[1]*r[9]+e[2]*r[14]+e[3]*r[19]+e[4],t[5]=e[5]*r[0]+e[6]*r[5]+e[7]*r[10]+e[8]*r[15],t[6]=e[5]*r[1]+e[6]*r[6]+e[7]*r[11]+e[8]*r[16],t[7]=e[5]*r[2]+e[6]*r[7]+e[7]*r[12]+e[8]*r[17],t[8]=e[5]*r[3]+e[6]*r[8]+e[7]*r[13]+e[8]*r[18],t[9]=e[5]*r[4]+e[6]*r[9]+e[7]*r[14]+e[8]*r[19]+e[9],t[10]=e[10]*r[0]+e[11]*r[5]+e[12]*r[10]+e[13]*r[15],t[11]=e[10]*r[1]+e[11]*r[6]+e[12]*r[11]+e[13]*r[16],t[12]=e[10]*r[2]+e[11]*r[7]+e[12]*r[12]+e[13]*r[17],t[13]=e[10]*r[3]+e[11]*r[8]+e[12]*r[13]+e[13]*r[18],t[14]=e[10]*r[4]+e[11]*r[9]+e[12]*r[14]+e[13]*r[19]+e[14],t[15]=e[15]*r[0]+e[16]*r[5]+e[17]*r[10]+e[18]*r[15],t[16]=e[15]*r[1]+e[16]*r[6]+e[17]*r[11]+e[18]*r[16],t[17]=e[15]*r[2]+e[16]*r[7]+e[17]*r[12]+e[18]*r[17],t[18]=e[15]*r[3]+e[16]*r[8]+e[17]*r[13]+e[18]*r[18],t[19]=e[15]*r[4]+e[16]*r[9]+e[17]*r[14]+e[18]*r[19]+e[19],t},e.prototype._colorMatrix=function(t){var e=new Float32Array(t);return e[4]/=255,e[9]/=255,e[14]/=255,e[19]/=255,e},e.prototype.brightness=function(t,e){var r=[t,0,0,0,0,0,t,0,0,0,0,0,t,0,0,0,0,0,1,0];this._loadMatrix(r,e)},e.prototype.greyscale=function(t,e){var r=[t,t,t,0,0,t,t,t,0,0,t,t,t,0,0,0,0,0,1,0];this._loadMatrix(r,e)},e.prototype.blackAndWhite=function(t){var e=[.3,.6,.1,0,0,.3,.6,.1,0,0,.3,.6,.1,0,0,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.hue=function(t,e){t=(t||0)/180*Math.PI;var r=Math.cos(t),n=Math.sin(t),i=Math.sqrt,o=1/3,s=i(o),a=r+(1-r)*o,u=o*(1-r)-s*n,h=o*(1-r)+s*n,l=o*(1-r)+s*n,c=r+o*(1-r),d=o*(1-r)-s*n,f=o*(1-r)-s*n,p=o*(1-r)+s*n,v=r+o*(1-r),g=[a,u,h,0,0,l,c,d,0,0,f,p,v,0,0,0,0,0,1,0];this._loadMatrix(g,e)},e.prototype.contrast=function(t,e){var r=(t||0)+1,n=-.5*(r-1),i=[r,0,0,0,n,0,r,0,0,n,0,0,r,0,n,0,0,0,1,0];this._loadMatrix(i,e)},e.prototype.saturate=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments[1],r=2*t/3+1,n=-.5*(r-1),i=[r,n,n,0,0,n,r,n,0,0,n,n,r,0,0,0,0,0,1,0];this._loadMatrix(i,e)},e.prototype.desaturate=function(){this.saturate(-1)},e.prototype.negative=function(t){var e=[-1,0,0,1,0,0,-1,0,1,0,0,0,-1,1,0,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.sepia=function(t){var e=[.393,.7689999,.18899999,0,0,.349,.6859999,.16799999,0,0,.272,.5339999,.13099999,0,0,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.technicolor=function(t){var e=[1.9125277891456083,-.8545344976951645,-.09155508482755585,0,11.793603434377337,-.3087833385928097,1.7658908555458428,-.10601743074722245,0,-70.35205161461398,-.231103377548616,-.7501899197440212,1.847597816108189,0,30.950940869491138,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.polaroid=function(t){var e=[1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.toBGR=function(t){var e=[0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.kodachrome=function(t){var e=[1.1285582396593525,-.3967382283601348,-.03992559172921793,0,63.72958762196502,-.16404339962244616,1.0835251566291304,-.05498805115633132,0,24.732407896706203,-.16786010706155763,-.5603416277695248,1.6014850761964943,0,35.62982807460946,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.browni=function(t){var e=[.5997023498159715,.34553243048391263,-.2708298674538042,0,47.43192855600873,-.037703249837783157,.8609577587992641,.15059552388459913,0,-36.96841498319127,.24113635128153335,-.07441037908422492,.44972182064877153,0,-7.562075277591283,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.vintage=function(t){var e=[.6279345635605994,.3202183420819367,-.03965408211312453,0,9.651285835294123,.02578397704808868,.6441188644374771,.03259127616149294,0,7.462829176470591,.0466055556782719,-.0851232987247891,.5241648018700465,0,5.159190588235296,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.colorTone=function(t,e,r,n,i){t=t||.2,e=e||.15,r=r||16770432,n=n||3375104;var o=(r>>16&255)/255,s=(r>>8&255)/255,a=(255&r)/255,u=(n>>16&255)/255,h=(n>>8&255)/255,l=(255&n)/255,c=[.3,.59,.11,0,0,o,s,a,t,0,u,h,l,e,0,o-u,s-h,a-l,0,0];this._loadMatrix(c,i)},e.prototype.night=function(t,e){t=t||.1;var r=[-2*t,-t,0,0,0,-t,0,t,0,0,0,t,2*t,0,0,0,0,0,1,0];this._loadMatrix(r,e)},e.prototype.predator=function(t,e){var r=[11.224130630493164*t,-4.794486999511719*t,-2.8746118545532227*t,0*t,.40342438220977783*t,-3.6330697536468506*t,9.193157196044922*t,-2.951810836791992*t,0*t,-1.316135048866272*t,-3.2184197902679443*t,-4.2375030517578125*t,7.476448059082031*t,0*t,.8044459223747253*t,0,0,0,1,0];this._loadMatrix(r,e)},e.prototype.lsd=function(t){var e=[2,-.4,.5,0,0,-.5,2,-.4,0,0,-.4,-.5,3,0,0,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.reset=function(){var t=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0];this._loadMatrix(t,!1)},s(e,[{key:"matrix",get:function(){return this.uniforms.m},set:function(t){this.uniforms.m=t}},{key:"alpha",get:function(){return this.uniforms.uAlpha}, +set:function(t){this.uniforms.uAlpha=t}}]),e}(u.Filter));r.default=h,h.prototype.grayscale=h.prototype.greyscale},{"../../core":65,path:8}],151:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r lumaMax))\n color = vec4(rgbA, texColor.a);\n else\n color = vec4(rgbB, texColor.a);\n return color;\n}\n\nvoid main() {\n\n vec2 fragCoord = vTextureCoord * filterArea.xy;\n\n vec4 color;\n\n color = fxaa(uSampler, fragCoord, filterArea.xy, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n\n gl_FragColor = color;\n}\n'))}return o(e,t),e}(a.Filter));r.default=u},{"../../core":65,path:8}],153:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0;var i=t("./fxaa/FXAAFilter");Object.defineProperty(r,"FXAAFilter",{enumerable:!0,get:function(){return n(i).default}});var o=t("./noise/NoiseFilter");Object.defineProperty(r,"NoiseFilter",{enumerable:!0,get:function(){return n(o).default}});var s=t("./displacement/DisplacementFilter");Object.defineProperty(r,"DisplacementFilter",{enumerable:!0,get:function(){return n(s).default}});var a=t("./blur/BlurFilter");Object.defineProperty(r,"BlurFilter",{enumerable:!0,get:function(){return n(a).default}});var u=t("./blur/BlurXFilter");Object.defineProperty(r,"BlurXFilter",{enumerable:!0,get:function(){return n(u).default}});var h=t("./blur/BlurYFilter");Object.defineProperty(r,"BlurYFilter",{enumerable:!0,get:function(){return n(h).default}});var l=t("./colormatrix/ColorMatrixFilter");Object.defineProperty(r,"ColorMatrixFilter",{enumerable:!0,get:function(){return n(l).default}});var c=t("./alpha/AlphaFilter");Object.defineProperty(r,"AlphaFilter",{enumerable:!0,get:function(){return n(c).default}})},{"./alpha/AlphaFilter":143,"./blur/BlurFilter":144,"./blur/BlurXFilter":145,"./blur/BlurYFilter":146,"./colormatrix/ColorMatrixFilter":150,"./displacement/DisplacementFilter":151,"./fxaa/FXAAFilter":152,"./noise/NoiseFilter":154}],154:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:.5,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.random();n(this,e);var s=i(this,t.call(this,"attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}","precision highp float;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform float uNoise;\nuniform float uSeed;\nuniform sampler2D uSampler;\n\nfloat rand(vec2 co)\n{\n return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\nvoid main()\n{\n vec4 color = texture2D(uSampler, vTextureCoord);\n float randomValue = rand(gl_FragCoord.xy * uSeed);\n float diff = (randomValue - 0.5) * uNoise;\n\n // Un-premultiply alpha before applying the color matrix. See issue #3539.\n if (color.a > 0.0) {\n color.rgb /= color.a;\n }\n\n color.r += diff;\n color.g += diff;\n color.b += diff;\n\n // Premultiply alpha again.\n color.rgb *= color.a;\n\n gl_FragColor = color;\n}\n"));return s.noise=r,s.seed=o,s}return o(e,t),s(e,[{key:"noise",get:function(){return this.uniforms.uNoise},set:function(t){this.uniforms.uNoise=t}},{key:"seed",get:function(){return this.uniforms.uSeed},set:function(t){this.uniforms.uSeed=t}}]),e}(u.Filter));r.default=h},{"../../core":65,path:8}],155:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:1;this.removeEvents(),this.interactionDOMElement=t,this.resolution=e,this.addEvents()},e.prototype.addEvents=function(){this.interactionDOMElement&&(h.ticker.shared.add(this.update,this,h.UPDATE_PRIORITY.INTERACTION),window.navigator.msPointerEnabled?(this.interactionDOMElement.style["-ms-content-zooming"]="none",this.interactionDOMElement.style["-ms-touch-action"]="none"):this.supportsPointerEvents&&(this.interactionDOMElement.style["touch-action"]="none"),this.supportsPointerEvents?(window.document.addEventListener("pointermove",this.onPointerMove,!0),this.interactionDOMElement.addEventListener("pointerdown",this.onPointerDown,!0),this.interactionDOMElement.addEventListener("pointerleave",this.onPointerOut,!0),this.interactionDOMElement.addEventListener("pointerover",this.onPointerOver,!0),window.addEventListener("pointercancel",this.onPointerCancel,!0),window.addEventListener("pointerup",this.onPointerUp,!0)):(window.document.addEventListener("mousemove",this.onPointerMove,!0),this.interactionDOMElement.addEventListener("mousedown",this.onPointerDown,!0),this.interactionDOMElement.addEventListener("mouseout",this.onPointerOut,!0),this.interactionDOMElement.addEventListener("mouseover",this.onPointerOver,!0),window.addEventListener("mouseup",this.onPointerUp,!0)),this.supportsTouchEvents&&(this.interactionDOMElement.addEventListener("touchstart",this.onPointerDown,!0),this.interactionDOMElement.addEventListener("touchcancel",this.onPointerCancel,!0),this.interactionDOMElement.addEventListener("touchend",this.onPointerUp,!0),this.interactionDOMElement.addEventListener("touchmove",this.onPointerMove,!0)),this.eventsAdded=!0)},e.prototype.removeEvents=function(){this.interactionDOMElement&&(h.ticker.shared.remove(this.update,this),window.navigator.msPointerEnabled?(this.interactionDOMElement.style["-ms-content-zooming"]="",this.interactionDOMElement.style["-ms-touch-action"]=""):this.supportsPointerEvents&&(this.interactionDOMElement.style["touch-action"]=""),this.supportsPointerEvents?(window.document.removeEventListener("pointermove",this.onPointerMove,!0),this.interactionDOMElement.removeEventListener("pointerdown",this.onPointerDown,!0),this.interactionDOMElement.removeEventListener("pointerleave",this.onPointerOut,!0),this.interactionDOMElement.removeEventListener("pointerover",this.onPointerOver,!0),window.removeEventListener("pointercancel",this.onPointerCancel,!0),window.removeEventListener("pointerup",this.onPointerUp,!0)):(window.document.removeEventListener("mousemove",this.onPointerMove,!0),this.interactionDOMElement.removeEventListener("mousedown",this.onPointerDown,!0),this.interactionDOMElement.removeEventListener("mouseout",this.onPointerOut,!0),this.interactionDOMElement.removeEventListener("mouseover",this.onPointerOver,!0),window.removeEventListener("mouseup",this.onPointerUp,!0)),this.supportsTouchEvents&&(this.interactionDOMElement.removeEventListener("touchstart",this.onPointerDown,!0),this.interactionDOMElement.removeEventListener("touchcancel",this.onPointerCancel,!0),this.interactionDOMElement.removeEventListener("touchend",this.onPointerUp,!0),this.interactionDOMElement.removeEventListener("touchmove",this.onPointerMove,!0)),this.interactionDOMElement=null,this.eventsAdded=!1)},e.prototype.update=function(t){if(this._deltaTime+=t,!(this._deltaTime=0;l--){var c=h[l],d=this.processInteractive(t,c,r,n,a);if(d){if(!c.parent)continue;a=!1,d&&(t.target&&(n=!1),s=!0)}}return i&&(n&&!t.target&&!e.hitArea&&e.containsPoint&&e.containsPoint(o)&&(s=!0),e.interactive&&(s&&!t.target&&(t.target=e),r&&r(t,e,!!s))),s},e.prototype.onPointerDown=function(t){if(!this.supportsTouchEvents||"touch"!==t.pointerType){var e=this.normalizeToPointerData(t);this.autoPreventDefault&&e[0].isNormalized&&t.preventDefault();for(var r=e.length,n=0;ne?1:this._height/e;t[9]=t[11]=t[13]=t[15]=this._topHeight*r,t[17]=t[19]=t[21]=t[23]=this._height-this._bottomHeight*r,t[25]=t[27]=t[29]=t[31]=this._height},e.prototype.updateVerticalVertices=function(){var t=this.vertices,e=this._leftWidth+this._rightWidth,r=this._width>e?1:this._width/e;t[2]=t[10]=t[18]=t[26]=this._leftWidth*r,t[4]=t[12]=t[20]=t[28]=this._width-this._rightWidth*r,t[6]=t[14]=t[22]=t[30]=this._width},e.prototype._renderCanvas=function(t){var e=t.context,r=this.worldTransform,n=t.resolution,i=16777215!==this.tint,o=this._texture;i&&this._cachedTint!==this.tint&&(this._cachedTint=this.tint,this._tintedTexture=c.default.getTintedTexture(this,this.tint));var s=i?this._tintedTexture:o.baseTexture.source;this._canvasUvs||(this._canvasUvs=[0,0,0,0,0,0,0,0]);var a=this.vertices,u=this._canvasUvs,h=i?0:o.frame.x,l=i?0:o.frame.y,d=h+o.frame.width,f=l+o.frame.height;u[0]=h,u[1]=h+this._leftWidth,u[2]=d-this._rightWidth,u[3]=d,u[4]=l,u[5]=l+this._topHeight,u[6]=f-this._bottomHeight,u[7]=f;for(var p=0;p<8;p++)u[p]*=o.baseTexture.resolution;e.globalAlpha=this.worldAlpha,t.setBlendMode(this.blendMode),t.roundPixels?e.setTransform(r.a*n,r.b*n,r.c*n,r.d*n,r.tx*n|0,r.ty*n|0):e.setTransform(r.a*n,r.b*n,r.c*n,r.d*n,r.tx*n,r.ty*n);for(var v=0;v<3;v++)for(var g=0;g<3;g++){var y=2*g+8*v,m=Math.max(1,u[g+1]-u[g]),_=Math.max(1,u[v+5]-u[v+4]),b=Math.max(1,a[y+10]-a[y]),x=Math.max(1,a[y+11]-a[y+1]);e.drawImage(s,u[g],u[v+4],m,_,a[y],a[y+1],b,x)}},e.prototype._refresh=function(){t.prototype._refresh.call(this);var e=this.uvs,r=this._texture;this._origWidth=r.orig.width,this._origHeight=r.orig.height;var n=1/this._origWidth,i=1/this._origHeight;e[0]=e[8]=e[16]=e[24]=0,e[1]=e[3]=e[5]=e[7]=0,e[6]=e[14]=e[22]=e[30]=1,e[25]=e[27]=e[29]=e[31]=1,e[2]=e[10]=e[18]=e[26]=n*this._leftWidth,e[4]=e[12]=e[20]=e[28]=1-n*this._rightWidth,e[9]=e[11]=e[13]=e[15]=i*this._topHeight,e[17]=e[19]=e[21]=e[23]=1-i*this._bottomHeight,this.updateHorizontalVertices(),this.updateVerticalVertices(),this.dirty++,this.multiplyUvs()},a(e,[{key:"width",get:function(){return this._width},set:function(t){this._width=t,this._refresh()}},{key:"height",get:function(){return this._height},set:function(t){this._height=t,this._refresh()}},{key:"leftWidth",get:function(){return this._leftWidth},set:function(t){this._leftWidth=t,this._refresh()}},{key:"rightWidth",get:function(){return this._rightWidth},set:function(t){this._rightWidth=t,this._refresh()}},{key:"topHeight",get:function(){return this._topHeight},set:function(t){this._topHeight=t,this._refresh()}},{key:"bottomHeight",get:function(){return this._bottomHeight},set:function(t){this._bottomHeight=t,this._refresh()}}]),e}(h.default);r.default=f},{"../core/sprites/canvas/CanvasTinter":104,"./Plane":168}],168:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=t("./Mesh"),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=function(t){function e(r,o,s){n(this,e);var u=i(this,t.call(this,r));return u._ready=!0,u.verticesX=o||10,u.verticesY=s||10,u.drawMode=a.default.DRAW_MODES.TRIANGLES,u.refresh(),u}return o(e,t),e.prototype._refresh=function(){for(var t=this._texture,e=this.verticesX*this.verticesY,r=[],n=[],i=[],o=[],s=this.verticesX-1,a=this.verticesY-1,u=t.width/s,h=t.height/a,l=0;l1&&(l=1);var c=Math.sqrt(n*n+i*i),d=this._texture.height/2;n/=c,i/=c,n*=d,i*=d,o[h]=u.x+n,o[h+1]=u.y+i,o[h+2]=u.x-n,o[h+3]=u.y-i,e=u}},e.prototype.updateTransform=function(){this.autoUpdate&&this.refreshVertices(),this.containerUpdateTransform()},e}(a.default);r.default=u},{"./Mesh":166}],170:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../../core"),o=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(i),s=t("../Mesh"),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=function(){function t(e){n(this,t),this.renderer=e}return t.prototype.render=function(t){var e=this.renderer,r=e.context,n=t.worldTransform,i=e.resolution;e.roundPixels?r.setTransform(n.a*i,n.b*i,n.c*i,n.d*i,n.tx*i|0,n.ty*i|0):r.setTransform(n.a*i,n.b*i,n.c*i,n.d*i,n.tx*i,n.ty*i),e.context.globalAlpha=t.worldAlpha,e.setBlendMode(t.blendMode),t.drawMode===a.default.DRAW_MODES.TRIANGLE_MESH?this._renderTriangleMesh(t):this._renderTriangles(t)},t.prototype._renderTriangleMesh=function(t){for(var e=t.vertices.length/2,r=0;r0){var O=S/Math.abs(t.worldTransform.a),M=S/Math.abs(t.worldTransform.d),P=(_+b+x)/3,C=(T+w+E)/3,R=_-P,A=T-C,I=Math.sqrt(R*R+A*A);_=P+R/I*(I+O),T=C+A/I*(I+M),R=b-P,A=w-C,I=Math.sqrt(R*R+A*A),b=P+R/I*(I+O),w=C+A/I*(I+M),R=x-P,A=E-C,I=Math.sqrt(R*R+A*A),x=P+R/I*(I+O),E=C+A/I*(I+M)}i.save(),i.beginPath(),i.moveTo(_,T),i.lineTo(b,w),i.lineTo(x,E),i.closePath(),i.clip();var D=d*g+v*p+f*y-g*p-v*f-d*y,L=_*g+v*x+b*y-g*x-v*b-_*y,N=d*b+_*p+f*x-b*p-_*f-d*x,B=d*g*x+v*b*p+_*f*y-_*g*p-v*f*x-d*b*y,k=T*g+v*E+w*y-g*E-v*w-T*y,F=d*w+T*p+f*E-w*p-T*f-d*E,j=d*g*E+v*w*p+T*f*y-T*g*p-v*f*E-d*w*y;i.transform(L/D,k/D,N/D,F/D,B/D,j/D),i.drawImage(h,0,0,l*u.resolution,c*u.resolution,0,0,l,c),i.restore(),this.renderer.invalidateBlendMode()}},t.prototype.renderMeshFlat=function(t){var e=this.renderer.context,r=t.vertices,n=r.length/2;e.beginPath();for(var i=1;i0&&void 0!==arguments[0]?arguments[0]:1500,o=arguments[1],s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16384,a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];n(this,e);var h=i(this,t.call(this));return s>16384&&(s=16384),s>r&&(s=r),h._properties=[!1,!0,!1,!1,!1],h._maxSize=r,h._batchSize=s,h._glBuffers={},h._bufferUpdateIDs=[],h._updateID=0,h.interactiveChildren=!1,h.blendMode=u.BLEND_MODES.NORMAL,h.autoResize=a,h.roundPixels=!0,h.baseTexture=null,h.setProperties(o),h._tint=0,h.tintRgb=new Float32Array(4),h.tint=16777215,h}return o(e,t),e.prototype.setProperties=function(t){t&&(this._properties[0]="vertices"in t||"scale"in t?!!t.vertices||!!t.scale:this._properties[0],this._properties[1]="position"in t?!!t.position:this._properties[1],this._properties[2]="rotation"in t?!!t.rotation:this._properties[2],this._properties[3]="uvs"in t?!!t.uvs:this._properties[3],this._properties[4]="tint"in t||"alpha"in t?!!t.tint||!!t.alpha:this._properties[4])},e.prototype.updateTransform=function(){this.displayObjectUpdateTransform()},e.prototype.renderWebGL=function(t){var e=this;this.visible&&!(this.worldAlpha<=0)&&this.children.length&&this.renderable&&(this.baseTexture||(this.baseTexture=this.children[0]._texture.baseTexture,this.baseTexture.hasLoaded||this.baseTexture.once("update",function(){return e.onChildrenChange(0)})),t.setObjectRenderer(t.plugins.particle),t.plugins.particle.render(this))},e.prototype.onChildrenChange=function(t){for(var e=Math.floor(t/this._batchSize);this._bufferUpdateIDs.lengthr&&(o=r);var s=t._glBuffers[i.CONTEXT_UID];s||(s=t._glBuffers[i.CONTEXT_UID]=this.generateBuffers(t));var a=e[0]._texture.baseTexture;this.renderer.setBlendMode(u.utils.correctBlendMode(t.blendMode,a.premultipliedAlpha));var h=i.gl,l=t.worldTransform.copy(this.tempMatrix);l.prepend(i._activeRenderTarget.projectionMatrix),this.shader.uniforms.projectionMatrix=l.toArray(!0),this.shader.uniforms.uColor=u.utils.premultiplyRgba(t.tintRgb,t.worldAlpha,this.shader.uniforms.uColor,a.premultipliedAlpha),this.shader.uniforms.uSampler=i.bindTexture(a);for(var c=!1,d=0,f=0;dn&&(p=n),f>=s.length){if(!t.autoResize)break;s.push(this._generateOneMoreBuffer(t))}var v=s[f];v.uploadDynamic(e,d,p);var g=t._bufferUpdateIDs[f]||0;c=c||v._updateID0?1:-1})},{}],179:[function(t,e,r){"use strict";Number.isInteger||(Number.isInteger=function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t})},{}],180:[function(t,e,r){"use strict";var n=t("object-assign"),i=function(t){return t&&t.__esModule?t:{default:t}}(n);Object.assign||(Object.assign=i.default)},{"object-assign":6}],181:[function(t,e,r){"use strict";t("./Object.assign"),t("./requestAnimationFrame"),t("./Math.sign"),t("./Number.isInteger"),window.ArrayBuffer||(window.ArrayBuffer=Array),window.Float32Array||(window.Float32Array=Array),window.Uint32Array||(window.Uint32Array=Array),window.Uint16Array||(window.Uint16Array=Array)},{"./Math.sign":178,"./Number.isInteger":179,"./Object.assign":180,"./requestAnimationFrame":182}],182:[function(t,e,r){(function(t){"use strict";if(Date.now&&Date.prototype.getTime||(Date.now=function(){return(new Date).getTime()}),!t.performance||!t.performance.now){var e=Date.now();t.performance||(t.performance={}),t.performance.now=function(){return Date.now()-e}}for(var r=Date.now(),n=["ms","moz","webkit","o"],i=0;i=0;n--)this.add(t.children[n]);return this},t.prototype.destroy=function(){this.ticking&&v.remove(this.tick,this),this.ticking=!1,this.addHooks=null,this.uploadHooks=null,this.renderer=null,this.completes=null,this.queue=null,this.limiter=null,this.uploadHookHelper=null},t}();r.default=g},{"../core":65,"./limiters/CountLimiter":186}],184:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function s(t,e){if(e instanceof u.BaseTexture){var r=e.source,n=0===r.width?t.canvas.width:Math.min(t.canvas.width,r.width),i=0===r.height?t.canvas.height:Math.min(t.canvas.height,r.height);return t.ctx.drawImage(r,0,0,n,i,0,0,t.canvas.width,t.canvas.height),!0}return!1}r.__esModule=!0;var a=t("../../core"),u=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(a),h=t("../BasePrepare"),l=function(t){return t&&t.__esModule?t:{default:t}}(h),c=16,d=function(t){function e(r){n(this,e);var o=i(this,t.call(this,r));return o.uploadHookHelper=o,o.canvas=document.createElement("canvas"),o.canvas.width=c,o.canvas.height=c,o.ctx=o.canvas.getContext("2d"),o.registerUploadHook(s),o}return o(e,t),e.prototype.destroy=function(){t.prototype.destroy.call(this),this.ctx=null,this.canvas=null},e}(l.default);r.default=d,u.CanvasRenderer.registerPlugin("prepare",d)},{"../../core":65,"../BasePrepare":183}],185:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0;var i=t("./webgl/WebGLPrepare");Object.defineProperty(r,"webgl",{enumerable:!0,get:function(){return n(i).default}});var o=t("./canvas/CanvasPrepare");Object.defineProperty(r,"canvas",{enumerable:!0,get:function(){return n(o).default}});var s=t("./BasePrepare");Object.defineProperty(r,"BasePrepare",{enumerable:!0,get:function(){return n(s).default}});var a=t("./limiters/CountLimiter");Object.defineProperty(r,"CountLimiter",{enumerable:!0,get:function(){return n(a).default}});var u=t("./limiters/TimeLimiter");Object.defineProperty(r,"TimeLimiter",{enumerable:!0,get:function(){return n(u).default}})},{"./BasePrepare":183,"./canvas/CanvasPrepare":184,"./limiters/CountLimiter":186,"./limiters/TimeLimiter":187,"./webgl/WebGLPrepare":188}],186:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(e){n(this,t),this.maxItemsPerFrame=e,this.itemsLeft=0}return t.prototype.beginFrame=function(){this.itemsLeft=this.maxItemsPerFrame},t.prototype.allowedToUpload=function(){return this.itemsLeft-- >0},t}();r.default=i},{}],187:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(e){n(this,t),this.maxMilliseconds=e,this.frameStart=0}return t.prototype.beginFrame=function(){this.frameStart=Date.now()},t.prototype.allowedToUpload=function(){return Date.now()-this.frameStart maxWidth || + canvasHeight > maxHeight + ) { + var factor = maxWidth / canvasWidth; + if (canvasHeight * factor > maxHeight) factor = maxHeight / canvasHeight; + + canvasWidth *= factor; + canvasHeight *= factor; + } + + this._pixiRenderer.view.style['top'] = + this._marginTop + (maxHeight - canvasHeight) / 2 + 'px'; + this._pixiRenderer.view.style['left'] = + this._marginLeft + (maxWidth - canvasWidth) / 2 + 'px'; + this._pixiRenderer.view.style.width = canvasWidth + 'px'; + this._pixiRenderer.view.style.height = canvasHeight + 'px'; + + // Store the canvas size for fast access to it. + this._canvasWidth = canvasWidth; + this._canvasHeight = canvasHeight; +}; + +/** + * Set if the aspect ratio must be kept when the game canvas is resized to fill + * the page. + */ +gdjs.RuntimeGamePixiRenderer.prototype.keepAspectRatio = function(enable) { + if (this._keepRatio === enable) return; + + this._keepRatio = enable; + this._resizeCanvas(); + this._game._notifySceneForResize = true; +}; + +/** + * Change the margin that must be preserved around the game canvas. + */ +gdjs.RuntimeGamePixiRenderer.prototype.setMargins = function( + top, + right, + bottom, + left +) { + if ( + this._marginTop === top && + this._marginRight === right && + this._marginBottom === bottom && + this._marginLeft === left + ) + return; + + this._marginTop = top; + this._marginRight = right; + this._marginBottom = bottom; + this._marginLeft = left; + this._resizeCanvas(); + this._game._notifySceneForResize = true; +}; + +/** + * Update the window size, if possible. + * @param {number} width The new width, in pixels. + * @param {number} height The new height, in pixels. + */ +gdjs.RuntimeGamePixiRenderer.prototype.setWindowSize = function(width, height) { + var electron = this.getElectron(); + if (electron) { + // Use Electron BrowserWindow API + var browserWindow = electron.remote.getCurrentWindow(); + if (browserWindow) { + browserWindow.setContentSize(width, height); + } + } else { + console.warn("Window size can't be changed on this platform."); + } +}; + +/** + * Center the window on screen. + */ +gdjs.RuntimeGamePixiRenderer.prototype.centerWindow = function() { + var electron = this.getElectron(); + if (electron) { + // Use Electron BrowserWindow API + var browserWindow = electron.remote.getCurrentWindow(); + if (browserWindow) { + browserWindow.center(); + } + } else { + // Not supported + } +}; + +/** + * De/activate fullscreen for the game. + */ +gdjs.RuntimeGamePixiRenderer.prototype.setFullScreen = function(enable) { + if (this._forceFullscreen) return; + + if (this._isFullscreen !== enable) { + this._isFullscreen = !!enable; + + var electron = this.getElectron(); + if (electron) { + // Use Electron BrowserWindow API + var browserWindow = electron.remote.getCurrentWindow(); + if (browserWindow) { + browserWindow.setFullScreen(this._isFullscreen); + } + } else { + // Use HTML5 Fullscreen API + //TODO: Do this on a user gesture, otherwise most browsers won't activate fullscreen + if (this._isFullscreen) { + if (document.documentElement.requestFullScreen) { + document.documentElement.requestFullScreen(); + } else if (document.documentElement.mozRequestFullScreen) { + document.documentElement.mozRequestFullScreen(); + } else if (document.documentElement.webkitRequestFullScreen) { + document.documentElement.webkitRequestFullScreen(); + } + } else { + if (document.cancelFullScreen) { + document.cancelFullScreen(); + } else if (document.mozCancelFullScreen) { + document.mozCancelFullScreen(); + } else if (document.webkitCancelFullScreen) { + document.webkitCancelFullScreen(); + } + } + } + + this._resizeCanvas(); + this._notifySceneForResize = true; + } +}; + +/** + * Add the standard events handler. + */ +gdjs.RuntimeGamePixiRenderer.prototype.bindStandardEvents = function( + manager, + window, + document +) { + var renderer = this._pixiRenderer; + var canvas = renderer.view; + + //Translate an event (mouse or touch) made on the canvas on the page + //to game coordinates. + var that = this; + function getEventPosition(e) { + var pos = [0, 0]; + if (e.pageX) { + pos[0] = e.pageX - canvas.offsetLeft; + pos[1] = e.pageY - canvas.offsetTop; + } else { + pos[0] = + e.clientX + + document.body.scrollLeft + + document.documentElement.scrollLeft - + canvas.offsetLeft; + pos[1] = + e.clientY + + document.body.scrollTop + + document.documentElement.scrollTop - + canvas.offsetTop; + } + + //Handle the fact that the game is stretched to fill the canvas. + pos[0] *= that._game.getGameResolutionWidth() / (that._canvasWidth || 1); + pos[1] *= that._game.getGameResolutionHeight() / (that._canvasHeight || 1); + + return pos; + } + + //Some browsers lacks definition of some variables used to do calculations + //in getEventPosition. They are defined to 0 as they are useless. + (function ensureOffsetsExistence() { + if (isNaN(canvas.offsetLeft)) { + canvas.offsetLeft = 0; + canvas.offsetTop = 0; + } + if (isNaN(document.body.scrollLeft)) { + document.body.scrollLeft = 0; + document.body.scrollTop = 0; + } + if ( + document.documentElement === undefined || + document.documentElement === null + ) { + document.documentElement = {}; + } + if (isNaN(document.documentElement.scrollLeft)) { + document.documentElement.scrollLeft = 0; + document.documentElement.scrollTop = 0; + } + if (isNaN(canvas.offsetLeft)) { + canvas.offsetLeft = 0; + canvas.offsetTop = 0; + } + })(); + + //Keyboard + document.onkeydown = function(e) { + manager.onKeyPressed(e.keyCode); + }; + document.onkeyup = function(e) { + manager.onKeyReleased(e.keyCode); + }; + //Mouse + renderer.view.onmousemove = function(e) { + var pos = getEventPosition(e); + manager.onMouseMove(pos[0], pos[1]); + }; + renderer.view.onmousedown = function(e) { + manager.onMouseButtonPressed( + e.button === 2 + ? gdjs.InputManager.MOUSE_RIGHT_BUTTON + : e.button === 1 + ? gdjs.InputManager.MOUSE_MIDDLE_BUTTON + : gdjs.InputManager.MOUSE_LEFT_BUTTON + ); + if (window.focus !== undefined) window.focus(); + return false; + }; + renderer.view.onmouseup = function(e) { + manager.onMouseButtonReleased( + e.button === 2 + ? gdjs.InputManager.MOUSE_RIGHT_BUTTON + : e.button === 1 + ? gdjs.InputManager.MOUSE_MIDDLE_BUTTON + : gdjs.InputManager.MOUSE_LEFT_BUTTON + ); + return false; + }; + window.addEventListener( + 'click', + function(e) { + if (window.focus !== undefined) window.focus(); + e.preventDefault(); + return false; + }, + false + ); + renderer.view.oncontextmenu = function(event) { + event.preventDefault(); + event.stopPropagation(); + return false; + }; + renderer.view.onmousewheel = function(event) { + manager.onMouseWheel(event.wheelDelta); + }; + //Touches + //Also simulate mouse events when receiving touch events + window.addEventListener('touchmove', function(e) { + e.preventDefault(); + if (e.changedTouches) { + for (var i = 0; i < e.changedTouches.length; ++i) { + var pos = getEventPosition(e.changedTouches[i]); + manager.onTouchMove(e.changedTouches[i].identifier, pos[0], pos[1]); + } + } + }); + window.addEventListener('touchstart', function(e) { + e.preventDefault(); + if (e.changedTouches) { + for (var i = 0; i < e.changedTouches.length; ++i) { + var pos = getEventPosition(e.changedTouches[i]); + manager.onTouchStart(e.changedTouches[i].identifier, pos[0], pos[1]); + } + } + return false; + }); + window.addEventListener('touchend', function(e) { + e.preventDefault(); + if (e.changedTouches) { + for (var i = 0; i < e.changedTouches.length; ++i) { + var pos = getEventPosition(e.changedTouches[i]); + manager.onTouchEnd(e.changedTouches[i].identifier); + } + } + return false; + }); +}; + +gdjs.RuntimeGamePixiRenderer.prototype.setWindowTitle = function(title) { + if (typeof document !== 'undefined') document.title = title; +}; + +gdjs.RuntimeGamePixiRenderer.prototype.getWindowTitle = function() { + return typeof document !== 'undefined' ? document.title : ''; +}; + +gdjs.RuntimeGamePixiRenderer.prototype.startGameLoop = function(fn) { + requestAnimationFrame(gameLoop); + + var oldTime = 0; + function gameLoop(time) { + var dt = oldTime ? time - oldTime : 0; + oldTime = time; + + if (fn(dt)) requestAnimationFrame(gameLoop); + } +}; + +gdjs.RuntimeGamePixiRenderer.prototype.getPIXIRenderer = function() { + return this._pixiRenderer; +}; + +/** + * Open the given URL in the system browser (or a new tab) + */ +gdjs.RuntimeGamePixiRenderer.prototype.openURL = function(url) { + // Try to detect the environment to use the most adapted + // way of opening an URL. + if (typeof Cocoon !== 'undefined' && Cocoon.App && Cocoon.App.openURL) { + Cocoon.App.openURL(url); + } else if (typeof window !== 'undefined') { + var target = window.cordova ? '_system' : '_blank'; + window.open(url, target); + } +}; + +/** + * Close the game, if applicable + */ +gdjs.RuntimeGamePixiRenderer.prototype.stopGame = function() { + // Try to detect the environment to use the most adapted + // way of closing the app + var electron = this.getElectron(); + if (electron) { + var browserWindow = electron.remote.getCurrentWindow(); + if (browserWindow) { + browserWindow.close(); + } + } else if ( + typeof navigator !== 'undefined' && + navigator.app && + navigator.app.exitApp + ) { + navigator.app.exitApp(); + } + + // HTML5 games on mobile/browsers don't have a way to close their window/page. +}; + +/** + * Get the canvas DOM element. + */ +gdjs.RuntimeGamePixiRenderer.prototype.getCanvas = function() { + return this._pixiRenderer.view; +}; + +/** + * Check if the device supports WebGL. + * @returns {boolean} true if WebGL is supported + */ +gdjs.RuntimeGamePixiRenderer.prototype.isWebGLSupported = function() { + return this._pixiRenderer.type === PIXI.RENDERER_TYPE.WEBGL; +}; + +/** + * Get the electron module, if running as a electron renderer process. + */ +gdjs.RuntimeGamePixiRenderer.prototype.getElectron = function() { + if (typeof require !== 'undefined') { + return require('electron'); + } + + return null; +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/runtimescene-pixi-renderer.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/runtimescene-pixi-renderer.js new file mode 100644 index 0000000..50ed10a --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/runtimescene-pixi-renderer.js @@ -0,0 +1,87 @@ +gdjs.RuntimeScenePixiRenderer = function(runtimeScene, runtimeGameRenderer) { + this._pixiRenderer = runtimeGameRenderer + ? runtimeGameRenderer.getPIXIRenderer() + : null; + this._runtimeScene = runtimeScene; + this._pixiContainer = new PIXI.Container(); //The Container meant to contains all pixi objects of the scene. +}; + +gdjs.RuntimeSceneRenderer = gdjs.RuntimeScenePixiRenderer; //Register the class to let the engine use it. + +gdjs.RuntimeScenePixiRenderer.prototype.onGameResolutionResized = function() { + if (!this._pixiRenderer) return; + + var runtimeGame = this._runtimeScene.getGame(); + this._pixiContainer.scale.x = + this._pixiRenderer.width / runtimeGame.getGameResolutionWidth(); + this._pixiContainer.scale.y = + this._pixiRenderer.height / runtimeGame.getGameResolutionHeight(); +}; + +gdjs.RuntimeScenePixiRenderer.prototype.render = function() { + if (!this._pixiRenderer) return; + + // this._renderProfileText(); //Uncomment to display profiling times + + // render the PIXI container of the scene + this._pixiRenderer.backgroundColor = this._runtimeScene.getBackgroundColor(); + this._pixiRenderer.render(this._pixiContainer); +}; + +gdjs.RuntimeScenePixiRenderer.prototype._renderProfileText = function() { + if (!this._runtimeScene.getProfiler()) return; + + if (!this._profilerText) { + this._profilerText = new PIXI.Text(" ", { + align: "left", + stroke: "#FFF", + strokeThickness: 1 + }); + this._pixiContainer.addChild(this._profilerText); + } + + var average = this._runtimeScene.getProfiler().getFramesAverageMeasures(); + var outputs = []; + gdjs.Profiler.getProfilerSectionTexts("All", average, outputs); + + this._profilerText.text = outputs.join("\n"); +}; + +gdjs.RuntimeScenePixiRenderer.prototype.renderDebugDraw = function(instances, layersCameraCoordinates) { + if (!this._debugDraw) { + this._debugDraw = new PIXI.Graphics(); + this._pixiContainer.addChild(this._debugDraw); + } + /** @type PIXI.Graphics */ + var debugDraw = this._debugDraw; + + debugDraw.clear(); + debugDraw.beginFill(0x6868e8); + debugDraw.lineStyle(1, 0x6868e8, 1); + debugDraw.fillAlpha = 0.1; + debugDraw.alpha = 0.8; + + for(var i = 0;i < instances.length;i++) { + var object = instances[i]; + var cameraCoords = layersCameraCoordinates[object.getLayer()]; + var rendererObject = object.getRendererObject(); + + if (!cameraCoords || !rendererObject) continue; + + var aabb = object.getAABB(); + debugDraw.drawRect(aabb.min[0], aabb.min[1], aabb.max[0] - aabb.min[0], aabb.max[1] - aabb.min[1]); + } + debugDraw.endFill(); +}; + +gdjs.RuntimeScenePixiRenderer.prototype.hideCursor = function() { + this._pixiRenderer.view.style.cursor = "none"; +}; + +gdjs.RuntimeScenePixiRenderer.prototype.showCursor = function() { + this._pixiRenderer.view.style.cursor = ""; +}; + +gdjs.RuntimeScenePixiRenderer.prototype.getPIXIContainer = function() { + return this._pixiContainer; +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/spriteruntimeobject-pixi-renderer.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/spriteruntimeobject-pixi-renderer.js new file mode 100644 index 0000000..d8b8b34 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/pixi-renderers/spriteruntimeobject-pixi-renderer.js @@ -0,0 +1,137 @@ +/** + * The renderer for a gdjs.SpriteRuntimeObject using Pixi.js. + * @class SpriteRuntimeObjectPixiRenderer + * @memberof gdjs + * @param {gdjs.SpriteRuntimeObject} runtimeObject The object + * @param {gdjs.RuntimeScene} runtimeScene The scene + */ +gdjs.SpriteRuntimeObjectPixiRenderer = function(runtimeObject, runtimeScene) +{ + /** @type gdjs.SpriteRuntimeObject */ + this._object = runtimeObject; + this._spriteDirty = true; + this._textureDirty = true; + if ( this._sprite === undefined ) + this._sprite = new PIXI.Sprite(runtimeScene.getGame().getImageManager().getInvalidPIXITexture()); + + var layer = runtimeScene.getLayer(""); + if (layer) layer.getRenderer().addRendererObject(this._sprite, runtimeObject.getZOrder()); +} + +gdjs.SpriteRuntimeObjectRenderer = gdjs.SpriteRuntimeObjectPixiRenderer; //Register the class to let the engine use it. + +gdjs.SpriteRuntimeObjectPixiRenderer.prototype.getRendererObject = function() { + return this._sprite; +}; + +/** + * Update the internal PIXI.Sprite position, angle... + */ +gdjs.SpriteRuntimeObjectPixiRenderer.prototype._updatePIXISprite = function() { + if (this._object._animationFrame !== null) { + this._sprite.anchor.x = this._object._animationFrame.center.x/this._sprite.texture.frame.width; + this._sprite.anchor.y = this._object._animationFrame.center.y/this._sprite.texture.frame.height; + this._sprite.position.x = this._object.x + (this._object._animationFrame.center.x - this._object._animationFrame.origin.x)*Math.abs(this._object._scaleX); + this._sprite.position.y = this._object.y + (this._object._animationFrame.center.y - this._object._animationFrame.origin.y)*Math.abs(this._object._scaleY); + this._sprite.rotation = gdjs.toRad(this._object.angle); + this._sprite.visible = !this._object.hidden; + this._sprite.blendMode = this._object._blendMode; + this._sprite.alpha = this._sprite.visible ? this._object.opacity/255 : 0; //TODO: Workaround not working property in PIXI.js + this._sprite.scale.x = this._object._scaleX; + this._sprite.scale.y = this._object._scaleY; + this._cachedWidth = Math.abs(this._sprite.width); + this._cachedHeight = Math.abs(this._sprite.height); + } else { + this._sprite.visible = false; + this._sprite.alpha = 0; + this._cachedWidth = 0; + this._cachedHeight = 0; + } + + this._spriteDirty = false; +}; + +/** + * Call this to make sure the sprite is ready to be rendered. + */ +gdjs.SpriteRuntimeObjectPixiRenderer.prototype.ensureUpToDate = function() { + if ( this._spriteDirty ) this._updatePIXISprite(); +}; + +/** + * Update the internal texture of the PIXI sprite. + */ +gdjs.SpriteRuntimeObjectPixiRenderer.prototype.updateFrame = function(animationFrame) { + this._spriteDirty = true; + this._sprite.texture = animationFrame.texture; +}; + +gdjs.SpriteRuntimeObjectPixiRenderer.prototype.update = function() { + this._spriteDirty = true; +} + +gdjs.SpriteRuntimeObjectPixiRenderer.prototype.updateX = function() { + this._sprite.position.x = this._object.x + (this._object._animationFrame.center.x - this._object._animationFrame.origin.x)*Math.abs(this._object._scaleX); +} + +gdjs.SpriteRuntimeObjectPixiRenderer.prototype.updateY = function() { + this._sprite.position.y = this._object.y + (this._object._animationFrame.center.y - this._object._animationFrame.origin.y)*Math.abs(this._object._scaleY); +} + +gdjs.SpriteRuntimeObjectPixiRenderer.prototype.updateAngle = function() { + this._sprite.rotation = gdjs.toRad(this._object.angle); +} + +gdjs.SpriteRuntimeObjectPixiRenderer.prototype.updateOpacity = function() { + //TODO: Workaround a not working property in PIXI.js: + this._sprite.alpha = this._sprite.visible ? this._object.opacity/255 : 0; +} + +gdjs.SpriteRuntimeObjectPixiRenderer.prototype.updateVisibility = function() { + this._sprite.visible = !this._object.hidden; + + //TODO: Workaround a not working property in PIXI.js: + this._sprite.alpha = this._sprite.visible ? this._object.opacity/255 : 0; +} + +gdjs.SpriteRuntimeObjectPixiRenderer.prototype.setColor = function(rgbColor) { + var colors = rgbColor.split(";"); + if ( colors.length < 3 ) return; + + this._sprite.tint = "0x" + gdjs.rgbToHex(parseInt(colors[0], 10), parseInt(colors[1], 10), parseInt(colors[2], 10)); +}; + +gdjs.SpriteRuntimeObjectPixiRenderer.prototype.getColor = function() { + var rgb = PIXI.utils.hex2rgb(this._sprite.tint) + return Math.floor(rgb[0]*255) + ';' + Math.floor(rgb[1]*255) + ';' + Math.floor(rgb[2]*255); +} + +gdjs.SpriteRuntimeObjectPixiRenderer.prototype.getWidth = function() { + if ( this._spriteDirty ) this._updatePIXISprite(); + return this._cachedWidth; +}; + +gdjs.SpriteRuntimeObjectPixiRenderer.prototype.getHeight = function() { + if ( this._spriteDirty ) this._updatePIXISprite(); + return this._cachedHeight; +}; + +gdjs.SpriteRuntimeObjectPixiRenderer.prototype.getUnscaledWidth = function() { + return this._sprite.texture.frame.width; +}; + +gdjs.SpriteRuntimeObjectPixiRenderer.prototype.getUnscaledHeight = function() { + return this._sprite.texture.frame.height; +}; + +gdjs.SpriteRuntimeObjectPixiRenderer.getAnimationFrame = function(imageManager, imageName) { + return imageManager.getPIXITexture(imageName); +}; + +gdjs.SpriteRuntimeObjectPixiRenderer.getAnimationFrameWidth = function(pixiTexture) { + return pixiTexture.width; +}; + +gdjs.SpriteRuntimeObjectPixiRenderer.getAnimationFrameHeight = function(pixiTexture) { + return pixiTexture.height; +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/playerShip1_red.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/playerShip1_red.png new file mode 100644 index 0000000000000000000000000000000000000000..30b9ad57d5ecab3d4abe143809bd20ff07842fdc GIT binary patch literal 3942 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 literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/polygon.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/polygon.js new file mode 100644 index 0000000..015a4f5 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/polygon.js @@ -0,0 +1,430 @@ +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * Polygon represents a polygon which can be used to create collisions masks for RuntimeObject. + * + * @memberof gdjs + * @class Polygon + */ +gdjs.Polygon = function() +{ + /** + * The vertices of the polygon + * @member {Array} + */ + this.vertices = []; + + /** + * The edges of the polygon. This property is only valid after calling + * computeEdges, and remains valid until vertices are modified. + * @member {Array} + */ + this.edges = []; + + /** + * The center of the polygon. This property is only valid after calling + * computeCenter, and remains valid until vertices are modified. + * @member {Array} + */ + this.center = [0,0]; +}; + +gdjs.Polygon.prototype.move = function(x,y) { + for(var i = 0, len = this.vertices.length;i= len) v2 = this.vertices[0]; + else v2 = this.vertices[i + 1]; + + this.edges[i][0] = v2[0] - v1[0]; + this.edges[i][1] = v2[1] - v1[1]; + } +}; + +gdjs.Polygon.prototype.isConvex = function() { + this.computeEdges(); + var edgesLen = this.edges.length; + + if ( edgesLen < 3 ) { + return false; + } + + var zProductIsPositive = (this.edges[0][0]*this.edges[0+1][1] - this.edges[0][1]*this.edges[0+1][0]) > 0; + + for (var i = 1;i 0) !== zProductIsPositive ) return false; + } + + var lastZCrossProduct = this.edges[edgesLen-1][0]*this.edges[0][1] - this.edges[edgesLen-1][1]*this.edges[0][0]; + if ( (lastZCrossProduct > 0) !== zProductIsPositive ) return false; + + return true; +}; + +gdjs.Polygon.prototype.computeCenter = function() { + this.center[0] = 0; + this.center[1] = 0; + var len = this.vertices.length; + + for (var i = 0;iSeparating Axis Theorem
.
+ * Based on this + * and this article. + * + * @return {{collision: boolean, move_axis: Array}} returnValue.collision is equal to true if polygons are overlapping + * @param {gdjs.Polygon} p1 The first polygon + * @param {gdjs.Polygon} p2 The second polygon + * @param {boolean | undefined} ignoreTouchingEdges If true, then edges that are touching each other, without the polygons actually overlapping, won't be considered in collision. + */ +gdjs.Polygon.collisionTest = function(p1, p2, ignoreTouchingEdges) { + //Algorithm core : + + p1.computeEdges(); + p2.computeEdges(); + + var edge = gdjs.Polygon.collisionTest._statics.edge; + var move_axis = gdjs.Polygon.collisionTest._statics.move_axis; + + var result = gdjs.Polygon.collisionTest._statics.result; + var minDist = Number.MAX_VALUE; + + edge[0] = 0; + edge[1] = 0; + edge[0] = 0; + edge[1] = 0; + + result.collision = false; + result.move_axis[0] = 0; + result.move_axis[1] = 0; + + //Iterate over all the edges composing the polygons + for (var i = 0, len1 = p1.vertices.length, len2 = p2.vertices.length; i < len1+len2; i++) { + if (i < len1) { // or <= + edge = p1.edges[i]; + } else { + edge = p2.edges[i - len1]; + } + + var axis = gdjs.Polygon.collisionTest._statics.axis; //Get the axis to which polygons will be projected + axis[0] = -edge[1]; + axis[1] = edge[0]; + gdjs.Polygon.normalise(axis); + + var minMaxA = gdjs.Polygon.collisionTest._statics.minMaxA; + var minMaxB = gdjs.Polygon.collisionTest._statics.minMaxB; + gdjs.Polygon.project(axis, p1, minMaxA); //Do projection on the axis. + gdjs.Polygon.project(axis, p2, minMaxB); + + //If the projections on the axis do not overlap, then their is no collision + var dist = gdjs.Polygon.distance(minMaxA[0], minMaxA[1], minMaxB[0], minMaxB[1]); + if (dist > 0 || (dist === 0 && ignoreTouchingEdges)) { + result.collision = false; + result.move_axis[0] = 0; + result.move_axis[1] = 0; + return result; + } + + var absDist = Math.abs(dist); + + if (absDist < minDist) { + minDist = absDist; + move_axis[0] = axis[0]; + move_axis[1] = axis[1]; + } + } + + result.collision = true; + + //Ensure move axis is correctly oriented. + var p1Center = p1.computeCenter(); + var p2Center = p2.computeCenter(); + var d = [p1Center[0]-p2Center[0], p1Center[1]-p2Center[1]]; + if (gdjs.Polygon.dotProduct(d, move_axis) < 0) { + move_axis[0] = -move_axis[0]; + move_axis[1] = -move_axis[1]; + } + + //Add the magnitude to the move axis. + result.move_axis[0] = move_axis[0] * minDist; + result.move_axis[1] = move_axis[1] * minDist; + + return result; +}; + +//Arrays and data structure that are (re)used by gdjs.Polygon.collisionTest to +//avoid any allocation. +gdjs.Polygon.collisionTest._statics = { + minMaxA: [0,0], + minMaxB: [0,0], + edge: [0,0], + axis: [0,0], + move_axis: [0,0], + result: { + collision:false, + move_axis:[0,0] + } +}; + +/** + * Do a raycast test.
+ * Please note that the polygon must be convex! + * + * For some theory, check Find the Intersection Point of Two Line Segments. + * + * @param {gdjs.Polygon} poly The polygon to test + * @param {number} startX The raycast start point X + * @param {number} startY The raycast start point Y + * @param {number} endX The raycast end point X + * @param {number} endY The raycast end point Y + * @return A raycast result with the contact points and distances + */ +gdjs.Polygon.raycastTest = function(poly, startX, startY, endX, endY) +{ + var result = gdjs.Polygon.raycastTest._statics.result; + result.collision = false; + + if ( poly.vertices.length < 2 ) + { + return result; + } + + poly.computeEdges(); + var p = gdjs.Polygon.raycastTest._statics.p; + var q = gdjs.Polygon.raycastTest._statics.q; + var r = gdjs.Polygon.raycastTest._statics.r; + var s = gdjs.Polygon.raycastTest._statics.s; + var minSqDist = Number.MAX_VALUE; + + // Ray segment: p + t*r, with p = start and r = end - start + p[0] = startX; + p[1] = startY; + r[0] = endX - startX; + r[1] = endY - startY; + + for(var i=0; i maxOverlap ){ + return result; + } + result.collision = true; + // Zero distance ray + if( rayB === 0 ){ + result.closeX = startX; + result.closeY = startY; + result.closeSqDist = 0; + result.farX = startX; + result.farY = startY; + result.farSqDist = 0; + } + var t1 = minOverlap / Math.abs(rayB); + var t2 = maxOverlap / Math.abs(rayB); + result.closeX = startX + t1*r[0]; + result.closeY = startY + t1*r[1]; + result.closeSqDist = t1*t1*(r[0]*r[0] + r[1]*r[1]); + result.farX = startX + t2*r[0]; + result.farY = startY + t2*r[1]; + result.farSqDist = t2*t2*(r[0]*r[0] + r[1]*r[1]); + + return result; + } + // One point intersection + else if ( crossRS !== 0 && 0<=t && t<=1 && 0<=u && u<=1 ) + { + var x = p[0] + t*r[0]; + var y = p[1] + t*r[1]; + + var sqDist = (x-startX)*(x-startX) + (y-startY)*(y-startY); + if ( sqDist < minSqDist ) + { + if ( !result.collision ){ + result.farX = x; + result.farY = y; + result.farSqDist = sqDist; + } + minSqDist = sqDist; + result.closeX = x; + result.closeY = y; + result.closeSqDist = sqDist; + result.collision = true; + } + else + { + result.farX = x; + result.farY = y; + result.farSqDist = sqDist; + } + } + } + + return result; +}; + +gdjs.Polygon.raycastTest._statics = { + p: [0,0], + q: [0,0], + r: [0,0], + s: [0,0], + deltaQP: [0,0], + axis: [0,0], + result: { + collision: false, + closeX: 0, + closeY: 0, + closeSqDist: 0, + farX: 0, + farY: 0, + farSqDist: 0 + } +} + +//Tools functions : +gdjs.Polygon.normalise = function(v) +{ + var len = Math.sqrt(v[0]*v[0] + v[1]*v[1]); + + if (len != 0) { + v[0] /= len; + v[1] /= len; + } +} + +gdjs.Polygon.dotProduct = function(a, b) +{ + var dp = a[0]*b[0] + a[1]*b[1]; + + return dp; +} + +gdjs.Polygon.crossProduct = function(a, b) +{ + var cp = a[0]*b[1] - a[1]*b[0]; + + return cp; +} + +gdjs.Polygon.project = function(axis, p, result) +{ + var dp = gdjs.Polygon.dotProduct(axis, p.vertices[0]); + result[0] = dp; + result[1] = dp; + + for (var i = 1, len = p.vertices.length; i < len; ++i) { + dp = gdjs.Polygon.dotProduct(axis, p.vertices[i]); + + if (dp < result[0]) + result[0] = dp; + else if (dp > result[1]) + result[1] = dp; + } +} + +gdjs.Polygon.distance = function(minA, maxA, minB, maxB) +{ + if (minA < minB) return minB - maxA; + else return minA - maxB; +} + +/** + * Check if a point is inside a polygon. + * + * Uses PNPOLY by W. Randolph Franklin. + * + * @param {gdjs.Polygon} poly The polygon to test + * @param {number} x The point x coordinate + * @param {number} y The point y coordinate + * @return {boolean} true if the point is inside the polygon + */ +gdjs.Polygon.isPointInside = function(poly, x, y) +{ + var inside = false; + var vi, vj; + for (var i = 0, j = poly.vertices.length-1; i < poly.vertices.length; j = i++) { + vi = poly.vertices[i]; + vj = poly.vertices[j]; + if ( ((vi[1]>y) != (vj[1]>y)) && (x < (vj[0]-vi[0]) * (y-vi[1]) / (vj[1]-vi[1]) + vi[0]) ) + inside = !inside; + } + + return inside; +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/profiler.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/profiler.js new file mode 100644 index 0000000..30451bf --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/profiler.js @@ -0,0 +1,173 @@ +/** + * A basic profiling tool that can be used to measure time spent in sections of the engine. + * @class Profiler + * @see gdjs.RuntimeGame + * @memberof gdjs + */ +gdjs.Profiler = function() { + this._framesMeasures = []; // All the measures for the last frames + this._currentFrameIndex = 0; + this._currentFrameMeasure = null; // The measures being done + this._currentSection = null; // The section being measured + + this._maxFramesCount = 600; + this._framesCount = 0; // The number of frames that have been measured + while (this._framesMeasures.length < this._maxFramesCount) { + this._framesMeasures.push({ + parent: null, + time: 0, + subsections: {}, + }); + } + + this._getTimeNow = + window.performance && typeof window.performance.now === 'function' + ? window.performance.now.bind(window.performance) + : Date.now; +}; + +gdjs.Profiler.prototype.beginFrame = function() { + this._currentFrameMeasure = { + parent: null, + time: 0, + lastStartTime: this._getTimeNow(), + subsections: {}, + }; + this._currentSection = this._currentFrameMeasure; +}; + +gdjs.Profiler.prototype.begin = function(sectionName) { + // Push the new section + var subsections = this._currentSection.subsections; + var subsection = (subsections[sectionName] = subsections[sectionName] || { + parent: this._currentSection, + time: 0, + lastStartTime: 0, + subsections: {}, + }); + this._currentSection = subsection; + + // Start the timer + this._currentSection.lastStartTime = this._getTimeNow(); +}; + +gdjs.Profiler.prototype.end = function(sectionName) { + // Stop the timer + var sectionTime = this._getTimeNow() - this._currentSection.lastStartTime; + this._currentSection.time = (this._currentSection.time || 0) + sectionTime; + + // Pop the section + this._currentSection = this._currentSection.parent; +}; + +gdjs.Profiler.prototype.endFrame = function() { + if (this._currentSection.parent !== null) { + throw new Error( + 'Mismatch in profiler, endFrame should be called on root section' + ); + } + + this.end(); + + this._framesCount++; + if (this._framesCount > this._maxFramesCount) + this._framesCount = this._maxFramesCount; + this._framesMeasures[this._currentFrameIndex] = this._currentFrameMeasure; + this._currentFrameIndex++; + if (this._currentFrameIndex >= this._maxFramesCount) + this._currentFrameIndex = 0; +}; + +gdjs.Profiler._addAverageSectionTimes = function( + section, + destinationSection, + totalCount, + i +) { + destinationSection.time = + (destinationSection.time || 0) + section.time / totalCount; + for (var sectionName in section.subsections) { + if (section.subsections.hasOwnProperty(sectionName)) { + var destinationSubsections = destinationSection.subsections; + var destinationSubsection = (destinationSubsections[ + sectionName + ] = destinationSubsections[sectionName] || { + parent: destinationSection, + time: 0, + subsections: {}, + }); + + gdjs.Profiler._addAverageSectionTimes( + section.subsections[sectionName], + destinationSubsection, + totalCount, + i + ); + } + } +}; + +/** + * Return the measures for all the section of the game during the frames + * captured. + */ +gdjs.Profiler.prototype.getFramesAverageMeasures = function() { + var framesAverageMeasures = { + parent: null, + time: 0, + subsections: {}, + }; + + for (var i = 0; i < this._framesCount; ++i) { + gdjs.Profiler._addAverageSectionTimes( + this._framesMeasures[i], + framesAverageMeasures, + this._framesCount, + i + ); + } + + return framesAverageMeasures; +}; + +/** + * Get stats measured during the frames captured. + */ +gdjs.Profiler.prototype.getStats = function() { + return { + framesCount: this._framesCount, + }; +}; + +/** + * Convert measures for a section into texts. + * Useful for ingame profiling. + * + * @param {string} sectionName The name of the section + * @param {s} profilerSection The section measures + * @param {*} outputs The array where to push the results + */ +gdjs.Profiler.getProfilerSectionTexts = function( + sectionName, + profilerSection, + outputs +) { + var percent = + profilerSection.parent && profilerSection.parent.time !== 0 + ? ((profilerSection.time / profilerSection.parent.time) * 100).toFixed(1) + : '100%'; + var time = profilerSection.time.toFixed(2); + outputs.push(sectionName + ': ' + time + 'ms (' + percent + ')'); + var subsectionsOutputs = []; + + for (var subsectionName in profilerSection.subsections) { + if (profilerSection.subsections.hasOwnProperty(subsectionName)) { + gdjs.Profiler.getProfilerSectionTexts( + subsectionName, + profilerSection.subsections[subsectionName], + subsectionsOutputs + ); + } + } + outputs.push.apply(outputs, subsectionsOutputs); +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/right.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/right.png new file mode 100644 index 0000000000000000000000000000000000000000..98e816a9282c2ea9647781f1f2877b70286066b1 GIT binary patch literal 17487 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 + * Behaviors writers: Please do not redefine this method. Redefine doStepPreEvents instead. + * @param {gdjs.RuntimeScene} runtimeScene The runtimeScene owning the object + */ +gdjs.RuntimeBehavior.prototype.stepPreEvents = function(runtimeScene) { + if ( this._activated ) { + var profiler = runtimeScene.getProfiler(); + if (profiler) profiler.begin(this.name); + + this.doStepPreEvents(runtimeScene); + + if (profiler) profiler.end(this.name); + } +}; + +/** + * Called at each frame after events. Call doStepPostEvents.
+ * Behaviors writers: Please do not redefine this method. Redefine doStepPreEvents instead. + * @param {gdjs.RuntimeScene} runtimeScene The runtimeScene owning the object + */ +gdjs.RuntimeBehavior.prototype.stepPostEvents = function(runtimeScene) { + if ( this._activated ) { + var profiler = runtimeScene.getProfiler(); + if (profiler) profiler.begin(this.name); + + this.doStepPostEvents(runtimeScene); + + if (profiler) profiler.end(this.name); + } +}; + +/** + * De/Activate the behavior + * @param {boolean} enable true to enable the behavior, false to disable it + */ +gdjs.RuntimeBehavior.prototype.activate = function(enable) { + if ( enable === undefined ) enable = true; + if ( !this._activated && enable ) { + this._activated = true; + this.onActivate(); + } + else if ( this._activated && !enable ) { + this._activated = false; + this.onDeActivate(); + } +}; + +/** + * Reimplement this to do extra work when the behavior is created (i.e: an + * object using it was created), after the object is fully initialized (so + * you can use `this.owner` without risk). + */ +gdjs.RuntimeBehavior.prototype.onCreated = function() { + +}; + +/** + * Return true if the behavior is activated + */ +gdjs.RuntimeBehavior.prototype.activated = function() { + return this._activated; +}; + +/** + * Reimplement this method to do extra work when the behavior is activated (after + * it has been deactivated, see `onDeActivate`). + */ +gdjs.RuntimeBehavior.prototype.onActivate = function() { + +}; + +/** + * Reimplement this method to do extra work when the behavior is deactivated. + */ +gdjs.RuntimeBehavior.prototype.onDeActivate = function() { + +}; + +/** + * This method is called each tick before events are done. + * @param {gdjs.RuntimeScene} runtimeScene The runtimeScene owning the object + */ +gdjs.RuntimeBehavior.prototype.doStepPreEvents = function(runtimeScene) { + +}; + +/** + * This method is called each tick after events are done. + * @param {gdjs.RuntimeScene} runtimeScene The runtimeScene owning the object + */ +gdjs.RuntimeBehavior.prototype.doStepPostEvents = function(runtimeScene) { + +} + +/** + * This method is called when the owner of the behavior + * is being removed from the scene and is about to be destroyed/reused later, + */ +gdjs.RuntimeBehavior.prototype.onDestroy = function() { + +}; + +gdjs.registerBehavior("", gdjs.RuntimeBehavior); diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/runtimegame.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/runtimegame.js new file mode 100644 index 0000000..0219e66 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/runtimegame.js @@ -0,0 +1,528 @@ +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * Represents a game being played. + * + * @memberof gdjs + * @class RuntimeGame + * @param {Object} data The object (usually stored in data.json) containing the full project data + * @param {Object=} spec Optional object for specifiying additional options: {forceFullscreen: ...} + */ +gdjs.RuntimeGame = function(data, spec) { + spec = spec || {}; + + this._variables = new gdjs.VariablesContainer(data.variables); + this._data = data; + this._imageManager = new gdjs.ImageManager( + data.resources ? data.resources.resources : undefined + ); + this._soundManager = new gdjs.SoundManager( + data.resources ? data.resources.resources : undefined + ); + this._fontManager = new gdjs.FontManager( + data.resources ? data.resources.resources : undefined + ); + this._jsonManager = new gdjs.JsonManager( + data.resources ? data.resources.resources : undefined + ); + this._maxFPS = data ? parseInt(data.properties.maxFPS, 10) : 60; + this._minFPS = data ? parseInt(data.properties.minFPS, 10) : 15; + + this._gameResolutionWidth = data.properties.windowWidth; + this._gameResolutionHeight = data.properties.windowHeight; + this._originalWidth = this._gameResolutionWidth; + this._originalHeight = this._gameResolutionHeight; + this._resizeMode = data.properties.sizeOnStartupMode; + this._adaptGameResolutionAtRuntime = + data.properties.adaptGameResolutionAtRuntime; + /** @type {string} */ + this._scaleMode = data.properties.scaleMode || 'linear'; + this._renderer = new gdjs.RuntimeGameRenderer( + this, + spec.forceFullscreen || false + ); + + //Game loop management (see startGameLoop method) + this._sceneStack = new gdjs.SceneStack(this); + this._notifyScenesForGameResolutionResize = false; // When set to true, the scenes are notified that gamre resolution size changed. + this._paused = false; + + //Inputs : + this._inputManager = new gdjs.InputManager(); + + //Allow to specify an external layout to insert in the first scene: + this._injectExternalLayout = spec.injectExternalLayout || ''; + + //Optional client to connect to a debugger: + this._debuggerClient = gdjs.DebuggerClient + ? new gdjs.DebuggerClient(this) + : null; +}; + +gdjs.RuntimeGame.prototype.getRenderer = function() { + return this._renderer; +}; + +/** + * Get the variables of the RuntimeGame. + * @return {gdjs.VariablesContainer} The global variables + */ +gdjs.RuntimeGame.prototype.getVariables = function() { + return this._variables; +}; + +/** + * Get the gdjs.SoundManager of the RuntimeGame. + * @return {gdjs.SoundManager} The sound manager. + */ +gdjs.RuntimeGame.prototype.getSoundManager = function() { + return this._soundManager; +}; + +/** + * Get the gdjs.ImageManager of the RuntimeGame. + * @return {gdjs.ImageManager} The image manager. + */ +gdjs.RuntimeGame.prototype.getImageManager = function() { + return this._imageManager; +}; + +/** + * Get the gdjs.FontManager of the RuntimeGame. + * @return {gdjs.FontManager} The font manager. + */ +gdjs.RuntimeGame.prototype.getFontManager = function() { + return this._fontManager; +}; + +/** + * Get the input manager of the game, storing mouse, keyboard + * and touches states. + * @return {gdjs.InputManager} The input manager owned by the game + */ +gdjs.RuntimeGame.prototype.getInputManager = function() { + return this._inputManager; +}; + +/** + * Get the JSON manager of the game, used to load JSON from game + * resources. + * @return {gdjs.JsonManager} The json manager for the game + */ +gdjs.RuntimeGame.prototype.getJsonManager = function() { + return this._jsonManager; +}; + +/** + * Get the object containing the game data + * @return {Object} The object associated to the game. + */ +gdjs.RuntimeGame.prototype.getGameData = function() { + return this._data; +}; + +/** + * Get the data associated to a scene. + * + * @param {string} sceneName The name of the scene. If not defined, the first scene will be returned. + * @return {?Object} The data associated to the scene. + */ +gdjs.RuntimeGame.prototype.getSceneData = function(sceneName) { + var scene = undefined; + for (var i = 0, len = this._data.layouts.length; i < len; ++i) { + var sceneData = this._data.layouts[i]; + + if (sceneName === undefined || sceneData.name === sceneName) { + scene = sceneData; + break; + } + } + + if (scene === undefined) + console.warn('The game has no scene called "' + sceneName + '"'); + + return scene; +}; + +/** + * Check if a scene exists + * + * @param {string=} sceneName The name of the scene to search. + * @return {boolean} true if the scene exists. If sceneName is undefined, true if the game has a scene. + */ +gdjs.RuntimeGame.prototype.hasScene = function(sceneName) { + var isTrue = false; + for (var i = 0, len = this._data.layouts.length; i < len; ++i) { + var sceneData = this._data.layouts[i]; + + if (sceneName === undefined || sceneData.name == sceneName) { + isTrue = true; + break; + } + } + + return isTrue; +}; + +/** + * Get the data associated to an external layout. + * + * @param {string} name The name of the external layout. + * @return {?Object} The data associated to the external layout or null if not found. + */ +gdjs.RuntimeGame.prototype.getExternalLayoutData = function(name) { + var externalLayout = null; + for (var i = 0, len = this._data.externalLayouts.length; i < len; ++i) { + var layoutData = this._data.externalLayouts[i]; + + if (layoutData.name === name) { + externalLayout = layoutData; + break; + } + } + + return externalLayout; +}; + +/** + * Get the data representing all the global objects of the game. + * @return {Object} The data associated to the global objects. + */ +gdjs.RuntimeGame.prototype.getInitialObjectsData = function() { + return this._data.objects || []; +}; + +/** + * Get the original width of the game, as set on the startup of the game. + * + * This is guaranteed to never change, even if the size of the game is changed afterwards. + */ +gdjs.RuntimeGame.prototype.getOriginalWidth = function() { + return this._originalWidth; +}; + +/** + * Get the original height of the game, as set on the startup of the game. + * + * This is guaranteed to never change, even if the size of the game is changed afterwards. + */ +gdjs.RuntimeGame.prototype.getOriginalHeight = function() { + return this._originalHeight; +}; + +/** + * Get the game resolution (the size at which the game is played and rendered) width. + * @returns {number} The game resolution width, in pixels. + */ +gdjs.RuntimeGame.prototype.getGameResolutionWidth = function() { + return this._gameResolutionWidth; +}; + +/** + * Get the game resolution (the size at which the game is played and rendered) height. + * @returns {number} The game resolution height, in pixels. + */ +gdjs.RuntimeGame.prototype.getGameResolutionHeight = function() { + return this._gameResolutionHeight; +}; + +/** + * Change the game resolution. + * + * @param {number} width The new width + * @param {number} height The new height + */ +gdjs.RuntimeGame.prototype.setGameResolutionSize = function(width, height) { + this._gameResolutionWidth = width; + this._gameResolutionHeight = height; + + if (this._adaptGameResolutionAtRuntime) { + if ( + gdjs.RuntimeGameRenderer && + gdjs.RuntimeGameRenderer.getWindowInnerWidth && + gdjs.RuntimeGameRenderer.getWindowInnerHeight + ) { + var windowInnerWidth = gdjs.RuntimeGameRenderer.getWindowInnerWidth(); + var windowInnerHeight = gdjs.RuntimeGameRenderer.getWindowInnerHeight(); + + // Enlarge either the width or the eight to fill the inner window space. + var width = this._gameResolutionWidth; + var height = this._gameResolutionHeight; + if (this._resizeMode === 'adaptWidth') { + this._gameResolutionWidth = + (this._gameResolutionHeight * windowInnerWidth) / windowInnerHeight; + } else if (this._resizeMode === 'adaptHeight') { + this._gameResolutionHeight = + (this._gameResolutionWidth * windowInnerHeight) / windowInnerWidth; + } + } + } else { + // Don't alter the game resolution. The renderer + // will maybe adapt the size of the canvas or whatever is used to render the + // game in the window, but this does not change the "game resolution". + } + + // Notify the renderer that game resolution changed (so that the renderer size + // can be updated, and maybe other things like the canvas size), and let the + // scenes know too. + this._renderer.updateRendererSize(); + this._notifyScenesForGameResolutionResize = true; +}; + +/** + * Set if the width or the height of the game resolution + * should be changed to fit the game window - or if the game + * resolution should not be updated automatically. + * + * @param {string} resizeMode Either "" (don't change game resolution), "adaptWidth" or "adaptHeight". + */ +gdjs.RuntimeGame.prototype.setGameResolutionResizeMode = function(resizeMode) { + this._resizeMode = resizeMode; + this._forceGameResolutionUpdate(); +}; + +/** + * Returns if the width or the height of the game resolution + * should be changed to fit the game window - or if the game + * resolution should not be updated automatically (empty string). + * + * @returns {string} Either "" (don't change game resolution), "adaptWidth" or "adaptHeight". + */ +gdjs.RuntimeGame.prototype.getGameResolutionResizeMode = function() { + return this._resizeMode; +}; + +/** + * Set if the game resolution should be automatically adapted + * when the game window or screen size change. This will only + * be the case if the game resolution resize mode is + * configured to adapt the width or the height of the game. + * @param {boolean} enable true to change the game resolution according to the window/screen size. + */ +gdjs.RuntimeGame.prototype.setAdaptGameResolutionAtRuntime = function(enable) { + this._adaptGameResolutionAtRuntime = enable; + this._forceGameResolutionUpdate(); +}; + +/** + * Returns if the game resolution should be automatically adapted + * when the game window or screen size change. This will only + * be the case if the game resolution resize mode is + * configured to adapt the width or the height of the game. + * @returns {boolean} true if the game resolution is automatically changed according to the window/screen size. + */ +gdjs.RuntimeGame.prototype.getAdaptGameResolutionAtRuntime = function() { + return this._adaptGameResolutionAtRuntime; +}; + +/** + * Return the minimal fps that must be guaranteed by the game + * (otherwise, game is slowed down). + */ +gdjs.RuntimeGame.prototype.getMinimalFramerate = function() { + return this._minFPS; +}; + +/** + * Return the scale mode of the game ("linear" or "nearest"). + */ +gdjs.RuntimeGame.prototype.getScaleMode = function() { + return this._scaleMode; +}; + +/** + * Set or unset the game as paused. + * When paused, the game won't step and will be freezed. Useful for debugging. + * @param {boolean} enable true to pause the game, false to unpause + */ +gdjs.RuntimeGame.prototype.pause = function(enable) { + this._paused = enable; +}; + +/** + * Load all assets, displaying progress in renderer. + */ +gdjs.RuntimeGame.prototype.loadAllAssets = function( + callback, + progressCallback +) { + var loadingScreen = new gdjs.LoadingScreenRenderer( + this.getRenderer(), + this._data.properties.loadingScreen + ); + var allAssetsTotal = this._data.resources.resources.length; + + var that = this; + this._imageManager.loadTextures( + function(count, total) { + var percent = Math.floor((count / allAssetsTotal) * 100); + loadingScreen.render(percent); + if (progressCallback) progressCallback(percent); + }, + function(texturesTotalCount) { + that._soundManager.preloadAudio( + function(count, total) { + var percent = Math.floor( + ((texturesTotalCount + count) / allAssetsTotal) * 100 + ); + loadingScreen.render(percent); + if (progressCallback) progressCallback(percent); + }, + function(audioTotalCount) { + that._fontManager.loadFonts( + function(count, total) { + var percent = Math.floor( + ((texturesTotalCount + audioTotalCount + count) / + allAssetsTotal) * + 100 + ); + loadingScreen.render(percent); + if (progressCallback) progressCallback(percent); + }, + function(fontTotalCount) { + that._jsonManager.preloadJsons( + function(count, total) { + var percent = Math.floor( + ((texturesTotalCount + + audioTotalCount + + fontTotalCount + + count) / + allAssetsTotal) * + 100 + ); + loadingScreen.render(percent); + if (progressCallback) progressCallback(percent); + }, + function() { + loadingScreen.unload(); + callback(); + } + ); + } + ); + } + ); + } + ); +}; + +/** + * Start the game loop, to be called once assets are loaded. + */ +gdjs.RuntimeGame.prototype.startGameLoop = function() { + if (!this.hasScene()) { + console.log('The game has no scene.'); + return; + } + + this._forceGameResolutionUpdate(); + + //Load the first scene + var firstSceneName = this._data.firstLayout; + this._sceneStack.push( + this.hasScene(firstSceneName) ? firstSceneName : this.getSceneData().name, + this._injectExternalLayout + ); + + //Uncomment to profile the first x frames of the game. + // var x = 500; + // var startTime = Date.now(); + // console.profile("Stepping for " + x + " frames") + // for(var i = 0; i < x; ++i) { + // this._sceneStack.step(16); + // } + // console.profileEnd(); + // var time = Date.now() - startTime; + // console.log("Took", time, "ms"); + // return; + + //The standard game loop + var that = this; + var accumulatedElapsedTime = 0; + this._renderer.startGameLoop(function(lastCallElapsedTime) { + if (that._paused) return true; + + // Skip the frame if we rendering frames too fast + accumulatedElapsedTime += lastCallElapsedTime; + if ( + that._maxFPS > 0 && + 1000.0 / accumulatedElapsedTime > that._maxFPS + 7 + ) { + // Only skip frame if the framerate is 7 frames above the maximum framerate. + // Most browser/engines will try to run at slightly more than 60 frames per second. + // If game is set to have a maximum FPS to 60, then one out of two frames will be dropped. + // Hence, we use a 7 frames margin to ensure that we're not skipping frames too much. + return true; + } + var elapsedTime = accumulatedElapsedTime; + accumulatedElapsedTime = 0; + + //Manage resize events. + if (that._notifyScenesForGameResolutionResize) { + that._sceneStack.onGameResolutionResized(); + that._notifyScenesForGameResolutionResize = false; + } + + //Render and step the scene. + if (that._sceneStack.step(elapsedTime)) { + that.getInputManager().onFrameEnded(); + return true; + } + + return false; + }); +}; + +/** + * Called by the game renderer when the window containing the game + * has changed size (this can result from a resize of the window, + * but also other factors like a device orientation change on mobile). + */ +gdjs.RuntimeGame.prototype.onWindowInnerSizeChanged = function() { + this._forceGameResolutionUpdate(); +}; + +/** + * Enlarge/reduce the width (or the height) of the game to fill the inner window. + */ +gdjs.RuntimeGame.prototype._forceGameResolutionUpdate = function() { + this.setGameResolutionSize( + this._gameResolutionWidth, + this._gameResolutionHeight + ); +}; + +/** + * Start a profiler for the currently running scene. + * @param {Function} onProfilerStopped Function to be called when the profiler is stopped. Will be passed the profiler as argument. + */ +gdjs.RuntimeGame.prototype.startCurrentSceneProfiler = function( + onProfilerStopped +) { + var currentScene = this._sceneStack.getCurrentScene(); + if (!currentScene) return false; + + currentScene.startProfiler(onProfilerStopped); + return true; +}; + +/** + * Stop the profiler for the currently running scene. + */ +gdjs.RuntimeGame.prototype.stopCurrentSceneProfiler = function() { + var currentScene = this._sceneStack.getCurrentScene(); + if (!currentScene) return null; + + currentScene.stopProfiler(); +}; + +/** + * Return true if a scene was loaded, false otherwise (i.e: game not yet started). + */ +gdjs.RuntimeGame.prototype.wasFirstSceneLoaded = function() { + return this._sceneStack.wasFirstSceneLoaded(); +} diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/runtimeobject.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/runtimeobject.js new file mode 100644 index 0000000..1c97940 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/runtimeobject.js @@ -0,0 +1,1572 @@ +// @ts-check + +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * @typedef {Object} ObjectData Object containing initial properties for all objects extending {@link gdjs.RuntimeObject}. + * @property {string} name The name of the object. During the game, objects can be queried by their name (see {@link gdjs.RuntimeScene.prototype.getObjects} for example). + * @property {string} type The object type. + * @property {Array} variables The list of default variables. + * @property {Array} behaviors The list of default behaviors. + */ + +/** + * @typedef {Object} AABB An axis-aligned bounding box. Used to represents a box around an object for example. + * @property {Array} min The [x,y] coordinates of the top left point + * @property {Array} max The [x,y] coordinates of the bottom right point + */ + +/** + * RuntimeObject represents an object being used on a RuntimeScene. + * + * The constructor can be called on an already existing RuntimeObject: + * In this case, the constructor will try to reuse as much already existing members + * as possible (recycling). + * + * However, you should not be calling the constructor on an already existing object + * which is not a RuntimeObject. + * + * A `gdjs.RuntimeObject` should not be instantiated directly, always a child class + * (because gdjs.RuntimeObject don't call onCreated at the end of its constructor). + * + * @memberOf gdjs + * @name RuntimeObject + * @class + * @param {gdjs.RuntimeScene} runtimeScene The {@link gdjs.RuntimeScene} the object belongs to. + * @param {ObjectData} objectData The initial properties of the object. + */ +gdjs.RuntimeObject = function(runtimeScene, objectData) { + /** + * @protected + * @type {string} + */ + this.name = objectData.name || ""; + /** + * @protected + * @type {string} + */ + this.type = objectData.type || ""; + /** + * @protected + * @type {number} + */ + this.x = 0; + /** + * @protected + * @type {number} + */ + this.y = 0; + /** + * @protected + * @type {number} + */ + this.angle = 0; + /** + * @protected + * @type {number} + */ + this.zOrder = 0; + /** + * @protected + * @type {boolean} + */ + this.hidden = false; + /** + * @protected + * @type {string} + */ + this.layer = ""; + /** + * @type {number} + * @protected + */ + this._nameId = gdjs.RuntimeObject.getNameIdentifier(this.name); + /** + * @type {boolean} + * @protected + */ + this._livingOnScene = true; + /** + * @type {number} + * @protected + */ + this.id = runtimeScene.createNewUniqueId(); + /** + * @type {gdjs.RuntimeScene} + */ + this._runtimeScene = runtimeScene; + + //Hit boxes: + if ( this._defaultHitBoxes === undefined ) { + /** + * @type {Array} + * @protected + */ + this._defaultHitBoxes = []; + this._defaultHitBoxes.push(gdjs.Polygon.createRectangle(0,0)); + } + /** + * @type {Array} + * @protected + */ + this.hitBoxes = this._defaultHitBoxes; + /** + * @type {boolean} + * @protected + */ + this.hitBoxesDirty = true; + if ( this.aabb === undefined ) + /** + * @type {AABB} + * @protected + */ + this.aabb = { min:[0,0], max:[0,0] }; + else { + this.aabb.min[0] = 0; this.aabb.min[1] = 0; + this.aabb.max[0] = 0; this.aabb.max[1] = 0; + } + + //Variables: + if ( !this._variables ) + /** + * @type {gdjs.VariablesContainer} + * @protected + */ + this._variables = new gdjs.VariablesContainer(objectData ? objectData.variables : undefined); + else + gdjs.VariablesContainer.call(this._variables, objectData ? objectData.variables : undefined); + + //Forces: + if ( this._forces === undefined ) + /** + * @type {Array} + * @protected + */ + this._forces = []; + else + this.clearForces(); + + if (this._averageForce === undefined) this._averageForce = new gdjs.Force(0,0,0); + + //Behaviors: + if (this._behaviors === undefined) + /** + * Contains the behaviors of the object. + * @type {Array} + * @protected + */ + this._behaviors = []; + + if (this._behaviorsTable === undefined) + //TODO: add typing to Hashtable. + /** + * @type {Hashtable} + * @protected + */ + this._behaviorsTable = new Hashtable(); //Also contains the behaviors: Used when a behavior is accessed by its name ( see getBehavior ). + else + this._behaviorsTable.clear(); + + for(var i = 0, len = objectData.behaviors.length;i typing to Hashtable. + /** + * @type {Hashtable} + * @protected + */ + this._timers = new Hashtable(); + else + this._timers.clear(); +}; + +/** + * Table containing the id corresponding to an object name. Do not use directly or modify. + * @static + * @private + */ +gdjs.RuntimeObject._identifiers = gdjs.RuntimeObject._identifiers || new Hashtable(); + +/** + * The next available unique identifier for an object. Do not use directly or modify. + * @static + * @private + */ +gdjs.RuntimeObject._newId = (gdjs.RuntimeObject._newId || 0); + +/** + * Global container for unused forces, avoiding recreating forces each tick. + * @static + * @private + */ +gdjs.RuntimeObject.forcesGarbage = []; + +//Common members functions related to the object and its runtimeScene : + +/** + * To be called by the child classes in their constructor, at the very end. + * Notify the behaviors that they have been constructed (this must be done when + * the object is ready, otherwise behaviors can do operations on the object which + * could be not initialized yet). + * + * If you redefine this function, **make sure to call the original method** + * (`gdjs.RuntimeObject.prototype.onCreated.call(this);`). + */ +gdjs.RuntimeObject.prototype.onCreated = function() { + for(var i =0;i + * Note that common properties (position, angle, z order...) have already been setup. + * + * @param initialInstanceData The data of the initial instance. + */ +gdjs.RuntimeObject.prototype.extraInitializationFromInitialInstance = function(initialInstanceData) { + //Nothing to do. +}; + +/** + * Remove an object from a scene. + * + * Do not change/redefine this method. Instead, redefine the onDestroyFromScene method. + * @param {gdjs.RuntimeScene} runtimeScene The RuntimeScene owning the object. + */ +gdjs.RuntimeObject.prototype.deleteFromScene = function(runtimeScene) { + if ( this._livingOnScene ) { + runtimeScene.markObjectForDeletion(this); + this._livingOnScene = false; + } +}; + +/** + * Called when the object is destroyed (because it is removed from a scene or the scene + * is being unloaded). If you redefine this function, **make sure to call the original method** + * (`gdjs.RuntimeObject.prototype.onDestroyFromScene.call(this, runtimeScene);`). + * + * @param {gdjs.RuntimeScene} runtimeScene The scene owning the object. + */ +gdjs.RuntimeObject.prototype.onDestroyFromScene = function(runtimeScene) { + var theLayer = runtimeScene.getLayer(this.layer); + theLayer.getRenderer().removeRendererObject(this.getRendererObject()); + + for(var j = 0, lenj = this._behaviors.length;j + * The identifier is set by the runtimeScene owning the object.
+ * You can also use the id property (this._object.id) for increased efficiency instead of + * calling this method. + * + * @return {number} The object identifier + */ +gdjs.RuntimeObject.prototype.getUniqueId = function() { + return this.id; +} +; +/** + * Set the position of the object. + * + * @param {number} x The new X position + * @param {number} y The new Y position + */ +gdjs.RuntimeObject.prototype.setPosition = function(x,y) { + this.setX(x); + this.setY(y); +}; + +/** + * Set the X position of the object. + * + * @param {number} x The new X position + */ +gdjs.RuntimeObject.prototype.setX = function(x) { + if ( x === this.x ) return; + + this.x = x; + this.hitBoxesDirty = true; +}; + +/** + * Get the X position of the object. + * + * @return {number} The X position of the object + */ +gdjs.RuntimeObject.prototype.getX = function() { + return this.x; +}; + +/** + * Set the Y position of the object. + * + * @param {number} y The new Y position + */ +gdjs.RuntimeObject.prototype.setY = function(y) { + if ( y === this.y ) return; + + this.y = y; + this.hitBoxesDirty = true; +}; + +/** + * Get the Y position of the object. + * + * @return {number} The Y position of the object + */ +gdjs.RuntimeObject.prototype.getY = function() { + return this.y; +}; + +/** + * Get the X position of the rendered object. + * + * For most objects, this will returns the same value as getX(). But if the object + * has an origin that is not the same as the point (0,0) of the object displayed, + * getDrawableX will differ. + * + * @return {number} The X position of the rendered object. + */ +gdjs.RuntimeObject.prototype.getDrawableX = function() { + return this.getX(); +}; + +/** + * Get the Y position of the rendered object. + * + * For most objects, this will returns the same value as getY(). But if the object + * has an origin that is not the same as the point (0,0) of the object displayed, + * getDrawableY will differ. + * + * @return {number} The Y position of the rendered object. + */ +gdjs.RuntimeObject.prototype.getDrawableY = function() { + return this.getY(); +}; + + +gdjs.RuntimeObject.prototype.rotateTowardPosition = function(x, y, speed, scene) { + this.rotateTowardAngle(Math.atan2(y - (this.getDrawableY() + this.getCenterY()), + x - (this.getDrawableX() + this.getCenterX()))*180/Math.PI, speed, scene); +}; + +gdjs.RuntimeObject.prototype.rotateTowardAngle = function(angle, speed, runtimeScene) { + if (speed === 0) { + this.setAngle(angle); + return; + } + + var angularDiff = gdjs.evtTools.common.angleDifference(this.getAngle(), angle); + var diffWasPositive = angularDiff >= 0; + + var newAngle = this.getAngle() + (diffWasPositive ? -1.0 : 1.0) + * speed * this.getElapsedTime(runtimeScene) / 1000; + // @ts-ignore + if (gdjs.evtTools.common.angleDifference(newAngle, angle) > 0 ^ diffWasPositive) + newAngle = angle; + this.setAngle(newAngle); + + if (this.getAngle() !== newAngle) //Objects like sprite in 8 directions does not handle small increments... + this.setAngle(angle); //...so force them to be in the path angle anyway. +}; + +/** + * Rotate the object at the given speed + * + * @param {number} speed The speed, in degrees per second. + * @param {gdjs.RuntimeScene} runtimeScene The scene where the object is displayed. + */ +gdjs.RuntimeObject.prototype.rotate = function(speed, runtimeScene) { + this.setAngle(this.getAngle() + speed * this.getElapsedTime(runtimeScene) / 1000); +}; + +/** + * Set the angle of the object. + * + * @param {number} angle The new angle of the object + */ +gdjs.RuntimeObject.prototype.setAngle = function(angle) { + if ( this.angle === angle ) return; + + this.angle = angle; + this.hitBoxesDirty = true; +}; + +/** + * Get the rotation of the object. + * + * @return {number} The rotation of the object, in degrees. + */ +gdjs.RuntimeObject.prototype.getAngle = function() { + return this.angle; +}; + +/** + * Set the layer of the object. + * + * @param {string} layer The new layer of the object + */ +gdjs.RuntimeObject.prototype.setLayer = function(layer) { + if (layer === this.layer) return; + var oldLayer = this._runtimeScene.getLayer(this.layer); + + this.layer = layer; + var newLayer = this._runtimeScene.getLayer(this.layer); + + var rendererObject = this.getRendererObject(); + oldLayer.getRenderer().removeRendererObject(rendererObject); + newLayer.getRenderer().addRendererObject(rendererObject, this.zOrder); +}; + +/** + * Get the layer of the object. + * + * @return {string} The layer of the object + */ +gdjs.RuntimeObject.prototype.getLayer = function() { + return this.layer; +}; + +/** + * Return true if the object is on the specified layer + * + * @param {string} layer The layer to be tested. + * @return {boolean} true if the object is on the specified layer + */ +gdjs.RuntimeObject.prototype.isOnLayer = function(layer) { + return this.layer === layer; +}; + + +/** + * Set the Z order of the object. + * + * @param {number} z The new Z order position of the object + */ +gdjs.RuntimeObject.prototype.setZOrder = function(z) { + if ( z === this.zOrder ) return; + this.zOrder = z; + + if ( this.getRendererObject() ) { + var theLayer = this._runtimeScene.getLayer(this.layer); + theLayer.getRenderer().changeRendererObjectZOrder(this.getRendererObject(), z); + } +}; + +/** + * Get the Z order of the object. + * + * @return {number} The Z order of the object + */ +gdjs.RuntimeObject.prototype.getZOrder = function() { + return this.zOrder; +}; + +/** + * Get the container of the object variables + * @return {gdjs.VariablesContainer} The variables of the object + */ +gdjs.RuntimeObject.prototype.getVariables = function() { + return this._variables; +}; + +/** + * Get the value of a variable considered as a number. Equivalent of variable.getAsNumber() + * @param {gdjs.Variable} variable The variable to be accessed + * @return {number} The value of the specified variable + * @static + */ +gdjs.RuntimeObject.getVariableNumber = function(variable) { + return variable.getAsNumber(); +}; +gdjs.RuntimeObject.prototype.getVariableNumber = gdjs.RuntimeObject.getVariableNumber; + +/** + * Return the variable passed as argument without any change. + * Only for usage by events. + * + * @param {gdjs.Variable} variable The variable to be accessed + * @return The specified variable + * @static + */ +gdjs.RuntimeObject.returnVariable = function(variable) { + return variable; +} +gdjs.RuntimeObject.prototype.returnVariable = gdjs.RuntimeObject.returnVariable; + +/** + * Get the value of a variable considered as a string. Equivalent of variable.getAsString() + * @param variable The variable to be accessed + * @return The string of the specified variable + * @static + */ +gdjs.RuntimeObject.getVariableString = function(variable) { + return variable.getAsString(); +}; +gdjs.RuntimeObject.prototype.getVariableString = gdjs.RuntimeObject.getVariableString; + +/** + * Get the number of children from a variable + * @param variable The variable to be accessed + * @return The number of children + * @static + */ +gdjs.RuntimeObject.getVariableChildCount = function(variable) { + if (variable.isStructure() == false) return 0; + return Object.keys(variable.getAllChildren()).length; +}; + +/** + * Shortcut to set the value of a variable considered as a number + * @param variable The variable to be changed + * @param {number} newValue The value to be set + */ +gdjs.RuntimeObject.setVariableNumber = function(variable, newValue) { + variable.setNumber(newValue); +}; +gdjs.RuntimeObject.prototype.setVariableNumber = gdjs.RuntimeObject.setVariableNumber; + +/** + * Shortcut to set the value of a variable considered as a string + * @param variable The variable to be changed + * @param newValue {String} The value to be set + */ +gdjs.RuntimeObject.setVariableString = function(variable, newValue) { + variable.setString(newValue); +}; +gdjs.RuntimeObject.prototype.setVariableString = gdjs.RuntimeObject.setVariableString; + +/** + * @static + * @private + * @param {gdjs.Variable} variable The variable to be tested + * @param {string} childName The name of the child + */ +gdjs.RuntimeObject.variableChildExists = function(variable, childName) { + return variable.hasChild(childName); +}; +gdjs.RuntimeObject.prototype.variableChildExists = gdjs.RuntimeObject.variableChildExists; + +/** + * @static + * @private + * @param {gdjs.Variable} variable The variable to be changed + * @param {string} childName The name of the child + */ +gdjs.RuntimeObject.variableRemoveChild = function(variable, childName) { + return variable.removeChild(childName); +}; +gdjs.RuntimeObject.prototype.variableRemoveChild = gdjs.RuntimeObject.variableRemoveChild; + +/** + * @static + * @private + * @param {gdjs.Variable} variable The variable to be cleared + */ +gdjs.RuntimeObject.variableClearChildren = function(variable) { + variable.clearChildren(); +}; +gdjs.RuntimeObject.prototype.variableClearChildren = gdjs.RuntimeObject.variableClearChildren; + +/** + * Shortcut to test if a variable exists for the object. + * @param {string} name The variable to be tested + * @return {boolean} true if the variable exists. + */ +gdjs.RuntimeObject.prototype.hasVariable = function(name) { + return this._variables.has(name); +}; + +/** + * Hide (or show) the object. + * @param {boolean} enable Set it to true to hide the object, false to show it. + */ +gdjs.RuntimeObject.prototype.hide = function(enable) { + if (enable === undefined) enable = true; + this.hidden = enable; +}; + +/** + * Return true if the object is not hidden. + * + * Note: This is unrelated to the actual visibility of the objec on the screen. + * For this, see `getVisibilityAABB` to get the bounding boxes of the object as displayed + * on the scene. + * + * @return {boolean} true if the object is not hidden. + */ +gdjs.RuntimeObject.prototype.isVisible = function() { + return !this.hidden; +}; + +/** + * Return true if the object is hidden. + * @return {boolean} true if the object is hidden. + */ +gdjs.RuntimeObject.prototype.isHidden = function() { + return this.hidden; +}; + +/** + * Return the width of the object. + * @return {number} The width of the object + */ +gdjs.RuntimeObject.prototype.getWidth = function() { + return 0; +}; + +/** + * Return the width of the object. + * @return {number} The height of the object + */ +gdjs.RuntimeObject.prototype.getHeight = function() { + return 0; +}; + +/** + * Return the X position of the object center, **relative to the object X position** (`getDrawableX`). + * @return {number} the X position of the object center, relative to `getDrawableX()`. + */ +gdjs.RuntimeObject.prototype.getCenterX = function() { + return this.getWidth() / 2; +}; + +/** + * Return the Y position of the object center, **relative to the object position** (`getDrawableY`). + * @return {number} the Y position of the object center, relative to `getDrawableY()`. + */ +gdjs.RuntimeObject.prototype.getCenterY = function() { + return this.getHeight() / 2; +}; + +//Forces : + +/** + * Get a force from the garbage, or create a new force is garbage is empty.
+ * To be used each time a force is created so as to avoid temporaries objects. + * + * @private + * @param {number} x The x coordinates of the force + * @param {number} y The y coordinates of the force + * @param {number} multiplier Set the force multiplier + */ +gdjs.RuntimeObject.prototype._getRecycledForce = function(x, y, multiplier) { + if ( gdjs.RuntimeObject.forcesGarbage.length === 0 ) + return new gdjs.Force(x, y, multiplier); + else { + var recycledForce = gdjs.RuntimeObject.forcesGarbage.pop(); + recycledForce.setX(x); + recycledForce.setY(y); + recycledForce.setMultiplier(multiplier); + return recycledForce; + } +}; + +/** + * Add a force to the object to move it. + * @param {number} x The x coordinates of the force + * @param {number} y The y coordinates of the force + * @param {number} multiplier Set the force multiplier + */ +gdjs.RuntimeObject.prototype.addForce = function(x,y, multiplier) { + this._forces.push(this._getRecycledForce(x, y, multiplier)); +}; + +/** + * Add a force using polar coordinates. + * @param {number} angle The angle of the force, in degrees. + * @param {number} len The length of the force, in pixels. + * @param {number} multiplier Set the force multiplier + */ +gdjs.RuntimeObject.prototype.addPolarForce = function(angle, len, multiplier) { + var angleInRadians = angle/180*3.14159; //TODO: Benchmark with Math.PI + var forceX = Math.cos(angleInRadians)*len; + var forceY = Math.sin(angleInRadians)*len; + + this._forces.push(this._getRecycledForce(forceX, forceY, multiplier)); +}; + +/** + * Add a force oriented toward a position + * @param {number} x The target x position + * @param {number} y The target y position + * @param {number} len The force length, in pixels. + * @param {number} multiplier Set the force multiplier + */ +gdjs.RuntimeObject.prototype.addForceTowardPosition = function(x,y, len, multiplier) { + + var angle = Math.atan2(y - (this.getDrawableY()+this.getCenterY()), + x - (this.getDrawableX()+this.getCenterX())); + + var forceX = Math.cos(angle)*len; + var forceY = Math.sin(angle)*len; + this._forces.push(this._getRecycledForce(forceX, forceY, multiplier)); +}; + +/** + * Add a force oriented toward another object.
+ * (Shortcut for addForceTowardPosition) + * @param {gdjs.RuntimeObject} object The target object + * @param {number} len The force length, in pixels. + * @param {number} multiplier Set the force multiplier + */ +gdjs.RuntimeObject.prototype.addForceTowardObject = function(object, len, multiplier) { + if ( object == null ) return; + + this.addForceTowardPosition(object.getDrawableX() + object.getCenterX(), + object.getDrawableY() + object.getCenterY(), + len, multiplier); +}; + +/** + * Deletes all forces applied on the object + */ +gdjs.RuntimeObject.prototype.clearForces = function() { + gdjs.RuntimeObject.forcesGarbage.push.apply(gdjs.RuntimeObject.forcesGarbage, this._forces); + this._forces.length = 0; +}; + +/** + * Return true if no forces are applied on the object. + * @return {boolean} true if no forces are applied on the object. + */ +gdjs.RuntimeObject.prototype.hasNoForces = function() { + return this._forces.length === 0; +}; + +/** + * Called once a step by runtimeScene to update forces magnitudes and + * remove null ones. + */ +gdjs.RuntimeObject.prototype.updateForces = function(elapsedTime) { + for(var i = 0;i + * The default implementation returns a basic bouding box based the size (getWidth and + * getHeight) and the center point of the object (getCenterX and getCenterY). + * + * You should probably redefine updateHitBoxes instead of this function. + * + * @return {Array} An array composed of polygon. + */ +gdjs.RuntimeObject.prototype.getHitBoxes = function() { + //Avoid a naive implementation requiring to recreate temporaries each time + //the function is called: + //(var rectangle = gdjs.Polygon.createRectangle(this.getWidth(), this.getHeight()); + //...) + if ( this.hitBoxesDirty ) { + this.updateHitBoxes(); + this.updateAABB(); + this.hitBoxesDirty = false; + } + return this.hitBoxes; +}; + +/** + * Update the hit boxes for the object. + * + * The default implementation set a basic bounding box based on the size (getWidth and + * getHeight) and the center point of the object (getCenterX and getCenterY). + * Result is cached until invalidated (by a position change, angle change...). + * + * You should not call this function by yourself, it is called when necessary by getHitBoxes method. + * However, you can redefine it if your object need custom hit boxes. + */ +gdjs.RuntimeObject.prototype.updateHitBoxes = function() { + this.hitBoxes = this._defaultHitBoxes; + var width = this.getWidth(); + var height = this.getHeight(); + var centerX = this.getCenterX(); + var centerY = this.getCenterY(); + + if (centerX === width / 2 && centerY === height / 2) { + this.hitBoxes[0].vertices[0][0] = - centerX; + this.hitBoxes[0].vertices[0][1] = - centerY; + this.hitBoxes[0].vertices[1][0] = + centerX; + this.hitBoxes[0].vertices[1][1] = - centerY; + this.hitBoxes[0].vertices[2][0] = + centerX; + this.hitBoxes[0].vertices[2][1] = + centerY; + this.hitBoxes[0].vertices[3][0] = - centerX; + this.hitBoxes[0].vertices[3][1] = + centerY; + } else { + this.hitBoxes[0].vertices[0][0] = 0 - centerX; + this.hitBoxes[0].vertices[0][1] = 0 - centerY; + this.hitBoxes[0].vertices[1][0] = width - centerX; + this.hitBoxes[0].vertices[1][1] = 0 - centerY; + this.hitBoxes[0].vertices[2][0] = width - centerX; + this.hitBoxes[0].vertices[2][1] = height - centerY; + this.hitBoxes[0].vertices[3][0] = 0 - centerX; + this.hitBoxes[0].vertices[3][1] = height - centerY; + } + + this.hitBoxes[0].rotate(this.getAngle()/180*Math.PI); + this.hitBoxes[0].move(this.getDrawableX()+centerX, this.getDrawableY()+centerY); +}; + +/** + * Get the AABB (axis aligned bounding box) for the object. + * + * The default implementation uses either the position/size of the object (when angle is 0) or + * hitboxes (when angle is not 0) to compute the bounding box. + * Result is cached until invalidated (by a position change, angle change...). + * + * You should probably redefine updateAABB instead of this function. + * + * @return {AABB} The bounding box (example: `{min: [10,5], max:[20,10]}`) + */ +gdjs.RuntimeObject.prototype.getAABB = function() { + if ( this.hitBoxesDirty ) { + this.updateHitBoxes(); + this.updateAABB(); + this.hitBoxesDirty = false; + } + + return this.aabb; +}; + +/** + * Get the AABB (axis aligned bounding box) to be used to determine if the object + * is visible on screen. The gdjs.RuntimeScene will hide the renderer object if + * the object is not visible on screen ("culling"). + * + * The default implementation uses the AABB returned by getAABB. + * + * If `null` is returned, the object is assumed to be always visible. + * + * @return {?AABB} The bounding box (example: `{min: [10,5], max:[20,10]}`) or `null`. + */ +gdjs.RuntimeObject.prototype.getVisibilityAABB = function() { + return this.getAABB(); +}; + +/** + * Update the AABB (axis aligned bounding box) for the object. + * + * Default implementation uses either the position/size of the object (when angle is 0) or + * hitboxes (when angle is not 0) to compute the bounding box. + * + * You should not call this function by yourself, it is called when necessary by getAABB method. + * However, you can redefine it if your object can have a faster implementation. + */ +gdjs.RuntimeObject.prototype.updateAABB = function() { + if (this.getAngle() === 0) { + // Fast/simple computation of AABB for non rotated object + // (works even for object with non default center/origin + // because we're using getDrawableX/Y) + this.aabb.min[0] = this.getDrawableX(); + this.aabb.min[1] = this.getDrawableY(); + this.aabb.max[0] = this.aabb.min[0] + this.getWidth(); + this.aabb.max[1] = this.aabb.min[1] + this.getHeight(); + } else { + // Use hitboxes if object is rotated to ensure that the AABB + // is properly bounding the whole object. + // Slower (10-15% slower). + var first = true; + for(var i = 0;i= timeInSeconds; +}; + +/** + * Test a if a timer is paused + * @param {String} timerName The timer name + * @return {boolean} True if the timer exists and is paused, false otherwise + */ +gdjs.RuntimeObject.prototype.timerPaused = function(timerName) { + if ( !this._timers.containsKey(timerName) ) { + return false; + } + + return this._timers.get(timerName).isPaused(); +}; + +/** + * Reset a timer, if the timer doesn't exist it is created + * @param {String} timerName The timer name + */ +gdjs.RuntimeObject.prototype.resetTimer = function(timerName) { + if ( !this._timers.containsKey(timerName) ) { + this._timers.put(timerName, new gdjs.Timer(timerName)); + } + + this._timers.get(timerName).reset(); +}; + +/** + * Pause a timer, if the timer doesn't exist it is created + * @param {String} timerName The timer name + */ +gdjs.RuntimeObject.prototype.pauseTimer = function(timerName) { + if ( !this._timers.containsKey(timerName) ) { + this._timers.put(timerName, new gdjs.Timer(timerName)); + } + + this._timers.get(timerName).setPaused(true); +}; + +/** + * Unpause a timer, if the timer doesn't exist it is created + * @param {String} timerName The timer name + */ +gdjs.RuntimeObject.prototype.unpauseTimer = function(timerName) { + if ( !this._timers.containsKey(timerName) ) { + this._timers.put(timerName, new gdjs.Timer(timerName)); + } + + this._timers.get(timerName).setPaused(false); +}; + +/** + * Remove a timer + * @param {String} timerName The timer name + */ +gdjs.RuntimeObject.prototype.removeTimer = function(timerName) { + if ( this._timers.containsKey(timerName) ) { + this._timers.remove(timerName); + } +}; + +/** + * Get a timer elapsed time. + * @param {String} timerName The timer name + * @return {number} The timer elapsed time in seconds, 0 if the timer doesn't exist + */ +gdjs.RuntimeObject.prototype.getTimerElapsedTimeInSeconds = function(timerName) { + if ( !this._timers.containsKey(timerName) ) { + return 0; + } + + return this._timers.get(timerName).getTime() / 1000.0; +}; + +//Other : + +/** + * Separate the object from others objects, using their hitboxes. + * @param objects Objects + * @param {boolean | undefined} ignoreTouchingEdges If true, then edges that are touching each other, without the hitbox polygons actually overlapping, won't be considered in collision. + * @return true if the object was moved + */ +gdjs.RuntimeObject.prototype.separateFromObjects = function(objects, ignoreTouchingEdges) { + var moved = false; + var xMove = 0; var yMove = 0; + var hitBoxes = this.getHitBoxes(); + + //Check if their is a collision with each object + for(var i = 0, len = objects.length;i objects[i].getDrawableX()+objects[i].getWidth() ){ + this.setX( objects[i].getDrawableX()+objects[i].getWidth() ); + } + + if ( this.getDrawableY() < objects[i].getDrawableY() ){ + this.setY( objects[i].getDrawableY() - this.getHeight() ); + } + else if ( this.getDrawableY()+this.getHeight() > objects[i].getDrawableY()+objects[i].getHeight() ){ + this.setY( objects[i].getDrawableY()+objects[i].getHeight() ); + } + } + } +}; + +/** + * @deprecated + * @param objectsLists Tables of objects + */ +gdjs.RuntimeObject.prototype.separateObjectsWithForces = function(objectsLists) { + //Prepare the list of objects to iterate over. + var objects = gdjs.staticArray(gdjs.RuntimeObject.prototype.separateObjectsWithForces); + objects.length = 0; + + var lists = gdjs.staticArray2(gdjs.RuntimeObject.prototype.separateObjectsWithForces); + objectsLists.values(lists); + for(var i = 0, len = lists.length;i obj1BoundingRadius + obj2BoundingRadius ) + return false; + + //Do a real check if necessary. + var hitBoxes1 = obj1.getHitBoxes(); + var hitBoxes2 = obj2.getHitBoxes(); + for(var k = 0, lenBoxes1 = hitBoxes1.length;k sqBoundingR + sqDist + 2*Math.sqrt(sqDist*sqBoundingR) ) + return result; + + var testSqDist = closest ? sqDist : 0; + + var hitBoxes = this.getHitBoxes(); + for (var i=0; i testSqDist) && (res.farSqDist <= sqDist) ) { + testSqDist = res.farSqDist; + result = res; + } + } + } + + return result; +}; + +/** + * Return true if the specified position is inside object bounding box. + * + * The position should be in "world" coordinates, i.e use gdjs.Layer.convertCoords + * if you need to pass the mouse or a touch position that you get from gdjs.InputManager. + * + */ +gdjs.RuntimeObject.prototype.insideObject = function(x, y) { + if ( this.hitBoxesDirty ) { + this.updateHitBoxes(); + this.updateAABB(); + this.hitBoxesDirty = false; + } + return this.aabb.min[0] <= x && this.aabb.max[0] >= x + && this.aabb.min[1] <= y && this.aabb.max[1] >= y; +}; + +/** + * Check the distance between two objects. + * @static + */ +gdjs.RuntimeObject.distanceTest = function(obj1, obj2, distance) { + return obj1.getSqDistanceToObject(obj2) <= distance; +}; + +/** + * Return true if the cursor, or any touch, is on the object. + * + * @return true if the cursor, or any touch, is on the object. + */ +gdjs.RuntimeObject.prototype.cursorOnObject = function(runtimeScene) { + var inputManager = runtimeScene.getGame().getInputManager(); + var layer = runtimeScene.getLayer(this.layer); + + var mousePos = layer.convertCoords(inputManager.getMouseX(), inputManager.getMouseY()); + if (this.insideObject(mousePos[0], mousePos[1])) { + return true; + } + + var touchIds = inputManager.getAllTouchIdentifiers(); + for(var i = 0;i cameraCoords[2] || aabb.min[1] > cameraCoords[3] || + aabb.max[0] < cameraCoords[0] || aabb.max[1] < cameraCoords[1])) { + rendererObject.visible = false; + } else { + rendererObject.visible = true; + } + } + } + } +}; + +/** + * Empty the list of the removed objects:
+ * When an object is removed from the scene, it is still kept in the _instancesRemoved member + * of the RuntimeScene.
+ * This method should be called regularly (after events or behaviors steps) so as to clear this list + * and allows the removed objects to be cached (or destroyed if the cache is full).
+ * The removed objects could not be sent directly to the cache, as events may still be using them after + * removing them from the scene for example. + * + * @private + */ +gdjs.RuntimeScene.prototype._cacheOrClearRemovedInstances = function() { + for(var k =0, lenk=this._instancesRemoved.length;k{7!YClaRYbIoszF6e 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 literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/spriteruntimeobject.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/spriteruntimeobject.js new file mode 100644 index 0000000..b5b4db7 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/spriteruntimeobject.js @@ -0,0 +1,1041 @@ +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * @typedef {Object} SpritePoint Represents a point in a coordinate system. + * @property {number} x X position of the point. + * @property {number} y Y position of the point. + */ + +/** + * @typedef {Object} SpriteCustomPointData Represents a custom point in a frame. + * @property {string} name Name of the point. + * @property {number} x X position of the point. + * @property {number} y Y position of the point. + */ + +/** + * @typedef {Object} SpriteCenterPointData Represents the center point in a frame. + * @property {boolean} automatic Is the center automatically computed? + * @property {number} x X position of the point. + * @property {number} y Y position of the point. + */ + +/** + * @typedef {Object} SpriteFrameData Represents a {@link gdjs.SpriteAnimationFrame}. + * @property {string} [image] The resource name of the image used in this frame. + * @property {Array} [points] The points of the frame. + * @property {SpritePoint} originPoint The origin point. + * @property {SpriteCenterPointData} centerPoint The center of the frame. + * @property {boolean} hasCustomCollisionMask Is The collision mask custom? + * @property {Array>} [customCollisionMask] The collision mask if it is custom. + */ + +/** + * @typedef {Object} SpriteDirectionData Represents the data of a {@link gdjs.SpriteAnimationDirection}. + * @property {number} timeBetweenFrames Time between each frame, in seconds. + * @property {boolean} looping Is the animation looping? + * @property {Array} sprites The list of frames. + */ + +/** + * @typedef {Object} SpriteAnimationData Represents the data of a {@link gdjs.SpriteAnimation}. + * @property {string} [name] The name of the animation. + * @property {boolean} useMultipleDirections Does the animation use multiple {@link gdjs.SpriteAnimationDirection}? + * @property {Array} directions The list of {@link SpriteDirectionData} representing {@link gdjs.SpriteAnimationDirection} instances. + */ + +/** + * @typedef {Object} SpriteObjectDataType Represents the data of a {@link gdjs.SpriteRuntimeObject}. + * @property {boolean} updateIfNotVisible Update the object even if he is not visible?. + * @property {Array} animations The list of {@link SpriteAnimationData} representing {@link gdjs.SpriteAnimation} instances. + * + * @typedef {ObjectData & SpriteObjectDataType} SpriteObjectData + */ + +/** + * A frame used by a SpriteAnimation in a {@link gdjs.SpriteRuntimeObject}. + * + * It contains the texture displayed as well as information like the points position + * or the collision mask. + * + * @memberOf gdjs + * @class SpriteAnimationFrame + * @param {gdjs.ImageManager} imageManager The game image manager + * @param {SpriteFrameData} frameData The frame data used to initialize the frame + */ + +gdjs.SpriteAnimationFrame = function(imageManager, frameData) +{ + /** @type {string} */ + this.image = frameData ? frameData.image : ""; //TODO: Rename in imageName, and do not store it in the object? + this.texture = gdjs.SpriteRuntimeObjectRenderer.getAnimationFrame(imageManager, this.image); + + if ( this.center === undefined ) { + /** @type {SpritePoint} */ + this.center = { x:0, y:0 }; + } + if ( this.origin === undefined ) { + /** @type {SpritePoint} */ + this.origin = { x:0, y:0 } + } + /** @type {boolean} */ + this.hasCustomHitBoxes = false; + if ( this.customHitBoxes === undefined ) { + /** @type {Array} */ + this.customHitBoxes = [] + }; + if ( this.points === undefined ){ + /** @type {Hashtable} */ + this.points = new Hashtable(); + } else this.points.clear(); + + //Initialize points: + for(var i = 0, len = frameData.points.length;i} */ + var polygonData = frameData.customCollisionMask[i]; + + //Add a polygon, if necessary (Avoid recreating a polygon if it already exists). + if ( i >= this.customHitBoxes.length ) this.customHitBoxes.push(new gdjs.Polygon()); + + for(var j = 0, len2 = polygonData.length;j= this.customHitBoxes[i].vertices.length ) + this.customHitBoxes[i].vertices.push([0,0]); + + this.customHitBoxes[i].vertices[j][0] = pointData.x; + this.customHitBoxes[i].vertices[j][1] = pointData.y; + } + + this.customHitBoxes[i].vertices.length = j; + } + + this.customHitBoxes.length = i; + } + else { + this.customHitBoxes.length = 0; + } +}; + +/** + * Get a point of the frame.
+ * If the point does not exist, the origin is returned. + * @param {string} name The point's name + * @return {SpritePoint} The requested point. If it doesn't exists returns the origin point. + */ +gdjs.SpriteAnimationFrame.prototype.getPoint = function(name) { + if ( name === "Centre" || name === "Center") return this.center; + else if ( name === "Origin" ) return this.origin; + + return this.points.containsKey(name) ? this.points.get(name) : this.origin; +}; + +/** + * Represents a direction of an animation of a {@link gdjs.SpriteRuntimeObject}. + * + * @class SpriteAnimationDirection + * @memberOf gdjs + * @param {gdjs.ImageManager} imageManager The game image manager + * @param {SpriteDirectionData} directionData The direction data used to initialize the direction + */ +gdjs.SpriteAnimationDirection = function(imageManager, directionData) +{ + /** @type {number} */ + this.timeBetweenFrames = directionData ? directionData.timeBetweenFrames : + 1.0; + /** @type {boolean} */ + this.loop = !!directionData.looping; + + if ( this.frames === undefined ) { + /** @type {Array} */ + this.frames = []; + } + for(var i = 0, len = directionData.sprites.length;i} */ + if ( this.directions === undefined ) this.directions = []; + for(var i = 0, len = animData.directions.length;i} */ + this._animations = []; + } + for(var i = 0, len = spriteObjectData.animations.length;i, customSize: {width: number, height: number}}} initialInstanceData The extra parameters + */ +gdjs.SpriteRuntimeObject.prototype.extraInitializationFromInitialInstance = function(initialInstanceData) { + if ( initialInstanceData.numberProperties ) { + for(var i = 0, len = initialInstanceData.numberProperties.length;i= this._animations.length || + this._currentDirection >= this._animations[this._currentAnimation].directions.length) { + return; + } + var direction = this._animations[this._currentAnimation].directions[this._currentDirection]; + var oldFrame = this._currentFrame; + + if (!direction.loop && this._currentFrame >= direction.frames.length) { + //*Optimization*: Animation is finished, don't change the current frame + //and compute nothing more. + } else { + var elapsedTime = this.getElapsedTime(runtimeScene) / 1000; + this._frameElapsedTime += this._animationPaused ? 0 : elapsedTime * this._animationSpeedScale; + + if ( this._frameElapsedTime > direction.timeBetweenFrames ) { + var count = Math.floor(this._frameElapsedTime / direction.timeBetweenFrames); + this._currentFrame += count; + this._frameElapsedTime = this._frameElapsedTime-count*direction.timeBetweenFrames; + if ( this._frameElapsedTime < 0 ) this._frameElapsedTime = 0; + } + + if ( this._currentFrame >= direction.frames.length ) { + this._currentFrame = direction.loop ? this._currentFrame % direction.frames.length : direction.frames.length-1; + } + if ( this._currentFrame < 0 ) this._currentFrame = 0; //May happen if there is no frame. + } + + if ( oldFrame !== this._currentFrame || this._animationFrameDirty ) this._updateAnimationFrame(); + if ( oldFrame !== this._currentFrame ) this.hitBoxesDirty = true; + + this._renderer.ensureUpToDate(); +}; + +/** + * Update `this._animationFrame` according to the current animation/direction/frame values + * (`this._currentAnimation`, `this._currentDirection`, `this._currentFrame`) and set + * `this._animationFrameDirty` back to false. + * + * Trigger a call to the renderer to change the texture being shown (if the animation/direction/frame + * is valid). + * If invalid, `this._animationFrame` will be `null` after calling this function. + */ +gdjs.SpriteRuntimeObject.prototype._updateAnimationFrame = function() { + this._animationFrameDirty = false; + + if ( this._currentAnimation < this._animations.length && + this._currentDirection < this._animations[this._currentAnimation].directions.length) { + var direction = this._animations[this._currentAnimation].directions[this._currentDirection]; + + if ( this._currentFrame < direction.frames.length ) { + this._animationFrame = direction.frames[this._currentFrame]; + if ( this._animationFrame !== null ) { + this._renderer.updateFrame(this._animationFrame); + } + + return; + } + } + + //Invalid animation/direction/frame: + this._animationFrame = null; +}; + +gdjs.SpriteRuntimeObject.prototype.getRendererObject = function() { + return this._renderer.getRendererObject(); +}; + +/** + * Update the hit boxes for the object. + * Fallback to the default implementation (rotated bounding box) if there is no custom + * hitboxes defined for the current animation frame. + */ +gdjs.SpriteRuntimeObject.prototype.updateHitBoxes = function() { + if ( this._animationFrameDirty ) { + this._updateAnimationFrame(); + } + if ( this._animationFrame === null ) return; //Beware, `this._animationFrame` can still be null. + + if ( !this._animationFrame.hasCustomHitBoxes ) + return gdjs.RuntimeObject.prototype.updateHitBoxes.call(this); + + //console.log("Update for "+this.name); //Uncomment to track updates + //(and in particular be sure that unnecessary update are avoided). + + //Update the current hitboxes with the frame custom hit boxes + //and apply transformations. + for (var i = 0;i= this.hitBoxes.length ) + this.hitBoxes.push(new gdjs.Polygon()); + + for (var j = 0;j= this.hitBoxes[i].vertices.length ) + this.hitBoxes[i].vertices.push([0,0]); + + this._transformToGlobal(this._animationFrame.customHitBoxes[i].vertices[j][0], + this._animationFrame.customHitBoxes[i].vertices[j][1], + this.hitBoxes[i].vertices[j]); + } + this.hitBoxes[i].vertices.length = this._animationFrame.customHitBoxes[i].vertices.length; + } + this.hitBoxes.length = this._animationFrame.customHitBoxes.length; + + //Rotate and scale and flipping have already been applied to the point by _transformToGlobal. +}; + +//Animations : + +/** + * Change the animation being played. + * @param {number} newAnimation The index of the new animation to be played + */ +gdjs.SpriteRuntimeObject.prototype.setAnimation = function(newAnimation) { + newAnimation = newAnimation | 0; + if ( newAnimation < this._animations.length && + this._currentAnimation !== newAnimation && + newAnimation >= 0) { + this._currentAnimation = newAnimation; + this._currentFrame = 0; + this._frameElapsedTime = 0; + this._renderer.update(); //TODO: This may be unnecessary. + this._animationFrameDirty = true; + this.hitBoxesDirty = true; + } +}; + +/** + * Change the animation being played. + * @param {string} newAnimationName The name of the new animation to be played + */ +gdjs.SpriteRuntimeObject.prototype.setAnimationName = function(newAnimationName) { + if (!newAnimationName) return; + + for(var i = 0;i < this._animations.length;++i) { + if (this._animations[i].name === newAnimationName) { + return this.setAnimation(i); + } + } +}; + +/** + * Get the index of the animation being played. + * @return {number} The index of the new animation being played + */ +gdjs.SpriteRuntimeObject.prototype.getAnimation = function() { + return this._currentAnimation; +}; + +/** + * Get the name of the animation being played. + * @return {string} The name of the new animation being played + */ +gdjs.SpriteRuntimeObject.prototype.getAnimationName = function() { + if ( this._currentAnimation >= this._animations.length ) { + return ''; + } + + return this._animations[this._currentAnimation].name; +}; + +gdjs.SpriteRuntimeObject.prototype.isCurrentAnimationName = function(name) { + return this.getAnimationName() === name; +}; + +/** + * Change the angle (or direction index) of the object + * @return {number} The new angle (or direction index) to be applied + */ +gdjs.SpriteRuntimeObject.prototype.setDirectionOrAngle = function(newValue) { + if ( this._currentAnimation >= this._animations.length ) { + return; + } + + var anim = this._animations[this._currentAnimation]; + if ( !anim.hasMultipleDirections ) { + if ( this.angle === newValue ) return; + + this.angle = newValue; + this.hitBoxesDirty = true; + this._renderer.updateAngle(); + } + else { + newValue = newValue | 0; + + if (newValue === this._currentDirection + || newValue >= anim.directions.length + || anim.directions[newValue].frames.length === 0) + return; + + this._currentDirection = newValue; + this._currentFrame = 0; + this._frameElapsedTime = 0; + this.angle = 0; + + this._renderer.update(); //TODO: This may be unnecessary. + this._animationFrameDirty = true; + this.hitBoxesDirty = true; + } +}; + +gdjs.SpriteRuntimeObject.prototype.getDirectionOrAngle = function() { + if ( this._currentAnimation >= this._animations.length ) { + return 0; + } + + if ( !this._animations[this._currentAnimation].hasMultipleDirections ) { + return this.angle; + } + else { + return this._currentDirection; + } +}; + +/** + * Change the current frame displayed by the animation + * @param {number} newFrame The index of the frame to be displayed + */ +gdjs.SpriteRuntimeObject.prototype.setAnimationFrame = function(newFrame) { + if ( this._currentAnimation >= this._animations.length || + this._currentDirection >= this._animations[this._currentAnimation].directions.length) { + return; + } + var direction = this._animations[this._currentAnimation].directions[this._currentDirection]; + + if ( newFrame >= 0 && newFrame < direction.frames.length && newFrame !== this._currentFrame ) { + this._currentFrame = newFrame; + this._animationFrameDirty = true; + this.hitBoxesDirty = true; + } +}; + +/** + * Get the index of the current frame displayed by the animation + * @return {number} newFrame The index of the frame being displayed + */ +gdjs.SpriteRuntimeObject.prototype.getAnimationFrame = function() { + return this._currentFrame; +}; + +/** + * Return true if animation has ended. + */ +gdjs.SpriteRuntimeObject.prototype.hasAnimationEnded = function() { + if ( this._currentAnimation >= this._animations.length || + this._currentDirection >= this._animations[this._currentAnimation].directions.length) { + return true; + } + if ( this._animations[this._currentAnimation].loop ) return false; + var direction = this._animations[this._currentAnimation].directions[this._currentDirection]; + + return this._currentFrame === direction.frames.length-1; +}; + +gdjs.SpriteRuntimeObject.prototype.animationPaused = function() { + return this._animationPaused; +}; + +gdjs.SpriteRuntimeObject.prototype.pauseAnimation = function() { + this._animationPaused = true; +}; + +gdjs.SpriteRuntimeObject.prototype.playAnimation = function() { + this._animationPaused = false; +}; + +gdjs.SpriteRuntimeObject.prototype.getAnimationSpeedScale = function() { + return this._animationSpeedScale; +}; + +gdjs.SpriteRuntimeObject.prototype.setAnimationSpeedScale = function(ratio) { + this._animationSpeedScale = ratio +}; + +//Position : + +/** + * Get the position on X axis on the scene of the given point. + * @param {string} name The point name + * @return {number} the position on X axis on the scene of the given point. + */ +gdjs.SpriteRuntimeObject.prototype.getPointX = function(name) { + if ( this._animationFrameDirty ) this._updateAnimationFrame(); + if ( name.length === 0 || this._animationFrame === null ) return this.getX(); + + var pt = this._animationFrame.getPoint(name); + var pos = gdjs.staticArray(gdjs.SpriteRuntimeObject.prototype.getPointX); + this._transformToGlobal(pt.x, pt.y, pos); + + return pos[0]; +}; + +/** + * Get the position on Y axis on the scene of the given point. + * @param {string} name The point name + * @return {number} the position on Y axis on the scene of the given point. + */ +gdjs.SpriteRuntimeObject.prototype.getPointY = function(name) { + if ( this._animationFrameDirty ) this._updateAnimationFrame(); + if ( name.length === 0 || this._animationFrame === null ) return this.getY(); + + var pt = this._animationFrame.getPoint(name); + var pos = gdjs.staticArray(gdjs.SpriteRuntimeObject.prototype.getPointY); + this._transformToGlobal(pt.x, pt.y, pos); + + return pos[1]; +}; + +/** + * Return an array containing the coordinates of the point passed as parameter + * in world coordinates (as opposed to the object local coordinates). + * + * Beware: this._animationFrame and this._sprite must *not* be null! + * + * All transformations (flipping, scale, rotation) are supported. + * + * @param {number} pointX The X position of the point, in object coordinates. + * @param {number} pointY The Y position of the point, in object coordinates. + * @param {Array} result Array that will be updated with the result (x and y position of the point + * in global coordinates) + * @private + */ +gdjs.SpriteRuntimeObject.prototype._transformToGlobal = function(x, y, result) { + var cx = this._animationFrame.center.x; + var cy = this._animationFrame.center.y; + + //Flipping + if ( this._flippedX ) { + x = x + (cx - x) * 2; + } + if ( this._flippedY ) { + y = y + (cy - y) * 2; + } + + //Scale + var absScaleX = Math.abs(this._scaleX); + var absScaleY = Math.abs(this._scaleY); + x *= absScaleX; + y *= absScaleY; + cx *= absScaleX; + cy *= absScaleY; + + //Rotation + var oldX = x; + var angleInRadians = this.angle/180*Math.PI; + var cosValue = Math.cos(angleInRadians); // Only compute cos and sin once (10% faster than doing it twice) + var sinValue = Math.sin(angleInRadians); + var xToCenterXDelta = x-cx; + var yToCenterYDelta = y-cy; + x = cx + cosValue*(xToCenterXDelta) - sinValue*(yToCenterYDelta); + y = cy + sinValue*(xToCenterXDelta) + cosValue*(yToCenterYDelta); + + result.length = 2; + result[0] = x + (this.x - this._animationFrame.origin.x*absScaleX); + result[1] = y + (this.y - this._animationFrame.origin.y*absScaleY); +}; + +/** + * Get the X position, on the scene, of the origin of the texture of the object. + * @return {number} the X position, on the scene, of the origin of the texture of the object. + */ +gdjs.SpriteRuntimeObject.prototype.getDrawableX = function() { + if ( this._animationFrame === null ) return this.x; + + var absScaleX = Math.abs(this._scaleX); + + if (!this._flippedX) { + return this.x - this._animationFrame.origin.x*absScaleX; + } else { + return this.x + (-this._animationFrame.origin.x + - this._renderer.getUnscaledWidth() + 2*this._animationFrame.center.x)*absScaleX; + } +}; + +/** + * Get the Y position, on the scene, of the origin of the texture of the object. + * @return {number} the Y position, on the scene, of the origin of the texture of the object. + */ +gdjs.SpriteRuntimeObject.prototype.getDrawableY = function() { + if ( this._animationFrame === null ) return this.y; + + var absScaleY = Math.abs(this._scaleY); + + if (!this._flippedY) { + return this.y - this._animationFrame.origin.y*absScaleY; + } else { + return this.y + (-this._animationFrame.origin.y + - this._renderer.getUnscaledHeight() + 2*this._animationFrame.center.y)*absScaleY; + } +}; + +/** + * Get the X position of the center of the object, relative to top-left of the texture of the object (`getDrawableX`). + * @return {number} X position of the center of the object, relative to `getDrawableX()`. + */ +gdjs.SpriteRuntimeObject.prototype.getCenterX = function() { + if ( this._animationFrameDirty ) this._updateAnimationFrame(); + if ( this._animationFrame === null ) return 0; + + if (!this._flippedX) { + //Just need to multiply by the scale as it is the center. + return this._animationFrame.center.x*Math.abs(this._scaleX); + } else { + return (this._renderer.getUnscaledWidth() - this._animationFrame.center.x)*Math.abs(this._scaleX); + } +}; + +/** + * Get the Y position of the center of the object, relative to top-left of the texture of the object (`getDrawableY`). + * @return {number} Y position of the center of the object, relative to `getDrawableY()`. + */ +gdjs.SpriteRuntimeObject.prototype.getCenterY = function() { + if ( this._animationFrameDirty ) this._updateAnimationFrame(); + if ( this._animationFrame === null ) return 0; + + if (!this._flippedY) { + //Just need to multiply by the scale as it is the center. + return this._animationFrame.center.y*Math.abs(this._scaleY); + } else { + return (this._renderer.getUnscaledHeight() - this._animationFrame.center.y)*Math.abs(this._scaleY); + } +}; + +/** + * Set the X position of the (origin of the) object. + * @param {number} x The new X position. + */ +gdjs.SpriteRuntimeObject.prototype.setX = function(x) { + if ( x === this.x ) return; + + this.x = x; + if (this._animationFrame !== null) { + this.hitBoxesDirty = true; + this._renderer.updateX(); + } +}; + +/** + * Set the Y position of the (origin of the) object. + * @param {number} y The new Y position. + */ +gdjs.SpriteRuntimeObject.prototype.setY = function(y) { + if ( y === this.y ) return; + + this.y = y; + if ( this._animationFrame !== null) { + this.hitBoxesDirty = true; + this._renderer.updateY(); + } +}; + +/** + * Set the angle of the object. + * @param {number} angle The new angle, in degrees. + */ +gdjs.SpriteRuntimeObject.prototype.setAngle = function(angle) { + if ( this._currentAnimation >= this._animations.length ) { + return; + } + + if ( !this._animations[this._currentAnimation].hasMultipleDirections ) { + if (this.angle === angle) return; + + this.angle = angle; + this._renderer.updateAngle(); + this.hitBoxesDirty = true; + } else { + angle = angle % 360; + if ( angle < 0 ) angle += 360; + this.setDirectionOrAngle(Math.round(angle/45) % 8); + } +}; + +/** + * Get the angle of the object. + * @return {number} The angle, in degrees. + */ +gdjs.SpriteRuntimeObject.prototype.getAngle = function(angle) { + if ( this._currentAnimation >= this._animations.length ) { + return 0; + } + + if ( !this._animations[this._currentAnimation].hasMultipleDirections ) + return this.angle; + else + return this._currentDirection * 45; +}; + +//Visibility and display : + +gdjs.SpriteRuntimeObject.prototype.setBlendMode = function(newMode) { + if (this._blendMode === newMode) return; + + this._blendMode = newMode; + this._renderer.update(); +}; + +gdjs.SpriteRuntimeObject.prototype.getBlendMode = function() { + return this._blendMode; +}; + +/** + * Change the transparency of the object. + * @param {number} opacity The new opacity, between 0 (transparent) and 255 (opaque). + */ +gdjs.SpriteRuntimeObject.prototype.setOpacity = function(opacity) { + if ( opacity < 0 ) opacity = 0; + if ( opacity > 255 ) opacity = 255; + + this.opacity = opacity; + this._renderer.updateOpacity(); +}; + +/** + * Get the transparency of the object. + * @return {number} The opacity, between 0 (transparent) and 255 (opaque). + */ +gdjs.SpriteRuntimeObject.prototype.getOpacity = function() { + return this.opacity; +}; + +/** + * Hide (or show) the object + * @param {boolean} enable true to hide the object, false to show it again. + */ +gdjs.SpriteRuntimeObject.prototype.hide = function(enable) { + if ( enable === undefined ) enable = true; + this.hidden = enable; + + this._renderer.updateVisibility(); +}; + +/** + * Change the tint of the sprite object. + * + * @param {string} rgbColor The color, in RGB format ("128;200;255"). + */ +gdjs.SpriteRuntimeObject.prototype.setColor = function(rgbColor) { + this._renderer.setColor(rgbColor); +}; + +/** + * Get the tint of the sprite object. + * + * @returns {string} rgbColor The color, in RGB format ("128;200;255"). + */ +gdjs.SpriteRuntimeObject.prototype.getColor = function() { + return this._renderer.getColor(); +}; + +gdjs.SpriteRuntimeObject.prototype.flipX = function(enable) { + if ( enable !== this._flippedX ) { + this._scaleX *= -1; + this._flippedX = enable; + this.hitBoxesDirty = true; + this._renderer.update(); + } +}; + +gdjs.SpriteRuntimeObject.prototype.flipY = function(enable) { + if ( enable !== this._flippedY ) { + this._scaleY *= -1; + this._flippedY = enable; + this.hitBoxesDirty = true; + this._renderer.update(); + } +}; + +gdjs.SpriteRuntimeObject.prototype.isFlippedX = function() { + return this._flippedX; +}; + +gdjs.SpriteRuntimeObject.prototype.isFlippedY = function() { + return this._flippedY; +}; + +//Scale and size : + +/** + * Get the width of the object. + * + * @return {number} The width of the object, in pixels. + */ +gdjs.SpriteRuntimeObject.prototype.getWidth = function() { + if ( this._animationFrameDirty ) this._updateAnimationFrame(); + return this._renderer.getWidth(); +}; + +/** + * Get the height of the object. + * + * @return {number} The height of the object, in pixels. + */ +gdjs.SpriteRuntimeObject.prototype.getHeight = function() { + if ( this._animationFrameDirty ) this._updateAnimationFrame(); + return this._renderer.getHeight(); +}; + +/** + * Change the width of the object. This changes the scale on X axis of the object. + * + * @param {number} width The new width of the object, in pixels. + */ +gdjs.SpriteRuntimeObject.prototype.setWidth = function(newWidth) { + if ( this._animationFrameDirty ) this._updateAnimationFrame(); + + var unscaledWidth = this._renderer.getUnscaledWidth(); + if (unscaledWidth !== 0) this.setScaleX(newWidth / unscaledWidth); +}; + +/** + * Change the height of the object. This changes the scale on Y axis of the object. + * + * @param {number} height The new height of the object, in pixels. + */ +gdjs.SpriteRuntimeObject.prototype.setHeight = function(newHeight) { + if ( this._animationFrameDirty ) this._updateAnimationFrame(); + + var unscaledHeight = this._renderer.getUnscaledHeight(); + if (unscaledHeight !== 0) this.setScaleY(newHeight / unscaledHeight); +}; + +/** + * Change the scale on X and Y axis of the object. + * + * @param {number} newScale The new scale (must be greater than 0). + */ +gdjs.SpriteRuntimeObject.prototype.setScale = function(newScale) { + if ( newScale < 0 ) newScale = 0; + if ( newScale === Math.abs(this._scaleX) && newScale === Math.abs(this._scaleY) ) return; + + this._scaleX = newScale * (this._flippedX ? -1 : 1); + this._scaleY = newScale * (this._flippedY ? -1 : 1); + this._renderer.update(); + this.hitBoxesDirty = true; +}; + +/** + * Change the scale on X axis of the object (changing its width). + * + * @param {number} newScale The new scale (must be greater than 0). + */ +gdjs.SpriteRuntimeObject.prototype.setScaleX = function(newScale) { + if ( newScale < 0 ) newScale = 0; + if ( newScale === Math.abs(this._scaleX) ) return; + + this._scaleX = newScale * (this._flippedX ? -1 : 1); + this._renderer.update(); + this.hitBoxesDirty = true; +}; + +/** + * Change the scale on Y axis of the object (changing its width). + * + * @param {number} newScale The new scale (must be greater than 0). + */ +gdjs.SpriteRuntimeObject.prototype.setScaleY = function(newScale) { + if ( newScale < 0 ) newScale = 0; + if ( newScale === Math.abs(this._scaleY) ) return; + + this._scaleY = newScale * (this._flippedY ? -1 : 1); + this._renderer.update(); + this.hitBoxesDirty = true; +}; + +/** + * Get the scale of the object (or the average of the X and Y scale in case they are different). + * + * @return {number} the scale of the object (or the average of the X and Y scale in case they are different). + */ +gdjs.SpriteRuntimeObject.prototype.getScale = function() { + return (Math.abs(this._scaleX)+Math.abs(this._scaleY))/2.0; +}; + +/** + * Get the scale of the object on Y axis. + * + * @return {number} the scale of the object on Y axis + */ +gdjs.SpriteRuntimeObject.prototype.getScaleY = function() { + return Math.abs(this._scaleY); +}; + +/** + * Get the scale of the object on X axis. + * + * @return {number} the scale of the object on X axis + */ +gdjs.SpriteRuntimeObject.prototype.getScaleX = function() { + return Math.abs(this._scaleX); +}; + +//Other : + +/** + * @param obj The target object + * @param scene The scene containing the object + * @deprecated + */ +gdjs.SpriteRuntimeObject.prototype.turnTowardObject = function(obj, scene) { + if ( obj === null ) return; + + this.rotateTowardPosition(obj.getDrawableX()+obj.getCenterX(), + obj.getDrawableY()+obj.getCenterY(), 0, scene); +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/timemanager.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/timemanager.js new file mode 100644 index 0000000..636e5d9 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/timemanager.js @@ -0,0 +1,101 @@ +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * Manage the timers and times elapsed during last + * frame, since the beginning of the scene and other time related values. + * + * @class TimeManager + * @memberof gdjs + */ +gdjs.TimeManager = function() +{ + this.reset(); +} + +gdjs.TimeManager.prototype.reset = function() { + this._elapsedTime = 0; + this._timeScale = 1; + this._timeFromStart = 0; + this._firstFrame = true; + this._timers = new Hashtable(); +} + +gdjs.TimeManager.prototype.update = function(elapsedTime, minimumFPS) { + if (this._firstUpdateDone) this._firstFrame = false; + this._firstUpdateDone = true; + + //Compute the elapsed time since last frame + this._elapsedTime = Math.min(elapsedTime, 1000/minimumFPS); + this._elapsedTime *= this._timeScale; + + //Update timers and others members + for(var name in this._timers.items) { + if (this._timers.items.hasOwnProperty(name)) { + this._timers.items[name].updateTime(this._elapsedTime); + } + } + + this._timeFromStart += this._elapsedTime; +}; + + +/** + * Set the time scale: time will be slower if time scale is < 1, + * faster if > 1. + * @param {number} timeScale The new time scale (must be positive). + */ +gdjs.TimeManager.prototype.setTimeScale = function(timeScale) { + if ( timeScale >= 0 ) this._timeScale = timeScale; +}; + +/** + * Get the time scale. + * @return {number} The time scale (positive, 1 is normal speed). + */ +gdjs.TimeManager.prototype.getTimeScale = function() { + return this._timeScale; +}; + +/** + * Get the time since the instanciation of the manager (i.e: since + * the beginning of the scene most of the time), in milliseconds. + */ +gdjs.TimeManager.prototype.getTimeFromStart = function() { + return this._timeFromStart; +}; + +/** + * Return true if update was called only once (i.e: if the scene + * is rendering its first frame). + */ +gdjs.TimeManager.prototype.isFirstFrame = function() { + return this._firstFrame; +}; + +/** + * Return the time elapsed since the last call to update + * (i.e: the last frame), in milliseconds. + */ +gdjs.TimeManager.prototype.getElapsedTime = function() { + return this._elapsedTime; +}; + +gdjs.TimeManager.prototype.addTimer = function(name) { + this._timers.put(name, new gdjs.Timer(name)); +}; + +gdjs.TimeManager.prototype.hasTimer = function(name) { + return this._timers.containsKey(name); +}; + +gdjs.TimeManager.prototype.getTimer = function(name) { + return this._timers.get(name); +}; + +gdjs.TimeManager.prototype.removeTimer = function(name) { + if (this._timers.containsKey(name)) this._timers.remove(name); +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/timer.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/timer.js new file mode 100644 index 0000000..56a29ff --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/timer.js @@ -0,0 +1,73 @@ +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * Represents a timer, which must be updated manually with {@link gdjs.Timer#updateTime}. + * + * @class Timer + * @memberof gdjs + * @param {string} name The name of the timer. + */ +gdjs.Timer = function(name) +{ + this._name = name; + this._time = 0; + this._paused = false; +} + +/** + * Get the name of the timer + * @return {string} The name of the timer + */ +gdjs.Timer.prototype.getName = function() { + return this._name; +} + +/** + * Get the time of the timer, in milliseconds. + * @return {number} The time of the timer, in milliseconds. + */ +gdjs.Timer.prototype.getTime = function() { + return this._time; +} + +/** + * Notify the timer that some time has passed. + * @param {number} time The elapsed time, in milliseconds. + */ +gdjs.Timer.prototype.updateTime = function(time) { + if ( !this._paused ) this._time += time; +} + +/** + * Change the time. + * @param {number} time The new time, in milliseconds. + */ +gdjs.Timer.prototype.setTime = function(time) { + this._time = time; +} + +/** + * Reset the time to zero. + */ +gdjs.Timer.prototype.reset = function() { + this.setTime(0); +} + +/** + * Set if the timer is paused. + * @param {boolean} enable true to pause the timer, false otherwise. + */ +gdjs.Timer.prototype.setPaused = function(enable) { + this._paused = enable; +} + +/** + * Check if the timer is paused. + */ +gdjs.Timer.prototype.isPaused = function() { + return this._paused; +} diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/twoTone1.ogg b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/twoTone1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..82653ade96f46c9930449fd14deabf9828043c06 GIT binary patch literal 7362 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 [children] The children of the structure. Leave blank if value is defined. + */ + +/** + * A Variable is an object storing a value (number or a string) or children variables. + * + * @memberOf gdjs + * @class Variable + * @param {VariableData} [varData] The optional initial content of the variable. + */ +gdjs.Variable = function(varData) +{ + /** @type {number} */ + this._value = 0; + /** @type {string} */ + this._str = ""; + /** @type {boolean} */ + this._numberDirty = false; + /** @type {boolean} */ + this._stringDirty = true; + /** @type {boolean} */ + this._isStructure = false; + /** @type {Object.} */ + this._children = {}; + /** @type {boolean} */ + this._undefinedInContainer = false; + + if ( varData !== undefined ) { + if ( varData.value !== undefined ) { //Variable is a string or a number + var initialValue = varData.value; + + //Try to guess the type of the value, as GD has no way ( for now ) to specify + //the type of a variable. + var valueWhenConsideredAsNumber = parseFloat(initialValue); + if(valueWhenConsideredAsNumber === valueWhenConsideredAsNumber && valueWhenConsideredAsNumber.toString() === initialValue) { //"Since NaN is the only JavaScript value that is treated as unequal to itself, you can always test if a value is NaN by checking it for equality to itself" + this._value = parseFloat(initialValue); + } + else { //We have a string (Maybe empty). + if ( initialValue.length === 0 ) + this._value = 0; + else { + this._str = initialValue; + this._numberDirty = true; + this._stringDirty = false; + } + } + } else { //Variable is a structure + this._isStructure = true; + + if (varData.children !== undefined) { + for(var i = 0, len = varData.children.length;i} All the children of the variable + */ +gdjs.Variable.prototype.getAllChildren = function() { + return this._children; +}; + +/** + * Add the given number to the variable value + * @method + * @param {number} val the number to add + */ +gdjs.Variable.prototype.add = function(val) { + this.setNumber(this.getAsNumber()+val); +}; + +/** + * Subtract the given number to the variable value + * @method + * @param {number} val the number to subtract + */ +gdjs.Variable.prototype.sub = function(val) { + this.setNumber(this.getAsNumber()-val); +}; + +/** + * Multiply the variable value by the given number + * @method + * @param {number} val the factor + */ +gdjs.Variable.prototype.mul = function(val) { + this.setNumber(this.getAsNumber()*val); +}; + +/** + * Divide the variable value by the given number + * @method + * @param {number} val the divisor + */ +gdjs.Variable.prototype.div = function(val) { + this.setNumber(this.getAsNumber()/val); +}; + +/** + * Concatenate the given string at the end of the variable value + * @method + * @param {string} str the string to append + */ +gdjs.Variable.prototype.concatenate = function(str) { + this.setString(this.getAsString()+str); +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/variablescontainer.js b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/variablescontainer.js new file mode 100644 index 0000000..cc083a2 --- /dev/null +++ b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/variablescontainer.js @@ -0,0 +1,197 @@ +// @ts-check + +/* + * GDevelop JS Platform + * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved. + * This project is released under the MIT License. + */ + +/** + * VariablesContainer stores variables, usually for a a RuntimeGame, a RuntimeScene + * or a RuntimeObject. + * + * @memberof gdjs + * @class VariablesContainer + * @param {Array} [initialVariablesData] Optional array containing representations of the base variables. + */ +gdjs.VariablesContainer = function(initialVariablesData) +{ + if ( this._variables === undefined ) this._variables = new Hashtable(); + if ( this._variablesArray === undefined ) this._variablesArray = []; + + if ( initialVariablesData !== undefined ) this.initFrom(initialVariablesData); +}; + +gdjs.VariablesContainer._deletedVars = gdjs.VariablesContainer._deletedVars || []; + +/** + * Initialize variables from a container data.
+ * If `keepOldVariables` is set to false (by default), all already existing variables will be + * erased, but the new variables will be accessible thanks to getFromIndex.
+ * if `keepOldVariables` is set to true, already existing variables won't be erased and will be + * still accessible thanks to getFromIndex. + * + * @param {Array} data The array containing data used to initialize variables. + * @param {Boolean} [keepOldVariables] If set to true, already existing variables won't be erased. + */ +gdjs.VariablesContainer.prototype.initFrom = function(data, keepOldVariables) { + if ( keepOldVariables === undefined ) keepOldVariables = false; + if ( !keepOldVariables ) { + gdjs.VariablesContainer._deletedVars = gdjs.VariablesContainer._deletedVars || []; + this._variables.keys(gdjs.VariablesContainer._deletedVars); + } + + var that = this; + var i = 0; + for(var j = 0;j= this._variablesArray.length ) { //Add automatically non-existing variables. + var variable = new gdjs.Variable(); + this._variables.put(name, variable); + return variable; + } else { + /** @type {gdjs.Variable} */ + var variable = this._variablesArray[id]; + if ( variable.isUndefinedInContainer() ) { //Reuse variables removed before. + gdjs.Variable.call(variable); + } + return variable; + } +}; + +/** + * Check if a variable exists in the container. + * @param {string} name The variable's name + * @return {boolean} true if the variable exists. + */ +gdjs.VariablesContainer.prototype.has = function(name) { + var variable = this._variables.get(name); + return variable && !variable.isUndefinedInContainer(); +}; + + +/** + * "Bad" variable container, used by events when no other valid container can be found. + * This container has no state and always returns the bad variable ( see gdjs.VariablesContainer.badVariable ). + * @static + * @private + */ +gdjs.VariablesContainer.badVariablesContainer = { + has: function() {return false;}, + getFromIndex : function() { return gdjs.VariablesContainer.badVariable; }, + get : function() { return gdjs.VariablesContainer.badVariable; }, + remove : function() { return; }, + add : function() { return; }, + initFrom : function() { return; } +}; + +/** + * "Bad" variable, used by events when no other valid variable can be found. + * This variable has no state and always return 0 or the empty string. + * @static + * @private + */ +gdjs.VariablesContainer.badVariable = { + getChild : function() { return gdjs.VariablesContainer.badVariable; }, + hasChild: function() {return false;}, + isStructure: function() {return false;}, + isNumber: function() {return true;}, + removeChild : function() { return; }, + setNumber : function() { return; }, + setString : function() { return; }, + getAsString : function() { return ""; }, + getAsNumber : function() { return 0; }, + getAllChildren : function() { return {}; }, + add : function() { return; }, + sub : function() { return; }, + mul : function() { return; }, + div : function() { return; }, + concatenate : function() { return; }, + setUndefinedInContainer : function() { return; }, + isUndefinedInContainer : function() { return; } +}; diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/vlc-record-2020-03-28-18h19m15s-WhatsApp Ptt 2020-03-28 at 18.10.19.ogg-.ogg b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/vlc-record-2020-03-28-18h19m15s-WhatsApp Ptt 2020-03-28 at 18.10.19.ogg-.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d7a404415a04a8bd19135ad97e7f62dd7b7027a9 GIT binary patch literal 25494 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 literal 0 HcmV?d00001 diff --git a/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/win3.png b/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87ab-07f330a01272/win3.png new file mode 100644 index 0000000000000000000000000000000000000000..fb807f548f0fcc4292e1fc8749cf89651ea642db GIT binary patch literal 29099 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 literal 0 HcmV?d00001